tango-app-ui-store-builder 1.2.5 → 1.2.7

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 (54) hide show
  1. package/esm2022/lib/components/collection-update-ai/collection-update-ai.component.mjs +3 -2
  2. package/esm2022/lib/components/collection-update-ai/find-replace-layout/prepare-template/prepare-template.component.mjs +3 -2
  3. package/esm2022/lib/components/collection-update-ai/find-replace-layout/review-replace/review-replace.component.mjs +3 -2
  4. package/esm2022/lib/components/create-fixture/create-fixture.component.mjs +41 -4
  5. package/esm2022/lib/components/fixture-template/template-assign-stores/preview-modal/preview-modal.component.mjs +3 -2
  6. package/esm2022/lib/components/fixture-template/template-assign-stores/template-assign-stores.component.mjs +3 -2
  7. package/esm2022/lib/components/fixture-template-table/find-and-replace/find-and-replace.component.mjs +3 -2
  8. package/esm2022/lib/components/fixture-template-table/fixture-template-table.component.mjs +2 -3
  9. package/esm2022/lib/components/fixture-template-tree/fixture-template-tree.component.mjs +3 -2
  10. package/esm2022/lib/components/manage-plano/verification-table/verification-table.component.mjs +2 -3
  11. package/esm2022/lib/components/manage-store-plano/manage-store-plano.component.mjs +73 -6
  12. package/esm2022/lib/components/manage-store-plano/plano-rollout/plano-rollout.component.mjs +4 -3
  13. package/esm2022/lib/components/manage-store-plano/template-basic-details/template-basic-details.component.mjs +114 -4
  14. package/esm2022/lib/components/onboard-store-plano/onboard-fixture/onboard-fixture.component.mjs +3 -3
  15. package/esm2022/lib/components/onboard-store-plano/onboard-store-plano.component.mjs +85 -6
  16. package/esm2022/lib/components/plano-configurations/plano-configurations.component.mjs +162 -3
  17. package/esm2022/lib/components/plano-library/fixture-library/fixture-library.component.mjs +24 -11
  18. package/esm2022/lib/components/plano-library/fixture-library/popups/create-fixture-modal/create-fixture-modal.component.mjs +13 -4
  19. package/esm2022/lib/components/plano-library/vm-library/vm-library.component.mjs +3 -4
  20. package/esm2022/lib/components/plano-tools/cad-files/cad-files.component.mjs +3 -3
  21. package/esm2022/lib/components/plano-tools/cad-render/cad-render.component.mjs +4 -5
  22. package/esm2022/lib/components/plano-tools/move-bucket/move-bucket.component.mjs +3 -3
  23. package/esm2022/lib/components/plano-tools/plano-data-export/plano-data-export.component.mjs +98 -3
  24. package/esm2022/lib/components/plano-tools/plano-migrate/plano-migrate.component.mjs +3 -2
  25. package/esm2022/lib/components/plano-tools/store-exports/store-exports.component.mjs +135 -33
  26. package/esm2022/lib/components/planogram/merch-compliance/merch-compliance.component.mjs +3 -2
  27. package/esm2022/lib/components/planogram/merch-compliance/product-locator/product-locator.component.mjs +3 -2
  28. package/esm2022/lib/components/planogram/plano-analytics/plano-analytics.component.mjs +3 -2
  29. package/esm2022/lib/components/planogram/plano-details-parent/plano-details-parent.component.mjs +1 -1
  30. package/esm2022/lib/components/planogram/plano-overview/plano-comparison/plano-comparison.component.mjs +3 -2
  31. package/esm2022/lib/components/planogram/plano-overview/plano-overview.component.mjs +3 -2
  32. package/esm2022/lib/components/planogram/plano-table/plano-table.component.mjs +2 -3
  33. package/esm2022/lib/components/store-plano/store-plano-tree-view/store-plano-tree-view.component.mjs +3 -4
  34. package/esm2022/lib/components/store-plano/store-plano.component.mjs +4 -3
  35. package/esm2022/lib/data/fixture-template.data.mjs +12 -1
  36. package/esm2022/lib/functions/plano.function.mjs +13 -1
  37. package/esm2022/lib/interfaces/fixture-library.interface.mjs +1 -1
  38. package/esm2022/lib/services/store-builder.service.mjs +21 -1
  39. package/fesm2022/tango-app-ui-store-builder.mjs +1082 -380
  40. package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -1
  41. package/lib/components/create-fixture/create-fixture.component.d.ts +3 -0
  42. package/lib/components/manage-store-plano/manage-store-plano.component.d.ts +6 -1
  43. package/lib/components/manage-store-plano/template-basic-details/template-basic-details.component.d.ts +14 -1
  44. package/lib/components/onboard-store-plano/onboard-store-plano.component.d.ts +8 -1
  45. package/lib/components/plano-configurations/plano-configurations.component.d.ts +19 -1
  46. package/lib/components/plano-library/fixture-library/fixture-library.component.d.ts +1 -0
  47. package/lib/components/plano-library/fixture-library/popups/create-fixture-modal/create-fixture-modal.component.d.ts +5 -0
  48. package/lib/components/plano-tools/plano-data-export/plano-data-export.component.d.ts +26 -0
  49. package/lib/components/plano-tools/store-exports/store-exports.component.d.ts +28 -3
  50. package/lib/data/fixture-template.data.d.ts +8 -0
  51. package/lib/functions/plano.function.d.ts +1 -0
  52. package/lib/interfaces/fixture-library.interface.d.ts +1 -0
  53. package/lib/services/store-builder.service.d.ts +10 -0
  54. package/package.json +1 -1
@@ -361,4 +361,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
361
361
  type: Component,
