simpo-component-library 3.6.981 → 3.6.982

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/components/delete-hover-element/delete-hover-element.component.mjs +3 -3
  3. package/esm2022/lib/components/deprecated-section/deprecated-section.component.mjs +1 -1
  4. package/esm2022/lib/components/document/document.component.mjs +3 -3
  5. package/esm2022/lib/components/image-loading/image-loading.component.mjs +3 -3
  6. package/esm2022/lib/components/payment-details/payment-details.component.mjs +3 -3
  7. package/esm2022/lib/constants/business.constant.mjs +1 -1
  8. package/esm2022/lib/directive/alignment.directive.mjs +1 -1
  9. package/esm2022/lib/directive/blur-content.directive.mjs +1 -1
  10. package/esm2022/lib/directive/borderlessImage.directive.mjs +1 -1
  11. package/esm2022/lib/directive/button-directive.directive.mjs +1 -1
  12. package/esm2022/lib/directive/button-editor.directive.mjs +1 -1
  13. package/esm2022/lib/directive/color.directive.mjs +1 -1
  14. package/esm2022/lib/directive/column-directive.directive.mjs +1 -1
  15. package/esm2022/lib/directive/container-alignment.directive.mjs +1 -1
  16. package/esm2022/lib/directive/container-fir.directive.mjs +1 -1
  17. package/esm2022/lib/directive/content-title-spacing.directive.mjs +1 -1
  18. package/esm2022/lib/directive/contenteditable.directive.mjs +1 -1
  19. package/esm2022/lib/directive/corner-directive.mjs +1 -1
  20. package/esm2022/lib/directive/height.directive.mjs +1 -1
  21. package/esm2022/lib/directive/hover-animation.directive.mjs +1 -1
  22. package/esm2022/lib/directive/hoverborder.directive.mjs +1 -1
  23. package/esm2022/lib/directive/icon-directive.directive.mjs +1 -1
  24. package/esm2022/lib/directive/image-container.directive.mjs +1 -1
  25. package/esm2022/lib/directive/image-directive.directive.mjs +1 -1
  26. package/esm2022/lib/directive/image-editor.directive.mjs +1 -1
  27. package/esm2022/lib/directive/image-position.directive.mjs +1 -1
  28. package/esm2022/lib/directive/letters-only.directive.mjs +1 -1
  29. package/esm2022/lib/directive/merge-header.directive.mjs +1 -1
  30. package/esm2022/lib/directive/numbers-only.directive.mjs +1 -1
  31. package/esm2022/lib/directive/position-layout-directive.directive.mjs +1 -1
  32. package/esm2022/lib/directive/set-dynamic-background.directive.mjs +1 -1
  33. package/esm2022/lib/directive/spacing-around.directive.mjs +1 -1
  34. package/esm2022/lib/directive/spacing-horizontal.directive.mjs +1 -1
  35. package/esm2022/lib/directive/spacing.directive.mjs +1 -1
  36. package/esm2022/lib/directive/text-background-directive.directive.mjs +1 -1
  37. package/esm2022/lib/directive/text-size.directive.mjs +1 -1
  38. package/esm2022/lib/directive/translate-onhover.directive.mjs +1 -1
  39. package/esm2022/lib/directive/video-directive.directive.mjs +1 -1
  40. package/esm2022/lib/directive/wrap-containers.directive.mjs +1 -1
  41. package/esm2022/lib/ecommerce/sections/address/address.component.mjs +3 -3
  42. package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +3 -3
  43. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +3 -3
  44. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs +1 -1
  45. package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.component.mjs +3 -3
  46. package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +3 -3
  47. package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
  48. package/esm2022/lib/ecommerce/sections/categories-with-image-background-columns/categories-with-image-background-columns.component.mjs +3 -3
  49. package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +3 -3
  50. package/esm2022/lib/ecommerce/sections/category-product/category-product.model.mjs +1 -1
  51. package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +3 -3
  52. package/esm2022/lib/ecommerce/sections/checkout/checkout.modal.mjs +1 -1
  53. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.component.mjs +3 -3
  54. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.model.mjs +1 -1
  55. package/esm2022/lib/ecommerce/sections/enrollment-form/enrollment-form.component.mjs +3 -3
  56. package/esm2022/lib/ecommerce/sections/enrollment-form/enrollment-form.model.mjs +1 -1
  57. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +3 -3
  58. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
  59. package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +3 -3
  60. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +3 -3
  61. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
  62. package/esm2022/lib/ecommerce/sections/item-varient/item-varient.component.mjs +3 -3
  63. package/esm2022/lib/ecommerce/sections/new-collection/new-collection.component.mjs +3 -3
  64. package/esm2022/lib/ecommerce/sections/new-collection/new-collection.modal.mjs +1 -1
  65. package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +3 -3
  66. package/esm2022/lib/ecommerce/sections/pagnination/pagnination.component.mjs +3 -3
  67. package/esm2022/lib/ecommerce/sections/passbook-transactions/passbook-transactions.component.mjs +3 -3
  68. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.component.mjs +3 -3
  69. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.model.mjs +1 -1
  70. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +3 -3
  71. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.modal.mjs +1 -1
  72. package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +30 -5
  73. package/esm2022/lib/ecommerce/sections/product-list/product-list.modal.mjs +1 -1
  74. package/esm2022/lib/ecommerce/sections/refer-earn/refer-earn.component.mjs +3 -3
  75. package/esm2022/lib/ecommerce/sections/refer-earn/refer-earn.modal.mjs +1 -1
  76. package/esm2022/lib/ecommerce/sections/returns-calculator/returns-calculator.component.mjs +1 -1
  77. package/esm2022/lib/ecommerce/sections/returns-calculator/returns-calculator.model.mjs +1 -1
  78. package/esm2022/lib/ecommerce/sections/scheme-details/scheme-details.component.mjs +3 -3
  79. package/esm2022/lib/ecommerce/sections/scheme-selection/scheme-selection.component.mjs +3 -3
  80. package/esm2022/lib/ecommerce/sections/schemes/schemes.component.mjs +3 -3
  81. package/esm2022/lib/ecommerce/sections/schemes/schemes.component.model.mjs +1 -1
  82. package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +3 -3
  83. package/esm2022/lib/ecommerce/sections/store-list/store-list.component.mjs +3 -3
  84. package/esm2022/lib/ecommerce/sections/store-list/store-list.modal.mjs +1 -1
  85. package/esm2022/lib/ecommerce/sections/store-page/store-page.component.mjs +3 -3
  86. package/esm2022/lib/ecommerce/sections/store-page/store-page.model.mjs +1 -1
  87. package/esm2022/lib/ecommerce/sections/user-basic-info/user-basic-info.component.mjs +3 -3
  88. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.modal.mjs +1 -1
  89. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +3 -3
  90. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.model.mjs +1 -1
  91. package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +3 -3
  92. package/esm2022/lib/ecommerce/styles/BaseCollection.modal.mjs +1 -1
  93. package/esm2022/lib/ecommerce/styles/Brand.modal.mjs +9 -0
  94. package/esm2022/lib/ecommerce/styles/Collection.modal.mjs +1 -1
  95. package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +1 -1
  96. package/esm2022/lib/ecommerce/styles/PincodeLocation.model.mjs +1 -1
  97. package/esm2022/lib/ecommerce/styles/PincodeLocationInter.model.mjs +1 -1
  98. package/esm2022/lib/ecommerce/styles/cart.modal.mjs +1 -1
  99. package/esm2022/lib/ecommerce/styles/category.modal.mjs +1 -1
  100. package/esm2022/lib/ecommerce/styles/order.modal.mjs +1 -1
  101. package/esm2022/lib/ecommerce/styles/product.modal.mjs +1 -1
  102. package/esm2022/lib/ecommerce/styles/review.modal.mjs +1 -1
  103. package/esm2022/lib/ecommerce/styles/user.modal.mjs +1 -1
  104. package/esm2022/lib/elements/add-section/add-section.component.mjs +3 -3
  105. package/esm2022/lib/elements/address-list/address-list.component.mjs +3 -3
  106. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +3 -3
  107. package/esm2022/lib/elements/booking-cart-groups/booking-cart-groups.component.mjs +3 -3
  108. package/esm2022/lib/elements/button/button.component.mjs +3 -3
  109. package/esm2022/lib/elements/button/button.model.mjs +1 -1
  110. package/esm2022/lib/elements/card-skeleton-loader/card-skeleton-loader.component.mjs +3 -3
  111. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +3 -3
  112. package/esm2022/lib/elements/editor-service.service.mjs +1 -1
  113. package/esm2022/lib/elements/heading-element/heading-element.component.mjs +3 -3
  114. package/esm2022/lib/elements/index.mjs +1 -1
  115. package/esm2022/lib/elements/link-editor/link-editor.component.mjs +3 -3
  116. package/esm2022/lib/elements/list-home-appointment/list-home-appointment.component.mjs +3 -3
  117. package/esm2022/lib/elements/media-selector/media-selector.component.mjs +3 -3
  118. package/esm2022/lib/elements/my-bookings/my-bookings.component.mjs +3 -3
  119. package/esm2022/lib/elements/portfolio/portfolio.component.mjs +3 -3
  120. package/esm2022/lib/elements/pricing-s1/pricing-s1.component.mjs +3 -3
  121. package/esm2022/lib/elements/property/property.component.mjs +3 -3
  122. package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +3 -3
  123. package/esm2022/lib/elements/svg-divider/svg-divider.component.mjs +3 -3
  124. package/esm2022/lib/elements/text/text.component.mjs +3 -3
  125. package/esm2022/lib/elements/text-editor/text-editor.component.mjs +7 -7
  126. package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +3 -3
  127. package/esm2022/lib/pipes/amount.pipe.mjs +1 -1
  128. package/esm2022/lib/pipes/gender.pipe.mjs +1 -1
  129. package/esm2022/lib/sections/BaseSection.mjs +1 -1
  130. package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +3 -3
  131. package/esm2022/lib/sections/appointment-form/appointment-booking/appointment-booking/appointment-booking.component.mjs +3 -3
  132. package/esm2022/lib/sections/appointment-form/appointment-form.model.mjs +1 -1
  133. package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +3 -3
  134. package/esm2022/lib/sections/banner-carousel/banner-carousel.model.mjs +1 -1
  135. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +3 -3
  136. package/esm2022/lib/sections/blog-list/blog-list.component.mjs +3 -3
  137. package/esm2022/lib/sections/blog-list/blog-list.model.mjs +1 -1
  138. package/esm2022/lib/sections/brand-story-section/brand-story-section.component.mjs +3 -3
  139. package/esm2022/lib/sections/brand-story-section/brand-story-section.modal.mjs +1 -1
  140. package/esm2022/lib/sections/button-grid-section/button-grid-section.component.mjs +3 -3
  141. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +3 -3
  142. package/esm2022/lib/sections/choose-us-section/choose-us-section.model.mjs +1 -1
  143. package/esm2022/lib/sections/condensed-and-gradient/condensed-and-gradient.component.mjs +3 -3
  144. package/esm2022/lib/sections/countdown-banner/countdown-banner.component.mjs +3 -3
  145. package/esm2022/lib/sections/countdown-banner/countdown-banner.component.model.mjs +1 -1
  146. package/esm2022/lib/sections/faq-columns-cards/faq-columns-cards.component.mjs +3 -3
  147. package/esm2022/lib/sections/faq-columns-cards/faq-columns-cards.modal.mjs +1 -1
  148. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +3 -3
  149. package/esm2022/lib/sections/faq-section/faq-section.modal.mjs +1 -1
  150. package/esm2022/lib/sections/feature-experience-section/feature-experience-section.component.mjs +3 -3
  151. package/esm2022/lib/sections/feature-experience-section/feature-experience-section.modal.mjs +1 -1
  152. package/esm2022/lib/sections/features-section/features-section.component.mjs +3 -3
  153. package/esm2022/lib/sections/features-section/features-section.model.mjs +1 -1
  154. package/esm2022/lib/sections/footer/footer.component.mjs +3 -3
  155. package/esm2022/lib/sections/footer/footer.modal.mjs +1 -1
  156. package/esm2022/lib/sections/four-features-centered-image/four-features-centered-image.component.mjs +3 -3
  157. package/esm2022/lib/sections/four-features-centered-image/four-features-centered-image.modal.mjs +1 -1
  158. package/esm2022/lib/sections/header-section/header-section.component.mjs +3 -3
  159. package/esm2022/lib/sections/header-section/header-section.model.mjs +1 -1
  160. package/esm2022/lib/sections/header-text/header-text.component.mjs +3 -3
  161. package/esm2022/lib/sections/header-text/header-text.model.mjs +1 -1
  162. package/esm2022/lib/sections/image-background/image-background/image-background.component.mjs +3 -3
  163. package/esm2022/lib/sections/image-background/image-background/image-background.component.model.mjs +1 -1
  164. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +3 -3
  165. package/esm2022/lib/sections/image-carousel-section/image-carousel.model.mjs +1 -1
  166. package/esm2022/lib/sections/image-grid-hotspot/image-grid-hotspot.component.mjs +3 -3
  167. package/esm2022/lib/sections/image-grid-hotspot/image-grid-hotspot.model.mjs +1 -1
  168. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +3 -3
  169. package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
  170. package/esm2022/lib/sections/image-section/image-section.component.mjs +3 -3
  171. package/esm2022/lib/sections/image-section/image-section.model.mjs +1 -1
  172. package/esm2022/lib/sections/location-section/location-section.component.mjs +3 -3
  173. package/esm2022/lib/sections/location-section/location-section.modal.mjs +1 -1
  174. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +3 -3
  175. package/esm2022/lib/sections/logo-showcase/logo-showcase.modal.mjs +1 -1
  176. package/esm2022/lib/sections/moving-text/moving-text.component.mjs +3 -3
  177. package/esm2022/lib/sections/moving-text/moving-text.modal.mjs +1 -1
  178. package/esm2022/lib/sections/new-services/new-services.component.mjs +3 -3
  179. package/esm2022/lib/sections/new-services/new-services.model.mjs +1 -1
  180. package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +3 -3
  181. package/esm2022/lib/sections/new-testimonials/new-testimonials.model.mjs +1 -1
  182. package/esm2022/lib/sections/news-letter-component/news-letter-component.component.mjs +3 -3
  183. package/esm2022/lib/sections/news-letter-component/news-letter.modal.mjs +1 -1
  184. package/esm2022/lib/sections/overlapping-image/overlapping-image.component.mjs +3 -3
  185. package/esm2022/lib/sections/overlapping-image/overlapping-image.component.modal.mjs +1 -1
  186. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -3
  187. package/esm2022/lib/sections/pricing-section/pricing-section.modal.mjs +1 -1
  188. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +3 -3
  189. package/esm2022/lib/sections/process-modern/process-modern.model.mjs +1 -1
  190. package/esm2022/lib/sections/process-section/process-section.component.mjs +3 -3
  191. package/esm2022/lib/sections/process-section/process-section.modal.mjs +1 -1
  192. package/esm2022/lib/sections/product-info-section/product-info-section.component.mjs +3 -3
  193. package/esm2022/lib/sections/product-info-section/product-info-section.component.modal.mjs +1 -1
  194. package/esm2022/lib/sections/property-component/property-component.component.mjs +3 -3
  195. package/esm2022/lib/sections/property-component/property-component.modal.mjs +1 -1
  196. package/esm2022/lib/sections/property-list/property-list.component.mjs +3 -3
  197. package/esm2022/lib/sections/property-list/property-list.modal.mjs +1 -1
  198. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +3 -3
  199. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.model.mjs +1 -1
  200. package/esm2022/lib/sections/registration-form/registration-form.component.mjs +3 -3
  201. package/esm2022/lib/sections/registration-form/registrationForm.model.mjs +1 -1
  202. package/esm2022/lib/sections/scheme-detail/scheme-detail.component.mjs +3 -3
  203. package/esm2022/lib/sections/scheme-detail/scheme-detail.modal.mjs +1 -1
  204. package/esm2022/lib/sections/service-section/service-section.component.mjs +3 -3
  205. package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
  206. package/esm2022/lib/sections/skeleton-loader-section/skeleton-loader-section.component.mjs +3 -3
  207. package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +3 -3
  208. package/esm2022/lib/sections/team-member-section/team-member-section.model.mjs +1 -1
  209. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +3 -3
  210. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.model.mjs +1 -1
  211. package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.component.mjs +3 -3
  212. package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.model.mjs +1 -1
  213. package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +3 -3
  214. package/esm2022/lib/sections/testimonial-section/testimonial-section.model.mjs +1 -1
  215. package/esm2022/lib/sections/testimonial-slider/testimonial-slider.component.mjs +3 -3
  216. package/esm2022/lib/sections/testimonial-slider/testimonial-slider.model.mjs +1 -1
  217. package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +3 -3
  218. package/esm2022/lib/sections/testimonial-video/testimonial-video.model.mjs +1 -1
  219. package/esm2022/lib/sections/text-section/text-section.model.mjs +1 -1
  220. package/esm2022/lib/sections/usp-video-section/usp-video-section.component.mjs +3 -3
  221. package/esm2022/lib/sections/usp-video-section/usp-video-section.model.mjs +1 -1
  222. package/esm2022/lib/sections/video-carousel-section/video-carousel-section.component.mjs +3 -3
  223. package/esm2022/lib/sections/video-carousel-section/video-carousel.model.mjs +1 -1
  224. package/esm2022/lib/sections/video-grid-section/video-grid-section.component.mjs +3 -3
  225. package/esm2022/lib/sections/video-grid-section/video-grid-section.model.mjs +1 -1
  226. package/esm2022/lib/sections/video-section/video-section.component.mjs +3 -3
  227. package/esm2022/lib/sections/video-section/video-section.model.mjs +1 -1
  228. package/esm2022/lib/sections/video-showcase/video-showcase.component.mjs +3 -3
  229. package/esm2022/lib/sections/view-blog/view-blog.component.mjs +1 -1
  230. package/esm2022/lib/services/analytics.service.mjs +1 -1
  231. package/esm2022/lib/services/booking-product-cart.service.mjs +1 -1
  232. package/esm2022/lib/services/cart.service.mjs +1 -1
  233. package/esm2022/lib/services/endUser.service.mjs +1 -1
  234. package/esm2022/lib/services/image-upload-service.service.mjs +1 -1
  235. package/esm2022/lib/services/rest.service.mjs +11 -3
  236. package/esm2022/lib/services/sanitizeHtml.mjs +1 -1
  237. package/esm2022/lib/services/storage.service.mjs +1 -1
  238. package/esm2022/lib/styles/gradient-extension.mjs +1 -1
  239. package/esm2022/lib/styles/index.mjs +1 -1
  240. package/esm2022/lib/styles/style.model.mjs +1 -1
  241. package/esm2022/lib/styles/text-size.extension.mjs +1 -1
  242. package/esm2022/lib/styles/types.mjs +1 -1
  243. package/esm2022/lib/tokens/api-token.mjs +1 -1
  244. package/esm2022/public-api.mjs +2 -1
  245. package/fesm2022/simpo-component-library.mjs +259 -219
  246. package/fesm2022/simpo-component-library.mjs.map +1 -1
  247. package/lib/ecommerce/sections/product-list/product-list.component.d.ts +5 -0
  248. package/lib/ecommerce/styles/Brand.modal.d.ts +8 -0
  249. package/lib/ecommerce/styles/product.modal.d.ts +8 -0
  250. package/lib/services/rest.service.d.ts +2 -1
  251. package/package.json +1 -1
  252. package/public-api.d.ts +1 -0
  253. package/simpo-component-library-3.6.982.tgz +0 -0
  254. package/simpo-component-library-3.6.981.tgz +0 -0
@@ -74,7 +74,7 @@ export class VideoSectionComponent extends BaseSection {
74
74
  }, 100);
75
75
  }
