tango-app-ui-store-builder 1.0.48 → 1.0.49
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.
- package/esm2022/lib/components/collection-update-ai/find-replace-layout/prepare-template/prepare-template.component.mjs +39 -19
- package/esm2022/lib/components/planogram/plano-analytics/date-range-picker/date-range-picker.component.mjs +3 -3
- package/esm2022/lib/components/planogram/plano-analytics/fixture-analytics/fixture-analytics.component.mjs +6 -2
- package/esm2022/lib/components/planogram/plano-analytics/plano-analytics.component.mjs +6 -4
- package/esm2022/lib/components/planogram/plano-details-parent/plano-details-parent.component.mjs +3 -3
- package/fesm2022/tango-app-ui-store-builder.mjs +52 -26
- package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -1
- package/lib/components/planogram/plano-analytics/fixture-analytics/fixture-analytics.component.d.ts +2 -1
- package/lib/components/planogram/plano-analytics/plano-analytics.component.d.ts +1 -0
- package/package.json +1 -1
package/esm2022/lib/components/planogram/plano-details-parent/plano-details-parent.component.mjs
CHANGED
|
@@ -85,8 +85,8 @@ export class PlanoDetailsParentComponent {
|
|
|
85
85
|
this.planoBriefDetails.planoId = params.planoId;
|
|
86
86
|
this.planoBriefDetails.floorId = params.floorId;
|
|
87
87
|
this.planoBriefDetails.storeName = params.storeName;
|
|
88
|
-
this.onClickReload();
|
|
89
|
-
|
|
88
|
+
// this.onClickReload();
|
|
89
|
+
this.getStoreFixtures(params.planoId);
|
|
90
90
|
this.getStoreList(params.planoId);
|
|
91
91
|
this.selectedFloorId.valueChanges.subscribe((id) => {
|
|
92
92
|
this.floorData = null;
|
|
@@ -355,4 +355,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
355
355
|
type: Component,
|
|
356
356
|
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 }}</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 <p>Last check: Not scanned yet</p>\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\" [vmList]=\"vmList\"></plano-overview>\r\n }@else {\r\n <lib-plano-analytics [floorData]=\"floorData\" [vmList]=\"vmList\"></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;width:345px;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 .block{border:1px solid #98a2b3;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 .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.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.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}#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"] }]
|
|
357
357
|
}], ctorParameters: () => [{ type: i1.StoreBuilderService }, { type: i2.GlobalStateService }, { type: i3.ActivatedRoute }, { type: i3.Router }, { type: i4.Location }, { type: i2.PageInfoService }] });
|
|
358
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm8tZGV0YWlscy1wYXJlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm9ncmFtL3BsYW5vLWRldGFpbHMtcGFyZW50L3BsYW5vLWRldGFpbHMtcGFyZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vZ3JhbS9wbGFuby1kZXRhaWxzLXBhcmVudC9wbGFuby1kZXRhaWxzLXBhcmVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLGNBQWMsRUFDZCxhQUFhLEVBQ2IsT0FBTyxFQUNQLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7OztBQVlkLE1BQU0sT0FBTywyQkFBMkI7SUFzQzVCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQTFDVixRQUFRLENBQVM7SUFFakIsU0FBUyxDQUFNO0lBQ2YsU0FBUyxDQUFNO0lBRWYsTUFBTSxHQUFvQixFQUFFLENBQUM7SUFFN0IsZUFBZSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBUztJQUVmLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFDOUIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDakIsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFaEQsaUJBQWlCLEdB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QkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgZmlsdGVyLFxyXG4gIGZpcnN0VmFsdWVGcm9tLFxyXG4gIGxhc3RWYWx1ZUZyb20sXHJcbiAgU3ViamVjdCxcclxuICB0YWtlVW50aWwsXHJcbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgU3RvcmVCdWlsZGVyU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9zdG9yZS1idWlsZGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgVm1MaWJyYXJ5TGlzdCB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL3ZtLWxpYnJhcnkuaW50ZXJmYWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItcGxhbm8tZGV0YWlscy1wYXJlbnRcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3BsYW5vLWRldGFpbHMtcGFyZW50LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9wbGFuby1kZXRhaWxzLXBhcmVudC5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGxhbm9EZXRhaWxzUGFyZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcblxyXG4gIHBsYW5vRGF0YTogYW55O1xyXG4gIGZsb29yRGF0YTogYW55O1xyXG5cclxuICB2bUxpc3Q6IFZtTGlicmFyeUxpc3RbXSA9IFtdO1xyXG5cclxuICBzZWxlY3RlZEZsb29ySWQgPSBuZXcgRm9ybUNvbnRyb2woXCJcIik7XHJcbiAgY2RuVXJsOiBzdHJpbmc7XHJcblxyXG4gIGlzUGFnZUxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGlzUmVMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNSb2xsb3V0UGVuZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBwbGFub0JyaWVmRGV0YWlsczogUGxhbm9CcmllZkRldGFpbHMgPSB7XHJcbiAgICBwbGFub0lkOiBcIlwiLFxyXG4gICAgZmxvb3JJZDogXCJcIixcclxuICAgIHRvdGFsRml4dHVyZXM6IDAsXHJcbiAgICBmbG9vckxhc3RVcGRhdGVkOiBcIlwiLFxyXG4gICAgcGxhbm9TdGF0dXM6IFwiXCIsXHJcbiAgICBtZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlOiAwLFxyXG4gICAgbGFzdE1lcmNoQ29tcGxpYW5jZVBlcmNlbnRhZ2U6IDAsXHJcbiAgICBsYXN0TWVyY2hDb21wbGlhbmNlQ2hlY2s6IG51bGwsXHJcbiAgICBtZXJjaFN0YXR1czogbnVsbCxcclxuICAgIG1pc3NlZENvdW50OiAwLFxyXG4gICAgbWlzcGxhY2VkQ291bnQ6IDAsXHJcbiAgICBwcm9kdWN0Q291bnQ6IDAsXHJcbiAgICBzdG9yZU5hbWU6JydcclxuICB9O1xyXG5cclxuICBzZWxlY3RlZFRhYjogVGFiVHlwZSA9IFwib3ZlcnZpZXdcIjtcclxuICBzdG9yZUxpc3Q6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkU3RvcmVOYW1lOiBhbnk7XHJcbiAgaXNTaG93Q29tcGxpYW5jZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogU3RvcmVCdWlsZGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgIGlmIChlKSB0aGlzLmNkblVybCA9IGUucGxhbm9ncmFtQ0ROO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCAvLyBTdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgb24gY29tcG9uZW50IGRlc3Ryb3kuXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksIC8vIFRvIGF2b2lkIGltbWVkaWF0ZSBmcmVxdWVudCBjYWxscy5cclxuICAgICAgICBmaWx0ZXIoKGRhdGEpID0+ICEhZGF0YSksIC8vIEZpbHRlcmluZyBudWxsL3VuZGVmaW5lZC5cclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCAvLyBFbWl0dGluZyBvbmx5IGRpZmZlcmVudCB2YWx1ZXMuIChJZ25vcmVzIHNhbWUgY2xpZW50SWQpLlxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IGFzeW5jIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50SWQgPSBkYXRhLmNsaWVudDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIGFzIHN0cmluZyxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5jbGllbnRJZCA9IGRhdGE/LmNsaWVudDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0Vm1zTGlzdCgpO1xyXG4gICAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcclxuICAgICAgICAgIGlmIChwYXJhbXM/LnRhYikge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gcGFyYW1zPy50YWI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocGFyYW1zPy5wbGFub0lkICYmIHBhcmFtcy5mbG9vcklkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMucGxhbm9JZCA9IHBhcmFtcy5wbGFub0lkO1xyXG4gICAgICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmZsb29ySWQgPSBwYXJhbXMuZmxvb3JJZDtcclxuICAgICAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5zdG9yZU5hbWUgPSBwYXJhbXMuc3RvcmVOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2xpY2tSZWxvYWQoKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5nZXRTdG9yZUZpeHR1cmVzKHBhcmFtcy5wbGFub0lkKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRTdG9yZUxpc3QocGFyYW1zLnBsYW5vSWQpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmxvb3JJZC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChpZCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmxvb3JEYXRhID0gbnVsbDtcclxuICAgICAgICAgICAgICB0aGlzLmZsb29yRGF0YSA9IHN0cnVjdHVyZWRDbG9uZShcclxuICAgICAgICAgICAgICAgIHRoaXMucGxhbm9EYXRhPy5mbG9vcnM/LmZpbmQoKGZsb29yOiBhbnkpID0+IGZsb29yLl9pZCA9PT0gaWQpLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgdGhpcy5mbG9vckRhdGEuc3RvcmVOYW1lID0gdGhpcy5wbGFub0RhdGEuc3RvcmVOYW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMuZmxvb3JEYXRhLmZsb29yQ2hhbmdlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmZsb29yTGFzdFVwZGF0ZWQgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5mbG9vckRhdGEubGFzdFVwZGF0ZTtcclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgbmV3UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcclxuICAgICAgICAgICAgICBuZXdQYXJhbXMuc2V0KFwicGxhbm9JZFwiLCB0aGlzLmZsb29yRGF0YS5wbGFub0lkKTtcclxuICAgICAgICAgICAgICBuZXdQYXJhbXMuc2V0KFwiZmxvb3JJZFwiLCB0aGlzLmZsb29yRGF0YS5faWQpO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxcclxuICAgICAgICAgICAgICAgIG5ld1BhcmFtcy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZsb29ySWQuc2V0VmFsdWUodGhpcy5mbG9vckRhdGEuX2lkLCB7XHJcbiAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmdldExheW91dFJvbGxvdXRTdGF0dXMoKTtcclxuICAgICAgICAgICAgICB0aGlzLmdldFN0b3JlQ29tcGxpYW5jZURldGFpbHMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlRGF0YSgpIHtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUodGhpcy5wbGFub0RhdGE/LnN0b3JlTmFtZSk7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiBcIlBsYW5vZ3JhbVwiLFxyXG4gICAgICAgIHBhdGg6IFwiL21hbmFnZS9wbGFub2dyYW0vc3RvcmUtcGxhbm9ncmFtc1wiLFxyXG4gICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgICAgICBpc1NlcGFyYXRvcjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJcIixcclxuICAgICAgICBwYXRoOiBcIlwiLFxyXG4gICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgICAgICBpc1NlcGFyYXRvcjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0U3RvcmVGaXh0dXJlcyhzdG9yZUlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgcGxhbm9JZDogdGhpcy5wbGFub0JyaWVmRGV0YWlscy5wbGFub0lkLFxyXG4gICAgICBmbG9vcklkOiB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmZsb29ySWQsXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgfTtcclxuICAgIHRoaXMuYXBpU2VydmljZVxyXG4gICAgICAuZ2V0U3RvcmVQbGFubyhkYXRhKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IGFzeW5jIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFyZXM/LmRhdGE/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmlzUGFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5wbGFub0RhdGEgPSBzdHJ1Y3R1cmVkQ2xvbmUocmVzLmRhdGFbMF0pO1xyXG4gICAgICAgICAgdGhpcy5pc1Nob3dDb21wbGlhbmNlID0gdGhpcy5wbGFub0RhdGEuc3RvcmVJZCA9PT0gXCIxMS0yNzkzXCI7XHJcbiAgICAgICAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMucGxhbm9CcmllZkRldGFpbHMuZmxvb3JJZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZsb29yRGF0YSA9IHN0cnVjdHVyZWRDbG9uZShcclxuICAgICAgICAgICAgICByZXMuZGF0YVswXS5mbG9vcnMuZmluZChcclxuICAgICAgICAgICAgICAgIChmbG9vcjogYW55KSA9PiBmbG9vcj8uX2lkID09PSB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmZsb29ySWQsXHJcbiAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmxvb3JEYXRhID0gc3RydWN0dXJlZENsb25lKHJlcy5kYXRhWzBdLmZsb29yc1swXSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5mbG9vckRhdGEuc3RvcmVOYW1lID0gdGhpcy5wbGFub0RhdGEuc3RvcmVOYW1lO1xyXG4gICAgICAgICAgdGhpcy5mbG9vckRhdGEuc3RvcmVJZCA9IHRoaXMucGxhbm9EYXRhLnN0b3JlSWQ7XHJcbiAgICAgICAgICB0aGlzLmZsb29yRGF0YS5yZXZpc2lvbklkID0gdGhpcy5wbGFub0RhdGEucmV2aXNpb25JZDtcclxuICAgICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMuZmxvb3JMYXN0VXBkYXRlZCA9IHRoaXMuZmxvb3JEYXRhLmxhc3RVcGRhdGU7XHJcbiAgICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLnRvdGFsRml4dHVyZXMgPSB0aGlzLmdldEFsbEZpeHR1cmVzKCkubGVuZ3RoO1xyXG5cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbG9vcklkLnNldFZhbHVlKHRoaXMuZmxvb3JEYXRhLl9pZCwge1xyXG4gICAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmdldExheW91dFJvbGxvdXRTdGF0dXMoKTtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0U3RvcmVDb21wbGlhbmNlRGV0YWlscygpO1xyXG5cclxuICAgICAgICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc1BhZ2VMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRWbXNMaXN0KCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKFxyXG4gICAgICAgIHRoaXMuYXBpU2VydmljZS5nZXRWTU5hbWVMaXN0KHRoaXMuY2xpZW50SWQpLFxyXG4gICAgICApO1xyXG4gICAgICBpZiAocmVzPy5zdGF0dXMgPT09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgdGhpcy52bUxpc3QgPSByZXM/LmRhdGE/Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZDogaXRlbS5faWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGl0ZW0udm1OYW1lLFxyXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogaXRlbS52bU5hbWUsXHJcbiAgICAgICAgICAgIHdpZHRoOiBpdGVtLnZtV2lkdGgudmFsdWUsXHJcbiAgICAgICAgICAgIGhlaWdodDogaXRlbS52bUhlaWdodC52YWx1ZSxcclxuICAgICAgICAgICAgdHlwZTogaXRlbS52bVR5cGUsXHJcbiAgICAgICAgICAgIC4uLihpdGVtLnZtSW1hZ2VVcmxcclxuICAgICAgICAgICAgICA/IHsgaW1nVXJsOiBgJHt0aGlzLmNkblVybH0ke2l0ZW0udm1JbWFnZVVybH1gIH1cclxuICAgICAgICAgICAgICA6IHt9KSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQEAgfiBnZXRWbXNMaXN0IFtFUlJdOlwiLCBlcnJvcik7XHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICB0aGlzLmlzUGFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldExheW91dFJvbGxvdXRTdGF0dXMoKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2VcclxuICAgICAgLmdldFJvbGxvdXRUYXNrSW5mbyh7XHJcbiAgICAgICAgcGxhbm9JZDogdGhpcy5mbG9vckRhdGEucGxhbm9JZCxcclxuICAgICAgICBmbG9vcklkOiB0aGlzLmZsb29yRGF0YS5faWQsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgY29uc3QgdGFza3NJbmZvID0gcmVzPy5kYXRhPy50YXNrRGV0YWlscztcclxuICAgICAgICAgICAgaWYgKHRhc2tzSW5mbykge1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNSb2xsb3V0UGVuZGluZyA9IHRhc2tzSW5mby5zb21lKFxyXG4gICAgICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGUuc3RhdHVzID09PSBcIm9wZW5cIiB8fCBlbGUuc3RhdHVzID09PSBcInBlbmRpbmdcIixcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNSb2xsb3V0UGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkBAIH4gZ2V0TGF5b3V0Um9sbG91dFN0YXR1cyBbRVJSXTpcIiwgZXJyKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFN0b3JlQ29tcGxpYW5jZURldGFpbHMoKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIHBsYW5vSWQ6IHRoaXMuZmxvb3JEYXRhLnBsYW5vSWQsXHJcbiAgICAgICAgZmxvb3JJZDogdGhpcy5mbG9vckRhdGEuX2lkLFxyXG4gICAgICAgIHN0b3JlTmFtZTogdGhpcy5mbG9vckRhdGEuc3RvcmVOYW1lLFxyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG4gICAgICAgIHRoaXMuYXBpU2VydmljZS5nZXRQbGFub2dyYW1Db21wbGlhbmNlRGV0YWlscyhwYXlsb2FkKSxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmIChyZXM/LmNvZGUgPT0gMjAwICYmIHJlcz8uc3RhdHVzID09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5sYXN0TWVyY2hDb21wbGlhbmNlQ2hlY2sgPSByZXMuZGF0YS5sYXN0Q2hlY2s7XHJcbiAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5tZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlID1cclxuICAgICAgICAgIHJlcy5kYXRhLm1lcmNoQ29tcGxpYW5jZTtcclxuICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmxhc3RNZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlID1cclxuICAgICAgICAgIHJlcy5kYXRhLnByZXZpb3VzTWVyY2hDb21wbGlhbmNlO1xyXG4gICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMubWVyY2hTdGF0dXMgPSByZXMuZGF0YS5yYXRlSW5jcmVhc2U7XHJcbiAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5taXNzZWRDb3VudCA9IHJlcy5kYXRhLm1pc3NlZENvdW50O1xyXG4gICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMubWlzcGxhY2VkQ291bnQgPSByZXMuZGF0YS5taXNwbGFjZWRDb3VudDtcclxuICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLnByb2R1Y3RDb3VudCA9IHJlcy5kYXRhLnByb2R1Y3RDb3VudDtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJAQCB+IGdldFN0b3JlQ29tcGxpYW5jZURldGFpbHMgW0VSUl06XCIsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVGFiQ2hhbmdlKHRhYjogVGFiVHlwZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRhYjtcclxuICAgIHRoaXMuZmxvb3JEYXRhLmZsb29yQ2hhbmdlID0gZmFsc2U7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKCk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxGaXh0dXJlcygpIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIC4uLnRoaXMuZmxvb3JEYXRhPy5sYXlvdXRQb2x5Z29uLmZsYXRNYXAoKGU6IGFueSkgPT4gZS5maXh0dXJlcyksXHJcbiAgICAgIC4uLnRoaXMuZmxvb3JEYXRhPy5jZW50ZXJGaXh0dXJlLFxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIGNhbGNNZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlKCkge1xyXG4gICAgY29uc3QgYWxsRml4dHVyZXMgPSB0aGlzLmdldEFsbEZpeHR1cmVzKCk7XHJcblxyXG4gICAgY29uc3QgYWxsU2hlbHZlcyA9IGFsbEZpeHR1cmVzLmZsYXRNYXAoKGY6IGFueSkgPT4gZi5zaGVsZkNvbmZpZyk7XHJcblxyXG4gICAgY29uc3QgY29tcGxpYW5jZXMgPSBhbGxTaGVsdmVzLm1hcCgoczogYW55KSA9PiBzPy5jb21wbGlhbmNlKTtcclxuXHJcbiAgICBjb25zdCB0b3RhbCA9IGNvbXBsaWFuY2VzLmxlbmd0aDtcclxuICAgIGNvbnN0IHByb3BlckNvdW50ID0gY29tcGxpYW5jZXMuZmlsdGVyKChwKSA9PiBwID09PSBcInByb3BlclwiKS5sZW5ndGg7XHJcbiAgICBjb25zdCBzdWNjZXNzUGVyY2VudGFnZSA9IChwcm9wZXJDb3VudCAvIHRvdGFsKSAqIDEwMDtcclxuXHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZChzdWNjZXNzUGVyY2VudGFnZSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVRdWVyeVBhcmFtcygpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XHJcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgcGxhbm9JZDogdGhpcy5mbG9vckRhdGEucGxhbm9JZCxcclxuICAgICAgICBmbG9vcklkOiB0aGlzLmZsb29yRGF0YS5faWQsXHJcbiAgICAgICAgdGFiOiB0aGlzLnNlbGVjdGVkVGFiLFxyXG4gICAgICB9LFxyXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCIsXHJcbiAgICAgIHJlcGxhY2VVcmw6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9uQ2xpY2tSZWxvYWQoZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLmlzUGFnZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgaWYoZXZlbnQpe1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzUmVMb2FkaW5nKSByZXR1cm47XHJcbiAgICB0aGlzLmlzUmVMb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICAgIHN0b3JlczogW3RoaXMucGxhbm9CcmllZkRldGFpbHMuc3RvcmVOYW1lXSxcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgbGFzdFZhbHVlRnJvbShcclxuICAgICAgICB0aGlzLmFwaVNlcnZpY2UudXBkYXRlUHJvZHVjdE1hcHBpbmcocGF5bG9hZCksXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5nZXRTdG9yZUZpeHR1cmVzKHRoaXMucGxhbm9CcmllZkRldGFpbHMucGxhbm9JZCk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQEAgfiBvbkNsaWNrUmVsb2FkIFtFUlJdOlwiLCBlcnJvcik7XHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICB0aGlzLmlzUmVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVMaXN0KHBsYW5vSWQ/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYXBpU2VydmljZVxyXG4gICAgICAuZ2V0UGxhbm9TdG9yZUxpc3QodGhpcy5jbGllbnRJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gdGhpcy5zdG9yZUxpc3QubWFwKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7IC4uLmVsZSwgc3RvcmVOYW1lOiBlbGUuc3RvcmVOYW1lLnRvVXBwZXJDYXNlKCkgfTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmIChwbGFub0lkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlTmFtZSA9IHRoaXMuc3RvcmVMaXN0LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5wbGFub0lkLnRvU3RyaW5nKCkgPT0gcGxhbm9JZC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9uU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5wbGFub0RhdGEgPSBudWxsO1xyXG4gICAgdGhpcy5mbG9vckRhdGEgPSBudWxsO1xyXG4gICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscyA9IHtcclxuICAgICAgcGxhbm9JZDogXCJcIixcclxuICAgICAgZmxvb3JJZDogXCJcIixcclxuICAgICAgdG90YWxGaXh0dXJlczogMCxcclxuICAgICAgZmxvb3JMYXN0VXBkYXRlZDogXCJcIixcclxuICAgICAgcGxhbm9TdGF0dXM6IFwiXCIsXHJcbiAgICAgIG1lcmNoQ29tcGxpYW5jZVBlcmNlbnRhZ2U6IDAsXHJcbiAgICAgIGxhc3RNZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlOiAwLFxyXG4gICAgICBsYXN0TWVyY2hDb21wbGlhbmNlQ2hlY2s6IG51bGwsXHJcbiAgICAgIG1lcmNoU3RhdHVzOiBudWxsLFxyXG4gICAgICBtaXNzZWRDb3VudDogMCxcclxuICAgICAgbWlzcGxhY2VkQ291bnQ6IDAsXHJcbiAgICAgIHByb2R1Y3RDb3VudDogMCxcclxuICAgICAgc3RvcmVOYW1lOicnXHJcbiAgICB9O1xyXG4gICAgY29uc3QgbmV3UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcclxuICAgIG5ld1BhcmFtcy5zZXQoXCJwbGFub0lkXCIsIGV2ZW50LnBsYW5vSWQpO1xyXG4gICAgbmV3UGFyYW1zLnNldChcImZsb29ySWRcIiwgZXZlbnQuZmxvb3JJZCk7XHJcblxyXG4gICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLCBuZXdQYXJhbXMudG9TdHJpbmcoKSk7XHJcbiAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLnBsYW5vSWQgPSBldmVudC5wbGFub0lkO1xyXG4gICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5mbG9vcklkID0gZXZlbnQuZmxvb3JJZDtcclxuICAgIHRoaXMuaXNSb2xsb3V0UGVuZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0b3JlTmFtZSA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXRTdG9yZUZpeHR1cmVzKGV2ZW50Ll9pZCk7XHJcbiAgfVxyXG59XHJcblxyXG50eXBlIFRhYlR5cGUgPSBcIm92ZXJ2aWV3XCIgfCBcIm1lcmNoLWNvbXBsaWFuY2VcIiB8IFwiYW5hbHl0aWNzXCI7XHJcblxyXG5pbnRlcmZhY2UgUGxhbm9CcmllZkRldGFpbHMge1xyXG4gIHBsYW5vSWQ6IHN0cmluZztcclxuICBmbG9vcklkOiBzdHJpbmc7XHJcbiAgdG90YWxGaXh0dXJlczogbnVtYmVyO1xyXG4gIGZsb29yTGFzdFVwZGF0ZWQ6IHN0cmluZztcclxuICBwbGFub1N0YXR1czogc3RyaW5nO1xyXG4gIG1lcmNoQ29tcGxpYW5jZVBlcmNlbnRhZ2U6IG51bWJlcjtcclxuICBsYXN0TWVyY2hDb21wbGlhbmNlUGVyY2VudGFnZTogbnVtYmVyO1xyXG4gIGxhc3RNZXJjaENvbXBsaWFuY2VDaGVjazogc3RyaW5nIHwgbnVsbDtcclxuICBtZXJjaFN0YXR1czogYm9vbGVhbiB8IG51bGw7XHJcbiAgbWlzc2VkQ291bnQ6IG51bWJlciB8IG51bGw7XHJcbiAgbWlzcGxhY2VkQ291bnQ6IG51bWJlciB8IG51bGw7XHJcbiAgcHJvZHVjdENvdW50OiBudW1iZXIgfCBudWxsO1xyXG4gIHN0b3JlTmFtZTogU3RyaW5nIHwgbnVsbDtcclxufVxyXG4iLCI8c2VjdGlvbiBpZD1cInBsYW5vLWRldGFpbHNcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJpc1BhZ2VMb2FkaW5nXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG0tMFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyU2tlbGV0b25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJza2VsZXRvbkxvYWRlclwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJ7ICdkLW5vbmUnOiBpc1BhZ2VMb2FkaW5nIH1cIj5cclxuICAgICAgICA8ZGl2IGlkPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgaWQ9XCJoZWFkZXJcIiBuZ2JBY2NvcmRpb24gI2FjY29yZGlvbj1cIm5nYkFjY29yZGlvblwiIGNsYXNzPVwibXktNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25JdGVtPVwiZGV0YWlsc1wiIFtjb2xsYXBzZWRdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkhlYWRlciBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcHgtNiBweS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6MTBweDttYXJnaW4tbGVmdDo1cHg7bWFyZ2luLXJpZ2h0OjVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGxhbm9EYXRhPy5zdG9yZU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSd0aXRsZSc+e3twbGFub0RhdGE/LnN0b3JlTmFtZX19IC0gUGxhbm88L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItc2VsZWN0LXBsYW5vICpuZ0lmPVwic3RvcmVMaXN0Py5sZW5ndGhcIiBbaWRGaWVsZF09XCInX2lkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRWYWx1ZXNdPVwiW3NlbGVjdGVkU3RvcmVOYW1lXVwiIFtpdGVtc109XCJzdG9yZUxpc3RcIiBbbXVsdGldPWZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hGaWVsZD1cInN0b3JlTmFtZVwiIChzZWxlY3RlZCk9XCJvblNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saWItc2VsZWN0LXBsYW5vPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgKm5nSWY9XCJwbGFub0RhdGE/LmZsb29ycz8ubGVuZ3RoXCIgW2Zvcm1Db250cm9sXT1cInNlbGVjdGVkRmxvb3JJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkRmllbGRdPVwiJ19pZCdcIiBbbmFtZUZpZWxkXT1cIidmbG9vck5hbWUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJwbGFub0RhdGEuZmxvb3JzXCI+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTIgYWxpZ24taXRlbXMtY2VudGVyIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9tYW5hZ2UvcGxhbm9ncmFtL21hbmFnZS1wbGFub2dyYW0nXVwiIFtxdWVyeVBhcmFtc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbm9JZDogZmxvb3JEYXRhPy5wbGFub0lkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb29ySWQ6IGZsb29yRGF0YT8uX2lkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInRpdGxlXCIgc3R5bGU9XCJjb2xvcjogIzAwOGVkZjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdCBQbGFub1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE5XCIgaGVpZ2h0PVwiMTlcIiB2aWV3Qm94PVwiMCAwIDE5IDE5XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguNSAyLjc2Nzc3SDIuNjY2NjdDMi4yMjQ2NCAyLjc2Nzc3IDEuODAwNzIgMi45NDMzNiAxLjQ4ODE2IDMuMjU1OTJDMS4xNzU1OSAzLjU2ODQ4IDEgMy45OTI0MSAxIDQuNDM0NDNWMTYuMTAxMUMxIDE2LjU0MzEgMS4xNzU1OSAxNi45NjcxIDEuNDg4MTYgMTcuMjc5NkMxLjgwMDcyIDE3LjU5MjIgMi4yMjQ2NCAxNy43Njc4IDIuNjY2NjcgMTcuNzY3OEgxNC4zMzMzQzE0Ljc3NTQgMTcuNzY3OCAxNS4xOTkzIDE3LjU5MjIgMTUuNTExOCAxNy4yNzk2QzE1LjgyNDQgMTYuOTY3MSAxNiAxNi41NDMxIDE2IDE2LjEwMTFWMTAuMjY3OE0xNC43NSAxLjUxNzc3QzE1LjA4MTUgMS4xODYyNSAxNS41MzEyIDEgMTYgMUMxNi40Njg4IDEgMTYuOTE4NSAxLjE4NjI1IDE3LjI1IDEuNTE3NzdDMTcuNTgxNSAxLjg0OTI5IDE3Ljc2NzggMi4yOTg5MyAxNy43Njc4IDIuNzY3NzdDMTcuNzY3OCAzLjIzNjYxIDE3LjU4MTUgMy42ODYyNSAxNy4yNSA0LjAxNzc3TDkuMzMzMzMgMTEuOTM0NEw2IDEyLjc2NzhMNi44MzMzMyA5LjQzNDQzTDE0Ljc1IDEuNTE3NzdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDhFREZcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkFjY29yZGlvbkJ1dHRvbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHBsYW5vRGF0YSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG14LTAgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgZmlsdGVyLXRhYlwiIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IHNlbGVjdGVkVGFiID09PSAnb3ZlcnZpZXcnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRhYkNoYW5nZSgnb3ZlcnZpZXcnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT5Ub3RhbCBmaXh0dXJlczwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPnt7IHBsYW5vQnJpZWZEZXRhaWxzLnRvdGFsRml4dHVyZXMgfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxhc3QgdXBkYXRlZDo8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IHBsYW5vQnJpZWZEZXRhaWxzLmZsb29yTGFzdFVwZGF0ZWQgfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1JvbGxvdXRQZW5kaW5nXCIgY2xhc3M9XCJpbmRpY2F0b3IgcmV2aWV3UGVuZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9sbG91dCByZXZpZXcgcGVuZGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGlzU2hvd0NvbXBsaWFuY2Upe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgZmlsdGVyLXRhYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IHNlbGVjdGVkVGFiID09PSAnbWVyY2gtY29tcGxpYW5jZScgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRhYkNoYW5nZSgnbWVyY2gtY29tcGxpYW5jZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTIgYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm0tMFwiPk1lcmNoYW5kaXNlIGNvbXBsaWFuY2U8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlIGluYWN0aXZlXCI+TWlzc2luZzoge3twbGFub0JyaWVmRGV0YWlscy5taXNzZWRDb3VudH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2UgaW5hY3RpdmUgXCI+TWlzcGxhY2VkOiB7e3BsYW5vQnJpZWZEZXRhaWxzLm1pc3BsYWNlZENvdW50fX08L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+e3sgcGxhbm9CcmllZkRldGFpbHMubWVyY2hDb21wbGlhbmNlUGVyY2VudGFnZSB9fSU8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYocGxhbm9CcmllZkRldGFpbHMubGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHBsYW5vQnJpZWZEZXRhaWxzLm1lcmNoU3RhdHVzICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYocGxhbm9CcmllZkRldGFpbHMubWVyY2hTdGF0dXMgKXtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxMFwiIHZpZXdCb3g9XCIwIDAgMTYgMTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUuMzMyNyAwLjc0OTk5OUw4Ljk5OTM1IDcuMDgzMzNMNS42NjYwMiAzLjc1TDAuNjY2MDE2IDguNzVNMTUuMzMyNyAwLjc0OTk5OUwxMS4zMzI3IDAuNzQ5OTk5TTE1LjMzMjcgMC43NDk5OTlMMTUuMzMyNyA0Ljc1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAzOTg1NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZXtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxMFwiIHZpZXdCb3g9XCIwIDAgMTYgMTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMC42NjczMiA4Ljc1TDcuMDAwNjUgMi40MTY2N0wxMC4zMzQgNS43NUwxNS4zMzQgMC43NU0wLjY2NzMyIDguNzVMNC42NjczMiA4Ljc1TTAuNjY3MzIgOC43NUwwLjY2NzMyIDQuNzVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjRDkyRDIwXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyd0ZXh0LXN1Y2Nlc3MnOnBsYW5vQnJpZWZEZXRhaWxzLm1lcmNoU3RhdHVzLCd0ZXh0LWRhbmdlcic6IXBsYW5vQnJpZWZEZXRhaWxzLm1lcmNoU3RhdHVzfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcGxhbm9CcmllZkRldGFpbHMubGFzdE1lcmNoQ29tcGxpYW5jZVBlcmNlbnRhZ2UgfX0lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+dnMgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5MYXN0IGNoZWNrOjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBwbGFub0JyaWVmRGV0YWlscy5sYXN0TWVyY2hDb21wbGlhbmNlQ2hlY2sgfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrUmVsb2FkKCRldmVudClcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3JvdGF0ZSc6aXNSZUxvYWRpbmd9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNDc1M18xMTY0MClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy4yNSAzLjAwMDA2VjcuNTAwMDZNMTcuMjUgNy41MDAwNkgxMi43NU0xNy4yNSA3LjUwMDA2TDEzLjc3IDQuMjMwMDZDMTIuOTYzOSAzLjQyMzU5IDExLjk2NjcgMi44MzQ0NiAxMC44NzE0IDIuNTE3NjRDOS43NzYwNyAyLjIwMDgxIDguNjE4MzMgMi4xNjY2MiA3LjUwNjIxIDIuNDE4MjVDNi4zOTQxIDIuNjY5ODggNS4zNjM4NSAzLjE5OTEzIDQuNTExNiAzLjk1NjYyQzMuNjU5MzUgNC43MTQxMSAzLjAxMjg4IDUuNjc1MTUgMi42MzI1IDYuNzUwMDZNMC43NSAxNS4wMDAxVjEwLjUwMDFNMC43NSAxMC41MDAxSDUuMjVNMC43NSAxMC41MDAxTDQuMjMgMTMuNzcwMUM1LjAzNjA2IDE0LjU3NjUgNi4wMzMyOCAxNS4xNjU3IDcuMTI4NjEgMTUuNDgyNUM4LjIyMzkzIDE1Ljc5OTMgOS4zODE2NyAxNS44MzM1IDEwLjQ5MzggMTUuNTgxOUMxMS42MDU5IDE1LjMzMDIgMTIuNjM2MSAxNC44MDEgMTMuNDg4NCAxNC4wNDM1QzE0LjM0MDcgMTMuMjg2IDE0Ljk4NzEgMTIuMzI1IDE1LjM2NzUgMTEuMjUwMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF80NzUzXzExNjQwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+TGFzdCBjaGVjazogTm90IHNjYW5uZWQgeWV0PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBmaWx0ZXItdGFiXCIgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogc2VsZWN0ZWRUYWIgPT09ICdhbmFseXRpY3MnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25UYWJDaGFuZ2UoJ2FuYWx5dGljcycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT5QbGFubyBBbmFseXRpY3M8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBtYi0xXCI+PGgzIGNsYXNzPVwibWUtMlwiPnt7IHBsYW5vQnJpZWZEZXRhaWxzLnByb2R1Y3RDb3VudH19PC9oMz48cCBjbGFzcz1cInRleHRcIj5BY3RpdmUgcHJvZHVjdHM8L3A+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5MYXN0IENoZWNrOjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihwbGFub0JyaWVmRGV0YWlscy5sYXN0TWVyY2hDb21wbGlhbmNlQ2hlY2spIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBwbGFub0JyaWVmRGV0YWlscy5sYXN0TWVyY2hDb21wbGlhbmNlQ2hlY2t9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+Tm90IHNjYW5uZWQgeWV0PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1BhZ2VMb2FkaW5nICYmIHBsYW5vRGF0YVwiIGlkPVwiYm9keVwiIGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICBAaWYoc2VsZWN0ZWRUYWIgPT09ICdtZXJjaC1jb21wbGlhbmNlJyl7XHJcbiAgICAgICAgICAgICAgICA8bWVyY2gtY29tcGxpYW5jZSBbZmxvb3JEYXRhXT1cImZsb29yRGF0YVwiPjwvbWVyY2gtY29tcGxpYW5jZT5cclxuICAgICAgICAgICAgfUBlbHNlIGlmKHNlbGVjdGVkVGFiID09ICdvdmVydmlldycpIHtcclxuICAgICAgICAgICAgICAgIDxwbGFuby1vdmVydmlldyBbZmxvb3JEYXRhXT1cImZsb29yRGF0YVwiIFt2bUxpc3RdPVwidm1MaXN0XCI+PC9wbGFuby1vdmVydmlldz5cclxuICAgICAgICAgICAgfUBlbHNlIHtcclxuICAgICAgICAgICAgICAgIDxsaWItcGxhbm8tYW5hbHl0aWNzIFtmbG9vckRhdGFdPVwiZmxvb3JEYXRhXCIgW3ZtTGlzdF09XCJ2bUxpc3RcIj48L2xpYi1wbGFuby1hbmFseXRpY3M+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXBsYW5vRGF0YVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cImhlaWdodDo2MHZoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzE1XCIgaGVpZ2h0PVwiMTU1XCIgdmlld0JveD1cIjAgMCAzMTUgMTU1XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAzLjgwOSA0Ny4wMTk4Qzg5LjU0NTggNDcuMDIgNzcuOTgzIDU4LjU4MjYgNzcuOTgyOSA3Mi44NDU5Qzc3Ljk4MjkgNzguNzYxOSA3My45Nzk4IDg1LjUwNjEgNjguMDYzOCA4NS41MDYxSDQ1LjI1ODNDMzAuOTk0OCA4NS41MDYxIDE5LjQzMTIgOTcuMDY4OCAxOS40MzEyIDExMS4zMzJDMTkuNDMxMiAxMjUuNTk2IDMwLjk5NDggMTM3LjE1OCA0NS4yNTgzIDEzNy4xNThIMTgzLjM1N0MyMDAuMjQ3IDEzNy4xNTggMjE2LjMyIDEyMy45OTIgMjMzLjIxIDEyMy45OTJIMjk5LjI0NUMzMDMuOTk5IDEyMy45OTIgMzA3Ljg1MyAxMjAuMTM4IDMwNy44NTMgMTE1LjM4M0MzMDcuODUzIDExMC42MjkgMzAzLjk5OSAxMDYuNzc1IDI5OS4yNDUgMTA2Ljc3NUgyMTEuNjI0QzIwOS45OCAxMDYuNzc1IDIwOC41ODggMTA1LjU1MyAyMDguMTIgMTAzLjk3NkMyMDcuMzgxIDEwMS40ODcgMjA5LjA4MiA5OC42NzIxIDIxMS42NzggOTguNjcyMUgyNDEuOTA5QzI1Ni4xNzIgOTguNjcxOSAyNjcuNzM1IDg3LjEwOTMgMjY3LjczNSA3Mi44NDU5QzI2Ny43MzUgNTguNTgyNyAyNTYuMTcyIDQ3LjAyIDI0MS45MDkgNDcuMDE5OEgxMDMuODA5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjQwLjY5NFwiIGhlaWdodD1cIjE2Ljk5NTZcIiByeD1cIjguNDk3OFwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAyNDYuNjAyIDQ4Ljg1NzIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRUFFQ0YwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjUuNDIxNDdcIiBjeT1cIjUuNDIxNDdcIiByPVwiNS40MjE0N1wiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA1Ni4yOTc5IDExMy4yODIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNkJDQUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjMuMjUyODhcIiBjeT1cIjMuMjUyODhcIiByPVwiMy4yNTI4OFwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAyNDQuOTY1IDY4LjgyNjIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMDBBM0ZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjMuMjUyODhcIiBjeT1cIjMuMjUyODhcIiByPVwiMy4yNTI4OFwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAyMTUuNjg5IDEzLjUyNzEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMDBBM0ZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjIuMTY4NTlcIiBjeT1cIjIuMTY4NTlcIiByPVwiMi4xNjg1OVwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAxMDQuMDA2IDEzOC4yMjEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMDBBM0ZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjY4LjUwMVwiIHk9XCI0NC4xNTIzXCIgd2lkdGg9XCIxNjYuOTk5XCIgaGVpZ2h0PVwiOTcuOTM3MVwiIHJ4PVwiMTUuMTAxNVwiIGZpbGw9XCIjNkJDQUZGXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hc2sgaWQ9XCJwYXRoLTgtaW5zaWRlLTFfNDE5XzI4ODg4XCIgZmlsbD1cIndoaXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOTMuMTE3MiAxOUM5NC4wNjI1IDE5IDk0Ljk4OTIgMTkuMDgyOCA5NS44ODg3IDE5LjI0MjJWMTE2Ljc4NEM5NC45ODkyIDExNi42MjUgOTQuMDYyNSAxMTYuNTQyIDkzLjExNzIgMTE2LjU0Mkg4Mi43NzQ0Qzc0LjA2NDIgMTE2LjU0MiA2Ny4wMDMxIDEyMy42MDMgNjcuMDAyOSAxMzIuMzEzVjM0Ljc3MTVDNjcuMDAyOSAyNi4wNjEyIDc0LjA2NDEgMTkgODIuNzc0NCAxOUg5My4xMTcyWlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOTMuMTE3MiAxOUM5NC4wNjI1IDE5IDk0Ljk4OTIgMTkuMDgyOCA5NS44ODg3IDE5LjI0MjJWMTE2Ljc4NEM5NC45ODkyIDExNi42MjUgOTQuMDYyNSAxMTYuNTQyIDkzLjExNzIgMTE2LjU0Mkg4Mi43NzQ0Qzc0LjA2NDIgMTE2LjU0MiA2Ny4wMDMxIDEyMy42MDMgNjcuMDAyOSAxMzIuMzEzVjM0Ljc3MTVDNjcuMDAyOSAyNi4wNjEyIDc0LjA2NDEgMTkgODIuNzc0NCAxOUg5My4xMTcyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzZCQ0FGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkzLjExNzIgMTlMOTMuMTE3MyAxNkg5My4xMTcyVjE5Wk05NS44ODg3IDE5LjI0MjJIOTguODg4N1YxNi43MjcxTDk2LjQxMjIgMTYuMjg4Mkw5NS44ODg3IDE5LjI0MjJaTTk1Ljg4ODcgMTE2Ljc4NEw5NS4zNjUxIDExOS43MzhMOTguODg4NyAxMjAuMzYzVjExNi43ODRIOTUuODg4N1pNOTMuMTE3MiAxMTYuNTQyTDkzLjExNzMgMTEzLjU0Mkg5My4xMTcyVjExNi41NDJaTTY3LjAwMjkgMTMyLjMxM0g2NC4wMDI5TDcwLjAwMjkgMTMyLjMxNEw2Ny4wMDI5IDEzMi4zMTNaTTkzLjExNzIgMTlMOTMuMTE3MSAyMkM5My44ODcyIDIyIDk0LjYzODcgMjIuMDY3NCA5NS4zNjUxIDIyLjE5NjFMOTUuODg4NyAxOS4yNDIyTDk2LjQxMjIgMTYuMjg4MkM5NS4zMzk2IDE2LjA5ODEgOTQuMjM3NyAxNiA5My4xMTczIDE2TDkzLjExNzIgMTlaTTk1Ljg4ODcgMTkuMjQyMkg5Mi44ODg3VjExNi43ODRIOTUuODg4N0g5OC44ODg3VjE5LjI0MjJIOTUuODg4N1pNOTUuODg4NyAxMTYuNzg0TDk2LjQxMjIgMTEzLjgzQzk1LjMzOTYgMTEzLjY0IDk0LjIzNzcgMTEzLjU0MiA5My4xMTczIDExMy41NDJMOTMuMTE3MiAxMTYuNTQyTDkzLjExNzEgMTE5LjU0MkM5My44ODcyIDExOS41NDIgOTQuNjM4NyAxMTkuNjA5IDk1LjM2NTEgMTE5LjczOEw5NS44ODg3IDExNi43ODRaTTkzLjExNzIgMTE2LjU0MlYxMTMuNTQySDgyLjc3NDRWMTE2LjU0MlYxMTkuNTQySDkzLjExNzJWMTE2LjU0MlpNODIuNzc0NCAxMTYuNTQyVjExMy41NDJDNzIuNDA3MyAxMTMuNTQyIDY0LjAwMzIgMTIxLjk0NyA2NC4wMDI5IDEzMi4zMTNMNjcuMDAyOSAxMzIuMzEzTDcwLjAwMjkgMTMyLjMxNEM3MC4wMDMxIDEyNS4yNiA3NS43MjEyIDExOS41NDIgODIuNzc0NCAxMTkuNTQyVjExNi41NDJaTTY3LjAwMjkgMTMyLjMxM0g3MC4wMDI5VjM0Ljc3MTVINjcuMDAyOUg2NC4wMDI5VjEzMi4zMTNINjcuMDAyOVpNNjcuMDAyOSAzNC43NzE1SDcwLjAwMjlDNzAuMDAyOSAyNy43MTggNzUuNzIxIDIyIDgyLjc3NDQgMjJWMTlWMTZDNzIuNDA3MiAxNiA2NC4wMDI5IDI0LjQwNDMgNjQuMDAyOSAzNC43NzE1SDY3LjAwMjlaTTgyLjc3NDQgMTlWMjJIOTMuMTE3MlYxOVYxNkg4Mi43NzQ0VjE5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwQTNGRlwiIG1hc2s9XCJ1cmwoI3BhdGgtOC1pbnNpZGUtMV80MTlfMjg4ODgpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9XCI3Ni45NjE5XCIgeTE9XCI0Mi42NTIzXCIgeDI9XCI3Ni45NjE5XCIgeTI9XCI4NC40ODgxXCIgc3Ryb2tlPVwiIzk5REFGRlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIzLjk4NDM2XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIyMTguMjA1XCIgY3k9XCI3MC4xNzYzXCIgcj1cIjMuMjk2NjNcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTExLjc4N1wiIGN5PVwiNTUuMTY2M1wiIHI9XCIyLjUyNjM3XCIgZmlsbD1cIiM5OURBRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOTkuMzg0NVwiIGN5PVwiMTI0Ljk4NlwiIHI9XCIzLjQ0NTA1XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTM1LjUyOSAzMy40NzE3QzE1MS4yODUgMjQuMzc0OSAxNzEuNDMyIDI5Ljc3MzIgMTgwLjUyOSA0NS41MjkzQzE4OC41NiA1OS40Mzk4IDE4NS4yOTEgNzYuNzcwNyAxNzMuNTczIDg2LjkwMDRMMTkzLjQ1NyAxMjEuMzM5QzE5NC45MzEgMTIzLjg5NCAxOTQuMDU1IDEyNy4xNjEgMTkxLjUgMTI4LjYzNkMxODguOTQ1IDEzMC4xMTEgMTg1LjY3OSAxMjkuMjM2IDE4NC4yMDQgMTI2LjY4MUwxNjQuNDY1IDkyLjQ5MzJDMTQ5LjQ0NiA5OC42NTUyIDEzMS44MTMgOTIuOTIgMTIzLjQ3MSA3OC40NzE3QzExNC4zNzQgNjIuNzE1NiAxMTkuNzczIDQyLjU2ODUgMTM1LjUyOSAzMy40NzE3Wk0xNzIuNjk4IDUwLjA1MThDMTY2LjA5OCAzOC42MjA5IDE1MS40ODEgMzQuNzA0MSAxNDAuMDUgNDEuMzAzN0MxMjguNjIgNDcuOTAzNSAxMjQuNzAzIDYyLjUyMDQgMTMxLjMwMiA3My45NTEyQzEzNy45MDIgODUuMzgxNyAxNTIuNTE5IDg5LjI5NzcgMTYzLjk1IDgyLjY5ODJDMTc1LjM4IDc2LjA5ODcgMTc5LjI5NyA2MS40ODI2IDE3Mi42OTggNTAuMDUxOFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1M1wiIGN5PVwiNTcuMDAwN1wiIHI9XCIyMy44OTk0XCIgdHJhbnNmb3JtPVwicm90YXRlKC0zMCAxNTMgNTcuMDAwNylcIiBmaWxsPVwiIzk5REFGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPVwicGF0aC0xNi1pbnNpZGUtMl80MTlfMjg4ODhcIiBmaWxsPVwid2hpdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNTMuMzg0IDQwLjk5NTJDMTUzLjQzNSAzOS42OTk3IDE1Mi40MjIgMzguNTkyMyAxNTEuMTMxIDM4LjcwOUMxNDguODU3IDM4LjkxNDYgMTQ2LjYzNSAzOS41NDg2IDE0NC41ODUgNDAuNTg0OUMxNDEuODM0IDQxLjk3NTUgMTM5LjQ4MyA0NC4wNDQ1IDEzNy43NTUgNDYuNTk2NUMxMzYuMDI2IDQ5LjE0ODUgMTM0Ljk3NiA1Mi4wOTkxIDEzNC43MDUgNTUuMTY5NkMxMzQuNTAzIDU3LjQ1NzggMTM0LjczOSA1OS43NTYzIDEzNS4zOTEgNjEuOTQ0MkMxMzUuNzYxIDYzLjE4NjcgMTM3LjE2NSA2My43MTY0IDEzOC4zNSA2My4xODg2QzEzOS41MzQgNjIuNjYwNyAxNDAuMDQ0IDYxLjI3NDEgMTM5LjczIDYwLjAxNkMxMzkuMzcgNTguNTczIDEzOS4yNTEgNTcuMDc0OCAxMzkuMzgyIDU1LjU4MjVDMTM5LjU4MyA1My4zMDczIDE0MC4zNjEgNTEuMTIwOSAxNDEuNjQyIDQ5LjIyOTlDMTQyLjkyMyA0Ny4zMzg5IDE0NC42NjUgNDUuODA1OCAxNDYuNzAzIDQ0Ljc3NTRDMTQ4LjA0IDQ0LjA5OTUgMTQ5LjQ3NiA0My42NTQ2IDE1MC45NSA0My40NTM4QzE1Mi4yMzQgNDMuMjc4NyAxNTMuMzMzIDQyLjI5MDggMTUzLjM4NCA0MC45OTUyWlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUzLjM4NCA0MC45OTUyQzE1My40MzUgMzkuNjk5NyAxNTIuNDIyIDM4LjU5MjMgMTUxLjEzMSAzOC43MDlDMTQ4Ljg1NyAzOC45MTQ2IDE0Ni42MzUgMzkuNTQ4NiAxNDQuNTg1IDQwLjU4NDlDMTQxLjgzNCA0MS45NzU1IDEzOS40ODMgNDQuMDQ0NSAxMzcuNzU1IDQ2LjU5NjVDMTM2LjAyNiA0OS4xNDg1IDEzNC45NzYgNTIuMDk5MSAxMzQuNzA1IDU1LjE2OTZDMTM0LjUwMyA1Ny40NTc4IDEzNC43MzkgNTkuNzU2MyAxMzUuMzkxIDYxLjk0NDJDMTM1Ljc2MSA2My4xODY3IDEzNy4xNjUgNjMuNzE2NCAxMzguMzUgNjMuMTg4NkMxMzkuNTM0IDYyLjY2MDcgMTQwLjA0NCA2MS4yNzQxIDEzOS43MyA2MC4wMTZDMTM5LjM3IDU4LjU3MyAxMzkuMjUxIDU3LjA3NDggMTM5LjM4MiA1NS41ODI1QzEzOS41ODMgNTMuMzA3MyAxNDAuMzYxIDUxLjEyMDkgMTQxLjY0MiA0OS4yMjk5QzE0Mi45MjMgNDcuMzM4OSAxNDQuNjY1IDQ1LjgwNTggMTQ2LjcwMyA0NC43NzU0QzE0OC4wNCA0NC4wOTk1IDE0OS40NzYgNDMuNjU0NiAxNTAuOTUgNDMuNDUzOEMxNTIuMjM0IDQzLjI3ODcgMTUzLjMzMyA0Mi4yOTA4IDE1My4zODQgNDAuOTk1MlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCI2XCIgbWFzaz1cInVybCgjcGF0aC0xNi1pbnNpZGUtMl80MTlfMjg4ODgpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTM2LjUyOSAyOC40NzE3QzE1Mi4yODUgMTkuMzc0OSAxNzIuNDMyIDI0Ljc3MzIgMTgxLjUyOSA0MC41MjkzQzE4OS41NiA1NC40Mzk4IDE4Ni4yOTEgNzEuNzcwNyAxNzQuNTczIDgxLjkwMDRMMTk0LjQ1NyAxMTYuMzM5QzE5NS45MzEgMTE4Ljg5NCAxOTUuMDU1IDEyMi4xNjEgMTkyLjUgMTIzLjYzNkMxODkuOTQ1IDEyNS4xMTEgMTg2LjY3OSAxMjQuMjM2IDE4NS4yMDQgMTIxLjY4MUwxNjUuNDY1IDg3LjQ5MzJDMTUwLjQ0NiA5My42NTUyIDEzMi44MTMgODcuOTIgMTI0LjQ3MSA3My40NzE3QzExNS4zNzQgNTcuNzE1NiAxMjAuNzczIDM3LjU2ODUgMTM2LjUyOSAyOC40NzE3Wk0xNzMuNjk4IDQ1LjA1MThDMTY3LjA5OCAzMy42MjA5IDE1Mi40ODEgMjkuNzA0MSAxNDEuMDUgMzYuMzAzN0MxMjkuNjIgNDIuOTAzNSAxMjUuNzAzIDU3LjUyMDQgMTMyLjMwMiA2OC45NTEyQzEzOC45MDIgODAuMzgxNyAxNTMuNTE5IDg0LjI5NzcgMTY0Ljk1IDc3LjY5ODJDMTc2LjM4IDcxLjA5ODcgMTgwLjI5NyA1Ni40ODI2IDE3My42OTggNDUuMDUxOFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMwMEEzRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICBQbGFub2dyYW0gWWV0IHRvIFB1Ymxpc2hcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvd2VyVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvbWFuYWdlL3BsYW5vZ3JhbS9tYW5hZ2UtcGxhbm9ncmFtP3BsYW5vSWQ9e3twbGFub0JyaWVmRGV0YWlscy5wbGFub0lkfX0mZmxvb3JJZD17e3BsYW5vQnJpZWZEZXRhaWxzLmZsb29ySWR9fVwiPnt7c2VsZWN0ZWRTdG9yZU5hbWU/LnN0b3JlTmFtZX19PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIGlzIHN0aWxsIHVuZGVyIHZlcmlmaWNhdGlvblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXJTa2VsZXRvbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG0tMCBnLTAgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXIgdy0xMDAgcC00IHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBtdC0wIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNza2VsZXRvbkxvYWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuIG0tMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lciByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyIHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXIgcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lciByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L3NlY3Rpb24+Il19
|
|
358
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm8tZGV0YWlscy1wYXJlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm9ncmFtL3BsYW5vLWRldGFpbHMtcGFyZW50L3BsYW5vLWRldGFpbHMtcGFyZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vZ3JhbS9wbGFuby1kZXRhaWxzLXBhcmVudC9wbGFuby1kZXRhaWxzLXBhcmVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLGNBQWMsRUFDZCxhQUFhLEVBQ2IsT0FBTyxFQUNQLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7OztBQVlkLE1BQU0sT0FBTywyQkFBMkI7SUFzQzVCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQTFDVixRQUFRLENBQVM7SUFFakIsU0FBUyxDQUFNO0lBQ2YsU0FBUyxDQUFNO0lBRWYsTUFBTSxHQUFvQixFQUFFLENBQUM7SUFFN0IsZUFBZSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBUztJQUVmLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFDOUIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDakIsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFaEQsaUJBQWlCLEdB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MkI7a0JBTHZDLFNBQVM7K0JBQ0UsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7XHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIGZpbHRlcixcclxuICBmaXJzdFZhbHVlRnJvbSxcclxuICBsYXN0VmFsdWVGcm9tLFxyXG4gIFN1YmplY3QsXHJcbiAgdGFrZVVudGlsLFxyXG59IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFN0b3JlQnVpbGRlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvc3RvcmUtYnVpbGRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSwgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IFZtTGlicmFyeUxpc3QgfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlcy92bS1saWJyYXJ5LmludGVyZmFjZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibGliLXBsYW5vLWRldGFpbHMtcGFyZW50XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9wbGFuby1kZXRhaWxzLXBhcmVudC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vcGxhbm8tZGV0YWlscy1wYXJlbnQuY29tcG9uZW50LnNjc3NcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFBsYW5vRGV0YWlsc1BhcmVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBjbGllbnRJZDogc3RyaW5nO1xyXG5cclxuICBwbGFub0RhdGE6IGFueTtcclxuICBmbG9vckRhdGE6IGFueTtcclxuXHJcbiAgdm1MaXN0OiBWbUxpYnJhcnlMaXN0W10gPSBbXTtcclxuXHJcbiAgc2VsZWN0ZWRGbG9vcklkID0gbmV3IEZvcm1Db250cm9sKFwiXCIpO1xyXG4gIGNkblVybDogc3RyaW5nO1xyXG5cclxuICBpc1BhZ2VMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBpc1JlTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzUm9sbG91dFBlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgcGxhbm9CcmllZkRldGFpbHM6IFBsYW5vQnJpZWZEZXRhaWxzID0ge1xyXG4gICAgcGxhbm9JZDogXCJcIixcclxuICAgIGZsb29ySWQ6IFwiXCIsXHJcbiAgICB0b3RhbEZpeHR1cmVzOiAwLFxyXG4gICAgZmxvb3JMYXN0VXBkYXRlZDogXCJcIixcclxuICAgIHBsYW5vU3RhdHVzOiBcIlwiLFxyXG4gICAgbWVyY2hDb21wbGlhbmNlUGVyY2VudGFnZTogMCxcclxuICAgIGxhc3RNZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlOiAwLFxyXG4gICAgbGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrOiBudWxsLFxyXG4gICAgbWVyY2hTdGF0dXM6IG51bGwsXHJcbiAgICBtaXNzZWRDb3VudDogMCxcclxuICAgIG1pc3BsYWNlZENvdW50OiAwLFxyXG4gICAgcHJvZHVjdENvdW50OiAwLFxyXG4gICAgc3RvcmVOYW1lOicnXHJcbiAgfTtcclxuXHJcbiAgc2VsZWN0ZWRUYWI6IFRhYlR5cGUgPSBcIm92ZXJ2aWV3XCI7XHJcbiAgc3RvcmVMaXN0OiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZFN0b3JlTmFtZTogYW55O1xyXG4gIGlzU2hvd0NvbXBsaWFuY2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IFN0b3JlQnVpbGRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgIHByaXZhdGUgcGFnZUluZm86IFBhZ2VJbmZvU2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkgdGhpcy5jZG5VcmwgPSBlLnBsYW5vZ3JhbUNETjtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgLy8gU3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIG9uIGNvbXBvbmVudCBkZXN0cm95LlxyXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLCAvLyBUbyBhdm9pZCBpbW1lZGlhdGUgZnJlcXVlbnQgY2FsbHMuXHJcbiAgICAgICAgZmlsdGVyKChkYXRhKSA9PiAhIWRhdGEpLCAvLyBGaWx0ZXJpbmcgbnVsbC91bmRlZmluZWQuXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgLy8gRW1pdHRpbmcgb25seSBkaWZmZXJlbnQgdmFsdWVzLiAoSWdub3JlcyBzYW1lIGNsaWVudElkKS5cclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiBhc3luYyAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICB0aGlzLmNsaWVudElkID0gZGF0YS5jbGllbnQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSBhcyBzdHJpbmcsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50SWQgPSBkYXRhPy5jbGllbnQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmdldFZtc0xpc3QoKTtcclxuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXM7XHJcbiAgICAgICAgICBpZiAocGFyYW1zPy50YWIpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IHBhcmFtcz8udGFiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHBhcmFtcz8ucGxhbm9JZCAmJiBwYXJhbXMuZmxvb3JJZCkge1xyXG4gICAgICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLnBsYW5vSWQgPSBwYXJhbXMucGxhbm9JZDtcclxuICAgICAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5mbG9vcklkID0gcGFyYW1zLmZsb29ySWQ7XHJcbiAgICAgICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMuc3RvcmVOYW1lID0gcGFyYW1zLnN0b3JlTmFtZTtcclxuICAgICAgICAgICAgLy8gdGhpcy5vbkNsaWNrUmVsb2FkKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0U3RvcmVGaXh0dXJlcyhwYXJhbXMucGxhbm9JZCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0U3RvcmVMaXN0KHBhcmFtcy5wbGFub0lkKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZsb29ySWQudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoaWQpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmZsb29yRGF0YSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgdGhpcy5mbG9vckRhdGEgPSBzdHJ1Y3R1cmVkQ2xvbmUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBsYW5vRGF0YT8uZmxvb3JzPy5maW5kKChmbG9vcjogYW55KSA9PiBmbG9vci5faWQgPT09IGlkKSxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMuZmxvb3JEYXRhLnN0b3JlTmFtZSA9IHRoaXMucGxhbm9EYXRhLnN0b3JlTmFtZTtcclxuICAgICAgICAgICAgICB0aGlzLmZsb29yRGF0YS5mbG9vckNoYW5nZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5mbG9vckxhc3RVcGRhdGVkID1cclxuICAgICAgICAgICAgICAgIHRoaXMuZmxvb3JEYXRhLmxhc3RVcGRhdGU7XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IG5ld1BhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgICAgICAgICAgICAgbmV3UGFyYW1zLnNldChcInBsYW5vSWRcIiwgdGhpcy5mbG9vckRhdGEucGxhbm9JZCk7XHJcbiAgICAgICAgICAgICAgbmV3UGFyYW1zLnNldChcImZsb29ySWRcIiwgdGhpcy5mbG9vckRhdGEuX2lkKTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoXHJcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsXHJcbiAgICAgICAgICAgICAgICBuZXdQYXJhbXMudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbG9vcklkLnNldFZhbHVlKHRoaXMuZmxvb3JEYXRhLl9pZCwge1xyXG4gICAgICAgICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRMYXlvdXRSb2xsb3V0U3RhdHVzKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRTdG9yZUNvbXBsaWFuY2VEZXRhaWxzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKHRoaXMucGxhbm9EYXRhPy5zdG9yZU5hbWUpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJQbGFub2dyYW1cIixcclxuICAgICAgICBwYXRoOiBcIi9tYW5hZ2UvcGxhbm9ncmFtL3N0b3JlLXBsYW5vZ3JhbXNcIixcclxuICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXHJcbiAgICAgICAgaXNTZXBhcmF0b3I6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6IFwiXCIsXHJcbiAgICAgICAgcGF0aDogXCJcIixcclxuICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXHJcbiAgICAgICAgaXNTZXBhcmF0b3I6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFN0b3JlRml4dHVyZXMoc3RvcmVJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlzUGFnZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIHBsYW5vSWQ6IHRoaXMucGxhbm9CcmllZkRldGFpbHMucGxhbm9JZCxcclxuICAgICAgZmxvb3JJZDogdGhpcy5wbGFub0JyaWVmRGV0YWlscy5mbG9vcklkLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgIH07XHJcbiAgICB0aGlzLmFwaVNlcnZpY2VcclxuICAgICAgLmdldFN0b3JlUGxhbm8oZGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiBhc3luYyAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmICghcmVzPy5kYXRhPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5pc1BhZ2VMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMucGxhbm9EYXRhID0gc3RydWN0dXJlZENsb25lKHJlcy5kYXRhWzBdKTtcclxuICAgICAgICAgIHRoaXMuaXNTaG93Q29tcGxpYW5jZSA9IHRoaXMucGxhbm9EYXRhLnN0b3JlSWQgPT09IFwiMTEtMjc5M1wiO1xyXG4gICAgICAgICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmZsb29ySWQpIHtcclxuICAgICAgICAgICAgdGhpcy5mbG9vckRhdGEgPSBzdHJ1Y3R1cmVkQ2xvbmUoXHJcbiAgICAgICAgICAgICAgcmVzLmRhdGFbMF0uZmxvb3JzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAoZmxvb3I6IGFueSkgPT4gZmxvb3I/Ll9pZCA9PT0gdGhpcy5wbGFub0JyaWVmRGV0YWlscy5mbG9vcklkLFxyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZsb29yRGF0YSA9IHN0cnVjdHVyZWRDbG9uZShyZXMuZGF0YVswXS5mbG9vcnNbMF0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuZmxvb3JEYXRhLnN0b3JlTmFtZSA9IHRoaXMucGxhbm9EYXRhLnN0b3JlTmFtZTtcclxuICAgICAgICAgIHRoaXMuZmxvb3JEYXRhLnN0b3JlSWQgPSB0aGlzLnBsYW5vRGF0YS5zdG9yZUlkO1xyXG4gICAgICAgICAgdGhpcy5mbG9vckRhdGEucmV2aXNpb25JZCA9IHRoaXMucGxhbm9EYXRhLnJldmlzaW9uSWQ7XHJcbiAgICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLmZsb29yTGFzdFVwZGF0ZWQgPSB0aGlzLmZsb29yRGF0YS5sYXN0VXBkYXRlO1xyXG4gICAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy50b3RhbEZpeHR1cmVzID0gdGhpcy5nZXRBbGxGaXh0dXJlcygpLmxlbmd0aDtcclxuXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRmxvb3JJZC5zZXRWYWx1ZSh0aGlzLmZsb29yRGF0YS5faWQsIHtcclxuICAgICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5nZXRMYXlvdXRSb2xsb3V0U3RhdHVzKCk7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmdldFN0b3JlQ29tcGxpYW5jZURldGFpbHMoKTtcclxuXHJcbiAgICAgICAgICB0aGlzLmlzUGFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNQYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0Vm1zTGlzdCgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgbGFzdFZhbHVlRnJvbShcclxuICAgICAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0Vk1OYW1lTGlzdCh0aGlzLmNsaWVudElkKSxcclxuICAgICAgKTtcclxuICAgICAgaWYgKHJlcz8uc3RhdHVzID09PSBcInN1Y2Nlc3NcIikge1xyXG4gICAgICAgIHRoaXMudm1MaXN0ID0gcmVzPy5kYXRhPy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWQ6IGl0ZW0uX2lkLFxyXG4gICAgICAgICAgICBuYW1lOiBpdGVtLnZtTmFtZSxcclxuICAgICAgICAgICAgZGlzcGxheU5hbWU6IGl0ZW0udm1OYW1lLFxyXG4gICAgICAgICAgICB3aWR0aDogaXRlbS52bVdpZHRoLnZhbHVlLFxyXG4gICAgICAgICAgICBoZWlnaHQ6IGl0ZW0udm1IZWlnaHQudmFsdWUsXHJcbiAgICAgICAgICAgIHR5cGU6IGl0ZW0udm1UeXBlLFxyXG4gICAgICAgICAgICAuLi4oaXRlbS52bUltYWdlVXJsXHJcbiAgICAgICAgICAgICAgPyB7IGltZ1VybDogYCR7dGhpcy5jZG5Vcmx9JHtpdGVtLnZtSW1hZ2VVcmx9YCB9XHJcbiAgICAgICAgICAgICAgOiB7fSksXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkBAIH4gZ2V0Vm1zTGlzdCBbRVJSXTpcIiwgZXJyb3IpO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5pc1BhZ2VMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRMYXlvdXRSb2xsb3V0U3RhdHVzKCkge1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlXHJcbiAgICAgIC5nZXRSb2xsb3V0VGFza0luZm8oe1xyXG4gICAgICAgIHBsYW5vSWQ6IHRoaXMuZmxvb3JEYXRhLnBsYW5vSWQsXHJcbiAgICAgICAgZmxvb3JJZDogdGhpcy5mbG9vckRhdGEuX2lkLFxyXG4gICAgICB9KVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhc2tzSW5mbyA9IHJlcz8uZGF0YT8udGFza0RldGFpbHM7XHJcbiAgICAgICAgICAgIGlmICh0YXNrc0luZm8pIHtcclxuICAgICAgICAgICAgICB0aGlzLmlzUm9sbG91dFBlbmRpbmcgPSB0YXNrc0luZm8uc29tZShcclxuICAgICAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlLnN0YXR1cyA9PT0gXCJvcGVuXCIgfHwgZWxlLnN0YXR1cyA9PT0gXCJwZW5kaW5nXCIsXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmlzUm9sbG91dFBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJAQCB+IGdldExheW91dFJvbGxvdXRTdGF0dXMgW0VSUl06XCIsIGVycik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRTdG9yZUNvbXBsaWFuY2VEZXRhaWxzKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBwbGFub0lkOiB0aGlzLmZsb29yRGF0YS5wbGFub0lkLFxyXG4gICAgICAgIGZsb29ySWQ6IHRoaXMuZmxvb3JEYXRhLl9pZCxcclxuICAgICAgICBzdG9yZU5hbWU6IHRoaXMuZmxvb3JEYXRhLnN0b3JlTmFtZSxcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuICAgICAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0UGxhbm9ncmFtQ29tcGxpYW5jZURldGFpbHMocGF5bG9hZCksXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAocmVzPy5jb2RlID09IDIwMCAmJiByZXM/LnN0YXR1cyA9PSBcInN1Y2Nlc3NcIikge1xyXG4gICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMubGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrID0gcmVzLmRhdGEubGFzdENoZWNrO1xyXG4gICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMubWVyY2hDb21wbGlhbmNlUGVyY2VudGFnZSA9XHJcbiAgICAgICAgICByZXMuZGF0YS5tZXJjaENvbXBsaWFuY2U7XHJcbiAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5sYXN0TWVyY2hDb21wbGlhbmNlUGVyY2VudGFnZSA9XHJcbiAgICAgICAgICByZXMuZGF0YS5wcmV2aW91c01lcmNoQ29tcGxpYW5jZTtcclxuICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLm1lcmNoU3RhdHVzID0gcmVzLmRhdGEucmF0ZUluY3JlYXNlO1xyXG4gICAgICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMubWlzc2VkQ291bnQgPSByZXMuZGF0YS5taXNzZWRDb3VudDtcclxuICAgICAgICB0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLm1pc3BsYWNlZENvdW50ID0gcmVzLmRhdGEubWlzcGxhY2VkQ291bnQ7XHJcbiAgICAgICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5wcm9kdWN0Q291bnQgPSByZXMuZGF0YS5wcm9kdWN0Q291bnQ7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQEAgfiBnZXRTdG9yZUNvbXBsaWFuY2VEZXRhaWxzIFtFUlJdOlwiLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRhYkNoYW5nZSh0YWI6IFRhYlR5cGUpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0YWI7XHJcbiAgICB0aGlzLmZsb29yRGF0YS5mbG9vckNoYW5nZSA9IGZhbHNlO1xyXG4gICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsRml4dHVyZXMoKSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICAuLi50aGlzLmZsb29yRGF0YT8ubGF5b3V0UG9seWdvbi5mbGF0TWFwKChlOiBhbnkpID0+IGUuZml4dHVyZXMpLFxyXG4gICAgICAuLi50aGlzLmZsb29yRGF0YT8uY2VudGVyRml4dHVyZSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBjYWxjTWVyY2hDb21wbGlhbmNlUGVyY2VudGFnZSgpIHtcclxuICAgIGNvbnN0IGFsbEZpeHR1cmVzID0gdGhpcy5nZXRBbGxGaXh0dXJlcygpO1xyXG5cclxuICAgIGNvbnN0IGFsbFNoZWx2ZXMgPSBhbGxGaXh0dXJlcy5mbGF0TWFwKChmOiBhbnkpID0+IGYuc2hlbGZDb25maWcpO1xyXG5cclxuICAgIGNvbnN0IGNvbXBsaWFuY2VzID0gYWxsU2hlbHZlcy5tYXAoKHM6IGFueSkgPT4gcz8uY29tcGxpYW5jZSk7XHJcblxyXG4gICAgY29uc3QgdG90YWwgPSBjb21wbGlhbmNlcy5sZW5ndGg7XHJcbiAgICBjb25zdCBwcm9wZXJDb3VudCA9IGNvbXBsaWFuY2VzLmZpbHRlcigocCkgPT4gcCA9PT0gXCJwcm9wZXJcIikubGVuZ3RoO1xyXG4gICAgY29uc3Qgc3VjY2Vzc1BlcmNlbnRhZ2UgPSAocHJvcGVyQ291bnQgLyB0b3RhbCkgKiAxMDA7XHJcblxyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoc3VjY2Vzc1BlcmNlbnRhZ2UpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUXVlcnlQYXJhbXMoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xyXG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxyXG4gICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgIHBsYW5vSWQ6IHRoaXMuZmxvb3JEYXRhLnBsYW5vSWQsXHJcbiAgICAgICAgZmxvb3JJZDogdGhpcy5mbG9vckRhdGEuX2lkLFxyXG4gICAgICAgIHRhYjogdGhpcy5zZWxlY3RlZFRhYixcclxuICAgICAgfSxcclxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogXCJtZXJnZVwiLFxyXG4gICAgICByZXBsYWNlVXJsOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBvbkNsaWNrUmVsb2FkKGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5pc1BhZ2VMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGlmKGV2ZW50KXtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pc1JlTG9hZGluZykgcmV0dXJuO1xyXG4gICAgdGhpcy5pc1JlTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgICBzdG9yZXM6IFt0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLnN0b3JlTmFtZV0sXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGxhc3RWYWx1ZUZyb20oXHJcbiAgICAgICAgdGhpcy5hcGlTZXJ2aWNlLnVwZGF0ZVByb2R1Y3RNYXBwaW5nKHBheWxvYWQpLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMuZ2V0U3RvcmVGaXh0dXJlcyh0aGlzLnBsYW5vQnJpZWZEZXRhaWxzLnBsYW5vSWQpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkBAIH4gb25DbGlja1JlbG9hZCBbRVJSXTpcIiwgZXJyb3IpO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5pc1JlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlTGlzdChwbGFub0lkPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2VcclxuICAgICAgLmdldFBsYW5vU3RvcmVMaXN0KHRoaXMuY2xpZW50SWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHRoaXMuc3RvcmVMaXN0Lm1hcCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4geyAuLi5lbGUsIHN0b3JlTmFtZTogZWxlLnN0b3JlTmFtZS50b1VwcGVyQ2FzZSgpIH07XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAocGxhbm9JZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yZU5hbWUgPSB0aGlzLnN0b3JlTGlzdC5maW5kKFxyXG4gICAgICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGUucGxhbm9JZC50b1N0cmluZygpID09IHBsYW5vSWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBvblNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucGxhbm9EYXRhID0gbnVsbDtcclxuICAgIHRoaXMuZmxvb3JEYXRhID0gbnVsbDtcclxuICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMgPSB7XHJcbiAgICAgIHBsYW5vSWQ6IFwiXCIsXHJcbiAgICAgIGZsb29ySWQ6IFwiXCIsXHJcbiAgICAgIHRvdGFsRml4dHVyZXM6IDAsXHJcbiAgICAgIGZsb29yTGFzdFVwZGF0ZWQ6IFwiXCIsXHJcbiAgICAgIHBsYW5vU3RhdHVzOiBcIlwiLFxyXG4gICAgICBtZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlOiAwLFxyXG4gICAgICBsYXN0TWVyY2hDb21wbGlhbmNlUGVyY2VudGFnZTogMCxcclxuICAgICAgbGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrOiBudWxsLFxyXG4gICAgICBtZXJjaFN0YXR1czogbnVsbCxcclxuICAgICAgbWlzc2VkQ291bnQ6IDAsXHJcbiAgICAgIG1pc3BsYWNlZENvdW50OiAwLFxyXG4gICAgICBwcm9kdWN0Q291bnQ6IDAsXHJcbiAgICAgIHN0b3JlTmFtZTonJ1xyXG4gICAgfTtcclxuICAgIGNvbnN0IG5ld1BhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgICBuZXdQYXJhbXMuc2V0KFwicGxhbm9JZFwiLCBldmVudC5wbGFub0lkKTtcclxuICAgIG5ld1BhcmFtcy5zZXQoXCJmbG9vcklkXCIsIGV2ZW50LmZsb29ySWQpO1xyXG5cclxuICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwgbmV3UGFyYW1zLnRvU3RyaW5nKCkpO1xyXG4gICAgdGhpcy5wbGFub0JyaWVmRGV0YWlscy5wbGFub0lkID0gZXZlbnQucGxhbm9JZDtcclxuICAgIHRoaXMucGxhbm9CcmllZkRldGFpbHMuZmxvb3JJZCA9IGV2ZW50LmZsb29ySWQ7XHJcbiAgICB0aGlzLmlzUm9sbG91dFBlbmRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRTdG9yZU5hbWUgPSBldmVudDtcclxuICAgIHRoaXMuZ2V0U3RvcmVGaXh0dXJlcyhldmVudC5faWQpO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBUYWJUeXBlID0gXCJvdmVydmlld1wiIHwgXCJtZXJjaC1jb21wbGlhbmNlXCIgfCBcImFuYWx5dGljc1wiO1xyXG5cclxuaW50ZXJmYWNlIFBsYW5vQnJpZWZEZXRhaWxzIHtcclxuICBwbGFub0lkOiBzdHJpbmc7XHJcbiAgZmxvb3JJZDogc3RyaW5nO1xyXG4gIHRvdGFsRml4dHVyZXM6IG51bWJlcjtcclxuICBmbG9vckxhc3RVcGRhdGVkOiBzdHJpbmc7XHJcbiAgcGxhbm9TdGF0dXM6IHN0cmluZztcclxuICBtZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlOiBudW1iZXI7XHJcbiAgbGFzdE1lcmNoQ29tcGxpYW5jZVBlcmNlbnRhZ2U6IG51bWJlcjtcclxuICBsYXN0TWVyY2hDb21wbGlhbmNlQ2hlY2s6IHN0cmluZyB8IG51bGw7XHJcbiAgbWVyY2hTdGF0dXM6IGJvb2xlYW4gfCBudWxsO1xyXG4gIG1pc3NlZENvdW50OiBudW1iZXIgfCBudWxsO1xyXG4gIG1pc3BsYWNlZENvdW50OiBudW1iZXIgfCBudWxsO1xyXG4gIHByb2R1Y3RDb3VudDogbnVtYmVyIHwgbnVsbDtcclxuICBzdG9yZU5hbWU6IFN0cmluZyB8IG51bGw7XHJcbn1cclxuIiwiPHNlY3Rpb24gaWQ9XCJwbGFuby1kZXRhaWxzXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXNQYWdlTG9hZGluZ1wiIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtLTBcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclNrZWxldG9uXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2tlbGV0b25Mb2FkZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnZC1ub25lJzogaXNQYWdlTG9hZGluZyB9XCI+XHJcbiAgICAgICAgPGRpdiBpZD1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGlkPVwiaGVhZGVyXCIgbmdiQWNjb3JkaW9uICNhY2NvcmRpb249XCJuZ2JBY2NvcmRpb25cIiBjbGFzcz1cIm15LTRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uSXRlbT1cImRldGFpbHNcIiBbY29sbGFwc2VkXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25IZWFkZXIgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHB4LTYgcHktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC00IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWxlZnQ6NXB4O21hcmdpbi1yaWdodDo1cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBsYW5vRGF0YT8uc3RvcmVOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0ndGl0bGUnPnt7cGxhbm9EYXRhPy5zdG9yZU5hbWV9fSAtIFBsYW5vPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLXNlbGVjdC1wbGFubyAqbmdJZj1cInN0b3JlTGlzdD8ubGVuZ3RoXCIgW2lkRmllbGRdPVwiJ19pZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVzXT1cIltzZWxlY3RlZFN0b3JlTmFtZV1cIiBbaXRlbXNdPVwic3RvcmVMaXN0XCIgW211bHRpXT1mYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoRmllbGQ9XCJzdG9yZU5hbWVcIiAoc2VsZWN0ZWQpPVwib25TZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGliLXNlbGVjdC1wbGFubz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0ICpuZ0lmPVwicGxhbm9EYXRhPy5mbG9vcnM/Lmxlbmd0aFwiIFtmb3JtQ29udHJvbF09XCJzZWxlY3RlZEZsb29ySWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZEZpZWxkXT1cIidfaWQnXCIgW25hbWVGaWVsZF09XCInZmxvb3JOYW1lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwicGxhbm9EYXRhLmZsb29yc1wiPjwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yIGFsaWduLWl0ZW1zLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvbWFuYWdlL3BsYW5vZ3JhbS9tYW5hZ2UtcGxhbm9ncmFtJ11cIiBbcXVlcnlQYXJhbXNdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW5vSWQ6IGZsb29yRGF0YT8ucGxhbm9JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vcklkOiBmbG9vckRhdGE/Ll9pZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ0aXRsZVwiIHN0eWxlPVwiY29sb3I6ICMwMDhlZGY7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQgUGxhbm9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxOVwiIGhlaWdodD1cIjE5XCIgdmlld0JveD1cIjAgMCAxOSAxOVwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjUgMi43Njc3N0gyLjY2NjY3QzIuMjI0NjQgMi43Njc3NyAxLjgwMDcyIDIuOTQzMzYgMS40ODgxNiAzLjI1NTkyQzEuMTc1NTkgMy41Njg0OCAxIDMuOTkyNDEgMSA0LjQzNDQzVjE2LjEwMTFDMSAxNi41NDMxIDEuMTc1NTkgMTYuOTY3MSAxLjQ4ODE2IDE3LjI3OTZDMS44MDA3MiAxNy41OTIyIDIuMjI0NjQgMTcuNzY3OCAyLjY2NjY3IDE3Ljc2NzhIMTQuMzMzM0MxNC43NzU0IDE3Ljc2NzggMTUuMTk5MyAxNy41OTIyIDE1LjUxMTggMTcuMjc5NkMxNS44MjQ0IDE2Ljk2NzEgMTYgMTYuNTQzMSAxNiAxNi4xMDExVjEwLjI2NzhNMTQuNzUgMS41MTc3N0MxNS4wODE1IDEuMTg2MjUgMTUuNTMxMiAxIDE2IDFDMTYuNDY4OCAxIDE2LjkxODUgMS4xODYyNSAxNy4yNSAxLjUxNzc3QzE3LjU4MTUgMS44NDkyOSAxNy43Njc4IDIuMjk4OTMgMTcuNzY3OCAyLjc2Nzc3QzE3Ljc2NzggMy4yMzY2MSAxNy41ODE1IDMuNjg2MjUgMTcuMjUgNC4wMTc3N0w5LjMzMzMzIDExLjkzNDRMNiAxMi43Njc4TDYuODMzMzMgOS40MzQ0M0wxNC43NSAxLjUxNzc3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA4RURGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC00IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JBY2NvcmRpb25CdXR0b24+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZihwbGFub0RhdGEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Cb2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBteC0wIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGZpbHRlci10YWJcIiBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBzZWxlY3RlZFRhYiA9PT0gJ292ZXJ2aWV3JyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25UYWJDaGFuZ2UoJ292ZXJ2aWV3JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+VG90YWwgZml4dHVyZXM8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz57eyBwbGFub0JyaWVmRGV0YWlscy50b3RhbEZpeHR1cmVzIH19PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5MYXN0IHVwZGF0ZWQ6PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBwbGFub0JyaWVmRGV0YWlscy5mbG9vckxhc3RVcGRhdGVkIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNSb2xsb3V0UGVuZGluZ1wiIGNsYXNzPVwiaW5kaWNhdG9yIHJldmlld1BlbmRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvbGxvdXQgcmV2aWV3IHBlbmRpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihpc1Nob3dDb21wbGlhbmNlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGZpbHRlci10YWJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBzZWxlY3RlZFRhYiA9PT0gJ21lcmNoLWNvbXBsaWFuY2UnIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25UYWJDaGFuZ2UoJ21lcmNoLWNvbXBsaWFuY2UnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJtLTBcIj5NZXJjaGFuZGlzZSBjb21wbGlhbmNlPC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZSBpbmFjdGl2ZVwiPk1pc3Npbmc6IHt7cGxhbm9CcmllZkRldGFpbHMubWlzc2VkQ291bnR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlIGluYWN0aXZlIFwiPk1pc3BsYWNlZDoge3twbGFub0JyaWVmRGV0YWlscy5taXNwbGFjZWRDb3VudH19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPnt7IHBsYW5vQnJpZWZEZXRhaWxzLm1lcmNoQ29tcGxpYW5jZVBlcmNlbnRhZ2UgfX0lPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHBsYW5vQnJpZWZEZXRhaWxzLmxhc3RNZXJjaENvbXBsaWFuY2VDaGVjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihwbGFub0JyaWVmRGV0YWlscy5tZXJjaFN0YXR1cyAhPSBudWxsKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHBsYW5vQnJpZWZEZXRhaWxzLm1lcmNoU3RhdHVzICl7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDE2IDEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1LjMzMjcgMC43NDk5OTlMOC45OTkzNSA3LjA4MzMzTDUuNjY2MDIgMy43NUwwLjY2NjAxNiA4Ljc1TTE1LjMzMjcgMC43NDk5OTlMMTEuMzMyNyAwLjc0OTk5OU0xNS4zMzI3IDAuNzQ5OTk5TDE1LjMzMjcgNC43NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMzk4NTVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9QGVsc2V7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDE2IDEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTAuNjY3MzIgOC43NUw3LjAwMDY1IDIuNDE2NjdMMTAuMzM0IDUuNzVMMTUuMzM0IDAuNzVNMC42NjczMiA4Ljc1TDQuNjY3MzIgOC43NU0wLjY2NzMyIDguNzVMMC42NjczMiA0Ljc1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0Q5MkQyMFwiIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsndGV4dC1zdWNjZXNzJzpwbGFub0JyaWVmRGV0YWlscy5tZXJjaFN0YXR1cywndGV4dC1kYW5nZXInOiFwbGFub0JyaWVmRGV0YWlscy5tZXJjaFN0YXR1c31cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHBsYW5vQnJpZWZEZXRhaWxzLmxhc3RNZXJjaENvbXBsaWFuY2VQZXJjZW50YWdlIH19JVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnZzIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+TGFzdCBjaGVjazo8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgcGxhbm9CcmllZkRldGFpbHMubGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGlja1JlbG9hZCgkZXZlbnQpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyb3RhdGUnOmlzUmVMb2FkaW5nfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzQ3NTNfMTE2NDApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuMjUgMy4wMDAwNlY3LjUwMDA2TTE3LjI1IDcuNTAwMDZIMTIuNzVNMTcuMjUgNy41MDAwNkwxMy43NyA0LjIzMDA2QzEyLjk2MzkgMy40MjM1OSAxMS45NjY3IDIuODM0NDYgMTAuODcxNCAyLjUxNzY0QzkuNzc2MDcgMi4yMDA4MSA4LjYxODMzIDIuMTY2NjIgNy41MDYyMSAyLjQxODI1QzYuMzk0MSAyLjY2OTg4IDUuMzYzODUgMy4xOTkxMyA0LjUxMTYgMy45NTY2MkMzLjY1OTM1IDQuNzE0MTEgMy4wMTI4OCA1LjY3NTE1IDIuNjMyNSA2Ljc1MDA2TTAuNzUgMTUuMDAwMVYxMC41MDAxTTAuNzUgMTAuNTAwMUg1LjI1TTAuNzUgMTAuNTAwMUw0LjIzIDEzLjc3MDFDNS4wMzYwNiAxNC41NzY1IDYuMDMzMjggMTUuMTY1NyA3LjEyODYxIDE1LjQ4MjVDOC4yMjM5MyAxNS43OTkzIDkuMzgxNjcgMTUuODMzNSAxMC40OTM4IDE1LjU4MTlDMTEuNjA1OSAxNS4zMzAyIDEyLjYzNjEgMTQuODAxIDEzLjQ4ODQgMTQuMDQzNUMxNC4zNDA3IDEzLjI4NiAxNC45ODcxIDEyLjMyNSAxNS4zNjc1IDExLjI1MDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDc1M18xMTY0MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfUBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxhc3QgY2hlY2s6IE5vdCBzY2FubmVkIHlldDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgZmlsdGVyLXRhYlwiIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IHNlbGVjdGVkVGFiID09PSAnYW5hbHl0aWNzJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGFiQ2hhbmdlKCdhbmFseXRpY3MnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+UGxhbm8gQW5hbHl0aWNzPC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgbWItMVwiPjxoMyBjbGFzcz1cIm1lLTJcIj57eyBwbGFub0JyaWVmRGV0YWlscy5wcm9kdWN0Q291bnR9fTwvaDM+PHAgY2xhc3M9XCJ0ZXh0XCI+QWN0aXZlIHByb2R1Y3RzPC9wPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+TGFzdCBDaGVjazo8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYocGxhbm9CcmllZkRldGFpbHMubGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgcGxhbm9CcmllZkRldGFpbHMubGFzdE1lcmNoQ29tcGxpYW5jZUNoZWNrfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPk5vdCBzY2FubmVkIHlldDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhaXNQYWdlTG9hZGluZyAmJiBwbGFub0RhdGFcIiBpZD1cImJvZHlcIiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgQGlmKHNlbGVjdGVkVGFiID09PSAnbWVyY2gtY29tcGxpYW5jZScpe1xyXG4gICAgICAgICAgICAgICAgPG1lcmNoLWNvbXBsaWFuY2UgW2Zsb29yRGF0YV09XCJmbG9vckRhdGFcIj48L21lcmNoLWNvbXBsaWFuY2U+XHJcbiAgICAgICAgICAgIH1AZWxzZSBpZihzZWxlY3RlZFRhYiA9PSAnb3ZlcnZpZXcnKSB7XHJcbiAgICAgICAgICAgICAgICA8cGxhbm8tb3ZlcnZpZXcgW2Zsb29yRGF0YV09XCJmbG9vckRhdGFcIiBbdm1MaXN0XT1cInZtTGlzdFwiPjwvcGxhbm8tb3ZlcnZpZXc+XHJcbiAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICA8bGliLXBsYW5vLWFuYWx5dGljcyBbZmxvb3JEYXRhXT1cImZsb29yRGF0YVwiIFt2bUxpc3RdPVwidm1MaXN0XCI+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==
|