362
362
  args: [{ selector: "lib-plano-details-parent", template: "<section id=\"plano-details\">\r\n <div *ngIf=\"isPageLoading\" class=\"row\">\r\n <div class=\"col-12 m-0\">\r\n <ng-container *ngTemplateOutlet=\"headerSkeleton\"></ng-container>\r\n </div>\r\n <div class=\"col-12\">\r\n <ng-container *ngTemplateOutlet=\"skeletonLoader\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n <div [ngClass]=\"{ 'd-none': isPageLoading }\">\r\n <div id=\"header\">\r\n <div id=\"header\" ngbAccordion #accordion=\"ngbAccordion\" class=\"my-4\">\r\n <div ngbAccordionItem=\"details\" [collapsed]=\"false\">\r\n <div ngbAccordionHeader class=\"d-flex justify-content-between align-items-center px-6 py-3\">\r\n <div class=\"d-flex gap-4 align-items-center\">\r\n <div class=\"d-flex\">\r\n <div style=\"margin-top:10px;margin-left:5px;margin-right:5px\"\r\n *ngIf=\"planoData?.storeName\">\r\n <h2 class='title'>{{planoData?.storeName}} - Plano</h2>\r\n </div>\r\n <div>\r\n <lib-select-plano *ngIf=\"storeList?.length\" [idField]=\"'_id'\"\r\n [selectedValues]=\"[selectedStoreName]\" [items]=\"storeList\" [multi]=false\r\n searchField=\"storeName\" (selected)=\"onSelected($event)\">\r\n </lib-select-plano>\r\n </div>\r\n </div>\r\n\r\n <lib-reactive-select *ngIf=\"planoData?.floors?.length\" [formControl]=\"selectedFloorId\"\r\n [idField]=\"'_id'\" [nameField]=\"'floorName'\"\r\n [data]=\"planoData.floors\"></lib-reactive-select>\r\n\r\n <div class=\"d-flex gap-2 align-items-center cursor-pointer\"\r\n [routerLink]=\"['/manage/planogram/manage-planogram']\" [queryParams]=\"{\r\n planoId: floorData?.planoId,\r\n floorId: floorData?._id\r\n }\">\r\n <h2 class=\"title\" style=\"color: #008edf;\">\r\n Edit Plano\r\n </h2>\r\n <svg width=\"19\" height=\"19\" viewBox=\"0 0 19 19\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M8.5 2.76777H2.66667C2.22464 2.76777 1.80072 2.94336 1.48816 3.25592C1.17559 3.56848 1 3.99241 1 4.43443V16.1011C1 16.5431 1.17559 16.9671 1.48816 17.2796C1.80072 17.5922 2.22464 17.7678 2.66667 17.7678H14.3333C14.7754 17.7678 15.1993 17.5922 15.5118 17.2796C15.8244 16.9671 16 16.5431 16 16.1011V10.2678M14.75 1.51777C15.0815 1.18625 15.5312 1 16 1C16.4688 1 16.9185 1.18625 17.25 1.51777C17.5815 1.84929 17.7678 2.29893 17.7678 2.76777C17.7678 3.23661 17.5815 3.68625 17.25 4.01777L9.33333 11.9344L6 12.7678L6.83333 9.43443L14.75 1.51777Z\"\r\n stroke=\"#008EDF\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"d-flex gap-4 align-items-center\">\r\n <button ngbAccordionButton></button>\r\n </div>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n @if(planoData){\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <div class=\"row mx-0 gap-2\">\r\n <div class=\"col filter-tab\" [ngClass]=\"{ selected: selectedTab === 'overview' }\"\r\n (click)=\"onTabChange('overview')\">\r\n <h5>Total fixtures</h5>\r\n <h3>{{ planoBriefDetails.totalFixtures }}</h3>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <p>Last updated:</p>\r\n <p>{{ planoBriefDetails.floorLastUpdated | date:\"d MMM yyyy, hh:mm a\" }}</p>\r\n <div *ngIf=\"isRolloutPending\" class=\"indicator reviewPending\">\r\n Rollout review pending\r\n </div>\r\n </div>\r\n </div>\r\n @if(isShowCompliance){\r\n <div class=\"col filter-tab\"\r\n [ngClass]=\"{ selected: selectedTab === 'merch-compliance' }\"\r\n (click)=\"onTabChange('merch-compliance')\">\r\n <div class=\"d-flex gap-2 align-items-center mb-2\">\r\n <h5 class=\"m-0\">Merchandise compliance</h5>\r\n <div class=\"badge inactive\">Missing: {{planoBriefDetails.missedCount }}</div>\r\n <div class=\"badge inactive \">Misplaced: {{planoBriefDetails.misplacedCount}}</div>\r\n\r\n </div>\r\n <h3>{{ planoBriefDetails.merchCompliancePercentage }}%</h3>\r\n @if(planoBriefDetails.lastMerchComplianceCheck){\r\n <div class=\"d-flex align-items-center gap-2\">\r\n @if(planoBriefDetails.merchStatus != null){\r\n @if(planoBriefDetails.merchStatus ){\r\n\r\n <svg width=\"16\" height=\"10\" viewBox=\"0 0 16 10\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M15.3327 0.749999L8.99935 7.08333L5.66602 3.75L0.666016 8.75M15.3327 0.749999L11.3327 0.749999M15.3327 0.749999L15.3327 4.75\"\r\n stroke=\"#039855\" stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n\r\n }@else{\r\n\r\n <svg width=\"16\" height=\"10\" viewBox=\"0 0 16 10\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M0.66732 8.75L7.00065 2.41667L10.334 5.75L15.334 0.75M0.66732 8.75L4.66732 8.75M0.66732 8.75L0.66732 4.75\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n\r\n }\r\n <p\r\n [ngClass]=\"{'text-success':planoBriefDetails.merchStatus,'text-danger':!planoBriefDetails.merchStatus}\">\r\n {{ planoBriefDetails.lastMerchCompliancePercentage }}%\r\n </p>\r\n <p>vs </p>\r\n }\r\n <p>Last check:</p>\r\n <p>{{ planoBriefDetails.lastMerchComplianceCheck }}</p>\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n (click)=\"onClickReload($event)\" class=\"cursor-pointer\"\r\n [ngClass]=\"{'rotate':isReLoading}\">\r\n <g clip-path=\"url(#clip0_4753_11640)\">\r\n <path\r\n d=\"M17.25 3.00006V7.50006M17.25 7.50006H12.75M17.25 7.50006L13.77 4.23006C12.9639 3.42359 11.9667 2.83446 10.8714 2.51764C9.77607 2.20081 8.61833 2.16662 7.50621 2.41825C6.3941 2.66988 5.36385 3.19913 4.5116 3.95662C3.65935 4.71411 3.01288 5.67515 2.6325 6.75006M0.75 15.0001V10.5001M0.75 10.5001H5.25M0.75 10.5001L4.23 13.7701C5.03606 14.5765 6.03328 15.1657 7.12861 15.4825C8.22393 15.7993 9.38167 15.8335 10.4938 15.5819C11.6059 15.3302 12.6361 14.801 13.4884 14.0435C14.3407 13.286 14.9871 12.325 15.3675 11.2501\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4753_11640\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n }@else {\r\n <div class=\"d-flex\">\r\n <p>Last check: Not scanned yet</p>\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n (click)=\"onClickReload($event)\" class=\"cursor-pointer ms-3\"\r\n [ngClass]=\"{'rotate':isReLoading}\">\r\n <g clip-path=\"url(#clip0_4753_11640)\">\r\n <path\r\n d=\"M17.25 3.00006V7.50006M17.25 7.50006H12.75M17.25 7.50006L13.77 4.23006C12.9639 3.42359 11.9667 2.83446 10.8714 2.51764C9.77607 2.20081 8.61833 2.16662 7.50621 2.41825C6.3941 2.66988 5.36385 3.19913 4.5116 3.95662C3.65935 4.71411 3.01288 5.67515 2.6325 6.75006M0.75 15.0001V10.5001M0.75 10.5001H5.25M0.75 10.5001L4.23 13.7701C5.03606 14.5765 6.03328 15.1657 7.12861 15.4825C8.22393 15.7993 9.38167 15.8335 10.4938 15.5819C11.6059 15.3302 12.6361 14.801 13.4884 14.0435C14.3407 13.286 14.9871 12.325 15.3675 11.2501\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4753_11640\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"col filter-tab\" [ngClass]=\"{ selected: selectedTab === 'analytics' }\"\r\n (click)=\"onTabChange('analytics')\">\r\n <h5>Plano Analytics</h5>\r\n <div class=\"d-flex align-items-center gap-2 mb-1\"><h3 class=\"me-2\">{{ planoBriefDetails.productCount}}</h3><p class=\"text\">Active products</p></div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <p>Last Check:</p>\r\n @if(planoBriefDetails.lastMerchComplianceCheck) {\r\n <p>{{ planoBriefDetails.lastMerchComplianceCheck}}</p>\r\n }@else {\r\n <p>Not scanned yet</p>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </ng-template>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!isPageLoading && planoData\" id=\"body\" class=\"mb-3\">\r\n @if(selectedTab === 'merch-compliance'){\r\n <merch-compliance [floorData]=\"floorData\"></merch-compliance>\r\n }@else if(selectedTab == 'overview') {\r\n <plano-overview [floorData]=\"floorData\" (currentRevisionInfo)=\"onRevisionInfoChange($event)\"></plano-overview>\r\n }@else {\r\n <lib-plano-analytics [floorData]=\"floorData\"></lib-plano-analytics>\r\n }\r\n </div>\r\n <div *ngIf=\"!planoData\">\r\n <div class=\"card d-flex flex-column justify-content-center align-items-center\" style=\"height:60vh\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"315\" height=\"155\" viewBox=\"0 0 315 155\" fill=\"none\">\r\n <path\r\n d=\"M103.809 47.0198C89.5458 47.02 77.983 58.5826 77.9829 72.8459C77.9829 78.7619 73.9798 85.5061 68.0638 85.5061H45.2583C30.9948 85.5061 19.4312 97.0688 19.4312 111.332C19.4312 125.596 30.9948 137.158 45.2583 137.158H183.357C200.247 137.158 216.32 123.992 233.21 123.992H299.245C303.999 123.992 307.853 120.138 307.853 115.383C307.853 110.629 303.999 106.775 299.245 106.775H211.624C209.98 106.775 208.588 105.553 208.12 103.976C207.381 101.487 209.082 98.6721 211.678 98.6721H241.909C256.172 98.6719 267.735 87.1093 267.735 72.8459C267.735 58.5827 256.172 47.02 241.909 47.0198H103.809Z\"\r\n fill=\"#EAECF0\" />\r\n <rect width=\"240.694\" height=\"16.9956\" rx=\"8.4978\" transform=\"matrix(-1 0 0 1 246.602 48.8572)\"\r\n fill=\"#EAECF0\" />\r\n <circle cx=\"5.42147\" cy=\"5.42147\" r=\"5.42147\" transform=\"matrix(-1 0 0 1 56.2979 113.282)\"\r\n fill=\"#6BCAFF\" />\r\n <circle cx=\"3.25288\" cy=\"3.25288\" r=\"3.25288\" transform=\"matrix(-1 0 0 1 244.965 68.8262)\"\r\n fill=\"#00A3FF\" />\r\n <circle cx=\"3.25288\" cy=\"3.25288\" r=\"3.25288\" transform=\"matrix(-1 0 0 1 215.689 13.5271)\"\r\n fill=\"#00A3FF\" />\r\n <circle cx=\"2.16859\" cy=\"2.16859\" r=\"2.16859\" transform=\"matrix(-1 0 0 1 104.006 138.221)\"\r\n fill=\"#00A3FF\" />\r\n <rect x=\"68.501\" y=\"44.1523\" width=\"166.999\" height=\"97.9371\" rx=\"15.1015\" fill=\"#6BCAFF\"\r\n stroke=\"#00A3FF\" stroke-width=\"3\" />\r\n <mask id=\"path-8-inside-1_419_28888\" fill=\"white\">\r\n <path\r\n d=\"M93.1172 19C94.0625 19 94.9892 19.0828 95.8887 19.2422V116.784C94.9892 116.625 94.0625 116.542 93.1172 116.542H82.7744C74.0642 116.542 67.0031 123.603 67.0029 132.313V34.7715C67.0029 26.0612 74.0641 19 82.7744 19H93.1172Z\" />\r\n </mask>\r\n <path\r\n d=\"M93.1172 19C94.0625 19 94.9892 19.0828 95.8887 19.2422V116.784C94.9892 116.625 94.0625 116.542 93.1172 116.542H82.7744C74.0642 116.542 67.0031 123.603 67.0029 132.313V34.7715C67.0029 26.0612 74.0641 19 82.7744 19H93.1172Z\"\r\n fill=\"#6BCAFF\" />\r\n <path\r\n d=\"M93.1172 19L93.1173 16H93.1172V19ZM95.8887 19.2422H98.8887V16.7271L96.4122 16.2882L95.8887 19.2422ZM95.8887 116.784L95.3651 119.738L98.8887 120.363V116.784H95.8887ZM93.1172 116.542L93.1173 113.542H93.1172V116.542ZM67.0029 132.313H64.0029L70.0029 132.314L67.0029 132.313ZM93.1172 19L93.1171 22C93.8872 22 94.6387 22.0674 95.3651 22.1961L95.8887 19.2422L96.4122 16.2882C95.3396 16.0981 94.2377 16 93.1173 16L93.1172 19ZM95.8887 19.2422H92.8887V116.784H95.8887H98.8887V19.2422H95.8887ZM95.8887 116.784L96.4122 113.83C95.3396 113.64 94.2377 113.542 93.1173 113.542L93.1172 116.542L93.1171 119.542C93.8872 119.542 94.6387 119.609 95.3651 119.738L95.8887 116.784ZM93.1172 116.542V113.542H82.7744V116.542V119.542H93.1172V116.542ZM82.7744 116.542V113.542C72.4073 113.542 64.0032 121.947 64.0029 132.313L67.0029 132.313L70.0029 132.314C70.0031 125.26 75.7212 119.542 82.7744 119.542V116.542ZM67.0029 132.313H70.0029V34.7715H67.0029H64.0029V132.313H67.0029ZM67.0029 34.7715H70.0029C70.0029 27.718 75.721 22 82.7744 22V19V16C72.4072 16 64.0029 24.4043 64.0029 34.7715H67.0029ZM82.7744 19V22H93.1172V19V16H82.7744V19Z\"\r\n fill=\"#00A3FF\" mask=\"url(#path-8-inside-1_419_28888)\" />\r\n <line x1=\"76.9619\" y1=\"42.6523\" x2=\"76.9619\" y2=\"84.4881\" stroke=\"#99DAFF\"\r\n stroke-width=\"3.98436\" stroke-linecap=\"round\" />\r\n <circle cx=\"218.205\" cy=\"70.1763\" r=\"3.29663\" fill=\"white\" />\r\n <circle cx=\"111.787\" cy=\"55.1663\" r=\"2.52637\" fill=\"#99DAFF\" />\r\n <circle cx=\"99.3845\" cy=\"124.986\" r=\"3.44505\" fill=\"white\" />\r\n <path\r\n d=\"M135.529 33.4717C151.285 24.3749 171.432 29.7732 180.529 45.5293C188.56 59.4398 185.291 76.7707 173.573 86.9004L193.457 121.339C194.931 123.894 194.055 127.161 191.5 128.636C188.945 130.111 185.679 129.236 184.204 126.681L164.465 92.4932C149.446 98.6552 131.813 92.92 123.471 78.4717C114.374 62.7156 119.773 42.5685 135.529 33.4717ZM172.698 50.0518C166.098 38.6209 151.481 34.7041 140.05 41.3037C128.62 47.9035 124.703 62.5204 131.302 73.9512C137.902 85.3817 152.519 89.2977 163.95 82.6982C175.38 76.0987 179.297 61.4826 172.698 50.0518Z\"\r\n fill=\"white\" />\r\n <circle cx=\"153\" cy=\"57.0007\" r=\"23.8994\" transform=\"rotate(-30 153 57.0007)\" fill=\"#99DAFF\" />\r\n <mask id=\"path-16-inside-2_419_28888\" fill=\"white\">\r\n <path\r\n d=\"M153.384 40.9952C153.435 39.6997 152.422 38.5923 151.131 38.709C148.857 38.9146 146.635 39.5486 144.585 40.5849C141.834 41.9755 139.483 44.0445 137.755 46.5965C136.026 49.1485 134.976 52.0991 134.705 55.1696C134.503 57.4578 134.739 59.7563 135.391 61.9442C135.761 63.1867 137.165 63.7164 138.35 63.1886C139.534 62.6607 140.044 61.2741 139.73 60.016C139.37 58.573 139.251 57.0748 139.382 55.5825C139.583 53.3073 140.361 51.1209 141.642 49.2299C142.923 47.3389 144.665 45.8058 146.703 44.7754C148.04 44.0995 149.476 43.6546 150.95 43.4538C152.234 43.2787 153.333 42.2908 153.384 40.9952Z\" />\r\n </mask>\r\n <path\r\n d=\"M153.384 40.9952C153.435 39.6997 152.422 38.5923 151.131 38.709C148.857 38.9146 146.635 39.5486 144.585 40.5849C141.834 41.9755 139.483 44.0445 137.755 46.5965C136.026 49.1485 134.976 52.0991 134.705 55.1696C134.503 57.4578 134.739 59.7563 135.391 61.9442C135.761 63.1867 137.165 63.7164 138.35 63.1886C139.534 62.6607 140.044 61.2741 139.73 60.016C139.37 58.573 139.251 57.0748 139.382 55.5825C139.583 53.3073 140.361 51.1209 141.642 49.2299C142.923 47.3389 144.665 45.8058 146.703 44.7754C148.04 44.0995 149.476 43.6546 150.95 43.4538C152.234 43.2787 153.333 42.2908 153.384 40.9952Z\"\r\n stroke=\"white\" stroke-width=\"6\" mask=\"url(#path-16-inside-2_419_28888)\" />\r\n <path\r\n d=\"M136.529 28.4717C152.285 19.3749 172.432 24.7732 181.529 40.5293C189.56 54.4398 186.291 71.7707 174.573 81.9004L194.457 116.339C195.931 118.894 195.055 122.161 192.5 123.636C189.945 125.111 186.679 124.236 185.204 121.681L165.465 87.4932C150.446 93.6552 132.813 87.92 124.471 73.4717C115.374 57.7156 120.773 37.5685 136.529 28.4717ZM173.698 45.0518C167.098 33.6209 152.481 29.7041 141.05 36.3037C129.62 42.9035 125.703 57.5204 132.302 68.9512C138.902 80.3817 153.519 84.2977 164.95 77.6982C176.38 71.0987 180.297 56.4826 173.698 45.0518Z\"\r\n fill=\"#00A3FF\" />\r\n </svg>\r\n </div>\r\n <div class=\"title\">\r\n Planogram Yet to Publish\r\n </div>\r\n <div class=\"lowerText\">\r\n <a\r\n href=\"/manage/planogram/manage-planogram?planoId={{planoBriefDetails.planoId}}&floorId={{planoBriefDetails.floorId}}\">{{selectedStoreName?.storeName}}</a>\r\n is still under verification\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #headerSkeleton>\r\n <div class=\"row m-0 g-0 loader d-flex justify-content-center align-items-center overflow-hidden\">\r\n <div class=\"shimmer w-100 p-4 rounded\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke mt-0 animate title\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #skeletonLoader>\r\n <div class=\"row loader d-flex justify-content-center align-items-center overflow-hidden m-0\">\r\n <div class=\"shimmer rounded\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer rounded\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer rounded\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer rounded\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</section>", styles: [".header{background:#fff;padding:12px;border-radius:12px;display:flex;align-items:center;justify-content:space-between}.btn{padding:.775rem 1.5rem!important;font-size:1.1rem!important}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;padding:2px 8px;border-radius:16px}.badge.inactive{background:#f2f4f7!important;color:#344054!important}.builder{height:75vh}.builder .cols{background:#fff;border-radius:12px;padding:24px 24px 12px;max-height:75vh;overflow-y:auto}.shelf-container{border-radius:8px;background:var(--Gray-50, #f9fafb);padding:8px 16px;margin-bottom:12px}.counter-container{display:flex;align-items:center;justify-content:center;border-radius:8px;background-color:#fff;padding:10px;border:.49px solid #d0d5dd}.counter-container span{margin:0 18px;font-weight:500;font-size:14px;text-align:center;vertical-align:middle;width:18px}.disable-counter{color:var(--bs-gray-500)!important;background-color:var(--bs-gray-200)!important;border-color:var(--bs-gray-300)!important;pointer-events:none;opacity:1}.disabled-click{pointer-events:none;opacity:.85}.wall-viewport{display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:30px;max-width:345px;min-width:234px;text-align:center}.wall-viewport .wrapper{width:100%;max-width:345px}.wall-viewport .header-info,.wall-viewport .footer-info,.wall-viewport .body-info{width:100%;border:2px solid #f2f4f7;border-bottom:4px solid #ffffff;background:#f2f4f7;max-width:230px;display:flex;align-items:center;justify-content:center;justify-content:start;padding:12px;gap:4px}.wall-viewport .header-info p,.wall-viewport .footer-info p,.wall-viewport .body-info p{margin:0}.wall-viewport .header-info{margin-top:40px}.wall-viewport .sub-footer{border:1px solid #98a2b3;height:100%}.wall-viewport .header-block,.wall-viewport .footer-block{border:1px solid #98a2b3;height:95px;padding:8px;background-color:#f2f4f7;width:100%;display:flex;justify-content:center;align-items:center}.wall-viewport .header-block p,.wall-viewport .footer-block p{color:var(--Gray-600, #475467);font-size:18px;font-weight:600;white-space:normal;word-wrap:break-word;margin:0;background-color:#f2f4f7}.wall-viewport .body-block{width:100%}.wall-viewport .body-block .shelfContainer .block{border:1px solid #98a2b3;border-top:none}.wall-viewport .body-block .shelfContainer:first-child .block{border-top:1px solid #98a2b3}.wall-viewport .body-block .block{padding:10px;width:100%;max-width:345px;overflow-x:auto;min-height:52px}.wall-viewport .body-block .tray,.wall-viewport .body-block .shelf{display:flex;gap:4px}.wall-viewport .body-block .tray .product,.wall-viewport .body-block .shelf .product{border:1px solid rgba(152,162,179,.2901960784);min-width:50px}.wall-viewport .body-block .tray .product{min-height:20px}.wall-viewport .body-block .shelf .product{min-height:30px}.wall-viewport .body-block .vmonly-placeholder{background-image:repeating-linear-gradient(45deg,rgba(152,162,179,.2901960784) 0,rgba(152,162,179,.2901960784) .7px,transparent .7px,transparent 8px),repeating-linear-gradient(-45deg,rgba(152,162,179,.2901960784) 0,rgba(152,162,179,.2901960784) .7px,transparent .7px,transparent 8px)}.wall-viewport .body-block .hide-product{border-color:transparent!important}.wall-viewport .body-block .hide-scroll{overflow-x:hidden!important}.horizontal-dimension{display:flex;align-items:center;justify-content:center;height:30px;position:relative}.horizontal-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.horizontal-dimension .arrow.left{transform:rotate(180deg);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .arrow.right{transform:rotate(0);background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.horizontal-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;height:1px}.horizontal-dimension .line span{position:absolute;top:-12px;color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:0 4px}.vertical-dimension{display:flex;flex-direction:column;align-items:center;width:30px;position:relative}.vertical-dimension .arrow{width:12px;height:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.vertical-dimension .arrow.up{transform:rotate(-90deg);margin-top:20px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .arrow.down{transform:rotate(90deg);margin-bottom:26px;background-image:url(\"data:image/svg+xml,%3Csvg fill='%23EAECF0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 330 330'%3E%3Cpath d='M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001c-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213C82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606C255,161.018,253.42,157.202,250.606,154.389z'/%3E%3C/svg%3E\")}.vertical-dimension .line{flex:1;background-color:#eaecf0;position:relative;display:flex;align-items:center;justify-content:center;width:1px}.vertical-dimension .line span{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);color:#667085;font-weight:500;font-size:14px;background-color:#fff;padding:2px 4px}.info-card{padding:12px;background:#fff;border:1px solid #d0d5dd;border-radius:8px;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a}.info-card h3{font-weight:600;font-size:18px;line-height:28px;vertical-align:middle}.info-card p{font-weight:500;font-size:14px;line-height:20px;color:#667085;margin:0}.checkbox input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #d0d5dd)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}.checkbox input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00a3ff)!important;background-color:var(--primary-50, #eaf8ff)}.checkbox input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00a3ff;border-right:2px solid #00a3ff;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.nav-pills{display:inline-flex;gap:4px}.nav-pills .nav-item .nav-link{border-radius:0;color:#667085;font-size:14px;font-weight:500;padding:8px 16px;border:none}.nav-pills .nav-item .nav-link:hover{background-color:#00000005}.nav-pills .nav-item .nav-link.active{background-color:#eaf8ff;color:#009bf3;border-bottom:3px solid #009bf3}.content-wrapper{background:#fff;border-radius:12px;min-height:calc(100vh - 400px);height:100%;padding:16px 24px;display:flex;flex-direction:column}.loader .shimmer{height:150px}.filter-tab{border:1px solid rgb(234,236,240);background:#fff;box-shadow:0 1px 2px #1018280d;border-radius:8px;padding:18px;transition:all ease .2s}.filter-tab:hover{cursor:pointer}.filter-tab.selected{background:#f6fcff;border:1px solid rgb(107,202,255);box-shadow:0 1px 2px #1018280d}.filter-tab h3{color:#000;font-size:20px;font-weight:600;line-height:30px;margin:0}.filter-tab p{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px;margin:0}.nodatamaintext{font-family:Inter;font-size:16px;font-weight:600;line-height:24px;text-align:center;color:#101828}.nodatasubtext[_ngcontent-ng-c2141490359]{font-family:Inter;font-size:14px;font-weight:400;line-height:20px;text-align:center;color:#667085}.table-responsive{min-height:calc(100vh - 495px)}.download-link{color:var(--Primary-800, #008edf);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:auto;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;cursor:pointer}h3.card-title{color:#101828;font-size:18px;font-weight:600;line-height:28px}p.card-tagline{color:#101828;font-size:14px;font-weight:500;line-height:20px}p.card-description{color:#344054;font-size:14px;font-weight:400;line-height:20px}#list-view .thumbnail{height:40px;width:40px;background:#f2f4f7;margin-right:12px;border-radius:8px}#list-view td{vertical-align:middle}#grid-view .card{box-shadow:0 4px 10px #0000000d;border:1px solid rgb(223,225,231);background:#fff;border-radius:12px;padding:12px;height:100%;transition:all .2s ease}#grid-view .card:hover{cursor:pointer;box-shadow:0 10px 10px #0001;transition:all .2s ease}#grid-view .card-img{margin-bottom:12px;background:#d0d5dd;height:200px;border-radius:6px}#grid-view .card-action{position:absolute;top:20px;right:20px}#grid-view .card-tagline{color:#475467;font-weight:500;font-size:14px;line-height:20px}.badge{font-weight:500;font-size:12px;line-height:18px;text-align:center;color:#027a48;background:#ecfdf3}.badge.active{color:#027a48;background:#ecfdf3}.badge.inactive{background:#f2f4f7;color:#344054}.badge.draft{color:#009bf3;background:#eaf8ff}.badge.cluster{background:#f2f4f7;color:#344054}.badge.published{background:#ecfdf3;color:#027a48}.badge.yet-to-publish{background:#f8f9fc;color:#363f72}.indicator{border-radius:16px;padding:2px 8px;display:flex;justify-content:center;align-items:center;white-space:nowrap;width:fit-content;text-align:center;font-size:14px;font-weight:500}.indicator.short{height:14px!important;width:14px!important;border-radius:50%!important;padding:0!important}.indicator.yetToComplete{background:#f2f4f7;color:#667085}.indicator.yetToComplete path{fill:#667085}.indicator.draft{background:#f2f4f7;color:#667085}.indicator.draft path{fill:#667085}.indicator.yetToAssign{background:#eaecf5;color:#344054}.indicator.yetToAssign path{fill:#344054}.indicator.taskAssigned{background:#e0eaff;color:#7a5af8}.indicator.taskAssigned path{fill:#7a5af8}.indicator.reviewPending{background:#fef0c7;color:#f79009}.indicator.reviewPending path{fill:#f79009}.indicator.allocationPending{background:#fef0c7;color:#f79009}.indicator.allocationPending path{fill:#f79009}.indicator.flagged{background:var(--Error-50, #fef3f2);color:var(--Error-700, #b42318)}.indicator.completed{background:#d1fadf;color:#12b76a}.indicator.completed path{fill:#12b76a}.toggle-button{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:8px;background:#fff;border:.89px solid rgb(208,213,221);box-shadow:0 .89px 1.78px #1018280d;transition:all ease .3s}.toggle-button:hover{cursor:pointer}.toggle-button.selected{transition:all ease .3s;background:#eaf8ff;box-shadow:0 0 0 3.56px #d5effe!important;border:.89px solid rgb(234,248,255)}.disabled-click{pointer-events:none;cursor:not-allowed!important;opacity:.6}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:#888;display:flex;align-items:center;height:1.5rem}.clear-search{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;height:1.5rem;width:1.5rem}.restrict-interaction{-webkit-user-select:none;user-select:none;pointer-events:none}.btn .spinner{height:22px;animation:spin .9s linear infinite}.btn .spinner .path{stroke-width:4px;stroke:#071437;stroke-linecap:round;stroke-dasharray:80;stroke-dashoffset:60}@keyframes spin{to{transform:rotate(360deg)}}#plano-details #header .title{font-weight:600;font-size:16px;line-height:24px;letter-spacing:0%;margin:0}#plano-details #header .compliance{font-size:36px;font-weight:600}#plano-details #header .last-check{font-size:16px;font-weight:500}#plano-details .loader .shimmer{height:100%;width:100%}#plano-details .rotate{animation:spin 1s linear infinite;transform-box:fill-box;transform-origin:center}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#plano-details .indicator.reviewPending{color:#b54708;background:#fef0c7}#plano-details .indicator.reviewPending path{fill:#b54708}.title{font-family:Inter;font-weight:600;font-size:20px;line-height:30px;letter-spacing:0%;color:#1d2939}.lowerText{font-family:Inter;font-weight:500;font-size:16px;line-height:24px;letter-spacing:0%}.text{font-family:Inter;font-weight:400;font-size:24px;line-height:32px;letter-spacing:0%;color:#667085}.titleText{font-family:Inter;font-weight:600;font-size:36px;line-height:44px;letter-spacing:-2%;color:#1d2939}\n"] }]
363
363
  }], ctorParameters: () => [{ type: i1.StoreBuilderService }, { type: i2.GlobalStateService }, { type: i3.ActivatedRoute }, { type: i3.Router }, { type: i4.Location }, { type: i2.PageInfoService }] });