76
76
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VideoSectionComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
77
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VideoSectionComponent, isStandalone: true, selector: "simpo-video-section", inputs: { data: "data", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, viewQueries: [{ propertyName: "_mainContainer", first: true, predicate: ["mainContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [attr.style]=\"customClass\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\">\r\n <div class=\"container-fluid main-section\" [id]=\"data?.id\" [simpoBorder]=\"style?.border\"\r\n [simpoLayout]=\"style?.layout\" [spacingHorizontal]=\"stylesLayout\" [ngClass]=\"{'px-0 py-0': style?.fullWidth}\">\r\n <div class=\"row mob-mx-0\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\">\r\n\r\n <!-- <div *ngFor=\"let text of data?.content?.inputText\" class=\"heading-large content-side\"\r\n [simpoContentTitleSpace]=\"headingSpace\">\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div> -->\r\n\r\n\r\n <div class=\"video-section\" [ngClass]=\"{'h-100 w-100': style?.layout?.fit === 'screen'}\">\r\n <iframe class=\"video\" [ngClass]=\"{\r\n 'vh-60 w-100': style?.layout?.fit === 'content', \r\n 'h-100 w-100': style?.layout?.fit === 'screen'\r\n }\" [src]=\"getVideoUrl(content?.videoLink?.url ?? '')\" frameborder=\"0\" allowfullscreen *ngIf=\"!content?.videoLink?.url?.includes('.mp4')\"></iframe>\r\n <ng-container *ngIf=\"content?.videoLink?.url?.includes('.mp4')\">\r\n <video class=\"video w-100\" [ngClass]=\"{\r\n 'vh-60 w-100': style?.layout?.fit === 'content',\r\n 'h-100 w-100': style?.layout?.fit === 'screen' }\" controls autoplay infinite>\r\n <source [src]=\"content?.videoLink?.url\" type=\"video/mp4\">\r\n </video>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section>", styles: [".total-container{height:auto;position:relative}.video{width:100%;height:100vh}.main-section{width:100%;height:100%!important;display:block!important}.h-80{width:100%;height:80vh}.mb-1{margin-bottom:1.5rem!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}@media screen and (max-width: 475px){.video{height:max-content!important}.mob-mx-0{margin-left:0!important;margin-right:0!important}.video-section{padding-left:0!important;padding-right:0!important}}\n"], dependencies: [{ kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i3.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }] }); }
77
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VideoSectionComponent, isStandalone: true, selector: "simpo-video-section", inputs: { data: "data", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, viewQueries: [{ propertyName: "_mainContainer", first: true, predicate: ["mainContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\n class=\"total-container\" [attr.style]=\"customClass\">\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\">\n <div class=\"container-fluid main-section\" [id]=\"data?.id\" [simpoBorder]=\"style?.border\"\n [simpoLayout]=\"style?.layout\" [spacingHorizontal]=\"stylesLayout\" [ngClass]=\"{'px-0 py-0': style?.fullWidth}\">\n <div class=\"row mob-mx-0\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\">\n\n <!-- <div *ngFor=\"let text of data?.content?.inputText\" class=\"heading-large content-side\"\n [simpoContentTitleSpace]=\"headingSpace\">\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\"></simpo-text-editor>\n </div> -->\n\n\n <div class=\"video-section\" [ngClass]=\"{'h-100 w-100': style?.layout?.fit === 'screen'}\">\n <iframe class=\"video\" [ngClass]=\"{\n 'vh-60 w-100': style?.layout?.fit === 'content', \n 'h-100 w-100': style?.layout?.fit === 'screen'\n }\" [src]=\"getVideoUrl(content?.videoLink?.url ?? '')\" frameborder=\"0\" allowfullscreen *ngIf=\"!content?.videoLink?.url?.includes('.mp4')\"></iframe>\n <ng-container *ngIf=\"content?.videoLink?.url?.includes('.mp4')\">\n <video class=\"video w-100\" [ngClass]=\"{\n 'vh-60 w-100': style?.layout?.fit === 'content',\n 'h-100 w-100': style?.layout?.fit === 'screen' }\" controls autoplay infinite>\n <source [src]=\"content?.videoLink?.url\" type=\"video/mp4\">\n </video>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n</section>", styles: [".total-container{height:auto;position:relative}.video{width:100%;height:100vh}.main-section{width:100%;height:100%!important;display:block!important}.h-80{width:100%;height:80vh}.mb-1{margin-bottom:1.5rem!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}@media screen and (max-width: 475px){.video{height:max-content!important}.mob-mx-0{margin-left:0!important;margin-right:0!important}.video-section{padding-left:0!important;padding-right:0!important}}\n"], dependencies: [{ kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i3.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }] }); }
78
78
  }
79
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VideoSectionComponent, decorators: [{
80
80
  type: Component,
@@ -104,7 +104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
104
104
  PositionLayoutDirectiveDirective,
105
105
  TextBackgroundDirectiveDirective,
106
106
  SpacingHorizontalDirective
107
- ], template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [attr.style]=\"customClass\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\">\r\n <div class=\"container-fluid main-section\" [id]=\"data?.id\" [simpoBorder]=\"style?.border\"\r\n [simpoLayout]=\"style?.layout\" [spacingHorizontal]=\"stylesLayout\" [ngClass]=\"{'px-0 py-0': style?.fullWidth}\">\r\n <div class=\"row mob-mx-0\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\">\r\n\r\n <!-- <div *ngFor=\"let text of data?.content?.inputText\" class=\"heading-large content-side\"\r\n [simpoContentTitleSpace]=\"headingSpace\">\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div> -->\r\n\r\n\r\n <div class=\"video-section\" [ngClass]=\"{'h-100 w-100': style?.layout?.fit === 'screen'}\">\r\n <iframe class=\"video\" [ngClass]=\"{\r\n 'vh-60 w-100': style?.layout?.fit === 'content', \r\n 'h-100 w-100': style?.layout?.fit === 'screen'\r\n }\" [src]=\"getVideoUrl(content?.videoLink?.url ?? '')\" frameborder=\"0\" allowfullscreen *ngIf=\"!content?.videoLink?.url?.includes('.mp4')\"></iframe>\r\n <ng-container *ngIf=\"content?.videoLink?.url?.includes('.mp4')\">\r\n <video class=\"video w-100\" [ngClass]=\"{\r\n 'vh-60 w-100': style?.layout?.fit === 'content',\r\n 'h-100 w-100': style?.layout?.fit === 'screen' }\" controls autoplay infinite>\r\n <source [src]=\"content?.videoLink?.url\" type=\"video/mp4\">\r\n </video>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section>", styles: [".total-container{height:auto;position:relative}.video{width:100%;height:100vh}.main-section{width:100%;height:100%!important;display:block!important}.h-80{width:100%;height:80vh}.mb-1{margin-bottom:1.5rem!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}@media screen and (max-width: 475px){.video{height:max-content!important}.mob-mx-0{margin-left:0!important;margin-right:0!important}.video-section{padding-left:0!important;padding-right:0!important}}\n"] }]
107
+ ], template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\n class=\"total-container\" [attr.style]=\"customClass\">\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\">\n <div class=\"container-fluid main-section\" [id]=\"data?.id\" [simpoBorder]=\"style?.border\"\n [simpoLayout]=\"style?.layout\" [spacingHorizontal]=\"stylesLayout\" [ngClass]=\"{'px-0 py-0': style?.fullWidth}\">\n <div class=\"row mob-mx-0\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\">\n\n <!-- <div *ngFor=\"let text of data?.content?.inputText\" class=\"heading-large content-side\"\n [simpoContentTitleSpace]=\"headingSpace\">\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\"></simpo-text-editor>\n </div> -->\n\n\n <div class=\"video-section\" [ngClass]=\"{'h-100 w-100': style?.layout?.fit === 'screen'}\">\n <iframe class=\"video\" [ngClass]=\"{\n 'vh-60 w-100': style?.layout?.fit === 'content', \n 'h-100 w-100': style?.layout?.fit === 'screen'\n }\" [src]=\"getVideoUrl(content?.videoLink?.url ?? '')\" frameborder=\"0\" allowfullscreen *ngIf=\"!content?.videoLink?.url?.includes('.mp4')\"></iframe>\n <ng-container *ngIf=\"content?.videoLink?.url?.includes('.mp4')\">\n <video class=\"video w-100\" [ngClass]=\"{\n 'vh-60 w-100': style?.layout?.fit === 'content',\n 'h-100 w-100': style?.layout?.fit === 'screen' }\" controls autoplay infinite>\n <source [src]=\"content?.videoLink?.url\" type=\"video/mp4\">\n </video>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n</section>", styles: [".total-container{height:auto;position:relative}.video{width:100%;height:100vh}.main-section{width:100%;height:100%!important;display:block!important}.h-80{width:100%;height:80vh}.mb-1{margin-bottom:1.5rem!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}@media screen and (max-width: 475px){.video{height:max-content!important}.mob-mx-0{margin-left:0!important;margin-right:0!important}.video-section{padding-left:0!important;padding-right:0!important}}\n"] }]
108
108
  }], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i2.EventsService }], propDecorators: { data: [{
109
109
  type: Input
110
110
  }], index: [{
@@ -121,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
121
121
  type: ViewChild,
122
122
  args: ['mainContainer']
123
123
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZGVvLXNlY3Rpb24vdmlkZW8tc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZGVvLXNlY3Rpb24vdmlkZW8tc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDN0YsT0FB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LEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0EvRFUscUJBQXFCO21HQUFyQixxQkFBcUIsdVdDakVsQyxpMkVBd0NVLDJsQkRMTixtQkFBbUIsb0pBQ25CLFlBQVksaU9BRVosbUJBQW1CLGtGQUNuQixvQkFBb0Isb1dBS3BCLGtCQUFrQix5RkFDbEIsbUJBQW1CLDBHQUVuQixlQUFlLG1GQVFmLGNBQWMsZ0ZBRWQsZ0JBQWdCLHFGQUdoQiwwQkFBMEI7OzRGQUtqQixxQkFBcUI7a0JBbENqQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1A7d0JBQ1AsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFFbkIsV0FBVzt3QkFDWCxxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsOEJBQThCO3dCQUM5QixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsMEJBQTBCO3dCQUMxQixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQixnQ0FBZ0M7d0JBQ2hDLGdDQUFnQzt3QkFDaEMsMEJBQTBCO3FCQUMzQjs2R0FZUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ3NCLGNBQWM7c0JBQXpDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB2aWRlb1NlY3Rpb25Db250ZW50TW9kZWwsIHZpZGVvU2VjdGlvbk1vZGVsLCB2aWRlb1NlY3Rpb25TdHlsZU1vZGVsIH0gZnJvbSAnLi92aWRlby1zZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU2ltcG9FbGVtZW50c01vZHVsZSB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL2luZGV4JztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2luZGV4JztcclxuXHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYW5uZXItY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQm9yZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JvcmRlci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sdW1uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250YWluZXJGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGFpbmVyLWZpci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBzaW1wb0NvbmV0ZW5BbGlnbm1lbnREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1hbGlnbm1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0Zvb3RlckxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9mb290ZXItbGF5b3V0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvb3ZlcmxheS1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQb3NpdGlvbkxheW91dERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9wb3NpdGlvbi1sYXlvdXQtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vQmFzZVNlY3Rpb24nO1xyXG5pbXBvcnQgeyBDb250ZW50VGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC10aXRsZS1zcGFjaW5nLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNQQUNJTkcgfSBmcm9tICcuLi8uLi9zdHlsZXMvaW5kZXgnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgVGV4dEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctaG9yaXpvbnRhbC5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby12aWRlby1zZWN0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFNpbXBvRWxlbWVudHNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXHJcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxyXG5cclxuICAgIC8vZGlyZWN0aXZlXHJcbiAgICBDb250ZW50VGl0bGVEaXJlY3RpdmUsXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSxcclxuICAgIEJvcmRlckRpcmVjdGl2ZSxcclxuICAgIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbHVtbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbnRhaW5lckZpdERpcmVjdGl2ZSxcclxuICAgIHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBDb3JuZXJEaXJlY3RpdmUsXHJcbiAgICBTaW1wb0Zvb3RlckxheW91dERpcmVjdGl2ZSxcclxuICAgIEhvdmVyRGlyZWN0aXZlLFxyXG4gICAgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxyXG4gICAgUG9zaXRpb25MYXlvdXREaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmlkZW8tc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3ZpZGVvLXNlY3Rpb24uY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFZpZGVvU2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZG9tOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwcml2YXRlIF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGRhdGE/OiB2aWRlb1NlY3Rpb25Nb2RlbDtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkZWxldGU/OiBmYWxzZVxyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcclxuICBAVmlld0NoaWxkKCdtYWluQ29udGFpbmVyJykgX21haW5Db250YWluZXI6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcclxuICB2aWRlb0xpbms6IHN0cmluZyA9ICcnXHJcbiAgY29udGVudD86IHZpZGVvU2VjdGlvbkNvbnRlbnRNb2RlbDtcclxuICBzdHlsZT86IHZpZGVvU2VjdGlvblN0eWxlTW9kZWw7XHJcblxyXG5cclxuICBzYWZlVmlkZW9Vcmw6IFNhZmVSZXNvdXJjZVVybCA9ICcnO1xyXG5cclxuICBnZXRWaWRlb1VybCh1cmw6IHN0cmluZyk6IFNhZmVSZXNvdXJjZVVybCB7XHJcbiAgICBpZiAodXJsLmluY2x1ZGVzKCcubXA0JykpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZG9tLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh1cmwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdmlkZW9JZCA9IHRoaXMueW91VHViZUlkRnJvbUxpbmsodXJsKTtcclxuICAgICAgY29uc3QgdmlkZW9VcmwgPSBcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL1wiICsgdmlkZW9JZDtcclxuICAgICAgcmV0dXJuIHRoaXMuZG9tLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh2aWRlb1VybCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcclxuICAgIHRoaXMuc3R5bGUgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuICB9XHJcbiAgeW91VHViZUlkRnJvbUxpbmsodXJsOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHVybC5tYXRjaCgvKD86aHR0cHM/OlxcL1xcLyk/KD86d3d3XFwufG1cXC4pP3lvdXR1KD86YmUpP1xcLig/OmNvbXxiZSkoPzpcXC93YXRjaFxcLz9cXD92PXxcXC9lbWJlZFxcL3xcXC8pKFteXFxzJlxcP1xcL1xcI10rKS8pPy5bMV07XHJcbiAgfVxyXG5cclxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xyXG4gICAgcmV0dXJuIHsgLi4udGhpcy5kYXRhPy5zdHlsZXM/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldFZpZGVvTGluaygpIHtcclxuICAgIGxldCB2aWRlb0lkID0gdGhpcy55b3VUdWJlSWRGcm9tTGluayh0aGlzLmNvbnRlbnQ/LnZpZGVvTGluaz8udXJsIHx8ICcnKSB8fCAnJztcclxuICAgIHJldHVybiBcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL1wiICsgdmlkZW9JZFxyXG4gIH1cclxuICBnZXQgaGVhZGluZ1NwYWNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/LmxheW91dC5oZWFkaW5nU3BhY2luZyBhcyBTUEFDSU5HO1xyXG4gIH1cclxuXHJcblxyXG4gIFxyXG4gIGVkaXRTZWN0aW9uKCkge1xyXG5cclxuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzUpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxufSIsIjxzZWN0aW9uIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGU/LmJhY2tncm91bmRcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiXHJcbiAgY2xhc3M9XCJ0b3RhbC1jb250YWluZXJcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gIDxkaXYgI21haW5Db250YWluZXIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvT3ZlcmxheV09XCJzdHlsZT8uYmFja2dyb3VuZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBtYWluLXNlY3Rpb25cIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9Cb3JkZXJdPVwic3R5bGU/LmJvcmRlclwiXHJcbiAgICAgIFtzaW1wb0xheW91dF09XCJzdHlsZT8ubGF5b3V0XCIgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiIFtuZ0NsYXNzXT1cInsncHgtMCBweS0wJzogc3R5bGU/LmZ1bGxXaWR0aH1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBtb2ItbXgtMFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZT8uYW5pbWF0aW9uXCI+XHJcblxyXG4gICAgICAgIDwhLS0gPGRpdiAqbmdGb3I9XCJsZXQgdGV4dCBvZiBkYXRhPy5jb250ZW50Py5pbnB1dFRleHRcIiBjbGFzcz1cImhlYWRpbmctbGFyZ2UgY29udGVudC1zaWRlXCJcclxuICAgICAgICAgIFtzaW1wb0NvbnRlbnRUaXRsZVNwYWNlXT1cImhlYWRpbmdTcGFjZVwiPlxyXG4gICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRleHQudmFsdWVcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XHJcbiAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZpZGVvLXNlY3Rpb25cIiBbbmdDbGFzc109XCJ7J2gtMTAwIHctMTAwJzogc3R5bGU/LmxheW91dD8uZml0ID09PSAnc2NyZWVuJ31cIj5cclxuICAgICAgICAgIDxpZnJhbWUgY2xhc3M9XCJ2aWRlb1wiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICd2aC02MCB3LTEwMCc6IHN0eWxlPy5sYXlvdXQ/LmZpdCA9PT0gJ2NvbnRlbnQnLCBcclxuICAgICAgICAgICdoLTEwMCB3LTEwMCc6IHN0eWxlPy5sYXlvdXQ/LmZpdCA9PT0gJ3NjcmVlbidcclxuICAgICAgICB9XCIgW3NyY109XCJnZXRWaWRlb1VybChjb250ZW50Py52aWRlb0xpbms/LnVybCA/PyAnJylcIiBmcmFtZWJvcmRlcj1cIjBcIiBhbGxvd2Z1bGxzY3JlZW4gKm5nSWY9XCIhY29udGVudD8udmlkZW9MaW5rPy51cmw/LmluY2x1ZGVzKCcubXA0JylcIj48L2lmcmFtZT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudD8udmlkZW9MaW5rPy51cmw/LmluY2x1ZGVzKCcubXA0JylcIj5cclxuICAgICAgICAgIDx2aWRlbyBjbGFzcz1cInZpZGVvIHctMTAwXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgJ3ZoLTYwIHctMTAwJzogc3R5bGU/LmxheW91dD8uZml0ID09PSAnY29udGVudCcsXHJcbiAgICAgICAgICAnaC0xMDAgdy0xMDAnOiBzdHlsZT8ubGF5b3V0Py5maXQgPT09ICdzY3JlZW4nICB9XCIgY29udHJvbHMgYXV0b3BsYXkgaW5maW5pdGU+XHJcbiAgICAgICAgICA8c291cmNlIFtzcmNdPVwiY29udGVudD8udmlkZW9MaW5rPy51cmxcIiB0eXBlPVwidmlkZW8vbXA0XCI+XHJcbiAgICAgICAgPC92aWRlbz5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5kZXZpZGVyPy5kaXNwbGF5XCI+XHJcbiAgICA8c2ltcG8tc3ZnLWRpdmlkZXIgW2RpdmlkZXJUeXBlXT1cInN0eWxlPy5kZXZpZGVyPy5kZXZpZGVyVHlwZVwiXHJcbiAgICAgIFtjb2xvcl09XCJuZXh0Q29tcG9uZW50Q29sb3I/LmNvbG9yXCI+PC9zaW1wby1zdmctZGl2aWRlcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxyXG4gICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+Il19
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZGVvLXNlY3Rpb24vdmlkZW8tc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZGVvLXNlY3Rpb24vdmlkZW8tc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDN0YsT0FB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LEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0EvRFUscUJBQXFCO21HQUFyQixxQkFBcUIsdVdDakVsQyxpeEVBd0NVLDJsQkRMTixtQkFBbUIsb0pBQ25CLFlBQVksaU9BRVosbUJBQW1CLGtGQUNuQixvQkFBb0Isb1dBS3BCLGtCQUFrQix5RkFDbEIsbUJBQW1CLDBHQUVuQixlQUFlLG1GQVFmLGNBQWMsZ0ZBRWQsZ0JBQWdCLHFGQUdoQiwwQkFBMEI7OzRGQUtqQixxQkFBcUI7a0JBbENqQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1A7d0JBQ1AsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFFbkIsV0FBVzt3QkFDWCxxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsOEJBQThCO3dCQUM5QixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsMEJBQTBCO3dCQUMxQixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQixnQ0FBZ0M7d0JBQ2hDLGdDQUFnQzt3QkFDaEMsMEJBQTBCO3FCQUMzQjs2R0FZUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ3NCLGNBQWM7c0JBQXpDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdmlkZW9TZWN0aW9uQ29udGVudE1vZGVsLCB2aWRlb1NlY3Rpb25Nb2RlbCwgdmlkZW9TZWN0aW9uU3R5bGVNb2RlbCB9IGZyb20gJy4vdmlkZW8tc2VjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2ltcG9FbGVtZW50c01vZHVsZSB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL2luZGV4JztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xuXG5pbXBvcnQgeyBBbmltYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYW5pbWF0aW9uLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhbm5lckNvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYmFubmVyLWNvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYm9yZGVyLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29sdW1uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbHVtbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbnRhaW5lckZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250YWluZXItZmlyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBzaW1wb0NvbmV0ZW5BbGlnbm1lbnREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1hbGlnbm1lbnQtZGlyZWN0aXZlJztcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb3JuZXItZGlyZWN0aXZlJztcbmltcG9ydCB7IFNpbXBvRm9vdGVyTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Zvb3Rlci1sYXlvdXQtZGlyZWN0aXZlJztcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcbmltcG9ydCB7IEltYWdlRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2ltYWdlLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9vdmVybGF5LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQb3NpdGlvbkxheW91dERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9wb3NpdGlvbi1sYXlvdXQtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS90ZXh0LWJhY2tncm91bmQtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vQmFzZVNlY3Rpb24nO1xuaW1wb3J0IHsgQ29udGVudFRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtdGl0bGUtc3BhY2luZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU1BBQ0lORyB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1ob3Jpem9udGFsLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLXZpZGVvLXNlY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgU2ltcG9FbGVtZW50c01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ29sdW1uRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXG4gICAgVGV4dEVkaXRvckNvbXBvbmVudCxcblxuICAgIC8vZGlyZWN0aXZlXG4gICAgQ29udGVudFRpdGxlRGlyZWN0aXZlLFxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxuICAgIEJhbm5lckNvbnRlbnRGaXREaXJlY3RpdmUsXG4gICAgQm9yZGVyRGlyZWN0aXZlLFxuICAgIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgQ29udGFpbmVyRml0RGlyZWN0aXZlLFxuICAgIHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSxcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxuICAgIENvcm5lckRpcmVjdGl2ZSxcbiAgICBTaW1wb0Zvb3RlckxheW91dERpcmVjdGl2ZSxcbiAgICBIb3ZlckRpcmVjdGl2ZSxcbiAgICBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxuICAgIFBvc2l0aW9uTGF5b3V0RGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi92aWRlby1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3ZpZGVvLXNlY3Rpb24uY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgVmlkZW9TZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkb206IERvbVNhbml0aXplcixcbiAgICBwcml2YXRlIF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuICBASW5wdXQoKSBkYXRhPzogdmlkZW9TZWN0aW9uTW9kZWw7XG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcbiAgQElucHV0KCkgZGVsZXRlPzogZmFsc2VcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcbiAgQFZpZXdDaGlsZCgnbWFpbkNvbnRhaW5lcicpIF9tYWluQ29udGFpbmVyOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XG4gIHZpZGVvTGluazogc3RyaW5nID0gJydcbiAgY29udGVudD86IHZpZGVvU2VjdGlvbkNvbnRlbnRNb2RlbDtcbiAgc3R5bGU/OiB2aWRlb1NlY3Rpb25TdHlsZU1vZGVsO1xuXG5cbiAgc2FmZVZpZGVvVXJsOiBTYWZlUmVzb3VyY2VVcmwgPSAnJztcblxuICBnZXRWaWRlb1VybCh1cmw6IHN0cmluZyk6IFNhZmVSZXNvdXJjZVVybCB7XG4gICAgaWYgKHVybC5pbmNsdWRlcygnLm1wNCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5kb20uYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZpZGVvSWQgPSB0aGlzLnlvdVR1YmVJZEZyb21MaW5rKHVybCk7XG4gICAgICBjb25zdCB2aWRlb1VybCA9IFwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvXCIgKyB2aWRlb0lkO1xuICAgICAgcmV0dXJuIHRoaXMuZG9tLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh2aWRlb1VybCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xuICAgIHRoaXMuc3R5bGUgPSB0aGlzLmRhdGE/LnN0eWxlcztcbiAgfVxuICB5b3VUdWJlSWRGcm9tTGluayh1cmw6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHVybC5tYXRjaCgvKD86aHR0cHM/OlxcL1xcLyk/KD86d3d3XFwufG1cXC4pP3lvdXR1KD86YmUpP1xcLig/OmNvbXxiZSkoPzpcXC93YXRjaFxcLz9cXD92PXxcXC9lbWJlZFxcL3xcXC8pKFteXFxzJlxcP1xcL1xcI10rKS8pPy5bMV07XG4gIH1cblxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuZGF0YT8uc3R5bGVzPy5sYXlvdXQgfSBhcyBMYXlPdXRNb2RlbDtcbiAgfVxuXG4gIGdldCBnZXRWaWRlb0xpbmsoKSB7XG4gICAgbGV0IHZpZGVvSWQgPSB0aGlzLnlvdVR1YmVJZEZyb21MaW5rKHRoaXMuY29udGVudD8udmlkZW9MaW5rPy51cmwgfHwgJycpIHx8ICcnO1xuICAgIHJldHVybiBcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL1wiICsgdmlkZW9JZFxuICB9XG4gIGdldCBoZWFkaW5nU3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/LmxheW91dC5oZWFkaW5nU3BhY2luZyBhcyBTUEFDSU5HO1xuICB9XG5cblxuICBcbiAgZWRpdFNlY3Rpb24oKSB7XG5cbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNDc1KVxuICAgICAgcmV0dXJuO1xuXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxufSIsIjxzZWN0aW9uIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGU/LmJhY2tncm91bmRcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiXG4gIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCIgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cbiAgPGRpdiAjbWFpbkNvbnRhaW5lciBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9PdmVybGF5XT1cInN0eWxlPy5iYWNrZ3JvdW5kXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBtYWluLXNlY3Rpb25cIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9Cb3JkZXJdPVwic3R5bGU/LmJvcmRlclwiXG4gICAgICBbc2ltcG9MYXlvdXRdPVwic3R5bGU/LmxheW91dFwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIiBbbmdDbGFzc109XCJ7J3B4LTAgcHktMCc6IHN0eWxlPy5mdWxsV2lkdGh9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IG1vYi1teC0wXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlPy5hbmltYXRpb25cIj5cblxuICAgICAgICA8IS0tIDxkaXYgKm5nRm9yPVwibGV0IHRleHQgb2YgZGF0YT8uY29udGVudD8uaW5wdXRUZXh0XCIgY2xhc3M9XCJoZWFkaW5nLWxhcmdlIGNvbnRlbnQtc2lkZVwiXG4gICAgICAgICAgW3NpbXBvQ29udGVudFRpdGxlU3BhY2VdPVwiaGVhZGluZ1NwYWNlXCI+XG4gICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRleHQudmFsdWVcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XG4gICAgICAgIDwvZGl2PiAtLT5cblxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2aWRlby1zZWN0aW9uXCIgW25nQ2xhc3NdPVwieydoLTEwMCB3LTEwMCc6IHN0eWxlPy5sYXlvdXQ/LmZpdCA9PT0gJ3NjcmVlbid9XCI+XG4gICAgICAgICAgPGlmcmFtZSBjbGFzcz1cInZpZGVvXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICd2aC02MCB3LTEwMCc6IHN0eWxlPy5sYXlvdXQ/LmZpdCA9PT0gJ2NvbnRlbnQnLCBcbiAgICAgICAgICAnaC0xMDAgdy0xMDAnOiBzdHlsZT8ubGF5b3V0Py5maXQgPT09ICdzY3JlZW4nXG4gICAgICAgIH1cIiBbc3JjXT1cImdldFZpZGVvVXJsKGNvbnRlbnQ/LnZpZGVvTGluaz8udXJsID8/ICcnKVwiIGZyYW1lYm9yZGVyPVwiMFwiIGFsbG93ZnVsbHNjcmVlbiAqbmdJZj1cIiFjb250ZW50Py52aWRlb0xpbms/LnVybD8uaW5jbHVkZXMoJy5tcDQnKVwiPjwvaWZyYW1lPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudD8udmlkZW9MaW5rPy51cmw/LmluY2x1ZGVzKCcubXA0JylcIj5cbiAgICAgICAgICA8dmlkZW8gY2xhc3M9XCJ2aWRlbyB3LTEwMFwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAndmgtNjAgdy0xMDAnOiBzdHlsZT8ubGF5b3V0Py5maXQgPT09ICdjb250ZW50JyxcbiAgICAgICAgICAnaC0xMDAgdy0xMDAnOiBzdHlsZT8ubGF5b3V0Py5maXQgPT09ICdzY3JlZW4nICB9XCIgY29udHJvbHMgYXV0b3BsYXkgaW5maW5pdGU+XG4gICAgICAgICAgPHNvdXJjZSBbc3JjXT1cImNvbnRlbnQ/LnZpZGVvTGluaz8udXJsXCIgdHlwZT1cInZpZGVvL21wNFwiPlxuICAgICAgICA8L3ZpZGVvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5kZXZpZGVyPy5kaXNwbGF5XCI+XG4gICAgPHNpbXBvLXN2Zy1kaXZpZGVyIFtkaXZpZGVyVHlwZV09XCJzdHlsZT8uZGV2aWRlcj8uZGV2aWRlclR5cGVcIlxuICAgICAgW2NvbG9yXT1cIm5leHRDb21wb25lbnRDb2xvcj8uY29sb3JcIj48L3NpbXBvLXN2Zy1kaXZpZGVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cbiAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tc2VjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdmlkZW8tc2VjdGlvbi92aWRlby1zZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dFRleHRNb2RlbCwgU3R5bGVzTW9kZWwgfSBmcm9tIFwiLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWxcIjtcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHZpZGVvU2VjdGlvbk1vZGVsIHtcclxuICAgIGlkOiBzdHJpbmcsXHJcbiAgICBzZWN0aW9uVHlwZTogc3RyaW5nLFxyXG4gICAgc2VjdGlvbk5hbWU6IHN0cmluZyxcclxuICAgIGNvbnRlbnQ6IHZpZGVvU2VjdGlvbkNvbnRlbnRNb2RlbDtcclxuICAgIHN0eWxlczogdmlkZW9TZWN0aW9uU3R5bGVNb2RlbDtcclxuICB9XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHZpZGVvU2VjdGlvbkNvbnRlbnRNb2RlbCB7XHJcbiAgICBpbnB1dFRleHQgOiBbSW5wdXRUZXh0TW9kZWxdLFxyXG4gICAgdmlkZW9MaW5rIDoge1xyXG4gICAgdXJsIDogc3RyaW5nLFxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHZpZGVvU2VjdGlvblN0eWxlTW9kZWwgZXh0ZW5kcyBTdHlsZXNNb2RlbCB7XHJcbiAgICBmdWxsV2lkdGg6IGJvb2xlYW47XHJcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tc2VjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdmlkZW8tc2VjdGlvbi92aWRlby1zZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dFRleHRNb2RlbCwgU3R5bGVzTW9kZWwgfSBmcm9tIFwiLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWxcIjtcblxuXG5leHBvcnQgaW50ZXJmYWNlIHZpZGVvU2VjdGlvbk1vZGVsIHtcbiAgICBpZDogc3RyaW5nLFxuICAgIHNlY3Rpb25UeXBlOiBzdHJpbmcsXG4gICAgc2VjdGlvbk5hbWU6IHN0cmluZyxcbiAgICBjb250ZW50OiB2aWRlb1NlY3Rpb25Db250ZW50TW9kZWw7XG4gICAgc3R5bGVzOiB2aWRlb1NlY3Rpb25TdHlsZU1vZGVsO1xuICB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgdmlkZW9TZWN0aW9uQ29udGVudE1vZGVsIHtcbiAgICBpbnB1dFRleHQgOiBbSW5wdXRUZXh0TW9kZWxdLFxuICAgIHZpZGVvTGluayA6IHtcbiAgICB1cmwgOiBzdHJpbmcsXG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIHZpZGVvU2VjdGlvblN0eWxlTW9kZWwgZXh0ZW5kcyBTdHlsZXNNb2RlbCB7XG4gICAgZnVsbFdpZHRoOiBib29sZWFuO1xufSJdfQ==
@@ -124,11 +124,11 @@ export class VideoShowcaseComponent {
124
124
  }
125
125
  }
126
126
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VideoShowcaseComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.MessageService }, { token: i3.CartService }], target: i0.ɵɵFactoryTarget.Component }); }
127
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VideoShowcaseComponent, isStandalone: true, selector: "simpo-video-showcase", providers: [MessageService], viewQueries: [{ propertyName: "videoPlayer", first: true, predicate: ["videoPlayer"], descendants: true }], ngImport: i0, template: "<section class=\"overlay\"></section>\r\n\r\n<section class=\"main_section d-flex align-items-center justify-content-center\">\r\n <div class=\"videos-container\">\r\n <div class=\"video-card\">\r\n <div class=\"top-bar d-flex align-items-center\">\r\n <span class=\"progress-bar\"></span>\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/802576c1770375389274muted-svgrepo-com.svg\"\r\n class=\"mute-unmute\" *ngIf=\"videoMuted\" (click)=\"videoMuted = false\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/711833c1770375515828volume-loud-svgrepo-com.svg\"\r\n class=\"mute-unmute\" *ngIf=\"!videoMuted\" (click)=\"videoMuted=true\">\r\n <span class=\"close\" (click)=\"closeDialog()\">\u2715</span>\r\n </div>\r\n\r\n <!-- Video -->\r\n <video #videoPlayer class=\"video-content\" autoplay loop playsinline [src]=\"videoUrl\" [controls]=\"false\"\r\n [muted]=\"videoMuted\">\r\n </video>\r\n\r\n <!-- Navigation arrows -->\r\n <div class=\"d-flex align-items-center nav-arrows w-100\"\r\n [ngClass]=\"{'justify-content-end' :currentIndex < listItemdata.videos.length - 1 , 'justify-content-between' : currentIndex > 0 }\">\r\n <button class=\"nav left d-flex align-items-center justify-content-center\" *ngIf=\"currentIndex > 0\"><mat-icon\r\n style=\"width:20px !important\" (click)=\"playPreviousVideo()\">keyboard_arrow_left</mat-icon></button>\r\n <button class=\"nav right d-flex align-items-center justify-content-center\" (click)=\"playNextVideo()\"\r\n *ngIf=\"currentIndex < listItemdata.videos.length - 1\"><mat-icon\r\n style=\"width:20px !important\">keyboard_arrow_right</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"products-list-container position-fixed d-flex flex-column gap-4\">\r\n <ng-container *ngFor=\"let product of productsList\">\r\n <div class=\"product-badge cursor-pointer\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <img [src]=\"product.itemImages[0].imgUrl\" alt=\"Ring\" class=\"product-img\" /></a>\r\n <div class=\"product-info justify-content-between\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <div class=\"product-details d-flex flex-column gap-1\">\r\n <div class=\"product-title\">\r\n {{product.name.length > 30 ? product.name.slice(0, 30) + '...' : product.name}}\r\n </div>\r\n <div class=\"product-price d-flex align-items-start\">\r\n \u20B9{{product.price.sellingPrice}}\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-center justify-content-center gap-1\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/700072c1770270395432favourite-svgrepo-com.svg\"\r\n style=\"width: 18px;\" *ngIf=\"!product.whislist\" (click)=\"toggleItemToFav($event, product, 'ADD')\">\r\n <img\r\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/304116c1770274132910favourite-svgrepo-com_(1).svg\"\r\n style=\"width: 18px;\" *ngIf=\"product.whislist\" (click)=\"toggleItemToFav($event, product, 'REMOVE')\">\r\n <img\r\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/695144c1770270669546cart-shopping-svgrepo-com.svg\"\r\n style=\"width:19px\" *ngIf=\"product.quantity <= 0\" (click)=\"addItemToCart($event, product, 'ADD')\">\r\n <img\r\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795342c1770275383344shopping-cart-fill-svgrepo-com.svg\"\r\n style=\"width:19px\" *ngIf=\"product.quantity >= 1\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</section>", styles: [".overlay{position:fixed;inset:0;background:#00000073;z-index:999}.main_section{position:fixed;inset:0;background:transparent;z-index:1000}.mute-unmute{width:30px;margin-right:10px;cursor:pointer}.videos-container{width:fit-content}.video-card{position:relative;width:360px;height:85vh;border-radius:18px;overflow:hidden;background:transparent}.video-content{width:100%;height:100%;object-fit:cover}.top-bar{position:absolute;top:10px;left:10px;right:10px;display:flex;align-items:center;justify-content:space-between;z-index:2}.progress-bar{flex:1;height:3px;background:#fff6;border-radius:2px;margin-right:10px}.close{font-size:22px;color:#fff;cursor:pointer}.nav-arrows{position:absolute;top:50%;padding:0 1rem}.nav{width:36px!important;height:36px;border-radius:50%;border:none;background:#0006;color:#fff;font-size:22px;cursor:pointer;z-index:2;outline:none}.nav.left{left:10px}.nav.right{right:10px}.products-list-container{right:13%;top:10%;max-height:100%;overflow-y:scroll}.product-card{position:absolute;bottom:14px;left:14px;right:14px;background:#fff;border-radius:14px;padding:10px;display:flex;align-items:center;gap:10px;z-index:2}.product-card img{width:44px;height:44px;border-radius:8px;object-fit:cover}.product-card .info{flex:1}.product-card .title{font-size:14px;font-weight:500;margin:0;color:#222}.product-card .price{font-size:15px;font-weight:600;margin:2px 0 0;color:#000}.product-badge{display:flex;align-items:center;gap:12px;padding:10px;background:#fff9;border-radius:10px;width:322px;box-shadow:0 6px 18px #00000026;transition:background .3s ease,box-shadow .3s ease}.product-badge:hover{background:#f0f0f0e6;box-shadow:0 8px 22px #0003}.product-img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.product-info{display:flex;gap:4px;width:90%}.product-title{font-size:12px;font-weight:500;color:#1a1a1a;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-link{text-decoration:none;color:inherit}.products-cards{bottom:0;overflow-x:scroll}.product-price{font-size:16px;font-weight:700;color:#000}@media screen and (max-width: 475px){.video-card{width:100%}}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
127
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VideoShowcaseComponent, isStandalone: true, selector: "simpo-video-showcase", providers: [MessageService], viewQueries: [{ propertyName: "videoPlayer", first: true, predicate: ["videoPlayer"], descendants: true }], ngImport: i0, template: "<section class=\"overlay\"></section>\n\n<section class=\"main_section d-flex align-items-center justify-content-center\">\n <div class=\"videos-container\">\n <div class=\"video-card\">\n <div class=\"top-bar d-flex align-items-center\">\n <span class=\"progress-bar\"></span>\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/802576c1770375389274muted-svgrepo-com.svg\"\n class=\"mute-unmute\" *ngIf=\"videoMuted\" (click)=\"videoMuted = false\">\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/711833c1770375515828volume-loud-svgrepo-com.svg\"\n class=\"mute-unmute\" *ngIf=\"!videoMuted\" (click)=\"videoMuted=true\">\n <span class=\"close\" (click)=\"closeDialog()\">\u2715</span>\n </div>\n\n <!-- Video -->\n <video #videoPlayer class=\"video-content\" autoplay loop playsinline [src]=\"videoUrl\" [controls]=\"false\"\n [muted]=\"videoMuted\">\n </video>\n\n <!-- Navigation arrows -->\n <div class=\"d-flex align-items-center nav-arrows w-100\"\n [ngClass]=\"{'justify-content-end' :currentIndex < listItemdata.videos.length - 1 , 'justify-content-between' : currentIndex > 0 }\">\n <button class=\"nav left d-flex align-items-center justify-content-center\" *ngIf=\"currentIndex > 0\"><mat-icon\n style=\"width:20px !important\" (click)=\"playPreviousVideo()\">keyboard_arrow_left</mat-icon></button>\n <button class=\"nav right d-flex align-items-center justify-content-center\" (click)=\"playNextVideo()\"\n *ngIf=\"currentIndex < listItemdata.videos.length - 1\"><mat-icon\n style=\"width:20px !important\">keyboard_arrow_right</mat-icon></button>\n </div>\n </div>\n </div>\n <div class=\"products-list-container position-fixed d-flex flex-column gap-4\">\n <ng-container *ngFor=\"let product of productsList\">\n <div class=\"product-badge cursor-pointer\">\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\n <img [src]=\"product.itemImages[0].imgUrl\" alt=\"Ring\" class=\"product-img\" /></a>\n <div class=\"product-info justify-content-between\">\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\n <div class=\"product-details d-flex flex-column gap-1\">\n <div class=\"product-title\">\n {{product.name.length > 30 ? product.name.slice(0, 30) + '...' : product.name}}\n </div>\n <div class=\"product-price d-flex align-items-start\">\n \u20B9{{product.price.sellingPrice}}\n </div>\n </div>\n </a>\n <div class=\"d-flex align-items-center justify-content-center gap-1\">\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/700072c1770270395432favourite-svgrepo-com.svg\"\n style=\"width: 18px;\" *ngIf=\"!product.whislist\" (click)=\"toggleItemToFav($event, product, 'ADD')\">\n <img\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/304116c1770274132910favourite-svgrepo-com_(1).svg\"\n style=\"width: 18px;\" *ngIf=\"product.whislist\" (click)=\"toggleItemToFav($event, product, 'REMOVE')\">\n <img\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/695144c1770270669546cart-shopping-svgrepo-com.svg\"\n style=\"width:19px\" *ngIf=\"product.quantity <= 0\" (click)=\"addItemToCart($event, product, 'ADD')\">\n <img\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795342c1770275383344shopping-cart-fill-svgrepo-com.svg\"\n style=\"width:19px\" *ngIf=\"product.quantity >= 1\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\">\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</section>", styles: [".overlay{position:fixed;inset:0;background:#00000073;z-index:999}.main_section{position:fixed;inset:0;background:transparent;z-index:1000}.mute-unmute{width:30px;margin-right:10px;cursor:pointer}.videos-container{width:fit-content}.video-card{position:relative;width:360px;height:85vh;border-radius:18px;overflow:hidden;background:transparent}.video-content{width:100%;height:100%;object-fit:cover}.top-bar{position:absolute;top:10px;left:10px;right:10px;display:flex;align-items:center;justify-content:space-between;z-index:2}.progress-bar{flex:1;height:3px;background:#fff6;border-radius:2px;margin-right:10px}.close{font-size:22px;color:#fff;cursor:pointer}.nav-arrows{position:absolute;top:50%;padding:0 1rem}.nav{width:36px!important;height:36px;border-radius:50%;border:none;background:#0006;color:#fff;font-size:22px;cursor:pointer;z-index:2;outline:none}.nav.left{left:10px}.nav.right{right:10px}.products-list-container{right:13%;top:10%;max-height:100%;overflow-y:scroll}.product-card{position:absolute;bottom:14px;left:14px;right:14px;background:#fff;border-radius:14px;padding:10px;display:flex;align-items:center;gap:10px;z-index:2}.product-card img{width:44px;height:44px;border-radius:8px;object-fit:cover}.product-card .info{flex:1}.product-card .title{font-size:14px;font-weight:500;margin:0;color:#222}.product-card .price{font-size:15px;font-weight:600;margin:2px 0 0;color:#000}.product-badge{display:flex;align-items:center;gap:12px;padding:10px;background:#fff9;border-radius:10px;width:322px;box-shadow:0 6px 18px #00000026;transition:background .3s ease,box-shadow .3s ease}.product-badge:hover{background:#f0f0f0e6;box-shadow:0 8px 22px #0003}.product-img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.product-info{display:flex;gap:4px;width:90%}.product-title{font-size:12px;font-weight:500;color:#1a1a1a;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-link{text-decoration:none;color:inherit}.products-cards{bottom:0;overflow-x:scroll}.product-price{font-size:16px;font-weight:700;color:#000}@media screen and (max-width: 475px){.video-card{width:100%}}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
128
128
  }
129
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VideoShowcaseComponent, decorators: [{
130
130
  type: Component,
131
- args: [{ selector: 'simpo-video-showcase', standalone: true, imports: [MatIcon, CommonModule], providers: [MessageService], template: "<section class=\"overlay\"></section>\r\n\r\n<section class=\"main_section d-flex align-items-center justify-content-center\">\r\n <div class=\"videos-container\">\r\n <div class=\"video-card\">\r\n <div class=\"top-bar d-flex align-items-center\">\r\n <span class=\"progress-bar\"></span>\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/802576c1770375389274muted-svgrepo-com.svg\"\r\n class=\"mute-unmute\" *ngIf=\"videoMuted\" (click)=\"videoMuted = false\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/711833c1770375515828volume-loud-svgrepo-com.svg\"\r\n class=\"mute-unmute\" *ngIf=\"!videoMuted\" (click)=\"videoMuted=true\">\r\n <span class=\"close\" (click)=\"closeDialog()\">\u2715</span>\r\n </div>\r\n\r\n <!-- Video -->\r\n <video #videoPlayer class=\"video-content\" autoplay loop playsinline [src]=\"videoUrl\" [controls]=\"false\"\r\n [muted]=\"videoMuted\">\r\n </video>\r\n\r\n <!-- Navigation arrows -->\r\n <div class=\"d-flex align-items-center nav-arrows w-100\"\r\n [ngClass]=\"{'justify-content-end' :currentIndex < listItemdata.videos.length - 1 , 'justify-content-between' : currentIndex > 0 }\">\r\n <button class=\"nav left d-flex align-items-center justify-content-center\" *ngIf=\"currentIndex > 0\"><mat-icon\r\n style=\"width:20px !important\" (click)=\"playPreviousVideo()\">keyboard_arrow_left</mat-icon></button>\r\n <button class=\"nav right d-flex align-items-center justify-content-center\" (click)=\"playNextVideo()\"\r\n *ngIf=\"currentIndex < listItemdata.videos.length - 1\"><mat-icon\r\n style=\"width:20px !important\">keyboard_arrow_right</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"products-list-container position-fixed d-flex flex-column gap-4\">\r\n <ng-container *ngFor=\"let product of productsList\">\r\n <div class=\"product-badge cursor-pointer\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <img [src]=\"product.itemImages[0].imgUrl\" alt=\"Ring\" class=\"product-img\" /></a>\r\n <div class=\"product-info justify-content-between\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <div class=\"product-details d-flex flex-column gap-1\">\r\n <div class=\"product-title\">\r\n {{product.name.length > 30 ? product.name.slice(0, 30) + '...' : product.name}}\r\n </div>\r\n <div class=\"product-price d-flex align-items-start\">\r\n \u20B9{{product.price.sellingPrice}}\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-center justify-content-center gap-1\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/700072c1770270395432favourite-svgrepo-com.svg\"\r\n style=\"width: 18px;\" *ngIf=\"!product.whislist\" (click)=\"toggleItemToFav($event, product, 'ADD')\">\r\n <img\r\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/304116c1770274132910favourite-svgrepo-com_(1).svg\"\r\n style=\"width: 18px;\" *ngIf=\"product.whislist\" (click)=\"toggleItemToFav($event, product, 'REMOVE')\">\r\n <img\r\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/695144c1770270669546cart-shopping-svgrepo-com.svg\"\r\n style=\"width:19px\" *ngIf=\"product.quantity <= 0\" (click)=\"addItemToCart($event, product, 'ADD')\">\r\n <img\r\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795342c1770275383344shopping-cart-fill-svgrepo-com.svg\"\r\n style=\"width:19px\" *ngIf=\"product.quantity >= 1\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</section>", styles: [".overlay{position:fixed;inset:0;background:#00000073;z-index:999}.main_section{position:fixed;inset:0;background:transparent;z-index:1000}.mute-unmute{width:30px;margin-right:10px;cursor:pointer}.videos-container{width:fit-content}.video-card{position:relative;width:360px;height:85vh;border-radius:18px;overflow:hidden;background:transparent}.video-content{width:100%;height:100%;object-fit:cover}.top-bar{position:absolute;top:10px;left:10px;right:10px;display:flex;align-items:center;justify-content:space-between;z-index:2}.progress-bar{flex:1;height:3px;background:#fff6;border-radius:2px;margin-right:10px}.close{font-size:22px;color:#fff;cursor:pointer}.nav-arrows{position:absolute;top:50%;padding:0 1rem}.nav{width:36px!important;height:36px;border-radius:50%;border:none;background:#0006;color:#fff;font-size:22px;cursor:pointer;z-index:2;outline:none}.nav.left{left:10px}.nav.right{right:10px}.products-list-container{right:13%;top:10%;max-height:100%;overflow-y:scroll}.product-card{position:absolute;bottom:14px;left:14px;right:14px;background:#fff;border-radius:14px;padding:10px;display:flex;align-items:center;gap:10px;z-index:2}.product-card img{width:44px;height:44px;border-radius:8px;object-fit:cover}.product-card .info{flex:1}.product-card .title{font-size:14px;font-weight:500;margin:0;color:#222}.product-card .price{font-size:15px;font-weight:600;margin:2px 0 0;color:#000}.product-badge{display:flex;align-items:center;gap:12px;padding:10px;background:#fff9;border-radius:10px;width:322px;box-shadow:0 6px 18px #00000026;transition:background .3s ease,box-shadow .3s ease}.product-badge:hover{background:#f0f0f0e6;box-shadow:0 8px 22px #0003}.product-img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.product-info{display:flex;gap:4px;width:90%}.product-title{font-size:12px;font-weight:500;color:#1a1a1a;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-link{text-decoration:none;color:inherit}.products-cards{bottom:0;overflow-x:scroll}.product-price{font-size:16px;font-weight:700;color:#000}@media screen and (max-width: 475px){.video-card{width:100%}}\n"] }]
131
+ args: [{ selector: 'simpo-video-showcase', standalone: true, imports: [MatIcon, CommonModule], providers: [MessageService], template: "<section class=\"overlay\"></section>\n\n<section class=\"main_section d-flex align-items-center justify-content-center\">\n <div class=\"videos-container\">\n <div class=\"video-card\">\n <div class=\"top-bar d-flex align-items-center\">\n <span class=\"progress-bar\"></span>\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/802576c1770375389274muted-svgrepo-com.svg\"\n class=\"mute-unmute\" *ngIf=\"videoMuted\" (click)=\"videoMuted = false\">\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/711833c1770375515828volume-loud-svgrepo-com.svg\"\n class=\"mute-unmute\" *ngIf=\"!videoMuted\" (click)=\"videoMuted=true\">\n <span class=\"close\" (click)=\"closeDialog()\">\u2715</span>\n </div>\n\n <!-- Video -->\n <video #videoPlayer class=\"video-content\" autoplay loop playsinline [src]=\"videoUrl\" [controls]=\"false\"\n [muted]=\"videoMuted\">\n </video>\n\n <!-- Navigation arrows -->\n <div class=\"d-flex align-items-center nav-arrows w-100\"\n [ngClass]=\"{'justify-content-end' :currentIndex < listItemdata.videos.length - 1 , 'justify-content-between' : currentIndex > 0 }\">\n <button class=\"nav left d-flex align-items-center justify-content-center\" *ngIf=\"currentIndex > 0\"><mat-icon\n style=\"width:20px !important\" (click)=\"playPreviousVideo()\">keyboard_arrow_left</mat-icon></button>\n <button class=\"nav right d-flex align-items-center justify-content-center\" (click)=\"playNextVideo()\"\n *ngIf=\"currentIndex < listItemdata.videos.length - 1\"><mat-icon\n style=\"width:20px !important\">keyboard_arrow_right</mat-icon></button>\n </div>\n </div>\n </div>\n <div class=\"products-list-container position-fixed d-flex flex-column gap-4\">\n <ng-container *ngFor=\"let product of productsList\">\n <div class=\"product-badge cursor-pointer\">\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\n <img [src]=\"product.itemImages[0].imgUrl\" alt=\"Ring\" class=\"product-img\" /></a>\n <div class=\"product-info justify-content-between\">\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\n <div class=\"product-details d-flex flex-column gap-1\">\n <div class=\"product-title\">\n {{product.name.length > 30 ? product.name.slice(0, 30) + '...' : product.name}}\n </div>\n <div class=\"product-price d-flex align-items-start\">\n \u20B9{{product.price.sellingPrice}}\n </div>\n </div>\n </a>\n <div class=\"d-flex align-items-center justify-content-center gap-1\">\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/700072c1770270395432favourite-svgrepo-com.svg\"\n style=\"width: 18px;\" *ngIf=\"!product.whislist\" (click)=\"toggleItemToFav($event, product, 'ADD')\">\n <img\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/304116c1770274132910favourite-svgrepo-com_(1).svg\"\n style=\"width: 18px;\" *ngIf=\"product.whislist\" (click)=\"toggleItemToFav($event, product, 'REMOVE')\">\n <img\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/695144c1770270669546cart-shopping-svgrepo-com.svg\"\n style=\"width:19px\" *ngIf=\"product.quantity <= 0\" (click)=\"addItemToCart($event, product, 'ADD')\">\n <img\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795342c1770275383344shopping-cart-fill-svgrepo-com.svg\"\n style=\"width:19px\" *ngIf=\"product.quantity >= 1\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\">\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</section>", styles: [".overlay{position:fixed;inset:0;background:#00000073;z-index:999}.main_section{position:fixed;inset:0;background:transparent;z-index:1000}.mute-unmute{width:30px;margin-right:10px;cursor:pointer}.videos-container{width:fit-content}.video-card{position:relative;width:360px;height:85vh;border-radius:18px;overflow:hidden;background:transparent}.video-content{width:100%;height:100%;object-fit:cover}.top-bar{position:absolute;top:10px;left:10px;right:10px;display:flex;align-items:center;justify-content:space-between;z-index:2}.progress-bar{flex:1;height:3px;background:#fff6;border-radius:2px;margin-right:10px}.close{font-size:22px;color:#fff;cursor:pointer}.nav-arrows{position:absolute;top:50%;padding:0 1rem}.nav{width:36px!important;height:36px;border-radius:50%;border:none;background:#0006;color:#fff;font-size:22px;cursor:pointer;z-index:2;outline:none}.nav.left{left:10px}.nav.right{right:10px}.products-list-container{right:13%;top:10%;max-height:100%;overflow-y:scroll}.product-card{position:absolute;bottom:14px;left:14px;right:14px;background:#fff;border-radius:14px;padding:10px;display:flex;align-items:center;gap:10px;z-index:2}.product-card img{width:44px;height:44px;border-radius:8px;object-fit:cover}.product-card .info{flex:1}.product-card .title{font-size:14px;font-weight:500;margin:0;color:#222}.product-card .price{font-size:15px;font-weight:600;margin:2px 0 0;color:#000}.product-badge{display:flex;align-items:center;gap:12px;padding:10px;background:#fff9;border-radius:10px;width:322px;box-shadow:0 6px 18px #00000026;transition:background .3s ease,box-shadow .3s ease}.product-badge:hover{background:#f0f0f0e6;box-shadow:0 8px 22px #0003}.product-img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.product-info{display:flex;gap:4px;width:90%}.product-title{font-size:12px;font-weight:500;color:#1a1a1a;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-link{text-decoration:none;color:inherit}.products-cards{bottom:0;overflow-x:scroll}.product-price{font-size:16px;font-weight:700;color:#000}@media screen and (max-width: 475px){.video-card{width:100%}}\n"] }]
132
132
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
133
133
  type: Inject,
134
134
  args: [MAT_DIALOG_DATA]
@@ -136,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
136
136
  type: ViewChild,
137
137
  args: ['videoPlayer']
138
138
  }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tc2hvd2Nhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy92aWRlby1zaG93Y2FzZS92aWRlby1zaG93Y2FzZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZGVvLXNob3djYXNlL3ZpZGVvLXNob3djYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7OztBQVV6RSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1MsU0FBK0MsRUFDdEIsWUFBaUIsRUFDaEMsY0FBOEIsRUFDOUIsV0FBd0I7UUFIbEMsY0FBUyxHQUFULFNBQVMsQ0FBc0M7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQUs7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBYzNDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUNqQixrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFDbkMsY0FBUyxHQUFtQixFQUFFLENBQUM7UUFqQnJDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQzVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQU9ELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDdEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDdEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsY0FBYyxDQUFDLE9BQWdCLEVBQUUsU0FBaUI7UUFDbEQsSUFBSSxlQUFlLEdBQXVCLElBQUksQ0FBQztRQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtZQUNyRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUztnQkFDakMsZUFBZSxHQUFHLE9BQU8sQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxlQUFlLENBQUMsS0FBZ0MsRUFBRSxPQUFnQixFQUFFLElBQXNCO1FBQ3hGLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSw2QkFBNkIsRUFBRSxDQUFDLENBQUM7WUFDN0csSUFBSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUNqQyxNQUFNLFdBQVcsR0FBdUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN4RixJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUNoQixXQUFXLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFrQixFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDakYsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDO2FBQ0ksQ0FBQztZQUNKLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxpQ0FBaUMsRUFBRSxDQUFDLENBQUM7WUFDOUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNySCxDQUFDO1FBQ0QsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUMvQixPQUFPLE9BQU8sQ0FBQyxhQUFhLEVBQUUsWUFBWSxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQWdDLEVBQUUsT0FBZ0IsRUFBRSxJQUF5QjtRQUN6RixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxvRUFBb0UsRUFBRSxDQUFDLENBQUM7WUFDN0ksT0FBTztRQUNULENBQUM7UUFDRCxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNqQyxNQUFNLFdBQVcsR0FBdUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hGLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLFdBQVcsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRSxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsSUFBSSxTQUFTLEdBQVksS0FBSyxDQUFDO1lBQy9CLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBa0IsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7b0JBQ2pDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ25CLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxTQUFTO2dCQUNaLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0csQ0FBQztJQUNILENBQUM7K0dBOUdVLHNCQUFzQiw4Q0FHdkIsZUFBZTttR0FIZCxzQkFBc0IsbUVBSnRCLENBQUMsY0FBYyxDQUFDLHNJQ2I3Qiw4NkhBK0RVLDBvRURuREUsT0FBTywwSUFBRSxZQUFZOzs0RkFLcEIsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLGFBQ3JCLENBQUMsY0FBYyxDQUFDOzswQkFPeEIsTUFBTTsyQkFBQyxlQUFlO2dHQU1DLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSXRlbVZhcmlhbnQsIFByb2R1Y3QgfSBmcm9tICdwcm9qZWN0cy9zaW1wby11aS9zcmMvcHVibGljLWFwaSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE9yZGVyZWRJdGVtcyB9IGZyb20gJy4uLy4uL2Vjb21tZXJjZS9zdHlsZXMvT3JkZXJlZEl0ZW1zLm1vZGFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tdmlkZW8tc2hvd2Nhc2UnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW01hdEljb24sIENvbW1vbk1vZHVsZV0sXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi92aWRlby1zaG93Y2FzZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3ZpZGVvLXNob3djYXNlLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWRlb1Nob3djYXNlQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxWaWRlb1Nob3djYXNlQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgbGlzdEl0ZW1kYXRhOiBhbnksXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgY29uc29sZS5sb2coJ2xpc3RJdGVtZGF0YScsIGxpc3RJdGVtZGF0YSk7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3ZpZGVvUGxheWVyJykgdmlkZW9QbGF5ZXIhOiBFbGVtZW50UmVmPEhUTUxWaWRlb0VsZW1lbnQ+O1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5saXN0SXRlbWRhdGEudmlkZW9zLmZvckVhY2goKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICBpZiAoaXRlbS52aWRlby5pZCA9PT0gdGhpcy5saXN0SXRlbWRhdGEuaW5pdGlhdGVWaWRlb0lkKSB7XHJcbiAgICAgICAgdGhpcy52aWRlb1VybCA9IGl0ZW0udmlkZW8udXJsO1xyXG4gICAgICAgIHRoaXMucHJvZHVjdHNMaXN0ID0gaXRlbS52aWRlby5wcm9kdWN0cztcclxuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgdmlkZW9NdXRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHZpZGVvVXJsOiBzdHJpbmcgPSAnJztcclxuICBjdXJyZW50SW5kZXg6IG51bWJlciA9IDA7XHJcbiAgcHJvZHVjdHNMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIHByaXZhdGUgVVNFUl9XSVNITElTVDogT3JkZXJlZEl0ZW1zW10gPSBbXTtcclxuICBwcml2YXRlIFVTRVJfQ0FSVDogT3JkZXJlZEl0ZW1zW10gPSBbXTtcclxuICBjbG9zZURpYWxvZygpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG4gIHBsYXlOZXh0VmlkZW8oKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRJbmRleCsrO1xyXG4gICAgdGhpcy52aWRlb1VybCA9IHRoaXMubGlzdEl0ZW1kYXRhLnZpZGVvc1t0aGlzLmN1cnJlbnRJbmRleF0udmlkZW8udXJsO1xyXG4gICAgdGhpcy5wcm9kdWN0c0xpc3QgPSB0aGlzLmxpc3RJdGVtZGF0YS52aWRlb3NbdGhpcy5jdXJyZW50SW5kZXhdLnZpZGVvLnByb2R1Y3RzO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMudmlkZW9QbGF5ZXIubmF0aXZlRWxlbWVudC5sb2FkKCk7XHJcbiAgICAgIHRoaXMudmlkZW9QbGF5ZXIubmF0aXZlRWxlbWVudC5wbGF5KCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcGxheVByZXZpb3VzVmlkZW8oKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRJbmRleC0tO1xyXG4gICAgdGhpcy52aWRlb1VybCA9IHRoaXMubGlzdEl0ZW1kYXRhLnZpZGVvc1t0aGlzLmN1cnJlbnRJbmRleF0udmlkZW8udXJsO1xyXG4gICAgdGhpcy5wcm9kdWN0c0xpc3QgPSB0aGlzLmxpc3RJdGVtZGF0YS52aWRlb3NbdGhpcy5jdXJyZW50SW5kZXhdLnZpZGVvLnByb2R1Y3RzO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMudmlkZW9QbGF5ZXIubmF0aXZlRWxlbWVudC5sb2FkKCk7XHJcbiAgICAgIHRoaXMudmlkZW9QbGF5ZXIubmF0aXZlRWxlbWVudC5wbGF5KCk7XHJcbiAgICB9KTtcclxuICB9IGdldEl0ZW1WYXJpZW50KHByb2R1Y3Q6IFByb2R1Y3QsIHZhcmllbnRJZDogc3RyaW5nKTogSXRlbVZhcmlhbnQgfCBudWxsIHtcclxuICAgIGxldCBzZWxlY3RlZFZhcmllbnQ6IEl0ZW1WYXJpYW50IHwgbnVsbCA9IG51bGw7XHJcbiAgICBwcm9kdWN0Py5pdGVtVmFyaWFudD8uZm9yRWFjaCgodmFyaWVudDogSXRlbVZhcmlhbnQpID0+IHtcclxuICAgICAgaWYgKHZhcmllbnQudmFyaWFudElkID09PSB2YXJpZW50SWQpXHJcbiAgICAgICAgc2VsZWN0ZWRWYXJpZW50ID0gdmFyaWVudDtcclxuICAgIH0pXHJcbiAgICByZXR1cm4gc2VsZWN0ZWRWYXJpZW50O1xyXG4gIH1cclxuICB0b2dnbGVJdGVtVG9GYXYoZXZlbnQ6IFBvaW50ZXJFdmVudCB8IE1vdXNlRXZlbnQsIHByb2R1Y3Q6IFByb2R1Y3QsIHR5cGU6ICdBREQnIHwgJ1JFTU9WRScpIHtcclxuICAgIGlmICh0eXBlID09ICdBREQnKSB7XHJcbiAgICAgIHByb2R1Y3Qud2hpc2xpc3QgPSB0cnVlO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdXaXNobGlzdCcsIGRldGFpbDogJ0l0ZW0gYWRkZWQgdG8geW91ciB3aXNobGlzdCcgfSk7XHJcbiAgICAgIGlmIChwcm9kdWN0Py5pdGVtVmFyaWFudD8ubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbVZhcmllbnQ6IEl0ZW1WYXJpYW50IHwgbnVsbCA9IHRoaXMuZ2V0SXRlbVZhcmllbnQocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpO1xyXG4gICAgICAgIGlmIChpdGVtVmFyaWVudCkge1xyXG4gICAgICAgICAgaXRlbVZhcmllbnQud2lzaGxpc3QgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9GYXZvdXJpdGUocHJvZHVjdCBhcyBQcm9kdWN0LCBpdGVtVmFyaWVudC52YXJpYW50SWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0Zhdm91cml0ZShwcm9kdWN0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHByb2R1Y3Qud2hpc2xpc3QgPSBmYWxzZTtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2luZm8nLCBzdW1tYXJ5OiAnV2lzaGxpc3QnLCBkZXRhaWw6ICdJdGVtIHJlbW92ZWQgZnJvbSB5b3VyIHdpc2hsaXN0JyB9KTtcclxuICAgICAgdGhpcy5jYXJ0U2VydmljZS5yZW1vdmVJdGVtRnJvbUZhdm91cml0ZShwcm9kdWN0LnZhcmllbnRJZCwgcHJvZHVjdC5pdGVtSWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb2R1Y3Qud2hpc2xpc3QpIHtcclxuICAgICAgdGhpcy5VU0VSX1dJU0hMSVNUPy5wdXNoKG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuVVNFUl9XSVNITElTVCA9IHRoaXMuVVNFUl9XSVNITElTVD8uZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpID0+IGl0ZW0udmFyaWVudElkICE9IHByb2R1Y3QudmFyaWVudElkKSA/PyBbXTtcclxuICAgIH1cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBpc0l0ZW1PdXRPZlN0b2NrKHByb2R1Y3Q6IFByb2R1Y3QpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBwcm9kdWN0Lml0ZW1JbnZlbnRvcnk/Lm9wZW5pbmdTdG9jayA9PSAwO1xyXG4gIH1cclxuICBhZGRJdGVtVG9DYXJ0KGV2ZW50OiBQb2ludGVyRXZlbnQgfCBNb3VzZUV2ZW50LCBwcm9kdWN0OiBQcm9kdWN0LCB0eXBlOiAnQUREJyB8ICdTVUJTVFJBQ1QnKSB7XHJcbiAgICBpZiAodGhpcy5pc0l0ZW1PdXRPZlN0b2NrKHByb2R1Y3QpKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICd3YXJuJywgc3VtbWFyeTogJ0NhcnQnLCBkZXRhaWw6ICdJdGVtIGlzIG5vdCBhdmFpbGFibGUgYXMgb2Ygbm93LiBXZSB3aWxsIG5vdGlmeSB5b3Ugb25jZSBhdmFpbGFibGUnIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBwcm9kdWN0LnF1YW50aXR5ICs9ICh0eXBlID09ICdBREQnID8gMSA6IC0xKTtcclxuICAgIGlmIChwcm9kdWN0Py5pdGVtVmFyaWFudD8ubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGl0ZW1WYXJpZW50OiBJdGVtVmFyaWFudCB8IG51bGwgPSB0aGlzLmdldEl0ZW1WYXJpZW50KHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKTtcclxuICAgICAgaWYgKGl0ZW1WYXJpZW50KSB7XHJcbiAgICAgICAgaXRlbVZhcmllbnQucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5O1xyXG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvQ2FydChwcm9kdWN0LCBpdGVtVmFyaWVudC52YXJpYW50SWQpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0NhcnQocHJvZHVjdCk7XHJcbiAgICB9XHJcbiAgICBpZiAocHJvZHVjdC5xdWFudGl0eSkge1xyXG4gICAgICBsZXQgaXNQcmVzZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuVVNFUl9DQVJUPy5mb3JFYWNoKChpdGVtOiBPcmRlcmVkSXRlbXMpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS52YXJpZW50SWQgPT0gcHJvZHVjdC52YXJpZW50SWQpIHtcclxuICAgICAgICAgIGl0ZW0ucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5O1xyXG4gICAgICAgICAgaXNQcmVzZW50ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICghaXNQcmVzZW50KVxyXG4gICAgICAgIHRoaXMuVVNFUl9DQVJUPy5wdXNoKG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuVVNFUl9DQVJUID0gdGhpcy5VU0VSX0NBUlQ/LmZpbHRlcigoaXRlbTogT3JkZXJlZEl0ZW1zKSA9PiBpdGVtLnZhcmllbnRJZCAhPSBwcm9kdWN0LnZhcmllbnRJZCkgPz8gW107XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwib3ZlcmxheVwiPjwvc2VjdGlvbj5cclxuXHJcbjxzZWN0aW9uIGNsYXNzPVwibWFpbl9zZWN0aW9uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ2aWRlb3MtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidmlkZW8tY2FyZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidG9wLWJhciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9ncmVzcy1iYXJcIj48L3NwYW4+XHJcbiAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzgwMjU3NmMxNzcwMzc1Mzg5Mjc0bXV0ZWQtc3ZncmVwby1jb20uc3ZnXCJcclxuICAgICAgICAgIGNsYXNzPVwibXV0ZS11bm11dGVcIiAqbmdJZj1cInZpZGVvTXV0ZWRcIiAoY2xpY2spPVwidmlkZW9NdXRlZCA9IGZhbHNlXCI+XHJcbiAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzcxMTgzM2MxNzcwMzc1NTE1ODI4dm9sdW1lLWxvdWQtc3ZncmVwby1jb20uc3ZnXCJcclxuICAgICAgICAgIGNsYXNzPVwibXV0ZS11bm11dGVcIiAqbmdJZj1cIiF2aWRlb011dGVkXCIgKGNsaWNrKT1cInZpZGVvTXV0ZWQ9dHJ1ZVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiPuKclTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIFZpZGVvIC0tPlxyXG4gICAgICA8dmlkZW8gI3ZpZGVvUGxheWVyIGNsYXNzPVwidmlkZW8tY29udGVudFwiIGF1dG9wbGF5IGxvb3AgcGxheXNpbmxpbmUgW3NyY109XCJ2aWRlb1VybFwiIFtjb250cm9sc109XCJmYWxzZVwiXHJcbiAgICAgICAgW211dGVkXT1cInZpZGVvTXV0ZWRcIj5cclxuICAgICAgPC92aWRlbz5cclxuXHJcbiAgICAgIDwhLS0gTmF2aWdhdGlvbiBhcnJvd3MgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG5hdi1hcnJvd3Mgdy0xMDBcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnanVzdGlmeS1jb250ZW50LWVuZCcgOmN1cnJlbnRJbmRleCA8IGxpc3RJdGVtZGF0YS52aWRlb3MubGVuZ3RoIC0gMSAsICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbicgOiBjdXJyZW50SW5kZXggPiAwIH1cIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2IGxlZnQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgKm5nSWY9XCJjdXJyZW50SW5kZXggPiAwXCI+PG1hdC1pY29uXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MjBweCAhaW1wb3J0YW50XCIgKGNsaWNrKT1cInBsYXlQcmV2aW91c1ZpZGVvKClcIj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2IHJpZ2h0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiIChjbGljayk9XCJwbGF5TmV4dFZpZGVvKClcIlxyXG4gICAgICAgICAgKm5nSWY9XCJjdXJyZW50SW5kZXggPCBsaXN0SXRlbWRhdGEudmlkZW9zLmxlbmd0aCAtIDFcIj48bWF0LWljb25cclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoyMHB4ICFpbXBvcnRhbnRcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInByb2R1Y3RzLWxpc3QtY29udGFpbmVyIHBvc2l0aW9uLWZpeGVkIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtNFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0c0xpc3RcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtYmFkZ2UgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICA8YSBbaHJlZl09XCJwcm9kdWN0LnJlZGlyZWN0aW9uVXJsXCIgY2xhc3M9XCJwcm9kdWN0LWxpbmtcIj5cclxuICAgICAgICAgIDxpbWcgW3NyY109XCJwcm9kdWN0Lml0ZW1JbWFnZXNbMF0uaW1nVXJsXCIgYWx0PVwiUmluZ1wiIGNsYXNzPVwicHJvZHVjdC1pbWdcIiAvPjwvYT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1pbmZvIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICA8YSBbaHJlZl09XCJwcm9kdWN0LnJlZGlyZWN0aW9uVXJsXCIgY2xhc3M9XCJwcm9kdWN0LWxpbmtcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtZGV0YWlscyBkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTFcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAge3twcm9kdWN0Lm5hbWUubGVuZ3RoID4gMzAgPyBwcm9kdWN0Lm5hbWUuc2xpY2UoMCwgMzApICsgJy4uLicgOiBwcm9kdWN0Lm5hbWV9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXByaWNlIGQtZmxleCBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAg4oK5e3twcm9kdWN0LnByaWNlLnNlbGxpbmdQcmljZX19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBnYXAtMVwiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNzAwMDcyYzE3NzAyNzAzOTU0MzJmYXZvdXJpdGUtc3ZncmVwby1jb20uc3ZnXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxOHB4O1wiICpuZ0lmPVwiIXByb2R1Y3Qud2hpc2xpc3RcIiAoY2xpY2spPVwidG9nZ2xlSXRlbVRvRmF2KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCI+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzMwNDExNmMxNzcwMjc0MTMyOTEwZmF2b3VyaXRlLXN2Z3JlcG8tY29tXygxKS5zdmdcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDE4cHg7XCIgKm5nSWY9XCJwcm9kdWN0LndoaXNsaXN0XCIgKGNsaWNrKT1cInRvZ2dsZUl0ZW1Ub0ZhdigkZXZlbnQsIHByb2R1Y3QsICdSRU1PVkUnKVwiPlxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy82OTUxNDRjMTc3MDI3MDY2OTU0NmNhcnQtc2hvcHBpbmctc3ZncmVwby1jb20uc3ZnXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOjE5cHhcIiAqbmdJZj1cInByb2R1Y3QucXVhbnRpdHkgPD0gMFwiIChjbGljayk9XCJhZGRJdGVtVG9DYXJ0KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCI+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzc5NTM0MmMxNzcwMjc1MzgzMzQ0c2hvcHBpbmctY2FydC1maWxsLXN2Z3JlcG8tY29tLnN2Z1wiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxOXB4XCIgKm5nSWY9XCJwcm9kdWN0LnF1YW50aXR5ID49IDFcIiAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdTVUJTVFJBQ1QnKVwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvc2VjdGlvbj4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tc2hvd2Nhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy92aWRlby1zaG93Y2FzZS92aWRlby1zaG93Y2FzZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZGVvLXNob3djYXNlL3ZpZGVvLXNob3djYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7OztBQVV6RSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1MsU0FBK0MsRUFDdEIsWUFBaUIsRUFDaEMsY0FBOEIsRUFDOUIsV0FBd0I7UUFIbEMsY0FBUyxHQUFULFNBQVMsQ0FBc0M7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQUs7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBYzNDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUNqQixrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFD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LENBQUMsSUFBa0IsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7b0JBQ2pDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ25CLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxTQUFTO2dCQUNaLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0csQ0FBQztJQUNILENBQUM7K0dBOUdVLHNCQUFzQiw4Q0FHdkIsZUFBZTttR0FIZCxzQkFBc0IsbUVBSnRCLENBQUMsY0FBYyxDQUFDLHNJQ2I3QixnekhBK0RVLDBvRURuREUsT0FBTywwSUFBRSxZQUFZOzs0RkFLcEIsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLGFBQ3JCLENBQUMsY0FBYyxDQUFDOzswQkFPeEIsTUFBTTsyQkFBQyxlQUFlO2dHQU1DLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEl0ZW1WYXJpYW50LCBQcm9kdWN0IH0gZnJvbSAncHJvamVjdHMvc2ltcG8tdWkvc3JjL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLXZpZGVvLXNob3djYXNlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdEljb24sIENvbW1vbk1vZHVsZV0sXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZGVvLXNob3djYXNlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3ZpZGVvLXNob3djYXNlLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIFZpZGVvU2hvd2Nhc2VDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VmlkZW9TaG93Y2FzZUNvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBsaXN0SXRlbWRhdGE6IGFueSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcbiAgKSB7XG4gICAgY29uc29sZS5sb2coJ2xpc3RJdGVtZGF0YScsIGxpc3RJdGVtZGF0YSk7XG4gIH1cbiAgQFZpZXdDaGlsZCgndmlkZW9QbGF5ZXInKSB2aWRlb1BsYXllciE6IEVsZW1lbnRSZWY8SFRNTFZpZGVvRWxlbWVudD47XG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubGlzdEl0ZW1kYXRhLnZpZGVvcy5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChpdGVtLnZpZGVvLmlkID09PSB0aGlzLmxpc3RJdGVtZGF0YS5pbml0aWF0ZVZpZGVvSWQpIHtcbiAgICAgICAgdGhpcy52aWRlb1VybCA9IGl0ZW0udmlkZW8udXJsO1xuICAgICAgICB0aGlzLnByb2R1Y3RzTGlzdCA9IGl0ZW0udmlkZW8ucHJvZHVjdHM7XG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gaW5kZXg7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgdmlkZW9NdXRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICB2aWRlb1VybDogc3RyaW5nID0gJyc7XG4gIGN1cnJlbnRJbmRleDogbnVtYmVyID0gMDtcbiAgcHJvZHVjdHNMaXN0OiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIFVTRVJfV0lTSExJU1Q6IE9yZGVyZWRJdGVtc1tdID0gW107XG4gIHByaXZhdGUgVVNFUl9DQVJUOiBPcmRlcmVkSXRlbXNbXSA9IFtdO1xuICBjbG9zZURpYWxvZygpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG4gIHBsYXlOZXh0VmlkZW8oKSB7XG4gICAgdGhpcy5jdXJyZW50SW5kZXgrKztcbiAgICB0aGlzLnZpZGVvVXJsID0gdGhpcy5saXN0SXRlbWRhdGEudmlkZW9zW3RoaXMuY3VycmVudEluZGV4XS52aWRlby51cmw7XG4gICAgdGhpcy5wcm9kdWN0c0xpc3QgPSB0aGlzLmxpc3RJdGVtZGF0YS52aWRlb3NbdGhpcy5jdXJyZW50SW5kZXhdLnZpZGVvLnByb2R1Y3RzO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy52aWRlb1BsYXllci5uYXRpdmVFbGVtZW50LmxvYWQoKTtcbiAgICAgIHRoaXMudmlkZW9QbGF5ZXIubmF0aXZlRWxlbWVudC5wbGF5KCk7XG4gICAgfSk7XG4gIH1cbiAgcGxheVByZXZpb3VzVmlkZW8oKSB7XG4gICAgdGhpcy5jdXJyZW50SW5kZXgtLTtcbiAgICB0aGlzLnZpZGVvVXJsID0gdGhpcy5saXN0SXRlbWRhdGEudmlkZW9zW3RoaXMuY3VycmVudEluZGV4XS52aWRlby51cmw7XG4gICAgdGhpcy5wcm9kdWN0c0xpc3QgPSB0aGlzLmxpc3RJdGVtZGF0YS52aWRlb3NbdGhpcy5jdXJyZW50SW5kZXhdLnZpZGVvLnByb2R1Y3RzO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy52aWRlb1BsYXllci5uYXRpdmVFbGVtZW50LmxvYWQoKTtcbiAgICAgIHRoaXMudmlkZW9QbGF5ZXIubmF0aXZlRWxlbWVudC5wbGF5KCk7XG4gICAgfSk7XG4gIH0gZ2V0SXRlbVZhcmllbnQocHJvZHVjdDogUHJvZHVjdCwgdmFyaWVudElkOiBzdHJpbmcpOiBJdGVtVmFyaWFudCB8IG51bGwge1xuICAgIGxldCBzZWxlY3RlZFZhcmllbnQ6IEl0ZW1WYXJpYW50IHwgbnVsbCA9IG51bGw7XG4gICAgcHJvZHVjdD8uaXRlbVZhcmlhbnQ/LmZvckVhY2goKHZhcmllbnQ6IEl0ZW1WYXJpYW50KSA9PiB7XG4gICAgICBpZiAodmFyaWVudC52YXJpYW50SWQgPT09IHZhcmllbnRJZClcbiAgICAgICAgc2VsZWN0ZWRWYXJpZW50ID0gdmFyaWVudDtcbiAgICB9KVxuICAgIHJldHVybiBzZWxlY3RlZFZhcmllbnQ7XG4gIH1cbiAgdG9nZ2xlSXRlbVRvRmF2KGV2ZW50OiBQb2ludGVyRXZlbnQgfCBNb3VzZUV2ZW50LCBwcm9kdWN0OiBQcm9kdWN0LCB0eXBlOiAnQUREJyB8ICdSRU1PVkUnKSB7XG4gICAgaWYgKHR5cGUgPT0gJ0FERCcpIHtcbiAgICAgIHByb2R1Y3Qud2hpc2xpc3QgPSB0cnVlO1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnV2lzaGxpc3QnLCBkZXRhaWw6ICdJdGVtIGFkZGVkIHRvIHlvdXIgd2lzaGxpc3QnIH0pO1xuICAgICAgaWYgKHByb2R1Y3Q/Lml0ZW1WYXJpYW50Py5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgaXRlbVZhcmllbnQ6IEl0ZW1WYXJpYW50IHwgbnVsbCA9IHRoaXMuZ2V0SXRlbVZhcmllbnQocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpO1xuICAgICAgICBpZiAoaXRlbVZhcmllbnQpIHtcbiAgICAgICAgICBpdGVtVmFyaWVudC53aXNobGlzdCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9GYXZvdXJpdGUocHJvZHVjdCBhcyBQcm9kdWN0LCBpdGVtVmFyaWVudC52YXJpYW50SWQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0Zhdm91cml0ZShwcm9kdWN0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBwcm9kdWN0LndoaXNsaXN0ID0gZmFsc2U7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnaW5mbycsIHN1bW1hcnk6ICdXaXNobGlzdCcsIGRldGFpbDogJ0l0ZW0gcmVtb3ZlZCBmcm9tIHlvdXIgd2lzaGxpc3QnIH0pO1xuICAgICAgdGhpcy5jYXJ0U2VydmljZS5yZW1vdmVJdGVtRnJvbUZhdm91cml0ZShwcm9kdWN0LnZhcmllbnRJZCwgcHJvZHVjdC5pdGVtSWQpO1xuICAgIH1cbiAgICBpZiAocHJvZHVjdC53aGlzbGlzdCkge1xuICAgICAgdGhpcy5VU0VSX1dJU0hMSVNUPy5wdXNoKG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5VU0VSX1dJU0hMSVNUID0gdGhpcy5VU0VSX1dJU0hMSVNUPy5maWx0ZXIoKGl0ZW06IE9yZGVyZWRJdGVtcykgPT4gaXRlbS52YXJpZW50SWQgIT0gcHJvZHVjdC52YXJpZW50SWQpID8/IFtdO1xuICAgIH1cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuICBpc0l0ZW1PdXRPZlN0b2NrKHByb2R1Y3Q6IFByb2R1Y3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcHJvZHVjdC5pdGVtSW52ZW50b3J5Py5vcGVuaW5nU3RvY2sgPT0gMDtcbiAgfVxuICBhZGRJdGVtVG9DYXJ0KGV2ZW50OiBQb2ludGVyRXZlbnQgfCBNb3VzZUV2ZW50LCBwcm9kdWN0OiBQcm9kdWN0LCB0eXBlOiAnQUREJyB8ICdTVUJTVFJBQ1QnKSB7XG4gICAgaWYgKHRoaXMuaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0KSkge1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3dhcm4nLCBzdW1tYXJ5OiAnQ2FydCcsIGRldGFpbDogJ0l0ZW0gaXMgbm90IGF2YWlsYWJsZSBhcyBvZiBub3cuIFdlIHdpbGwgbm90aWZ5IHlvdSBvbmNlIGF2YWlsYWJsZScgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHByb2R1Y3QucXVhbnRpdHkgKz0gKHR5cGUgPT0gJ0FERCcgPyAxIDogLTEpO1xuICAgIGlmIChwcm9kdWN0Py5pdGVtVmFyaWFudD8ubGVuZ3RoKSB7XG4gICAgICBjb25zdCBpdGVtVmFyaWVudDogSXRlbVZhcmlhbnQgfCBudWxsID0gdGhpcy5nZXRJdGVtVmFyaWVudChwcm9kdWN0LCBwcm9kdWN0LnZhcmllbnRJZCk7XG4gICAgICBpZiAoaXRlbVZhcmllbnQpIHtcbiAgICAgICAgaXRlbVZhcmllbnQucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5O1xuICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0NhcnQocHJvZHVjdCwgaXRlbVZhcmllbnQudmFyaWFudElkKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9DYXJ0KHByb2R1Y3QpO1xuICAgIH1cbiAgICBpZiAocHJvZHVjdC5xdWFudGl0eSkge1xuICAgICAgbGV0IGlzUHJlc2VudDogYm9vbGVhbiA9IGZhbHNlO1xuICAgICAgdGhpcy5VU0VSX0NBUlQ/LmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcykgPT4ge1xuICAgICAgICBpZiAoaXRlbS52YXJpZW50SWQgPT0gcHJvZHVjdC52YXJpZW50SWQpIHtcbiAgICAgICAgICBpdGVtLnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcbiAgICAgICAgICBpc1ByZXNlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaWYgKCFpc1ByZXNlbnQpXG4gICAgICAgIHRoaXMuVVNFUl9DQVJUPy5wdXNoKG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5VU0VSX0NBUlQgPSB0aGlzLlVTRVJfQ0FSVD8uZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpID0+IGl0ZW0udmFyaWVudElkICE9IHByb2R1Y3QudmFyaWVudElkKSA/PyBbXTtcbiAgICB9XG4gIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwib3ZlcmxheVwiPjwvc2VjdGlvbj5cblxuPHNlY3Rpb24gY2xhc3M9XCJtYWluX3NlY3Rpb24gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJ2aWRlb3MtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInZpZGVvLWNhcmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0b3AtYmFyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9ncmVzcy1iYXJcIj48L3NwYW4+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy84MDI1NzZjMTc3MDM3NTM4OTI3NG11dGVkLXN2Z3JlcG8tY29tLnN2Z1wiXG4gICAgICAgICAgY2xhc3M9XCJtdXRlLXVubXV0ZVwiICpuZ0lmPVwidmlkZW9NdXRlZFwiIChjbGljayk9XCJ2aWRlb011dGVkID0gZmFsc2VcIj5cbiAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzcxMTgzM2MxNzcwMzc1NTE1ODI4dm9sdW1lLWxvdWQtc3ZncmVwby1jb20uc3ZnXCJcbiAgICAgICAgICBjbGFzcz1cIm11dGUtdW5tdXRlXCIgKm5nSWY9XCIhdmlkZW9NdXRlZFwiIChjbGljayk9XCJ2aWRlb011dGVkPXRydWVcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjbG9zZVwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCI+4pyVPC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gVmlkZW8gLS0+XG4gICAgICA8dmlkZW8gI3ZpZGVvUGxheWVyIGNsYXNzPVwidmlkZW8tY29udGVudFwiIGF1dG9wbGF5IGxvb3AgcGxheXNpbmxpbmUgW3NyY109XCJ2aWRlb1VybFwiIFtjb250cm9sc109XCJmYWxzZVwiXG4gICAgICAgIFttdXRlZF09XCJ2aWRlb011dGVkXCI+XG4gICAgICA8L3ZpZGVvPlxuXG4gICAgICA8IS0tIE5hdmlnYXRpb24gYXJyb3dzIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbmF2LWFycm93cyB3LTEwMFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnanVzdGlmeS1jb250ZW50LWVuZCcgOmN1cnJlbnRJbmRleCA8IGxpc3RJdGVtZGF0YS52aWRlb3MubGVuZ3RoIC0gMSAsICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbicgOiBjdXJyZW50SW5kZXggPiAwIH1cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5hdiBsZWZ0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiICpuZ0lmPVwiY3VycmVudEluZGV4ID4gMFwiPjxtYXQtaWNvblxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoyMHB4ICFpbXBvcnRhbnRcIiAoY2xpY2spPVwicGxheVByZXZpb3VzVmlkZW8oKVwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2IHJpZ2h0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiIChjbGljayk9XCJwbGF5TmV4dFZpZGVvKClcIlxuICAgICAgICAgICpuZ0lmPVwiY3VycmVudEluZGV4IDwgbGlzdEl0ZW1kYXRhLnZpZGVvcy5sZW5ndGggLSAxXCI+PG1hdC1pY29uXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOjIwcHggIWltcG9ydGFudFwiPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInByb2R1Y3RzLWxpc3QtY29udGFpbmVyIHBvc2l0aW9uLWZpeGVkIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtNFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdHNMaXN0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1iYWRnZSBjdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICA8YSBbaHJlZl09XCJwcm9kdWN0LnJlZGlyZWN0aW9uVXJsXCIgY2xhc3M9XCJwcm9kdWN0LWxpbmtcIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwicHJvZHVjdC5pdGVtSW1hZ2VzWzBdLmltZ1VybFwiIGFsdD1cIlJpbmdcIiBjbGFzcz1cInByb2R1Y3QtaW1nXCIgLz48L2E+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWluZm8ganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgICA8YSBbaHJlZl09XCJwcm9kdWN0LnJlZGlyZWN0aW9uVXJsXCIgY2xhc3M9XCJwcm9kdWN0LWxpbmtcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWRldGFpbHMgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0xXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXRpdGxlXCI+XG4gICAgICAgICAgICAgICAge3twcm9kdWN0Lm5hbWUubGVuZ3RoID4gMzAgPyBwcm9kdWN0Lm5hbWUuc2xpY2UoMCwgMzApICsgJy4uLicgOiBwcm9kdWN0Lm5hbWV9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtcHJpY2UgZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAg4oK5e3twcm9kdWN0LnByaWNlLnNlbGxpbmdQcmljZX19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy83MDAwNzJjMTc3MDI3MDM5NTQzMmZhdm91cml0ZS1zdmdyZXBvLWNvbS5zdmdcIlxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxOHB4O1wiICpuZ0lmPVwiIXByb2R1Y3Qud2hpc2xpc3RcIiAoY2xpY2spPVwidG9nZ2xlSXRlbVRvRmF2KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCI+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvMzA0MTE2YzE3NzAyNzQxMzI5MTBmYXZvdXJpdGUtc3ZncmVwby1jb21fKDEpLnN2Z1wiXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDE4cHg7XCIgKm5nSWY9XCJwcm9kdWN0LndoaXNsaXN0XCIgKGNsaWNrKT1cInRvZ2dsZUl0ZW1Ub0ZhdigkZXZlbnQsIHByb2R1Y3QsICdSRU1PVkUnKVwiPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzY5NTE0NGMxNzcwMjcwNjY5NTQ2Y2FydC1zaG9wcGluZy1zdmdyZXBvLWNvbS5zdmdcIlxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOjE5cHhcIiAqbmdJZj1cInByb2R1Y3QucXVhbnRpdHkgPD0gMFwiIChjbGljayk9XCJhZGRJdGVtVG9DYXJ0KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCI+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNzk1MzQyYzE3NzAyNzUzODMzNDRzaG9wcGluZy1jYXJ0LWZpbGwtc3ZncmVwby1jb20uc3ZnXCJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxOXB4XCIgKm5nSWY9XCJwcm9kdWN0LnF1YW50aXR5ID49IDFcIiAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdTVUJTVFJBQ1QnKVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvc2VjdGlvbj4iXX0=
@@ -525,4 +525,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
525
525
  }] }], propDecorators: { responseData: [{
526
526
  type: Input
527
527
  }] } });