364
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm8tZGV0YWlscy1wYXJlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm9ncmFtL3BsYW5vLWRldGFpbHMtcGFyZW50L3BsYW5vLWRldGFpbHMtcGFyZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vZ3JhbS9wbGFuby1kZXRhaWxzLXBhcmVudC9wbGFuby1kZXRhaWxzLXBhcmVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLGNBQWMsRUFDZCxhQUFhLEVBQ2IsT0FBTyxFQUNQLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7OztBQVlkLE1BQU0sT0FBTywyQkFBMkI7SUFvQzVCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXhDVixRQUFRLENBQVM7SUFFakIsU0FBUyxDQUFNO0lBQ2YsU0FBUyxDQUFNO0lBRWYsZUFBZSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBUztJQUVmLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFDOUIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDakIsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFaEQsaUJBQWlCLEdBQXNCO1FBQ3JDLE9BQU8sRUFBRSxFQUFFO1FB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QztZQUNqQixZQUFZLEVBQUUsQ0FBQztZQUNmLFNBQVMsRUFBQyxFQUFFO1NBQ2IsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7d0dBL1hVLDJCQUEyQjs0RkFBM0IsMkJBQTJCLGdFQ3RCeEMscWh6QkFtU1U7OzRGRDdRRywyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7XHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIGZpbHRlcixcclxuICBmaXJzdFZhbHVlRnJvbSxcclxuICBsYXN0VmFsdWVGcm9tLFxyXG4gIFN1YmplY3QsXHJcbiAgdGFrZVVudGlsLFxyXG59IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFN0b3JlQnVpbGRlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvc3RvcmUtYnVpbGRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSwgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IFZtTGlicmFyeUxpc3QgfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlcy92bS1saWJyYXJ5LmludGVyZmFjZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibGliLXBsYW5vLWRldGFpbHMtcGFyZW50XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9wbGFuby1kZXRhaWxzLXBhcmVudC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vcGxhbm8tZGV0YWlscy1wYXJlbnQuY29tcG9uZW50LnNjc3NcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFBsYW5vRGV0YWlsc1BhcmVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBjbGllbnRJZDogc3RyaW5nO1xyXG5cclxuICBwbGFub0RhdGE6IGFueTtcclxuICBmbG9vckRhdGE6IGFueTtcclxuXHJcbiAgc2VsZWN0ZWRGbG9vcklkID0gbmV3IEZvcm1Db250cm9sKFwiXCIpO1xyXG4gIGNkblVybDogc3RyaW5nO1xyXG5cclxuICBpc1BhZ2VMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBpc1JlTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzUm9sbG91dFBlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgcGxhbm9CcmllZkRldGFpbHM6IFBsYW5vQnJpZWZEZXRhaWxzID0ge1xyXG4gICAgcGxhbm9JZDogXCJcIixcclxuICAgIGZsb29ySWQ6IFwiXCIsXHJcbiAgICB0b3RhbEZpeHR1cmVzOiAwLFxyXG4gICAgZmxvb3JMYXN0VXBkYXRlZDogXCJcIixcclxuICAgIHBsYW5vU3RhdHVzOiBcIlwiLFxyXG4gICAgbWVyY2hDb21wbGlhbmNlUGVyY2VudGFnZTogMCxcclxuICAgIGxhc3RNZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlOiAwLFxyXG4gICAgbGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrOiBudWxsLFxyXG4gICAgbWVyY2hTdGF0dXM6IG51bGwsXHJcbiAgICBtaXNzZWRDb3VudDogMCxcclxuICAgIG1pc3BsYWNlZENvdW50OiAwLFxyXG4gICAgcHJvZHVjdENvdW50OiAwLFxyXG4gICAgc3RvcmVOYW1lOicnXHJcbiAgfTtcclxuXHJcbiAgc2VsZWN0ZWRUYWI6IFRhYlR5cGUgPSBcIm92ZXJ2aWV3XCI7XHJcbiAgc3RvcmVMaXN0OiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZFN0b3JlTmFtZTogYW55O1xyXG4gIGlzU2hvd0NvbXBsaWFuY2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IFN0b3JlQnVpbGRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgIHByaXZhdGUgcGFnZUluZm86IFBhZ2VJbmZvU2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkgdGhpcy5jZG5VcmwgPSBlLnBsYW5vZ3JhbUNETjtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgLy8gU3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIG9uIGNvbXBvbmVudCBkZXN0cm95LlxyXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLCAvLyBUbyBhdm9pZCBpbW1lZGlhdGUgZnJlcXVlbnQgY2FsbHMuXHJcbiAgICAgICAgZmlsdGVyKChkYXRhKSA9PiAhIWRhdGEpLCAvLyBGaWx0ZXJpbmcgbnVsbC91bmRlZmluZWQuXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgLy8gRW1pdHRpbmcgb25seSBkaWZmZXJlbnQgdmFsdWVzLiAoSWdub3JlcyBzYW1lIGNsaWVudElkKS5cclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiBhc3luYyAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICB0aGlzLmNsaWVudElkID0gZGF0YS5jbGllbnQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSBhcyBzdHJpbmcsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50SWQgPSBkYXRhPy5jbGllbnQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBhd2FpdCB0aGlzLmdldFZtc0xpc3QoKTtcclxuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXM7XHJcbiAgICAgICAgICBpZiAocGFyYW1zPy50YWIpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IHBhcmFtcz8udGFiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHBhcmFtcz8ucGxhbm9JZCAmJiBwYXJhbXMuZmxvb3JJZCkge1xyXG4gICAgICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLnBsYW5vSWQgPSBwYXJhbXMucGxhbm9JZDtcclxuICAgICAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5mbG9vcklkID0gcGFyYW1zLmZsb29ySWQ7XHJcbiAgICAgICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMuc3RvcmVOYW1lID0gcGFyYW1zLnN0b3JlTmFtZTtcclxuICAgICAgICAgICAgLy8gdGhpcy5vbkNsaWNrUmVsb2FkKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0U3RvcmVGaXh0dXJlcyhwYXJhbXMucGxhbm9JZCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0U3RvcmVMaXN0KHBhcmFtcy5wbGFub0lkKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZsb29ySWQudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoaWQpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmZsb29yRGF0YSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgdGhpcy5mbG9vckRhdGEgPSBzdHJ1Y3R1cmVkQ2xvbmUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBsYW5vRGF0YT8uZmxvb3JzPy5maW5kKChmbG9vcjogYW55KSA9PiBmbG9vci5faWQgPT09IGlkKSxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMuZmxvb3JEYXRhLnN0b3JlTmFtZSA9IHRoaXMucGxhbm9EYXRhLnN0b3JlTmFtZTtcclxuICAgICAgICAgICAgICB0aGlzLmZsb29yRGF0YS5mbG9vckNoYW5nZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5mbG9vckxhc3RVcGRhdGVkID0gdGhpcy5mbG9vckRhdGEuY3JlYXRlZEF0ID8/IHRoaXMuZmxvb3JEYXRhLmxhc3RVcGRhdGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5mbG9vcklkID0gdGhpcy5mbG9vckRhdGEuX2lkO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG5ld1BhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgICAgICAgICAgICAgbmV3UGFyYW1zLnNldChcInBsYW5vSWRcIiwgdGhpcy5mbG9vckRhdGEucGxhbm9JZCk7XHJcbiAgICAgICAgICAgICAgbmV3UGFyYW1zLnNldChcImZsb29ySWRcIiwgdGhpcy5mbG9vckRhdGEuX2lkKTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoXHJcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsXHJcbiAgICAgICAgICAgICAgICBuZXdQYXJhbXMudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbG9vcklkLnNldFZhbHVlKHRoaXMuZmxvb3JEYXRhLl9pZCwge1xyXG4gICAgICAgICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRMYXlvdXRSb2xsb3V0U3RhdHVzKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRTdG9yZUNvbXBsaWFuY2VEZXRhaWxzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKHRoaXMucGxhbm9EYXRhPy5zdG9yZU5hbWUpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJQbGFub2dyYW1cIixcclxuICAgICAgICBwYXRoOiBcIi9tYW5hZ2UvcGxhbm9ncmFtL3N0b3JlLXBsYW5vZ3JhbXNcIixcclxuICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXHJcbiAgICAgICAgaXNTZXBhcmF0b3I6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6IFwiXCIsXHJcbiAgICAgICAgcGF0aDogXCJcIixcclxuICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXHJcbiAgICAgICAgaXNTZXBhcmF0b3I6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFN0b3JlRml4dHVyZXMoc3RvcmVJZD86IHN0cmluZykge1xyXG4gICAgdGhpcy5pc1BhZ2VMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBwbGFub0lkOiB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLnBsYW5vSWQsXHJcbiAgICAgIGZsb29ySWQ6IHRoaXMucGxhbm9CcmllZkRldGFpbHMuZmxvb3JJZCxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlXHJcbiAgICAgIC5nZXRTdG9yZVBsYW5vKGRhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogYXN5bmMgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXJlcz8uZGF0YT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnBsYW5vRGF0YSA9IHN0cnVjdHVyZWRDbG9uZShyZXMuZGF0YVswXSk7XHJcbiAgICAgICAgICB0aGlzLmlzU2hvd0NvbXBsaWFuY2UgPSB0aGlzLnBsYW5vRGF0YS5zdG9yZUlkID09PSBcIjExLTI3OTNcIjtcclxuICAgICAgICAgIHRoaXMuc2V0UGFnZURhdGEoKTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5wbGFub0JyaWVmRGV0YWlscy5mbG9vcklkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmxvb3JEYXRhID0gc3RydWN0dXJlZENsb25lKFxyXG4gICAgICAgICAgICAgIHJlcy5kYXRhWzBdLmZsb29ycy5maW5kKFxyXG4gICAgICAgICAgICAgICAgKGZsb29yOiBhbnkpID0+IGZsb29yPy5faWQgPT09IHRoaXMucGxhbm9CcmllZkRldGFpbHMuZmxvb3JJZCxcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mbG9vckRhdGEgPSBzdHJ1Y3R1cmVkQ2xvbmUocmVzLmRhdGFbMF0uZmxvb3JzWzBdKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLmZsb29yRGF0YS5zdG9yZU5hbWUgPSB0aGlzLnBsYW5vRGF0YS5zdG9yZU5hbWU7XHJcbiAgICAgICAgICB0aGlzLmZsb29yRGF0YS5zdG9yZUlkID0gdGhpcy5wbGFub0RhdGEuc3RvcmVJZDtcclxuICAgICAgICAgIC8vIHRoaXMuZmxvb3JEYXRhLnJldmlzaW9uSWQgPSB0aGlzLnBsYW5vRGF0YS5yZXZpc2lvbklkO1xyXG4gICAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5mbG9vckxhc3RVcGRhdGVkID0gdGhpcy5mbG9vckRhdGEuY3JlYXRlZEF0ID8/IHRoaXMuZmxvb3JEYXRhLmxhc3RVcGRhdGU7XHJcbiAgICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLnRvdGFsRml4dHVyZXMgPSB0aGlzLmdldEFsbEZpeHR1cmVzKCkubGVuZ3RoO1xyXG5cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbG9vcklkLnNldFZhbHVlKHRoaXMuZmxvb3JEYXRhLl9pZCwge1xyXG4gICAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmdldExheW91dFJvbGxvdXRTdGF0dXMoKTtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0U3RvcmVDb21wbGlhbmNlRGV0YWlscygpO1xyXG5cclxuICAgICAgICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc1BhZ2VMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBhc3luYyBnZXRWbXNMaXN0KCkge1xyXG4gIC8vICAgdHJ5IHtcclxuICAvLyAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKFxyXG4gIC8vICAgICAgIHRoaXMuYXBpU2VydmljZS5nZXRWTU5hbWVMaXN0KHRoaXMuY2xpZW50SWQpLFxyXG4gIC8vICAgICApO1xyXG4gIC8vICAgICBpZiAocmVzPy5zdGF0dXMgPT09IFwic3VjY2Vzc1wiKSB7XHJcbiAgLy8gICAgICAgdGhpcy52bUxpc3QgPSByZXM/LmRhdGE/Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgLy8gICAgICAgICByZXR1cm4ge1xyXG4gIC8vICAgICAgICAgICBpZDogaXRlbS5faWQsXHJcbiAgLy8gICAgICAgICAgIG5hbWU6IGl0ZW0udm1OYW1lLFxyXG4gIC8vICAgICAgICAgICBkaXNwbGF5TmFtZTogaXRlbS52bU5hbWUsXHJcbiAgLy8gICAgICAgICAgIHdpZHRoOiBpdGVtLnZtV2lkdGgudmFsdWUsXHJcbiAgLy8gICAgICAgICAgIGhlaWdodDogaXRlbS52bUhlaWdodC52YWx1ZSxcclxuICAvLyAgICAgICAgICAgdHlwZTogaXRlbS52bVR5cGUsXHJcbiAgLy8gICAgICAgICAgIC4uLihpdGVtLnZtSW1hZ2VVcmxcclxuICAvLyAgICAgICAgICAgICA/IHsgaW1nVXJsOiBgJHt0aGlzLmNkblVybH0ke2l0ZW0udm1JbWFnZVVybH1gIH1cclxuICAvLyAgICAgICAgICAgICA6IHt9KSxcclxuICAvLyAgICAgICAgIH07XHJcbiAgLy8gICAgICAgfSk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgLy8gICAgIGNvbnNvbGUubG9nKFwiQEAgfiBnZXRWbXNMaXN0IFtFUlJdOlwiLCBlcnJvcik7XHJcbiAgLy8gICB9IGZpbmFsbHkge1xyXG4gIC8vICAgICB0aGlzLmlzUGFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIGdldExheW91dFJvbGxvdXRTdGF0dXMoKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2VcclxuICAgICAgLmdldFJvbGxvdXRUYXNrSW5mbyh7XHJcbiAgICAgICAgcGxhbm9JZDogdGhpcy5mbG9vckRhdGEucGxhbm9JZCxcclxuICAgICAgICBmbG9vcklkOiB0aGlzLmZsb29yRGF0YS5faWQsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgY29uc3QgdGFza3NJbmZvID0gcmVzPy5kYXRhPy50YXNrRGV0YWlscztcclxuICAgICAgICAgICAgaWYgKHRhc2tzSW5mbykge1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNSb2xsb3V0UGVuZGluZyA9IHRhc2tzSW5mby5zb21lKFxyXG4gICAgICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGUuc3RhdHVzID09PSBcIm9wZW5cIiB8fCBlbGUuc3RhdHVzID09PSBcInBlbmRpbmdcIixcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNSb2xsb3V0UGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkBAIH4gZ2V0TGF5b3V0Um9sbG91dFN0YXR1cyBbRVJSXTpcIiwgZXJyKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFN0b3JlQ29tcGxpYW5jZURldGFpbHMoKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIHBsYW5vSWQ6IHRoaXMuZmxvb3JEYXRhLnBsYW5vSWQsXHJcbiAgICAgICAgZmxvb3JJZDogdGhpcy5mbG9vckRhdGEuX2lkLFxyXG4gICAgICAgIHN0b3JlTmFtZTogdGhpcy5mbG9vckRhdGEuc3RvcmVOYW1lLFxyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG4gICAgICAgIHRoaXMuYXBpU2VydmljZS5nZXRQbGFub2dyYW1Db21wbGlhbmNlRGV0YWlscyhwYXlsb2FkKSxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmIChyZXM/LmNvZGUgPT0gMjAwICYmIHJlcz8uc3RhdHVzID09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5sYXN0TWVyY2hDb21wbGlhbmNlQ2hlY2sgPSByZXMuZGF0YS5sYXN0Q2hlY2s7XHJcbiAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5tZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlID1cclxuICAgICAgICAgIHJlcy5kYXRhLm1lcmNoQ29tcGxpYW5jZTtcclxuICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmxhc3RNZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlID1cclxuICAgICAgICAgIHJlcy5kYXRhLnByZXZpb3VzTWVyY2hDb21wbGlhbmNlO1xyXG4gICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMubWVyY2hTdGF0dXMgPSByZXMuZGF0YS5yYXRlSW5jcmVhc2U7XHJcbiAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5taXNzZWRDb3VudCA9IHJlcy5kYXRhLm1pc3NlZENvdW50O1xyXG4gICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMubWlzcGxhY2VkQ291bnQgPSByZXMuZGF0YS5taXNwbGFjZWRDb3VudDtcclxuICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLnByb2R1Y3RDb3VudCA9IHJlcy5kYXRhLnByb2R1Y3RDb3VudDtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJAQCB+IGdldFN0b3JlQ29tcGxpYW5jZURldGFpbHMgW0VSUl06XCIsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUmV2aXNpb25JbmZvQ2hhbmdlKGluZm86IHsgdG90YWxGaXh0dXJlczogbnVtYmVyOyBsYXN0VXBkYXRlZDogc3RyaW5nOyByZXF1aXJlc1JlZmV0Y2g/OiBib29sZWFuIH0pOiB2b2lkIHtcclxuICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMudG90YWxGaXh0dXJlcyA9IGluZm8udG90YWxGaXh0dXJlcztcclxuICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMuZmxvb3JMYXN0VXBkYXRlZCA9IGluZm8ubGFzdFVwZGF0ZWQ7XHJcbiAgICBpZiAoaW5mby5yZXF1aXJlc1JlZmV0Y2gpIHtcclxuICAgICAgdGhpcy5nZXRTdG9yZUZpeHR1cmVzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRhYkNoYW5nZSh0YWI6IFRhYlR5cGUpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0YWI7XHJcbiAgICB0aGlzLmZsb29yRGF0YS5mbG9vckNoYW5nZSA9IGZhbHNlO1xyXG4gICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsRml4dHVyZXMoKSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICAuLi50aGlzLmZsb29yRGF0YT8ubGF5b3V0UG9seWdvbi5mbGF0TWFwKChlOiBhbnkpID0+IGUuZml4dHVyZXMpLFxyXG4gICAgICAuLi50aGlzLmZsb29yRGF0YT8uY2VudGVyRml4dHVyZSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBjYWxjTWVyY2hDb21wbGlhbmNlUGVyY2VudGFnZSgpIHtcclxuICAgIGNvbnN0IGFsbEZpeHR1cmVzID0gdGhpcy5nZXRBbGxGaXh0dXJlcygpO1xyXG5cclxuICAgIGNvbnN0IGFsbFNoZWx2ZXMgPSBhbGxGaXh0dXJlcy5mbGF0TWFwKChmOiBhbnkpID0+IGYuc2hlbGZDb25maWcpO1xyXG5cclxuICAgIGNvbnN0IGNvbXBsaWFuY2VzID0gYWxsU2hlbHZlcy5tYXAoKHM6IGFueSkgPT4gcz8uY29tcGxpYW5jZSk7XHJcblxyXG4gICAgY29uc3QgdG90YWwgPSBjb21wbGlhbmNlcy5sZW5ndGg7XHJcbiAgICBjb25zdCBwcm9wZXJDb3VudCA9IGNvbXBsaWFuY2VzLmZpbHRlcigocCkgPT4gcCA9PT0gXCJwcm9wZXJcIikubGVuZ3RoO1xyXG4gICAgY29uc3Qgc3VjY2Vzc1BlcmNlbnRhZ2UgPSAocHJvcGVyQ291bnQgLyB0b3RhbCkgKiAxMDA7XHJcblxyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoc3VjY2Vzc1BlcmNlbnRhZ2UpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUXVlcnlQYXJhbXMoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xyXG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxyXG4gICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgIHBsYW5vSWQ6IHRoaXMuZmxvb3JEYXRhLnBsYW5vSWQsXHJcbiAgICAgICAgZmxvb3JJZDogdGhpcy5mbG9vckRhdGEuX2lkLFxyXG4gICAgICAgIHRhYjogdGhpcy5zZWxlY3RlZFRhYixcclxuICAgICAgfSxcclxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogXCJtZXJnZVwiLFxyXG4gICAgICByZXBsYWNlVXJsOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBvbkNsaWNrUmVsb2FkKGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gICAgLy8gdGhpcy5pc1BhZ2VMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGlmKGV2ZW50KXtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pc1JlTG9hZGluZykgcmV0dXJuO1xyXG4gICAgdGhpcy5pc1JlTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgICBzdG9yZXM6IFt0aGlzLmZsb29yRGF0YS5zdG9yZU5hbWVdLFxyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKFxyXG4gICAgICAgIHRoaXMuYXBpU2VydmljZS51cGRhdGVQcm9kdWN0TWFwcGluZyhwYXlsb2FkKSxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLmdldFN0b3JlRml4dHVyZXModGhpcy5wbGFub0JyaWVmRGV0YWlscy5wbGFub0lkKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJAQCB+IG9uQ2xpY2tSZWxvYWQgW0VSUl06XCIsIGVycm9yKTtcclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIHRoaXMuaXNSZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUxpc3QocGxhbm9JZD86IHN0cmluZykge1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlXHJcbiAgICAgIC5nZXRQbGFub1N0b3JlTGlzdCh0aGlzLmNsaWVudElkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSB0aGlzLnN0b3JlTGlzdC5tYXAoKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uZWxlLCBzdG9yZU5hbWU6IGVsZS5zdG9yZU5hbWUudG9VcHBlckNhc2UoKSB9O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKHBsYW5vSWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RvcmVOYW1lID0gdGhpcy5zdG9yZUxpc3QuZmluZChcclxuICAgICAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlLnBsYW5vSWQudG9TdHJpbmcoKSA9PSBwbGFub0lkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25TZWxlY3RlZChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnBsYW5vRGF0YSA9IG51bGw7XHJcbiAgICB0aGlzLmZsb29yRGF0YSA9IG51bGw7XHJcbiAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzID0ge1xyXG4gICAgICBwbGFub0lkOiBcIlwiLFxyXG4gICAgICBmbG9vcklkOiBcIlwiLFxyXG4gICAgICB0b3RhbEZpeHR1cmVzOiAwLFxyXG4gICAgICBmbG9vckxhc3RVcGRhdGVkOiBcIlwiLFxyXG4gICAgICBwbGFub1N0YXR1czogXCJcIixcclxuICAgICAgbWVyY2hDb21wbGlhbmNlUGVyY2VudGFnZTogMCxcclxuICAgICAgbGFzdE1lcmNoQ29tcGxpYW5jZVBlcmNlbnRhZ2U6IDAsXHJcbiAgICAgIGxhc3RNZXJjaENvbXBsaWFuY2VDaGVjazogbnVsbCxcclxuICAgICAgbWVyY2hTdGF0dXM6IG51bGwsXHJcbiAgICAgIG1pc3NlZENvdW50OiAwLFxyXG4gICAgICBtaXNwbGFjZWRDb3VudDogMCxcclxuICAgICAgcHJvZHVjdENvdW50OiAwLFxyXG4gICAgICBzdG9yZU5hbWU6JydcclxuICAgIH07XHJcbiAgICBjb25zdCBuZXdQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xyXG4gICAgbmV3UGFyYW1zLnNldChcInBsYW5vSWRcIiwgZXZlbnQucGxhbm9JZCk7XHJcbiAgICBuZXdQYXJhbXMuc2V0KFwiZmxvb3JJZFwiLCBldmVudC5mbG9vcklkKTtcclxuXHJcbiAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsIG5ld1BhcmFtcy50b1N0cmluZygpKTtcclxuICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMucGxhbm9JZCA9IGV2ZW50LnBsYW5vSWQ7XHJcbiAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmZsb29ySWQgPSBldmVudC5mbG9vcklkO1xyXG4gICAgdGhpcy5pc1JvbGxvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmVOYW1lID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldFN0b3JlRml4dHVyZXMoZXZlbnQuX2lkKTtcclxuICB9XHJcbn1cclxuXHJcbnR5cGUgVGFiVHlwZSA9IFwib3ZlcnZpZXdcIiB8IFwibWVyY2gtY29tcGxpYW5jZVwiIHwgXCJhbmFseXRpY3NcIjtcclxuXHJcbmludGVyZmFjZSBQbGFub0JyaWVmRGV0YWlscyB7XHJcbiAgcGxhbm9JZDogc3RyaW5nO1xyXG4gIGZsb29ySWQ6IHN0cmluZztcclxuICB0b3RhbEZpeHR1cmVzOiBudW1iZXI7XHJcbiAgZmxvb3JMYXN0VXBkYXRlZDogc3RyaW5nO1xyXG4gIHBsYW5vU3RhdHVzOiBzdHJpbmc7XHJcbiAgbWVyY2hDb21wbGlhbmNlUGVyY2VudGFnZTogbnVtYmVyO1xyXG4gIGxhc3RNZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlOiBudW1iZXI7XHJcbiAgbGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrOiBzdHJpbmcgfCBudWxsO1xyXG4gIG1lcmNoU3RhdHVzOiBib29sZWFuIHwgbnVsbDtcclxuICBtaXNzZWRDb3VudDogbnVtYmVyIHwgbnVsbDtcclxuICBtaXNwbGFjZWRDb3VudDogbnVtYmVyIHwgbnVsbDtcclxuICBwcm9kdWN0Q291bnQ6IG51bWJlciB8IG51bGw7XHJcbiAgc3RvcmVOYW1lOiBTdHJpbmcgfCBudWxsO1xyXG59XHJcbiIsIjxzZWN0aW9uIGlkPVwicGxhbm8tZGV0YWlsc1wiPlxyXG4gICAgPGRpdiAqbmdJZj1cImlzUGFnZUxvYWRpbmdcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbS0wXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJTa2VsZXRvblwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNrZWxldG9uTG9hZGVyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ2Qtbm9uZSc6IGlzUGFnZUxvYWRpbmcgfVwiPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJoZWFkZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBpZD1cImhlYWRlclwiIG5nYkFjY29yZGlvbiAjYWNjb3JkaW9uPVwibmdiQWNjb3JkaW9uXCIgY2xhc3M9XCJteS00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkl0ZW09XCJkZXRhaWxzXCIgW2NvbGxhcHNlZF09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uSGVhZGVyIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBweC02IHB5LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtNCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDoxMHB4O21hcmdpbi1sZWZ0OjVweDttYXJnaW4tcmlnaHQ6NXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwbGFub0RhdGE/LnN0b3JlTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9J3RpdGxlJz57e3BsYW5vRGF0YT8uc3RvcmVOYW1lfX0gLSBQbGFubzwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1zZWxlY3QtcGxhbm8gKm5nSWY9XCJzdG9yZUxpc3Q/Lmxlbmd0aFwiIFtpZEZpZWxkXT1cIidfaWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlc109XCJbc2VsZWN0ZWRTdG9yZU5hbWVdXCIgW2l0ZW1zXT1cInN0b3JlTGlzdFwiIFttdWx0aV09ZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEZpZWxkPVwic3RvcmVOYW1lXCIgKHNlbGVjdGVkKT1cIm9uU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpYi1zZWxlY3QtcGxhbm8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCAqbmdJZj1cInBsYW5vRGF0YT8uZmxvb3JzPy5sZW5ndGhcIiBbZm9ybUNvbnRyb2xdPVwic2VsZWN0ZWRGbG9vcklkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRGaWVsZF09XCInX2lkJ1wiIFtuYW1lRmllbGRdPVwiJ2Zsb29yTmFtZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInBsYW5vRGF0YS5mbG9vcnNcIj48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL21hbmFnZS9wbGFub2dyYW0vbWFuYWdlLXBsYW5vZ3JhbSddXCIgW3F1ZXJ5UGFyYW1zXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFub0lkOiBmbG9vckRhdGE/LnBsYW5vSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3JJZDogZmxvb3JEYXRhPy5faWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidGl0bGVcIiBzdHlsZT1cImNvbG9yOiAjMDA4ZWRmO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGl0IFBsYW5vXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTlcIiBoZWlnaHQ9XCIxOVwiIHZpZXdCb3g9XCIwIDAgMTkgMTlcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC41IDIuNzY3NzdIMi42NjY2N0MyLjIyNDY0IDIuNzY3NzcgMS44MDA3MiAyLjk0MzM2IDEuNDg4MTYgMy4yNTU5MkMxLjE3NTU5IDMuNTY4NDggMSAzLjk5MjQxIDEgNC40MzQ0M1YxNi4xMDExQzEgMTYuNTQzMSAxLjE3NTU5IDE2Ljk2NzEgMS40ODgxNiAxNy4yNzk2QzEuODAwNzIgMTcuNTkyMiAyLjIyNDY0IDE3Ljc2NzggMi42NjY2NyAxNy43Njc4SDE0LjMzMzNDMTQuNzc1NCAxNy43Njc4IDE1LjE5OTMgMTcuNTkyMiAxNS41MTE4IDE3LjI3OTZDMTUuODI0NCAxNi45NjcxIDE2IDE2LjU0MzEgMTYgMTYuMTAxMVYxMC4yNjc4TTE0Ljc1IDEuNTE3NzdDMTUuMDgxNSAxLjE4NjI1IDE1LjUzMTIgMSAxNiAxQzE2LjQ2ODggMSAxNi45MTg1IDEuMTg2MjUgMTcuMjUgMS41MTc3N0MxNy41ODE1IDEuODQ5MjkgMTcuNzY3OCAyLjI5ODkzIDE3Ljc2NzggMi43Njc3N0MxNy43Njc4IDMuMjM2NjEgMTcuNTgxNSAzLjY4NjI1IDE3LjI1IDQuMDE3NzdMOS4zMzMzMyAxMS45MzQ0TDYgMTIuNzY3OEw2LjgzMzMzIDkuNDM0NDNMMTQuNzUgMS41MTc3N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOEVERlwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtNCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiQWNjb3JkaW9uQnV0dG9uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkNvbGxhcHNlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYocGxhbm9EYXRhKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXgtMCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBmaWx0ZXItdGFiXCIgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogc2VsZWN0ZWRUYWIgPT09ICdvdmVydmlldycgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGFiQ2hhbmdlKCdvdmVydmlldycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1PlRvdGFsIGZpeHR1cmVzPC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+e3sgcGxhbm9CcmllZkRldGFpbHMudG90YWxGaXh0dXJlcyB9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+TGFzdCB1cGRhdGVkOjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgcGxhbm9CcmllZkRldGFpbHMuZmxvb3JMYXN0VXBkYXRlZCB8IGRhdGU6XCJkIE1NTSB5eXl5LCBoaDptbSBhXCIgfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1JvbGxvdXRQZW5kaW5nXCIgY2xhc3M9XCJpbmRpY2F0b3IgcmV2aWV3UGVuZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9sbG91dCByZXZpZXcgcGVuZGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGlzU2hvd0NvbXBsaWFuY2Upe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgZmlsdGVyLXRhYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IHNlbGVjdGVkVGFiID09PSAnbWVyY2gtY29tcGxpYW5jZScgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRhYkNoYW5nZSgnbWVyY2gtY29tcGxpYW5jZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTIgYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm0tMFwiPk1lcmNoYW5kaXNlIGNvbXBsaWFuY2U8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlIGluYWN0aXZlXCI+TWlzc2luZzoge3twbGFub0JyaWVmRGV0YWlscy5taXNzZWRDb3VudCB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlIGluYWN0aXZlIFwiPk1pc3BsYWNlZDoge3twbGFub0JyaWVmRGV0YWlscy5taXNwbGFjZWRDb3VudH19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPnt7IHBsYW5vQnJpZWZEZXRhaWxzLm1lcmNoQ29tcGxpYW5jZVBlcmNlbnRhZ2UgfX0lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHBsYW5vQnJpZWZEZXRhaWxzLmxhc3RNZXJjaENvbXBsaWFuY2VDaGVjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihwbGFub0JyaWVmRGV0YWlscy5tZXJjaFN0YXR1cyAhPSBudWxsKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHBsYW5vQnJpZWZEZXRhaWxzLm1lcmNoU3RhdHVzICl7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDE2IDEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1LjMzMjcgMC43NDk5OTlMOC45OTkzNSA3LjA4MzMzTDUuNjY2MDIgMy43NUwwLjY2NjAxNiA4Ljc1TTE1LjMzMjcgMC43NDk5OTlMMTEuMzMyNyAwLjc0OTk5OU0xNS4zMzI3IDAuNzQ5OTk5TDE1LjMzMjcgNC43NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMzk4NTVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9QGVsc2V7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDE2IDEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTAuNjY3MzIgOC43NUw3LjAwMDY1IDIuNDE2NjdMMTAuMzM0IDUuNzVMMTUuMzM0IDAuNzVNMC42NjczMiA4Ljc1TDQuNjY3MzIgOC43NU0wLjY2NzMyIDguNzVMMC42NjczMiA0Ljc1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0Q5MkQyMFwiIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsndGV4dC1zdWNjZXNzJzpwbGFub0JyaWVmRGV0YWlscy5tZXJjaFN0YXR1cywndGV4dC1kYW5nZXInOiFwbGFub0JyaWVmRGV0YWlscy5tZXJjaFN0YXR1c31cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHBsYW5vQnJpZWZEZXRhaWxzLmxhc3RNZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlIH19JVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnZzIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+TGFzdCBjaGVjazo8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgcGxhbm9CcmllZkRldGFpbHMubGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGlja1JlbG9hZCgkZXZlbnQpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyb3RhdGUnOmlzUmVMb2FkaW5nfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzQ3NTNfMTE2NDApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuMjUgMy4wMDAwNlY3LjUwMDA2TTE3LjI1IDcuNTAwMDZIMTIuNzVNMTcuMjUgNy41MDAwNkwxMy43NyA0LjIzMDA2QzEyLjk2MzkgMy40MjM1OSAxMS45NjY3IDIuODM0NDYgMTAuODcxNCAyLjUxNzY0QzkuNzc2MDcgMi4yMDA4MSA4LjYxODMzIDIuMTY2NjIgNy41MDYyMSAyLjQxODI1QzYuMzk0MSAyLjY2OTg4IDUuMzYzODUgMy4xOTkxMyA0LjUxMTYgMy45NTY2MkMzLjY1OTM1IDQuNzE0MTEgMy4wMTI4OCA1LjY3NTE1IDIuNjMyNSA2Ljc1MDA2TTAuNzUgMTUuMDAwMVYxMC41MDAxTTAuNzUgMTAuNTAwMUg1LjI1TTAuNzUgMTAuNTAwMUw0LjIzIDEzLjc3MDFDNS4wMzYwNiAxNC41NzY1IDYuMDMzMjggMTUuMTY1NyA3LjEyODYxIDE1LjQ4MjVDOC4yMjM5MyAxNS43OTkzIDkuMzgxNjcgMTUuODMzNSAxMC40OTM4IDE1LjU4MTlDMTEuNjA1OSAxNS4zMzAyIDEyLjYzNjEgMTQuODAxIDEzLjQ4ODQgMTQuMDQzNUMxNC4zNDA3IDEzLjI4NiAxNC45ODcxIDEyLjMyNSAxNS4zNjc1IDExLjI1MDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDc1M18xMTY0MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfUBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5MYXN0IGNoZWNrOiBOb3Qgc2Nhbm5lZCB5ZXQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tSZWxvYWQoJGV2ZW50KVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgbXMtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncm90YXRlJzppc1JlTG9hZGluZ31cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF80NzUzXzExNjQwKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE3LjI1IDMuMDAwMDZWNy41MDAwNk0xNy4yNSA3LjUwMDA2SDEyLjc1TTE3LjI1IDcuNTAwMDZMMTMuNzcgNC4yMzAwNkMxMi45NjM5IDMuNDIzNTkgMTEuOTY2NyAyLjgzNDQ2IDEwLjg3MTQgMi41MTc2NEM5Ljc3NjA3IDIuMjAwODEgOC42MTgzMyAyLjE2NjYyIDcuNTA2MjEgMi40MTgyNUM2LjM5NDEgMi42Njk4OCA1LjM2Mzg1IDMuMTk5MTMgNC41MTE2IDMuOTU2NjJDMy42NTkzNSA0LjcxNDExIDMuMDEyODggNS42NzUxNSAyLjYzMjUgNi43NTAwNk0wLjc1IDE1LjAwMDFWMTAuNTAwMU0wLjc1IDEwLjUwMDFINS4yNU0wLjc1IDEwLjUwMDFMNC4yMyAxMy43NzAxQzUuMDM2MDYgMTQuNTc2NSA2LjAzMzI4IDE1LjE2NTcgNy4xMjg2MSAxNS40ODI1QzguMjIzOTMgMTUuNzk5MyA5LjM4MTY3IDE1LjgzMzUgMTAuNDkzOCAxNS41ODE5QzExLjYwNTkgMTUuMzMwMiAxMi42MzYxIDE0LjgwMSAxMy40ODg0IDE0LjA0MzVDMTQuMzQwNyAxMy4yODYgMTQuOTg3MSAxMi4zMjUgMTUuMzY3NSAxMS4yNTAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMTAxODI4XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzQ3NTNfMTE2NDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGZpbHRlci10YWJcIiBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBzZWxlY3RlZFRhYiA9PT0gJ2FuYWx5dGljcycgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRhYkNoYW5nZSgnYW5hbHl0aWNzJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1PlBsYW5vIEFuYWx5dGljczwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIG1iLTFcIj48aDMgY2xhc3M9XCJtZS0yXCI+e3sgcGxhbm9CcmllZkRldGFpbHMucHJvZHVjdENvdW50fX08L2gzPjxwIGNsYXNzPVwidGV4dFwiPkFjdGl2ZSBwcm9kdWN0czwvcD48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxhc3QgQ2hlY2s6PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHBsYW5vQnJpZWZEZXRhaWxzLmxhc3RNZXJjaENvbXBsaWFuY2VDaGVjaykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IHBsYW5vQnJpZWZEZXRhaWxzLmxhc3RNZXJjaENvbXBsaWFuY2VDaGVja319PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfUBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5Ob3Qgc2Nhbm5lZCB5ZXQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzUGFnZUxvYWRpbmcgJiYgcGxhbm9EYXRhXCIgaWQ9XCJib2R5XCIgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIEBpZihzZWxlY3RlZFRhYiA9PT0gJ21lcmNoLWNvbXBsaWFuY2UnKXtcclxuICAgICAgICAgICAgICAgIDxtZXJjaC1jb21wbGlhbmNlIFtmbG9vckRhdGFdPVwiZmxvb3JEYXRhXCI+PC9tZXJjaC1jb21wbGlhbmNlPlxyXG4gICAgICAgICAgICB9QGVsc2UgaWYoc2VsZWN0ZWRUYWIgPT0gJ292ZXJ2aWV3Jykge1xyXG4gICAgICAgICAgICAgICAgPHBsYW5vLW92ZXJ2aWV3IFtmbG9vckRhdGFdPVwiZmxvb3JEYXRhXCIgKGN1cnJlbnRSZXZpc2lvbkluZm8pPVwib25SZXZpc2lvbkluZm9DaGFuZ2UoJGV2ZW50KVwiPjwvcGxhbm8tb3ZlcnZpZXc+XHJcbiAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICA8bGliLXBsYW5vLWFuYWx5dGljcyBbZmxvb3JEYXRhXT1cImZsb29yRGF0YVwiPjwvbGliLXBsYW5vLWFuYWx5dGljcz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhcGxhbm9EYXRhXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiaGVpZ2h0OjYwdmhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMTVcIiBoZWlnaHQ9XCIxNTVcIiB2aWV3Qm94PVwiMCAwIDMxNSAxNTVcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMDMuODA5IDQ3LjAxOThDODkuNTQ1OCA0Ny4wMiA3Ny45ODMgNTguNTgyNiA3Ny45ODI5IDcyLjg0NTlDNzcuOTgyOSA3OC43NjE5IDczLjk3OTggODUuNTA2MSA2OC4wNjM4IDg1LjUwNjFINDUuMjU4M0MzMC45OTQ4IDg1LjUwNjEgMTkuNDMxMiA5Ny4wNjg4IDE5LjQzMTIgMTExLjMzMkMxOS40MzEyIDEyNS41OTYgMzAuOTk0OCAxMzcuMTU4IDQ1LjI1ODMgMTM3LjE1OEgxODMuMzU3QzIwMC4yNDcgMTM3LjE1OCAyMTYuMzIgMTIzLjk5MiAyMzMuMjEgMTIzLjk5MkgyOTkuMjQ1QzMwMy45OTkgMTIzLjk5MiAzMDcuODUzIDEyMC4xMzggMzA3Ljg1MyAxMTUuMzgzQzMwNy44NTMgMTEwLjYyOSAzMDMuOTk5IDEwNi43NzUgMjk5LjI0NSAxMDYuNzc1SDIxMS42MjRDMjA5Ljk4IDEwNi43NzUgMjA4LjU4OCAxMDUuNTUzIDIwOC4xMiAxMDMuOTc2QzIwNy4zODEgMTAxLjQ4NyAyMDkuMDgyIDk4LjY3MjEgMjExLjY3OCA5OC42NzIxSDI0MS45MDlDMjU2LjE3MiA5OC42NzE5IDI2Ny43MzUgODcuMTA5MyAyNjcuNzM1IDcyLjg0NTlDMjY3LjczNSA1OC41ODI3IDI1Ni4xNzIgNDcuMDIgMjQxLjkwOSA0Ny4wMTk4SDEwMy44MDlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRUFFQ0YwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyNDAuNjk0XCIgaGVpZ2h0PVwiMTYuOTk1NlwiIHJ4PVwiOC40OTc4XCIgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDI0Ni42MDIgNDguODU3MilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNFQUVDRjBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiNS40MjE0N1wiIGN5PVwiNS40MjE0N1wiIHI9XCI1LjQyMTQ3XCIgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDU2LjI5NzkgMTEzLjI4MilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2QkNBRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMy4yNTI4OFwiIGN5PVwiMy4yNTI4OFwiIHI9XCIzLjI1Mjg4XCIgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDI0NC45NjUgNjguODI2MilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMwMEEzRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMy4yNTI4OFwiIGN5PVwiMy4yNTI4OFwiIHI9XCIzLjI1Mjg4XCIgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDIxNS42ODkgMTMuNTI3MSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMwMEEzRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMi4xNjg1OVwiIGN5PVwiMi4xNjg1OVwiIHI9XCIyLjE2ODU5XCIgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDEwNC4wMDYgMTM4LjIyMSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMwMEEzRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNjguNTAxXCIgeT1cIjQ0LjE1MjNcIiB3aWR0aD1cIjE2Ni45OTlcIiBoZWlnaHQ9XCI5Ny45MzcxXCIgcng9XCIxNS4xMDE1XCIgZmlsbD1cIiM2QkNBRkZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjNcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWFzayBpZD1cInBhdGgtOC1pbnNpZGUtMV80MTlfMjg4ODhcIiBmaWxsPVwid2hpdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05My4xMTcyIDE5Qzk0LjA2MjUgMTkgOTQuOTg5MiAxOS4wODI4IDk1Ljg4ODcgMTkuMjQyMlYxMTYuNzg0Qzk0Ljk4OTIgMTE2LjYyNSA5NC4wNjI1IDExNi41NDIgOTMuMTE3MiAxMTYuNTQySDgyLjc3NDRDNzQuMDY0MiAxMTYuNTQyIDY3LjAwMzEgMTIzLjYwMyA2Ny4wMDI5IDEzMi4zMTNWMzQuNzcxNUM2Ny4wMDI5IDI2LjA2MTIgNzQuMDY0MSAxOSA4Mi43NzQ0IDE5SDkzLjExNzJaXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05My4xMTcyIDE5Qzk0LjA2MjUgMTkgOTQuOTg5MiAxOS4wODI4IDk1Ljg4ODcgMTkuMjQyMlYxMTYuNzg0Qzk0Ljk4OTIgMTE2LjYyNSA5NC4wNjI1IDExNi41NDIgOTMuMTE3MiAxMTYuNTQySDgyLjc3NDRDNzQuMDY0MiAxMTYuNTQyIDY3LjAwMzEgMTIzLjYwMyA2Ny4wMDI5IDEzMi4zMTNWMzQuNzcxNUM2Ny4wMDI5IDI2LjA2MTIgNzQuMDY0MSAxOSA4Mi43NzQ0IDE5SDkzLjExNzJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNkJDQUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOTMuMTE3MiAxOUw5My4xMTczIDE2SDkzLjExNzJWMTlaTTk1Ljg4ODcgMTkuMjQyMkg5OC44ODg3VjE2LjcyNzFMOTYuNDEyMiAxNi4yODgyTDk1Ljg4ODcgMTkuMjQyMlpNOTUuODg4NyAxMTYuNzg0TDk1LjM2NTEgMTE5LjczOEw5OC44ODg3IDEyMC4zNjNWMTE2Ljc4NEg5NS44ODg3Wk05My4xMTcyIDExNi41NDJMOTMuMTE3MyAxMTMuNTQySDkzLjExNzJWMTE2LjU0MlpNNjcuMDAyOSAxMzIuMzEzSDY0LjAwMjlMNzAuMDAyOSAxMzIuMzE0TDY3LjAwMjkgMTMyLjMxM1pNOTMuMTE3MiAxOUw5My4xMTcxIDIyQzkzLjg4NzIgMjIgOTQuNjM4NyAyMi4wNjc0IDk1LjM2NTEgMjIuMTk2MUw5NS44ODg3IDE5LjI0MjJMOTYuNDEyMiAxNi4yODgyQzk1LjMzOTYgMTYuMDk4MSA5NC4yMzc3IDE2IDkzLjExNzMgMTZMOTMuMTE3MiAxOVpNOTUuODg4NyAxOS4yNDIySDkyLjg4ODdWMTE2Ljc4NEg5NS44ODg3SDk4Ljg4ODdWMTkuMjQyMkg5NS44ODg3Wk05NS44ODg3IDExNi43ODRMOTYuNDEyMiAxMTMuODNDOTUuMzM5NiAxMTMuNjQgOTQuMjM3NyAxMTMuNTQyIDkzLjExNzMgMTEzLjU0Mkw5My4xMTcyIDExNi41NDJMOTMuMTE3MSAxMTkuNTQyQzkzLjg4NzIgMTE5LjU0MiA5NC42Mzg3IDExOS42MDkgOTUuMzY1MSAxMTkuNzM4TDk1Ljg4ODcgMTE2Ljc4NFpNOTMuMTE3MiAxMTYuNTQyVjExMy41NDJIODIuNzc0NFYxMTYuNTQyVjExOS41NDJIOTMuMTE3MlYxMTYuNTQyWk04Mi43NzQ0IDExNi41NDJWMTEzLjU0MkM3Mi40MDczIDExMy41NDIgNjQuMDAzMiAxMjEuOTQ3IDY0LjAwMjkgMTMyLjMxM0w2Ny4wMDI5IDEzMi4zMTNMNzAuMDAyOSAxMzIuMzE0QzcwLjAwMzEgMTI1LjI2IDc1LjcyMTIgMTE5LjU0MiA4Mi43NzQ0IDExOS41NDJWMTE2LjU0MlpNNjcuMDAyOSAxMzIuMzEzSDcwLjAwMjlWMzQuNzcxNUg2Ny4wMDI5SDY0LjAwMjlWMTMyLjMxM0g2Ny4wMDI5Wk02Ny4wMDI5IDM0Ljc3MTVINzAuMDAyOUM3MC4wMDI5IDI3LjcxOCA3NS43MjEgMjIgODIuNzc0NCAyMlYxOVYxNkM3Mi40MDcyIDE2IDY0LjAwMjkgMjQuNDA0MyA2NC4wMDI5IDM0Ljc3MTVINjcuMDAyOVpNODIuNzc0NCAxOVYyMkg5My4xMTcyVjE5VjE2SDgyLjc3NDRWMTlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMDBBM0ZGXCIgbWFzaz1cInVybCgjcGF0aC04LWluc2lkZS0xXzQxOV8yODg4OClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT1cIjc2Ljk2MTlcIiB5MT1cIjQyLjY1MjNcIiB4Mj1cIjc2Ljk2MTlcIiB5Mj1cIjg0LjQ4ODFcIiBzdHJva2U9XCIjOTlEQUZGXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjMuOTg0MzZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjIxOC4yMDVcIiBjeT1cIjcwLjE3NjNcIiByPVwiMy4yOTY2M1wiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMTEuNzg3XCIgY3k9XCI1NS4xNjYzXCIgcj1cIjIuNTI2MzdcIiBmaWxsPVwiIzk5REFGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI5OS4zODQ1XCIgY3k9XCIxMjQuOTg2XCIgcj1cIjMuNDQ1MDVcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMzUuNTI5IDMzLjQ3MTdDMTUxLjI4NSAyNC4zNzQ5IDE3MS40MzIgMjkuNzczMiAxODAuNTI5IDQ1LjUyOTNDMTg4LjU2IDU5LjQzOTggMTg1LjI5MSA3Ni43NzA3IDE3My41NzMgODYuOTAwNEwxOTMuNDU3IDEyMS4zMzlDMTk0LjkzMSAxMjMuODk0IDE5NC4wNTUgMTI3LjE2MSAxOTEuNSAxMjguNjM2QzE4OC45NDUgMTMwLjExMSAxODUuNjc5IDEyOS4yMzYgMTg0LjIwNCAxMjYuNjgxTDE2NC40NjUgOTIuNDkzMkMxNDkuNDQ2IDk4LjY1NTIgMTMxLjgxMyA5Mi45MiAxMjMuNDcxIDc4LjQ3MTdDMTE0LjM3NCA2Mi43MTU2IDExOS43NzMgNDIuNTY4NSAxMzUuNTI5IDMzLjQ3MTdaTTE3Mi42OTggNTAuMDUxOEMxNjYuMDk4IDM4LjYyMDkgMTUxLjQ4MSAzNC43MDQxIDE0MC4wNSA0MS4zMDM3QzEyOC42MiA0Ny45MDM1IDEyNC43MDMgNjIuNTIwNCAxMzEuMzAyIDczLjk1MTJDMTM3LjkwMiA4NS4zODE3IDE1Mi41MTkgODkuMjk3NyAxNjMuOTUgODIuNjk4MkMxNzUuMzggNzYuMDk4NyAxNzkuMjk3IDYxLjQ4MjYgMTcyLjY5OCA1MC4wNTE4WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUzXCIgY3k9XCI1Ny4wMDA3XCIgcj1cIjIzLjg5OTRcIiB0cmFuc2Zvcm09XCJyb3RhdGUoLTMwIDE1MyA1Ny4wMDA3KVwiIGZpbGw9XCIjOTlEQUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hc2sgaWQ9XCJwYXRoLTE2LWluc2lkZS0yXzQxOV8yODg4OFwiIGZpbGw9XCJ3aGl0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1My4zODQgNDAuOTk1MkMxNTMuNDM1IDM5LjY5OTcgMTUyLjQyMiAzOC41OTIzIDE1MS4xMzEgMzguNzA5QzE0OC44NTcgMzguOTE0NiAxNDYuNjM1IDM5LjU0ODYgMTQ0LjU4NSA0MC41ODQ5QzE0MS44MzQgNDEuOTc1NSAxMzkuNDgzIDQ0LjA0NDUgMTM3Ljc1NSA0Ni41OTY1QzEzNi4wMjYgNDkuMTQ4NSAxMzQuOTc2IDUyLjA5OTEgMTM0LjcwNSA1NS4xNjk2QzEzNC41MDMgNTcuNDU3OCAxMzQuNzM5IDU5Ljc1NjMgMTM1LjM5MSA2MS45NDQyQzEzNS43NjEgNjMuMTg2NyAxMzcuMTY1IDYzLjcxNjQgMTM4LjM1IDYzLjE4ODZDMTM5LjUzNCA2Mi42NjA3IDE0MC4wNDQgNjEuMjc0MSAxMzkuNzMgNjAuMDE2QzEzOS4zNyA1OC41NzMgMTM5LjI1MSA1Ny4wNzQ4IDEzOS4zODIgNTUuNTgyNUMxMzkuNTgzIDUzLjMwNzMgMTQwLjM2MSA1MS4xMjA5IDE0MS42NDIgNDkuMjI5OUMxNDIuOTIzIDQ3LjMzODkgMTQ0LjY2NSA0NS44MDU4IDE0Ni43MDMgNDQuNzc1NEMxNDguMDQgNDQuMDk5NSAxNDkuNDc2IDQzLjY1NDYgMTUwLjk1IDQzLjQ1MzhDMTUyLjIzNCA0My4yNzg3IDE1My4zMzMgNDIuMjkwOCAxNTMuMzg0IDQwLjk5NTJaXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNTMuMzg0IDQwLjk5NTJDMTUzLjQzNSAzOS42OTk3IDE1Mi40MjIgMzguNTkyMyAxNTEuMTMxIDM4LjcwOUMxNDguODU3IDM4LjkxNDYgMTQ2LjYzNSAzOS41NDg2IDE0NC41ODUgNDAuNTg0OUMxNDEuODM0IDQxLjk3NTUgMTM5LjQ4MyA0NC4wNDQ1IDEzNy43NTUgNDYuNTk2NUMxMzYuMDI2IDQ5LjE0ODUgMTM0Ljk3NiA1Mi4wOTkxIDEzNC43MDUgNTUuMTY5NkMxMzQuNTAzIDU3LjQ1NzggMTM0LjczOSA1OS43NTYzIDEzNS4zOTEgNjEuOTQ0MkMxMzUuNzYxIDYzLjE4NjcgMTM3LjE2NSA2My43MTY0IDEzOC4zNSA2My4xODg2QzEzOS41MzQgNjIuNjYwNyAxNDAuMDQ0IDYxLjI3NDEgMTM5LjczIDYwLjAxNkMxMzkuMzcgNTguNTczIDEzOS4yNTEgNTcuMDc0OCAxMzkuMzgyIDU1LjU4MjVDMTM5LjU4MyA1My4zMDczIDE0MC4zNjEgNTEuMTIwOSAxNDEuNjQyIDQ5LjIyOTlDMTQyLjkyMyA0Ny4zMzg5IDE0NC42NjUgNDUuODA1OCAxNDYuNzAzIDQ0Ljc3NTRDMTQ4LjA0IDQ0LjA5OTUgMTQ5LjQ3NiA0My42NTQ2IDE1MC45NSA0My40NTM4QzE1Mi4yMzQgNDMuMjc4NyAxNTMuMzMzIDQyLjI5MDggMTUzLjM4NCA0MC45OTUyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjZcIiBtYXNrPVwidXJsKCNwYXRoLTE2LWluc2lkZS0yXzQxOV8yODg4OClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMzYuNTI5IDI4LjQ3MTdDMTUyLjI4NSAxOS4zNzQ5IDE3Mi40MzIgMjQuNzczMiAxODEuNTI5IDQwLjUyOTNDMTg5LjU2IDU0LjQzOTggMTg2LjI5MSA3MS43NzA3IDE3NC41NzMgODEuOTAwNEwxOTQuNDU3IDExNi4zMzlDMTk1LjkzMSAxMTguODk0IDE5NS4wNTUgMTIyLjE2MSAxOTIuNSAxMjMuNjM2QzE4OS45NDUgMTI1LjExMSAxODYuNjc5IDEyNC4yMzYgMTg1LjIwNCAxMjEuNjgxTDE2NS40NjUgODcuNDkzMkMxNTAuNDQ2IDkzLjY1NTIgMTMyLjgxMyA4Ny45MiAxMjQuNDcxIDczLjQ3MTdDMTE1LjM3NCA1Ny43MTU2IDEyMC43NzMgMzcuNTY4NSAxMzYuNTI5IDI4LjQ3MTdaTTE3My42OTggNDUuMDUxOEMxNjcuMDk4IDMzLjYyMDkgMTUyLjQ4MSAyOS43MDQxIDE0MS4wNSAzNi4zMDM3QzEyOS42MiA0Mi45MDM1IDEyNS43MDMgNTcuNTIwNCAxMzIuMzAyIDY4Ljk1MTJDMTM4LjkwMiA4MC4zODE3IDE1My41MTkgODQuMjk3NyAxNjQuOTUgNzcuNjk4MkMxNzYuMzggNzEuMDk4NyAxODAuMjk3IDU2LjQ4MjYgMTczLjY5OCA0NS4wNTE4WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwQTNGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIFBsYW5vZ3JhbSBZZXQgdG8gUHVibGlzaFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG93ZXJUZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9tYW5hZ2UvcGxhbm9ncmFtL21hbmFnZS1wbGFub2dyYW0/cGxhbm9JZD17e3BsYW5vQnJpZWZEZXRhaWxzLnBsYW5vSWR9fSZmbG9vcklkPXt7cGxhbm9CcmllZkRldGFpbHMuZmxvb3JJZH19XCI+e3tzZWxlY3RlZFN0b3JlTmFtZT8uc3RvcmVOYW1lfX08L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgaXMgc3RpbGwgdW5kZXIgdmVyaWZpY2F0aW9uXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlclNrZWxldG9uPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbS0wIGctMCBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lciB3LTEwMCBwLTQgcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIG10LTAgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI3NrZWxldG9uTG9hZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBvdmVyZmxvdy1oaWRkZW4gbS0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyIHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXIgcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lciByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyIHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvc2VjdGlvbj4iXX0=
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm8tZGV0YWlscy1wYXJlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm9ncmFtL3BsYW5vLWRldGFpbHMtcGFyZW50L3BsYW5vLWRldGFpbHMtcGFyZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vZ3JhbS9wbGFuby1kZXRhaWxzLXBhcmVudC9wbGFuby1kZXRhaWxzLXBhcmVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLGNBQWMsRUFDZCxhQUFhLEVBQ2IsT0FBTyxFQUNQLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7OztBQVdkLE1BQU0sT0FBTywyQkFBMkI7SUFvQzVCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXhDVixRQUFRLENBQVM7SUFFakIsU0FBUyxDQUFNO0lBQ2YsU0FBUyxDQUFNO0lBRWYsZUFBZSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBUztJQUVmLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFDOUIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDakIsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFaEQsaUJBQWlCLEdBQXNCO1FBQ3JDLE9BQU8sRUFBRSxFQUFFO1FB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QztZQUNqQixZQUFZLEVBQUUsQ0FBQztZQUNmLFNBQVMsRUFBQyxFQUFFO1NBQ2IsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7d0dBL1hVLDJCQUEyQjs0RkFBM0IsMkJBQTJCLGdFQ3JCeEMscWh6QkFtU1U7OzRGRDlRRywyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7XHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIGZpbHRlcixcclxuICBmaXJzdFZhbHVlRnJvbSxcclxuICBsYXN0VmFsdWVGcm9tLFxyXG4gIFN1YmplY3QsXHJcbiAgdGFrZVVudGlsLFxyXG59IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFN0b3JlQnVpbGRlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvc3RvcmUtYnVpbGRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSwgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItcGxhbm8tZGV0YWlscy1wYXJlbnRcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3BsYW5vLWRldGFpbHMtcGFyZW50LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9wbGFuby1kZXRhaWxzLXBhcmVudC5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGxhbm9EZXRhaWxzUGFyZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcblxyXG4gIHBsYW5vRGF0YTogYW55O1xyXG4gIGZsb29yRGF0YTogYW55O1xyXG5cclxuICBzZWxlY3RlZEZsb29ySWQgPSBuZXcgRm9ybUNvbnRyb2woXCJcIik7XHJcbiAgY2RuVXJsOiBzdHJpbmc7XHJcblxyXG4gIGlzUGFnZUxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGlzUmVMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNSb2xsb3V0UGVuZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBwbGFub0JyaWVmRGV0YWlsczogUGxhbm9CcmllZkRldGFpbHMgPSB7XHJcbiAgICBwbGFub0lkOiBcIlwiLFxyXG4gICAgZmxvb3JJZDogXCJcIixcclxuICAgIHRvdGFsRml4dHVyZXM6IDAsXHJcbiAgICBmbG9vckxhc3RVcGRhdGVkOiBcIlwiLFxyXG4gICAgcGxhbm9TdGF0dXM6IFwiXCIsXHJcbiAgICBtZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlOiAwLFxyXG4gICAgbGFzdE1lcmNoQ29tcGxpYW5jZVBlcmNlbnRhZ2U6IDAsXHJcbiAgICBsYXN0TWVyY2hDb21wbGlhbmNlQ2hlY2s6IG51bGwsXHJcbiAgICBtZXJjaFN0YXR1czogbnVsbCxcclxuICAgIG1pc3NlZENvdW50OiAwLFxyXG4gICAgbWlzcGxhY2VkQ291bnQ6IDAsXHJcbiAgICBwcm9kdWN0Q291bnQ6IDAsXHJcbiAgICBzdG9yZU5hbWU6JydcclxuICB9O1xyXG5cclxuICBzZWxlY3RlZFRhYjogVGFiVHlwZSA9IFwib3ZlcnZpZXdcIjtcclxuICBzdG9yZUxpc3Q6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkU3RvcmVOYW1lOiBhbnk7XHJcbiAgaXNTaG93Q29tcGxpYW5jZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogU3RvcmVCdWlsZGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgIGlmIChlKSB0aGlzLmNkblVybCA9IGUucGxhbm9ncmFtQ0ROO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCAvLyBTdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgb24gY29tcG9uZW50IGRlc3Ryb3kuXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksIC8vIFRvIGF2b2lkIGltbWVkaWF0ZSBmcmVxdWVudCBjYWxscy5cclxuICAgICAgICBmaWx0ZXIoKGRhdGEpID0+ICEhZGF0YSksIC8vIEZpbHRlcmluZyBudWxsL3VuZGVmaW5lZC5cclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCAvLyBFbWl0dGluZyBvbmx5IGRpZmZlcmVudCB2YWx1ZXMuIChJZ25vcmVzIHNhbWUgY2xpZW50SWQpLlxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IGFzeW5jIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50SWQgPSBkYXRhLmNsaWVudDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIGFzIHN0cmluZyxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5jbGllbnRJZCA9IGRhdGE/LmNsaWVudDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGF3YWl0IHRoaXMuZ2V0Vm1zTGlzdCgpO1xyXG4gICAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcclxuICAgICAgICAgIGlmIChwYXJhbXM/LnRhYikge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gcGFyYW1zPy50YWI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocGFyYW1zPy5wbGFub0lkICYmIHBhcmFtcy5mbG9vcklkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMucGxhbm9JZCA9IHBhcmFtcy5wbGFub0lkO1xyXG4gICAgICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmZsb29ySWQgPSBwYXJhbXMuZmxvb3JJZDtcclxuICAgICAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5zdG9yZU5hbWUgPSBwYXJhbXMuc3RvcmVOYW1lO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm9uQ2xpY2tSZWxvYWQoKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRTdG9yZUZpeHR1cmVzKHBhcmFtcy5wbGFub0lkKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRTdG9yZUxpc3QocGFyYW1zLnBsYW5vSWQpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmxvb3JJZC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChpZCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmxvb3JEYXRhID0gbnVsbDtcclxuICAgICAgICAgICAgICB0aGlzLmZsb29yRGF0YSA9IHN0cnVjdHVyZWRDbG9uZShcclxuICAgICAgICAgICAgICAgIHRoaXMucGxhbm9EYXRhPy5mbG9vcnM/LmZpbmQoKGZsb29yOiBhbnkpID0+IGZsb29yLl9pZCA9PT0gaWQpLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgdGhpcy5mbG9vckRhdGEuc3RvcmVOYW1lID0gdGhpcy5wbGFub0RhdGEuc3RvcmVOYW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMuZmxvb3JEYXRhLmZsb29yQ2hhbmdlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmZsb29yTGFzdFVwZGF0ZWQgPSB0aGlzLmZsb29yRGF0YS5jcmVhdGVkQXQgPz8gdGhpcy5mbG9vckRhdGEubGFzdFVwZGF0ZTtcclxuICAgICAgICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmZsb29ySWQgPSB0aGlzLmZsb29yRGF0YS5faWQ7XHJcbiAgICAgICAgICAgICAgY29uc3QgbmV3UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcclxuICAgICAgICAgICAgICBuZXdQYXJhbXMuc2V0KFwicGxhbm9JZFwiLCB0aGlzLmZsb29yRGF0YS5wbGFub0lkKTtcclxuICAgICAgICAgICAgICBuZXdQYXJhbXMuc2V0KFwiZmxvb3JJZFwiLCB0aGlzLmZsb29yRGF0YS5faWQpO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxcclxuICAgICAgICAgICAgICAgIG5ld1BhcmFtcy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZsb29ySWQuc2V0VmFsdWUodGhpcy5mbG9vckRhdGEuX2lkLCB7XHJcbiAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmdldExheW91dFJvbGxvdXRTdGF0dXMoKTtcclxuICAgICAgICAgICAgICB0aGlzLmdldFN0b3JlQ29tcGxpYW5jZURldGFpbHMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlRGF0YSgpIHtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUodGhpcy5wbGFub0RhdGE/LnN0b3JlTmFtZSk7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiBcIlBsYW5vZ3JhbVwiLFxyXG4gICAgICAgIHBhdGg6IFwiL21hbmFnZS9wbGFub2dyYW0vc3RvcmUtcGxhbm9ncmFtc1wiLFxyXG4gICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgICAgICBpc1NlcGFyYXRvcjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJcIixcclxuICAgICAgICBwYXRoOiBcIlwiLFxyXG4gICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgICAgICBpc1NlcGFyYXRvcjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0U3RvcmVGaXh0dXJlcyhzdG9yZUlkPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlzUGFnZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIHBsYW5vSWQ6IHRoaXMucGxhbm9CcmllZkRldGFpbHMucGxhbm9JZCxcclxuICAgICAgZmxvb3JJZDogdGhpcy5wbGFub0JyaWVmRGV0YWlscy5mbG9vcklkLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgIH07XHJcbiAgICB0aGlzLmFwaVNlcnZpY2VcclxuICAgICAgLmdldFN0b3JlUGxhbm8oZGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiBhc3luYyAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmICghcmVzPy5kYXRhPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5pc1BhZ2VMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMucGxhbm9EYXRhID0gc3RydWN0dXJlZENsb25lKHJlcy5kYXRhWzBdKTtcclxuICAgICAgICAgIHRoaXMuaXNTaG93Q29tcGxpYW5jZSA9IHRoaXMucGxhbm9EYXRhLnN0b3JlSWQgPT09IFwiMTEtMjc5M1wiO1xyXG4gICAgICAgICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmZsb29ySWQpIHtcclxuICAgICAgICAgICAgdGhpcy5mbG9vckRhdGEgPSBzdHJ1Y3R1cmVkQ2xvbmUoXHJcbiAgICAgICAgICAgICAgcmVzLmRhdGFbMF0uZmxvb3JzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAoZmxvb3I6IGFueSkgPT4gZmxvb3I/Ll9pZCA9PT0gdGhpcy5wbGFub0JyaWVmRGV0YWlscy5mbG9vcklkLFxyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZsb29yRGF0YSA9IHN0cnVjdHVyZWRDbG9uZShyZXMuZGF0YVswXS5mbG9vcnNbMF0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuZmxvb3JEYXRhLnN0b3JlTmFtZSA9IHRoaXMucGxhbm9EYXRhLnN0b3JlTmFtZTtcclxuICAgICAgICAgIHRoaXMuZmxvb3JEYXRhLnN0b3JlSWQgPSB0aGlzLnBsYW5vRGF0YS5zdG9yZUlkO1xyXG4gICAgICAgICAgLy8gdGhpcy5mbG9vckRhdGEucmV2aXNpb25JZCA9IHRoaXMucGxhbm9EYXRhLnJldmlzaW9uSWQ7XHJcbiAgICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmZsb29yTGFzdFVwZGF0ZWQgPSB0aGlzLmZsb29yRGF0YS5jcmVhdGVkQXQgPz8gdGhpcy5mbG9vckRhdGEubGFzdFVwZGF0ZTtcclxuICAgICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMudG90YWxGaXh0dXJlcyA9IHRoaXMuZ2V0QWxsRml4dHVyZXMoKS5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEZsb29ySWQuc2V0VmFsdWUodGhpcy5mbG9vckRhdGEuX2lkLCB7XHJcbiAgICAgICAgICAgIGVtaXRFdmVudDogZmFsc2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuZ2V0TGF5b3V0Um9sbG91dFN0YXR1cygpO1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5nZXRTdG9yZUNvbXBsaWFuY2VEZXRhaWxzKCk7XHJcblxyXG4gICAgICAgICAgdGhpcy5pc1BhZ2VMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzUGFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIGFzeW5jIGdldFZtc0xpc3QoKSB7XHJcbiAgLy8gICB0cnkge1xyXG4gIC8vICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IGxhc3RWYWx1ZUZyb20oXHJcbiAgLy8gICAgICAgdGhpcy5hcGlTZXJ2aWNlLmdldFZNTmFtZUxpc3QodGhpcy5jbGllbnRJZCksXHJcbiAgLy8gICAgICk7XHJcbiAgLy8gICAgIGlmIChyZXM/LnN0YXR1cyA9PT0gXCJzdWNjZXNzXCIpIHtcclxuICAvLyAgICAgICB0aGlzLnZtTGlzdCA9IHJlcz8uZGF0YT8ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAvLyAgICAgICAgIHJldHVybiB7XHJcbiAgLy8gICAgICAgICAgIGlkOiBpdGVtLl9pZCxcclxuICAvLyAgICAgICAgICAgbmFtZTogaXRlbS52bU5hbWUsXHJcbiAgLy8gICAgICAgICAgIGRpc3BsYXlOYW1lOiBpdGVtLnZtTmFtZSxcclxuICAvLyAgICAgICAgICAgd2lkdGg6IGl0ZW0udm1XaWR0aC52YWx1ZSxcclxuICAvLyAgICAgICAgICAgaGVpZ2h0OiBpdGVtLnZtSGVpZ2h0LnZhbHVlLFxyXG4gIC8vICAgICAgICAgICB0eXBlOiBpdGVtLnZtVHlwZSxcclxuICAvLyAgICAgICAgICAgLi4uKGl0ZW0udm1JbWFnZVVybFxyXG4gIC8vICAgICAgICAgICAgID8geyBpbWdVcmw6IGAke3RoaXMuY2RuVXJsfSR7aXRlbS52bUltYWdlVXJsfWAgfVxyXG4gIC8vICAgICAgICAgICAgIDoge30pLFxyXG4gIC8vICAgICAgICAgfTtcclxuICAvLyAgICAgICB9KTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAvLyAgICAgY29uc29sZS5sb2coXCJAQCB+IGdldFZtc0xpc3QgW0VSUl06XCIsIGVycm9yKTtcclxuICAvLyAgIH0gZmluYWxseSB7XHJcbiAgLy8gICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgZ2V0TGF5b3V0Um9sbG91dFN0YXR1cygpIHtcclxuICAgIHRoaXMuYXBpU2VydmljZVxyXG4gICAgICAuZ2V0Um9sbG91dFRhc2tJbmZvKHtcclxuICAgICAgICBwbGFub0lkOiB0aGlzLmZsb29yRGF0YS5wbGFub0lkLFxyXG4gICAgICAgIGZsb29ySWQ6IHRoaXMuZmxvb3JEYXRhLl9pZCxcclxuICAgICAgfSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICBjb25zdCB0YXNrc0luZm8gPSByZXM/LmRhdGE/LnRhc2tEZXRhaWxzO1xyXG4gICAgICAgICAgICBpZiAodGFza3NJbmZvKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc1JvbGxvdXRQZW5kaW5nID0gdGFza3NJbmZvLnNvbWUoXHJcbiAgICAgICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5zdGF0dXMgPT09IFwib3BlblwiIHx8IGVsZS5zdGF0dXMgPT09IFwicGVuZGluZ1wiLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc1JvbGxvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiQEAgfiBnZXRMYXlvdXRSb2xsb3V0U3RhdHVzIFtFUlJdOlwiLCBlcnIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0U3RvcmVDb21wbGlhbmNlRGV0YWlscygpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgcGxhbm9JZDogdGhpcy5mbG9vckRhdGEucGxhbm9JZCxcclxuICAgICAgICBmbG9vcklkOiB0aGlzLmZsb29yRGF0YS5faWQsXHJcbiAgICAgICAgc3RvcmVOYW1lOiB0aGlzLmZsb29yRGF0YS5zdG9yZU5hbWUsXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXHJcbiAgICAgICAgdGhpcy5hcGlTZXJ2aWNlLmdldFBsYW5vZ3JhbUNvbXBsaWFuY2VEZXRhaWxzKHBheWxvYWQpLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKHJlcz8uY29kZSA9PSAyMDAgJiYgcmVzPy5zdGF0dXMgPT0gXCJzdWNjZXNzXCIpIHtcclxuICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmxhc3RNZXJjaENvbXBsaWFuY2VDaGVjayA9IHJlcy5kYXRhLmxhc3RDaGVjaztcclxuICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLm1lcmNoQ29tcGxpYW5jZVBlcmNlbnRhZ2UgPVxyXG4gICAgICAgICAgcmVzLmRhdGEubWVyY2hDb21wbGlhbmNlO1xyXG4gICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMubGFzdE1lcmNoQ29tcGxpYW5jZVBlcmNlbnRhZ2UgPVxyXG4gICAgICAgICAgcmVzLmRhdGEucHJldmlvdXNNZXJjaENvbXBsaWFuY2U7XHJcbiAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5tZXJjaFN0YXR1cyA9IHJlcy5kYXRhLnJhdGVJbmNyZWFzZTtcclxuICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLm1pc3NlZENvdW50ID0gcmVzLmRhdGEubWlzc2VkQ291bnQ7XHJcbiAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5taXNwbGFjZWRDb3VudCA9IHJlcy5kYXRhLm1pc3BsYWNlZENvdW50O1xyXG4gICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMucHJvZHVjdENvdW50ID0gcmVzLmRhdGEucHJvZHVjdENvdW50O1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkBAIH4gZ2V0U3RvcmVDb21wbGlhbmNlRGV0YWlscyBbRVJSXTpcIiwgZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25SZXZpc2lvbkluZm9DaGFuZ2UoaW5mbzogeyB0b3RhbEZpeHR1cmVzOiBudW1iZXI7IGxhc3RVcGRhdGVkOiBzdHJpbmc7IHJlcXVpcmVzUmVmZXRjaD86IGJvb2xlYW4gfSk6IHZvaWQge1xyXG4gICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy50b3RhbEZpeHR1cmVzID0gaW5mby50b3RhbEZpeHR1cmVzO1xyXG4gICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5mbG9vckxhc3RVcGRhdGVkID0gaW5mby5sYXN0VXBkYXRlZDtcclxuICAgIGlmIChpbmZvLnJlcXVpcmVzUmVmZXRjaCkge1xyXG4gICAgICB0aGlzLmdldFN0b3JlRml4dHVyZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVGFiQ2hhbmdlKHRhYjogVGFiVHlwZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRhYjtcclxuICAgIHRoaXMuZmxvb3JEYXRhLmZsb29yQ2hhbmdlID0gZmFsc2U7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKCk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxGaXh0dXJlcygpIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIC4uLnRoaXMuZmxvb3JEYXRhPy5sYXlvdXRQb2x5Z29uLmZsYXRNYXAoKGU6IGFueSkgPT4gZS5maXh0dXJlcyksXHJcbiAgICAgIC4uLnRoaXMuZmxvb3JEYXRhPy5jZW50ZXJGaXh0dXJlLFxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIGNhbGNNZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlKCkge1xyXG4gICAgY29uc3QgYWxsRml4dHVyZXMgPSB0aGlzLmdldEFsbEZpeHR1cmVzKCk7XHJcblxyXG4gICAgY29uc3QgYWxsU2hlbHZlcyA9IGFsbEZpeHR1cmVzLmZsYXRNYXAoKGY6IGFueSkgPT4gZi5zaGVsZkNvbmZpZyk7XHJcblxyXG4gICAgY29uc3QgY29tcGxpYW5jZXMgPSBhbGxTaGVsdmVzLm1hcCgoczogYW55KSA9PiBzPy5jb21wbGlhbmNlKTtcclxuXHJcbiAgICBjb25zdCB0b3RhbCA9IGNvbXBsaWFuY2VzLmxlbmd0aDtcclxuICAgIGNvbnN0IHByb3BlckNvdW50ID0gY29tcGxpYW5jZXMuZmlsdGVyKChwKSA9PiBwID09PSBcInByb3BlclwiKS5sZW5ndGg7XHJcbiAgICBjb25zdCBzdWNjZXNzUGVyY2VudGFnZSA9IChwcm9wZXJDb3VudCAvIHRvdGFsKSAqIDEwMDtcclxuXHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZChzdWNjZXNzUGVyY2VudGFnZSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVRdWVyeVBhcmFtcygpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XHJcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgcGxhbm9JZDogdGhpcy5mbG9vckRhdGEucGxhbm9JZCxcclxuICAgICAgICBmbG9vcklkOiB0aGlzLmZsb29yRGF0YS5faWQsXHJcbiAgICAgICAgdGFiOiB0aGlzLnNlbGVjdGVkVGFiLFxyXG4gICAgICB9LFxyXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCIsXHJcbiAgICAgIHJlcGxhY2VVcmw6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9uQ2xpY2tSZWxvYWQoZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAvLyB0aGlzLmlzUGFnZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgaWYoZXZlbnQpe1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzUmVMb2FkaW5nKSByZXR1cm47XHJcbiAgICB0aGlzLmlzUmVMb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICAgIHN0b3JlczogW3RoaXMuZmxvb3JEYXRhLnN0b3JlTmFtZV0sXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGxhc3RWYWx1ZUZyb20oXHJcbiAgICAgICAgdGhpcy5hcGlTZXJ2aWNlLnVwZGF0ZVByb2R1Y3RNYXBwaW5nKHBheWxvYWQpLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMuZ2V0U3RvcmVGaXh0dXJlcyh0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLnBsYW5vSWQpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkBAIH4gb25DbGlja1JlbG9hZCBbRVJSXTpcIiwgZXJyb3IpO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5pc1JlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlTGlzdChwbGFub0lkPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2VcclxuICAgICAgLmdldFBsYW5vU3RvcmVMaXN0KHRoaXMuY2xpZW50SWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHRoaXMuc3RvcmVMaXN0Lm1hcCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4geyAuLi5lbGUsIHN0b3JlTmFtZTogZWxlLnN0b3JlTmFtZS50b1VwcGVyQ2FzZSgpIH07XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAocGxhbm9JZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yZU5hbWUgPSB0aGlzLnN0b3JlTGlzdC5maW5kKFxyXG4gICAgICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGUucGxhbm9JZC50b1N0cmluZygpID09IHBsYW5vSWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBvblNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucGxhbm9EYXRhID0gbnVsbDtcclxuICAgIHRoaXMuZmxvb3JEYXRhID0gbnVsbDtcclxuICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMgPSB7XHJcbiAgICAgIHBsYW5vSWQ6IFwiXCIsXHJcbiAgICAgIGZsb29ySWQ6IFwiXCIsXHJcbiAgICAgIHRvdGFsRml4dHVyZXM6IDAsXHJcbiAgICAgIGZsb29yTGFzdFVwZGF0ZWQ6IFwiXCIsXHJcbiAgICAgIHBsYW5vU3RhdHVzOiBcIlwiLFxyXG4gICAgICBtZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlOiAwLFxyXG4gICAgICBsYXN0TWVyY2hDb21wbGlhbmNlUGVyY2VudGFnZTogMCxcclxuICAgICAgbGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrOiBudWxsLFxyXG4gICAgICBtZXJjaFN0YXR1czogbnVsbCxcclxuICAgICAgbWlzc2VkQ291bnQ6IDAsXHJcbiAgICAgIG1pc3BsYWNlZENvdW50OiAwLFxyXG4gICAgICBwcm9kdWN0Q291bnQ6IDAsXHJcbiAgICAgIHN0b3JlTmFtZTonJ1xyXG4gICAgfTtcclxuICAgIGNvbnN0IG5ld1BhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgICBuZXdQYXJhbXMuc2V0KFwicGxhbm9JZFwiLCBldmVudC5wbGFub0lkKTtcclxuICAgIG5ld1BhcmFtcy5zZXQoXCJmbG9vcklkXCIsIGV2ZW50LmZsb29ySWQpO1xyXG5cclxuICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwgbmV3UGFyYW1zLnRvU3RyaW5nKCkpO1xyXG4gICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5wbGFub0lkID0gZXZlbnQucGxhbm9JZDtcclxuICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMuZmxvb3JJZCA9IGV2ZW50LmZsb29ySWQ7XHJcbiAgICB0aGlzLmlzUm9sbG91dFBlbmRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRTdG9yZU5hbWUgPSBldmVudDtcclxuICAgIHRoaXMuZ2V0U3RvcmVGaXh0dXJlcyhldmVudC5faWQpO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBUYWJUeXBlID0gXCJvdmVydmlld1wiIHwgXCJtZXJjaC1jb21wbGlhbmNlXCIgfCBcImFuYWx5dGljc1wiO1xyXG5cclxuaW50ZXJmYWNlIFBsYW5vQnJpZWZEZXRhaWxzIHtcclxuICBwbGFub0lkOiBzdHJpbmc7XHJcbiAgZmxvb3JJZDogc3RyaW5nO1xyXG4gIHRvdGFsRml4dHVyZXM6IG51bWJlcjtcclxuICBmbG9vckxhc3RVcGRhdGVkOiBzdHJpbmc7XHJcbiAgcGxhbm9TdGF0dXM6IHN0cmluZztcclxuICBtZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlOiBudW1iZXI7XHJcbiAgbGFzdE1lcmNoQ29tcGxpYW5jZVBlcmNlbnRhZ2U6IG51bWJlcjtcclxuICBsYXN0TWVyY2hDb21wbGlhbmNlQ2hlY2s6IHN0cmluZyB8IG51bGw7XHJcbiAgbWVyY2hTdGF0dXM6IGJvb2xlYW4gfCBudWxsO1xyXG4gIG1pc3NlZENvdW50OiBudW1iZXIgfCBudWxsO1xyXG4gIG1pc3BsYWNlZENvdW50OiBudW1iZXIgfCBudWxsO1xyXG4gIHByb2R1Y3RDb3VudDogbnVtYmVyIHwgbnVsbDtcclxuICBzdG9yZU5hbWU6IFN0cmluZyB8IG51bGw7XHJcbn1cclxuIiwiPHNlY3Rpb24gaWQ9XCJwbGFuby1kZXRhaWxzXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXNQYWdlTG9hZGluZ1wiIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtLTBcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclNrZWxldG9uXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2tlbGV0b25Mb2FkZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnZC1ub25lJzogaXNQYWdlTG9hZGluZyB9XCI+XHJcbiAgICAgICAgPGRpdiBpZD1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGlkPVwiaGVhZGVyXCIgbmdiQWNjb3JkaW9uICNhY2NvcmRpb249XCJuZ2JBY2NvcmRpb25cIiBjbGFzcz1cIm15LTRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uSXRlbT1cImRldGFpbHNcIiBbY29sbGFwc2VkXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25IZWFkZXIgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHB4LTYgcHktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC00IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWxlZnQ6NXB4O21hcmdpbi1yaWdodDo1cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBsYW5vRGF0YT8uc3RvcmVOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0ndGl0bGUnPnt7cGxhbm9EYXRhPy5zdG9yZU5hbWV9fSAtIFBsYW5vPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLXNlbGVjdC1wbGFubyAqbmdJZj1cInN0b3JlTGlzdD8ubGVuZ3RoXCIgW2lkRmllbGRdPVwiJ19pZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVzXT1cIltzZWxlY3RlZFN0b3JlTmFtZV1cIiBbaXRlbXNdPVwic3RvcmVMaXN0XCIgW211bHRpXT1mYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoRmllbGQ9XCJzdG9yZU5hbWVcIiAoc2VsZWN0ZWQpPVwib25TZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGliLXNlbGVjdC1wbGFubz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0ICpuZ0lmPVwicGxhbm9EYXRhPy5mbG9vcnM/Lmxlbmd0aFwiIFtmb3JtQ29udHJvbF09XCJzZWxlY3RlZEZsb29ySWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZEZpZWxkXT1cIidfaWQnXCIgW25hbWVGaWVsZF09XCInZmxvb3JOYW1lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwicGxhbm9EYXRhLmZsb29yc1wiPjwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yIGFsaWduLWl0ZW1zLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvbWFuYWdlL3BsYW5vZ3JhbS9tYW5hZ2UtcGxhbm9ncmFtJ11cIiBbcXVlcnlQYXJhbXNdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW5vSWQ6IGZsb29yRGF0YT8ucGxhbm9JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vcklkOiBmbG9vckRhdGE/Ll9pZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ0aXRsZVwiIHN0eWxlPVwiY29sb3I6ICMwMDhlZGY7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQgUGxhbm9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxOVwiIGhlaWdodD1cIjE5XCIgdmlld0JveD1cIjAgMCAxOSAxOVwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjUgMi43Njc3N0gyLjY2NjY3QzIuMjI0NjQgMi43Njc3NyAxLjgwMDcyIDIuOTQzMzYgMS40ODgxNiAzLjI1NTkyQzEuMTc1NTkgMy41Njg0OCAxIDMuOTkyNDEgMSA0LjQzNDQzVjE2LjEwMTFDMSAxNi41NDMxIDEuMTc1NTkgMTYuOTY3MSAxLjQ4ODE2IDE3LjI3OTZDMS44MDA3MiAxNy41OTIyIDIuMjI0NjQgMTcuNzY3OCAyLjY2NjY3IDE3Ljc2NzhIMTQuMzMzM0MxNC43NzU0IDE3Ljc2NzggMTUuMTk5MyAxNy41OTIyIDE1LjUxMTggMTcuMjc5NkMxNS44MjQ0IDE2Ljk2NzEgMTYgMTYuNTQzMSAxNiAxNi4xMDExVjEwLjI2NzhNMTQuNzUgMS41MTc3N0MxNS4wODE1IDEuMTg2MjUgMTUuNTMxMiAxIDE2IDFDMTYuNDY4OCAxIDE2LjkxODUgMS4xODYyNSAxNy4yNSAxLjUxNzc3QzE3LjU4MTUgMS44NDkyOSAxNy43Njc4IDIuMjk4OTMgMTcuNzY3OCAyLjc2Nzc3QzE3Ljc2NzggMy4yMzY2MSAxNy41ODE1IDMuNjg2MjUgMTcuMjUgNC4wMTc3N0w5LjMzMzMzIDExLjkzNDRMNiAxMi43Njc4TDYuODMzMzMgOS40MzQ0M0wxNC43NSAxLjUxNzc3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA4RURGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC00IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JBY2NvcmRpb25CdXR0b24+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZihwbGFub0RhdGEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Cb2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBteC0wIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGZpbHRlci10YWJcIiBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBzZWxlY3RlZFRhYiA9PT0gJ292ZXJ2aWV3JyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25UYWJDaGFuZ2UoJ292ZXJ2aWV3JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+VG90YWwgZml4dHVyZXM8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz57eyBwbGFub0JyaWVmRGV0YWlscy50b3RhbEZpeHR1cmVzIH19PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5MYXN0IHVwZGF0ZWQ6PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBwbGFub0JyaWVmRGV0YWlscy5mbG9vckxhc3RVcGRhdGVkIHwgZGF0ZTpcImQgTU1NIHl5eXksIGhoOm1tIGFcIiB9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzUm9sbG91dFBlbmRpbmdcIiBjbGFzcz1cImluZGljYXRvciByZXZpZXdQZW5kaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb2xsb3V0IHJldmlldyBwZW5kaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoaXNTaG93Q29tcGxpYW5jZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBmaWx0ZXItdGFiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogc2VsZWN0ZWRUYWIgPT09ICdtZXJjaC1jb21wbGlhbmNlJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGFiQ2hhbmdlKCdtZXJjaC1jb21wbGlhbmNlJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibS0wXCI+TWVyY2hhbmRpc2UgY29tcGxpYW5jZTwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2UgaW5hY3RpdmVcIj5NaXNzaW5nOiB7e3BsYW5vQnJpZWZEZXRhaWxzLm1pc3NlZENvdW50IH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2UgaW5hY3RpdmUgXCI+TWlzcGxhY2VkOiB7e3BsYW5vQnJpZWZEZXRhaWxzLm1pc3BsYWNlZENvdW50fX08L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+e3sgcGxhbm9CcmllZkRldGFpbHMubWVyY2hDb21wbGlhbmNlUGVyY2VudGFnZSB9fSU8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYocGxhbm9CcmllZkRldGFpbHMubGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHBsYW5vQnJpZWZEZXRhaWxzLm1lcmNoU3RhdHVzICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYocGxhbm9CcmllZkRldGFpbHMubWVyY2hTdGF0dXMgKXtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxMFwiIHZpZXdCb3g9XCIwIDAgMTYgMTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUuMzMyNyAwLjc0OTk5OUw4Ljk5OTM1IDcuMDgzMzNMNS42NjYwMiAzLjc1TDAuNjY2MDE2IDguNzVNMTUuMzMyNyAwLjc0OTk5OUwxMS4zMzI3IDAuNzQ5OTk5TTE1LjMzMjcgMC43NDk5OTlMMTUuMzMyNyA0Ljc1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAzOTg1NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZXtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxMFwiIHZpZXdCb3g9XCIwIDAgMTYgMTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMC42NjczMiA4Ljc1TDcuMDAwNjUgMi40MTY2N0wxMC4zMzQgNS43NUwxNS4zMzQgMC43NU0wLjY2NzMyIDguNzVMNC42NjczMiA4Ljc1TTAuNjY3MzIgOC43NUwwLjY2NzMyIDQuNzVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjRDkyRDIwXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyd0ZXh0LXN1Y2Nlc3MnOnBsYW5vQnJpZWZEZXRhaWxzLm1lcmNoU3RhdHVzLCd0ZXh0LWRhbmdlcic6IXBsYW5vQnJpZWZEZXRhaWxzLm1lcmNoU3RhdHVzfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcGxhbm9CcmllZkRldGFpbHMubGFzdE1lcmNoQ29tcGxpYW5jZVBlcmNlbnRhZ2UgfX0lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+dnMgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5MYXN0IGNoZWNrOjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBwbGFub0JyaWVmRGV0YWlscy5sYXN0TWVyY2hDb21wbGlhbmNlQ2hlY2sgfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrUmVsb2FkKCRldmVudClcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3JvdGF0ZSc6aXNSZUxvYWRpbmd9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNDc1M18xMTY0MClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy4yNSAzLjAwMDA2VjcuNTAwMDZNMTcuMjUgNy41MDAwNkgxMi43NU0xNy4yNSA3LjUwMDA2TDEzLjc3IDQuMjMwMDZDMTIuOTYzOSAzLjQyMzU5IDExLjk2NjcgMi44MzQ0NiAxMC44NzE0IDIuNTE3NjRDOS43NzYwNyAyLjIwMDgxIDguNjE4MzMgMi4xNjY2MiA3LjUwNjIxIDIuNDE4MjVDNi4zOTQxIDIuNjY5ODggNS4zNjM4NSAzLjE5OTEzIDQuNTExNiAzLjk1NjYyQzMuNjU5MzUgNC43MTQxMSAzLjAxMjg4IDUuNjc1MTUgMi42MzI1IDYuNzUwMDZNMC43NSAxNS4wMDAxVjEwLjUwMDFNMC43NSAxMC41MDAxSDUuMjVNMC43NSAxMC41MDAxTDQuMjMgMTMuNzcwMUM1LjAzNjA2IDE0LjU3NjUgNi4wMzMyOCAxNS4xNjU3IDcuMTI4NjEgMTUuNDgyNUM4LjIyMzkzIDE1Ljc5OTMgOS4zODE2NyAxNS44MzM1IDEwLjQ5MzggMTUuNTgxOUMxMS42MDU5IDE1LjMzMDIgMTIuNjM2MSAxNC44MDEgMTMuNDg4NCAxNC4wNDM1QzE0LjM0MDcgMTMuMjg2IDE0Ljk4NzEgMTIuMzI1IDE1LjM2NzUgMTEuMjUwMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF80NzUzXzExNjQwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxhc3QgY2hlY2s6IE5vdCBzY2FubmVkIHlldDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMTggMThcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGlja1JlbG9hZCgkZXZlbnQpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBtcy0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyb3RhdGUnOmlzUmVMb2FkaW5nfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzQ3NTNfMTE2NDApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuMjUgMy4wMDAwNlY3LjUwMDA2TTE3LjI1IDcuNTAwMDZIMTIuNzVNMTcuMjUgNy41MDAwNkwxMy43NyA0LjIzMDA2QzEyLjk2MzkgMy40MjM1OSAxMS45NjY3IDIuODM0NDYgMTAuODcxNCAyLjUxNzY0QzkuNzc2MDcgMi4yMDA4MSA4LjYxODMzIDIuMTY2NjIgNy41MDYyMSAyLjQxODI1QzYuMzk0MSAyLjY2OTg4IDUuMzYzODUgMy4xOTkxMyA0LjUxMTYgMy45NTY2MkMzLjY1OTM1IDQuNzE0MTEgMy4wMTI4OCA1LjY3NTE1IDIuNjMyNSA2Ljc1MDA2TTAuNzUgMTUuMDAwMVYxMC41MDAxTTAuNzUgMTAuNTAwMUg1LjI1TTAuNzUgMTAuNTAwMUw0LjIzIDEzLjc3MDFDNS4wMzYwNiAxNC41NzY1IDYuMDMzMjggMTUuMTY1NyA3LjEyODYxIDE1LjQ4MjVDOC4yMjM5MyAxNS43OTkzIDkuMzgxNjcgMTUuODMzNSAxMC40OTM4IDE1LjU4MTlDMTEuNjA1OSAxNS4zMzAyIDEyLjYzNjEgMTQuODAxIDEzLjQ4ODQgMTQuMDQzNUMxNC4zNDA3IDEzLjI4NiAxNC45ODcxIDEyLjMyNSAxNS4zNjc1IDExLjI1MDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDc1M18xMTY0MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgZmlsdGVyLXRhYlwiIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IHNlbGVjdGVkVGFiID09PSAnYW5hbHl0aWNzJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGFiQ2hhbmdlKCdhbmFseXRpY3MnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+UGxhbm8gQW5hbHl0aWNzPC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgbWItMVwiPjxoMyBjbGFzcz1cIm1lLTJcIj57eyBwbGFub0JyaWVmRGV0YWlscy5wcm9kdWN0Q291bnR9fTwvaDM+PHAgY2xhc3M9XCJ0ZXh0XCI+QWN0aXZlIHByb2R1Y3RzPC9wPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+TGFzdCBDaGVjazo8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYocGxhbm9CcmllZkRldGFpbHMubGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgcGxhbm9CcmllZkRldGFpbHMubGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPk5vdCBzY2FubmVkIHlldDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhaXNQYWdlTG9hZGluZyAmJiBwbGFub0RhdGFcIiBpZD1cImJvZHlcIiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgQGlmKHNlbGVjdGVkVGFiID09PSAnbWVyY2gtY29tcGxpYW5jZScpe1xyXG4gICAgICAgICAgICAgICAgPG1lcmNoLWNvbXBsaWFuY2UgW2Zsb29yRGF0YV09XCJmbG9vckRhdGFcIj48L21lcmNoLWNvbXBsaWFuY2U+XHJcbiAgICAgICAgICAgIH1AZWxzZSBpZihzZWxlY3RlZFRhYiA9PSAnb3ZlcnZpZXcnKSB7XHJcbiAgICAgICAgICAgICAgICA8cGxhbm8tb3ZlcnZpZXcgW2Zsb29yRGF0YV09XCJmbG9vckRhdGFcIiAoY3VycmVudFJldmlzaW9uSW5mbyk9XCJvblJldmlzaW9uSW5mb0NoYW5nZSgkZXZlbnQpXCI+PC9wbGFuby1vdmVydmlldz5cclxuICAgICAgICAgICAgfUBlbHNlIHtcclxuICAgICAgICAgICAgICAgIDxsaWItcGxhbm8tYW5hbHl0aWNzIFtmbG9vckRhdGFdPVwiZmxvb3JEYXRhXCI+PC9saWItcGxhbm8tYW5hbHl0aWNzPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFwbGFub0RhdGFcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6NjB2aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMxNVwiIGhlaWdodD1cIjE1NVwiIHZpZXdCb3g9XCIwIDAgMzE1IDE1NVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEwMy44MDkgNDcuMDE5OEM4OS41NDU4IDQ3LjAyIDc3Ljk4MyA1OC41ODI2IDc3Ljk4MjkgNzIuODQ1OUM3Ny45ODI5IDc4Ljc2MTkgNzMuOTc5OCA4NS41MDYxIDY4LjA2MzggODUuNTA2MUg0NS4yNTgzQzMwLjk5NDggODUuNTA2MSAxOS40MzEyIDk3LjA2ODggMTkuNDMxMiAxMTEuMzMyQzE5LjQzMTIgMTI1LjU5NiAzMC45OTQ4IDEzNy4xNTggNDUuMjU4MyAxMzcuMTU4SDE4My4zNTdDMjAwLjI0NyAxMzcuMTU4IDIxNi4zMiAxMjMuOTkyIDIzMy4yMSAxMjMuOTkySDI5OS4yNDVDMzAzLjk5OSAxMjMuOTkyIDMwNy44NTMgMTIwLjEzOCAzMDcuODUzIDExNS4zODNDMzA3Ljg1MyAxMTAuNjI5IDMwMy45OTkgMTA2Ljc3NSAyOTkuMjQ1IDEwNi43NzVIMjExLjYyNEMyMDkuOTggMTA2Ljc3NSAyMDguNTg4IDEwNS41NTMgMjA4LjEyIDEwMy45NzZDMjA3LjM4MSAxMDEuNDg3IDIwOS4wODIgOTguNjcyMSAyMTEuNjc4IDk4LjY3MjFIMjQxLjkwOUMyNTYuMTcyIDk4LjY3MTkgMjY3LjczNSA4Ny4xMDkzIDI2Ny43MzUgNzIuODQ1OUMyNjcuNzM1IDU4LjU4MjcgMjU2LjE3MiA0Ny4wMiAyNDEuOTA5IDQ3LjAxOThIMTAzLjgwOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNFQUVDRjBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjI0MC42OTRcIiBoZWlnaHQ9XCIxNi45OTU2XCIgcng9XCI4LjQ5NzhcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjQ2LjYwMiA0OC44NTcyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI1LjQyMTQ3XCIgY3k9XCI1LjQyMTQ3XCIgcj1cIjUuNDIxNDdcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgNTYuMjk3OSAxMTMuMjgyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzZCQ0FGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIzLjI1Mjg4XCIgY3k9XCIzLjI1Mjg4XCIgcj1cIjMuMjUyODhcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjQ0Ljk2NSA2OC44MjYyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwQTNGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIzLjI1Mjg4XCIgY3k9XCIzLjI1Mjg4XCIgcj1cIjMuMjUyODhcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjE1LjY4OSAxMy41MjcxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwQTNGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIyLjE2ODU5XCIgY3k9XCIyLjE2ODU5XCIgcj1cIjIuMTY4NTlcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMTA0LjAwNiAxMzguMjIxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwQTNGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2OC41MDFcIiB5PVwiNDQuMTUyM1wiIHdpZHRoPVwiMTY2Ljk5OVwiIGhlaWdodD1cIjk3LjkzNzFcIiByeD1cIjE1LjEwMTVcIiBmaWxsPVwiIzZCQ0FGRlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiM1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPVwicGF0aC04LWluc2lkZS0xXzQxOV8yODg4OFwiIGZpbGw9XCJ3aGl0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkzLjExNzIgMTlDOTQuMDYyNSAxOSA5NC45ODkyIDE5LjA4MjggOTUuODg4NyAxOS4yNDIyVjExNi43ODRDOTQuOTg5MiAxMTYuNjI1IDk0LjA2MjUgMTE2LjU0MiA5My4xMTcyIDExNi41NDJIODIuNzc0NEM3NC4wNjQyIDExNi41NDIgNjcuMDAzMSAxMjMuNjAzIDY3LjAwMjkgMTMyLjMxM1YzNC43NzE1QzY3LjAwMjkgMjYuMDYxMiA3NC4wNjQxIDE5IDgyLjc3NDQgMTlIOTMuMTE3MlpcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkzLjExNzIgMTlDOTQuMDYyNSAxOSA5NC45ODkyIDE5LjA4MjggOTUuODg4NyAxOS4yNDIyVjExNi43ODRDOTQuOTg5MiAxMTYuNjI1IDk0LjA2MjUgMTE2LjU0MiA5My4xMTcyIDExNi41NDJIODIuNzc0NEM3NC4wNjQyIDExNi41NDIgNjcuMDAzMSAxMjMuNjAzIDY3LjAwMjkgMTMyLjMxM1YzNC43NzE1QzY3LjAwMjkgMjYuMDYxMiA3NC4wNjQxIDE5IDgyLjc3NDQgMTlIOTMuMTE3MlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2QkNBRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05My4xMTcyIDE5TDkzLjExNzMgMTZIOTMuMTE3MlYxOVpNOTUuODg4NyAxOS4yNDIySDk4Ljg4ODdWMTYuNzI3MUw5Ni40MTIyIDE2LjI4ODJMOTUuODg4NyAxOS4yNDIyWk05NS44ODg3IDExNi43ODRMOTUuMzY1MSAxMTkuNzM4TDk4Ljg4ODcgMTIwLjM2M1YxMTYuNzg0SDk1Ljg4ODdaTTkzLjExNzIgMTE2LjU0Mkw5My4xMTczIDExMy41NDJIOTMuMTE3MlYxMTYuNTQyWk02Ny4wMDI5IDEzMi4zMTNINjQuMDAyOUw3MC4wMDI5IDEzMi4zMTRMNjcuMDAyOSAxMzIuMzEzWk05My4xMTcyIDE5TDkzLjExNzEgMjJDOTMuODg3MiAyMiA5NC42Mzg3IDIyLjA2NzQgOTUuMzY1MSAyMi4xOTYxTDk1Ljg4ODcgMTkuMjQyMkw5Ni40MTIyIDE2LjI4ODJDOTUuMzM5NiAxNi4wOTgxIDk0LjIzNzcgMTYgOTMuMTE3MyAxNkw5My4xMTcyIDE5Wk05NS44ODg3IDE5LjI0MjJIOTIuODg4N1YxMTYuNzg0SDk1Ljg4ODdIOTguODg4N1YxOS4yNDIySDk1Ljg4ODdaTTk1Ljg4ODcgMTE2Ljc4NEw5Ni40MTIyIDExMy44M0M5NS4zMzk2IDExMy42NCA5NC4yMzc3IDExMy41NDIgOTMuMTE3MyAxMTMuNTQyTDkzLjExNzIgMTE2LjU0Mkw5My4xMTcxIDExOS41NDJDOTMuODg3MiAxMTkuNTQyIDk0LjYzODcgMTE5LjYwOSA5NS4zNjUxIDExOS43MzhMOTUuODg4NyAxMTYuNzg0Wk05My4xMTcyIDExNi41NDJWMTEzLjU0Mkg4Mi43NzQ0VjExNi41NDJWMTE5LjU0Mkg5My4xMTcyVjExNi41NDJaTTgyLjc3NDQgMTE2LjU0MlYxMTMuNTQyQzcyLjQwNzMgMTEzLjU0MiA2NC4wMDMyIDEyMS45NDcgNjQuMDAyOSAxMzIuMzEzTDY3LjAwMjkgMTMyLjMxM0w3MC4wMDI5IDEzMi4zMTRDNzAuMDAzMSAxMjUuMjYgNzUuNzIxMiAxMTkuNTQyIDgyLjc3NDQgMTE5LjU0MlYxMTYuNTQyWk02Ny4wMDI5IDEzMi4zMTNINzAuMDAyOVYzNC43NzE1SDY3LjAwMjlINjQuMDAyOVYxMzIuMzEzSDY3LjAwMjlaTTY3LjAwMjkgMzQuNzcxNUg3MC4wMDI5QzcwLjAwMjkgMjcuNzE4IDc1LjcyMSAyMiA4Mi43NzQ0IDIyVjE5VjE2QzcyLjQwNzIgMTYgNjQuMDAyOSAyNC40MDQzIDY0LjAwMjkgMzQuNzcxNUg2Ny4wMDI5Wk04Mi43NzQ0IDE5VjIySDkzLjExNzJWMTlWMTZIODIuNzc0NFYxOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMwMEEzRkZcIiBtYXNrPVwidXJsKCNwYXRoLTgtaW5zaWRlLTFfNDE5XzI4ODg4KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPVwiNzYuOTYxOVwiIHkxPVwiNDIuNjUyM1wiIHgyPVwiNzYuOTYxOVwiIHkyPVwiODQuNDg4MVwiIHN0cm9rZT1cIiM5OURBRkZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMy45ODQzNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMjE4LjIwNVwiIGN5PVwiNzAuMTc2M1wiIHI9XCIzLjI5NjYzXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjExMS43ODdcIiBjeT1cIjU1LjE2NjNcIiByPVwiMi41MjYzN1wiIGZpbGw9XCIjOTlEQUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjk5LjM4NDVcIiBjeT1cIjEyNC45ODZcIiByPVwiMy40NDUwNVwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzNS41MjkgMzMuNDcxN0MxNTEuMjg1IDI0LjM3NDkgMTcxLjQzMiAyOS43NzMyIDE4MC41MjkgNDUuNTI5M0MxODguNTYgNTkuNDM5OCAxODUuMjkxIDc2Ljc3MDcgMTczLjU3MyA4Ni45MDA0TDE5My40NTcgMTIxLjMzOUMxOTQuOTMxIDEyMy44OTQgMTk0LjA1NSAxMjcuMTYxIDE5MS41IDEyOC42MzZDMTg4Ljk0NSAxMzAuMTExIDE4NS42NzkgMTI5LjIzNiAxODQuMjA0IDEyNi42ODFMMTY0LjQ2NSA5Mi40OTMyQzE0OS40NDYgOTguNjU1MiAxMzEuODEzIDkyLjkyIDEyMy40NzEgNzguNDcxN0MxMTQuMzc0IDYyLjcxNTYgMTE5Ljc3MyA0Mi41Njg1IDEzNS41MjkgMzMuNDcxN1pNMTcyLjY5OCA1MC4wNTE4QzE2Ni4wOTggMzguNjIwOSAxNTEuNDgxIDM0LjcwNDEgMTQwLjA1IDQxLjMwMzdDMTI4LjYyIDQ3LjkwMzUgMTI0LjcwMyA2Mi41MjA0IDEzMS4zMDIgNzMuOTUxMkMxMzcuOTAyIDg1LjM4MTcgMTUyLjUxOSA4OS4yOTc3IDE2My45NSA4Mi42OTgyQzE3NS4zOCA3Ni4wOTg3IDE3OS4yOTcgNjEuNDgyNiAxNzIuNjk4IDUwLjA1MThaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTNcIiBjeT1cIjU3LjAwMDdcIiByPVwiMjMuODk5NFwiIHRyYW5zZm9ybT1cInJvdGF0ZSgtMzAgMTUzIDU3LjAwMDcpXCIgZmlsbD1cIiM5OURBRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWFzayBpZD1cInBhdGgtMTYtaW5zaWRlLTJfNDE5XzI4ODg4XCIgZmlsbD1cIndoaXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUzLjM4NCA0MC45OTUyQzE1My40MzUgMzkuNjk5NyAxNTIuNDIyIDM4LjU5MjMgMTUxLjEzMSAzOC43MDlDMTQ4Ljg1NyAzOC45MTQ2IDE0Ni42MzUgMzkuNTQ4NiAxNDQuNTg1IDQwLjU4NDlDMTQxLjgzNCA0MS45NzU1IDEzOS40ODMgNDQuMDQ0NSAxMzcuNzU1IDQ2LjU5NjVDMTM2LjAyNiA0OS4xNDg1IDEzNC45NzYgNTIuMDk5MSAxMzQuNzA1IDU1LjE2OTZDMTM0LjUwMyA1Ny40NTc4IDEzNC43MzkgNTkuNzU2MyAxMzUuMzkxIDYxLjk0NDJDMTM1Ljc2MSA2My4xODY3IDEzNy4xNjUgNjMuNzE2NCAxMzguMzUgNjMuMTg4NkMxMzkuNTM0IDYyLjY2MDcgMTQwLjA0NCA2MS4yNzQxIDEzOS43MyA2MC4wMTZDMTM5LjM3IDU4LjU3MyAxMzkuMjUxIDU3LjA3NDggMTM5LjM4MiA1NS41ODI1QzEzOS41ODMgNTMuMzA3MyAxNDAuMzYxIDUxLjEyMDkgMTQxLjY0MiA0OS4yMjk5QzE0Mi45MjMgNDcuMzM4OSAxNDQuNjY1IDQ1LjgwNTggMTQ2LjcwMyA0NC43NzU0QzE0OC4wNCA0NC4wOTk1IDE0OS40NzYgNDMuNjU0NiAxNTAuOTUgNDMuNDUzOEMxNTIuMjM0IDQzLjI3ODcgMTUzLjMzMyA0Mi4yOTA4IDE1My4zODQgNDAuOTk1MlpcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1My4zODQgNDAuOTk1MkMxNTMuNDM1IDM5LjY5OTcgMTUyLjQyMiAzOC41OTIzIDE1MS4xMzEgMzguNzA5QzE0OC44NTcgMzguOTE0NiAxNDYuNjM1IDM5LjU0ODYgMTQ0LjU4NSA0MC41ODQ5QzE0MS44MzQgNDEuOTc1NSAxMzkuNDgzIDQ0LjA0NDUgMTM3Ljc1NSA0Ni41OTY1QzEzNi4wMjYgNDkuMTQ4NSAxMzQuOTc2IDUyLjA5OTEgMTM0LjcwNSA1NS4xNjk2QzEzNC41MDMgNTcuNDU3OCAxMzQuNzM5IDU5Ljc1NjMgMTM1LjM5MSA2MS45NDQyQzEzNS43NjEgNjMuMTg2NyAxMzcuMTY1IDYzLjcxNjQgMTM4LjM1IDYzLjE4ODZDMTM5LjUzNCA2Mi42NjA3IDE0MC4wNDQgNjEuMjc0MSAxMzkuNzMgNjAuMDE2QzEzOS4zNyA1OC41NzMgMTM5LjI1MSA1Ny4wNzQ4IDEzOS4zODIgNTUuNTgyNUMxMzkuNTgzIDUzLjMwNzMgMTQwLjM2MSA1MS4xMjA5IDE0MS42NDIgNDkuMjI5OUMxNDIuOTIzIDQ3LjMzODkgMTQ0LjY2NSA0NS44MDU4IDE0Ni43MDMgNDQuNzc1NEMxNDguMDQgNDQuMDk5NSAxNDkuNDc2IDQzLjY1NDYgMTUwLjk1IDQzLjQ1MzhDMTUyLjIzNCA0My4yNzg3IDE1My4zMzMgNDIuMjkwOCAxNTMuMzg0IDQwLjk5NTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiNlwiIG1hc2s9XCJ1cmwoI3BhdGgtMTYtaW5zaWRlLTJfNDE5XzI4ODg4KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzNi41MjkgMjguNDcxN0MxNTIuMjg1IDE5LjM3NDkgMTcyLjQzMiAyNC43NzMyIDE4MS41MjkgNDAuNTI5M0MxODkuNTYgNTQuNDM5OCAxODYuMjkxIDcxLjc3MDcgMTc0LjU3MyA4MS45MDA0TDE5NC40NTcgMTE2LjMzOUMxOTUuOTMxIDExOC44OTQgMTk1LjA1NSAxMjIuMTYxIDE5Mi41IDEyMy42MzZDMTg5Ljk0NSAxMjUuMTExIDE4Ni42NzkgMTI0LjIzNiAxODUuMjA0IDEyMS42ODFMMTY1LjQ2NSA4Ny40OTMyQzE1MC40NDYgOTMuNjU1MiAxMzIuODEzIDg3LjkyIDEyNC40NzEgNzMuNDcxN0MxMTUuMzc0IDU3LjcxNTYgMTIwLjc3MyAzNy41Njg1IDEzNi41MjkgMjguNDcxN1pNMTczLjY5OCA0NS4wNTE4QzE2Ny4wOTggMzMuNjIwOSAxNTIuNDgxIDI5LjcwNDEgMTQxLjA1IDM2LjMwMzdDMTI5LjYyIDQyLjkwMzUgMTI1LjcwMyA1Ny41MjA0IDEzMi4zMDIgNjguOTUxMkMxMzguOTAyIDgwLjM4MTcgMTUzLjUxOSA4NC4yOTc3IDE2NC45NSA3Ny42OTgyQzE3Ni4zOCA3MS4wOTg3IDE4MC4yOTcgNTYuNDgyNiAxNzMuNjk4IDQ1LjA1MThaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMDBBM0ZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgUGxhbm9ncmFtIFlldCB0byBQdWJsaXNoXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb3dlclRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL21hbmFnZS9wbGFub2dyYW0vbWFuYWdlLXBsYW5vZ3JhbT9wbGFub0lkPXt7cGxhbm9CcmllZkRldGFpbHMucGxhbm9JZH19JmZsb29ySWQ9e3twbGFub0JyaWVmRGV0YWlscy5mbG9vcklkfX1cIj57e3NlbGVjdGVkU3RvcmVOYW1lPy5zdG9yZU5hbWV9fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICBpcyBzdGlsbCB1bmRlciB2ZXJpZmljYXRpb25cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyU2tlbGV0b24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtLTAgZy0wIGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyIHctMTAwIHAtNCByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgbXQtMCBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b25Mb2FkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG92ZXJmbG93LWhpZGRlbiBtLTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXIgcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lciByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyIHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXIgcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9zZWN0aW9uPiJdfQ==