528
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1ibG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdmlldy1ibG9nL3ZpZXctYmxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZXctYmxvZy92aWV3LWJsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBRUwsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBSUwsV0FBVyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7OztBQXFCaEgsTUFBTSxPQUFPLGlCQUFpQjtJQWdWNUIsWUFDbUIsYUFBNEIsRUFDNUIsV0FBd0IsRUFDeEIsV0FBb0MsRUFDaEMsVUFBa0I7UUFIdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBalY5QyxpQkFBWSxHQUFRO1lBQzNCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsV0FBVyxFQUFFLFFBQVE7WUFDckIsYUFBYSxFQUFFLHNGQUFzRjtZQUNyRyxrQkFBa0IsRUFBRSwrQkFBK0I7WUFDbkQsVUFBVSxFQUFFLEdBQUc7WUFDZixXQUFXLEVBQUUsR0FBRztZQUNoQixhQUFhLEVBQUUsQ0FBQztZQUNoQixJQUFJLEVBQUUsc0NBQXNDO1lBQzVDLFlBQVksRUFBRSxzQ0FBc0M7WUFDcEQsTUFBTSxFQUFFLENBQUM7WUFDVCxTQUFTLEVBQUUsRUFBRTtZ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Q3hCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUM3QyxhQUFhLENBQ2QsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxvQkFBb0IsQ0FDekMsT0FBTyxDQUFDLEVBQUU7WUFDUixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzlELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNILENBQUMsRUFDRCxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxDQUNuQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQzsrR0FwaUJVLGlCQUFpQixvR0FvVmxCLFdBQVc7bUdBcFZWLGlCQUFpQiwwSUNwQzlCLDgyS0F3SUEsa2pKRHhHWSxZQUFZLGdYQUFZLDhCQUE4Qjs7NEZBSXJELGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLDhCQUE4QixDQUFDOzswQkF3VjlELE1BQU07MkJBQUMsV0FBVzt5Q0FsVlosWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBQTEFURk9STV9JRCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZWNlbnRCbG9nUG9zdFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9yZWNlbnQtYmxvZy1wb3N0LXNlY3Rpb24vcmVjZW50LWJsb2ctcG9zdC1zZWN0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5pbnRlcmZhY2UgVG9jSXRlbSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgbGV2ZWw6IG51bWJlcjtcclxufVxyXG5cclxuaW50ZXJmYWNlIEJsb2dCbG9jayB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXZpZXctYmxvZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgUmVjZW50QmxvZ1Bvc3RTZWN0aW9uQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy1ibG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdmlldy1ibG9nLmNvbXBvbmVudC5jc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlld0Jsb2dDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNlRGF0YTogYW55ID0ge1xyXG4gICAgXCJzdWJJbmR1c3RyeUlkXCI6IG51bGwsXHJcbiAgICBcInN1YkluZHVzdHJ5TmFtZVwiOiBcIlwiLFxyXG4gICAgXCJkaXNwbGF5SWRcIjogXCJCRzE3ODRcIixcclxuICAgIFwiYXJ0aWNsZVNsdWdcIjogXCJDYXNlLVN0dWR5LUhvdy1hLUpld2VsbGVyeS1SZXRhaWxlci1JbmNyZWFzZWQtLUN1c3RvbWVyLUVuZ2FnZW1lbnQtVXNpbmctUGFzc2Jvb2tBcHBcIixcclxuICAgIFwidXBkYXRlZFRpbWVTdGFtcFwiOiBcIjIwMjYtMDgtMDRUMTE6NTk6MjQuMDAwKzAwOjAwXCIsXHJcbiAgICBcInJlYWRUaW1lXCI6IFwiM1wiLFxyXG4gICAgXCJ3b3JkQ291bnRcIjogNjM0LFxyXG4gICAgXCJ0b3RhbFZpc2l0c1wiOiAwLFxyXG4gICAgXCJpZFwiOiBcIjFmMThmZmJkLTNmOTgtNjVjMy1hMzc3LTlkMjlhNzgxYjk3OFwiLFxyXG4gICAgXCJidXNpbmVzc0lkXCI6IFwiMWYxOTU2N2EtY2UyNi02NzkwLThhMTQtYzc4NmZjMDg0YTgyXCIsXHJcbiAgICBcInRpbWVcIjogMCxcclxuICAgIFwidmVyc2lvblwiOiBcIlwiLFxyXG4gICAgXCJibG9ja3NcIjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcInUyelI0UTdBVXlcIixcclxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiQ2FzZSBTdHVkeTogSG93IGEgSmV3ZWxsZXJ5IFJldGFpbGVyIEluY3JlYXNlZCBDdXN0b21lciBFbmdhZ2VtZW50IGJ5IDQwJSBVc2luZyBQYXNzYm9va0FwcFwiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAxXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIjBVSjFXcWRWZm5cIixcclxuICAgICAgICBcInR5cGVcIjogXCJpbWFnZVwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcImNhcHRpb25cIjogXCJcIixcclxuICAgICAgICAgIFwid2l0aEJvcmRlclwiOiBmYWxzZSxcclxuICAgICAgICAgIFwid2l0aEJhY2tncm91bmRcIjogZmFsc2UsXHJcbiAgICAgICAgICBcInN0cmV0Y2hlZFwiOiBmYWxzZSxcclxuICAgICAgICAgIFwiZmlsZVwiOiB7XHJcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9pbWFnZXMvMTY5NzUyYzE3ODU4NDQzNTA0NzNDaGF0R1BUJTIwSW1hZ2UlMjBBdWclMjA0JTJDJTIwMjAyNiUyQyUyMDA1XzIyXzE4JTIwUE0ucG5nXCIsXHJcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IFwiNTAwcHhcIlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJZSE96bWk1WGc3XCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPkluIHRvZGF54oCZcyBmYXN0LXBhY2VkIHJldGFpbCBtYXJrZXQsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBidWlsZGluZyBsb25nLXRlcm0gY3VzdG9tZXIgbG95YWx0eSBhbmQgbWFpbnRhaW5pbmcgYWN0aXZlIGVuZ2FnZW1lbnQgaXMgYSBtYWpvciBodXJkbGUgZm9yIHRyYWRpdGlvbmFsIGpld2VsZXJzLjwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gV2hpbGUgZ29sZCBhbmQgc2lsdmVyIHNhdmluZyBzY2hlbWVzIChsaWtlIDEwKzEgbW9udGhseSBkZXBvc2l0IHBsYW5zKSBoYXZlIGxvbmcgYmVlbiB0aGUgYmFja2JvbmUgb2YgY3VzdG9tZXIgYWNxdWlzaXRpb24sPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBtYW5hZ2luZyB0aGVtIHRocm91Z2ggdHJhZGl0aW9uYWwgcGFwZXIgcGFzc2Jvb2tzIG9mdGVuIGxlYWRzIHRvIGxvdyBlbmdhZ2VtZW50LDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gbWlzc2VkIHBheW1lbnRzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gbG9zdCBwaHlzaWNhbCBib29rcyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGFuZCB1bHRpbWF0ZSBkcm9wLW9mZnMuPC9zcGFuPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIm1vdUVicmZ4N3lcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+Rm9yIG11bHRpLWxvY2F0aW9uIHJldGFpbGVycyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHRoZXNlIGNoYWxsZW5nZXMgYXJlIGFtcGxpZmllZC48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IFBoeXNpY2FsIHJlZ2lzdGVycyBhbmQgbWFudWFsIGZvbGxvdy11cHMgYXQgZWFjaCBzdG9yZSBtYWtlIGNyZWF0aW5nIGEgdW5pZmllZCB2aWV3IG9mIHRoZSBjdXN0b21lciBsZXQgYWxvbmUgdGhlIGJ1c2luZXNzIHZpcnR1YWxseSBpbXBvc3NpYmxlLjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJNN1luODZJZ2pSXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPlRoaXMgPC9zcGFuPjxiPmpld2VsbGVyeSBjdXN0b21lciBlbmdhZ2VtZW50IGNhc2Ugc3R1ZHk8L2I+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGRlbW9uc3RyYXRlcyBob3cgYSBwcm9taW5lbnQgcmV0YWlsIGpld2VsZXIgbGV2ZXJhZ2VkIDwvc3Bhbj48Yj5QYXNzYm9va0FwcCZuYnNwOzwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj5hIG1vZGVybiA8L3NwYW4+PGI+ZGlnaXRhbCBwYXNzYm9vayBmb3IgamV3ZWxsZXJ5IHN0b3JlczwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4mbmJzcDt0byBvdmVyaGF1bCB0aGVpciBvcGVyYXRpb25zLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYXV0b21hdGUgY3VzdG9tZXIgY29tbXVuaWNhdGlvbiB2aWEgV2hhdHNBcHAsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgZHJpdmUgc2lnbmlmaWNhbnQgYnVzaW5lc3MgZ3Jvd3RoLjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCItdzVXc241NG1aXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIkZlYXR1cmVkIFN1Y2Nlc3MgU3Rvcnk6IEhvdyBQYXNzYm9va0FwcCBUb29rIExhZ3UgQmFuZGh1IEpld2VsbGVycyBmcm9tIFJlZ2lzdGVycyB0byBSZWFsLVRpbWVcIixcclxuICAgICAgICAgIFwibGV2ZWxcIjogMlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJ1ZFVFVFB6OXNOXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2VcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJjYXB0aW9uXCI6IFwiXCIsXHJcbiAgICAgICAgICBcIndpdGhCb3JkZXJcIjogZmFsc2UsXHJcbiAgICAgICAgICBcIndpdGhCYWNrZ3JvdW5kXCI6IGZhbHNlLFxyXG4gICAgICAgICAgXCJzdHJldGNoZWRcIjogZmFsc2UsXHJcbiAgICAgICAgICBcImZpbGVcIjoge1xyXG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vaW1hZ2VzLzc2NzA0NGMxNzg1ODQzODQ4MjIwU2xpZGUlMjAxNl85JTIwLSUyMDElMjAlMjg0JTI5LnBuZ1wiLFxyXG4gICAgICAgICAgICBcImhlaWdodFwiOiBcIjUwMHB4XCJcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiUEpWVUFocUw1NlwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5MYWd1IEJhbmRodSBKZXdlbGxlcnMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhIGxlZ2FjeSBicmFuZCBzaW5jZSAxOTM2IHdpdGggbXVsdGlwbGUgc3RvcmUgbG9jYXRpb25zLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gZmFjZWQgYSBjcml0aWNhbCBvcGVyYXRpb25hbCBib3R0bGVuZWNrLjwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gTWFuYWdpbmcgamV3ZWxsZXJ5IHNhdmluZyBzY2hlbWVzIGFjcm9zcyBudW1lcm91cyBicmFuY2hlcyB1c2luZyBwaHlzaWNhbCByZWdpc3RlcnMgbWVhbnQgcGF5bWVudHMgd2VyZSBkaWZmaWN1bHQgdG8gdHJhY2sgY2VudHJhbGx5LDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gZm9sbG93LXVwcyB3ZXJlIGRvbmUgbWFudWFsbHksPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgYSBzaW5nbGUsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiB1bmlmaWVkIHZpZXcgb2YgdGhlIGJ1c2luZXNzIHdhcyBtaXNzaW5nLjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJoenpGZHZTazZmXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPlRoZXkgaW1wbGVtZW50ZWQgUGFzc2Jvb2tBcHAgYXMgdGhlaXIgZGVkaWNhdGVkIDwvc3Bhbj48Yj5qZXdlbGxlcnkgY3VzdG9tZXIgcmV0ZW50aW9uIHNvZnR3YXJlPC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiB0byByZXBsYWNlIHRoZWlyIGVudGlyZSBwYXBlci1iYXNlZCBzeXN0ZW0gd2l0aCBvbmUgZGlnaXRhbCB3b3JrZmxvdyB3aXRob3V0IGRpc3J1cHRpbmcgZXhpc3Rpbmcgb3BlcmF0aW9ucy48L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiNGZwQ21xNGEwS1wiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5UaGlzIDwvc3Bhbj48Yj5qZXdlbGxlcnkgY3VzdG9tZXIgZW5nYWdlbWVudCBjYXNlIHN0dWR5PC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBoaWdobGlnaHRzIHRoZSBzcGVjaWZpYyBvdXRjb21lcyBhY2hpZXZlZCBieSBMYWd1IEJhbmRodSB3aXRoIHRoZSBwbGF0Zm9ybTo8L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwid0IzX2E1eFJRLVwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJzdHlsZVwiOiBcInVub3JkZXJlZFwiLFxyXG4gICAgICAgICAgXCJpdGVtc1wiOiBbXHJcbiAgICAgICAgICAgIFwiPGI+Q3VzdG9tZXIgQ29udmVuaWVuY2UgdmlhIERpZ2l0YWwgUGF5bWVudHM6PC9iPiBBIGtleSBmZWF0dXJlIHdhcyBlbmFibGluZyBjdXN0b21lcnMgdG8gcGF5IGZvciB0aGVpciBtb250aGx5IHNjaGVtZXMgZGlnaXRhbGx5LCBjb21wbGV0ZWx5IGVsaW1pbmF0aW5nIHRoZSBuZWVkIGZvciBhIHN0b3JlIHZpc2l0LlwiLFxyXG4gICAgICAgICAgICBcIjxiPkNlbnRyYWxpemVkIE11bHRpLUxvY2F0aW9uIFZpZXc6PC9iPiBNYW5hZ2VtZW50IG5vdyBoYXMgYSByZWFsLXRpbWUsIGNlbnRyYWxpemVkIHNjaGVtZSB2aWV3IGFjcm9zcyBhbGwgc3RvcmUgbG9jYXRpb25zLCBhIGNydWNpYWwgZWxlbWVudCBvZiB0aGVpciA8Yj5kaWdpdGFsIHRyYW5zZm9ybWF0aW9uIGluIGpld2VsbGVyeSByZXRhaWw8L2I+LlwiLFxyXG4gICAgICAgICAgICBcIjxiPlN0cmVhbWxpbmVkIE9wZXJhdGlvbnM6PC9iPiBNYW51YWwgdHJhY2tpbmcgYW5kIGV4Y2Vzc2l2ZSBwYXBlcndvcmsgaGF2ZSBiZWVuIG5lYXJseSBlbGltaW5hdGVkLCBvcHRpbWl6aW5nIHN0YWZmIHRpbWUgZm9yIHNhbGVzLlwiXHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImlPV2hIeHJVR3hcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+UmVmbGVjdGluZyBvbiB0aGUgaW1wbGVtZW50YXRpb24sPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBNci48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IFBhcmFnIExhZ3UsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBEaXJlY3RvciBvZiBMYWd1IEJhbmRodSw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IG5vdGVkOjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCIwNm1MVUZleGRLXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxpPuKAnEFmdGVyIG1vcmUgdGhhbiB0d28geWVhcnMgd2l0aCBQYXNzYm9va0FQUCwgSSBjYW4gY29uZmlkZW50bHkgc2F5IGl04oCZcyBiZWVuIGFuIG91dHN0YW5kaW5nIGV4cGVyaWVuY2UuIFRoZWlyIHN1cHBvcnQgdGVhbSBpcyByZXNwb25zaXZlLCBrbm93bGVkZ2VhYmxlLCBhbmQgdHJ1bHkgY29tbWl0dGVkIHRvIG91ciBncm93dGguIEFueSBqZXdlbGVyIGxvb2tpbmcgdG8gc3RyZWFtbGluZSB0aGVpciBvcGVyYXRpb25zIHdvdWxkIGJlIHdpc2UgdG8gY29uc2lkZXIgUGFzc2Jvb2tBUFAu4oCdPC9pPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIjFoVnh2WVUtb0VcIixcclxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiVGhlIENoYWxsZW5nZTogRnJpY3Rpb24gaW4gVHJhZGl0aW9uYWwgSmV3ZWxsZXJ5IFNhdmluZ3MgU2NoZW1lc1wiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImRtZkVKZ294Q1pcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+TGFndSBCYW5kaHUncyBleHBlcmllbmNlIHBlcmZlY3RseSBtaXJyb3JzIHRoZSBsYXJnZXIgb3BlcmF0aW9uYWwgY2hhbGxlbmdlIGZhY2VkIGJ5IHRoZSBpbmR1c3RyeS48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IEJlZm9yZSBwYXJ0bmVyaW5nIHdpdGggUGFzc2Jvb2tBcHAsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiB0cmFkaXRpb25hbCBtZXRob2RzIGNyZWF0ZWQgYSBwb29yIDwvc3Bhbj48Yj5qZXdlbGxlcnkgY3VzdG9tZXIgZXhwZXJpZW5jZTwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj46PC9zcGFuPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImFwZ1ViS1BPT3dcIixcclxuICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwic3R5bGVcIjogXCJ1bm9yZGVyZWRcIixcclxuICAgICAgICAgIFwiaXRlbXNcIjogW1xyXG4gICAgICAgICAgICBcIjxiPkhpZ2ggRHJvcC1vZmYgUmF0ZXM6PC9iPiBDdXN0b21lcnMgZnJlcXVlbnRseSBmb3Jnb3QgbW9udGhseSBpbnN0YWxsbWVudHMsIGxlYWRpbmcgdG8gbGFwc2VkIGFjY291bnRzLlwiLFxyXG4gICAgICAgICAgICBcIjxiPkxhY2sgb2YgVmlzaWJpbGl0eTo8L2I+IEN1c3RvbWVycyBjb3VsZG7igJl0IHRyYWNrIHRoZWlyIGFjY3VtdWxhdGVkIGJhbGFuY2Ugb3IgZ29sZCB3ZWlnaHQgaW4gcmVhbC10aW1lLCBkZWNyZWFzaW5nIHRoZWlyIGVtb3Rpb25hbCBpbnZlc3RtZW50IGluIHRoZSBzY2hlbWUuXCIsXHJcbiAgICAgICAgICAgIFwiPGI+TWFudWFsIEFkbWluaXN0cmF0aXZlIEJ1cmRlbjo8L2I+IFN0YWZmIHNwZW50IGNvdW50bGVzcyBob3VycyBhbnN3ZXJpbmcgYmFsYW5jZSBpbnF1aXJpZXMsIGlzc3VpbmcgcmVjZWlwdHMsIGFuZCBtYWtpbmcgbWFudWFsIHJlbWluZGVyIGNhbGxzLlwiLFxyXG4gICAgICAgICAgICBcIjxiPldlYWsgUG9zdC1NYXR1cml0eSBFbmdhZ2VtZW50OjwvYj4gT25jZSBhIHNhdmluZ3Mgc2NoZW1lIG1hdHVyZWQsIHJlZGVlbWluZyB0aGUgZmluYWwgcHJvZHVjdCBmZWx0IHRyYW5zYWN0aW9uYWwgcmF0aGVyIHRoYW4gcmV3YXJkaW5nLCBsZWFkaW5nIHRvIGxvdyByZXBlYXQgZW5nYWdlbWVudC5cIlxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCIxT3hxNlQwVGhkXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIlRoZSBTb2x1dGlvbjogRGlnaXRhbCBUcmFuc2Zvcm1hdGlvbiB3aXRoIFBhc3Nib29rQXBwXCIsXHJcbiAgICAgICAgICBcImxldmVsXCI6IDJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiY0NwclVjOVA3OFwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5UaGUgaW1wbGVtZW50YXRpb24gYXQgTGFndSBCYW5kaHUgbGV2ZXJhZ2VkIFBhc3Nib29rQXBw4oCZcyBjb21wbGV0ZSA8L3NwYW4+PGI+amV3ZWxsZXJ5IENSTSBzb2Z0d2FyZTwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYW5kIDwvc3Bhbj48Yj5qZXdlbGxlcnkgbG95YWx0eSBzb2Z0d2FyZTwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gY2FwYWJpbGl0aWVzIHRvIG1vZGVybml6ZSBvcGVyYXRpb25zLjwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gQnkgaW50ZWdyYXRpbmcgdGhlc2Ugc3BlY2lmaWMgdGVjaG5vbG9naWVzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gdGhlIHJldGFpbGVyIHdhcyBhYmxlIHRvIGFjaGlldmUgc2lnbmlmaWNhbnQgZ2FpbnM6PC9zcGFuPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImJucTJjNFhNMmhcIixcclxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiMS4gRGlnaXRhbCBQYXNzYm9vayBJbXBsZW1lbnRhdGlvblwiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAzXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcInZKc0lXNzUzZTJcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+UmVwbGFjaW5nIHBoeXNpY2FsIGJvb2tsZXRzIHdpdGggYSBjZW50cmFsaXplZCA8L3NwYW4+PGI+ZGlnaXRhbCBwYXNzYm9vayBmb3IgamV3ZWxsZXJ5IHN0b3JlczwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYWxsb3dlZCBjdXN0b21lcnMgdG8gdmlldyB0aGVpciB0b3RhbCBiYWxhbmNlLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gcmVhbC10aW1lIGdvbGQgd2VpZ2h0LDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gcGFpZCB2cy48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHJlbWFpbmluZyBpbnN0YWxsbWVudHMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgbWF0dXJpdHkgZGF0ZXMgb24tZGVtYW5kLjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJkZy1QSDhvNkd4XCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjIuIFdoYXRzQXBwIEF1dG9tYXRpb24gYW5kIFJlbWluZGVyc1wiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAzXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIlpvbmY4SFVaeHJcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+RGVwbG95aW5nIDwvc3Bhbj48Yj5qZXdlbGxlcnkgV2hhdHNBcHAgcmVtaW5kZXIgc29mdHdhcmU8L2I+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGVuc3VyZWQgY3VzdG9tZXJzIHJlY2VpdmVkIGF1dG9tYXRlZCByZWNlaXB0cyBmb3IgZGlnaXRhbCBwYXltZW50cyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHRpbWVseSBpbnN0YWxsbWVudCByZW1pbmRlcnMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgbWF0dXJpdHkgbm90aWZpY2F0aW9ucyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGxlYWRpbmcgdG8gYW4gODUlIGltcHJvdmVtZW50IGluIHNjaGVtZSByZW5ld2Fscy48L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiOVo1ci1Oa2RJNlwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcImhlYWRlclwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCIzLiBJbnRlZ3JhdGVkIEpld2VsbGVyeSBDUk0gJmFtcDsgTWFuYWdlbWVudFwiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAzXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImgyUVY5U3k2RlpcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+UGFzc2Jvb2tBcHDigJlzIGludGVncmF0ZWQgPC9zcGFuPjxiPmpld2VsbGVyeSBtYW5hZ2VtZW50IHNvZnR3YXJlPC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBwcm92aWRlZCBhIHNpbmdsZSBkYXNoYm9hcmQgZm9yIGN1c3RvbWVyIHB1cmNoYXNlIGhpc3RvcnkgYW5kIHNjaGVtZSBwcm9ncmVzcy48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IFRoaXMgZGF0YSBnYXZlIHN0b3JlIHN0YWZmIHBlcnNvbmFsaXplZCBpbnNpZ2h0cyB0byB1c2UgZHVyaW5nIHNob3dyb29tIHZpc2l0cy48L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiaVgtMnU5UXUwOVwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcImhlYWRlclwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCJSZXN1bHRzOiBUaGUgSW1wYWN0IG9uIEN1c3RvbWVyIEVuZ2FnZW1lbnQgYW5kIEJ1c2luZXNzIEdyb3d0aFwiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIlU3emNyLWNCcFFcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+V2l0aGluIGp1c3Qgc2l4IG1vbnRocyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHRoZSBpbXBsZW1lbnRhdGlvbnMgZHJpdmVuIGJ5IFBhc3Nib29rQXBwIGRlbGl2ZXJlZCB0cmFuc2Zvcm1hdGl2ZSBidXNpbmVzcyByZXN1bHRzOjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJxRWoyNEZaQXljXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInN0eWxlXCI6IFwidW5vcmRlcmVkXCIsXHJcbiAgICAgICAgICBcIml0ZW1zXCI6IFtcclxuICAgICAgICAgICAgXCI8Yj40MCUgSW5jcmVhc2UgaW4gQ3VzdG9tZXIgRW5nYWdlbWVudDo8L2I+IFRoZSBkaWdpdGFsIHBhc3Nib29rIGFwcCBiZWNhbWUgYSBjcml0aWNhbCwgZGFpbHkgdG91Y2hwb2ludCBmb3IgY3VzdG9tZXJzLlwiLFxyXG4gICAgICAgICAgICBcIjxiPjg1JSBJbXByb3ZlbWVudCBpbiBTY2hlbWUgUmVuZXdhbHM6PC9iPiBBdXRvbWF0ZWQgcmVtaW5kZXJzIGVmZmVjdGl2ZWx5IGVsaW1pbmF0ZWQgbWlzc2VkIGluc3RhbGxtZW50cy5cIixcclxuICAgICAgICAgICAgXCI8Yj4zNSUgQm9vc3QgaW4gUmVwZWF0IFB1cmNoYXNlczo8L2I+IFBlcnNvbmFsaXplZCBDUk0gaW5zaWdodHMgYWxsb3dlZCB0YXJnZXRlZCBvZmZlcnMgdXBvbiBtYXR1cml0eS5cIixcclxuICAgICAgICAgICAgXCI8Yj43MCUgUmVkdWN0aW9uIGluIE9wZXJhdGlvbmFsIFdvcmtsb2FkOjwvYj4gRWxpbWluYXRpbmcgbWFudWFsIHRyYWNraW5nIGZyZWVkIHN0YWZmIGZvciBoaWdoLXZhbHVlIHNhbGVzLCBtaXJyb3JpbmcgTGFndSBCYW5kaHUncyBhZG1pbmlzdHJhdGl2ZSBzYXZpbmdzLlwiXHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIms2ckhOeDNEMWpcIixcclxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiS2V5IFRha2Vhd2F5cyBmb3IgSmV3ZWxsZXJ5IE1lcmNoYW50c1wiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIk1BSFFmZHZnX3NcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+VGhlIHN1Y2Nlc3NmdWwgPC9zcGFuPjxiPmpld2VsbGVyeSBzb2Z0d2FyZSBzdWNjZXNzIHN0b3J5PC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBvZiByZXRhaWxlcnMgbGlrZSBMYWd1IEJhbmRodSBwcm92ZXMgdGhhdCBtb2Rlcm5pemF0aW9uIGlzIGtleSB0byBzdXN0YWluYWJsZSA8L3NwYW4+PGI+amV3ZWxsZXJ5IGJ1c2luZXNzIGdyb3d0aDwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj46PC9zcGFuPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIjM1YTg1UnE0QzNcIixcclxuICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwic3R5bGVcIjogXCJvcmRlcmVkXCIsXHJcbiAgICAgICAgICBcIml0ZW1zXCI6IFtcclxuICAgICAgICAgICAgXCI8Yj5MZXZlcmFnZSB0aGUgUmlnaHQgVGVjaCBmb3IgWW91ciBTY2FsZTo8L2I+IEFzIGEgPGI+amV3ZWxsZXJ5IENSTSBjYXNlIHN0dWR5PC9iPiBmb3IgbXVsdGktbG9jYXRpb24gYnVzaW5lc3NlcyBzaG93cywgY2VudHJhbGl6ZWQgdmlzaWJpbGl0eSBpcyBlc3NlbnRpYWwgZm9yIG9wZXJhdGlvbmFsIGNvbnRyb2wgYW5kIHBlcnNvbmFsaXplZCBzZXJ2aWNlLlwiLFxyXG4gICAgICAgICAgICBcIjxiPk1lZXQgQ3VzdG9tZXJzIFdoZXJlIFRoZXkgQXJlOjwvYj4gTW9kZXJuIGJ1eWVycyBkZW1hbmQgbW9iaWxlIGFjY2Vzcy4gQSA8Yj5kaWdpdGFsIHBhc3Nib29rIGZvciBqZXdlbGxlcnkgc3RvcmVzPC9iPiB3aXRoIGRpZ2l0YWwgcGF5bWVudCBvcHRpb25zIGlzIGEgYmFzZWxpbmUgZXhwZWN0YXRpb24uXCIsXHJcbiAgICAgICAgICAgIFwiPGI+QXV0b21hdGUgZm9yIEVmZmljaWVuY3k6PC9iPiBJbnRlZ3JhdGluZyA8Yj5qZXdlbGxlcnkgV2hhdHNBcHAgcmVtaW5kZXIgc29mdHdhcmU8L2I+IGNyZWF0ZXMgaGlnaC1pbXBhY3QgY29tbXVuaWNhdGlvbiB3aXRoIG1pbmltYWwgbWFudWFsIGVmZm9ydC5cIlxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJLWlIwcGpQWXpnXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIlJlYWR5IHRvIEVsZXZhdGUgWW91ciBKZXdlbGxlcnkgU3RvcmUncyBFbmdhZ2VtZW50P1wiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIk4tblFGQlJvVF9cIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+SWYgeW91IGFyZSBsb29raW5nIHRvIHNjYWxlIHlvdXIgamV3ZWxsZXJ5IGJ1c2luZXNzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gZWxpbWluYXRlIG1hbnVhbCBhZG1pbmlzdHJhdGl2ZSBoYXNzbGUgbGlrZSBwaHlzaWNhbCByZWdpc3RlcnMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgaW5jcmVhc2UgY3VzdG9tZXIgbG95YWx0eSw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGl0J3MgdGltZSB0byB1cGdyYWRlIHlvdXIgdGVjaCBzdGFjay48L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiSjVxclhkRTNsdlwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5TZWUgaG93IFBhc3Nib29rQXBwIGhlbHBzIGpld2VsbGVyeSBidXNpbmVzc2VzIGF1dG9tYXRlIHNhdmluZ3Mgc2NoZW1lcyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGltcHJvdmUgcmVuZXdhbHMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBpbmNyZWFzZSByZXBlYXQgcHVyY2hhc2VzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYW5kIGJ1aWxkIGxvbmctdGVybSBjdXN0b21lciBsb3lhbHR5Ljwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJyNWtDRk81MDNXXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxiPjxhIGhyZWY9XFxcImh0dHBzOi8vd3d3LnBhc3Nib29rYXBwLmluL2RlbW9cXFwiPkJvb2sgYSBGcmVlIFBhc3Nib29rQXBwIERlbW8gVG9kYXk8L2E+PC9iPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICBdLFxyXG4gICAgXCJjcmVhdGVkQnlcIjogXCJSYWpcIixcclxuICAgIFwicG9zdFN1bW1hcnlcIjogXCJEaXNjb3ZlciBob3cgSmV3ZWxsZXJ5IHJldGFpbGVycyBlbGltaW5hdGVkIG1hbnVhbCByZWdpc3RlcnMsIGluY3JlYXNlZCBjdXN0b21lciBlbmdhZ2VtZW50LCBhbmQgc3RyZWFtbGluZWQgc2F2aW5ncyBzY2hlbWVzIHVzaW5nIFBhc3Nib29rQXBwLlwiLFxyXG4gICAgXCJwb3N0VGl0bGVcIjogXCJDYXNlIFN0dWR5OiBIb3cgYSBKZXdlbGxlcnkgUmV0YWlsZXIgSW5jcmVhc2VkICBDdXN0b21lciBFbmdhZ2VtZW50IFVzaW5nIFBhc3Nib29rQXBwXCIsXHJcbiAgICBcIm5ld1Bvc3RUaXRsZVwiOiBcIkNhc2UtU3R1ZHktSG93LWEtSmV3ZWxsZXJ5LVJldGFpbGVyLUluY3JlYXNlZC0tQ3VzdG9tZXItRW5nYWdlbWVudC1Vc2luZy1QYXNzYm9va0FwcFwiLFxyXG4gICAgXCJibG9nTWV0YVwiOiB7XHJcbiAgICAgIFwibWV0YVRpdGxlXCI6IFwiQ2FzZSBTdHVkeTogSG93IGEgSmV3ZWxsZXJ5IFJldGFpbGVyIEluY3JlYXNlZCAgQ3VzdG9tZXIgRW5nYWdlbWVudCBVc2luZyBQYXNzYm9va0FwcFwiLFxyXG4gICAgICBcIm1ldGFEZXNjcmlwdGlvblwiOiB7XHJcbiAgICAgICAgXCJuYW1lXCI6IFwiZGVzY3JpcHRpb25cIixcclxuICAgICAgICBcImNvbnRlbnRcIjogXCJEaXNjb3ZlciBob3cgSmV3ZWxsZXJ5IHJldGFpbGVycyBlbGltaW5hdGVkIG1hbnVhbCByZWdpc3RlcnMsIGluY3JlYXNlZCBjdXN0b21lciBlbmdhZ2VtZW50LCBhbmQgc3RyZWFtbGluZWQgc2F2aW5ncyBzY2hlbWVzIHVzaW5nIFBhc3Nib29rQXBwLlwiXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBcImNyZWF0ZWRUaW1lU3RhbXBcIjogXCIyMDI2LTA4LTA0VDExOjU4OjM3LjAwMCswMDowMFwiLFxyXG4gICAgXCJwdWJsaXNoZWREYXRlXCI6IG51bGwsXHJcbiAgICBcImJsb2dTY2hlZHVsZWREYXRlXCI6IFwiMjAyNi0wOC0wNFQwMDowMDowMC4wMDArMDA6MDBcIixcclxuICAgIFwiYmxvZ1NjaGVkdWxlVGltZVwiOiBcIjE3OjI5OjI0XCIsXHJcbiAgICBcImtleVdvcmRzXCI6IHtcclxuICAgICAgXCJuYW1lXCI6IFwia2V5d29yZHNcIixcclxuICAgICAgXCJjb250ZW50XCI6IFwiZGlnaXRhbCBwYXNzYm9vayBmb3IgamV3ZWxsZXJ5IHN0b3JlcyxKZXdlbGxlcnkgY3VzdG9tZXIgZW5nYWdlbWVudCxqZXdlbGxlcnkgY3VzdG9tZXIgZW5nYWdlbWVudCBzb2Z0d2FyZSxqZXdlbGxlcnkgQ1JNIHNvZnR3YXJlLGpld2VsbGVyeSBjdXN0b21lciBleHBlcmllbmNlXCJcclxuICAgIH0sXHJcbiAgICBcImF1dGhvclwiOiB7XHJcbiAgICAgIFwibmFtZVwiOiBcImF1dGhvclwiLFxyXG4gICAgICBcImNvbnRlbnRcIjogXCJQYXNzYm9va2FwcFwiXHJcbiAgICB9LFxyXG4gICAgXCJibG9nU3RhdHVzXCI6IFwiUFVCTElTSFwiLFxyXG4gICAgXCJibG9nVHlwZVwiOiBcIkJVU0lORVNTXCJcclxuICB9XHJcblxyXG4gIHRvY0l0ZW1zOiBUb2NJdGVtW10gPSBbXTtcclxuICB0b2NPcGVuID0gZmFsc2U7XHJcbiAgYWN0aXZlVG9jSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGhlYWRpbmdCbG9ja0lkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuO1xyXG4gIHByaXZhdGUgdG9jT2JzZXJ2ZXI/OiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogb2JqZWN0XHJcbiAgKSB7XHJcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmJ1aWxkVGFibGVPZkNvbnRlbnRzKCk7XHJcbiAgICB0aGlzLnJlY29yZFZpc2l0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlc1sncmVzcG9uc2VEYXRhJ10gJiYgIWNoYW5nZXNbJ3Jlc3BvbnNlRGF0YSddLmlzRmlyc3RDaGFuZ2UoKSkge1xyXG4gICAgICB0aGlzLmJ1aWxkVGFibGVPZkNvbnRlbnRzKCk7XHJcbiAgICAgIHRoaXMucmVjb3JkVmlzaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENvdW50cyBvbmUgcHVibGljIHZpZXcgcGVyIGJsb2cgcGVyIGJyb3dzZXIgc2Vzc2lvbiwgcGVyIHRoZSBcIkluY3JlbWVudCBibG9nIHZpc2l0c1wiIHNwZWM6XHJcbiAgLy8gUFVUIGJ1c2luZXNzL2Jsb2cvdXBkYXRlL3tibG9nSWR9LCBmaXJlLWFuZC1mb3JnZXQsIGd1YXJkZWQgc28gcmVmcmVzaC9yZS1yZW5kZXIgZG9lc24ndCBkb3VibGUtY291bnQuXHJcbiAgcHJpdmF0ZSByZWNvcmRWaXNpdCgpIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYmxvZ0lkID0gdGhpcy5yZXNwb25zZURhdGE/LmlkO1xyXG4gICAgaWYgKCFibG9nSWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc2Vzc2lvbktleSA9IGBibG9nLXZpc2l0LSR7YmxvZ0lkfWA7XHJcbiAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShzZXNzaW9uS2V5KSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHNlc3Npb25LZXksICcxJyk7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmluY3JlbWVudEJsb2dWaXNpdChibG9nSWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICgpID0+IHsgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHsgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXR1cFNjcm9sbFNweSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnRvY09ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaGVyb0ltYWdlQmxvY2tJZCgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IGJsb2NrczogQmxvZ0Jsb2NrW10gPSB0aGlzLnJlc3BvbnNlRGF0YT8uYmxvY2tzIHx8IFtdO1xyXG4gICAgcmV0dXJuIGJsb2Nrcy5maW5kKGJsb2NrID0+IGJsb2NrLnR5cGUgPT09ICdpbWFnZScpPy5pZCA/PyBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRhZ3MoKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMucmVzcG9uc2VEYXRhPy5rZXlXb3Jkcz8uY29udGVudDtcclxuICAgIGlmICghY29udGVudCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29udGVudFxyXG4gICAgICAuc3BsaXQoJywnKVxyXG4gICAgICAubWFwKCh0YWc6IHN0cmluZykgPT4gdGFnLnRyaW0oKSlcclxuICAgICAgLmZpbHRlcigodGFnOiBzdHJpbmcpID0+IHRhZy5sZW5ndGggPiAwKTtcclxuICB9XHJcblxyXG4gIGVkaXRTZWN0aW9uKCkge1xyXG4gICAgLy8gdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsVG9CbG9jayhldmVudDogRXZlbnQsIGJsb2NrSWQ6IHN0cmluZykge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIC5xdWVyeVNlbGVjdG9yKGAjYmxvY2stJHtibG9ja0lkfWApXHJcbiAgICAgID8uc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnc3RhcnQnIH0pO1xyXG4gICAgdGhpcy50b2NPcGVuID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLyBSZWFsIHB1Ymxpc2hlZCBibG9ncyBkb24ndCBhbHdheXMgY2FycnkgYSBibG9jayBpZCAob25seSBlZGl0b3ItcHJvZHVjZWQgb25lcyBkbykuIFRoZSBUT0MsXHJcbiAgLy8gc2Nyb2xsIGFuY2hvcnMsIGFuZCBoZXJvLWltYWdlIGRldGVjdGlvbiBhbGwga2V5IG9mZiBibG9jay5pZCwgc28gYmFja2ZpbGwgYSBzdGFibGUgb25lIOKAlFxyXG4gIC8vIHN0YWJsZSBhY3Jvc3MgcmUtcmVuZGVycyBzaW5jZSBpdCdzIGRlcml2ZWQgZnJvbSB0aGUgYmxvY2sncyBmaXhlZCBwb3NpdGlvbiBpbiB0aGUgYXJyYXkuXHJcbiAgcHJpdmF0ZSBlbnN1cmVCbG9ja0lkcyhibG9ja3M6IEJsb2dCbG9ja1tdKSB7XHJcbiAgICBibG9ja3MuZm9yRWFjaCgoYmxvY2ssIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmICghYmxvY2suaWQpIHtcclxuICAgICAgICBibG9jay5pZCA9IGBibG9jay1pZHgtJHtpbmRleH1gO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRUYWJsZU9mQ29udGVudHMoKSB7XHJcbiAgICBjb25zdCBibG9ja3M6IEJsb2dCbG9ja1tdID0gdGhpcy5yZXNwb25zZURhdGE/LmJsb2NrcyB8fCBbXTtcclxuICAgIHRoaXMuZW5zdXJlQmxvY2tJZHMoYmxvY2tzKTtcclxuICAgIHRoaXMuaGVhZGluZ0Jsb2NrSWRzLmNsZWFyKCk7XHJcbiAgICB0aGlzLnRvY0l0ZW1zID0gYmxvY2tzXHJcbiAgICAgIC5tYXAoYmxvY2sgPT4gdGhpcy5nZXRIZWFkaW5nQ2FuZGlkYXRlKGJsb2NrKSlcclxuICAgICAgLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgVG9jSXRlbSA9PiAhIWl0ZW0pO1xyXG4gICAgdGhpcy50b2NJdGVtcy5mb3JFYWNoKGl0ZW0gPT4gdGhpcy5oZWFkaW5nQmxvY2tJZHMuYWRkKGl0ZW0uaWQpKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcclxuICAgICAgLy8gUmUtYXR0YWNoIHRoZSBzY3JvbGwgc3B5IHNpbmNlIHRoZSBhbmNob3JzIGl0IHdhdGNoZXMganVzdCBjaGFuZ2VkLlxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0dXBTY3JvbGxTcHkoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1RvY0FuY2hvcihibG9ja0lkOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmhlYWRpbmdCbG9ja0lkcy5oYXMoYmxvY2tJZCk7XHJcbiAgfVxyXG5cclxuICBoYXNWaXNpYmxlVGV4dChodG1sOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnN0cmlwSHRtbChodG1sKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRIZWFkaW5nQ2FuZGlkYXRlKGJsb2NrOiBCbG9nQmxvY2spOiBUb2NJdGVtIHwgbnVsbCB7XHJcbiAgICBpZiAoIWJsb2NrPy5pZCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYmxvY2sudHlwZSA9PT0gJ2hlYWRlcicpIHtcclxuICAgICAgY29uc3QgbGV2ZWwgPSAoYmxvY2suZGF0YT8uWydsZXZlbCddIGFzIG51bWJlcikgfHwgMjtcclxuICAgICAgY29uc3QgdGV4dCA9IHRoaXMuc3RyaXBIdG1sKGJsb2NrLmRhdGE/LlsndGV4dCddIGFzIHN0cmluZyB8IHVuZGVmaW5lZCk7XHJcbiAgICAgIGlmIChsZXZlbCA8PSAxIHx8ICF0ZXh0KSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHsgaWQ6IGJsb2NrLmlkLCB0ZXh0LCBsZXZlbCB9O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChibG9jay50eXBlID09PSAncGFyYWdyYXBoJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRCb2xkUGFyYWdyYXBoSGVhZGluZyhibG9jayk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEJvbGRQYXJhZ3JhcGhIZWFkaW5nKGJsb2NrOiBCbG9nQmxvY2spOiBUb2NJdGVtIHwgbnVsbCB7XHJcbiAgICBjb25zdCBodG1sID0gKGJsb2NrLmRhdGE/LlsndGV4dCddIGFzIHN0cmluZykgfHwgJyc7XHJcbiAgICBpZiAoIWh0bWwuaW5jbHVkZXMoJzxzcGFuJykpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc3BhblJlZ2V4ID0gLzxzcGFuKFtePl0qKT4oW1xcc1xcU10qPyk8XFwvc3Bhbj4vZztcclxuICAgIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcclxuICAgIGxldCBib2xkVGV4dCA9ICcnO1xyXG4gICAgbGV0IG5vbkJvbGRUZXh0ID0gJyc7XHJcbiAgICBsZXQgbWF4Rm9udFNpemVQdCA9IDA7XHJcblxyXG4gICAgd2hpbGUgKChtYXRjaCA9IHNwYW5SZWdleC5leGVjKGh0bWwpKSkge1xyXG4gICAgICBjb25zdCBzdHlsZSA9IG1hdGNoWzFdO1xyXG4gICAgICBjb25zdCBpbm5lclRleHQgPSB0aGlzLnN0cmlwSHRtbChtYXRjaFsyXSk7XHJcbiAgICAgIGNvbnN0IGlzQm9sZCA9IC9mb250LXdlaWdodDpcXHMqKGJvbGR8WzYtOV0wMCkvaS50ZXN0KHN0eWxlKTtcclxuICAgICAgY29uc3Qgc2l6ZU1hdGNoID0gc3R5bGUubWF0Y2goL2ZvbnQtc2l6ZTpcXHMqKFtcXGQuXSspcHQvaSk7XHJcbiAgICAgIGlmIChzaXplTWF0Y2gpIHtcclxuICAgICAgICBtYXhGb250U2l6ZVB0ID0gTWF0aC5tYXgobWF4Rm9udFNpemVQdCwgcGFyc2VGbG9hdChzaXplTWF0Y2hbMV0pKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXNCb2xkKSB7XHJcbiAgICAgICAgYm9sZFRleHQgKz0gaW5uZXJUZXh0O1xyXG4gICAgICB9IGVsc2UgaWYgKGlubmVyVGV4dCkge1xyXG4gICAgICAgIG5vbkJvbGRUZXh0ICs9IGlubmVyVGV4dDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRleHQgPSBib2xkVGV4dC50cmltKCk7XHJcbiAgICAvLyBNaXhlZCBib2xkL3BsYWluIHRleHQgaXMgYW4gZW1waGFzaXplZCBwaHJhc2UgaW5zaWRlIGEgbm9ybWFsIHBhcmFncmFwaCwgbm90IGEgaGVhZGluZy5cclxuICAgIGlmICghdGV4dCB8fCBub25Cb2xkVGV4dC50cmltKCkgfHwgdGV4dC5sZW5ndGggPiAxMjApIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICAvLyBUaXRsZS1zaXplZCBib2xkIHRleHQgKD49MTZwdCwgbWF0Y2hpbmcgdGhlIGFydGljbGUncyBvd24gaGVhZGluZykgaXNuJ3QgYSBUT0MgZW50cnkuXHJcbiAgICBpZiAobWF4Rm9udFNpemVQdCA+PSAxNikge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4geyBpZDogYmxvY2suaWQsIHRleHQsIGxldmVsOiAyIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0cmlwSHRtbChodG1sOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFodG1sKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiBodG1sXHJcbiAgICAgIC5yZXBsYWNlKC88W14+XSo+L2csICcnKVxyXG4gICAgICAucmVwbGFjZSgvJm5ic3A7L2csICcgJylcclxuICAgICAgLnJlcGxhY2UoLyZhbXA7L2csICcmJylcclxuICAgICAgLnRyaW0oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBTY3JvbGxTcHkoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudG9jT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuXHJcbiAgICBjb25zdCBhbmNob3JzID0gQXJyYXkuZnJvbShcclxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KFxyXG4gICAgICAgICcudG9jLWFuY2hvcidcclxuICAgICAgKVxyXG4gICAgKTtcclxuICAgIGlmICghYW5jaG9ycy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudG9jT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXHJcbiAgICAgIGVudHJpZXMgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZpc2libGUgPSBlbnRyaWVzLmZpbHRlcihlbnRyeSA9PiBlbnRyeS5pc0ludGVyc2VjdGluZyk7XHJcbiAgICAgICAgaWYgKHZpc2libGUubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZVRvY0lkID0gdmlzaWJsZVswXS50YXJnZXQuaWQucmVwbGFjZSgnYmxvY2stJywgJycpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgeyByb290TWFyZ2luOiAnMHB4IDBweCAtNzAlIDBweCcgfVxyXG4gICAgKTtcclxuICAgIGFuY2hvcnMuZm9yRWFjaChhbmNob3IgPT4gdGhpcy50b2NPYnNlcnZlcj8ub2JzZXJ2ZShhbmNob3IpKTtcclxuICB9XHJcbn1cclxuIiwiPHNlY3Rpb24gY2xhc3M9XCJtYWluLXNlY3Rpb25cIj5cbiAgPGRpdiBjbGFzcz1cImJsb2ctY29udGFpbmVyXCI+XG4gICAgPGgxIGNsYXNzPVwiYmxvZy10aXRsZVwiICpuZ0lmPVwicmVzcG9uc2VEYXRhPy5wb3N0VGl0bGVcIj5cbiAgICAgIHt7IHJlc3BvbnNlRGF0YS5wb3N0VGl0bGUgfX1cbiAgICA8L2gxPlxuXG4gICAgPGRpdiBjbGFzcz1cIm1ldGEtYmFyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS1sYWJlbFwiPlB1YmxpY2F0aW9uIERhdGU8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS12YWx1ZVwiPnt7XG4gICAgICAgICAgcmVzcG9uc2VEYXRhPy5wdWJsaXNoZWREYXRlIHx8XG4gICAgICAgICAgICByZXNwb25zZURhdGE/LmJsb2dTY2hlZHVsZWREYXRlIHx8XG4gICAgICAgICAgICByZXNwb25zZURhdGE/LmNyZWF0ZWRUaW1lU3RhbXAgfCBkYXRlOiAnZCBNTU1NIHknXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS1sYWJlbFwiPkF1dGhvcjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXRhLXZhbHVlXCI+e3tcbiAgICAgICAgICByZXNwb25zZURhdGE/LmF1dGhvcj8uY29udGVudCB8fCAn4oCUJ1xuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldGEtaXRlbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtbGFiZWxcIj5SZWFkIFRpbWU8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS12YWx1ZVwiXG4gICAgICAgICAgPnt7IHJlc3BvbnNlRGF0YT8ucmVhZFRpbWUgfHwgJ+KAlCcgfX0gbWluIHJlYWQ8L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS1sYWJlbFwiPlZpZXdzPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtdmFsdWVcIj57eyByZXNwb25zZURhdGE/LnRvdGFsVmlzaXRzIHx8IDAgfX0rPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidGFncy1yb3dcIiAqbmdJZj1cInRhZ3MubGVuZ3RoXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInRhZy1jaGlwXCIgKm5nRm9yPVwibGV0IHRhZyBvZiB0YWdzXCI+e3sgdGFnIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImJsb2ctbGF5b3V0XCIgW2NsYXNzLndpdGgtdG9jXT1cInRvY0l0ZW1zLmxlbmd0aCA+IDFcIj5cbiAgICAgIDxhc2lkZSBjbGFzcz1cInRvYy1zaWRlYmFyXCIgKm5nSWY9XCJ0b2NJdGVtcy5sZW5ndGggPiAxXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInRvYy10b2dnbGVcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2NPcGVuID0gIXRvY09wZW5cIlxuICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwidG9jT3BlblwiPlxuICAgICAgICAgIDxzcGFuPlRhYmxlIE9mIENvbnRlbnQ8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b2MtdG9nZ2xlLWljb25cIiBbY2xhc3Mub3Blbl09XCJ0b2NPcGVuXCI+PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvYy1oZWFkZXJcIj5UYWJsZSBPZiBDb250ZW50PC9kaXY+XG4gICAgICAgIDxuYXYgY2xhc3M9XCJ0b2MtbGlzdFwiIFtjbGFzcy5vcGVuXT1cInRvY09wZW5cIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHRvYyBvZiB0b2NJdGVtc1wiXG4gICAgICAgICAgICBjbGFzcz1cInRvYy1saW5rXCJcbiAgICAgICAgICAgIFtjbGFzcy50b2MtdG9wXT1cInRvYy5sZXZlbCA8PSAyXCJcbiAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nTGVmdC5weF09XCIodG9jLmxldmVsIC0gMikgKiAxNFwiXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRvY0lkID09PSB0b2MuaWRcIlxuICAgICAgICAgICAgW2hyZWZdPVwiJyNibG9jay0nICsgdG9jLmlkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzY3JvbGxUb0Jsb2NrKCRldmVudCwgdG9jLmlkKVwiPlxuICAgICAgICAgICAge3sgdG9jLnRleHQgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbmF2PlxuICAgICAgPC9hc2lkZT5cblxuICAgICAgPGRpdiBjbGFzcz1cImJsb2ctZGV0YWlsc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJlc3BvbnNlRGF0YT8uYmxvY2tzXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2hlYWRlcicgJiYgaGFzVmlzaWJsZVRleHQoaXRlbS5kYXRhPy50ZXh0KVwiXG4gICAgICAgICAgICBbaWRdPVwiJ2Jsb2NrLScgKyBpdGVtLmlkXCJcbiAgICAgICAgICAgIFtjbGFzcy50b2MtYW5jaG9yXT1cImlzVG9jQW5jaG9yKGl0ZW0uaWQpXCI+XG4gICAgICAgICAgICA8aDEgKm5nSWY9XCJpdGVtLmRhdGEubGV2ZWwgPT0gMVwiIFtpbm5lckhUTUxdPVwiaXRlbS5kYXRhLnRleHRcIj48L2gxPlxuICAgICAgICAgICAgPGgyICpuZ0lmPVwiaXRlbS5kYXRhLmxldmVsID09IDJcIiBbaW5uZXJIVE1MXT1cIml0ZW0uZGF0YS50ZXh0XCI+PC9oMj5cbiAgICAgICAgICAgIDxoMyAqbmdJZj1cIml0ZW0uZGF0YS5sZXZlbCA9PSAzXCIgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvaDM+XG4gICAgICAgICAgICA8aDQgKm5nSWY9XCJpdGVtLmRhdGEubGV2ZWwgPT0gNFwiIFtpbm5lckhUTUxdPVwiaXRlbS5kYXRhLnRleHRcIj48L2g0PlxuICAgICAgICAgICAgPGg1ICpuZ0lmPVwiaXRlbS5kYXRhLmxldmVsID09IDVcIiBbaW5uZXJIVE1MXT1cIml0ZW0uZGF0YS50ZXh0XCI+PC9oNT5cbiAgICAgICAgICAgIDxoNiAqbmdJZj1cIml0ZW0uZGF0YS5sZXZlbCA9PSA2XCIgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvaDY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ3BhcmFncmFwaCcgJiYgaGFzVmlzaWJsZVRleHQoaXRlbS5kYXRhPy50ZXh0KVwiXG4gICAgICAgICAgICBbaWRdPVwiJ2Jsb2NrLScgKyBpdGVtLmlkXCJcbiAgICAgICAgICAgIFtjbGFzcy50b2MtYW5jaG9yXT1cImlzVG9jQW5jaG9yKGl0ZW0uaWQpXCI+XG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICBjbGFzcz1cImlubmVyLXRleHRcIlxuICAgICAgICAgICAgICBbY2xhc3MuaGVhZGluZy1wYXJhZ3JhcGhdPVwiaXNUb2NBbmNob3IoaXRlbS5pZClcIlxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIml0ZW0uZGF0YS50ZXh0XCI+PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2xpc3QnXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5kYXRhLnN0eWxlID09ICdvcmRlcmVkJ1wiPlxuICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJsaXN0LXN0eWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGlzdCBvZiBpdGVtLmRhdGEuaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgIDxsaSBbaW5uZXJIVE1MXT1cImxpc3RcIj48L2xpPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5kYXRhLnN0eWxlID09ICd1bm9yZGVyZWQnXCI+XG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3Qtc3R5bGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaXN0IG9mIGl0ZW0uZGF0YS5pdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgPGxpIFtpbm5lckhUTUxdPVwibGlzdFwiPjwvbGk+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09ICdkZWxpbWl0ZXInXCIgY2xhc3M9XCJjZS1kZWxpbWl0ZXJcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0udHlwZSA9PSAnaW1hZ2UnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyXCJcbiAgICAgICAgICAgIFtjbGFzcy5oZXJvLWltYWdlXT1cIml0ZW0uaWQgPT09IGhlcm9JbWFnZUJsb2NrSWRcIj5cbiAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cIml0ZW0uZGF0YS5maWxlLnVybFwiIGFsdD1cIlwiIC8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltYWdlLWNhcHRpb25cIiAqbmdJZj1cIml0ZW0uZGF0YT8uY2FwdGlvblwiPnt7XG4gICAgICAgICAgICAgIGl0ZW0uZGF0YS5jYXB0aW9uXG4gICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09ICd0YWJsZSdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDx0YWJsZVxuICAgICAgICAgICAgICAgIFtjbGFzcy50YWJsZS1uby1oZWFkaW5nXT1cIml0ZW0uZGF0YS53aXRoSGVhZGluZ3MgPT09IGZhbHNlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGF0YSBvZiBpdGVtLmRhdGEuY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQgW2lubmVySFRNTF09XCJpdGVtXCI+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8c2ltcG8tcmVjZW50LWJsb2ctcG9zdC1zZWN0aW9uXG4gICAgICBbcG9wdWxhcl09XCJ0cnVlXCJcbiAgICAgIFtidXNpbmVzc0lkXT1cInJlc3BvbnNlRGF0YT8uYnVzaW5lc3NJZFwiXG4gICAgICBbZXhjbHVkZUJsb2dJZF09XCJyZXNwb25zZURhdGE/LmlkXCJcbiAgICAgIFtlZGl0XT1cImZhbHNlXCI+XG4gICAgPC9zaW1wby1yZWNlbnQtYmxvZy1wb3N0LXNlY3Rpb24+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
528
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1ibG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdmlldy1ibG9nL3ZpZXctYmxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZXctYmxvZy92aWV3LWJsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBRUwsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBSUwsV0FBVyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7OztBQXFCaEgsTUFBTSxPQUFPLGlCQUFpQjtJQWdWNUIsWUFDbUIsYUFBNEIsRUFDNUIsV0FBd0IsRUFDeEIsV0FBb0MsRUFDaEMsVUFBa0I7UUFIdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBalY5QyxpQkFBWSxHQUFRO1lBQzNCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsV0FBVyxFQUFFLFFBQVE7WUFDckIsYUFBYSxFQUFFLHNGQUFzRjtZQUNyRyxrQkFBa0IsRUFBRSwrQkFBK0I7WUFDbkQsVUFBVSxFQUFFLEdBQUc7WUFDZixXQUFXLEVBQUUsR0FBRztZQUNoQixhQUFhLEVBQUUsQ0FBQztZQUNoQixJQUFJLEVBQUUsc0NBQXNDO1lBQzVDLFlBQVksRUFBRSxzQ0FBc0M7WUFDcEQsTUFBTSxFQUFFLENBQUM7WUFDVCxTQUFTLEVBQUUsRUFBRTtZ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Q3hCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUM3QyxhQUFhLENBQ2QsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxvQkFBb0IsQ0FDekMsT0FBTyxDQUFDLEVBQUU7WUFDUixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzlELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNILENBQUMsRUFDRCxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxDQUNuQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQzsrR0FwaUJVLGlCQUFpQixvR0FvVmxCLFdBQVc7bUdBcFZWLGlCQUFpQiwwSUNwQzlCLDgyS0F3SUEsa2pKRHhHWSxZQUFZLGdYQUFZLDhCQUE4Qjs7NEZBSXJELGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLDhCQUE4QixDQUFDOzswQkF3VjlELE1BQU07MkJBQUMsV0FBVzt5Q0FsVlosWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUExBVEZPUk1fSUQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBSZWNlbnRCbG9nUG9zdFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9yZWNlbnQtYmxvZy1wb3N0LXNlY3Rpb24vcmVjZW50LWJsb2ctcG9zdC1zZWN0aW9uLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBUb2NJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xuICBsZXZlbDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgQmxvZ0Jsb2NrIHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLXZpZXctYmxvZycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERhdGVQaXBlLCBSZWNlbnRCbG9nUG9zdFNlY3Rpb25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy1ibG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3ZpZXctYmxvZy5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgVmlld0Jsb2dDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcmVzcG9uc2VEYXRhOiBhbnkgPSB7XG4gICAgXCJzdWJJbmR1c3RyeUlkXCI6IG51bGwsXG4gICAgXCJzdWJJbmR1c3RyeU5hbWVcIjogXCJcIixcbiAgICBcImRpc3BsYXlJZFwiOiBcIkJHMTc4NFwiLFxuICAgIFwiYXJ0aWNsZVNsdWdcIjogXCJDYXNlLVN0dWR5LUhvdy1hLUpld2VsbGVyeS1SZXRhaWxlci1JbmNyZWFzZWQtLUN1c3RvbWVyLUVuZ2FnZW1lbnQtVXNpbmctUGFzc2Jvb2tBcHBcIixcbiAgICBcInVwZGF0ZWRUaW1lU3RhbXBcIjogXCIyMDI2LTA4LTA0VDExOjU5OjI0LjAwMCswMDowMFwiLFxuICAgIFwicmVhZFRpbWVcIjogXCIzXCIsXG4gICAgXCJ3b3JkQ291bnRcIjogNjM0LFxuICAgIFwidG90YWxWaXNpdHNcIjogMCxcbiAgICBcImlkXCI6IFwiMWYxOGZmYmQtM2Y5OC02NWMzLWEzNzctOWQyOWE3ODFiOTc4XCIsXG4gICAgXCJidXNpbmVzc0lkXCI6IFwiMWYxOTU2N2EtY2UyNi02NzkwLThhMTQtYzc4NmZjMDg0YTgyXCIsXG4gICAgXCJ0aW1lXCI6IDAsXG4gICAgXCJ2ZXJzaW9uXCI6IFwiXCIsXG4gICAgXCJibG9ja3NcIjogW1xuICAgICAge1xuICAgICAgICBcImlkXCI6IFwidTJ6UjRRN0FVeVwiLFxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcbiAgICAgICAgXCJkYXRhXCI6IHtcbiAgICAgICAgICBcInRleHRcIjogXCJDYXNlIFN0dWR5OiBIb3cgYSBKZXdlbGxlcnkgUmV0YWlsZXIgSW5jcmVhc2VkIEN1c3RvbWVyIEVuZ2FnZW1lbnQgYnkgNDAlIFVzaW5nIFBhc3Nib29rQXBwXCIsXG4gICAgICAgICAgXCJsZXZlbFwiOiAxXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwiaWRcIjogXCIwVUoxV3FkVmZuXCIsXG4gICAgICAgIFwidHlwZVwiOiBcImltYWdlXCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJjYXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJ3aXRoQm9yZGVyXCI6IGZhbHNlLFxuICAgICAgICAgIFwid2l0aEJhY2tncm91bmRcIjogZmFsc2UsXG4gICAgICAgICAgXCJzdHJldGNoZWRcIjogZmFsc2UsXG4gICAgICAgICAgXCJmaWxlXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9pbWFnZXMvMTY5NzUyYzE3ODU4NDQzNTA0NzNDaGF0R1BUJTIwSW1hZ2UlMjBBdWclMjA0JTJDJTIwMjAyNiUyQyUyMDA1XzIyXzE4JTIwUE0ucG5nXCIsXG4gICAgICAgICAgICBcImhlaWdodFwiOiBcIjUwMHB4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwiaWRcIjogXCJZSE96bWk1WGc3XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxuICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPkluIHRvZGF54oCZcyBmYXN0LXBhY2VkIHJldGFpbCBtYXJrZXQsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBidWlsZGluZyBsb25nLXRlcm0gY3VzdG9tZXIgbG95YWx0eSBhbmQgbWFpbnRhaW5pbmcgYWN0aXZlIGVuZ2FnZW1lbnQgaXMgYSBtYWpvciBodXJkbGUgZm9yIHRyYWRpdGlvbmFsIGpld2VsZXJzLjwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gV2hpbGUgZ29sZCBhbmQgc2lsdmVyIHNhdmluZyBzY2hlbWVzIChsaWtlIDEwKzEgbW9udGhseSBkZXBvc2l0IHBsYW5zKSBoYXZlIGxvbmcgYmVlbiB0aGUgYmFja2JvbmUgb2YgY3VzdG9tZXIgYWNxdWlzaXRpb24sPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBtYW5hZ2luZyB0aGVtIHRocm91Z2ggdHJhZGl0aW9uYWwgcGFwZXIgcGFzc2Jvb2tzIG9mdGVuIGxlYWRzIHRvIGxvdyBlbmdhZ2VtZW50LDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gbWlzc2VkIHBheW1lbnRzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gbG9zdCBwaHlzaWNhbCBib29rcyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGFuZCB1bHRpbWF0ZSBkcm9wLW9mZnMuPC9zcGFuPlwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwiaWRcIjogXCJtb3VFYnJmeDd5XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxuICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPkZvciBtdWx0aS1sb2NhdGlvbiByZXRhaWxlcnMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiB0aGVzZSBjaGFsbGVuZ2VzIGFyZSBhbXBsaWZpZWQuPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBQaHlzaWNhbCByZWdpc3RlcnMgYW5kIG1hbnVhbCBmb2xsb3ctdXBzIGF0IGVhY2ggc3RvcmUgbWFrZSBjcmVhdGluZyBhIHVuaWZpZWQgdmlldyBvZiB0aGUgY3VzdG9tZXIgbGV0IGFsb25lIHRoZSBidXNpbmVzcyB2aXJ0dWFsbHkgaW1wb3NzaWJsZS48L3NwYW4+XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcIk03WW44NklnalJcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+VGhpcyA8L3NwYW4+PGI+amV3ZWxsZXJ5IGN1c3RvbWVyIGVuZ2FnZW1lbnQgY2FzZSBzdHVkeTwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gZGVtb25zdHJhdGVzIGhvdyBhIHByb21pbmVudCByZXRhaWwgamV3ZWxlciBsZXZlcmFnZWQgPC9zcGFuPjxiPlBhc3Nib29rQXBwJm5ic3A7PC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPmEgbW9kZXJuIDwvc3Bhbj48Yj5kaWdpdGFsIHBhc3Nib29rIGZvciBqZXdlbGxlcnkgc3RvcmVzPC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiZuYnNwO3RvIG92ZXJoYXVsIHRoZWlyIG9wZXJhdGlvbnMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhdXRvbWF0ZSBjdXN0b21lciBjb21tdW5pY2F0aW9uIHZpYSBXaGF0c0FwcCw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGFuZCBkcml2ZSBzaWduaWZpY2FudCBidXNpbmVzcyBncm93dGguPC9zcGFuPlwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwiaWRcIjogXCItdzVXc241NG1aXCIsXG4gICAgICAgIFwidHlwZVwiOiBcImhlYWRlclwiLFxuICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgIFwidGV4dFwiOiBcIkZlYXR1cmVkIFN1Y2Nlc3MgU3Rvcnk6IEhvdyBQYXNzYm9va0FwcCBUb29rIExhZ3UgQmFuZGh1IEpld2VsbGVycyBmcm9tIFJlZ2lzdGVycyB0byBSZWFsLVRpbWVcIixcbiAgICAgICAgICBcImxldmVsXCI6IDJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcInVkVUVUUHo5c05cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2VcIixcbiAgICAgICAgXCJkYXRhXCI6IHtcbiAgICAgICAgICBcImNhcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcIndpdGhCb3JkZXJcIjogZmFsc2UsXG4gICAgICAgICAgXCJ3aXRoQmFja2dyb3VuZFwiOiBmYWxzZSxcbiAgICAgICAgICBcInN0cmV0Y2hlZFwiOiBmYWxzZSxcbiAgICAgICAgICBcImZpbGVcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL2ltYWdlcy83NjcwNDRjMTc4NTg0Mzg0ODIyMFNsaWRlJTIwMTZfOSUyMC0lMjAxJTIwJTI4NCUyOS5wbmdcIixcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IFwiNTAwcHhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcIlBKVlVBaHFMNTZcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+TGFndSBCYW5kaHUgSmV3ZWxsZXJzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYSBsZWdhY3kgYnJhbmQgc2luY2UgMTkzNiB3aXRoIG11bHRpcGxlIHN0b3JlIGxvY2F0aW9ucyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGZhY2VkIGEgY3JpdGljYWwgb3BlcmF0aW9uYWwgYm90dGxlbmVjay48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IE1hbmFnaW5nIGpld2VsbGVyeSBzYXZpbmcgc2NoZW1lcyBhY3Jvc3MgbnVtZXJvdXMgYnJhbmNoZXMgdXNpbmcgcGh5c2ljYWwgcmVnaXN0ZXJzIG1lYW50IHBheW1lbnRzIHdlcmUgZGlmZmljdWx0IHRvIHRyYWNrIGNlbnRyYWxseSw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGZvbGxvdy11cHMgd2VyZSBkb25lIG1hbnVhbGx5LDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYW5kIGEgc2luZ2xlLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gdW5pZmllZCB2aWV3IG9mIHRoZSBidXNpbmVzcyB3YXMgbWlzc2luZy48L3NwYW4+XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcImh6ekZkdlNrNmZcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+VGhleSBpbXBsZW1lbnRlZCBQYXNzYm9va0FwcCBhcyB0aGVpciBkZWRpY2F0ZWQgPC9zcGFuPjxiPmpld2VsbGVyeSBjdXN0b21lciByZXRlbnRpb24gc29mdHdhcmU8L2I+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHRvIHJlcGxhY2UgdGhlaXIgZW50aXJlIHBhcGVyLWJhc2VkIHN5c3RlbSB3aXRoIG9uZSBkaWdpdGFsIHdvcmtmbG93IHdpdGhvdXQgZGlzcnVwdGluZyBleGlzdGluZyBvcGVyYXRpb25zLjwvc3Bhbj5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcImlkXCI6IFwiNGZwQ21xNGEwS1wiLFxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcbiAgICAgICAgXCJkYXRhXCI6IHtcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5UaGlzIDwvc3Bhbj48Yj5qZXdlbGxlcnkgY3VzdG9tZXIgZW5nYWdlbWVudCBjYXNlIHN0dWR5PC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBoaWdobGlnaHRzIHRoZSBzcGVjaWZpYyBvdXRjb21lcyBhY2hpZXZlZCBieSBMYWd1IEJhbmRodSB3aXRoIHRoZSBwbGF0Zm9ybTo8L3NwYW4+XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcIndCM19hNXhSUS1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgIFwic3R5bGVcIjogXCJ1bm9yZGVyZWRcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IFtcbiAgICAgICAgICAgIFwiPGI+Q3VzdG9tZXIgQ29udmVuaWVuY2UgdmlhIERpZ2l0YWwgUGF5bWVudHM6PC9iPiBBIGtleSBmZWF0dXJlIHdhcyBlbmFibGluZyBjdXN0b21lcnMgdG8gcGF5IGZvciB0aGVpciBtb250aGx5IHNjaGVtZXMgZGlnaXRhbGx5LCBjb21wbGV0ZWx5IGVsaW1pbmF0aW5nIHRoZSBuZWVkIGZvciBhIHN0b3JlIHZpc2l0LlwiLFxuICAgICAgICAgICAgXCI8Yj5DZW50cmFsaXplZCBNdWx0aS1Mb2NhdGlvbiBWaWV3OjwvYj4gTWFuYWdlbWVudCBub3cgaGFzIGEgcmVhbC10aW1lLCBjZW50cmFsaXplZCBzY2hlbWUgdmlldyBhY3Jvc3MgYWxsIHN0b3JlIGxvY2F0aW9ucywgYSBjcnVjaWFsIGVsZW1lbnQgb2YgdGhlaXIgPGI+ZGlnaXRhbCB0cmFuc2Zvcm1hdGlvbiBpbiBqZXdlbGxlcnkgcmV0YWlsPC9iPi5cIixcbiAgICAgICAgICAgIFwiPGI+U3RyZWFtbGluZWQgT3BlcmF0aW9uczo8L2I+IE1hbnVhbCB0cmFja2luZyBhbmQgZXhjZXNzaXZlIHBhcGVyd29yayBoYXZlIGJlZW4gbmVhcmx5IGVsaW1pbmF0ZWQsIG9wdGltaXppbmcgc3RhZmYgdGltZSBmb3Igc2FsZXMuXCJcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwiaWRcIjogXCJpT1doSHhyVUd4XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxuICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPlJlZmxlY3Rpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gTXIuPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBQYXJhZyBMYWd1LDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gRGlyZWN0b3Igb2YgTGFndSBCYW5kaHUsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBub3RlZDo8L3NwYW4+XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcIjA2bUxVRmV4ZEtcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPGk+4oCcQWZ0ZXIgbW9yZSB0aGFuIHR3byB5ZWFycyB3aXRoIFBhc3Nib29rQVBQLCBJIGNhbiBjb25maWRlbnRseSBzYXkgaXTigJlzIGJlZW4gYW4gb3V0c3RhbmRpbmcgZXhwZXJpZW5jZS4gVGhlaXIgc3VwcG9ydCB0ZWFtIGlzIHJlc3BvbnNpdmUsIGtub3dsZWRnZWFibGUsIGFuZCB0cnVseSBjb21taXR0ZWQgdG8gb3VyIGdyb3d0aC4gQW55IGpld2VsZXIgbG9va2luZyB0byBzdHJlYW1saW5lIHRoZWlyIG9wZXJhdGlvbnMgd291bGQgYmUgd2lzZSB0byBjb25zaWRlciBQYXNzYm9va0FQUC7igJ08L2k+XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcIjFoVnh2WVUtb0VcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiVGhlIENoYWxsZW5nZTogRnJpY3Rpb24gaW4gVHJhZGl0aW9uYWwgSmV3ZWxsZXJ5IFNhdmluZ3MgU2NoZW1lc1wiLFxuICAgICAgICAgIFwibGV2ZWxcIjogMlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcImlkXCI6IFwiZG1mRUpnb3hDWlwiLFxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcbiAgICAgICAgXCJkYXRhXCI6IHtcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5MYWd1IEJhbmRodSdzIGV4cGVyaWVuY2UgcGVyZmVjdGx5IG1pcnJvcnMgdGhlIGxhcmdlciBvcGVyYXRpb25hbCBjaGFsbGVuZ2UgZmFjZWQgYnkgdGhlIGluZHVzdHJ5Ljwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gQmVmb3JlIHBhcnRuZXJpbmcgd2l0aCBQYXNzYm9va0FwcCw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHRyYWRpdGlvbmFsIG1ldGhvZHMgY3JlYXRlZCBhIHBvb3IgPC9zcGFuPjxiPmpld2VsbGVyeSBjdXN0b21lciBleHBlcmllbmNlPC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPjo8L3NwYW4+XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcImFwZ1ViS1BPT3dcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgIFwic3R5bGVcIjogXCJ1bm9yZGVyZWRcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IFtcbiAgICAgICAgICAgIFwiPGI+SGlnaCBEcm9wLW9mZiBSYXRlczo8L2I+IEN1c3RvbWVycyBmcmVxdWVudGx5IGZvcmdvdCBtb250aGx5IGluc3RhbGxtZW50cywgbGVhZGluZyB0byBsYXBzZWQgYWNjb3VudHMuXCIsXG4gICAgICAgICAgICBcIjxiPkxhY2sgb2YgVmlzaWJpbGl0eTo8L2I+IEN1c3RvbWVycyBjb3VsZG7igJl0IHRyYWNrIHRoZWlyIGFjY3VtdWxhdGVkIGJhbGFuY2Ugb3IgZ29sZCB3ZWlnaHQgaW4gcmVhbC10aW1lLCBkZWNyZWFzaW5nIHRoZWlyIGVtb3Rpb25hbCBpbnZlc3RtZW50IGluIHRoZSBzY2hlbWUuXCIsXG4gICAgICAgICAgICBcIjxiPk1hbnVhbCBBZG1pbmlzdHJhdGl2ZSBCdXJkZW46PC9iPiBTdGFmZiBzcGVudCBjb3VudGxlc3MgaG91cnMgYW5zd2VyaW5nIGJhbGFuY2UgaW5xdWlyaWVzLCBpc3N1aW5nIHJlY2VpcHRzLCBhbmQgbWFraW5nIG1hbnVhbCByZW1pbmRlciBjYWxscy5cIixcbiAgICAgICAgICAgIFwiPGI+V2VhayBQb3N0LU1hdHVyaXR5IEVuZ2FnZW1lbnQ6PC9iPiBPbmNlIGEgc2F2aW5ncyBzY2hlbWUgbWF0dXJlZCwgcmVkZWVtaW5nIHRoZSBmaW5hbCBwcm9kdWN0IGZlbHQgdHJhbnNhY3Rpb25hbCByYXRoZXIgdGhhbiByZXdhcmRpbmcsIGxlYWRpbmcgdG8gbG93IHJlcGVhdCBlbmdhZ2VtZW50LlwiXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcImlkXCI6IFwiMU94cTZUMFRoZFwiLFxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcbiAgICAgICAgXCJkYXRhXCI6IHtcbiAgICAgICAgICBcInRleHRcIjogXCJUaGUgU29sdXRpb246IERpZ2l0YWwgVHJhbnNmb3JtYXRpb24gd2l0aCBQYXNzYm9va0FwcFwiLFxuICAgICAgICAgIFwibGV2ZWxcIjogMlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcImlkXCI6IFwiY0NwclVjOVA3OFwiLFxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcbiAgICAgICAgXCJkYXRhXCI6IHtcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5UaGUgaW1wbGVtZW50YXRpb24gYXQgTGFndSBCYW5kaHUgbGV2ZXJhZ2VkIFBhc3Nib29rQXBw4oCZcyBjb21wbGV0ZSA8L3NwYW4+PGI+amV3ZWxsZXJ5IENSTSBzb2Z0d2FyZTwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYW5kIDwvc3Bhbj48Yj5qZXdlbGxlcnkgbG95YWx0eSBzb2Z0d2FyZTwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gY2FwYWJpbGl0aWVzIHRvIG1vZGVybml6ZSBvcGVyYXRpb25zLjwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gQnkgaW50ZWdyYXRpbmcgdGhlc2Ugc3BlY2lmaWMgdGVjaG5vbG9naWVzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gdGhlIHJldGFpbGVyIHdhcyBhYmxlIHRvIGFjaGlldmUgc2lnbmlmaWNhbnQgZ2FpbnM6PC9zcGFuPlwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwiaWRcIjogXCJibnEyYzRYTTJoXCIsXG4gICAgICAgIFwidHlwZVwiOiBcImhlYWRlclwiLFxuICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgIFwidGV4dFwiOiBcIjEuIERpZ2l0YWwgUGFzc2Jvb2sgSW1wbGVtZW50YXRpb25cIixcbiAgICAgICAgICBcImxldmVsXCI6IDNcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcInZKc0lXNzUzZTJcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+UmVwbGFjaW5nIHBoeXNpY2FsIGJvb2tsZXRzIHdpdGggYSBjZW50cmFsaXplZCA8L3NwYW4+PGI+ZGlnaXRhbCBwYXNzYm9vayBmb3IgamV3ZWxsZXJ5IHN0b3JlczwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYWxsb3dlZCBjdXN0b21lcnMgdG8gdmlldyB0aGVpciB0b3RhbCBiYWxhbmNlLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gcmVhbC10aW1lIGdvbGQgd2VpZ2h0LDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gcGFpZCB2cy48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHJlbWFpbmluZyBpbnN0YWxsbWVudHMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgbWF0dXJpdHkgZGF0ZXMgb24tZGVtYW5kLjwvc3Bhbj5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcImlkXCI6IFwiZGctUEg4bzZHeFwiLFxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcbiAgICAgICAgXCJkYXRhXCI6IHtcbiAgICAgICAgICBcInRleHRcIjogXCIyLiBXaGF0c0FwcCBBdXRvbWF0aW9uIGFuZCBSZW1pbmRlcnNcIixcbiAgICAgICAgICBcImxldmVsXCI6IDNcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcIlpvbmY4SFVaeHJcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+RGVwbG95aW5nIDwvc3Bhbj48Yj5qZXdlbGxlcnkgV2hhdHNBcHAgcmVtaW5kZXIgc29mdHdhcmU8L2I+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGVuc3VyZWQgY3VzdG9tZXJzIHJlY2VpdmVkIGF1dG9tYXRlZCByZWNlaXB0cyBmb3IgZGlnaXRhbCBwYXltZW50cyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHRpbWVseSBpbnN0YWxsbWVudCByZW1pbmRlcnMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgbWF0dXJpdHkgbm90aWZpY2F0aW9ucyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGxlYWRpbmcgdG8gYW4gODUlIGltcHJvdmVtZW50IGluIHNjaGVtZSByZW5ld2Fscy48L3NwYW4+XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcIjlaNXItTmtkSTZcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiMy4gSW50ZWdyYXRlZCBKZXdlbGxlcnkgQ1JNICZhbXA7IE1hbmFnZW1lbnRcIixcbiAgICAgICAgICBcImxldmVsXCI6IDNcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcImgyUVY5U3k2RlpcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+UGFzc2Jvb2tBcHDigJlzIGludGVncmF0ZWQgPC9zcGFuPjxiPmpld2VsbGVyeSBtYW5hZ2VtZW50IHNvZnR3YXJlPC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBwcm92aWRlZCBhIHNpbmdsZSBkYXNoYm9hcmQgZm9yIGN1c3RvbWVyIHB1cmNoYXNlIGhpc3RvcnkgYW5kIHNjaGVtZSBwcm9ncmVzcy48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IFRoaXMgZGF0YSBnYXZlIHN0b3JlIHN0YWZmIHBlcnNvbmFsaXplZCBpbnNpZ2h0cyB0byB1c2UgZHVyaW5nIHNob3dyb29tIHZpc2l0cy48L3NwYW4+XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcImlYLTJ1OVF1MDlcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiUmVzdWx0czogVGhlIEltcGFjdCBvbiBDdXN0b21lciBFbmdhZ2VtZW50IGFuZCBCdXNpbmVzcyBHcm93dGhcIixcbiAgICAgICAgICBcImxldmVsXCI6IDJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcIlU3emNyLWNCcFFcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+V2l0aGluIGp1c3Qgc2l4IG1vbnRocyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHRoZSBpbXBsZW1lbnRhdGlvbnMgZHJpdmVuIGJ5IFBhc3Nib29rQXBwIGRlbGl2ZXJlZCB0cmFuc2Zvcm1hdGl2ZSBidXNpbmVzcyByZXN1bHRzOjwvc3Bhbj5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcImlkXCI6IFwicUVqMjRGWkF5Y1wiLFxuICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJzdHlsZVwiOiBcInVub3JkZXJlZFwiLFxuICAgICAgICAgIFwiaXRlbXNcIjogW1xuICAgICAgICAgICAgXCI8Yj40MCUgSW5jcmVhc2UgaW4gQ3VzdG9tZXIgRW5nYWdlbWVudDo8L2I+IFRoZSBkaWdpdGFsIHBhc3Nib29rIGFwcCBiZWNhbWUgYSBjcml0aWNhbCwgZGFpbHkgdG91Y2hwb2ludCBmb3IgY3VzdG9tZXJzLlwiLFxuICAgICAgICAgICAgXCI8Yj44NSUgSW1wcm92ZW1lbnQgaW4gU2NoZW1lIFJlbmV3YWxzOjwvYj4gQXV0b21hdGVkIHJlbWluZGVycyBlZmZlY3RpdmVseSBlbGltaW5hdGVkIG1pc3NlZCBpbnN0YWxsbWVudHMuXCIsXG4gICAgICAgICAgICBcIjxiPjM1JSBCb29zdCBpbiBSZXBlYXQgUHVyY2hhc2VzOjwvYj4gUGVyc29uYWxpemVkIENSTSBpbnNpZ2h0cyBhbGxvd2VkIHRhcmdldGVkIG9mZmVycyB1cG9uIG1hdHVyaXR5LlwiLFxuICAgICAgICAgICAgXCI8Yj43MCUgUmVkdWN0aW9uIGluIE9wZXJhdGlvbmFsIFdvcmtsb2FkOjwvYj4gRWxpbWluYXRpbmcgbWFudWFsIHRyYWNraW5nIGZyZWVkIHN0YWZmIGZvciBoaWdoLXZhbHVlIHNhbGVzLCBtaXJyb3JpbmcgTGFndSBCYW5kaHUncyBhZG1pbmlzdHJhdGl2ZSBzYXZpbmdzLlwiXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcImlkXCI6IFwiazZySE54M0QxalwiLFxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcbiAgICAgICAgXCJkYXRhXCI6IHtcbiAgICAgICAgICBcInRleHRcIjogXCJLZXkgVGFrZWF3YXlzIGZvciBKZXdlbGxlcnkgTWVyY2hhbnRzXCIsXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwiaWRcIjogXCJNQUhRZmR2Z19zXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxuICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPlRoZSBzdWNjZXNzZnVsIDwvc3Bhbj48Yj5qZXdlbGxlcnkgc29mdHdhcmUgc3VjY2VzcyBzdG9yeTwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gb2YgcmV0YWlsZXJzIGxpa2UgTGFndSBCYW5kaHUgcHJvdmVzIHRoYXQgbW9kZXJuaXphdGlvbiBpcyBrZXkgdG8gc3VzdGFpbmFibGUgPC9zcGFuPjxiPmpld2VsbGVyeSBidXNpbmVzcyBncm93dGg8L2I+PHNwYW4gY2xhc3M9XFxcIlxcXCI+Ojwvc3Bhbj5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcImlkXCI6IFwiMzVhODVScTRDM1wiLFxuICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJzdHlsZVwiOiBcIm9yZGVyZWRcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IFtcbiAgICAgICAgICAgIFwiPGI+TGV2ZXJhZ2UgdGhlIFJpZ2h0IFRlY2ggZm9yIFlvdXIgU2NhbGU6PC9iPiBBcyBhIDxiPmpld2VsbGVyeSBDUk0gY2FzZSBzdHVkeTwvYj4gZm9yIG11bHRpLWxvY2F0aW9uIGJ1c2luZXNzZXMgc2hvd3MsIGNlbnRyYWxpemVkIHZpc2liaWxpdHkgaXMgZXNzZW50aWFsIGZvciBvcGVyYXRpb25hbCBjb250cm9sIGFuZCBwZXJzb25hbGl6ZWQgc2VydmljZS5cIixcbiAgICAgICAgICAgIFwiPGI+TWVldCBDdXN0b21lcnMgV2hlcmUgVGhleSBBcmU6PC9iPiBNb2Rlcm4gYnV5ZXJzIGRlbWFuZCBtb2JpbGUgYWNjZXNzLiBBIDxiPmRpZ2l0YWwgcGFzc2Jvb2sgZm9yIGpld2VsbGVyeSBzdG9yZXM8L2I+IHdpdGggZGlnaXRhbCBwYXltZW50IG9wdGlvbnMgaXMgYSBiYXNlbGluZSBleHBlY3RhdGlvbi5cIixcbiAgICAgICAgICAgIFwiPGI+QXV0b21hdGUgZm9yIEVmZmljaWVuY3k6PC9iPiBJbnRlZ3JhdGluZyA8Yj5qZXdlbGxlcnkgV2hhdHNBcHAgcmVtaW5kZXIgc29mdHdhcmU8L2I+IGNyZWF0ZXMgaGlnaC1pbXBhY3QgY29tbXVuaWNhdGlvbiB3aXRoIG1pbmltYWwgbWFudWFsIGVmZm9ydC5cIlxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiBcIktaUjBwalBZemdcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiUmVhZHkgdG8gRWxldmF0ZSBZb3VyIEpld2VsbGVyeSBTdG9yZSdzIEVuZ2FnZW1lbnQ/XCIsXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwiaWRcIjogXCJOLW5RRkJSb1RfXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxuICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPklmIHlvdSBhcmUgbG9va2luZyB0byBzY2FsZSB5b3VyIGpld2VsbGVyeSBidXNpbmVzcyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGVsaW1pbmF0ZSBtYW51YWwgYWRtaW5pc3RyYXRpdmUgaGFzc2xlIGxpa2UgcGh5c2ljYWwgcmVnaXN0ZXJzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYW5kIGluY3JlYXNlIGN1c3RvbWVyIGxveWFsdHksPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBpdCdzIHRpbWUgdG8gdXBncmFkZSB5b3VyIHRlY2ggc3RhY2suPC9zcGFuPlwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwiaWRcIjogXCJKNXFyWGRFM2x2XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxuICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPlNlZSBob3cgUGFzc2Jvb2tBcHAgaGVscHMgamV3ZWxsZXJ5IGJ1c2luZXNzZXMgYXV0b21hdGUgc2F2aW5ncyBzY2hlbWVzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gaW1wcm92ZSByZW5ld2Fscyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGluY3JlYXNlIHJlcGVhdCBwdXJjaGFzZXMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgYnVpbGQgbG9uZy10ZXJtIGN1c3RvbWVyIGxveWFsdHkuPC9zcGFuPlwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwiaWRcIjogXCJyNWtDRk81MDNXXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxuICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgIFwidGV4dFwiOiBcIjxiPjxhIGhyZWY9XFxcImh0dHBzOi8vd3d3LnBhc3Nib29rYXBwLmluL2RlbW9cXFwiPkJvb2sgYSBGcmVlIFBhc3Nib29rQXBwIERlbW8gVG9kYXk8L2E+PC9iPlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdLFxuICAgIFwiY3JlYXRlZEJ5XCI6IFwiUmFqXCIsXG4gICAgXCJwb3N0U3VtbWFyeVwiOiBcIkRpc2NvdmVyIGhvdyBKZXdlbGxlcnkgcmV0YWlsZXJzIGVsaW1pbmF0ZWQgbWFudWFsIHJlZ2lzdGVycywgaW5jcmVhc2VkIGN1c3RvbWVyIGVuZ2FnZW1lbnQsIGFuZCBzdHJlYW1saW5lZCBzYXZpbmdzIHNjaGVtZXMgdXNpbmcgUGFzc2Jvb2tBcHAuXCIsXG4gICAgXCJwb3N0VGl0bGVcIjogXCJDYXNlIFN0dWR5OiBIb3cgYSBKZXdlbGxlcnkgUmV0YWlsZXIgSW5jcmVhc2VkICBDdXN0b21lciBFbmdhZ2VtZW50IFVzaW5nIFBhc3Nib29rQXBwXCIsXG4gICAgXCJuZXdQb3N0VGl0bGVcIjogXCJDYXNlLVN0dWR5LUhvdy1hLUpld2VsbGVyeS1SZXRhaWxlci1JbmNyZWFzZWQtLUN1c3RvbWVyLUVuZ2FnZW1lbnQtVXNpbmctUGFzc2Jvb2tBcHBcIixcbiAgICBcImJsb2dNZXRhXCI6IHtcbiAgICAgIFwibWV0YVRpdGxlXCI6IFwiQ2FzZSBTdHVkeTogSG93IGEgSmV3ZWxsZXJ5IFJldGFpbGVyIEluY3JlYXNlZCAgQ3VzdG9tZXIgRW5nYWdlbWVudCBVc2luZyBQYXNzYm9va0FwcFwiLFxuICAgICAgXCJtZXRhRGVzY3JpcHRpb25cIjoge1xuICAgICAgICBcIm5hbWVcIjogXCJkZXNjcmlwdGlvblwiLFxuICAgICAgICBcImNvbnRlbnRcIjogXCJEaXNjb3ZlciBob3cgSmV3ZWxsZXJ5IHJldGFpbGVycyBlbGltaW5hdGVkIG1hbnVhbCByZWdpc3RlcnMsIGluY3JlYXNlZCBjdXN0b21lciBlbmdhZ2VtZW50LCBhbmQgc3RyZWFtbGluZWQgc2F2aW5ncyBzY2hlbWVzIHVzaW5nIFBhc3Nib29rQXBwLlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcImNyZWF0ZWRUaW1lU3RhbXBcIjogXCIyMDI2LTA4LTA0VDExOjU4OjM3LjAwMCswMDowMFwiLFxuICAgIFwicHVibGlzaGVkRGF0ZVwiOiBudWxsLFxuICAgIFwiYmxvZ1NjaGVkdWxlZERhdGVcIjogXCIyMDI2LTA4LTA0VDAwOjAwOjAwLjAwMCswMDowMFwiLFxuICAgIFwiYmxvZ1NjaGVkdWxlVGltZVwiOiBcIjE3OjI5OjI0XCIsXG4gICAgXCJrZXlXb3Jkc1wiOiB7XG4gICAgICBcIm5hbWVcIjogXCJrZXl3b3Jkc1wiLFxuICAgICAgXCJjb250ZW50XCI6IFwiZGlnaXRhbCBwYXNzYm9vayBmb3IgamV3ZWxsZXJ5IHN0b3JlcyxKZXdlbGxlcnkgY3VzdG9tZXIgZW5nYWdlbWVudCxqZXdlbGxlcnkgY3VzdG9tZXIgZW5nYWdlbWVudCBzb2Z0d2FyZSxqZXdlbGxlcnkgQ1JNIHNvZnR3YXJlLGpld2VsbGVyeSBjdXN0b21lciBleHBlcmllbmNlXCJcbiAgICB9LFxuICAgIFwiYXV0aG9yXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImF1dGhvclwiLFxuICAgICAgXCJjb250ZW50XCI6IFwiUGFzc2Jvb2thcHBcIlxuICAgIH0sXG4gICAgXCJibG9nU3RhdHVzXCI6IFwiUFVCTElTSFwiLFxuICAgIFwiYmxvZ1R5cGVcIjogXCJCVVNJTkVTU1wiXG4gIH1cblxuICB0b2NJdGVtczogVG9jSXRlbVtdID0gW107XG4gIHRvY09wZW4gPSBmYWxzZTtcbiAgYWN0aXZlVG9jSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhZGluZ0Jsb2NrSWRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuO1xuICBwcml2YXRlIHRvY09ic2VydmVyPzogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IG9iamVjdFxuICApIHtcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5idWlsZFRhYmxlT2ZDb250ZW50cygpO1xuICAgIHRoaXMucmVjb3JkVmlzaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncmVzcG9uc2VEYXRhJ10gJiYgIWNoYW5nZXNbJ3Jlc3BvbnNlRGF0YSddLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgdGhpcy5idWlsZFRhYmxlT2ZDb250ZW50cygpO1xuICAgICAgdGhpcy5yZWNvcmRWaXNpdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvdW50cyBvbmUgcHVibGljIHZpZXcgcGVyIGJsb2cgcGVyIGJyb3dzZXIgc2Vzc2lvbiwgcGVyIHRoZSBcIkluY3JlbWVudCBibG9nIHZpc2l0c1wiIHNwZWM6XG4gIC8vIFBVVCBidXNpbmVzcy9ibG9nL3VwZGF0ZS97YmxvZ0lkfSwgZmlyZS1hbmQtZm9yZ2V0LCBndWFyZGVkIHNvIHJlZnJlc2gvcmUtcmVuZGVyIGRvZXNuJ3QgZG91YmxlLWNvdW50LlxuICBwcml2YXRlIHJlY29yZFZpc2l0KCkge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgYmxvZ0lkID0gdGhpcy5yZXNwb25zZURhdGE/LmlkO1xuICAgIGlmICghYmxvZ0lkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNlc3Npb25LZXkgPSBgYmxvZy12aXNpdC0ke2Jsb2dJZH1gO1xuICAgIGlmIChzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHNlc3Npb25LZXkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oc2Vzc2lvbktleSwgJzEnKTtcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmluY3JlbWVudEJsb2dWaXNpdChibG9nSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB7IH0sXG4gICAgICBlcnJvcjogKCkgPT4geyB9LFxuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0dXBTY3JvbGxTcHkoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudG9jT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIGdldCBoZXJvSW1hZ2VCbG9ja0lkKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGJsb2NrczogQmxvZ0Jsb2NrW10gPSB0aGlzLnJlc3BvbnNlRGF0YT8uYmxvY2tzIHx8IFtdO1xuICAgIHJldHVybiBibG9ja3MuZmluZChibG9jayA9PiBibG9jay50eXBlID09PSAnaW1hZ2UnKT8uaWQgPz8gbnVsbDtcbiAgfVxuXG4gIGdldCB0YWdzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5yZXNwb25zZURhdGE/LmtleVdvcmRzPy5jb250ZW50O1xuICAgIGlmICghY29udGVudCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gY29udGVudFxuICAgICAgLnNwbGl0KCcsJylcbiAgICAgIC5tYXAoKHRhZzogc3RyaW5nKSA9PiB0YWcudHJpbSgpKVxuICAgICAgLmZpbHRlcigodGFnOiBzdHJpbmcpID0+IHRhZy5sZW5ndGggPiAwKTtcbiAgfVxuXG4gIGVkaXRTZWN0aW9uKCkge1xuICAgIC8vIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHNjcm9sbFRvQmxvY2soZXZlbnQ6IEV2ZW50LCBibG9ja0lkOiBzdHJpbmcpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAucXVlcnlTZWxlY3RvcihgI2Jsb2NrLSR7YmxvY2tJZH1gKVxuICAgICAgPy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdzdGFydCcgfSk7XG4gICAgdGhpcy50b2NPcGVuID0gZmFsc2U7XG4gIH1cblxuICAvLyBSZWFsIHB1Ymxpc2hlZCBibG9ncyBkb24ndCBhbHdheXMgY2FycnkgYSBibG9jayBpZCAob25seSBlZGl0b3ItcHJvZHVjZWQgb25lcyBkbykuIFRoZSBUT0MsXG4gIC8vIHNjcm9sbCBhbmNob3JzLCBhbmQgaGVyby1pbWFnZSBkZXRlY3Rpb24gYWxsIGtleSBvZmYgYmxvY2suaWQsIHNvIGJhY2tmaWxsIGEgc3RhYmxlIG9uZSDigJRcbiAgLy8gc3RhYmxlIGFjcm9zcyByZS1yZW5kZXJzIHNpbmNlIGl0J3MgZGVyaXZlZCBmcm9tIHRoZSBibG9jaydzIGZpeGVkIHBvc2l0aW9uIGluIHRoZSBhcnJheS5cbiAgcHJpdmF0ZSBlbnN1cmVCbG9ja0lkcyhibG9ja3M6IEJsb2dCbG9ja1tdKSB7XG4gICAgYmxvY2tzLmZvckVhY2goKGJsb2NrLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKCFibG9jay5pZCkge1xuICAgICAgICBibG9jay5pZCA9IGBibG9jay1pZHgtJHtpbmRleH1gO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFRhYmxlT2ZDb250ZW50cygpIHtcbiAgICBjb25zdCBibG9ja3M6IEJsb2dCbG9ja1tdID0gdGhpcy5yZXNwb25zZURhdGE/LmJsb2NrcyB8fCBbXTtcbiAgICB0aGlzLmVuc3VyZUJsb2NrSWRzKGJsb2Nrcyk7XG4gICAgdGhpcy5oZWFkaW5nQmxvY2tJZHMuY2xlYXIoKTtcbiAgICB0aGlzLnRvY0l0ZW1zID0gYmxvY2tzXG4gICAgICAubWFwKGJsb2NrID0+IHRoaXMuZ2V0SGVhZGluZ0NhbmRpZGF0ZShibG9jaykpXG4gICAgICAuZmlsdGVyKChpdGVtKTogaXRlbSBpcyBUb2NJdGVtID0+ICEhaXRlbSk7XG4gICAgdGhpcy50b2NJdGVtcy5mb3JFYWNoKGl0ZW0gPT4gdGhpcy5oZWFkaW5nQmxvY2tJZHMuYWRkKGl0ZW0uaWQpKTtcblxuICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgLy8gUmUtYXR0YWNoIHRoZSBzY3JvbGwgc3B5IHNpbmNlIHRoZSBhbmNob3JzIGl0IHdhdGNoZXMganVzdCBjaGFuZ2VkLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNldHVwU2Nyb2xsU3B5KCkpO1xuICAgIH1cbiAgfVxuXG4gIGlzVG9jQW5jaG9yKGJsb2NrSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhlYWRpbmdCbG9ja0lkcy5oYXMoYmxvY2tJZCk7XG4gIH1cblxuICBoYXNWaXNpYmxlVGV4dChodG1sOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpcEh0bWwoaHRtbCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SGVhZGluZ0NhbmRpZGF0ZShibG9jazogQmxvZ0Jsb2NrKTogVG9jSXRlbSB8IG51bGwge1xuICAgIGlmICghYmxvY2s/LmlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoYmxvY2sudHlwZSA9PT0gJ2hlYWRlcicpIHtcbiAgICAgIGNvbnN0IGxldmVsID0gKGJsb2NrLmRhdGE/LlsnbGV2ZWwnXSBhcyBudW1iZXIpIHx8IDI7XG4gICAgICBjb25zdCB0ZXh0ID0gdGhpcy5zdHJpcEh0bWwoYmxvY2suZGF0YT8uWyd0ZXh0J10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkKTtcbiAgICAgIGlmIChsZXZlbCA8PSAxIHx8ICF0ZXh0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgaWQ6IGJsb2NrLmlkLCB0ZXh0LCBsZXZlbCB9O1xuICAgIH1cblxuICAgIGlmIChibG9jay50eXBlID09PSAncGFyYWdyYXBoJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Qm9sZFBhcmFncmFwaEhlYWRpbmcoYmxvY2spO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCb2xkUGFyYWdyYXBoSGVhZGluZyhibG9jazogQmxvZ0Jsb2NrKTogVG9jSXRlbSB8IG51bGwge1xuICAgIGNvbnN0IGh0bWwgPSAoYmxvY2suZGF0YT8uWyd0ZXh0J10gYXMgc3RyaW5nKSB8fCAnJztcbiAgICBpZiAoIWh0bWwuaW5jbHVkZXMoJzxzcGFuJykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHNwYW5SZWdleCA9IC88c3BhbihbXj5dKik+KFtcXHNcXFNdKj8pPFxcL3NwYW4+L2c7XG4gICAgbGV0IG1hdGNoOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsO1xuICAgIGxldCBib2xkVGV4dCA9ICcnO1xuICAgIGxldCBub25Cb2xkVGV4dCA9ICcnO1xuICAgIGxldCBtYXhGb250U2l6ZVB0ID0gMDtcblxuICAgIHdoaWxlICgobWF0Y2ggPSBzcGFuUmVnZXguZXhlYyhodG1sKSkpIHtcbiAgICAgIGNvbnN0IHN0eWxlID0gbWF0Y2hbMV07XG4gICAgICBjb25zdCBpbm5lclRleHQgPSB0aGlzLnN0cmlwSHRtbChtYXRjaFsyXSk7XG4gICAgICBjb25zdCBpc0JvbGQgPSAvZm9udC13ZWlnaHQ6XFxzKihib2xkfFs2LTldMDApL2kudGVzdChzdHlsZSk7XG4gICAgICBjb25zdCBzaXplTWF0Y2ggPSBzdHlsZS5tYXRjaCgvZm9udC1zaXplOlxccyooW1xcZC5dKylwdC9pKTtcbiAgICAgIGlmIChzaXplTWF0Y2gpIHtcbiAgICAgICAgbWF4Rm9udFNpemVQdCA9IE1hdGgubWF4KG1heEZvbnRTaXplUHQsIHBhcnNlRmxvYXQoc2l6ZU1hdGNoWzFdKSk7XG4gICAgICB9XG4gICAgICBpZiAoaXNCb2xkKSB7XG4gICAgICAgIGJvbGRUZXh0ICs9IGlubmVyVGV4dDtcbiAgICAgIH0gZWxzZSBpZiAoaW5uZXJUZXh0KSB7XG4gICAgICAgIG5vbkJvbGRUZXh0ICs9IGlubmVyVGV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB0ZXh0ID0gYm9sZFRleHQudHJpbSgpO1xuICAgIC8vIE1peGVkIGJvbGQvcGxhaW4gdGV4dCBpcyBhbiBlbXBoYXNpemVkIHBocmFzZSBpbnNpZGUgYSBub3JtYWwgcGFyYWdyYXBoLCBub3QgYSBoZWFkaW5nLlxuICAgIGlmICghdGV4dCB8fCBub25Cb2xkVGV4dC50cmltKCkgfHwgdGV4dC5sZW5ndGggPiAxMjApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvLyBUaXRsZS1zaXplZCBib2xkIHRleHQgKD49MTZwdCwgbWF0Y2hpbmcgdGhlIGFydGljbGUncyBvd24gaGVhZGluZykgaXNuJ3QgYSBUT0MgZW50cnkuXG4gICAgaWYgKG1heEZvbnRTaXplUHQgPj0gMTYpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7IGlkOiBibG9jay5pZCwgdGV4dCwgbGV2ZWw6IDIgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RyaXBIdG1sKGh0bWw6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgaWYgKCFodG1sKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBodG1sXG4gICAgICAucmVwbGFjZSgvPFtePl0qPi9nLCAnJylcbiAgICAgIC5yZXBsYWNlKC8mbmJzcDsvZywgJyAnKVxuICAgICAgLnJlcGxhY2UoLyZhbXA7L2csICcmJylcbiAgICAgIC50cmltKCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwU2Nyb2xsU3B5KCkge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50b2NPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuXG4gICAgY29uc3QgYW5jaG9ycyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXG4gICAgICAgICcudG9jLWFuY2hvcidcbiAgICAgIClcbiAgICApO1xuICAgIGlmICghYW5jaG9ycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRvY09ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgZW50cmllcyA9PiB7XG4gICAgICAgIGNvbnN0IHZpc2libGUgPSBlbnRyaWVzLmZpbHRlcihlbnRyeSA9PiBlbnRyeS5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgIGlmICh2aXNpYmxlLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuYWN0aXZlVG9jSWQgPSB2aXNpYmxlWzBdLnRhcmdldC5pZC5yZXBsYWNlKCdibG9jay0nLCAnJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IHJvb3RNYXJnaW46ICcwcHggMHB4IC03MCUgMHB4JyB9XG4gICAgKTtcbiAgICBhbmNob3JzLmZvckVhY2goYW5jaG9yID0+IHRoaXMudG9jT2JzZXJ2ZXI/Lm9ic2VydmUoYW5jaG9yKSk7XG4gIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwibWFpbi1zZWN0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJibG9nLWNvbnRhaW5lclwiPlxuICAgIDxoMSBjbGFzcz1cImJsb2ctdGl0bGVcIiAqbmdJZj1cInJlc3BvbnNlRGF0YT8ucG9zdFRpdGxlXCI+XG4gICAgICB7eyByZXNwb25zZURhdGEucG9zdFRpdGxlIH19XG4gICAgPC9oMT5cblxuICAgIDxkaXYgY2xhc3M9XCJtZXRhLWJhclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldGEtaXRlbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtbGFiZWxcIj5QdWJsaWNhdGlvbiBEYXRlPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtdmFsdWVcIj57e1xuICAgICAgICAgIHJlc3BvbnNlRGF0YT8ucHVibGlzaGVkRGF0ZSB8fFxuICAgICAgICAgICAgcmVzcG9uc2VEYXRhPy5ibG9nU2NoZWR1bGVkRGF0ZSB8fFxuICAgICAgICAgICAgcmVzcG9uc2VEYXRhPy5jcmVhdGVkVGltZVN0YW1wIHwgZGF0ZTogJ2QgTU1NTSB5J1xuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldGEtaXRlbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtbGFiZWxcIj5BdXRob3I8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS12YWx1ZVwiPnt7XG4gICAgICAgICAgcmVzcG9uc2VEYXRhPy5hdXRob3I/LmNvbnRlbnQgfHwgJ+KAlCdcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZXRhLWl0ZW1cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXRhLWxhYmVsXCI+UmVhZCBUaW1lPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtdmFsdWVcIlxuICAgICAgICAgID57eyByZXNwb25zZURhdGE/LnJlYWRUaW1lIHx8ICfigJQnIH19IG1pbiByZWFkPC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldGEtaXRlbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtbGFiZWxcIj5WaWV3czwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXRhLXZhbHVlXCI+e3sgcmVzcG9uc2VEYXRhPy50b3RhbFZpc2l0cyB8fCAwIH19Kzwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInRhZ3Mtcm93XCIgKm5nSWY9XCJ0YWdzLmxlbmd0aFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2hpcFwiICpuZ0Zvcj1cImxldCB0YWcgb2YgdGFnc1wiPnt7IHRhZyB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJibG9nLWxheW91dFwiIFtjbGFzcy53aXRoLXRvY109XCJ0b2NJdGVtcy5sZW5ndGggPiAxXCI+XG4gICAgICA8YXNpZGUgY2xhc3M9XCJ0b2Mtc2lkZWJhclwiICpuZ0lmPVwidG9jSXRlbXMubGVuZ3RoID4gMVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJ0b2MtdG9nZ2xlXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9jT3BlbiA9ICF0b2NPcGVuXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInRvY09wZW5cIj5cbiAgICAgICAgICA8c3Bhbj5UYWJsZSBPZiBDb250ZW50PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9jLXRvZ2dsZS1pY29uXCIgW2NsYXNzLm9wZW5dPVwidG9jT3BlblwiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b2MtaGVhZGVyXCI+VGFibGUgT2YgQ29udGVudDwvZGl2PlxuICAgICAgICA8bmF2IGNsYXNzPVwidG9jLWxpc3RcIiBbY2xhc3Mub3Blbl09XCJ0b2NPcGVuXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0b2Mgb2YgdG9jSXRlbXNcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0b2MtbGlua1wiXG4gICAgICAgICAgICBbY2xhc3MudG9jLXRvcF09XCJ0b2MubGV2ZWwgPD0gMlwiXG4gICAgICAgICAgICBbc3R5bGUucGFkZGluZ0xlZnQucHhdPVwiKHRvYy5sZXZlbCAtIDIpICogMTRcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUb2NJZCA9PT0gdG9jLmlkXCJcbiAgICAgICAgICAgIFtocmVmXT1cIicjYmxvY2stJyArIHRvYy5pZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2Nyb2xsVG9CbG9jaygkZXZlbnQsIHRvYy5pZClcIj5cbiAgICAgICAgICAgIHt7IHRvYy50ZXh0IH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L25hdj5cbiAgICAgIDwvYXNpZGU+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJibG9nLWRldGFpbHNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZXNwb25zZURhdGE/LmJsb2Nrc1wiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09ICdoZWFkZXInICYmIGhhc1Zpc2libGVUZXh0KGl0ZW0uZGF0YT8udGV4dClcIlxuICAgICAgICAgICAgW2lkXT1cIidibG9jay0nICsgaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MudG9jLWFuY2hvcl09XCJpc1RvY0FuY2hvcihpdGVtLmlkKVwiPlxuICAgICAgICAgICAgPGgxICpuZ0lmPVwiaXRlbS5kYXRhLmxldmVsID09IDFcIiBbaW5uZXJIVE1MXT1cIml0ZW0uZGF0YS50ZXh0XCI+PC9oMT5cbiAgICAgICAgICAgIDxoMiAqbmdJZj1cIml0ZW0uZGF0YS5sZXZlbCA9PSAyXCIgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvaDI+XG4gICAgICAgICAgICA8aDMgKm5nSWY9XCJpdGVtLmRhdGEubGV2ZWwgPT0gM1wiIFtpbm5lckhUTUxdPVwiaXRlbS5kYXRhLnRleHRcIj48L2gzPlxuICAgICAgICAgICAgPGg0ICpuZ0lmPVwiaXRlbS5kYXRhLmxldmVsID09IDRcIiBbaW5uZXJIVE1MXT1cIml0ZW0uZGF0YS50ZXh0XCI+PC9oND5cbiAgICAgICAgICAgIDxoNSAqbmdJZj1cIml0ZW0uZGF0YS5sZXZlbCA9PSA1XCIgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvaDU+XG4gICAgICAgICAgICA8aDYgKm5nSWY9XCJpdGVtLmRhdGEubGV2ZWwgPT0gNlwiIFtpbm5lckhUTUxdPVwiaXRlbS5kYXRhLnRleHRcIj48L2g2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09ICdwYXJhZ3JhcGgnICYmIGhhc1Zpc2libGVUZXh0KGl0ZW0uZGF0YT8udGV4dClcIlxuICAgICAgICAgICAgW2lkXT1cIidibG9jay0nICsgaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MudG9jLWFuY2hvcl09XCJpc1RvY0FuY2hvcihpdGVtLmlkKVwiPlxuICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgY2xhc3M9XCJpbm5lci10ZXh0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmhlYWRpbmctcGFyYWdyYXBoXT1cImlzVG9jQW5jaG9yKGl0ZW0uaWQpXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09ICdsaXN0J1wiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZGF0YS5zdHlsZSA9PSAnb3JkZXJlZCdcIj5cbiAgICAgICAgICAgICAgPG9sIGNsYXNzPVwibGlzdC1zdHlsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpc3Qgb2YgaXRlbS5kYXRhLml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICA8bGkgW2lubmVySFRNTF09XCJsaXN0XCI+PC9saT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZGF0YS5zdHlsZSA9PSAndW5vcmRlcmVkJ1wiPlxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXN0eWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGlzdCBvZiBpdGVtLmRhdGEuaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgIDxsaSBbaW5uZXJIVE1MXT1cImxpc3RcIj48L2xpPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PSAnZGVsaW1pdGVyJ1wiIGNsYXNzPVwiY2UtZGVsaW1pdGVyXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2ltYWdlJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbY2xhc3MuaGVyby1pbWFnZV09XCJpdGVtLmlkID09PSBoZXJvSW1hZ2VCbG9ja0lkXCI+XG4gICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJpdGVtLmRhdGEuZmlsZS51cmxcIiBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbWFnZS1jYXB0aW9uXCIgKm5nSWY9XCJpdGVtLmRhdGE/LmNhcHRpb25cIj57e1xuICAgICAgICAgICAgICBpdGVtLmRhdGEuY2FwdGlvblxuICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PSAndGFibGUnXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICA8dGFibGVcbiAgICAgICAgICAgICAgICBbY2xhc3MudGFibGUtbm8taGVhZGluZ109XCJpdGVtLmRhdGEud2l0aEhlYWRpbmdzID09PSBmYWxzZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRhdGEgb2YgaXRlbS5kYXRhLmNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkIFtpbm5lckhUTUxdPVwiaXRlbVwiPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPHNpbXBvLXJlY2VudC1ibG9nLXBvc3Qtc2VjdGlvblxuICAgICAgW3BvcHVsYXJdPVwidHJ1ZVwiXG4gICAgICBbYnVzaW5lc3NJZF09XCJyZXNwb25zZURhdGE/LmJ1c2luZXNzSWRcIlxuICAgICAgW2V4Y2x1ZGVCbG9nSWRdPVwicmVzcG9uc2VEYXRhPy5pZFwiXG4gICAgICBbZWRpdF09XCJmYWxzZVwiPlxuICAgIDwvc2ltcG8tcmVjZW50LWJsb2ctcG9zdC1zZWN0aW9uPlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==