@cqa-lib/cqa-ui 1.1.218 → 1.1.219
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/esm2020/lib/execution-screen/ai-action-step/ai-action-step.component.mjs +44 -8
- package/esm2020/lib/execution-screen/ai-agent-step/ai-agent-step.component.mjs +44 -8
- package/esm2020/lib/execution-screen/api-step/api-step.component.mjs +44 -8
- package/esm2020/lib/execution-screen/basic-step/basic-step.component.mjs +53 -9
- package/esm2020/lib/execution-screen/condition-step/condition-step.component.mjs +56 -9
- package/esm2020/lib/execution-screen/db-verification-step/db-verification-step.component.mjs +48 -12
- package/esm2020/lib/execution-screen/document-verification-step/document-verification-step.component.mjs +41 -5
- package/esm2020/lib/execution-screen/execution-step.models.mjs +14 -2
- package/esm2020/lib/execution-screen/failed-step/failed-step.component.mjs +41 -5
- package/esm2020/lib/execution-screen/file-download-step/file-download-step.component.mjs +42 -6
- package/esm2020/lib/execution-screen/live-execution-step/live-execution-step.component.mjs +42 -5
- package/esm2020/lib/execution-screen/loop-step/loop-step.component.mjs +65 -11
- package/esm2020/lib/execution-screen/main-step-collapse/main-step-collapse.component.mjs +41 -4
- package/esm2020/lib/execution-screen/session-changes-modal/session-changes-modal.component.mjs +83 -0
- package/esm2020/lib/execution-screen/step-group/step-group.component.mjs +53 -6
- package/esm2020/lib/execution-screen/step-renderer/step-renderer.component.mjs +297 -28
- package/esm2020/lib/ui-kit.module.mjs +6 -1
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/cqa-lib-cqa-ui.mjs +961 -89
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +947 -89
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/execution-screen/ai-action-step/ai-action-step.component.d.ts +12 -2
- package/lib/execution-screen/ai-agent-step/ai-agent-step.component.d.ts +12 -2
- package/lib/execution-screen/api-step/api-step.component.d.ts +12 -2
- package/lib/execution-screen/basic-step/basic-step.component.d.ts +18 -2
- package/lib/execution-screen/condition-step/condition-step.component.d.ts +21 -2
- package/lib/execution-screen/db-verification-step/db-verification-step.component.d.ts +12 -2
- package/lib/execution-screen/document-verification-step/document-verification-step.component.d.ts +12 -2
- package/lib/execution-screen/execution-step.models.d.ts +14 -0
- package/lib/execution-screen/failed-step/failed-step.component.d.ts +11 -2
- package/lib/execution-screen/file-download-step/file-download-step.component.d.ts +12 -2
- package/lib/execution-screen/live-execution-step/live-execution-step.component.d.ts +12 -2
- package/lib/execution-screen/loop-step/loop-step.component.d.ts +23 -2
- package/lib/execution-screen/main-step-collapse/main-step-collapse.component.d.ts +18 -2
- package/lib/execution-screen/session-changes-modal/session-changes-modal.component.d.ts +34 -0
- package/lib/execution-screen/step-group/step-group.component.d.ts +23 -2
- package/lib/execution-screen/step-renderer/step-renderer.component.d.ts +33 -3
- package/lib/ui-kit.module.d.ts +72 -71
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/styles.css +1 -1
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { DEFAULT_ADD_STEP_MENU_OPTIONS, DEFAULT_STEP_MORE_MENU_OPTIONS } from '../execution-step.models';
|
|
2
3
|
import { BaseStepComponent } from '../base-step.component';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
5
|
-
import * as i2 from "@angular/
|
|
5
|
+
import * as i1 from "@angular/material/icon";
|
|
6
|
+
import * as i2 from "@angular/material/menu";
|
|
7
|
+
import * as i3 from "../visual-comparison/visual-comparison.component";
|
|
8
|
+
import * as i4 from "@angular/common";
|
|
6
9
|
export class FailedStepComponent extends BaseStepComponent {
|
|
7
10
|
constructor() {
|
|
8
11
|
super(...arguments);
|
|
9
12
|
this.isUploadingBaseline = {};
|
|
10
13
|
this.isLive = false;
|
|
14
|
+
this.isDebug = false;
|
|
11
15
|
this.makeCurrentBaseline = new EventEmitter();
|
|
12
16
|
this.uploadBaseline = new EventEmitter();
|
|
13
17
|
this.analyze = new EventEmitter();
|
|
14
18
|
this.viewFullLogs = new EventEmitter();
|
|
19
|
+
this.editStep = new EventEmitter();
|
|
20
|
+
this.addStepOptionSelect = new EventEmitter();
|
|
21
|
+
this.stepMoreOptionSelect = new EventEmitter();
|
|
22
|
+
this.addStepMenuOptions = DEFAULT_ADD_STEP_MENU_OPTIONS;
|
|
23
|
+
this.stepMoreMenuOptions = DEFAULT_STEP_MORE_MENU_OPTIONS;
|
|
15
24
|
}
|
|
16
25
|
ngOnInit() {
|
|
17
26
|
// Build config from individual inputs
|
|
@@ -46,12 +55,27 @@ export class FailedStepComponent extends BaseStepComponent {
|
|
|
46
55
|
console.log('View full logs clicked');
|
|
47
56
|
this.viewFullLogs.emit();
|
|
48
57
|
}
|
|
58
|
+
onEditStep(event) {
|
|
59
|
+
event.preventDefault();
|
|
60
|
+
event.stopPropagation();
|
|
61
|
+
this.editStep.emit();
|
|
62
|
+
}
|
|
63
|
+
onAddStepOptionSelect(option, event) {
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
event.stopPropagation();
|
|
66
|
+
this.addStepOptionSelect.emit(option);
|
|
67
|
+
}
|
|
68
|
+
onStepMoreOptionSelect(option, event) {
|
|
69
|
+
event.preventDefault();
|
|
70
|
+
event.stopPropagation();
|
|
71
|
+
this.stepMoreOptionSelect.emit(option);
|
|
72
|
+
}
|
|
49
73
|
}
|
|
50
74
|
FailedStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FailedStepComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
-
FailedStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FailedStepComponent, selector: "cqa-failed-step", inputs: { id: "id", testStepResultId: "testStepResultId", stepNumber: "stepNumber", title: "title", status: "status", duration: "duration", timingBreakdown: "timingBreakdown", expanded: "expanded", subSteps: "subSteps", failureDetails: "failureDetails", isUploadingBaseline: "isUploadingBaseline", isLive: "isLive" }, outputs: { makeCurrentBaseline: "makeCurrentBaseline", uploadBaseline: "uploadBaseline", analyze: "analyze", viewFullLogs: "viewFullLogs" }, host: { classAttribute: "cqa-ui-root" }, usesInheritance: true, ngImport: i0, template: "<div>\n <!-- Header -->\n <div\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-p-2 cqa-cursor-pointer cqa-bg-[#FFFAFA]\"\n style=\"border-left: '2px solid #EF4444'\"\n (click)=\"toggle()\">\n \n <!-- Status Icon -->\n <div *ngIf=\"config.status.toLowerCase() === 'success'\" ><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.9005 4.99999C11.1289 6.12064 10.9662 7.28571 10.4395 8.30089C9.91279 9.31608 9.054 10.12 8.00631 10.5787C6.95862 11.0373 5.78536 11.1229 4.6822 10.8212C3.57904 10.5195 2.61265 9.84869 1.94419 8.92071C1.27573 7.99272 0.945611 6.86361 1.00888 5.72169C1.07215 4.57976 1.52499 3.49404 2.29188 2.64558C3.05876 1.79712 4.09334 1.23721 5.22308 1.05922C6.35282 0.881233 7.50944 1.09592 8.50005 1.66749\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 5.5L6 7L11 2\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <div *ngIf=\"config.status.toLowerCase() === 'failure'\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7.5 4.5L4.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 4.5L7.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n\n <!-- Step Number and Title -->\n <div class=\"cqa-flex-1 cqa-flex cqa-items-center cqa-gap-3\">\n <span class=\"cqa-font-bold cqa-text-[#7F1D1D] cqa-text-[11px] cqa-leading-[13px]\">\n {{ config.stepNumber }}. <span [innerHTML]=\"config.title\"></span>\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-items-center cqa-gap-1\">\n <span class=\"cqa-text-[9px] cqa-leading-[20px] cqa-font-bold cqa-text-[#B91C1C]\">\n {{ formatDuration(config.duration) }}\n </span>\n <svg [class.cqa-rotate-180]=\"isExpanded\" width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.5 3.75L5 6.25L7.5 3.75\" stroke=\"#F87171\" stroke-width=\"0.833333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n </div>\n <!-- Expanded Content -->\n <div *ngIf=\"isExpanded\" class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-p-2\" style=\"border-left: '2px solid #FAC7C7'; border-bottom: '1px solid #FEE2E2'\">\n <!-- Sub-steps -->\n <div *ngIf=\"config.subSteps && config.subSteps.length > 0\" class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-pl-[9px]\" style=\"border-left: 1px solid #F3F4F6;\">\n <div\n *ngFor=\"let subStep of config.subSteps\"\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-text-[9px] cqa-leading-[20px]\"\n [ngClass]=\"subStep.description === config.failureDetails.failedAction ? 'cqa-text-[#B91C1C]' : 'cqa-text-[#475569]'\">\n \n <!-- Failed Action Indicator -->\n <span *ngIf=\"subStep.description === config.failureDetails.failedAction\" class=\"cqa-text-[#EF4444] cqa-font-bold\">\u2022</span>\n\n <!-- Sub-step Description -->\n <span class=\"cqa-flex-1\" [ngClass]=\"subStep.description === config.failureDetails.failedAction ? 'cqa-font-medium' : ''\">\n {{ subStep.description }}\n </span>\n\n <!-- Sub-step Timestamp or Duration -->\n <span [ngClass]=\"subStep.description === config.failureDetails.failedAction ? 'cqa-text-[#FCA5A5]' : 'cqa-text-[#D1D5DB]'\">\n {{ subStep.timestamp || formatDuration(subStep.duration) }}\n </span>\n </div>\n </div>\n\n <!-- Expected vs Actual Comparison -->\n <div *ngIf=\"config.failureDetails\" class=\"cqa-grid cqa-grid-cols-2 cqa-rounded cqa-overflow-hidden cqa-border cqa-border-solid cqa-border-[#E5E7EB]\">\n <!-- Expected Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-white\" style=\"border-right: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-[#9CA3AF]\">EXPECTED</div>\n <div class=\"cqa-text-[#374151]\">\n {{ config.failureDetails.expected }}\n </div>\n </div>\n\n <!-- Actual Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-[#FEF8F8]\">\n <div class=\"cqa-text-[#F87171]\">ACTUAL</div>\n <div class=\"cqa-text-[#991B1B]\">\n {{ config.failureDetails.actual }}\n </div>\n </div>\n </div>\n\n <!-- Visual Comparison Component -->\n <cqa-visual-comparison\n *ngIf=\"config.failureDetails\"\n [testStepResultId]=\"testStepResultId\"\n [screenshots]=\"config.failureDetails.screenshots\"\n [logs]=\"config.failureDetails.logs\"\n (makeCurrentBaseline)=\"onMakeCurrentBaseline($event)\"\n (uploadBaseline)=\"onUploadBaseline($event)\"\n (analyze)=\"onAnalyze()\"\n [testStepResultId]=\"testStepResultId\"\n [isUploadingBaseline]=\"isUploadingBaseline\"\n [isLive]=\"isLive\"\n (viewFullLogs)=\"onViewFullLogs()\">\n </cqa-visual-comparison>\n\n <!-- AI Fix Message -->\n <div *ngIf=\"config.failureDetails.aiFixApplied\" class=\"cqa-px-3 cqa-pt-1.5 cqa-pb-2 cqa-rounded-xl cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-[#FAF5FF]\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0F172A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-3\">\n <div><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"16\" height=\"16\" rx=\"4\" fill=\"url(#paint0_linear_4070_7201)\"/><path d=\"M8.00941 3.5C8.06489 3.52274 8.08859 3.57827 8.11131 3.62985C8.12269 3.6599 8.13314 3.69012 8.14329 3.72058C8.14726 3.73225 8.15123 3.74392 8.15532 3.75594C8.20806 3.913 8.25504 4.07175 8.30229 4.23038C8.31297 4.26619 8.32369 4.30199 8.33442 4.33778C8.38905 4.52004 8.44327 4.7024 8.49719 4.88484C8.50476 4.91047 8.51234 4.93609 8.51992 4.96171C8.54128 5.03395 8.56262 5.10619 8.58383 5.17847C8.62867 5.3312 8.67473 5.48347 8.72378 5.63501C8.72807 5.64827 8.73236 5.66152 8.73677 5.67518C8.8642 6.065 9.04482 6.41437 9.3409 6.71196C9.34823 6.7197 9.35556 6.72744 9.36312 6.73541C9.4895 6.86437 9.65169 6.96771 9.8138 7.05111C9.82206 7.05542 9.83031 7.05974 9.83882 7.06419C10.3159 7.30925 10.8895 7.41704 11.4062 7.5605C11.6326 7.6234 11.8583 7.68829 12.0832 7.75603C12.099 7.76079 12.1148 7.76554 12.1306 7.77028C12.1778 7.78445 12.225 7.79887 12.2721 7.81347C12.2831 7.81679 12.2941 7.82011 12.3054 7.82353C12.3703 7.84406 12.4324 7.86829 12.4857 7.91027C12.5019 7.94418 12.5019 7.94418 12.4975 7.9781C12.4456 8.02736 12.3942 8.05046 12.3258 8.073C12.316 8.07632 12.3062 8.07965 12.2961 8.08308C12.1806 8.12183 12.0635 8.15575 11.9463 8.18935C11.9222 8.1963 11.8981 8.20326 11.8741 8.21021C11.7257 8.25301 11.5771 8.2949 11.4283 8.33632C11.2323 8.39088 11.0366 8.44634 10.8411 8.50243C10.8091 8.51162 10.7771 8.52078 10.745 8.52991C10.5767 8.57786 10.4092 8.62753 10.2431 8.68208C10.2294 8.68659 10.2156 8.6911 10.2014 8.69574C9.64511 8.88082 9.2211 9.22609 8.95571 9.73099C8.81263 10.0148 8.72823 10.3216 8.64214 10.6245C8.61884 10.7062 8.59409 10.7875 8.56905 10.8687C8.5494 10.9326 8.5302 10.9966 8.51149 11.0608C8.50926 11.0684 8.50703 11.0761 8.50473 11.0839C8.49394 11.1209 8.48319 11.1579 8.47252 11.195C8.44519 11.2888 8.41578 11.3819 8.38555 11.4749C8.33191 11.6402 8.2831 11.8067 8.23459 11.9735C8.16144 12.2246 8.16144 12.2246 8.11997 12.3453C8.11721 12.3534 8.11446 12.3615 8.11163 12.3698C8.09649 12.4128 8.08092 12.4523 8.05226 12.4887C8.00867 12.4979 8.00867 12.4979 7.96951 12.5C7.92473 12.4376 7.89508 12.3771 7.87133 12.3051C7.86787 12.2949 7.86441 12.2847 7.86085 12.2741C7.81684 12.1425 7.77751 12.0095 7.73817 11.8765C7.72916 11.846 7.72011 11.8156 7.71106 11.7852C7.6436 11.5586 7.57725 11.3317 7.51101 11.1048C7.23507 9.98224 7.23507 9.98224 6.539 9.07466C6.52784 9.06596 6.51669 9.05726 6.50519 9.0483C6.04913 8.69902 5.44834 8.5697 4.89815 8.41813C4.76207 8.38062 4.62605 8.34293 4.49003 8.30523C4.47814 8.30193 4.47814 8.30193 4.466 8.29857C4.26981 8.24417 4.07367 8.18963 3.87822 8.13283C3.86996 8.13045 3.86169 8.12806 3.85317 8.12561C3.5529 8.03883 3.5529 8.03883 3.50065 7.9781C3.49917 7.95054 3.49917 7.95054 3.51247 7.92157C3.56708 7.8704 3.62008 7.84848 3.69216 7.82619C3.7026 7.82284 3.71303 7.81948 3.72379 7.81603C3.75575 7.80582 3.78779 7.79584 3.81985 7.78592C3.829 7.78305 3.83815 7.78017 3.84758 7.77722C3.91228 7.75693 3.97722 7.7374 4.04226 7.71809C4.05824 7.71332 4.05824 7.71332 4.07454 7.70846C4.35227 7.62587 4.63181 7.549 4.91126 7.47196C5.1195 7.41455 5.32738 7.35618 5.5346 7.29548C5.54413 7.29271 5.55365 7.28993 5.56346 7.28707C6.0435 7.14696 6.51278 6.94816 6.82274 6.5537C6.82738 6.54785 6.83202 6.542 6.8368 6.53597C7.18197 6.09815 7.31658 5.56572 7.46696 5.04621C7.51642 4.87535 7.56649 4.70464 7.61673 4.53399C7.63064 4.48673 7.64453 4.43947 7.65836 4.39219C7.71394 4.20229 7.77035 4.01264 7.83 3.82386C7.83558 3.80619 7.84114 3.7885 7.84666 3.77081C7.93017 3.50399 7.93017 3.50399 8.00941 3.5Z\" fill=\"white\"/><path d=\"M10.7358 4.05535C10.7901 4.11409 10.801 4.18312 10.8179 4.25813C10.8742 4.49376 10.9392 4.71042 11.1645 4.8473C11.3036 4.92083 11.4693 4.9543 11.6234 4.9859C11.6884 4.99951 11.7434 5.01758 11.7991 5.0537C11.8117 5.07278 11.8117 5.07278 11.8109 5.10598C11.798 5.14637 11.7867 5.15939 11.7526 5.18582C11.7153 5.19775 11.7153 5.19775 11.6706 5.20702C11.6536 5.21074 11.6367 5.21449 11.6198 5.21828C11.6107 5.22029 11.6017 5.2223 11.5924 5.22437C11.3168 5.28531 11.3168 5.28531 11.0787 5.42322C11.071 5.42918 11.0632 5.43514 11.0552 5.44128C10.885 5.58479 10.849 5.82351 10.7978 6.0235C10.7949 6.03448 10.7919 6.04546 10.7889 6.05678C10.7864 6.0665 10.7838 6.07622 10.7812 6.08624C10.7702 6.11593 10.7587 6.13528 10.7358 6.15803C10.6722 6.16576 10.6722 6.16576 10.6413 6.15803C10.592 6.12155 10.581 6.07999 10.5682 6.02414C10.566 6.01549 10.5639 6.00685 10.5616 5.99794C10.5548 5.97032 10.5481 5.94266 10.5415 5.91498C10.4897 5.69946 10.4311 5.488 10.2244 5.36167C10.0628 5.2755 9.86634 5.23475 9.68575 5.20185C9.63625 5.19199 9.60789 5.1796 9.57725 5.1406C9.5706 5.10104 9.5706 5.10104 9.57725 5.06147C9.62435 5.01486 9.6739 5.00348 9.73759 4.9894C9.75766 4.98465 9.77772 4.97987 9.79777 4.97505C9.80813 4.97258 9.81849 4.97011 9.82917 4.96756C9.882 4.95456 9.93431 4.93998 9.9866 4.92511C9.99611 4.92247 10.0056 4.91984 10.0154 4.91712C10.1217 4.88673 10.2134 4.84786 10.2984 4.77885C10.3063 4.77261 10.3143 4.76638 10.3224 4.75995C10.4547 4.64614 10.4996 4.47516 10.5404 4.31562C10.5435 4.30351 10.5466 4.2914 10.5498 4.27892C10.556 4.25459 10.5621 4.23023 10.5681 4.20585C10.5723 4.18888 10.5723 4.18888 10.5767 4.17157C10.5791 4.16144 10.5816 4.1513 10.5842 4.14086C10.5951 4.1086 10.6094 4.08326 10.6294 4.05535C10.668 4.03692 10.695 4.04525 10.7358 4.05535Z\" fill=\"#EDE9FE\"/><path d=\"M5.29554 9.74722C5.3096 9.74731 5.3096 9.74731 5.32395 9.74741C5.42486 9.75035 5.49314 9.78127 5.56745 9.84613C5.65393 9.93545 5.69386 10.0362 5.69159 10.1566C5.68188 10.2542 5.62167 10.3395 5.54782 10.4055C5.4609 10.4725 5.37322 10.4947 5.26215 10.4916C5.1685 10.4812 5.08039 10.4386 5.01402 10.3746C4.93147 10.2669 4.90734 10.1682 4.91944 10.0355C4.94443 9.93104 5.01646 9.84625 5.1086 9.78678C5.1726 9.75576 5.22408 9.74665 5.29554 9.74722Z\" fill=\"white\"/><defs><linearGradient id=\"paint0_linear_4070_7201\" x1=\"0\" y1=\"0\" x2=\"16\" y2=\"16\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8B5CF6\"/><stop offset=\"1\" stop-color=\"#9333EA\"/></linearGradient></defs></svg></div>\n {{ config.failureDetails.aiFixMessage || 'AI Insights' }}\n <span class=\"cqa-inline-block cqa-py-[2px] cqa-px-[10px] cqa-text-center cqa-rounded-[5px] cqa-bg-[#EDE9FE] cqa-text-[8px] cqa-leading-[12px] cqa-text-[#6D28D9]\">94% confidence</span>\n </div>\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#64748B]\">Reasoning</div>\n <ul class=\"cqa-flex cqa-flex-col cqa-gap-1.5\">\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Stale state: test attribute as primary locator (highest priority)\n </li>\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Confidence score: 94% based on DOM similarity analysis\n </li>\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Increased wait time from 2s to 5s due to button latency\n </li>\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Environment binding: speed of assets by 20% through optimized caching\n </li>\n </ul>\n </div>\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#64748B]\">Suggested Fixes</div>\n <div class=\"cqa-px-[10px] cqa-py-[2px] cqa-rounded-[5px] cqa-flex cqa-items-center cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#065F46] cqa-bg-[#ECFDF5] cqa-border cqa-border-solid cqa-border-[#D1FAE5]\">\n <div><svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.66662 5.83336C1.58777 5.83363 1.51047 5.81152 1.44369 5.7696C1.3769 5.72768 1.32339 5.66768 1.28935 5.59655C1.25532 5.52543 1.24216 5.4461 1.25141 5.3678C1.26067 5.2895 1.29195 5.21543 1.34162 5.15419L5.46662 0.904194C5.49757 0.868478 5.53973 0.844342 5.5862 0.835749C5.63267 0.827156 5.68067 0.834616 5.72234 0.856904C5.76401 0.879192 5.79687 0.914984 5.81551 0.958406C5.83416 1.00183 5.83749 1.0503 5.82496 1.09586L5.02496 3.60419C5.00137 3.66733 4.99344 3.73524 5.00187 3.80211C5.01029 3.86898 5.03481 3.93281 5.07333 3.98812C5.11184 4.04343 5.16319 4.08857 5.22299 4.11968C5.28278 4.15078 5.34922 4.16691 5.41662 4.16669H8.33329C8.41214 4.16643 8.48944 4.18853 8.55622 4.23045C8.62301 4.27237 8.67653 4.33238 8.71056 4.4035C8.7446 4.47463 8.75775 4.55395 8.7485 4.63225C8.73924 4.71056 8.70796 4.78463 8.65829 4.84586L4.53329 9.09586C4.50235 9.13158 4.46018 9.15571 4.41371 9.1643C4.36725 9.1729 4.31924 9.16544 4.27757 9.14315C4.2359 9.12086 4.20305 9.08507 4.1844 9.04165C4.16575 8.99823 4.16242 8.94976 4.17496 8.90419L4.97496 6.39586C4.99855 6.33273 5.00647 6.26481 4.99804 6.19794C4.98962 6.13107 4.9651 6.06724 4.92659 6.01193C4.88807 5.95662 4.83672 5.91148 4.77692 5.88038C4.71713 5.84927 4.65069 5.83314 4.58329 5.83336H1.66662Z\" stroke=\"#059669\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n Update locator to use data-testid='registration-submit' instead of #submit-btn\n </div>\n <div class=\"cqa-px-[10px] cqa-py-[2px] cqa-rounded-[5px] cqa-flex cqa-items-center cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#065F46] cqa-bg-[#ECFDF5] cqa-border cqa-border-solid cqa-border-[#D1FAE5]\">\n <div><svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.66662 5.83336C1.58777 5.83363 1.51047 5.81152 1.44369 5.7696C1.3769 5.72768 1.32339 5.66768 1.28935 5.59655C1.25532 5.52543 1.24216 5.4461 1.25141 5.3678C1.26067 5.2895 1.29195 5.21543 1.34162 5.15419L5.46662 0.904194C5.49757 0.868478 5.53973 0.844342 5.5862 0.835749C5.63267 0.827156 5.68067 0.834616 5.72234 0.856904C5.76401 0.879192 5.79687 0.914984 5.81551 0.958406C5.83416 1.00183 5.83749 1.0503 5.82496 1.09586L5.02496 3.60419C5.00137 3.66733 4.99344 3.73524 5.00187 3.80211C5.01029 3.86898 5.03481 3.93281 5.07333 3.98812C5.11184 4.04343 5.16319 4.08857 5.22299 4.11968C5.28278 4.15078 5.34922 4.16691 5.41662 4.16669H8.33329C8.41214 4.16643 8.48944 4.18853 8.55622 4.23045C8.62301 4.27237 8.67653 4.33238 8.71056 4.4035C8.7446 4.47463 8.75775 4.55395 8.7485 4.63225C8.73924 4.71056 8.70796 4.78463 8.65829 4.84586L4.53329 9.09586C4.50235 9.13158 4.46018 9.15571 4.41371 9.1643C4.36725 9.1729 4.31924 9.16544 4.27757 9.14315C4.2359 9.12086 4.20305 9.08507 4.1844 9.04165C4.16575 8.99823 4.16242 8.94976 4.17496 8.90419L4.97496 6.39586C4.99855 6.33273 5.00647 6.26481 4.99804 6.19794C4.98962 6.13107 4.9651 6.06724 4.92659 6.01193C4.88807 5.95662 4.83672 5.91148 4.77692 5.88038C4.71713 5.84927 4.65069 5.83314 4.58329 5.83336H1.66662Z\" stroke=\"#059669\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n Add explicit wait for network idle before clicking submit\n </div>\n <div class=\"cqa-px-[10px] cqa-py-[2px] cqa-rounded-[5px] cqa-flex cqa-items-center cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#065F46] cqa-bg-[#ECFDF5] cqa-border cqa-border-solid cqa-border-[#D1FAE5]\">\n <div><svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.66662 5.83336C1.58777 5.83363 1.51047 5.81152 1.44369 5.7696C1.3769 5.72768 1.32339 5.66768 1.28935 5.59655C1.25532 5.52543 1.24216 5.4461 1.25141 5.3678C1.26067 5.2895 1.29195 5.21543 1.34162 5.15419L5.46662 0.904194C5.49757 0.868478 5.53973 0.844342 5.5862 0.835749C5.63267 0.827156 5.68067 0.834616 5.72234 0.856904C5.76401 0.879192 5.79687 0.914984 5.81551 0.958406C5.83416 1.00183 5.83749 1.0503 5.82496 1.09586L5.02496 3.60419C5.00137 3.66733 4.99344 3.73524 5.00187 3.80211C5.01029 3.86898 5.03481 3.93281 5.07333 3.98812C5.11184 4.04343 5.16319 4.08857 5.22299 4.11968C5.28278 4.15078 5.34922 4.16691 5.41662 4.16669H8.33329C8.41214 4.16643 8.48944 4.18853 8.55622 4.23045C8.62301 4.27237 8.67653 4.33238 8.71056 4.4035C8.7446 4.47463 8.75775 4.55395 8.7485 4.63225C8.73924 4.71056 8.70796 4.78463 8.65829 4.84586L4.53329 9.09586C4.50235 9.13158 4.46018 9.15571 4.41371 9.1643C4.36725 9.1729 4.31924 9.16544 4.27757 9.14315C4.2359 9.12086 4.20305 9.08507 4.1844 9.04165C4.16575 8.99823 4.16242 8.94976 4.17496 8.90419L4.97496 6.39586C4.99855 6.33273 5.00647 6.26481 4.99804 6.19794C4.98962 6.13107 4.9651 6.06724 4.92659 6.01193C4.88807 5.95662 4.83672 5.91148 4.77692 5.88038C4.71713 5.84927 4.65069 5.83314 4.58329 5.83336H1.66662Z\" stroke=\"#059669\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n Consider adding retry logic for form submission step\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.VisualComparisonComponent, selector: "cqa-visual-comparison", inputs: ["screenshots", "logs", "showFullLogsLink", "isUploadingBaseline", "isMakingCurrentBaseline", "isLive", "testStepResultId"], outputs: ["makeCurrentBaseline", "uploadBaseline", "analyze", "viewFullLogs"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
75
|
+
FailedStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FailedStepComponent, selector: "cqa-failed-step", inputs: { id: "id", testStepResultId: "testStepResultId", stepNumber: "stepNumber", title: "title", status: "status", duration: "duration", timingBreakdown: "timingBreakdown", expanded: "expanded", subSteps: "subSteps", failureDetails: "failureDetails", isUploadingBaseline: "isUploadingBaseline", isLive: "isLive", isDebug: "isDebug", addStepMenuOptions: "addStepMenuOptions", stepMoreMenuOptions: "stepMoreMenuOptions" }, outputs: { makeCurrentBaseline: "makeCurrentBaseline", uploadBaseline: "uploadBaseline", analyze: "analyze", viewFullLogs: "viewFullLogs", editStep: "editStep", addStepOptionSelect: "addStepOptionSelect", stepMoreOptionSelect: "stepMoreOptionSelect" }, host: { classAttribute: "cqa-ui-root" }, usesInheritance: true, ngImport: i0, template: "<div>\n <!-- Header -->\n <div\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-p-2 cqa-cursor-pointer cqa-bg-[#FFFAFA]\"\n style=\"border-left: '2px solid #EF4444'\"\n (click)=\"toggle()\">\n \n <!-- Status Icon -->\n <div *ngIf=\"config.status.toLowerCase() === 'success'\" ><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.9005 4.99999C11.1289 6.12064 10.9662 7.28571 10.4395 8.30089C9.91279 9.31608 9.054 10.12 8.00631 10.5787C6.95862 11.0373 5.78536 11.1229 4.6822 10.8212C3.57904 10.5195 2.61265 9.84869 1.94419 8.92071C1.27573 7.99272 0.945611 6.86361 1.00888 5.72169C1.07215 4.57976 1.52499 3.49404 2.29188 2.64558C3.05876 1.79712 4.09334 1.23721 5.22308 1.05922C6.35282 0.881233 7.50944 1.09592 8.50005 1.66749\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 5.5L6 7L11 2\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <div *ngIf=\"config.status.toLowerCase() === 'failure'\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7.5 4.5L4.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 4.5L7.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n\n <!-- Step Number and Title -->\n <div class=\"cqa-flex-1 cqa-flex cqa-items-center cqa-gap-3\">\n <span class=\"cqa-font-bold cqa-text-[#7F1D1D] cqa-text-[11px] cqa-leading-[13px]\">\n {{ config.stepNumber }}. <span [innerHTML]=\"config.title\"></span>\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-items-center cqa-gap-1\">\n <div *ngIf=\"isDebug\" class=\"cqa-flex cqa-items-center cqa-gap-0.5 cqa-text-[#9CA3AF]\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" aria-label=\"Edit\" (click)=\"onEditStep($event)\">\n <mat-icon class=\"!cqa-text-[14px] !cqa-w-[14px] !cqa-h-[14px]\">edit</mat-icon>\n </button>\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" aria-label=\"Add\" [matMenuTriggerFor]=\"addStepMenu\">\n <mat-icon class=\"!cqa-text-[14px] !cqa-w-[14px] !cqa-h-[14px]\">add</mat-icon>\n </button>\n <mat-menu #addStepMenu=\"matMenu\" class=\"cqa-add-step-menu\" xPosition=\"before\" yPosition=\"below\">\n <button mat-menu-item *ngFor=\"let opt of addStepMenuOptions\" (click)=\"onAddStepOptionSelect(opt, $event)\">{{ opt.label }}</button>\n </mat-menu>\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" aria-label=\"More options\" [matMenuTriggerFor]=\"stepMoreMenu\">\n <mat-icon class=\"!cqa-text-[14px] !cqa-w-[14px] !cqa-h-[14px]\">more_vert</mat-icon>\n </button>\n <mat-menu #stepMoreMenu=\"matMenu\" class=\"cqa-step-more-menu\" xPosition=\"before\" yPosition=\"below\">\n <button mat-menu-item *ngFor=\"let opt of stepMoreMenuOptions\" (click)=\"onStepMoreOptionSelect(opt, $event)\">{{ opt.label }}</button>\n </mat-menu>\n </div>\n <span class=\"cqa-text-[9px] cqa-leading-[20px] cqa-font-bold cqa-text-[#B91C1C]\">\n {{ formatDuration(config.duration) }}\n </span>\n <svg [class.cqa-rotate-180]=\"isExpanded\" width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.5 3.75L5 6.25L7.5 3.75\" stroke=\"#F87171\" stroke-width=\"0.833333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n </div>\n <!-- Expanded Content -->\n <div *ngIf=\"isExpanded\" class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-p-2\" style=\"border-left: '2px solid #FAC7C7'; border-bottom: '1px solid #FEE2E2'\">\n <!-- Sub-steps -->\n <div *ngIf=\"config.subSteps && config.subSteps.length > 0\" class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-pl-[9px]\" style=\"border-left: 1px solid #F3F4F6;\">\n <div\n *ngFor=\"let subStep of config.subSteps\"\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-text-[9px] cqa-leading-[20px]\"\n [ngClass]=\"subStep.description === config.failureDetails.failedAction ? 'cqa-text-[#B91C1C]' : 'cqa-text-[#475569]'\">\n \n <!-- Failed Action Indicator -->\n <span *ngIf=\"subStep.description === config.failureDetails.failedAction\" class=\"cqa-text-[#EF4444] cqa-font-bold\">\u2022</span>\n\n <!-- Sub-step Description -->\n <span class=\"cqa-flex-1\" [ngClass]=\"subStep.description === config.failureDetails.failedAction ? 'cqa-font-medium' : ''\">\n {{ subStep.description }}\n </span>\n\n <!-- Sub-step Timestamp or Duration -->\n <span [ngClass]=\"subStep.description === config.failureDetails.failedAction ? 'cqa-text-[#FCA5A5]' : 'cqa-text-[#D1D5DB]'\">\n {{ subStep.timestamp || formatDuration(subStep.duration) }}\n </span>\n </div>\n </div>\n\n <!-- Expected vs Actual Comparison -->\n <div *ngIf=\"config.failureDetails\" class=\"cqa-grid cqa-grid-cols-2 cqa-rounded cqa-overflow-hidden cqa-border cqa-border-solid cqa-border-[#E5E7EB]\">\n <!-- Expected Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-white\" style=\"border-right: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-[#9CA3AF]\">EXPECTED</div>\n <div class=\"cqa-text-[#374151]\">\n {{ config.failureDetails.expected }}\n </div>\n </div>\n\n <!-- Actual Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-[#FEF8F8]\">\n <div class=\"cqa-text-[#F87171]\">ACTUAL</div>\n <div class=\"cqa-text-[#991B1B]\">\n {{ config.failureDetails.actual }}\n </div>\n </div>\n </div>\n\n <!-- Visual Comparison Component -->\n <cqa-visual-comparison\n *ngIf=\"config.failureDetails\"\n [testStepResultId]=\"testStepResultId\"\n [screenshots]=\"config.failureDetails.screenshots\"\n [logs]=\"config.failureDetails.logs\"\n (makeCurrentBaseline)=\"onMakeCurrentBaseline($event)\"\n (uploadBaseline)=\"onUploadBaseline($event)\"\n (analyze)=\"onAnalyze()\"\n [testStepResultId]=\"testStepResultId\"\n [isUploadingBaseline]=\"isUploadingBaseline\"\n [isLive]=\"isLive\"\n (viewFullLogs)=\"onViewFullLogs()\">\n </cqa-visual-comparison>\n\n <!-- AI Fix Message -->\n <div *ngIf=\"config.failureDetails.aiFixApplied\" class=\"cqa-px-3 cqa-pt-1.5 cqa-pb-2 cqa-rounded-xl cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-[#FAF5FF]\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0F172A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-3\">\n <div><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"16\" height=\"16\" rx=\"4\" fill=\"url(#paint0_linear_4070_7201)\"/><path d=\"M8.00941 3.5C8.06489 3.52274 8.08859 3.57827 8.11131 3.62985C8.12269 3.6599 8.13314 3.69012 8.14329 3.72058C8.14726 3.73225 8.15123 3.74392 8.15532 3.75594C8.20806 3.913 8.25504 4.07175 8.30229 4.23038C8.31297 4.26619 8.32369 4.30199 8.33442 4.33778C8.38905 4.52004 8.44327 4.7024 8.49719 4.88484C8.50476 4.91047 8.51234 4.93609 8.51992 4.96171C8.54128 5.03395 8.56262 5.10619 8.58383 5.17847C8.62867 5.3312 8.67473 5.48347 8.72378 5.63501C8.72807 5.64827 8.73236 5.66152 8.73677 5.67518C8.8642 6.065 9.04482 6.41437 9.3409 6.71196C9.34823 6.7197 9.35556 6.72744 9.36312 6.73541C9.4895 6.86437 9.65169 6.96771 9.8138 7.05111C9.82206 7.05542 9.83031 7.05974 9.83882 7.06419C10.3159 7.30925 10.8895 7.41704 11.4062 7.5605C11.6326 7.6234 11.8583 7.68829 12.0832 7.75603C12.099 7.76079 12.1148 7.76554 12.1306 7.77028C12.1778 7.78445 12.225 7.79887 12.2721 7.81347C12.2831 7.81679 12.2941 7.82011 12.3054 7.82353C12.3703 7.84406 12.4324 7.86829 12.4857 7.91027C12.5019 7.94418 12.5019 7.94418 12.4975 7.9781C12.4456 8.02736 12.3942 8.05046 12.3258 8.073C12.316 8.07632 12.3062 8.07965 12.2961 8.08308C12.1806 8.12183 12.0635 8.15575 11.9463 8.18935C11.9222 8.1963 11.8981 8.20326 11.8741 8.21021C11.7257 8.25301 11.5771 8.2949 11.4283 8.33632C11.2323 8.39088 11.0366 8.44634 10.8411 8.50243C10.8091 8.51162 10.7771 8.52078 10.745 8.52991C10.5767 8.57786 10.4092 8.62753 10.2431 8.68208C10.2294 8.68659 10.2156 8.6911 10.2014 8.69574C9.64511 8.88082 9.2211 9.22609 8.95571 9.73099C8.81263 10.0148 8.72823 10.3216 8.64214 10.6245C8.61884 10.7062 8.59409 10.7875 8.56905 10.8687C8.5494 10.9326 8.5302 10.9966 8.51149 11.0608C8.50926 11.0684 8.50703 11.0761 8.50473 11.0839C8.49394 11.1209 8.48319 11.1579 8.47252 11.195C8.44519 11.2888 8.41578 11.3819 8.38555 11.4749C8.33191 11.6402 8.2831 11.8067 8.23459 11.9735C8.16144 12.2246 8.16144 12.2246 8.11997 12.3453C8.11721 12.3534 8.11446 12.3615 8.11163 12.3698C8.09649 12.4128 8.08092 12.4523 8.05226 12.4887C8.00867 12.4979 8.00867 12.4979 7.96951 12.5C7.92473 12.4376 7.89508 12.3771 7.87133 12.3051C7.86787 12.2949 7.86441 12.2847 7.86085 12.2741C7.81684 12.1425 7.77751 12.0095 7.73817 11.8765C7.72916 11.846 7.72011 11.8156 7.71106 11.7852C7.6436 11.5586 7.57725 11.3317 7.51101 11.1048C7.23507 9.98224 7.23507 9.98224 6.539 9.07466C6.52784 9.06596 6.51669 9.05726 6.50519 9.0483C6.04913 8.69902 5.44834 8.5697 4.89815 8.41813C4.76207 8.38062 4.62605 8.34293 4.49003 8.30523C4.47814 8.30193 4.47814 8.30193 4.466 8.29857C4.26981 8.24417 4.07367 8.18963 3.87822 8.13283C3.86996 8.13045 3.86169 8.12806 3.85317 8.12561C3.5529 8.03883 3.5529 8.03883 3.50065 7.9781C3.49917 7.95054 3.49917 7.95054 3.51247 7.92157C3.56708 7.8704 3.62008 7.84848 3.69216 7.82619C3.7026 7.82284 3.71303 7.81948 3.72379 7.81603C3.75575 7.80582 3.78779 7.79584 3.81985 7.78592C3.829 7.78305 3.83815 7.78017 3.84758 7.77722C3.91228 7.75693 3.97722 7.7374 4.04226 7.71809C4.05824 7.71332 4.05824 7.71332 4.07454 7.70846C4.35227 7.62587 4.63181 7.549 4.91126 7.47196C5.1195 7.41455 5.32738 7.35618 5.5346 7.29548C5.54413 7.29271 5.55365 7.28993 5.56346 7.28707C6.0435 7.14696 6.51278 6.94816 6.82274 6.5537C6.82738 6.54785 6.83202 6.542 6.8368 6.53597C7.18197 6.09815 7.31658 5.56572 7.46696 5.04621C7.51642 4.87535 7.56649 4.70464 7.61673 4.53399C7.63064 4.48673 7.64453 4.43947 7.65836 4.39219C7.71394 4.20229 7.77035 4.01264 7.83 3.82386C7.83558 3.80619 7.84114 3.7885 7.84666 3.77081C7.93017 3.50399 7.93017 3.50399 8.00941 3.5Z\" fill=\"white\"/><path d=\"M10.7358 4.05535C10.7901 4.11409 10.801 4.18312 10.8179 4.25813C10.8742 4.49376 10.9392 4.71042 11.1645 4.8473C11.3036 4.92083 11.4693 4.9543 11.6234 4.9859C11.6884 4.99951 11.7434 5.01758 11.7991 5.0537C11.8117 5.07278 11.8117 5.07278 11.8109 5.10598C11.798 5.14637 11.7867 5.15939 11.7526 5.18582C11.7153 5.19775 11.7153 5.19775 11.6706 5.20702C11.6536 5.21074 11.6367 5.21449 11.6198 5.21828C11.6107 5.22029 11.6017 5.2223 11.5924 5.22437C11.3168 5.28531 11.3168 5.28531 11.0787 5.42322C11.071 5.42918 11.0632 5.43514 11.0552 5.44128C10.885 5.58479 10.849 5.82351 10.7978 6.0235C10.7949 6.03448 10.7919 6.04546 10.7889 6.05678C10.7864 6.0665 10.7838 6.07622 10.7812 6.08624C10.7702 6.11593 10.7587 6.13528 10.7358 6.15803C10.6722 6.16576 10.6722 6.16576 10.6413 6.15803C10.592 6.12155 10.581 6.07999 10.5682 6.02414C10.566 6.01549 10.5639 6.00685 10.5616 5.99794C10.5548 5.97032 10.5481 5.94266 10.5415 5.91498C10.4897 5.69946 10.4311 5.488 10.2244 5.36167C10.0628 5.2755 9.86634 5.23475 9.68575 5.20185C9.63625 5.19199 9.60789 5.1796 9.57725 5.1406C9.5706 5.10104 9.5706 5.10104 9.57725 5.06147C9.62435 5.01486 9.6739 5.00348 9.73759 4.9894C9.75766 4.98465 9.77772 4.97987 9.79777 4.97505C9.80813 4.97258 9.81849 4.97011 9.82917 4.96756C9.882 4.95456 9.93431 4.93998 9.9866 4.92511C9.99611 4.92247 10.0056 4.91984 10.0154 4.91712C10.1217 4.88673 10.2134 4.84786 10.2984 4.77885C10.3063 4.77261 10.3143 4.76638 10.3224 4.75995C10.4547 4.64614 10.4996 4.47516 10.5404 4.31562C10.5435 4.30351 10.5466 4.2914 10.5498 4.27892C10.556 4.25459 10.5621 4.23023 10.5681 4.20585C10.5723 4.18888 10.5723 4.18888 10.5767 4.17157C10.5791 4.16144 10.5816 4.1513 10.5842 4.14086C10.5951 4.1086 10.6094 4.08326 10.6294 4.05535C10.668 4.03692 10.695 4.04525 10.7358 4.05535Z\" fill=\"#EDE9FE\"/><path d=\"M5.29554 9.74722C5.3096 9.74731 5.3096 9.74731 5.32395 9.74741C5.42486 9.75035 5.49314 9.78127 5.56745 9.84613C5.65393 9.93545 5.69386 10.0362 5.69159 10.1566C5.68188 10.2542 5.62167 10.3395 5.54782 10.4055C5.4609 10.4725 5.37322 10.4947 5.26215 10.4916C5.1685 10.4812 5.08039 10.4386 5.01402 10.3746C4.93147 10.2669 4.90734 10.1682 4.91944 10.0355C4.94443 9.93104 5.01646 9.84625 5.1086 9.78678C5.1726 9.75576 5.22408 9.74665 5.29554 9.74722Z\" fill=\"white\"/><defs><linearGradient id=\"paint0_linear_4070_7201\" x1=\"0\" y1=\"0\" x2=\"16\" y2=\"16\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8B5CF6\"/><stop offset=\"1\" stop-color=\"#9333EA\"/></linearGradient></defs></svg></div>\n {{ config.failureDetails.aiFixMessage || 'AI Insights' }}\n <span class=\"cqa-inline-block cqa-py-[2px] cqa-px-[10px] cqa-text-center cqa-rounded-[5px] cqa-bg-[#EDE9FE] cqa-text-[8px] cqa-leading-[12px] cqa-text-[#6D28D9]\">94% confidence</span>\n </div>\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#64748B]\">Reasoning</div>\n <ul class=\"cqa-flex cqa-flex-col cqa-gap-1.5\">\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Stale state: test attribute as primary locator (highest priority)\n </li>\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Confidence score: 94% based on DOM similarity analysis\n </li>\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Increased wait time from 2s to 5s due to button latency\n </li>\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Environment binding: speed of assets by 20% through optimized caching\n </li>\n </ul>\n </div>\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#64748B]\">Suggested Fixes</div>\n <div class=\"cqa-px-[10px] cqa-py-[2px] cqa-rounded-[5px] cqa-flex cqa-items-center cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#065F46] cqa-bg-[#ECFDF5] cqa-border cqa-border-solid cqa-border-[#D1FAE5]\">\n <div><svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.66662 5.83336C1.58777 5.83363 1.51047 5.81152 1.44369 5.7696C1.3769 5.72768 1.32339 5.66768 1.28935 5.59655C1.25532 5.52543 1.24216 5.4461 1.25141 5.3678C1.26067 5.2895 1.29195 5.21543 1.34162 5.15419L5.46662 0.904194C5.49757 0.868478 5.53973 0.844342 5.5862 0.835749C5.63267 0.827156 5.68067 0.834616 5.72234 0.856904C5.76401 0.879192 5.79687 0.914984 5.81551 0.958406C5.83416 1.00183 5.83749 1.0503 5.82496 1.09586L5.02496 3.60419C5.00137 3.66733 4.99344 3.73524 5.00187 3.80211C5.01029 3.86898 5.03481 3.93281 5.07333 3.98812C5.11184 4.04343 5.16319 4.08857 5.22299 4.11968C5.28278 4.15078 5.34922 4.16691 5.41662 4.16669H8.33329C8.41214 4.16643 8.48944 4.18853 8.55622 4.23045C8.62301 4.27237 8.67653 4.33238 8.71056 4.4035C8.7446 4.47463 8.75775 4.55395 8.7485 4.63225C8.73924 4.71056 8.70796 4.78463 8.65829 4.84586L4.53329 9.09586C4.50235 9.13158 4.46018 9.15571 4.41371 9.1643C4.36725 9.1729 4.31924 9.16544 4.27757 9.14315C4.2359 9.12086 4.20305 9.08507 4.1844 9.04165C4.16575 8.99823 4.16242 8.94976 4.17496 8.90419L4.97496 6.39586C4.99855 6.33273 5.00647 6.26481 4.99804 6.19794C4.98962 6.13107 4.9651 6.06724 4.92659 6.01193C4.88807 5.95662 4.83672 5.91148 4.77692 5.88038C4.71713 5.84927 4.65069 5.83314 4.58329 5.83336H1.66662Z\" stroke=\"#059669\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n Update locator to use data-testid='registration-submit' instead of #submit-btn\n </div>\n <div class=\"cqa-px-[10px] cqa-py-[2px] cqa-rounded-[5px] cqa-flex cqa-items-center cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#065F46] cqa-bg-[#ECFDF5] cqa-border cqa-border-solid cqa-border-[#D1FAE5]\">\n <div><svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.66662 5.83336C1.58777 5.83363 1.51047 5.81152 1.44369 5.7696C1.3769 5.72768 1.32339 5.66768 1.28935 5.59655C1.25532 5.52543 1.24216 5.4461 1.25141 5.3678C1.26067 5.2895 1.29195 5.21543 1.34162 5.15419L5.46662 0.904194C5.49757 0.868478 5.53973 0.844342 5.5862 0.835749C5.63267 0.827156 5.68067 0.834616 5.72234 0.856904C5.76401 0.879192 5.79687 0.914984 5.81551 0.958406C5.83416 1.00183 5.83749 1.0503 5.82496 1.09586L5.02496 3.60419C5.00137 3.66733 4.99344 3.73524 5.00187 3.80211C5.01029 3.86898 5.03481 3.93281 5.07333 3.98812C5.11184 4.04343 5.16319 4.08857 5.22299 4.11968C5.28278 4.15078 5.34922 4.16691 5.41662 4.16669H8.33329C8.41214 4.16643 8.48944 4.18853 8.55622 4.23045C8.62301 4.27237 8.67653 4.33238 8.71056 4.4035C8.7446 4.47463 8.75775 4.55395 8.7485 4.63225C8.73924 4.71056 8.70796 4.78463 8.65829 4.84586L4.53329 9.09586C4.50235 9.13158 4.46018 9.15571 4.41371 9.1643C4.36725 9.1729 4.31924 9.16544 4.27757 9.14315C4.2359 9.12086 4.20305 9.08507 4.1844 9.04165C4.16575 8.99823 4.16242 8.94976 4.17496 8.90419L4.97496 6.39586C4.99855 6.33273 5.00647 6.26481 4.99804 6.19794C4.98962 6.13107 4.9651 6.06724 4.92659 6.01193C4.88807 5.95662 4.83672 5.91148 4.77692 5.88038C4.71713 5.84927 4.65069 5.83314 4.58329 5.83336H1.66662Z\" stroke=\"#059669\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n Add explicit wait for network idle before clicking submit\n </div>\n <div class=\"cqa-px-[10px] cqa-py-[2px] cqa-rounded-[5px] cqa-flex cqa-items-center cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#065F46] cqa-bg-[#ECFDF5] cqa-border cqa-border-solid cqa-border-[#D1FAE5]\">\n <div><svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.66662 5.83336C1.58777 5.83363 1.51047 5.81152 1.44369 5.7696C1.3769 5.72768 1.32339 5.66768 1.28935 5.59655C1.25532 5.52543 1.24216 5.4461 1.25141 5.3678C1.26067 5.2895 1.29195 5.21543 1.34162 5.15419L5.46662 0.904194C5.49757 0.868478 5.53973 0.844342 5.5862 0.835749C5.63267 0.827156 5.68067 0.834616 5.72234 0.856904C5.76401 0.879192 5.79687 0.914984 5.81551 0.958406C5.83416 1.00183 5.83749 1.0503 5.82496 1.09586L5.02496 3.60419C5.00137 3.66733 4.99344 3.73524 5.00187 3.80211C5.01029 3.86898 5.03481 3.93281 5.07333 3.98812C5.11184 4.04343 5.16319 4.08857 5.22299 4.11968C5.28278 4.15078 5.34922 4.16691 5.41662 4.16669H8.33329C8.41214 4.16643 8.48944 4.18853 8.55622 4.23045C8.62301 4.27237 8.67653 4.33238 8.71056 4.4035C8.7446 4.47463 8.75775 4.55395 8.7485 4.63225C8.73924 4.71056 8.70796 4.78463 8.65829 4.84586L4.53329 9.09586C4.50235 9.13158 4.46018 9.15571 4.41371 9.1643C4.36725 9.1729 4.31924 9.16544 4.27757 9.14315C4.2359 9.12086 4.20305 9.08507 4.1844 9.04165C4.16575 8.99823 4.16242 8.94976 4.17496 8.90419L4.97496 6.39586C4.99855 6.33273 5.00647 6.26481 4.99804 6.19794C4.98962 6.13107 4.9651 6.06724 4.92659 6.01193C4.88807 5.95662 4.83672 5.91148 4.77692 5.88038C4.71713 5.84927 4.65069 5.83314 4.58329 5.83336H1.66662Z\" stroke=\"#059669\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n Consider adding retry logic for form submission step\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i3.VisualComparisonComponent, selector: "cqa-visual-comparison", inputs: ["screenshots", "logs", "showFullLogsLink", "isUploadingBaseline", "isMakingCurrentBaseline", "isLive", "testStepResultId"], outputs: ["makeCurrentBaseline", "uploadBaseline", "analyze", "viewFullLogs"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
52
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FailedStepComponent, decorators: [{
|
|
53
77
|
type: Component,
|
|
54
|
-
args: [{ selector: 'cqa-failed-step', host: { class: 'cqa-ui-root' }, template: "<div>\n <!-- Header -->\n <div\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-p-2 cqa-cursor-pointer cqa-bg-[#FFFAFA]\"\n style=\"border-left: '2px solid #EF4444'\"\n (click)=\"toggle()\">\n \n <!-- Status Icon -->\n <div *ngIf=\"config.status.toLowerCase() === 'success'\" ><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.9005 4.99999C11.1289 6.12064 10.9662 7.28571 10.4395 8.30089C9.91279 9.31608 9.054 10.12 8.00631 10.5787C6.95862 11.0373 5.78536 11.1229 4.6822 10.8212C3.57904 10.5195 2.61265 9.84869 1.94419 8.92071C1.27573 7.99272 0.945611 6.86361 1.00888 5.72169C1.07215 4.57976 1.52499 3.49404 2.29188 2.64558C3.05876 1.79712 4.09334 1.23721 5.22308 1.05922C6.35282 0.881233 7.50944 1.09592 8.50005 1.66749\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 5.5L6 7L11 2\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <div *ngIf=\"config.status.toLowerCase() === 'failure'\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7.5 4.5L4.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 4.5L7.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n\n <!-- Step Number and Title -->\n <div class=\"cqa-flex-1 cqa-flex cqa-items-center cqa-gap-3\">\n <span class=\"cqa-font-bold cqa-text-[#7F1D1D] cqa-text-[11px] cqa-leading-[13px]\">\n {{ config.stepNumber }}. <span [innerHTML]=\"config.title\"></span>\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-items-center cqa-gap-1\">\n <span class=\"cqa-text-[9px] cqa-leading-[20px] cqa-font-bold cqa-text-[#B91C1C]\">\n {{ formatDuration(config.duration) }}\n </span>\n <svg [class.cqa-rotate-180]=\"isExpanded\" width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.5 3.75L5 6.25L7.5 3.75\" stroke=\"#F87171\" stroke-width=\"0.833333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n </div>\n <!-- Expanded Content -->\n <div *ngIf=\"isExpanded\" class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-p-2\" style=\"border-left: '2px solid #FAC7C7'; border-bottom: '1px solid #FEE2E2'\">\n <!-- Sub-steps -->\n <div *ngIf=\"config.subSteps && config.subSteps.length > 0\" class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-pl-[9px]\" style=\"border-left: 1px solid #F3F4F6;\">\n <div\n *ngFor=\"let subStep of config.subSteps\"\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-text-[9px] cqa-leading-[20px]\"\n [ngClass]=\"subStep.description === config.failureDetails.failedAction ? 'cqa-text-[#B91C1C]' : 'cqa-text-[#475569]'\">\n \n <!-- Failed Action Indicator -->\n <span *ngIf=\"subStep.description === config.failureDetails.failedAction\" class=\"cqa-text-[#EF4444] cqa-font-bold\">\u2022</span>\n\n <!-- Sub-step Description -->\n <span class=\"cqa-flex-1\" [ngClass]=\"subStep.description === config.failureDetails.failedAction ? 'cqa-font-medium' : ''\">\n {{ subStep.description }}\n </span>\n\n <!-- Sub-step Timestamp or Duration -->\n <span [ngClass]=\"subStep.description === config.failureDetails.failedAction ? 'cqa-text-[#FCA5A5]' : 'cqa-text-[#D1D5DB]'\">\n {{ subStep.timestamp || formatDuration(subStep.duration) }}\n </span>\n </div>\n </div>\n\n <!-- Expected vs Actual Comparison -->\n <div *ngIf=\"config.failureDetails\" class=\"cqa-grid cqa-grid-cols-2 cqa-rounded cqa-overflow-hidden cqa-border cqa-border-solid cqa-border-[#E5E7EB]\">\n <!-- Expected Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-white\" style=\"border-right: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-[#9CA3AF]\">EXPECTED</div>\n <div class=\"cqa-text-[#374151]\">\n {{ config.failureDetails.expected }}\n </div>\n </div>\n\n <!-- Actual Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-[#FEF8F8]\">\n <div class=\"cqa-text-[#F87171]\">ACTUAL</div>\n <div class=\"cqa-text-[#991B1B]\">\n {{ config.failureDetails.actual }}\n </div>\n </div>\n </div>\n\n <!-- Visual Comparison Component -->\n <cqa-visual-comparison\n *ngIf=\"config.failureDetails\"\n [testStepResultId]=\"testStepResultId\"\n [screenshots]=\"config.failureDetails.screenshots\"\n [logs]=\"config.failureDetails.logs\"\n (makeCurrentBaseline)=\"onMakeCurrentBaseline($event)\"\n (uploadBaseline)=\"onUploadBaseline($event)\"\n (analyze)=\"onAnalyze()\"\n [testStepResultId]=\"testStepResultId\"\n [isUploadingBaseline]=\"isUploadingBaseline\"\n [isLive]=\"isLive\"\n (viewFullLogs)=\"onViewFullLogs()\">\n </cqa-visual-comparison>\n\n <!-- AI Fix Message -->\n <div *ngIf=\"config.failureDetails.aiFixApplied\" class=\"cqa-px-3 cqa-pt-1.5 cqa-pb-2 cqa-rounded-xl cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-[#FAF5FF]\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0F172A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-3\">\n <div><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"16\" height=\"16\" rx=\"4\" fill=\"url(#paint0_linear_4070_7201)\"/><path d=\"M8.00941 3.5C8.06489 3.52274 8.08859 3.57827 8.11131 3.62985C8.12269 3.6599 8.13314 3.69012 8.14329 3.72058C8.14726 3.73225 8.15123 3.74392 8.15532 3.75594C8.20806 3.913 8.25504 4.07175 8.30229 4.23038C8.31297 4.26619 8.32369 4.30199 8.33442 4.33778C8.38905 4.52004 8.44327 4.7024 8.49719 4.88484C8.50476 4.91047 8.51234 4.93609 8.51992 4.96171C8.54128 5.03395 8.56262 5.10619 8.58383 5.17847C8.62867 5.3312 8.67473 5.48347 8.72378 5.63501C8.72807 5.64827 8.73236 5.66152 8.73677 5.67518C8.8642 6.065 9.04482 6.41437 9.3409 6.71196C9.34823 6.7197 9.35556 6.72744 9.36312 6.73541C9.4895 6.86437 9.65169 6.96771 9.8138 7.05111C9.82206 7.05542 9.83031 7.05974 9.83882 7.06419C10.3159 7.30925 10.8895 7.41704 11.4062 7.5605C11.6326 7.6234 11.8583 7.68829 12.0832 7.75603C12.099 7.76079 12.1148 7.76554 12.1306 7.77028C12.1778 7.78445 12.225 7.79887 12.2721 7.81347C12.2831 7.81679 12.2941 7.82011 12.3054 7.82353C12.3703 7.84406 12.4324 7.86829 12.4857 7.91027C12.5019 7.94418 12.5019 7.94418 12.4975 7.9781C12.4456 8.02736 12.3942 8.05046 12.3258 8.073C12.316 8.07632 12.3062 8.07965 12.2961 8.08308C12.1806 8.12183 12.0635 8.15575 11.9463 8.18935C11.9222 8.1963 11.8981 8.20326 11.8741 8.21021C11.7257 8.25301 11.5771 8.2949 11.4283 8.33632C11.2323 8.39088 11.0366 8.44634 10.8411 8.50243C10.8091 8.51162 10.7771 8.52078 10.745 8.52991C10.5767 8.57786 10.4092 8.62753 10.2431 8.68208C10.2294 8.68659 10.2156 8.6911 10.2014 8.69574C9.64511 8.88082 9.2211 9.22609 8.95571 9.73099C8.81263 10.0148 8.72823 10.3216 8.64214 10.6245C8.61884 10.7062 8.59409 10.7875 8.56905 10.8687C8.5494 10.9326 8.5302 10.9966 8.51149 11.0608C8.50926 11.0684 8.50703 11.0761 8.50473 11.0839C8.49394 11.1209 8.48319 11.1579 8.47252 11.195C8.44519 11.2888 8.41578 11.3819 8.38555 11.4749C8.33191 11.6402 8.2831 11.8067 8.23459 11.9735C8.16144 12.2246 8.16144 12.2246 8.11997 12.3453C8.11721 12.3534 8.11446 12.3615 8.11163 12.3698C8.09649 12.4128 8.08092 12.4523 8.05226 12.4887C8.00867 12.4979 8.00867 12.4979 7.96951 12.5C7.92473 12.4376 7.89508 12.3771 7.87133 12.3051C7.86787 12.2949 7.86441 12.2847 7.86085 12.2741C7.81684 12.1425 7.77751 12.0095 7.73817 11.8765C7.72916 11.846 7.72011 11.8156 7.71106 11.7852C7.6436 11.5586 7.57725 11.3317 7.51101 11.1048C7.23507 9.98224 7.23507 9.98224 6.539 9.07466C6.52784 9.06596 6.51669 9.05726 6.50519 9.0483C6.04913 8.69902 5.44834 8.5697 4.89815 8.41813C4.76207 8.38062 4.62605 8.34293 4.49003 8.30523C4.47814 8.30193 4.47814 8.30193 4.466 8.29857C4.26981 8.24417 4.07367 8.18963 3.87822 8.13283C3.86996 8.13045 3.86169 8.12806 3.85317 8.12561C3.5529 8.03883 3.5529 8.03883 3.50065 7.9781C3.49917 7.95054 3.49917 7.95054 3.51247 7.92157C3.56708 7.8704 3.62008 7.84848 3.69216 7.82619C3.7026 7.82284 3.71303 7.81948 3.72379 7.81603C3.75575 7.80582 3.78779 7.79584 3.81985 7.78592C3.829 7.78305 3.83815 7.78017 3.84758 7.77722C3.91228 7.75693 3.97722 7.7374 4.04226 7.71809C4.05824 7.71332 4.05824 7.71332 4.07454 7.70846C4.35227 7.62587 4.63181 7.549 4.91126 7.47196C5.1195 7.41455 5.32738 7.35618 5.5346 7.29548C5.54413 7.29271 5.55365 7.28993 5.56346 7.28707C6.0435 7.14696 6.51278 6.94816 6.82274 6.5537C6.82738 6.54785 6.83202 6.542 6.8368 6.53597C7.18197 6.09815 7.31658 5.56572 7.46696 5.04621C7.51642 4.87535 7.56649 4.70464 7.61673 4.53399C7.63064 4.48673 7.64453 4.43947 7.65836 4.39219C7.71394 4.20229 7.77035 4.01264 7.83 3.82386C7.83558 3.80619 7.84114 3.7885 7.84666 3.77081C7.93017 3.50399 7.93017 3.50399 8.00941 3.5Z\" fill=\"white\"/><path d=\"M10.7358 4.05535C10.7901 4.11409 10.801 4.18312 10.8179 4.25813C10.8742 4.49376 10.9392 4.71042 11.1645 4.8473C11.3036 4.92083 11.4693 4.9543 11.6234 4.9859C11.6884 4.99951 11.7434 5.01758 11.7991 5.0537C11.8117 5.07278 11.8117 5.07278 11.8109 5.10598C11.798 5.14637 11.7867 5.15939 11.7526 5.18582C11.7153 5.19775 11.7153 5.19775 11.6706 5.20702C11.6536 5.21074 11.6367 5.21449 11.6198 5.21828C11.6107 5.22029 11.6017 5.2223 11.5924 5.22437C11.3168 5.28531 11.3168 5.28531 11.0787 5.42322C11.071 5.42918 11.0632 5.43514 11.0552 5.44128C10.885 5.58479 10.849 5.82351 10.7978 6.0235C10.7949 6.03448 10.7919 6.04546 10.7889 6.05678C10.7864 6.0665 10.7838 6.07622 10.7812 6.08624C10.7702 6.11593 10.7587 6.13528 10.7358 6.15803C10.6722 6.16576 10.6722 6.16576 10.6413 6.15803C10.592 6.12155 10.581 6.07999 10.5682 6.02414C10.566 6.01549 10.5639 6.00685 10.5616 5.99794C10.5548 5.97032 10.5481 5.94266 10.5415 5.91498C10.4897 5.69946 10.4311 5.488 10.2244 5.36167C10.0628 5.2755 9.86634 5.23475 9.68575 5.20185C9.63625 5.19199 9.60789 5.1796 9.57725 5.1406C9.5706 5.10104 9.5706 5.10104 9.57725 5.06147C9.62435 5.01486 9.6739 5.00348 9.73759 4.9894C9.75766 4.98465 9.77772 4.97987 9.79777 4.97505C9.80813 4.97258 9.81849 4.97011 9.82917 4.96756C9.882 4.95456 9.93431 4.93998 9.9866 4.92511C9.99611 4.92247 10.0056 4.91984 10.0154 4.91712C10.1217 4.88673 10.2134 4.84786 10.2984 4.77885C10.3063 4.77261 10.3143 4.76638 10.3224 4.75995C10.4547 4.64614 10.4996 4.47516 10.5404 4.31562C10.5435 4.30351 10.5466 4.2914 10.5498 4.27892C10.556 4.25459 10.5621 4.23023 10.5681 4.20585C10.5723 4.18888 10.5723 4.18888 10.5767 4.17157C10.5791 4.16144 10.5816 4.1513 10.5842 4.14086C10.5951 4.1086 10.6094 4.08326 10.6294 4.05535C10.668 4.03692 10.695 4.04525 10.7358 4.05535Z\" fill=\"#EDE9FE\"/><path d=\"M5.29554 9.74722C5.3096 9.74731 5.3096 9.74731 5.32395 9.74741C5.42486 9.75035 5.49314 9.78127 5.56745 9.84613C5.65393 9.93545 5.69386 10.0362 5.69159 10.1566C5.68188 10.2542 5.62167 10.3395 5.54782 10.4055C5.4609 10.4725 5.37322 10.4947 5.26215 10.4916C5.1685 10.4812 5.08039 10.4386 5.01402 10.3746C4.93147 10.2669 4.90734 10.1682 4.91944 10.0355C4.94443 9.93104 5.01646 9.84625 5.1086 9.78678C5.1726 9.75576 5.22408 9.74665 5.29554 9.74722Z\" fill=\"white\"/><defs><linearGradient id=\"paint0_linear_4070_7201\" x1=\"0\" y1=\"0\" x2=\"16\" y2=\"16\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8B5CF6\"/><stop offset=\"1\" stop-color=\"#9333EA\"/></linearGradient></defs></svg></div>\n {{ config.failureDetails.aiFixMessage || 'AI Insights' }}\n <span class=\"cqa-inline-block cqa-py-[2px] cqa-px-[10px] cqa-text-center cqa-rounded-[5px] cqa-bg-[#EDE9FE] cqa-text-[8px] cqa-leading-[12px] cqa-text-[#6D28D9]\">94% confidence</span>\n </div>\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#64748B]\">Reasoning</div>\n <ul class=\"cqa-flex cqa-flex-col cqa-gap-1.5\">\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Stale state: test attribute as primary locator (highest priority)\n </li>\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Confidence score: 94% based on DOM similarity analysis\n </li>\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Increased wait time from 2s to 5s due to button latency\n </li>\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Environment binding: speed of assets by 20% through optimized caching\n </li>\n </ul>\n </div>\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#64748B]\">Suggested Fixes</div>\n <div class=\"cqa-px-[10px] cqa-py-[2px] cqa-rounded-[5px] cqa-flex cqa-items-center cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#065F46] cqa-bg-[#ECFDF5] cqa-border cqa-border-solid cqa-border-[#D1FAE5]\">\n <div><svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.66662 5.83336C1.58777 5.83363 1.51047 5.81152 1.44369 5.7696C1.3769 5.72768 1.32339 5.66768 1.28935 5.59655C1.25532 5.52543 1.24216 5.4461 1.25141 5.3678C1.26067 5.2895 1.29195 5.21543 1.34162 5.15419L5.46662 0.904194C5.49757 0.868478 5.53973 0.844342 5.5862 0.835749C5.63267 0.827156 5.68067 0.834616 5.72234 0.856904C5.76401 0.879192 5.79687 0.914984 5.81551 0.958406C5.83416 1.00183 5.83749 1.0503 5.82496 1.09586L5.02496 3.60419C5.00137 3.66733 4.99344 3.73524 5.00187 3.80211C5.01029 3.86898 5.03481 3.93281 5.07333 3.98812C5.11184 4.04343 5.16319 4.08857 5.22299 4.11968C5.28278 4.15078 5.34922 4.16691 5.41662 4.16669H8.33329C8.41214 4.16643 8.48944 4.18853 8.55622 4.23045C8.62301 4.27237 8.67653 4.33238 8.71056 4.4035C8.7446 4.47463 8.75775 4.55395 8.7485 4.63225C8.73924 4.71056 8.70796 4.78463 8.65829 4.84586L4.53329 9.09586C4.50235 9.13158 4.46018 9.15571 4.41371 9.1643C4.36725 9.1729 4.31924 9.16544 4.27757 9.14315C4.2359 9.12086 4.20305 9.08507 4.1844 9.04165C4.16575 8.99823 4.16242 8.94976 4.17496 8.90419L4.97496 6.39586C4.99855 6.33273 5.00647 6.26481 4.99804 6.19794C4.98962 6.13107 4.9651 6.06724 4.92659 6.01193C4.88807 5.95662 4.83672 5.91148 4.77692 5.88038C4.71713 5.84927 4.65069 5.83314 4.58329 5.83336H1.66662Z\" stroke=\"#059669\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n Update locator to use data-testid='registration-submit' instead of #submit-btn\n </div>\n <div class=\"cqa-px-[10px] cqa-py-[2px] cqa-rounded-[5px] cqa-flex cqa-items-center cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#065F46] cqa-bg-[#ECFDF5] cqa-border cqa-border-solid cqa-border-[#D1FAE5]\">\n <div><svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.66662 5.83336C1.58777 5.83363 1.51047 5.81152 1.44369 5.7696C1.3769 5.72768 1.32339 5.66768 1.28935 5.59655C1.25532 5.52543 1.24216 5.4461 1.25141 5.3678C1.26067 5.2895 1.29195 5.21543 1.34162 5.15419L5.46662 0.904194C5.49757 0.868478 5.53973 0.844342 5.5862 0.835749C5.63267 0.827156 5.68067 0.834616 5.72234 0.856904C5.76401 0.879192 5.79687 0.914984 5.81551 0.958406C5.83416 1.00183 5.83749 1.0503 5.82496 1.09586L5.02496 3.60419C5.00137 3.66733 4.99344 3.73524 5.00187 3.80211C5.01029 3.86898 5.03481 3.93281 5.07333 3.98812C5.11184 4.04343 5.16319 4.08857 5.22299 4.11968C5.28278 4.15078 5.34922 4.16691 5.41662 4.16669H8.33329C8.41214 4.16643 8.48944 4.18853 8.55622 4.23045C8.62301 4.27237 8.67653 4.33238 8.71056 4.4035C8.7446 4.47463 8.75775 4.55395 8.7485 4.63225C8.73924 4.71056 8.70796 4.78463 8.65829 4.84586L4.53329 9.09586C4.50235 9.13158 4.46018 9.15571 4.41371 9.1643C4.36725 9.1729 4.31924 9.16544 4.27757 9.14315C4.2359 9.12086 4.20305 9.08507 4.1844 9.04165C4.16575 8.99823 4.16242 8.94976 4.17496 8.90419L4.97496 6.39586C4.99855 6.33273 5.00647 6.26481 4.99804 6.19794C4.98962 6.13107 4.9651 6.06724 4.92659 6.01193C4.88807 5.95662 4.83672 5.91148 4.77692 5.88038C4.71713 5.84927 4.65069 5.83314 4.58329 5.83336H1.66662Z\" stroke=\"#059669\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n Add explicit wait for network idle before clicking submit\n </div>\n <div class=\"cqa-px-[10px] cqa-py-[2px] cqa-rounded-[5px] cqa-flex cqa-items-center cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#065F46] cqa-bg-[#ECFDF5] cqa-border cqa-border-solid cqa-border-[#D1FAE5]\">\n <div><svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.66662 5.83336C1.58777 5.83363 1.51047 5.81152 1.44369 5.7696C1.3769 5.72768 1.32339 5.66768 1.28935 5.59655C1.25532 5.52543 1.24216 5.4461 1.25141 5.3678C1.26067 5.2895 1.29195 5.21543 1.34162 5.15419L5.46662 0.904194C5.49757 0.868478 5.53973 0.844342 5.5862 0.835749C5.63267 0.827156 5.68067 0.834616 5.72234 0.856904C5.76401 0.879192 5.79687 0.914984 5.81551 0.958406C5.83416 1.00183 5.83749 1.0503 5.82496 1.09586L5.02496 3.60419C5.00137 3.66733 4.99344 3.73524 5.00187 3.80211C5.01029 3.86898 5.03481 3.93281 5.07333 3.98812C5.11184 4.04343 5.16319 4.08857 5.22299 4.11968C5.28278 4.15078 5.34922 4.16691 5.41662 4.16669H8.33329C8.41214 4.16643 8.48944 4.18853 8.55622 4.23045C8.62301 4.27237 8.67653 4.33238 8.71056 4.4035C8.7446 4.47463 8.75775 4.55395 8.7485 4.63225C8.73924 4.71056 8.70796 4.78463 8.65829 4.84586L4.53329 9.09586C4.50235 9.13158 4.46018 9.15571 4.41371 9.1643C4.36725 9.1729 4.31924 9.16544 4.27757 9.14315C4.2359 9.12086 4.20305 9.08507 4.1844 9.04165C4.16575 8.99823 4.16242 8.94976 4.17496 8.90419L4.97496 6.39586C4.99855 6.33273 5.00647 6.26481 4.99804 6.19794C4.98962 6.13107 4.9651 6.06724 4.92659 6.01193C4.88807 5.95662 4.83672 5.91148 4.77692 5.88038C4.71713 5.84927 4.65069 5.83314 4.58329 5.83336H1.66662Z\" stroke=\"#059669\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n Consider adding retry logic for form submission step\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
|
|
78
|
+
args: [{ selector: 'cqa-failed-step', host: { class: 'cqa-ui-root' }, template: "<div>\n <!-- Header -->\n <div\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-p-2 cqa-cursor-pointer cqa-bg-[#FFFAFA]\"\n style=\"border-left: '2px solid #EF4444'\"\n (click)=\"toggle()\">\n \n <!-- Status Icon -->\n <div *ngIf=\"config.status.toLowerCase() === 'success'\" ><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.9005 4.99999C11.1289 6.12064 10.9662 7.28571 10.4395 8.30089C9.91279 9.31608 9.054 10.12 8.00631 10.5787C6.95862 11.0373 5.78536 11.1229 4.6822 10.8212C3.57904 10.5195 2.61265 9.84869 1.94419 8.92071C1.27573 7.99272 0.945611 6.86361 1.00888 5.72169C1.07215 4.57976 1.52499 3.49404 2.29188 2.64558C3.05876 1.79712 4.09334 1.23721 5.22308 1.05922C6.35282 0.881233 7.50944 1.09592 8.50005 1.66749\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 5.5L6 7L11 2\" stroke=\"#22C55E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n <div *ngIf=\"config.status.toLowerCase() === 'failure'\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7.5 4.5L4.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.5 4.5L7.5 7.5\" stroke=\"#DC2626\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n\n <!-- Step Number and Title -->\n <div class=\"cqa-flex-1 cqa-flex cqa-items-center cqa-gap-3\">\n <span class=\"cqa-font-bold cqa-text-[#7F1D1D] cqa-text-[11px] cqa-leading-[13px]\">\n {{ config.stepNumber }}. <span [innerHTML]=\"config.title\"></span>\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-items-center cqa-gap-1\">\n <div *ngIf=\"isDebug\" class=\"cqa-flex cqa-items-center cqa-gap-0.5 cqa-text-[#9CA3AF]\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" aria-label=\"Edit\" (click)=\"onEditStep($event)\">\n <mat-icon class=\"!cqa-text-[14px] !cqa-w-[14px] !cqa-h-[14px]\">edit</mat-icon>\n </button>\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" aria-label=\"Add\" [matMenuTriggerFor]=\"addStepMenu\">\n <mat-icon class=\"!cqa-text-[14px] !cqa-w-[14px] !cqa-h-[14px]\">add</mat-icon>\n </button>\n <mat-menu #addStepMenu=\"matMenu\" class=\"cqa-add-step-menu\" xPosition=\"before\" yPosition=\"below\">\n <button mat-menu-item *ngFor=\"let opt of addStepMenuOptions\" (click)=\"onAddStepOptionSelect(opt, $event)\">{{ opt.label }}</button>\n </mat-menu>\n <button type=\"button\" class=\"cqa-p-0 cqa-border-0 cqa-bg-transparent cqa-cursor-pointer hover:cqa-opacity-80 cqa-transition-opacity focus:cqa-outline-none\" aria-label=\"More options\" [matMenuTriggerFor]=\"stepMoreMenu\">\n <mat-icon class=\"!cqa-text-[14px] !cqa-w-[14px] !cqa-h-[14px]\">more_vert</mat-icon>\n </button>\n <mat-menu #stepMoreMenu=\"matMenu\" class=\"cqa-step-more-menu\" xPosition=\"before\" yPosition=\"below\">\n <button mat-menu-item *ngFor=\"let opt of stepMoreMenuOptions\" (click)=\"onStepMoreOptionSelect(opt, $event)\">{{ opt.label }}</button>\n </mat-menu>\n </div>\n <span class=\"cqa-text-[9px] cqa-leading-[20px] cqa-font-bold cqa-text-[#B91C1C]\">\n {{ formatDuration(config.duration) }}\n </span>\n <svg [class.cqa-rotate-180]=\"isExpanded\" width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.5 3.75L5 6.25L7.5 3.75\" stroke=\"#F87171\" stroke-width=\"0.833333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n </div>\n <!-- Expanded Content -->\n <div *ngIf=\"isExpanded\" class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-p-2\" style=\"border-left: '2px solid #FAC7C7'; border-bottom: '1px solid #FEE2E2'\">\n <!-- Sub-steps -->\n <div *ngIf=\"config.subSteps && config.subSteps.length > 0\" class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-pl-[9px]\" style=\"border-left: 1px solid #F3F4F6;\">\n <div\n *ngFor=\"let subStep of config.subSteps\"\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-text-[9px] cqa-leading-[20px]\"\n [ngClass]=\"subStep.description === config.failureDetails.failedAction ? 'cqa-text-[#B91C1C]' : 'cqa-text-[#475569]'\">\n \n <!-- Failed Action Indicator -->\n <span *ngIf=\"subStep.description === config.failureDetails.failedAction\" class=\"cqa-text-[#EF4444] cqa-font-bold\">\u2022</span>\n\n <!-- Sub-step Description -->\n <span class=\"cqa-flex-1\" [ngClass]=\"subStep.description === config.failureDetails.failedAction ? 'cqa-font-medium' : ''\">\n {{ subStep.description }}\n </span>\n\n <!-- Sub-step Timestamp or Duration -->\n <span [ngClass]=\"subStep.description === config.failureDetails.failedAction ? 'cqa-text-[#FCA5A5]' : 'cqa-text-[#D1D5DB]'\">\n {{ subStep.timestamp || formatDuration(subStep.duration) }}\n </span>\n </div>\n </div>\n\n <!-- Expected vs Actual Comparison -->\n <div *ngIf=\"config.failureDetails\" class=\"cqa-grid cqa-grid-cols-2 cqa-rounded cqa-overflow-hidden cqa-border cqa-border-solid cqa-border-[#E5E7EB]\">\n <!-- Expected Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-white\" style=\"border-right: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-[#9CA3AF]\">EXPECTED</div>\n <div class=\"cqa-text-[#374151]\">\n {{ config.failureDetails.expected }}\n </div>\n </div>\n\n <!-- Actual Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-[#FEF8F8]\">\n <div class=\"cqa-text-[#F87171]\">ACTUAL</div>\n <div class=\"cqa-text-[#991B1B]\">\n {{ config.failureDetails.actual }}\n </div>\n </div>\n </div>\n\n <!-- Visual Comparison Component -->\n <cqa-visual-comparison\n *ngIf=\"config.failureDetails\"\n [testStepResultId]=\"testStepResultId\"\n [screenshots]=\"config.failureDetails.screenshots\"\n [logs]=\"config.failureDetails.logs\"\n (makeCurrentBaseline)=\"onMakeCurrentBaseline($event)\"\n (uploadBaseline)=\"onUploadBaseline($event)\"\n (analyze)=\"onAnalyze()\"\n [testStepResultId]=\"testStepResultId\"\n [isUploadingBaseline]=\"isUploadingBaseline\"\n [isLive]=\"isLive\"\n (viewFullLogs)=\"onViewFullLogs()\">\n </cqa-visual-comparison>\n\n <!-- AI Fix Message -->\n <div *ngIf=\"config.failureDetails.aiFixApplied\" class=\"cqa-px-3 cqa-pt-1.5 cqa-pb-2 cqa-rounded-xl cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-[#FAF5FF]\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0F172A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-3\">\n <div><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"16\" height=\"16\" rx=\"4\" fill=\"url(#paint0_linear_4070_7201)\"/><path d=\"M8.00941 3.5C8.06489 3.52274 8.08859 3.57827 8.11131 3.62985C8.12269 3.6599 8.13314 3.69012 8.14329 3.72058C8.14726 3.73225 8.15123 3.74392 8.15532 3.75594C8.20806 3.913 8.25504 4.07175 8.30229 4.23038C8.31297 4.26619 8.32369 4.30199 8.33442 4.33778C8.38905 4.52004 8.44327 4.7024 8.49719 4.88484C8.50476 4.91047 8.51234 4.93609 8.51992 4.96171C8.54128 5.03395 8.56262 5.10619 8.58383 5.17847C8.62867 5.3312 8.67473 5.48347 8.72378 5.63501C8.72807 5.64827 8.73236 5.66152 8.73677 5.67518C8.8642 6.065 9.04482 6.41437 9.3409 6.71196C9.34823 6.7197 9.35556 6.72744 9.36312 6.73541C9.4895 6.86437 9.65169 6.96771 9.8138 7.05111C9.82206 7.05542 9.83031 7.05974 9.83882 7.06419C10.3159 7.30925 10.8895 7.41704 11.4062 7.5605C11.6326 7.6234 11.8583 7.68829 12.0832 7.75603C12.099 7.76079 12.1148 7.76554 12.1306 7.77028C12.1778 7.78445 12.225 7.79887 12.2721 7.81347C12.2831 7.81679 12.2941 7.82011 12.3054 7.82353C12.3703 7.84406 12.4324 7.86829 12.4857 7.91027C12.5019 7.94418 12.5019 7.94418 12.4975 7.9781C12.4456 8.02736 12.3942 8.05046 12.3258 8.073C12.316 8.07632 12.3062 8.07965 12.2961 8.08308C12.1806 8.12183 12.0635 8.15575 11.9463 8.18935C11.9222 8.1963 11.8981 8.20326 11.8741 8.21021C11.7257 8.25301 11.5771 8.2949 11.4283 8.33632C11.2323 8.39088 11.0366 8.44634 10.8411 8.50243C10.8091 8.51162 10.7771 8.52078 10.745 8.52991C10.5767 8.57786 10.4092 8.62753 10.2431 8.68208C10.2294 8.68659 10.2156 8.6911 10.2014 8.69574C9.64511 8.88082 9.2211 9.22609 8.95571 9.73099C8.81263 10.0148 8.72823 10.3216 8.64214 10.6245C8.61884 10.7062 8.59409 10.7875 8.56905 10.8687C8.5494 10.9326 8.5302 10.9966 8.51149 11.0608C8.50926 11.0684 8.50703 11.0761 8.50473 11.0839C8.49394 11.1209 8.48319 11.1579 8.47252 11.195C8.44519 11.2888 8.41578 11.3819 8.38555 11.4749C8.33191 11.6402 8.2831 11.8067 8.23459 11.9735C8.16144 12.2246 8.16144 12.2246 8.11997 12.3453C8.11721 12.3534 8.11446 12.3615 8.11163 12.3698C8.09649 12.4128 8.08092 12.4523 8.05226 12.4887C8.00867 12.4979 8.00867 12.4979 7.96951 12.5C7.92473 12.4376 7.89508 12.3771 7.87133 12.3051C7.86787 12.2949 7.86441 12.2847 7.86085 12.2741C7.81684 12.1425 7.77751 12.0095 7.73817 11.8765C7.72916 11.846 7.72011 11.8156 7.71106 11.7852C7.6436 11.5586 7.57725 11.3317 7.51101 11.1048C7.23507 9.98224 7.23507 9.98224 6.539 9.07466C6.52784 9.06596 6.51669 9.05726 6.50519 9.0483C6.04913 8.69902 5.44834 8.5697 4.89815 8.41813C4.76207 8.38062 4.62605 8.34293 4.49003 8.30523C4.47814 8.30193 4.47814 8.30193 4.466 8.29857C4.26981 8.24417 4.07367 8.18963 3.87822 8.13283C3.86996 8.13045 3.86169 8.12806 3.85317 8.12561C3.5529 8.03883 3.5529 8.03883 3.50065 7.9781C3.49917 7.95054 3.49917 7.95054 3.51247 7.92157C3.56708 7.8704 3.62008 7.84848 3.69216 7.82619C3.7026 7.82284 3.71303 7.81948 3.72379 7.81603C3.75575 7.80582 3.78779 7.79584 3.81985 7.78592C3.829 7.78305 3.83815 7.78017 3.84758 7.77722C3.91228 7.75693 3.97722 7.7374 4.04226 7.71809C4.05824 7.71332 4.05824 7.71332 4.07454 7.70846C4.35227 7.62587 4.63181 7.549 4.91126 7.47196C5.1195 7.41455 5.32738 7.35618 5.5346 7.29548C5.54413 7.29271 5.55365 7.28993 5.56346 7.28707C6.0435 7.14696 6.51278 6.94816 6.82274 6.5537C6.82738 6.54785 6.83202 6.542 6.8368 6.53597C7.18197 6.09815 7.31658 5.56572 7.46696 5.04621C7.51642 4.87535 7.56649 4.70464 7.61673 4.53399C7.63064 4.48673 7.64453 4.43947 7.65836 4.39219C7.71394 4.20229 7.77035 4.01264 7.83 3.82386C7.83558 3.80619 7.84114 3.7885 7.84666 3.77081C7.93017 3.50399 7.93017 3.50399 8.00941 3.5Z\" fill=\"white\"/><path d=\"M10.7358 4.05535C10.7901 4.11409 10.801 4.18312 10.8179 4.25813C10.8742 4.49376 10.9392 4.71042 11.1645 4.8473C11.3036 4.92083 11.4693 4.9543 11.6234 4.9859C11.6884 4.99951 11.7434 5.01758 11.7991 5.0537C11.8117 5.07278 11.8117 5.07278 11.8109 5.10598C11.798 5.14637 11.7867 5.15939 11.7526 5.18582C11.7153 5.19775 11.7153 5.19775 11.6706 5.20702C11.6536 5.21074 11.6367 5.21449 11.6198 5.21828C11.6107 5.22029 11.6017 5.2223 11.5924 5.22437C11.3168 5.28531 11.3168 5.28531 11.0787 5.42322C11.071 5.42918 11.0632 5.43514 11.0552 5.44128C10.885 5.58479 10.849 5.82351 10.7978 6.0235C10.7949 6.03448 10.7919 6.04546 10.7889 6.05678C10.7864 6.0665 10.7838 6.07622 10.7812 6.08624C10.7702 6.11593 10.7587 6.13528 10.7358 6.15803C10.6722 6.16576 10.6722 6.16576 10.6413 6.15803C10.592 6.12155 10.581 6.07999 10.5682 6.02414C10.566 6.01549 10.5639 6.00685 10.5616 5.99794C10.5548 5.97032 10.5481 5.94266 10.5415 5.91498C10.4897 5.69946 10.4311 5.488 10.2244 5.36167C10.0628 5.2755 9.86634 5.23475 9.68575 5.20185C9.63625 5.19199 9.60789 5.1796 9.57725 5.1406C9.5706 5.10104 9.5706 5.10104 9.57725 5.06147C9.62435 5.01486 9.6739 5.00348 9.73759 4.9894C9.75766 4.98465 9.77772 4.97987 9.79777 4.97505C9.80813 4.97258 9.81849 4.97011 9.82917 4.96756C9.882 4.95456 9.93431 4.93998 9.9866 4.92511C9.99611 4.92247 10.0056 4.91984 10.0154 4.91712C10.1217 4.88673 10.2134 4.84786 10.2984 4.77885C10.3063 4.77261 10.3143 4.76638 10.3224 4.75995C10.4547 4.64614 10.4996 4.47516 10.5404 4.31562C10.5435 4.30351 10.5466 4.2914 10.5498 4.27892C10.556 4.25459 10.5621 4.23023 10.5681 4.20585C10.5723 4.18888 10.5723 4.18888 10.5767 4.17157C10.5791 4.16144 10.5816 4.1513 10.5842 4.14086C10.5951 4.1086 10.6094 4.08326 10.6294 4.05535C10.668 4.03692 10.695 4.04525 10.7358 4.05535Z\" fill=\"#EDE9FE\"/><path d=\"M5.29554 9.74722C5.3096 9.74731 5.3096 9.74731 5.32395 9.74741C5.42486 9.75035 5.49314 9.78127 5.56745 9.84613C5.65393 9.93545 5.69386 10.0362 5.69159 10.1566C5.68188 10.2542 5.62167 10.3395 5.54782 10.4055C5.4609 10.4725 5.37322 10.4947 5.26215 10.4916C5.1685 10.4812 5.08039 10.4386 5.01402 10.3746C4.93147 10.2669 4.90734 10.1682 4.91944 10.0355C4.94443 9.93104 5.01646 9.84625 5.1086 9.78678C5.1726 9.75576 5.22408 9.74665 5.29554 9.74722Z\" fill=\"white\"/><defs><linearGradient id=\"paint0_linear_4070_7201\" x1=\"0\" y1=\"0\" x2=\"16\" y2=\"16\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8B5CF6\"/><stop offset=\"1\" stop-color=\"#9333EA\"/></linearGradient></defs></svg></div>\n {{ config.failureDetails.aiFixMessage || 'AI Insights' }}\n <span class=\"cqa-inline-block cqa-py-[2px] cqa-px-[10px] cqa-text-center cqa-rounded-[5px] cqa-bg-[#EDE9FE] cqa-text-[8px] cqa-leading-[12px] cqa-text-[#6D28D9]\">94% confidence</span>\n </div>\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#64748B]\">Reasoning</div>\n <ul class=\"cqa-flex cqa-flex-col cqa-gap-1.5\">\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Stale state: test attribute as primary locator (highest priority)\n </li>\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Confidence score: 94% based on DOM similarity analysis\n </li>\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Increased wait time from 2s to 5s due to button latency\n </li>\n <li class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1.5\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n Environment binding: speed of assets by 20% through optimized caching\n </li>\n </ul>\n </div>\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#64748B]\">Suggested Fixes</div>\n <div class=\"cqa-px-[10px] cqa-py-[2px] cqa-rounded-[5px] cqa-flex cqa-items-center cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#065F46] cqa-bg-[#ECFDF5] cqa-border cqa-border-solid cqa-border-[#D1FAE5]\">\n <div><svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.66662 5.83336C1.58777 5.83363 1.51047 5.81152 1.44369 5.7696C1.3769 5.72768 1.32339 5.66768 1.28935 5.59655C1.25532 5.52543 1.24216 5.4461 1.25141 5.3678C1.26067 5.2895 1.29195 5.21543 1.34162 5.15419L5.46662 0.904194C5.49757 0.868478 5.53973 0.844342 5.5862 0.835749C5.63267 0.827156 5.68067 0.834616 5.72234 0.856904C5.76401 0.879192 5.79687 0.914984 5.81551 0.958406C5.83416 1.00183 5.83749 1.0503 5.82496 1.09586L5.02496 3.60419C5.00137 3.66733 4.99344 3.73524 5.00187 3.80211C5.01029 3.86898 5.03481 3.93281 5.07333 3.98812C5.11184 4.04343 5.16319 4.08857 5.22299 4.11968C5.28278 4.15078 5.34922 4.16691 5.41662 4.16669H8.33329C8.41214 4.16643 8.48944 4.18853 8.55622 4.23045C8.62301 4.27237 8.67653 4.33238 8.71056 4.4035C8.7446 4.47463 8.75775 4.55395 8.7485 4.63225C8.73924 4.71056 8.70796 4.78463 8.65829 4.84586L4.53329 9.09586C4.50235 9.13158 4.46018 9.15571 4.41371 9.1643C4.36725 9.1729 4.31924 9.16544 4.27757 9.14315C4.2359 9.12086 4.20305 9.08507 4.1844 9.04165C4.16575 8.99823 4.16242 8.94976 4.17496 8.90419L4.97496 6.39586C4.99855 6.33273 5.00647 6.26481 4.99804 6.19794C4.98962 6.13107 4.9651 6.06724 4.92659 6.01193C4.88807 5.95662 4.83672 5.91148 4.77692 5.88038C4.71713 5.84927 4.65069 5.83314 4.58329 5.83336H1.66662Z\" stroke=\"#059669\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n Update locator to use data-testid='registration-submit' instead of #submit-btn\n </div>\n <div class=\"cqa-px-[10px] cqa-py-[2px] cqa-rounded-[5px] cqa-flex cqa-items-center cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#065F46] cqa-bg-[#ECFDF5] cqa-border cqa-border-solid cqa-border-[#D1FAE5]\">\n <div><svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.66662 5.83336C1.58777 5.83363 1.51047 5.81152 1.44369 5.7696C1.3769 5.72768 1.32339 5.66768 1.28935 5.59655C1.25532 5.52543 1.24216 5.4461 1.25141 5.3678C1.26067 5.2895 1.29195 5.21543 1.34162 5.15419L5.46662 0.904194C5.49757 0.868478 5.53973 0.844342 5.5862 0.835749C5.63267 0.827156 5.68067 0.834616 5.72234 0.856904C5.76401 0.879192 5.79687 0.914984 5.81551 0.958406C5.83416 1.00183 5.83749 1.0503 5.82496 1.09586L5.02496 3.60419C5.00137 3.66733 4.99344 3.73524 5.00187 3.80211C5.01029 3.86898 5.03481 3.93281 5.07333 3.98812C5.11184 4.04343 5.16319 4.08857 5.22299 4.11968C5.28278 4.15078 5.34922 4.16691 5.41662 4.16669H8.33329C8.41214 4.16643 8.48944 4.18853 8.55622 4.23045C8.62301 4.27237 8.67653 4.33238 8.71056 4.4035C8.7446 4.47463 8.75775 4.55395 8.7485 4.63225C8.73924 4.71056 8.70796 4.78463 8.65829 4.84586L4.53329 9.09586C4.50235 9.13158 4.46018 9.15571 4.41371 9.1643C4.36725 9.1729 4.31924 9.16544 4.27757 9.14315C4.2359 9.12086 4.20305 9.08507 4.1844 9.04165C4.16575 8.99823 4.16242 8.94976 4.17496 8.90419L4.97496 6.39586C4.99855 6.33273 5.00647 6.26481 4.99804 6.19794C4.98962 6.13107 4.9651 6.06724 4.92659 6.01193C4.88807 5.95662 4.83672 5.91148 4.77692 5.88038C4.71713 5.84927 4.65069 5.83314 4.58329 5.83336H1.66662Z\" stroke=\"#059669\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n Add explicit wait for network idle before clicking submit\n </div>\n <div class=\"cqa-px-[10px] cqa-py-[2px] cqa-rounded-[5px] cqa-flex cqa-items-center cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#065F46] cqa-bg-[#ECFDF5] cqa-border cqa-border-solid cqa-border-[#D1FAE5]\">\n <div><svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.66662 5.83336C1.58777 5.83363 1.51047 5.81152 1.44369 5.7696C1.3769 5.72768 1.32339 5.66768 1.28935 5.59655C1.25532 5.52543 1.24216 5.4461 1.25141 5.3678C1.26067 5.2895 1.29195 5.21543 1.34162 5.15419L5.46662 0.904194C5.49757 0.868478 5.53973 0.844342 5.5862 0.835749C5.63267 0.827156 5.68067 0.834616 5.72234 0.856904C5.76401 0.879192 5.79687 0.914984 5.81551 0.958406C5.83416 1.00183 5.83749 1.0503 5.82496 1.09586L5.02496 3.60419C5.00137 3.66733 4.99344 3.73524 5.00187 3.80211C5.01029 3.86898 5.03481 3.93281 5.07333 3.98812C5.11184 4.04343 5.16319 4.08857 5.22299 4.11968C5.28278 4.15078 5.34922 4.16691 5.41662 4.16669H8.33329C8.41214 4.16643 8.48944 4.18853 8.55622 4.23045C8.62301 4.27237 8.67653 4.33238 8.71056 4.4035C8.7446 4.47463 8.75775 4.55395 8.7485 4.63225C8.73924 4.71056 8.70796 4.78463 8.65829 4.84586L4.53329 9.09586C4.50235 9.13158 4.46018 9.15571 4.41371 9.1643C4.36725 9.1729 4.31924 9.16544 4.27757 9.14315C4.2359 9.12086 4.20305 9.08507 4.1844 9.04165C4.16575 8.99823 4.16242 8.94976 4.17496 8.90419L4.97496 6.39586C4.99855 6.33273 5.00647 6.26481 4.99804 6.19794C4.98962 6.13107 4.9651 6.06724 4.92659 6.01193C4.88807 5.95662 4.83672 5.91148 4.77692 5.88038C4.71713 5.84927 4.65069 5.83314 4.58329 5.83336H1.66662Z\" stroke=\"#059669\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n Consider adding retry logic for form submission step\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
|
|
55
79
|
}], propDecorators: { id: [{
|
|
56
80
|
type: Input
|
|
57
81
|
}], testStepResultId: [{
|
|
@@ -76,6 +100,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
76
100
|
type: Input
|
|
77
101
|
}], isLive: [{
|
|
78
102
|
type: Input
|
|
103
|
+
}], isDebug: [{
|
|
104
|
+
type: Input
|
|
79
105
|
}], makeCurrentBaseline: [{
|
|
80
106
|
type: Output
|
|
81
107
|
}], uploadBaseline: [{
|
|
@@ -84,5 +110,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
84
110
|
type: Output
|
|
85
111
|
}], viewFullLogs: [{
|
|
86
112
|
type: Output
|
|
113
|
+
}], editStep: [{
|
|
114
|
+
type: Output
|
|
115
|
+
}], addStepOptionSelect: [{
|
|
116
|
+
type: Output
|
|
117
|
+
}], stepMoreOptionSelect: [{
|
|
118
|
+
type: Output
|
|
119
|
+
}], addStepMenuOptions: [{
|
|
120
|
+
type: Input
|
|
121
|
+
}], stepMoreMenuOptions: [{
|
|
122
|
+
type: Input
|
|
87
123
|
}] } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFpbGVkLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2ZhaWxlZC1zdGVwL2ZhaWxlZC1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9mYWlsZWQtc3RlcC9mYWlsZWQtc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBVTNELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxpQkFBaUI7SUFOMUQ7O1FBa0JXLHdCQUFtQixHQUFHLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2Qsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDbkUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUN6RCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNuQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0EyQ25EO0lBdENVLFFBQVE7UUFDZixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLElBQUksRUFBRSxRQUFRO1lBQ2QsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ0osQ0FBQztRQUV0QixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQStCO1FBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUEwQjtRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7O2dIQTNEVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixra0JDWmhDLG92bUJBa0lNOzJGRHRITyxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsaUJBQWlCLFFBR3JCLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTs4QkFJckIsRUFBRTtzQkFBVixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmFpbGVkU3RlcENvbmZpZywgU3ViU3RlcCwgRmFpbHVyZURldGFpbHMsIFN0ZXBTdGF0dXMsIFRpbWluZ0JyZWFrZG93biB9IGZyb20gJy4uL2V4ZWN1dGlvbi1zdGVwLm1vZGVscyc7XG5pbXBvcnQgeyBCYXNlU3RlcENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2Utc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgbWFrZUN1cnJlbnRCYXNlbGluZUV2ZW50IH0gZnJvbSAnLi4vdmlzdWFsLWNvbXBhcmlzb24vdmlzdWFsLWNvbXBhcmlzb24uY29tcG9uZW50JztcbmltcG9ydCB7IHVwbG9hZEJhc2VsaW5lRXZlbnQgfSBmcm9tICcuLi92aXN1YWwtY29tcGFyaXNvbi92aXN1YWwtY29tcGFyaXNvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtZmFpbGVkLXN0ZXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmFpbGVkLXN0ZXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH1cbn0pXG5leHBvcnQgY2xhc3MgRmFpbGVkU3RlcENvbXBvbmVudCBleHRlbmRzIEJhc2VTdGVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gSW5kaXZpZHVhbCBpbnB1dHNcbiAgQElucHV0KCkgaWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRlc3RTdGVwUmVzdWx0SWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0ZXBOdW1iZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKSBzdGF0dXMhOiBTdGVwU3RhdHVzO1xuICBASW5wdXQoKSBkdXJhdGlvbiE6IG51bWJlcjtcbiAgQElucHV0KCkgdGltaW5nQnJlYWtkb3duPzogVGltaW5nQnJlYWtkb3duO1xuICBASW5wdXQoKSBleHBhbmRlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN1YlN0ZXBzITogU3ViU3RlcFtdO1xuICBASW5wdXQoKSBmYWlsdXJlRGV0YWlscyE6IEZhaWx1cmVEZXRhaWxzO1xuICBASW5wdXQoKSBpc1VwbG9hZGluZ0Jhc2VsaW5lID0ge307XG4gIEBJbnB1dCgpIGlzTGl2ZSA9IGZhbHNlO1xuICBAT3V0cHV0KCkgbWFrZUN1cnJlbnRCYXNlbGluZSA9IG5ldyBFdmVudEVtaXR0ZXI8bWFrZUN1cnJlbnRCYXNlbGluZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgdXBsb2FkQmFzZWxpbmUgPSBuZXcgRXZlbnRFbWl0dGVyPHVwbG9hZEJhc2VsaW5lRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBhbmFseXplID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgdmlld0Z1bGxMb2dzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8vIENvbmZpZyBwcm9wZXJ0eSBmb3IgYmFzZSBjbGFzcyAtIGJ1aWx0IGZyb20gaW5kaXZpZHVhbCBpbnB1dHMgaW4gbmdPbkluaXRcbiAgb3ZlcnJpZGUgY29uZmlnITogRmFpbGVkU3RlcENvbmZpZztcblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBCdWlsZCBjb25maWcgZnJvbSBpbmRpdmlkdWFsIGlucHV0c1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICB0ZXN0U3RlcFJlc3VsdElkOiB0aGlzLnRlc3RTdGVwUmVzdWx0SWQsXG4gICAgICBzdGVwTnVtYmVyOiB0aGlzLnN0ZXBOdW1iZXIsXG4gICAgICB0aXRsZTogdGhpcy50aXRsZSxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICBkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcbiAgICAgIHR5cGU6ICdmYWlsZWQnLFxuICAgICAgc3ViU3RlcHM6IHRoaXMuc3ViU3RlcHMsXG4gICAgICBmYWlsdXJlRGV0YWlsczogdGhpcy5mYWlsdXJlRGV0YWlscyxcbiAgICAgIHRpbWluZ0JyZWFrZG93bjogdGhpcy50aW1pbmdCcmVha2Rvd24sXG4gICAgICBleHBhbmRlZDogdGhpcy5leHBhbmRlZCxcbiAgICB9IGFzIEZhaWxlZFN0ZXBDb25maWc7XG5cbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG5cbiAgb25NYWtlQ3VycmVudEJhc2VsaW5lKGV2ZW50OiBtYWtlQ3VycmVudEJhc2VsaW5lRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnTWFrZSBjdXJyZW50IGJhc2VsaW5lIGNsaWNrZWQnKTtcbiAgICB0aGlzLm1ha2VDdXJyZW50QmFzZWxpbmUuZW1pdChldmVudCk7XG4gIH1cblxuICBvblVwbG9hZEJhc2VsaW5lKGV2ZW50OiB1cGxvYWRCYXNlbGluZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ1VwbG9hZCBiYXNlbGluZSBjbGlja2VkJyk7XG4gICAgdGhpcy51cGxvYWRCYXNlbGluZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uQW5hbHl6ZSgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnQW5hbHl6ZSBjbGlja2VkJyk7XG4gICAgdGhpcy5hbmFseXplLmVtaXQoKTtcbiAgfVxuXG4gIG9uVmlld0Z1bGxMb2dzKCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdWaWV3IGZ1bGwgbG9ncyBjbGlja2VkJyk7XG4gICAgdGhpcy52aWV3RnVsbExvZ3MuZW1pdCgpO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXAtMiBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLWJnLVsjRkZGQUZBXVwiXG4gICAgc3R5bGU9XCJib3JkZXItbGVmdDogJzJweCBzb2xpZCAjRUY0NDQ0J1wiXG4gICAgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgXG4gICAgPCEtLSBTdGF0dXMgSWNvbiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnLnN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnc3VjY2VzcydcIiA+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMC45MDA1IDQuOTk5OTlDMTEuMTI4OSA2LjEyMDY0IDEwLjk2NjIgNy4yODU3MSAxMC40Mzk1IDguMzAwODlDOS45MTI3OSA5LjMxNjA4IDkuMDU0IDEwLjEyIDguMDA2MzEgMTAuNTc4N0M2Ljk1ODYyIDExLjAzNzMgNS43ODUzNiAxMS4xMjI5IDQuNjgyMiAxMC44MjEyQzMuNTc5MDQgMTAuNTE5NSAyLjYxMjY1IDkuODQ4NjkgMS45NDQxOSA4LjkyMDcxQzEuMjc1NzMgNy45OTI3MiAwLjk0NTYxMSA2Ljg2MzYxIDEuMDA4ODggNS43MjE2OUMxLjA3MjE1IDQuNTc5NzYgMS41MjQ5OSAzLjQ5NDA0IDIuMjkxODggMi42NDU1OEMzLjA1ODc2IDEuNzk3MTIgNC4wOTMzNCAxLjIzNzIxIDUuMjIzMDggMS4wNTkyMkM2LjM1MjgyIDAuODgxMjMzIDcuNTA5NDQgMS4wOTU5MiA4LjUwMDA1IDEuNjY3NDlcIiBzdHJva2U9XCIjMjJDNTVFXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC41IDUuNUw2IDdMMTEgMlwiIHN0cm9rZT1cIiMyMkM1NUVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbmZpZy5zdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWx1cmUnXCI+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02IDExQzguNzYxNDIgMTEgMTEgOC43NjE0MiAxMSA2QzExIDMuMjM4NTggOC43NjE0MiAxIDYgMUMzLjIzODU4IDEgMSAzLjIzODU4IDEgNkMxIDguNzYxNDIgMy4yMzg1OCAxMSA2IDExWlwiIHN0cm9rZT1cIiNEQzI2MjZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk03LjUgNC41TDQuNSA3LjVcIiBzdHJva2U9XCIjREMyNjI2XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC41IDQuNUw3LjUgNy41XCIgc3Ryb2tlPVwiI0RDMjYyNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cblxuICAgIDwhLS0gU3RlcCBOdW1iZXIgYW5kIFRpdGxlIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImNxYS1mb250LWJvbGQgY3FhLXRleHQtWyM3RjFEMURdIGNxYS10ZXh0LVsxMXB4XSBjcWEtbGVhZGluZy1bMTNweF1cIj5cbiAgICAgICAge3sgY29uZmlnLnN0ZXBOdW1iZXIgfX0uIDxzcGFuIFtpbm5lckhUTUxdPVwiY29uZmlnLnRpdGxlXCI+PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVs5cHhdIGNxYS1sZWFkaW5nLVsyMHB4XSBjcWEtZm9udC1ib2xkIGNxYS10ZXh0LVsjQjkxQzFDXVwiPlxuICAgICAgICB7eyBmb3JtYXREdXJhdGlvbihjb25maWcuZHVyYXRpb24pIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3ZnIFtjbGFzcy5jcWEtcm90YXRlLTE4MF09XCJpc0V4cGFuZGVkXCIgd2lkdGg9XCIxMFwiIGhlaWdodD1cIjEwXCIgdmlld0JveD1cIjAgMCAxMCAxMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMi41IDMuNzVMNSA2LjI1TDcuNSAzLjc1XCIgc3Ryb2tlPVwiI0Y4NzE3MVwiIHN0cm9rZS13aWR0aD1cIjAuODMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSBFeHBhbmRlZCBDb250ZW50IC0tPlxuICA8ZGl2ICpuZ0lmPVwiaXNFeHBhbmRlZFwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMiBjcWEtcC0yXCIgc3R5bGU9XCJib3JkZXItbGVmdDogJzJweCBzb2xpZCAjRkFDN0M3JzsgYm9yZGVyLWJvdHRvbTogJzFweCBzb2xpZCAjRkVFMkUyJ1wiPlxuICAgIDwhLS0gU3ViLXN0ZXBzIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJjb25maWcuc3ViU3RlcHMgJiYgY29uZmlnLnN1YlN0ZXBzLmxlbmd0aCA+IDBcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEgY3FhLXBsLVs5cHhdXCIgc3R5bGU9XCJib3JkZXItbGVmdDogMXB4IHNvbGlkICNGM0Y0RjY7XCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBzdWJTdGVwIG9mIGNvbmZpZy5zdWJTdGVwc1wiXG4gICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXRleHQtWzlweF0gY3FhLWxlYWRpbmctWzIwcHhdXCJcbiAgICAgICAgW25nQ2xhc3NdPVwic3ViU3RlcC5kZXNjcmlwdGlvbiA9PT0gY29uZmlnLmZhaWx1cmVEZXRhaWxzLmZhaWxlZEFjdGlvbiA/ICdjcWEtdGV4dC1bI0I5MUMxQ10nIDogJ2NxYS10ZXh0LVsjNDc1NTY5XSdcIj5cbiAgICAgICAgXG4gICAgICAgIDwhLS0gRmFpbGVkIEFjdGlvbiBJbmRpY2F0b3IgLS0+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwic3ViU3RlcC5kZXNjcmlwdGlvbiA9PT0gY29uZmlnLmZhaWx1cmVEZXRhaWxzLmZhaWxlZEFjdGlvblwiIGNsYXNzPVwiY3FhLXRleHQtWyNFRjQ0NDRdIGNxYS1mb250LWJvbGRcIj7igKI8L3NwYW4+XG5cbiAgICAgICAgPCEtLSBTdWItc3RlcCBEZXNjcmlwdGlvbiAtLT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZmxleC0xXCIgW25nQ2xhc3NdPVwic3ViU3RlcC5kZXNjcmlwdGlvbiA9PT0gY29uZmlnLmZhaWx1cmVEZXRhaWxzLmZhaWxlZEFjdGlvbiA/ICdjcWEtZm9udC1tZWRpdW0nIDogJydcIj5cbiAgICAgICAgICB7eyBzdWJTdGVwLmRlc2NyaXB0aW9uIH19XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8IS0tIFN1Yi1zdGVwIFRpbWVzdGFtcCBvciBEdXJhdGlvbiAtLT5cbiAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwic3ViU3RlcC5kZXNjcmlwdGlvbiA9PT0gY29uZmlnLmZhaWx1cmVEZXRhaWxzLmZhaWxlZEFjdGlvbiA/ICdjcWEtdGV4dC1bI0ZDQTVBNV0nIDogJ2NxYS10ZXh0LVsjRDFENURCXSdcIj5cbiAgICAgICAgICB7eyBzdWJTdGVwLnRpbWVzdGFtcCB8fCBmb3JtYXREdXJhdGlvbihzdWJTdGVwLmR1cmF0aW9uKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gRXhwZWN0ZWQgdnMgQWN0dWFsIENvbXBhcmlzb24gLS0+XG4gICAgPGRpdiAqbmdJZj1cImNvbmZpZy5mYWlsdXJlRGV0YWlsc1wiIGNsYXNzPVwiY3FhLWdyaWQgY3FhLWdyaWQtY29scy0yIGNxYS1yb3VuZGVkIGNxYS1vdmVyZmxvdy1oaWRkZW4gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNFNUU3RUJdXCI+XG4gICAgICA8IS0tIEV4cGVjdGVkIENvbHVtbiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtcC0xLjUgY3FhLXRleHQtWzlweF0gY3FhLWxlYWRpbmctWzIwcHhdIGNxYS1iZy13aGl0ZVwiIHN0eWxlPVwiYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0U1RTdFQjtcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsjOUNBM0FGXVwiPkVYUEVDVEVEPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bIzM3NDE1MV1cIj5cbiAgICAgICAgICB7eyBjb25maWcuZmFpbHVyZURldGFpbHMuZXhwZWN0ZWQgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBBY3R1YWwgQ29sdW1uIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1wLTEuNSBjcWEtdGV4dC1bOXB4XSBjcWEtbGVhZGluZy1bMjBweF0gY3FhLWJnLVsjRkVGOEY4XVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWyNGODcxNzFdXCI+QUNUVUFMPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bIzk5MUIxQl1cIj5cbiAgICAgICAgICB7eyBjb25maWcuZmFpbHVyZURldGFpbHMuYWN0dWFsIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFZpc3VhbCBDb21wYXJpc29uIENvbXBvbmVudCAtLT5cbiAgICA8Y3FhLXZpc3VhbC1jb21wYXJpc29uXG4gICAgICAqbmdJZj1cImNvbmZpZy5mYWlsdXJlRGV0YWlsc1wiXG4gICAgICBbdGVzdFN0ZXBSZXN1bHRJZF09XCJ0ZXN0U3RlcFJlc3VsdElkXCJcbiAgICAgIFtzY3JlZW5zaG90c109XCJjb25maWcuZmFpbHVyZURldGFpbHMuc2NyZWVuc2hvdHNcIlxuICAgICAgW2xvZ3NdPVwiY29uZmlnLmZhaWx1cmVEZXRhaWxzLmxvZ3NcIlxuICAgICAgKG1ha2VDdXJyZW50QmFzZWxpbmUpPVwib25NYWtlQ3VycmVudEJhc2VsaW5lKCRldmVudClcIlxuICAgICAgKHVwbG9hZEJhc2VsaW5lKT1cIm9uVXBsb2FkQmFzZWxpbmUoJGV2ZW50KVwiXG4gICAgICAoYW5hbHl6ZSk9XCJvbkFuYWx5emUoKVwiXG4gICAgICBbdGVzdFN0ZXBSZXN1bHRJZF09XCJ0ZXN0U3RlcFJlc3VsdElkXCJcbiAgICAgIFtpc1VwbG9hZGluZ0Jhc2VsaW5lXT1cImlzVXBsb2FkaW5nQmFzZWxpbmVcIlxuICAgICAgW2lzTGl2ZV09XCJpc0xpdmVcIlxuICAgICAgKHZpZXdGdWxsTG9ncyk9XCJvblZpZXdGdWxsTG9ncygpXCI+XG4gICAgPC9jcWEtdmlzdWFsLWNvbXBhcmlzb24+XG5cbiAgICA8IS0tIEFJIEZpeCBNZXNzYWdlIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJjb25maWcuZmFpbHVyZURldGFpbHMuYWlGaXhBcHBsaWVkXCIgY2xhc3M9XCJjcWEtcHgtMyBjcWEtcHQtMS41IGNxYS1wYi0yIGNxYS1yb3VuZGVkLXhsIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTJFOEYwXSBjcWEtYmctWyNGQUY1RkZdXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwRjE3MkFdIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1tYi0zXCI+XG4gICAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgcng9XCI0XCIgZmlsbD1cInVybCgjcGFpbnQwX2xpbmVhcl80MDcwXzcyMDEpXCIvPjxwYXRoIGQ9XCJNOC4wMDk0MSAzLjVDOC4wNjQ4OSAzLjUyMjc0IDguMDg4NTkgMy41NzgyNyA4LjExMTMxIDMuNjI5ODVDOC4xMjI2OSAzLjY1OTkgOC4xMzMxNCAzLjY5MDEyIDguMTQzMjkgMy43MjA1OEM4LjE0NzI2IDMuNzMyMjUgOC4xNTEyMyAzLjc0MzkyIDguMTU1MzIgMy43NTU5NEM4LjIwODA2IDMuOTEzIDguMjU1MDQgNC4wNzE3NSA4LjMwMjI5IDQuMjMwMzhDOC4zMTI5NyA0LjI2NjE5IDguMzIzNjkgNC4zMDE5OSA4LjMzNDQyIDQuMzM3NzhDOC4zODkwNSA0LjUyMDA0IDguNDQzMjcgNC43MDI0IDguNDk3MTkgNC44ODQ4NEM4LjUwNDc2IDQuOTEwNDcgOC41MTIzNCA0LjkzNjA5IDguNTE5OTIgNC45NjE3MUM4LjU0MTI4IDUuMDMzOTUgOC41NjI2MiA1LjEwNjE5IDguNTgzODMgNS4xNzg0N0M4LjYyODY3IDUuMzMxMiA4LjY3NDczIDUuNDgzNDcgOC43MjM3OCA1LjYzNTAxQzguNzI4MDcgNS42NDgyNyA4LjczMjM2IDUuNjYxNTIgOC43MzY3NyA1LjY3NTE4QzguODY0MiA2LjA2NSA5LjA0NDgyIDYuNDE0MzcgOS4zNDA5IDYuNzExOTZDOS4zNDgyMyA2LjcxOTcgOS4zNTU1NiA2LjcyNzQ0IDkuMzYzMTIgNi43MzU0MUM5LjQ4OTUgNi44NjQzNyA5LjY1MTY5IDYuOTY3NzEgOS44MTM4IDcuMDUxMTFDOS44MjIwNiA3LjA1NTQyIDkuODMwMzEgNy4wNTk3NCA5LjgzODgyIDcuMDY0MTlDMTAuMzE1OSA3LjMwOTI1IDEwLjg4OTUgNy40MTcwNCAxMS40MDYyIDcuNTYwNUMxMS42MzI2IDcuNjIzNCAxMS44NTgzIDcuNjg4MjkgMTIuMDgzMiA3Ljc1NjAzQzEyLjA5OSA3Ljc2MDc5IDEyLjExNDggNy43NjU1NCAxMi4xMzA2IDcuNzcwMjhDMTIuMTc3OCA3Ljc4NDQ1IDEyLjIyNSA3Ljc5ODg3IDEyLjI3MjEgNy44MTM0N0MxMi4yODMxIDcuODE2NzkgMTIuMjk0MSA3LjgyMDExIDEyLjMwNTQgNy44MjM1M0MxMi4zNzAzIDcuODQ0MDYgMTIuNDMyNCA3Ljg2ODI5IDEyLjQ4NTcgNy45MTAyN0MxMi41MDE5IDcuOTQ0MTggMTIuNTAxOSA3Ljk0NDE4IDEyLjQ5NzUgNy45NzgxQzEyLjQ0NTYgOC4wMjczNiAxMi4zOTQyIDguMDUwNDYgMTIuMzI1OCA4LjA3M0MxMi4zMTYgOC4wNzYzMiAxMi4zMDYyIDguMDc5NjUgMTIuMjk2MSA4LjA4MzA4QzEyLjE4MDYgOC4xMjE4MyAxMi4wNjM1IDguMTU1NzUgMTEuOTQ2MyA4LjE4OTM1QzExLjkyMjIgOC4xOTYzIDExLjg5ODEgOC4yMDMyNiAxMS44NzQxIDguMjEwMjFDMTEuNzI1NyA4LjI1MzAxIDExLjU3NzEgOC4yOTQ5IDExLjQyODMgOC4zMzYzMkMxMS4yMzIzIDguMzkwODggMTEuMDM2NiA4LjQ0NjM0IDEwLjg0MTEgOC41MDI0M0MxMC44MDkxIDguNTExNjIgMTAuNzc3MSA4LjUyMDc4IDEwLjc0NSA4LjUyOTkxQzEwLjU3NjcgOC41Nzc4NiAxMC40MDkyIDguNjI3NTMgMTAuMjQzMSA4LjY4MjA4QzEwLjIyOTQgOC42ODY1OSAxMC4yMTU2IDguNjkxMSAxMC4yMDE0IDguNjk1NzRDOS42NDUxMSA4Ljg4MDgyIDkuMjIxMSA5LjIyNjA5IDguOTU1NzEgOS43MzA5OUM4LjgxMjYzIDEwLjAxNDggOC43MjgyMyAxMC4zMjE2IDguNjQyMTQgMTAuNjI0NUM4LjYxODg0IDEwLjcwNjIgOC41OTQwOSAxMC43ODc1IDguNTY5MDUgMTAuODY4N0M4LjU0OTQgMTAuOTMyNiA4LjUzMDIgMTAuOTk2NiA4LjUxMTQ5IDExLjA2MDhDOC41MDkyNiAxMS4wNjg0IDguNTA3MDMgMTEuMDc2MSA4LjUwNDczIDExLjA4MzlDOC40OTM5NCAxMS4xMjA5IDguNDgzMTkgMTEuMTU3OSA4LjQ3MjUyIDExLjE5NUM4LjQ0NTE5IDExLjI4ODggOC40MTU3OCAxMS4zODE5IDguMzg1NTUgMTEuNDc0OUM4LjMzMTkxIDExLjY0MDIgOC4yODMxIDExLjgwNjcgOC4yMzQ1OSAxMS45NzM1QzguMTYxNDQgMTIuMjI0NiA4LjE2MTQ0IDEyLjIyNDYgOC4xMTk5NyAxMi4zNDUzQzguMTE3MjEgMTIuMzUzNCA4LjExNDQ2IDEyLjM2MTUgOC4xMTE2MyAxMi4zNjk4QzguMDk2NDkgMTIuNDEyOCA4LjA4MDkyIDEyLjQ1MjMgOC4wNTIyNiAxMi40ODg3QzguMDA4NjcgMTIuNDk3OSA4LjAwODY3IDEyLjQ5NzkgNy45Njk1MSAxMi41QzcuOTI0NzMgMTIuNDM3NiA3Ljg5NTA4IDEyLjM3NzEgNy44NzEzMyAxMi4zMDUxQzcuODY3ODcgMTIuMjk0OSA3Ljg2NDQxIDEyLjI4NDcgNy44NjA4NSAxMi4yNzQxQzcuODE2ODQgMTIuMTQyNSA3Ljc3NzUxIDEyLjAwOTUgNy43MzgxNyAxMS44NzY1QzcuNzI5MTYgMTEuODQ2IDcuNzIwMTEgMTEuODE1NiA3LjcxMTA2IDExLjc4NTJDNy42NDM2IDExLjU1ODYgNy41NzcyNSAxMS4zMzE3IDcuNTExMDEgMTEuMTA0OEM3LjIzNTA3IDkuOTgyMjQgNy4yMzUwNyA5Ljk4MjI0IDYuNTM5IDkuMDc0NjZDNi41Mjc4NCA5LjA2NTk2IDYuNTE2NjkgOS4wNTcyNiA2LjUwNTE5IDkuMDQ4M0M2LjA0OTEzIDguNjk5MDIgNS40NDgzNCA4LjU2OTcgNC44OTgxNSA4LjQxODEzQzQuNzYyMDcgOC4zODA2MiA0LjYyNjA1IDguMzQyOTMgNC40OTAwMyA4LjMwNTIzQzQuNDc4MTQgOC4zMDE5MyA0LjQ3ODE0IDguMzAxOTMgNC40NjYgOC4yOTg1N0M0LjI2OTgxIDguMjQ0MTcgNC4wNzM2NyA4LjE4OTYzIDMuODc4MjIgOC4xMzI4M0MzLjg2OTk2IDguMTMwNDUgMy44NjE2OSA4LjEyODA2IDMuODUzMTcgOC4xMjU2MUMzLjU1MjkgOC4wMzg4MyAzLjU1MjkgOC4wMzg4MyAzLjUwMDY1IDcuOTc4MUMzLjQ5OTE3IDcuOTUwNTQgMy40OTkxNyA3Ljk1MDU0IDMuNTEyNDcgNy45MjE1N0MzLjU2NzA4IDcuODcwNCAzLjYyMDA4IDcuODQ4NDggMy42OTIxNiA3LjgyNjE5QzMuNzAyNiA3LjgyMjg0IDMuNzEzMDMgNy44MTk0OCAzLjcyMzc5IDcuODE2MDNDMy43NTU3NSA3LjgwNTgyIDMuNzg3NzkgNy43OTU4NCAzLjgxOTg1IDcuNzg1OTJDMy44MjkgNy43ODMwNSAzLjgzODE1IDcuNzgwMTcgMy44NDc1OCA3Ljc3NzIyQzMuOTEyMjggNy43NTY5MyAzLjk3NzIyIDcuNzM3NCA0LjA0MjI2IDcuNzE4MDlDNC4wNTgyNCA3LjcxMzMyIDQuMDU4MjQgNy43MTMzMiA0LjA3NDU0IDcuNzA4NDZDNC4zNTIyNyA3LjYyNTg3IDQuNjMxODEgNy41NDkgNC45MTEyNiA3LjQ3MTk2QzUuMTE5NSA3LjQxNDU1IDUuMzI3MzggNy4zNTYxOCA1LjUzNDYgNy4yOTU0OEM1LjU0NDEzIDcuMjkyNzEgNS41NTM2NSA3LjI4OTkzIDUuNTYzNDYgNy4yODcwN0M2LjA0MzUgNy4xNDY5NiA2LjUxMjc4IDYuOTQ4MTYgNi44MjI3NCA2LjU1MzdDNi44MjczOCA2LjU0Nzg1IDYuODMyMDIgNi41NDIgNi44MzY4IDYuNTM1OTdDNy4xODE5NyA2LjA5ODE1IDcuMzE2NTggNS41NjU3MiA3LjQ2Njk2IDUuMDQ2MjFDNy41MTY0MiA0Ljg3NTM1IDcuNTY2NDkgNC43MDQ2NCA3LjYxNjczIDQuNTMzOTlDNy42MzA2NCA0LjQ4NjczIDcuNjQ0NTMgNC40Mzk0NyA3LjY1ODM2IDQuMzkyMTlDNy43MTM5NCA0LjIwMjI5IDcuNzcwMzUgNC4wMTI2NCA3LjgzIDMuODIzODZDNy44MzU1OCAzLjgwNjE5IDcuODQxMTQgMy43ODg1IDcuODQ2NjYgMy43NzA4MUM3LjkzMDE3IDMuNTAzOTkgNy45MzAxNyAzLjUwMzk5IDguMDA5NDEgMy41WlwiIGZpbGw9XCJ3aGl0ZVwiLz48cGF0aCBkPVwiTTEwLjczNTggNC4wNTUzNUMxMC43OTAxIDQuMTE0MDkgMTAuODAxIDQuMTgzMTIgMTAuODE3OSA0LjI1ODEzQzEwLjg3NDIgNC40OTM3NiAxMC45MzkyIDQuNzEwNDIgMTEuMTY0NSA0Ljg0NzNDMTEuMzAzNiA0LjkyMDgzIDExLjQ2OTMgNC45NTQzIDExLjYyMzQgNC45ODU5QzExLjY4ODQgNC45OTk1MSAxMS43NDM0IDUuMDE3NTggMTEuNzk5MSA1LjA1MzdDMTEuODExNyA1LjA3Mjc4IDExLjgxMTcgNS4wNzI3OCAxMS44MTA5IDUuMTA1OThDMTEuNzk4IDUuMTQ2MzcgMTEuNzg2NyA1LjE1OTM5IDExLjc1MjYgNS4xODU4MkMxMS43MTUzIDUuMTk3NzUgMTEuNzE1MyA1LjE5Nzc1IDExLjY3MDYgNS4yMDcwMkMxMS42NTM2IDUuMjEwNzQgMTEuNjM2NyA1LjIxNDQ5IDExLjYxOTggNS4yMTgyOEMxMS42MTA3IDUuMjIwMjkgMTEuNjAxNyA1LjIyMjMgMTEuNTkyNCA1LjIyNDM3QzExLjMxNjggNS4yODUzMSAxMS4zMTY4IDUuMjg1MzEgMTEuMDc4NyA1LjQyMzIyQzExLjA3MSA1LjQyOTE4IDExLjA2MzIgNS40MzUxNCAxMS4wNTUyIDUuNDQxMjhDMTAuODg1IDUuNTg0NzkgMTAuODQ5IDUuODIzNTEgMTAuNzk3OCA2LjAyMzVDMTAuNzk0OSA2LjAzNDQ4IDEwLjc5MTkgNi4wNDU0NiAxMC43ODg5IDYuMDU2NzhDMTAuNzg2NCA2LjA2NjUgMTAuNzgzOCA2LjA3NjIyIDEwLjc4MTIgNi4wODYyNEMxMC43NzAyIDYuMTE1OTMgMTAuNzU4NyA2LjEzNTI4IDEwLjczNTggNi4xNTgwM0MxMC42NzIyIDYuMTY1NzYgMTAuNjcyMiA2LjE2NTc2IDEwLjY0MTMgNi4xNTgwM0MxMC41OTIgNi4xMjE1NSAxMC41ODEgNi4wNzk5OSAxMC41NjgyIDYuMDI0MTRDMTAuNTY2IDYuMDE1NDkgMTAuNTYzOSA2LjAwNjg1IDEwLjU2MTYgNS45OTc5NEMxMC41NTQ4IDUuOTcwMzIgMTAuNTQ4MSA1Ljk0MjY2IDEwLjU0MTUgNS45MTQ5OEMxMC40ODk3IDUuNjk5NDYgMTAuNDMxMSA1LjQ4OCAxMC4yMjQ0IDUuMzYxNjdDMTAuMDYyOCA1LjI3NTUgOS44NjYzNCA1LjIzNDc1IDkuNjg1NzUgNS4yMDE4NUM5LjYzNjI1IDUuMTkxOTkgOS42MDc4OSA1LjE3OTYgOS41NzcyNSA1LjE0MDZDOS41NzA2IDUuMTAxMDQgOS41NzA2IDUuMTAxMDQgOS41NzcyNSA1LjA2MTQ3QzkuNjI0MzUgNS4wMTQ4NiA5LjY3MzkgNS4wMDM0OCA5LjczNzU5IDQuOTg5NEM5Ljc1NzY2IDQuOTg0NjUgOS43Nzc3MiA0Ljk3OTg3IDkuNzk3NzcgNC45NzUwNUM5LjgwODEzIDQuOTcyNTggOS44MTg0OSA0Ljk3MDExIDkuODI5MTcgNC45Njc1NkM5Ljg4MiA0Ljk1NDU2IDkuOTM0MzEgNC45Mzk5OCA5Ljk4NjYgNC45MjUxMUM5Ljk5NjExIDQuOTIyNDcgMTAuMDA1NiA0LjkxOTg0IDEwLjAxNTQgNC45MTcxMkMxMC4xMjE3IDQuODg2NzMgMTAuMjEzNCA0Ljg0Nzg2IDEwLjI5ODQgNC43Nzg4NUMxMC4zMDYzIDQuNzcyNjEgMTAuMzE0MyA0Ljc2NjM4IDEwLjMyMjQgNC43NTk5NUMxMC40NTQ3IDQuNjQ2MTQgMTAuNDk5NiA0LjQ3NTE2IDEwLjU0MDQgNC4zMTU2MkMxMC41NDM1IDQuMzAzNTEgMTAuNTQ2NiA0LjI5MTQgMTAuNTQ5OCA0LjI3ODkyQzEwLjU1NiA0LjI1NDU5IDEwLjU2MjEgNC4yMzAyMyAxMC41NjgxIDQuMjA1ODVDMTAuNTcyMyA0LjE4ODg4IDEwLjU3MjMgNC4xODg4OCAxMC41NzY3IDQuMTcxNTdDMTAuNTc5MSA0LjE2MTQ0IDEwLjU4MTYgNC4xNTEzIDEwLjU4NDIgNC4xNDA4NkMxMC41OTUxIDQuMTA4NiAxMC42MDk0IDQuMDgzMjYgMTAuNjI5NCA0LjA1NTM1QzEwLjY2OCA0LjAzNjkyIDEwLjY5NSA0LjA0NTI1IDEwLjczNTggNC4wNTUzNVpcIiBmaWxsPVwiI0VERTlGRVwiLz48cGF0aCBkPVwiTTUuMjk1NTQgOS43NDcyMkM1LjMwOTYgOS43NDczMSA1LjMwOTYgOS43NDczMSA1LjMyMzk1IDkuNzQ3NDFDNS40MjQ4NiA5Ljc1MDM1IDUuNDkzMTQgOS43ODEyNyA1LjU2NzQ1IDkuODQ2MTNDNS42NTM5MyA5LjkzNTQ1IDUuNjkzODYgMTAuMDM2MiA1LjY5MTU5IDEwLjE1NjZDNS42ODE4OCAxMC4yNTQyIDUuNjIxNjcgMTAuMzM5NSA1LjU0NzgyIDEwLjQwNTVDNS40NjA5IDEwLjQ3MjUgNS4zNzMyMiAxMC40OTQ3IDUuMjYyMTUgMTAuNDkxNkM1LjE2ODUgMTAuNDgxMiA1LjA4MDM5IDEwLjQzODYgNS4wMTQwMiAxMC4zNzQ2QzQuOTMxNDcgMTAuMjY2OSA0LjkwNzM0IDEwLjE2ODIgNC45MTk0NCAxMC4wMzU1QzQuOTQ0NDMgOS45MzEwNCA1LjAxNjQ2IDkuODQ2MjUgNS4xMDg2IDkuNzg2NzhDNS4xNzI2IDkuNzU1NzYgNS4yMjQwOCA5Ljc0NjY1IDUuMjk1NTQgOS43NDcyMlpcIiBmaWxsPVwid2hpdGVcIi8+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVwicGFpbnQwX2xpbmVhcl80MDcwXzcyMDFcIiB4MT1cIjBcIiB5MT1cIjBcIiB4Mj1cIjE2XCIgeTI9XCIxNlwiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPjxzdG9wIHN0b3AtY29sb3I9XCIjOEI1Q0Y2XCIvPjxzdG9wIG9mZnNldD1cIjFcIiBzdG9wLWNvbG9yPVwiIzkzMzNFQVwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz48L2Rpdj5cbiAgICAgICAge3sgY29uZmlnLmZhaWx1cmVEZXRhaWxzLmFpRml4TWVzc2FnZSB8fCAnQUkgSW5zaWdodHMnIH19XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWlubGluZS1ibG9jayBjcWEtcHktWzJweF0gY3FhLXB4LVsxMHB4XSBjcWEtdGV4dC1jZW50ZXIgY3FhLXJvdW5kZWQtWzVweF0gY3FhLWJnLVsjRURFOUZFXSBjcWEtdGV4dC1bOHB4XSBjcWEtbGVhZGluZy1bMTJweF0gY3FhLXRleHQtWyM2RDI4RDldXCI+OTQlIGNvbmZpZGVuY2U8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTIgY3FhLWdhcC00XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjQ3NDhCXVwiPlJlYXNvbmluZzwvZGl2PlxuICAgICAgICAgIDx1bCBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEuNVwiPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwiY3FhLWZsZXggY3FhLWdhcC0yIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNDc1NTY5XVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLW10LTEuNVwiPjxzdmcgd2lkdGg9XCI2XCIgaGVpZ2h0PVwiNlwiIHZpZXdCb3g9XCIwIDAgNiA2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHJlY3Qgd2lkdGg9XCI2XCIgaGVpZ2h0PVwiNlwiIHJ4PVwiM1wiIGZpbGw9XCIjQTc4QkZBXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgICAgICAgICBTdGFsZSBzdGF0ZTogdGVzdCBhdHRyaWJ1dGUgYXMgcHJpbWFyeSBsb2NhdG9yIChoaWdoZXN0IHByaW9yaXR5KVxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImNxYS1mbGV4IGNxYS1nYXAtMiBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzQ3NTU2OV1cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1tdC0xLjVcIj48c3ZnIHdpZHRoPVwiNlwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDYgNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiNlwiIGhlaWdodD1cIjZcIiByeD1cIjNcIiBmaWxsPVwiI0E3OEJGQVwiLz48L3N2Zz48L2Rpdj5cbiAgICAgICAgICAgICAgQ29uZmlkZW5jZSBzY29yZTogOTQlIGJhc2VkIG9uIERPTSBzaW1pbGFyaXR5IGFuYWx5c2lzXG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwiY3FhLWZsZXggY3FhLWdhcC0yIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNDc1NTY5XVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLW10LTEuNVwiPjxzdmcgd2lkdGg9XCI2XCIgaGVpZ2h0PVwiNlwiIHZpZXdCb3g9XCIwIDAgNiA2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHJlY3Qgd2lkdGg9XCI2XCIgaGVpZ2h0PVwiNlwiIHJ4PVwiM1wiIGZpbGw9XCIjQTc4QkZBXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgICAgICAgICBJbmNyZWFzZWQgd2FpdCB0aW1lIGZyb20gMnMgdG8gNXMgZHVlIHRvIGJ1dHRvbiBsYXRlbmN5XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwiY3FhLWZsZXggY3FhLWdhcC0yIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNDc1NTY5XVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLW10LTEuNVwiPjxzdmcgd2lkdGg9XCI2XCIgaGVpZ2h0PVwiNlwiIHZpZXdCb3g9XCIwIDAgNiA2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHJlY3Qgd2lkdGg9XCI2XCIgaGVpZ2h0PVwiNlwiIHJ4PVwiM1wiIGZpbGw9XCIjQTc4QkZBXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgICAgICAgICBFbnZpcm9ubWVudCBiaW5kaW5nOiBzcGVlZCBvZiBhc3NldHMgYnkgMjAlIHRocm91Z2ggb3B0aW1pemVkIGNhY2hpbmdcbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjQ3NDhCXVwiPlN1Z2dlc3RlZCBGaXhlczwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtcHgtWzEwcHhdIGNxYS1weS1bMnB4XSBjcWEtcm91bmRlZC1bNXB4XSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzA2NUY0Nl0gY3FhLWJnLVsjRUNGREY1XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0QxRkFFNV1cIj5cbiAgICAgICAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjEwXCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDEwIDEwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xLjY2NjYyIDUuODMzMzZDMS41ODc3NyA1LjgzMzYzIDEuNTEwNDcgNS44MTE1MiAxLjQ0MzY5IDUuNzY5NkMxLjM3NjkgNS43Mjc2OCAxLjMyMzM5IDUuNjY3NjggMS4yODkzNSA1LjU5NjU1QzEuMjU1MzIgNS41MjU0MyAxLjI0MjE2IDUuNDQ2MSAxLjI1MTQxIDUuMzY3OEMxLjI2MDY3IDUuMjg5NSAxLjI5MTk1IDUuMjE1NDMgMS4zNDE2MiA1LjE1NDE5TDUuNDY2NjIgMC45MDQxOTRDNS40OTc1NyAwLjg2ODQ3OCA1LjUzOTczIDAuODQ0MzQyIDUuNTg2MiAwLjgzNTc0OUM1LjYzMjY3IDAuODI3MTU2IDUuNjgwNjcgMC44MzQ2MTYgNS43MjIzNCAwLjg1NjkwNEM1Ljc2NDAxIDAuODc5MTkyIDUuNzk2ODcgMC45MTQ5ODQgNS44MTU1MSAwLjk1ODQwNkM1LjgzNDE2IDEuMDAxODMgNS44Mzc0OSAxLjA1MDMgNS44MjQ5NiAxLjA5NTg2TDUuMDI0OTYgMy42MDQxOUM1LjAwMTM3IDMuNjY3MzMgNC45OTM0NCAzLjczNTI0IDUuMDAxODcgMy44MDIxMUM1LjAxMDI5IDMuODY4OTggNS4wMzQ4MSAzLjkzMjgxIDUuMDczMzMgMy45ODgxMkM1LjExMTg0IDQuMDQzNDMgNS4xNjMxOSA0LjA4ODU3IDUuMjIyOTkgNC4xMTk2OEM1LjI4Mjc4IDQuMTUwNzggNS4zNDkyMiA0LjE2NjkxIDUuNDE2NjIgNC4xNjY2OUg4LjMzMzI5QzguNDEyMTQgNC4xNjY0MyA4LjQ4OTQ0IDQuMTg4NTMgOC41NTYyMiA0LjIzMDQ1QzguNjIzMDEgNC4yNzIzNyA4LjY3NjUzIDQuMzMyMzggOC43MTA1NiA0LjQwMzVDOC43NDQ2IDQuNDc0NjMgOC43NTc3NSA0LjU1Mzk1IDguNzQ4NSA0LjYzMjI1QzguNzM5MjQgNC43MTA1NiA4LjcwNzk2IDQuNzg0NjMgOC42NTgyOSA0Ljg0NTg2TDQuNTMzMjkgOS4wOTU4NkM0LjUwMjM1IDkuMTMxNTggNC40NjAxOCA5LjE1NTcxIDQuNDEzNzEgOS4xNjQzQzQuMzY3MjUgOS4xNzI5IDQuMzE5MjQgOS4xNjU0NCA0LjI3NzU3IDkuMTQzMTVDNC4yMzU5IDkuMTIwODYgNC4yMDMwNSA5LjA4NTA3IDQuMTg0NCA5LjA0MTY1QzQuMTY1NzUgOC45OTgyMyA0LjE2MjQyIDguOTQ5NzYgNC4xNzQ5NiA4LjkwNDE5TDQuOTc0OTYgNi4zOTU4NkM0Ljk5ODU1IDYuMzMyNzMgNS4wMDY0NyA2LjI2NDgxIDQuOTk4MDQgNi4xOTc5NEM0Ljk4OTYyIDYuMTMxMDcgNC45NjUxIDYuMDY3MjQgNC45MjY1OSA2LjAxMTkzQzQuODg4MDcgNS45NTY2MiA0LjgzNjcyIDUuOTExNDggNC43NzY5MiA1Ljg4MDM4QzQuNzE3MTMgNS44NDkyNyA0LjY1MDY5IDUuODMzMTQgNC41ODMyOSA1LjgzMzM2SDEuNjY2NjJaXCIgc3Ryb2tlPVwiIzA1OTY2OVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICAgICAgICAgIFVwZGF0ZSBsb2NhdG9yIHRvIHVzZSBkYXRhLXRlc3RpZD0ncmVnaXN0cmF0aW9uLXN1Ym1pdCcgaW5zdGVhZCBvZiAjc3VibWl0LWJ0blxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtcHgtWzEwcHhdIGNxYS1weS1bMnB4XSBjcWEtcm91bmRlZC1bNXB4XSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzA2NUY0Nl0gY3FhLWJnLVsjRUNGREY1XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0QxRkFFNV1cIj5cbiAgICAgICAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjEwXCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDEwIDEwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xLjY2NjYyIDUuODMzMzZDMS41ODc3NyA1LjgzMzYzIDEuNTEwNDcgNS44MTE1MiAxLjQ0MzY5IDUuNzY5NkMxLjM3NjkgNS43Mjc2OCAxLjMyMzM5IDUuNjY3NjggMS4yODkzNSA1LjU5NjU1QzEuMjU1MzIgNS41MjU0MyAxLjI0MjE2IDUuNDQ2MSAxLjI1MTQxIDUuMzY3OEMxLjI2MDY3IDUuMjg5NSAxLjI5MTk1IDUuMjE1NDMgMS4zNDE2MiA1LjE1NDE5TDUuNDY2NjIgMC45MDQxOTRDNS40OTc1NyAwLjg2ODQ3OCA1LjUzOTczIDAuODQ0MzQyIDUuNTg2MiAwLjgzNTc0OUM1LjYzMjY3IDAuODI3MTU2IDUuNjgwNjcgMC44MzQ2MTYgNS43MjIzNCAwLjg1NjkwNEM1Ljc2NDAxIDAuODc5MTkyIDUuNzk2ODcgMC45MTQ5ODQgNS44MTU1MSAwLjk1ODQwNkM1LjgzNDE2IDEuMDAxODMgNS44Mzc0OSAxLjA1MDMgNS44MjQ5NiAxLjA5NTg2TDUuMDI0OTYgMy42MDQxOUM1LjAwMTM3IDMuNjY3MzMgNC45OTM0NCAzLjczNTI0IDUuMDAxODcgMy44MDIxMUM1LjAxMDI5IDMuODY4OTggNS4wMzQ4MSAzLjkzMjgxIDUuMDczMzMgMy45ODgxMkM1LjExMTg0IDQuMDQzNDMgNS4xNjMxOSA0LjA4ODU3IDUuMjIyOTkgNC4xMTk2OEM1LjI4Mjc4IDQuMTUwNzggNS4zNDkyMiA0LjE2NjkxIDUuNDE2NjIgNC4xNjY2OUg4LjMzMzI5QzguNDEyMTQgNC4xNjY0MyA4LjQ4OTQ0IDQuMTg4NTMgOC41NTYyMiA0LjIzMDQ1QzguNjIzMDEgNC4yNzIzNyA4LjY3NjUzIDQuMzMyMzggOC43MTA1NiA0LjQwMzVDOC43NDQ2IDQuNDc0NjMgOC43NTc3NSA0LjU1Mzk1IDguNzQ4NSA0LjYzMjI1QzguNzM5MjQgNC43MTA1NiA4LjcwNzk2IDQuNzg0NjMgOC42NTgyOSA0Ljg0NTg2TDQuNTMzMjkgOS4wOTU4NkM0LjUwMjM1IDkuMTMxNTggNC40NjAxOCA5LjE1NTcxIDQuNDEzNzEgOS4xNjQzQzQuMzY3MjUgOS4xNzI5IDQuMzE5MjQgOS4xNjU0NCA0LjI3NzU3IDkuMTQzMTVDNC4yMzU5IDkuMTIwODYgNC4yMDMwNSA5LjA4NTA3IDQuMTg0NCA5LjA0MTY1QzQuMTY1NzUgOC45OTgyMyA0LjE2MjQyIDguOTQ5NzYgNC4xNzQ5NiA4LjkwNDE5TDQuOTc0OTYgNi4zOTU4NkM0Ljk5ODU1IDYuMzMyNzMgNS4wMDY0NyA2LjI2NDgxIDQuOTk4MDQgNi4xOTc5NEM0Ljk4OTYyIDYuMTMxMDcgNC45NjUxIDYuMDY3MjQgNC45MjY1OSA2LjAxMTkzQzQuODg4MDcgNS45NTY2MiA0LjgzNjcyIDUuOTExNDggNC43NzY5MiA1Ljg4MDM4QzQuNzE3MTMgNS44NDkyNyA0LjY1MDY5IDUuODMzMTQgNC41ODMyOSA1LjgzMzM2SDEuNjY2NjJaXCIgc3Ryb2tlPVwiIzA1OTY2OVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICAgICAgICAgIEFkZCBleHBsaWNpdCB3YWl0IGZvciBuZXR3b3JrIGlkbGUgYmVmb3JlIGNsaWNraW5nIHN1Ym1pdFxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtcHgtWzEwcHhdIGNxYS1weS1bMnB4XSBjcWEtcm91bmRlZC1bNXB4XSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzA2NUY0Nl0gY3FhLWJnLVsjRUNGREY1XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0QxRkFFNV1cIj5cbiAgICAgICAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjEwXCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDEwIDEwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xLjY2NjYyIDUuODMzMzZDMS41ODc3NyA1LjgzMzYzIDEuNTEwNDcgNS44MTE1MiAxLjQ0MzY5IDUuNzY5NkMxLjM3NjkgNS43Mjc2OCAxLjMyMzM5IDUuNjY3NjggMS4yODkzNSA1LjU5NjU1QzEuMjU1MzIgNS41MjU0MyAxLjI0MjE2IDUuNDQ2MSAxLjI1MTQxIDUuMzY3OEMxLjI2MDY3IDUuMjg5NSAxLjI5MTk1IDUuMjE1NDMgMS4zNDE2MiA1LjE1NDE5TDUuNDY2NjIgMC45MDQxOTRDNS40OTc1NyAwLjg2ODQ3OCA1LjUzOTczIDAuODQ0MzQyIDUuNTg2MiAwLjgzNTc0OUM1LjYzMjY3IDAuODI3MTU2IDUuNjgwNjcgMC44MzQ2MTYgNS43MjIzNCAwLjg1NjkwNEM1Ljc2NDAxIDAuODc5MTkyIDUuNzk2ODcgMC45MTQ5ODQgNS44MTU1MSAwLjk1ODQwNkM1LjgzNDE2IDEuMDAxODMgNS44Mzc0OSAxLjA1MDMgNS44MjQ5NiAxLjA5NTg2TDUuMDI0OTYgMy42MDQxOUM1LjAwMTM3IDMuNjY3MzMgNC45OTM0NCAzLjczNTI0IDUuMDAxODcgMy44MDIxMUM1LjAxMDI5IDMuODY4OTggNS4wMzQ4MSAzLjkzMjgxIDUuMDczMzMgMy45ODgxMkM1LjExMTg0IDQuMDQzNDMgNS4xNjMxOSA0LjA4ODU3IDUuMjIyOTkgNC4xMTk2OEM1LjI4Mjc4IDQuMTUwNzggNS4zNDkyMiA0LjE2NjkxIDUuNDE2NjIgNC4xNjY2OUg4LjMzMzI5QzguNDEyMTQgNC4xNjY0MyA4LjQ4OTQ0IDQuMTg4NTMgOC41NTYyMiA0LjIzMDQ1QzguNjIzMDEgNC4yNzIzNyA4LjY3NjUzIDQuMzMyMzggOC43MTA1NiA0LjQwMzVDOC43NDQ2IDQuNDc0NjMgOC43NTc3NSA0LjU1Mzk1IDguNzQ4NSA0LjYzMjI1QzguNzM5MjQgNC43MTA1NiA4LjcwNzk2IDQuNzg0NjMgOC42NTgyOSA0Ljg0NTg2TDQuNTMzMjkgOS4wOTU4NkM0LjUwMjM1IDkuMTMxNTggNC40NjAxOCA5LjE1NTcxIDQuNDEzNzEgOS4xNjQzQzQuMzY3MjUgOS4xNzI5IDQuMzE5MjQgOS4xNjU0NCA0LjI3NzU3IDkuMTQzMTVDNC4yMzU5IDkuMTIwODYgNC4yMDMwNSA5LjA4NTA3IDQuMTg0NCA5LjA0MTY1QzQuMTY1NzUgOC45OTgyMyA0LjE2MjQyIDguOTQ5NzYgNC4xNzQ5NiA4LjkwNDE5TDQuOTc0OTYgNi4zOTU4NkM0Ljk5ODU1IDYuMzMyNzMgNS4wMDY0NyA2LjI2NDgxIDQuOTk4MDQgNi4xOTc5NEM0Ljk4OTYyIDYuMTMxMDcgNC45NjUxIDYuMDY3MjQgNC45MjY1OSA2LjAxMTkzQzQuODg4MDcgNS45NTY2MiA0LjgzNjcyIDUuOTExNDggNC43NzY5MiA1Ljg4MDM4QzQuNzE3MTMgNS44NDkyNyA0LjY1MDY5IDUuODMzMTQgNC41ODMyOSA1LjgzMzM2SDEuNjY2NjJaXCIgc3Ryb2tlPVwiIzA1OTY2OVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICAgICAgICAgIENvbnNpZGVyIGFkZGluZyByZXRyeSBsb2dpYyBmb3IgZm9ybSBzdWJtaXNzaW9uIHN0ZXBcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFpbGVkLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2ZhaWxlZC1zdGVwL2ZhaWxlZC1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9mYWlsZWQtc3RlcC9mYWlsZWQtc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBNkYsNkJBQTZCLEVBQXNCLDhCQUE4QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeE4sT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQVUzRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsaUJBQWlCO0lBTjFEOztRQWtCVyx3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDekIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLFlBQU8sR0FBYSxLQUFLLENBQUM7UUFDekIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDbkUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUN6RCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNuQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDeEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDcEMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDNUQseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFDL0QsdUJBQWtCLEdBQXdCLDZCQUE2QixDQUFDO1FBQ3hFLHdCQUFtQixHQUF5Qiw4QkFBOEIsQ0FBQztLQTZEckY7SUF4RFUsUUFBUTtRQUNmLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDSixDQUFDO1FBRXRCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBK0I7UUFDbkQsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQTBCO1FBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFZO1FBQ3JCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQscUJBQXFCLENBQUMsTUFBeUIsRUFBRSxLQUFZO1FBQzNELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsTUFBMEIsRUFBRSxLQUFZO1FBQzdELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDOztnSEFuRlUsbUJBQW1CO29HQUFuQixtQkFBbUIsNHhCQ1poQyx5N3BCQW1KTTsyRkR2SU8sbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGlCQUFpQixRQUdyQixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7OEJBSXJCLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNFLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGYWlsZWRTdGVwQ29uZmlnLCBTdWJTdGVwLCBGYWlsdXJlRGV0YWlscywgU3RlcFN0YXR1cywgVGltaW5nQnJlYWtkb3duLCBBZGRTdGVwTWVudU9wdGlvbiwgREVGQVVMVF9BRERfU1RFUF9NRU5VX09QVElPTlMsIFN0ZXBNb3JlTWVudU9wdGlvbiwgREVGQVVMVF9TVEVQX01PUkVfTUVOVV9PUFRJT05TIH0gZnJvbSAnLi4vZXhlY3V0aW9uLXN0ZXAubW9kZWxzJztcbmltcG9ydCB7IEJhc2VTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBtYWtlQ3VycmVudEJhc2VsaW5lRXZlbnQgfSBmcm9tICcuLi92aXN1YWwtY29tcGFyaXNvbi92aXN1YWwtY29tcGFyaXNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgdXBsb2FkQmFzZWxpbmVFdmVudCB9IGZyb20gJy4uL3Zpc3VhbC1jb21wYXJpc29uL3Zpc3VhbC1jb21wYXJpc29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1mYWlsZWQtc3RlcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWlsZWQtc3RlcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcgfVxufSlcbmV4cG9ydCBjbGFzcyBGYWlsZWRTdGVwQ29tcG9uZW50IGV4dGVuZHMgQmFzZVN0ZXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBJbmRpdmlkdWFsIGlucHV0c1xuICBASW5wdXQoKSBpZCE6IHN0cmluZztcbiAgQElucHV0KCkgdGVzdFN0ZXBSZXN1bHRJZCE6IHN0cmluZztcbiAgQElucHV0KCkgc3RlcE51bWJlciE6IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0YXR1cyE6IFN0ZXBTdGF0dXM7XG4gIEBJbnB1dCgpIGR1cmF0aW9uITogbnVtYmVyO1xuICBASW5wdXQoKSB0aW1pbmdCcmVha2Rvd24/OiBUaW1pbmdCcmVha2Rvd247XG4gIEBJbnB1dCgpIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgc3ViU3RlcHMhOiBTdWJTdGVwW107XG4gIEBJbnB1dCgpIGZhaWx1cmVEZXRhaWxzITogRmFpbHVyZURldGFpbHM7XG4gIEBJbnB1dCgpIGlzVXBsb2FkaW5nQmFzZWxpbmUgPSB7fTtcbiAgQElucHV0KCkgaXNMaXZlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzRGVidWc/OiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBtYWtlQ3VycmVudEJhc2VsaW5lID0gbmV3IEV2ZW50RW1pdHRlcjxtYWtlQ3VycmVudEJhc2VsaW5lRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSB1cGxvYWRCYXNlbGluZSA9IG5ldyBFdmVudEVtaXR0ZXI8dXBsb2FkQmFzZWxpbmVFdmVudD4oKTtcbiAgQE91dHB1dCgpIGFuYWx5emUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSB2aWV3RnVsbExvZ3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBlZGl0U3RlcCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGFkZFN0ZXBPcHRpb25TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEFkZFN0ZXBNZW51T3B0aW9uPigpO1xuICBAT3V0cHV0KCkgc3RlcE1vcmVPcHRpb25TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFN0ZXBNb3JlTWVudU9wdGlvbj4oKTtcbiAgQElucHV0KCkgYWRkU3RlcE1lbnVPcHRpb25zOiBBZGRTdGVwTWVudU9wdGlvbltdID0gREVGQVVMVF9BRERfU1RFUF9NRU5VX09QVElPTlM7XG4gIEBJbnB1dCgpIHN0ZXBNb3JlTWVudU9wdGlvbnM6IFN0ZXBNb3JlTWVudU9wdGlvbltdID0gREVGQVVMVF9TVEVQX01PUkVfTUVOVV9PUFRJT05TO1xuXG4gIC8vIENvbmZpZyBwcm9wZXJ0eSBmb3IgYmFzZSBjbGFzcyAtIGJ1aWx0IGZyb20gaW5kaXZpZHVhbCBpbnB1dHMgaW4gbmdPbkluaXRcbiAgb3ZlcnJpZGUgY29uZmlnITogRmFpbGVkU3RlcENvbmZpZztcblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBCdWlsZCBjb25maWcgZnJvbSBpbmRpdmlkdWFsIGlucHV0c1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICB0ZXN0U3RlcFJlc3VsdElkOiB0aGlzLnRlc3RTdGVwUmVzdWx0SWQsXG4gICAgICBzdGVwTnVtYmVyOiB0aGlzLnN0ZXBOdW1iZXIsXG4gICAgICB0aXRsZTogdGhpcy50aXRsZSxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICBkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcbiAgICAgIHR5cGU6ICdmYWlsZWQnLFxuICAgICAgc3ViU3RlcHM6IHRoaXMuc3ViU3RlcHMsXG4gICAgICBmYWlsdXJlRGV0YWlsczogdGhpcy5mYWlsdXJlRGV0YWlscyxcbiAgICAgIHRpbWluZ0JyZWFrZG93bjogdGhpcy50aW1pbmdCcmVha2Rvd24sXG4gICAgICBleHBhbmRlZDogdGhpcy5leHBhbmRlZCxcbiAgICB9IGFzIEZhaWxlZFN0ZXBDb25maWc7XG5cbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG5cbiAgb25NYWtlQ3VycmVudEJhc2VsaW5lKGV2ZW50OiBtYWtlQ3VycmVudEJhc2VsaW5lRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnTWFrZSBjdXJyZW50IGJhc2VsaW5lIGNsaWNrZWQnKTtcbiAgICB0aGlzLm1ha2VDdXJyZW50QmFzZWxpbmUuZW1pdChldmVudCk7XG4gIH1cblxuICBvblVwbG9hZEJhc2VsaW5lKGV2ZW50OiB1cGxvYWRCYXNlbGluZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ1VwbG9hZCBiYXNlbGluZSBjbGlja2VkJyk7XG4gICAgdGhpcy51cGxvYWRCYXNlbGluZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uQW5hbHl6ZSgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnQW5hbHl6ZSBjbGlja2VkJyk7XG4gICAgdGhpcy5hbmFseXplLmVtaXQoKTtcbiAgfVxuXG4gIG9uVmlld0Z1bGxMb2dzKCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdWaWV3IGZ1bGwgbG9ncyBjbGlja2VkJyk7XG4gICAgdGhpcy52aWV3RnVsbExvZ3MuZW1pdCgpO1xuICB9XG5cbiAgb25FZGl0U3RlcChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZWRpdFN0ZXAuZW1pdCgpO1xuICB9XG5cbiAgb25BZGRTdGVwT3B0aW9uU2VsZWN0KG9wdGlvbjogQWRkU3RlcE1lbnVPcHRpb24sIGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5hZGRTdGVwT3B0aW9uU2VsZWN0LmVtaXQob3B0aW9uKTtcbiAgfVxuXG4gIG9uU3RlcE1vcmVPcHRpb25TZWxlY3Qob3B0aW9uOiBTdGVwTW9yZU1lbnVPcHRpb24sIGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zdGVwTW9yZU9wdGlvblNlbGVjdC5lbWl0KG9wdGlvbik7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtcC0yIGNxYS1jdXJzb3ItcG9pbnRlciBjcWEtYmctWyNGRkZBRkFdXCJcbiAgICBzdHlsZT1cImJvcmRlci1sZWZ0OiAnMnB4IHNvbGlkICNFRjQ0NDQnXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICBcbiAgICA8IS0tIFN0YXR1cyBJY29uIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJjb25maWcuc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdzdWNjZXNzJ1wiID48c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTEwLjkwMDUgNC45OTk5OUMxMS4xMjg5IDYuMTIwNjQgMTAuOTY2MiA3LjI4NTcxIDEwLjQzOTUgOC4zMDA4OUM5LjkxMjc5IDkuMzE2MDggOS4wNTQgMTAuMTIgOC4wMDYzMSAxMC41Nzg3QzYuOTU4NjIgMTEuMDM3MyA1Ljc4NTM2IDExLjEyMjkgNC42ODIyIDEwLjgyMTJDMy41NzkwNCAxMC41MTk1IDIuNjEyNjUgOS44NDg2OSAxLjk0NDE5IDguOTIwNzFDMS4yNzU3MyA3Ljk5MjcyIDAuOTQ1NjExIDYuODYzNjEgMS4wMDg4OCA1LjcyMTY5QzEuMDcyMTUgNC41Nzk3NiAxLjUyNDk5IDMuNDk0MDQgMi4yOTE4OCAyLjY0NTU4QzMuMDU4NzYgMS43OTcxMiA0LjA5MzM0IDEuMjM3MjEgNS4yMjMwOCAxLjA1OTIyQzYuMzUyODIgMC44ODEyMzMgNy41MDk0NCAxLjA5NTkyIDguNTAwMDUgMS42Njc0OVwiIHN0cm9rZT1cIiMyMkM1NUVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk00LjUgNS41TDYgN0wxMSAyXCIgc3Ryb2tlPVwiIzIyQzU1RVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnLnN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnZmFpbHVyZSdcIj48c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTYgMTFDOC43NjE0MiAxMSAxMSA4Ljc2MTQyIDExIDZDMTEgMy4yMzg1OCA4Ljc2MTQyIDEgNiAxQzMuMjM4NTggMSAxIDMuMjM4NTggMSA2QzEgOC43NjE0MiAzLjIzODU4IDExIDYgMTFaXCIgc3Ryb2tlPVwiI0RDMjYyNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTcuNSA0LjVMNC41IDcuNVwiIHN0cm9rZT1cIiNEQzI2MjZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk00LjUgNC41TDcuNSA3LjVcIiBzdHJva2U9XCIjREMyNjI2XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvZGl2PlxuXG4gICAgPCEtLSBTdGVwIE51bWJlciBhbmQgVGl0bGUgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTNcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1bIzdGMUQxRF0gY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxM3B4XVwiPlxuICAgICAgICB7eyBjb25maWcuc3RlcE51bWJlciB9fS4gPHNwYW4gW2lubmVySFRNTF09XCJjb25maWcudGl0bGVcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTFcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJpc0RlYnVnXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMC41IGNxYS10ZXh0LVsjOUNBM0FGXVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjcWEtcC0wIGNxYS1ib3JkZXItMCBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwIGNxYS10cmFuc2l0aW9uLW9wYWNpdHkgZm9jdXM6Y3FhLW91dGxpbmUtbm9uZVwiIGFyaWEtbGFiZWw9XCJFZGl0XCIgKGNsaWNrKT1cIm9uRWRpdFN0ZXAoJGV2ZW50KVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdGV4dC1bMTRweF0gIWNxYS13LVsxNHB4XSAhY3FhLWgtWzE0cHhdXCI+ZWRpdDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eSBmb2N1czpjcWEtb3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIkFkZFwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhZGRTdGVwTWVudVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdGV4dC1bMTRweF0gIWNxYS13LVsxNHB4XSAhY3FhLWgtWzE0cHhdXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxtYXQtbWVudSAjYWRkU3RlcE1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJjcWEtYWRkLXN0ZXAtbWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiIHlQb3NpdGlvbj1cImJlbG93XCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBvcHQgb2YgYWRkU3RlcE1lbnVPcHRpb25zXCIgKGNsaWNrKT1cIm9uQWRkU3RlcE9wdGlvblNlbGVjdChvcHQsICRldmVudClcIj57eyBvcHQubGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjcWEtcC0wIGNxYS1ib3JkZXItMCBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwIGNxYS10cmFuc2l0aW9uLW9wYWNpdHkgZm9jdXM6Y3FhLW91dGxpbmUtbm9uZVwiIGFyaWEtbGFiZWw9XCJNb3JlIG9wdGlvbnNcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwic3RlcE1vcmVNZW51XCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS10ZXh0LVsxNHB4XSAhY3FhLXctWzE0cHhdICFjcWEtaC1bMTRweF1cIj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51ICNzdGVwTW9yZU1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJjcWEtc3RlcC1tb3JlLW1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIiB5UG9zaXRpb249XCJiZWxvd1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgb3B0IG9mIHN0ZXBNb3JlTWVudU9wdGlvbnNcIiAoY2xpY2spPVwib25TdGVwTW9yZU9wdGlvblNlbGVjdChvcHQsICRldmVudClcIj57eyBvcHQubGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bOXB4XSBjcWEtbGVhZGluZy1bMjBweF0gY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1bI0I5MUMxQ11cIj5cbiAgICAgICAge3sgZm9ybWF0RHVyYXRpb24oY29uZmlnLmR1cmF0aW9uKSB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPHN2ZyBbY2xhc3MuY3FhLXJvdGF0ZS0xODBdPVwiaXNFeHBhbmRlZFwiIHdpZHRoPVwiMTBcIiBoZWlnaHQ9XCIxMFwiIHZpZXdCb3g9XCIwIDAgMTAgMTBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTIuNSAzLjc1TDUgNi4yNUw3LjUgMy43NVwiIHN0cm9rZT1cIiNGODcxNzFcIiBzdHJva2Utd2lkdGg9XCIwLjgzMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gRXhwYW5kZWQgQ29udGVudCAtLT5cbiAgPGRpdiAqbmdJZj1cImlzRXhwYW5kZWRcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTIgY3FhLXAtMlwiIHN0eWxlPVwiYm9yZGVyLWxlZnQ6ICcycHggc29saWQgI0ZBQzdDNyc7IGJvcmRlci1ib3R0b206ICcxcHggc29saWQgI0ZFRTJFMidcIj5cbiAgICA8IS0tIFN1Yi1zdGVwcyAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnLnN1YlN0ZXBzICYmIGNvbmZpZy5zdWJTdGVwcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xIGNxYS1wbC1bOXB4XVwiIHN0eWxlPVwiYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRjNGNEY2O1wiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgc3ViU3RlcCBvZiBjb25maWcuc3ViU3RlcHNcIlxuICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS10ZXh0LVs5cHhdIGNxYS1sZWFkaW5nLVsyMHB4XVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInN1YlN0ZXAuZGVzY3JpcHRpb24gPT09IGNvbmZpZy5mYWlsdXJlRGV0YWlscy5mYWlsZWRBY3Rpb24gPyAnY3FhLXRleHQtWyNCOTFDMUNdJyA6ICdjcWEtdGV4dC1bIzQ3NTU2OV0nXCI+XG4gICAgICAgIFxuICAgICAgICA8IS0tIEZhaWxlZCBBY3Rpb24gSW5kaWNhdG9yIC0tPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInN1YlN0ZXAuZGVzY3JpcHRpb24gPT09IGNvbmZpZy5mYWlsdXJlRGV0YWlscy5mYWlsZWRBY3Rpb25cIiBjbGFzcz1cImNxYS10ZXh0LVsjRUY0NDQ0XSBjcWEtZm9udC1ib2xkXCI+4oCiPC9zcGFuPlxuXG4gICAgICAgIDwhLS0gU3ViLXN0ZXAgRGVzY3JpcHRpb24gLS0+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZsZXgtMVwiIFtuZ0NsYXNzXT1cInN1YlN0ZXAuZGVzY3JpcHRpb24gPT09IGNvbmZpZy5mYWlsdXJlRGV0YWlscy5mYWlsZWRBY3Rpb24gPyAnY3FhLWZvbnQtbWVkaXVtJyA6ICcnXCI+XG4gICAgICAgICAge3sgc3ViU3RlcC5kZXNjcmlwdGlvbiB9fVxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPCEtLSBTdWItc3RlcCBUaW1lc3RhbXAgb3IgRHVyYXRpb24gLS0+XG4gICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cInN1YlN0ZXAuZGVzY3JpcHRpb24gPT09IGNvbmZpZy5mYWlsdXJlRGV0YWlscy5mYWlsZWRBY3Rpb24gPyAnY3FhLXRleHQtWyNGQ0E1QTVdJyA6ICdjcWEtdGV4dC1bI0QxRDVEQl0nXCI+XG4gICAgICAgICAge3sgc3ViU3RlcC50aW1lc3RhbXAgfHwgZm9ybWF0RHVyYXRpb24oc3ViU3RlcC5kdXJhdGlvbikgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEV4cGVjdGVkIHZzIEFjdHVhbCBDb21wYXJpc29uIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJjb25maWcuZmFpbHVyZURldGFpbHNcIiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMiBjcWEtcm91bmRlZCBjcWEtb3ZlcmZsb3ctaGlkZGVuIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTVFN0VCXVwiPlxuICAgICAgPCEtLSBFeHBlY3RlZCBDb2x1bW4gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXAtMS41IGNxYS10ZXh0LVs5cHhdIGNxYS1sZWFkaW5nLVsyMHB4XSBjcWEtYmctd2hpdGVcIiBzdHlsZT1cImJvcmRlci1yaWdodDogMXB4IHNvbGlkICNFNUU3RUI7XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bIzlDQTNBRl1cIj5FWFBFQ1RFRDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWyMzNzQxNTFdXCI+XG4gICAgICAgICAge3sgY29uZmlnLmZhaWx1cmVEZXRhaWxzLmV4cGVjdGVkIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQWN0dWFsIENvbHVtbiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtcC0xLjUgY3FhLXRleHQtWzlweF0gY3FhLWxlYWRpbmctWzIwcHhdIGNxYS1iZy1bI0ZFRjhGOF1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsjRjg3MTcxXVwiPkFDVFVBTDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWyM5OTFCMUJdXCI+XG4gICAgICAgICAge3sgY29uZmlnLmZhaWx1cmVEZXRhaWxzLmFjdHVhbCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBWaXN1YWwgQ29tcGFyaXNvbiBDb21wb25lbnQgLS0+XG4gICAgPGNxYS12aXN1YWwtY29tcGFyaXNvblxuICAgICAgKm5nSWY9XCJjb25maWcuZmFpbHVyZURldGFpbHNcIlxuICAgICAgW3Rlc3RTdGVwUmVzdWx0SWRdPVwidGVzdFN0ZXBSZXN1bHRJZFwiXG4gICAgICBbc2NyZWVuc2hvdHNdPVwiY29uZmlnLmZhaWx1cmVEZXRhaWxzLnNjcmVlbnNob3RzXCJcbiAgICAgIFtsb2dzXT1cImNvbmZpZy5mYWlsdXJlRGV0YWlscy5sb2dzXCJcbiAgICAgIChtYWtlQ3VycmVudEJhc2VsaW5lKT1cIm9uTWFrZUN1cnJlbnRCYXNlbGluZSgkZXZlbnQpXCJcbiAgICAgICh1cGxvYWRCYXNlbGluZSk9XCJvblVwbG9hZEJhc2VsaW5lKCRldmVudClcIlxuICAgICAgKGFuYWx5emUpPVwib25BbmFseXplKClcIlxuICAgICAgW3Rlc3RTdGVwUmVzdWx0SWRdPVwidGVzdFN0ZXBSZXN1bHRJZFwiXG4gICAgICBbaXNVcGxvYWRpbmdCYXNlbGluZV09XCJpc1VwbG9hZGluZ0Jhc2VsaW5lXCJcbiAgICAgIFtpc0xpdmVdPVwiaXNMaXZlXCJcbiAgICAgICh2aWV3RnVsbExvZ3MpPVwib25WaWV3RnVsbExvZ3MoKVwiPlxuICAgIDwvY3FhLXZpc3VhbC1jb21wYXJpc29uPlxuXG4gICAgPCEtLSBBSSBGaXggTWVzc2FnZSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnLmZhaWx1cmVEZXRhaWxzLmFpRml4QXBwbGllZFwiIGNsYXNzPVwiY3FhLXB4LTMgY3FhLXB0LTEuNSBjcWEtcGItMiBjcWEtcm91bmRlZC14bCBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0UyRThGMF0gY3FhLWJnLVsjRkFGNUZGXVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMEYxNzJBXSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtbWItM1wiPlxuICAgICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiNFwiIGZpbGw9XCJ1cmwoI3BhaW50MF9saW5lYXJfNDA3MF83MjAxKVwiLz48cGF0aCBkPVwiTTguMDA5NDEgMy41QzguMDY0ODkgMy41MjI3NCA4LjA4ODU5IDMuNTc4MjcgOC4xMTEzMSAzLjYyOTg1QzguMTIyNjkgMy42NTk5IDguMTMzMTQgMy42OTAxMiA4LjE0MzI5IDMuNzIwNThDOC4xNDcyNiAzLjczMjI1IDguMTUxMjMgMy43NDM5MiA4LjE1NTMyIDMuNzU1OTRDOC4yMDgwNiAzLjkxMyA4LjI1NTA0IDQuMDcxNzUgOC4zMDIyOSA0LjIzMDM4QzguMzEyOTcgNC4yNjYxOSA4LjMyMzY5IDQuMzAxOTkgOC4zMzQ0MiA0LjMzNzc4QzguMzg5MDUgNC41MjAwNCA4LjQ0MzI3IDQuNzAyNCA4LjQ5NzE5IDQuODg0ODRDOC41MDQ3NiA0LjkxMDQ3IDguNTEyMzQgNC45MzYwOSA4LjUxOTkyIDQuOTYxNzFDOC41NDEyOCA1LjAzMzk1IDguNTYyNjIgNS4xMDYxOSA4LjU4MzgzIDUuMTc4NDdDOC42Mjg2NyA1LjMzMTIgOC42NzQ3MyA1LjQ4MzQ3IDguNzIzNzggNS42MzUwMUM4LjcyODA3IDUuNjQ4MjcgOC43MzIzNiA1LjY2MTUyIDguNzM2NzcgNS42NzUxOEM4Ljg2NDIgNi4wNjUgOS4wNDQ4MiA2LjQxNDM3IDkuMzQwOSA2LjcxMTk2QzkuMzQ4MjMgNi43MTk3IDkuMzU1NTYgNi43Mjc0NCA5LjM2MzEyIDYuNzM1NDFDOS40ODk1IDYuODY0MzcgOS42NTE2OSA2Ljk2NzcxIDkuODEzOCA3LjA1MTExQzkuODIyMDYgNy4wNTU0MiA5LjgzMDMxIDcuMDU5NzQgOS44Mzg4MiA3LjA2NDE5QzEwLjMxNTkgNy4zMDkyNSAxMC44ODk1IDcuNDE3MDQgMTEuNDA2MiA3LjU2MDVDMTEuNjMyNiA3LjYyMzQgMTEuODU4MyA3LjY4ODI5IDEyLjA4MzIgNy43NTYwM0MxMi4wOTkgNy43NjA3OSAxMi4xMTQ4IDcuNzY1NTQgMTIuMTMwNiA3Ljc3MDI4QzEyLjE3NzggNy43ODQ0NSAxMi4yMjUgNy43OTg4NyAxMi4yNzIxIDcuODEzNDdDMTIuMjgzMSA3LjgxNjc5IDEyLjI5NDEgNy44MjAxMSAxMi4zMDU0IDcuODIzNTNDMTIuMzcwMyA3Ljg0NDA2IDEyLjQzMjQgNy44NjgyOSAxMi40ODU3IDcuOTEwMjdDMTIuNTAxOSA3Ljk0NDE4IDEyLjUwMTkgNy45NDQxOCAxMi40OTc1IDcuOTc4MUMxMi40NDU2IDguMDI3MzYgMTIuMzk0MiA4LjA1MDQ2IDEyLjMyNTggOC4wNzNDMTIuMzE2IDguMDc2MzIgMTIuMzA2MiA4LjA3OTY1IDEyLjI5NjEgOC4wODMwOEMxMi4xODA2IDguMTIxODMgMTIuMDYzNSA4LjE1NTc1IDExLjk0NjMgOC4xODkzNUMxMS45MjIyIDguMTk2MyAxMS44OTgxIDguMjAzMjYgMTEuODc0MSA4LjIxMDIxQzExLjcyNTcgOC4yNTMwMSAxMS41NzcxIDguMjk0OSAxMS40MjgzIDguMzM2MzJDMTEuMjMyMyA4LjM5MDg4IDExLjAzNjYgOC40NDYzNCAxMC44NDExIDguNTAyNDNDMTAuODA5MSA4LjUxMTYyIDEwLjc3NzEgOC41MjA3OCAxMC43NDUgOC41Mjk5MUMxMC41NzY3IDguNTc3ODYgMTAuNDA5MiA4LjYyNzUzIDEwLjI0MzEgOC42ODIwOEMxMC4yMjk0IDguNjg2NTkgMTAuMjE1NiA4LjY5MTEgMTAuMjAxNCA4LjY5NTc0QzkuNjQ1MTEgOC44ODA4MiA5LjIyMTEgOS4yMjYwOSA4Ljk1NTcxIDkuNzMwOTlDOC44MTI2MyAxMC4wMTQ4IDguNzI4MjMgMTAuMzIxNiA4LjY0MjE0IDEwLjYyNDVDOC42MTg4NCAxMC43MDYyIDguNTk0MDkgMTAuNzg3NSA4LjU2OTA1IDEwLjg2ODdDOC41NDk0IDEwLjkzMjYgOC41MzAyIDEwLjk5NjYgOC41MTE0OSAxMS4wNjA4QzguNTA5MjYgMTEuMDY4NCA4LjUwNzAzIDExLjA3NjEgOC41MDQ3MyAxMS4wODM5QzguNDkzOTQgMTEuMTIwOSA4LjQ4MzE5IDExLjE1NzkgOC40NzI1MiAxMS4xOTVDOC40NDUxOSAxMS4yODg4IDguNDE1NzggMTEuMzgxOSA4LjM4NTU1IDExLjQ3NDlDOC4zMzE5MSAxMS42NDAyIDguMjgzMSAxMS44MDY3IDguMjM0NTkgMTEuOTczNUM4LjE2MTQ0IDEyLjIyNDYgOC4xNjE0NCAxMi4yMjQ2IDguMTE5OTcgMTIuMzQ1M0M4LjExNzIxIDEyLjM1MzQgOC4xMTQ0NiAxMi4zNjE1IDguMTExNjMgMTIuMzY5OEM4LjA5NjQ5IDEyLjQxMjggOC4wODA5MiAxMi40NTIzIDguMDUyMjYgMTIuNDg4N0M4LjAwODY3IDEyLjQ5NzkgOC4wMDg2NyAxMi40OTc5IDcuOTY5NTEgMTIuNUM3LjkyNDczIDEyLjQzNzYgNy44OTUwOCAxMi4zNzcxIDcuODcxMzMgMTIuMzA1MUM3Ljg2Nzg3IDEyLjI5NDkgNy44NjQ0MSAxMi4yODQ3IDcuODYwODUgMTIuMjc0MUM3LjgxNjg0IDEyLjE0MjUgNy43Nzc1MSAxMi4wMDk1IDcuNzM4MTcgMTEuODc2NUM3LjcyOTE2IDExLjg0NiA3LjcyMDExIDExLjgxNTYgNy43MTEwNiAxMS43ODUyQzcuNjQzNiAxMS41NTg2IDcuNTc3MjUgMTEuMzMxNyA3LjUxMTAxIDExLjEwNDhDNy4yMzUwNyA5Ljk4MjI0IDcuMjM1MDcgOS45ODIyNCA2LjUzOSA5LjA3NDY2QzYuNTI3ODQgOS4wNjU5NiA2LjUxNjY5IDkuMDU3MjYgNi41MDUxOSA5LjA0ODNDNi4wNDkxMyA4LjY5OTAyIDUuNDQ4MzQgOC41Njk3IDQuODk4MTUgOC40MTgxM0M0Ljc2MjA3IDguMzgwNjIgNC42MjYwNSA4LjM0MjkzIDQuNDkwMDMgOC4zMDUyM0M0LjQ3ODE0IDguMzAxOTMgNC40NzgxNCA4LjMwMTkzIDQuNDY2IDguMjk4NTdDNC4yNjk4MSA4LjI0NDE3IDQuMDczNjcgOC4xODk2MyAzLjg3ODIyIDguMTMyODNDMy44Njk5NiA4LjEzMDQ1IDMuODYxNjkgOC4xMjgwNiAzLjg1MzE3IDguMTI1NjFDMy41NTI5IDguMDM4ODMgMy41NTI5IDguMDM4ODMgMy41MDA2NSA3Ljk3ODFDMy40OTkxNyA3Ljk1MDU0IDMuNDk5MTcgNy45NTA1NCAzLjUxMjQ3IDcuOTIxNTdDMy41NjcwOCA3Ljg3MDQgMy42MjAwOCA3Ljg0ODQ4IDMuNjkyMTYgNy44MjYxOUMzLjcwMjYgNy44MjI4NCAzLjcxMzAzIDcuODE5NDggMy43MjM3OSA3LjgxNjAzQzMuNzU1NzUgNy44MDU4MiAzLjc4Nzc5IDcuNzk1ODQgMy44MTk4NSA3Ljc4NTkyQzMuODI5IDcuNzgzMDUgMy44MzgxNSA3Ljc4MDE3IDMuODQ3NTggNy43NzcyMkMzLjkxMjI4IDcuNzU2OTMgMy45NzcyMiA3LjczNzQgNC4wNDIyNiA3LjcxODA5QzQuMDU4MjQgNy43MTMzMiA0LjA1ODI0IDcuNzEzMzIgNC4wNzQ1NCA3LjcwODQ2QzQuMzUyMjcgNy42MjU4NyA0LjYzMTgxIDcuNTQ5IDQuOTExMjYgNy40NzE5NkM1LjExOTUgNy40MTQ1NSA1LjMyNzM4IDcuMzU2MTggNS41MzQ2IDcuMjk1NDhDNS41NDQxMyA3LjI5MjcxIDUuNTUzNjUgNy4yODk5MyA1LjU2MzQ2IDcuMjg3MDdDNi4wNDM1IDcuMTQ2OTYgNi41MTI3OCA2Ljk0ODE2IDYuODIyNzQgNi41NTM3QzYuODI3MzggNi41NDc4NSA2LjgzMjAyIDYuNTQyIDYuODM2OCA2LjUzNTk3QzcuMTgxOTcgNi4wOTgxNSA3LjMxNjU4IDUuNTY1NzIgNy40NjY5NiA1LjA0NjIxQzcuNTE2NDIgNC44NzUzNSA3LjU2NjQ5IDQuNzA0NjQgNy42MTY3MyA0LjUzMzk5QzcuNjMwNjQgNC40ODY3MyA3LjY0NDUzIDQuNDM5NDcgNy42NTgzNiA0LjM5MjE5QzcuNzEzOTQgNC4yMDIyOSA3Ljc3MDM1IDQuMDEyNjQgNy44MyAzLjgyMzg2QzcuODM1NTggMy44MDYxOSA3Ljg0MTE0IDMuNzg4NSA3Ljg0NjY2IDMuNzcwODFDNy45MzAxNyAzLjUwMzk5IDcuOTMwMTcgMy41MDM5OSA4LjAwOTQxIDMuNVpcIiBmaWxsPVwid2hpdGVcIi8+PHBhdGggZD1cIk0xMC43MzU4IDQuMDU1MzVDMTAuNzkwMSA0LjExNDA5IDEwLjgwMSA0LjE4MzEyIDEwLjgxNzkgNC4yNTgxM0MxMC44NzQyIDQuNDkzNzYgMTAuOTM5MiA0LjcxMDQyIDExLjE2NDUgNC44NDczQzExLjMwMzYgNC45MjA4MyAxMS40NjkzIDQuOTU0MyAxMS42MjM0IDQuOTg1OUMxMS42ODg0IDQuOTk5NTEgMTEuNzQzNCA1LjAxNzU4IDExLjc5OTEgNS4wNTM3QzExLjgxMTcgNS4wNzI3OCAxMS44MTE3IDUuMDcyNzggMTEuODEwOSA1LjEwNTk4QzExLjc5OCA1LjE0NjM3IDExLjc4NjcgNS4xNTkzOSAxMS43NTI2IDUuMTg1ODJDMTEuNzE1MyA1LjE5Nzc1IDExLjcxNTMgNS4xOTc3NSAxMS42NzA2IDUuMjA3MDJDMTEuNjUzNiA1LjIxMDc0IDExLjYzNjcgNS4yMTQ0OSAxMS42MTk4IDUuMjE4MjhDMTEuNjEwNyA1LjIyMDI5IDExLjYwMTcgNS4yMjIzIDExLjU5MjQgNS4yMjQzN0MxMS4zMTY4IDUuMjg1MzEgMTEuMzE2OCA1LjI4NTMxIDExLjA3ODcgNS40MjMyMkMxMS4wNzEgNS40MjkxOCAxMS4wNjMyIDUuNDM1MTQgMTEuMDU1MiA1LjQ0MTI4QzEwLjg4NSA1LjU4NDc5IDEwLjg0OSA1LjgyMzUxIDEwLjc5NzggNi4wMjM1QzEwLjc5NDkgNi4wMzQ0OCAxMC43OTE5IDYuMDQ1NDYgMTAuNzg4OSA2LjA1Njc4QzEwLjc4NjQgNi4wNjY1IDEwLjc4MzggNi4wNzYyMiAxMC43ODEyIDYuMDg2MjRDMTAuNzcwMiA2LjExNTkzIDEwLjc1ODcgNi4xMzUyOCAxMC43MzU4IDYuMTU4MDNDMTAuNjcyMiA2LjE2NTc2IDEwLjY3MjIgNi4xNjU3NiAxMC42NDEzIDYuMTU4MDNDMTAuNTkyIDYuMTIxNTUgMTAuNTgxIDYuMDc5OTkgMTAuNTY4MiA2LjAyNDE0QzEwLjU2NiA2LjAxNTQ5IDEwLjU2MzkgNi4wMDY4NSAxMC41NjE2IDUuOTk3OTRDMTAuNTU0OCA1Ljk3MDMyIDEwLjU0ODEgNS45NDI2NiAxMC41NDE1IDUuOTE0OThDMTAuNDg5NyA1LjY5OTQ2IDEwLjQzMTEgNS40ODggMTAuMjI0NCA1LjM2MTY3QzEwLjA2MjggNS4yNzU1IDkuODY2MzQgNS4yMzQ3NSA5LjY4NTc1IDUuMjAxODVDOS42MzYyNSA1LjE5MTk5IDkuNjA3ODkgNS4xNzk2IDkuNTc3MjUgNS4xNDA2QzkuNTcwNiA1LjEwMTA0IDkuNTcwNiA1LjEwMTA0IDkuNTc3MjUgNS4wNjE0N0M5LjYyNDM1IDUuMDE0ODYgOS42NzM5IDUuMDAzNDggOS43Mzc1OSA0Ljk4OTRDOS43NTc2NiA0Ljk4NDY1IDkuNzc3NzIgNC45Nzk4NyA5Ljc5Nzc3IDQuOTc1MDVDOS44MDgxMyA0Ljk3MjU4IDkuODE4NDkgNC45NzAxMSA5LjgyOTE3IDQuOTY3NTZDOS44ODIgNC45NTQ1NiA5LjkzNDMxIDQuOTM5OTggOS45ODY2IDQuOTI1MTFDOS45OTYxMSA0LjkyMjQ3IDEwLjAwNTYgNC45MTk4NCAxMC4wMTU0IDQuOTE3MTJDMTAuMTIxNyA0Ljg4NjczIDEwLjIxMzQgNC44NDc4NiAxMC4yOTg0IDQuNzc4ODVDMTAuMzA2MyA0Ljc3MjYxIDEwLjMxNDMgNC43NjYzOCAxMC4zMjI0IDQuNzU5OTVDMTAuNDU0NyA0LjY0NjE0IDEwLjQ5OTYgNC40NzUxNiAxMC41NDA0IDQuMzE1NjJDMTAuNTQzNSA0LjMwMzUxIDEwLjU0NjYgNC4yOTE0IDEwLjU0OTggNC4yNzg5MkMxMC41NTYgNC4yNTQ1OSAxMC41NjIxIDQuMjMwMjMgMTAuNTY4MSA0LjIwNTg1QzEwLjU3MjMgNC4xODg4OCAxMC41NzIzIDQuMTg4ODggMTAuNTc2NyA0LjE3MTU3QzEwLjU3OTEgNC4xNjE0NCAxMC41ODE2IDQuMTUxMyAxMC41ODQyIDQuMTQwODZDMTAuNTk1MSA0LjEwODYgMTAuNjA5NCA0LjA4MzI2IDEwLjYyOTQgNC4wNTUzNUMxMC42NjggNC4wMzY5MiAxMC42OTUgNC4wNDUyNSAxMC43MzU4IDQuMDU1MzVaXCIgZmlsbD1cIiNFREU5RkVcIi8+PHBhdGggZD1cIk01LjI5NTU0IDkuNzQ3MjJDNS4zMDk2IDkuNzQ3MzEgNS4zMDk2IDkuNzQ3MzEgNS4zMjM5NSA5Ljc0NzQxQzUuNDI0ODYgOS43NTAzNSA1LjQ5MzE0IDkuNzgxMjcgNS41Njc0NSA5Ljg0NjEzQzUuNjUzOTMgOS45MzU0NSA1LjY5Mzg2IDEwLjAzNjIgNS42OTE1OSAxMC4xNTY2QzUuNjgxODggMTAuMjU0MiA1LjYyMTY3IDEwLjMzOTUgNS41NDc4MiAxMC40MDU1QzUuNDYwOSAxMC40NzI1IDUuMzczMjIgMTAuNDk0NyA1LjI2MjE1IDEwLjQ5MTZDNS4xNjg1IDEwLjQ4MTIgNS4wODAzOSAxMC40Mzg2IDUuMDE0MDIgMTAuMzc0NkM0LjkzMTQ3IDEwLjI2NjkgNC45MDczNCAxMC4xNjgyIDQuOTE5NDQgMTAuMDM1NUM0Ljk0NDQzIDkuOTMxMDQgNS4wMTY0NiA5Ljg0NjI1IDUuMTA4NiA5Ljc4Njc4QzUuMTcyNiA5Ljc1NTc2IDUuMjI0MDggOS43NDY2NSA1LjI5NTU0IDkuNzQ3MjJaXCIgZmlsbD1cIndoaXRlXCIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cInBhaW50MF9saW5lYXJfNDA3MF83MjAxXCIgeDE9XCIwXCIgeTE9XCIwXCIgeDI9XCIxNlwiIHkyPVwiMTZcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj48c3RvcCBzdG9wLWNvbG9yPVwiIzhCNUNGNlwiLz48c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1jb2xvcj1cIiM5MzMzRUFcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PC9zdmc+PC9kaXY+XG4gICAgICAgIHt7IGNvbmZpZy5mYWlsdXJlRGV0YWlscy5haUZpeE1lc3NhZ2UgfHwgJ0FJIEluc2lnaHRzJyB9fVxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1pbmxpbmUtYmxvY2sgY3FhLXB5LVsycHhdIGNxYS1weC1bMTBweF0gY3FhLXRleHQtY2VudGVyIGNxYS1yb3VuZGVkLVs1cHhdIGNxYS1iZy1bI0VERTlGRV0gY3FhLXRleHQtWzhweF0gY3FhLWxlYWRpbmctWzEycHhdIGNxYS10ZXh0LVsjNkQyOEQ5XVwiPjk0JSBjb25maWRlbmNlPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWdyaWQgY3FhLWdyaWQtY29scy0yIGNxYS1nYXAtNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzY0NzQ4Ql1cIj5SZWFzb25pbmc8L2Rpdj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xLjVcIj5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImNxYS1mbGV4IGNxYS1nYXAtMiBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzQ3NTU2OV1cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1tdC0xLjVcIj48c3ZnIHdpZHRoPVwiNlwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDYgNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiNlwiIGhlaWdodD1cIjZcIiByeD1cIjNcIiBmaWxsPVwiI0E3OEJGQVwiLz48L3N2Zz48L2Rpdj5cbiAgICAgICAgICAgICAgU3RhbGUgc3RhdGU6IHRlc3QgYXR0cmlidXRlIGFzIHByaW1hcnkgbG9jYXRvciAoaGlnaGVzdCBwcmlvcml0eSlcbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJjcWEtZmxleCBjcWEtZ2FwLTIgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM0NzU1NjldXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbXQtMS41XCI+PHN2ZyB3aWR0aD1cIjZcIiBoZWlnaHQ9XCI2XCIgdmlld0JveD1cIjAgMCA2IDZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cmVjdCB3aWR0aD1cIjZcIiBoZWlnaHQ9XCI2XCIgcng9XCIzXCIgZmlsbD1cIiNBNzhCRkFcIi8+PC9zdmc+PC9kaXY+XG4gICAgICAgICAgICAgIENvbmZpZGVuY2Ugc2NvcmU6IDk0JSBiYXNlZCBvbiBET00gc2ltaWxhcml0eSBhbmFseXNpc1xuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImNxYS1mbGV4IGNxYS1nYXAtMiBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzQ3NTU2OV1cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1tdC0xLjVcIj48c3ZnIHdpZHRoPVwiNlwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDYgNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiNlwiIGhlaWdodD1cIjZcIiByeD1cIjNcIiBmaWxsPVwiI0E3OEJGQVwiLz48L3N2Zz48L2Rpdj5cbiAgICAgICAgICAgICAgSW5jcmVhc2VkIHdhaXQgdGltZSBmcm9tIDJzIHRvIDVzIGR1ZSB0byBidXR0b24gbGF0ZW5jeVxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImNxYS1mbGV4IGNxYS1nYXAtMiBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzQ3NTU2OV1cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1tdC0xLjVcIj48c3ZnIHdpZHRoPVwiNlwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDYgNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiNlwiIGhlaWdodD1cIjZcIiByeD1cIjNcIiBmaWxsPVwiI0E3OEJGQVwiLz48L3N2Zz48L2Rpdj5cbiAgICAgICAgICAgICAgRW52aXJvbm1lbnQgYmluZGluZzogc3BlZWQgb2YgYXNzZXRzIGJ5IDIwJSB0aHJvdWdoIG9wdGltaXplZCBjYWNoaW5nXG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzY0NzQ4Ql1cIj5TdWdnZXN0ZWQgRml4ZXM8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXB4LVsxMHB4XSBjcWEtcHktWzJweF0gY3FhLXJvdW5kZWQtWzVweF0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwNjVGNDZdIGNxYS1iZy1bI0VDRkRGNV0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNEMUZBRTVdXCI+XG4gICAgICAgICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxMFwiIGhlaWdodD1cIjEwXCIgdmlld0JveD1cIjAgMCAxMCAxMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMS42NjY2MiA1LjgzMzM2QzEuNTg3NzcgNS44MzM2MyAxLjUxMDQ3IDUuODExNTIgMS40NDM2OSA1Ljc2OTZDMS4zNzY5IDUuNzI3NjggMS4zMjMzOSA1LjY2NzY4IDEuMjg5MzUgNS41OTY1NUMxLjI1NTMyIDUuNTI1NDMgMS4yNDIxNiA1LjQ0NjEgMS4yNTE0MSA1LjM2NzhDMS4yNjA2NyA1LjI4OTUgMS4yOTE5NSA1LjIxNTQzIDEuMzQxNjIgNS4xNTQxOUw1LjQ2NjYyIDAuOTA0MTk0QzUuNDk3NTcgMC44Njg0NzggNS41Mzk3MyAwLjg0NDM0MiA1LjU4NjIgMC44MzU3NDlDNS42MzI2NyAwLjgyNzE1NiA1LjY4MDY3IDAuODM0NjE2IDUuNzIyMzQgMC44NTY5MDRDNS43NjQwMSAwLjg3OTE5MiA1Ljc5Njg3IDAuOTE0OTg0IDUuODE1NTEgMC45NTg0MDZDNS44MzQxNiAxLjAwMTgzIDUuODM3NDkgMS4wNTAzIDUuODI0OTYgMS4wOTU4Nkw1LjAyNDk2IDMuNjA0MTlDNS4wMDEzNyAzLjY2NzMzIDQuOTkzNDQgMy43MzUyNCA1LjAwMTg3IDMuODAyMTFDNS4wMTAyOSAzLjg2ODk4IDUuMDM0ODEgMy45MzI4MSA1LjA3MzMzIDMuOTg4MTJDNS4xMTE4NCA0LjA0MzQzIDUuMTYzMTkgNC4wODg1NyA1LjIyMjk5IDQuMTE5NjhDNS4yODI3OCA0LjE1MDc4IDUuMzQ5MjIgNC4xNjY5MSA1LjQxNjYyIDQuMTY2NjlIOC4zMzMyOUM4LjQxMjE0IDQuMTY2NDMgOC40ODk0NCA0LjE4ODUzIDguNTU2MjIgNC4yMzA0NUM4LjYyMzAxIDQuMjcyMzcgOC42NzY1MyA0LjMzMjM4IDguNzEwNTYgNC40MDM1QzguNzQ0NiA0LjQ3NDYzIDguNzU3NzUgNC41NTM5NSA4Ljc0ODUgNC42MzIyNUM4LjczOTI0IDQuNzEwNTYgOC43MDc5NiA0Ljc4NDYzIDguNjU4MjkgNC44NDU4Nkw0LjUzMzI5IDkuMDk1ODZDNC41MDIzNSA5LjEzMTU4IDQuNDYwMTggOS4xNTU3MSA0LjQxMzcxIDkuMTY0M0M0LjM2NzI1IDkuMTcyOSA0LjMxOTI0IDkuMTY1NDQgNC4yNzc1NyA5LjE0MzE1QzQuMjM1OSA5LjEyMDg2IDQuMjAzMDUgOS4wODUwNyA0LjE4NDQgOS4wNDE2NUM0LjE2NTc1IDguOTk4MjMgNC4xNjI0MiA4Ljk0OTc2IDQuMTc0OTYgOC45MDQxOUw0Ljk3NDk2IDYuMzk1ODZDNC45OTg1NSA2LjMzMjczIDUuMDA2NDcgNi4yNjQ4MSA0Ljk5ODA0IDYuMTk3OTRDNC45ODk2MiA2LjEzMTA3IDQuOTY1MSA2LjA2NzI0IDQuOTI2NTkgNi4wMTE5M0M0Ljg4ODA3IDUuOTU2NjIgNC44MzY3MiA1LjkxMTQ4IDQuNzc2OTIgNS44ODAzOEM0LjcxNzEzIDUuODQ5MjcgNC42NTA2OSA1LjgzMzE0IDQuNTgzMjkgNS44MzMzNkgxLjY2NjYyWlwiIHN0cm9rZT1cIiMwNTk2NjlcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgICAgICAgICBVcGRhdGUgbG9jYXRvciB0byB1c2UgZGF0YS10ZXN0aWQ9J3JlZ2lzdHJhdGlvbi1zdWJtaXQnIGluc3RlYWQgb2YgI3N1Ym1pdC1idG5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXB4LVsxMHB4XSBjcWEtcHktWzJweF0gY3FhLXJvdW5kZWQtWzVweF0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwNjVGNDZdIGNxYS1iZy1bI0VDRkRGNV0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNEMUZBRTVdXCI+XG4gICAgICAgICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxMFwiIGhlaWdodD1cIjEwXCIgdmlld0JveD1cIjAgMCAxMCAxMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMS42NjY2MiA1LjgzMzM2QzEuNTg3NzcgNS44MzM2MyAxLjUxMDQ3IDUuODExNTIgMS40NDM2OSA1Ljc2OTZDMS4zNzY5IDUuNzI3NjggMS4zMjMzOSA1LjY2NzY4IDEuMjg5MzUgNS41OTY1NUMxLjI1NTMyIDUuNTI1NDMgMS4yNDIxNiA1LjQ0NjEgMS4yNTE0MSA1LjM2NzhDMS4yNjA2NyA1LjI4OTUgMS4yOTE5NSA1LjIxNTQzIDEuMzQxNjIgNS4xNTQxOUw1LjQ2NjYyIDAuOTA0MTk0QzUuNDk3NTcgMC44Njg0NzggNS41Mzk3MyAwLjg0NDM0MiA1LjU4NjIgMC44MzU3NDlDNS42MzI2NyAwLjgyNzE1NiA1LjY4MDY3IDAuODM0NjE2IDUuNzIyMzQgMC44NTY5MDRDNS43NjQwMSAwLjg3OTE5MiA1Ljc5Njg3IDAuOTE0OTg0IDUuODE1NTEgMC45NTg0MDZDNS44MzQxNiAxLjAwMTgzIDUuODM3NDkgMS4wNTAzIDUuODI0OTYgMS4wOTU4Nkw1LjAyNDk2IDMuNjA0MTlDNS4wMDEzNyAzLjY2NzMzIDQuOTkzNDQgMy43MzUyNCA1LjAwMTg3IDMuODAyMTFDNS4wMTAyOSAzLjg2ODk4IDUuMDM0ODEgMy45MzI4MSA1LjA3MzMzIDMuOTg4MTJDNS4xMTE4NCA0LjA0MzQzIDUuMTYzMTkgNC4wODg1NyA1LjIyMjk5IDQuMTE5NjhDNS4yODI3OCA0LjE1MDc4IDUuMzQ5MjIgNC4xNjY5MSA1LjQxNjYyIDQuMTY2NjlIOC4zMzMyOUM4LjQxMjE0IDQuMTY2NDMgOC40ODk0NCA0LjE4ODUzIDguNTU2MjIgNC4yMzA0NUM4LjYyMzAxIDQuMjcyMzcgOC42NzY1MyA0LjMzMjM4IDguNzEwNTYgNC40MDM1QzguNzQ0NiA0LjQ3NDYzIDguNzU3NzUgNC41NTM5NSA4Ljc0ODUgNC42MzIyNUM4LjczOTI0IDQuNzEwNTYgOC43MDc5NiA0Ljc4NDYzIDguNjU4MjkgNC44NDU4Nkw0LjUzMzI5IDkuMDk1ODZDNC41MDIzNSA5LjEzMTU4IDQuNDYwMTggOS4xNTU3MSA0LjQxMzcxIDkuMTY0M0M0LjM2NzI1IDkuMTcyOSA0LjMxOTI0IDkuMTY1NDQgNC4yNzc1NyA5LjE0MzE1QzQuMjM1OSA5LjEyMDg2IDQuMjAzMDUgOS4wODUwNyA0LjE4NDQgOS4wNDE2NUM0LjE2NTc1IDguOTk4MjMgNC4xNjI0MiA4Ljk0OTc2IDQuMTc0OTYgOC45MDQxOUw0Ljk3NDk2IDYuMzk1ODZDNC45OTg1NSA2LjMzMjczIDUuMDA2NDcgNi4yNjQ4MSA0Ljk5ODA0IDYuMTk3OTRDNC45ODk2MiA2LjEzMTA3IDQuOTY1MSA2LjA2NzI0IDQuOTI2NTkgNi4wMTE5M0M0Ljg4ODA3IDUuOTU2NjIgNC44MzY3MiA1LjkxMTQ4IDQuNzc2OTIgNS44ODAzOEM0LjcxNzEzIDUuODQ5MjcgNC42NTA2OSA1LjgzMzE0IDQuNTgzMjkgNS44MzMzNkgxLjY2NjYyWlwiIHN0cm9rZT1cIiMwNTk2NjlcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgICAgICAgICBBZGQgZXhwbGljaXQgd2FpdCBmb3IgbmV0d29yayBpZGxlIGJlZm9yZSBjbGlja2luZyBzdWJtaXRcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXB4LVsxMHB4XSBjcWEtcHktWzJweF0gY3FhLXJvdW5kZWQtWzVweF0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwNjVGNDZdIGNxYS1iZy1bI0VDRkRGNV0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNEMUZBRTVdXCI+XG4gICAgICAgICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxMFwiIGhlaWdodD1cIjEwXCIgdmlld0JveD1cIjAgMCAxMCAxMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMS42NjY2MiA1LjgzMzM2QzEuNTg3NzcgNS44MzM2MyAxLjUxMDQ3IDUuODExNTIgMS40NDM2OSA1Ljc2OTZDMS4zNzY5IDUuNzI3NjggMS4zMjMzOSA1LjY2NzY4IDEuMjg5MzUgNS41OTY1NUMxLjI1NTMyIDUuNTI1NDMgMS4yNDIxNiA1LjQ0NjEgMS4yNTE0MSA1LjM2NzhDMS4yNjA2NyA1LjI4OTUgMS4yOTE5NSA1LjIxNTQzIDEuMzQxNjIgNS4xNTQxOUw1LjQ2NjYyIDAuOTA0MTk0QzUuNDk3NTcgMC44Njg0NzggNS41Mzk3MyAwLjg0NDM0MiA1LjU4NjIgMC44MzU3NDlDNS42MzI2NyAwLjgyNzE1NiA1LjY4MDY3IDAuODM0NjE2IDUuNzIyMzQgMC44NTY5MDRDNS43NjQwMSAwLjg3OTE5MiA1Ljc5Njg3IDAuOTE0OTg0IDUuODE1NTEgMC45NTg0MDZDNS44MzQxNiAxLjAwMTgzIDUuODM3NDkgMS4wNTAzIDUuODI0OTYgMS4wOTU4Nkw1LjAyNDk2IDMuNjA0MTlDNS4wMDEzNyAzLjY2NzMzIDQuOTkzNDQgMy43MzUyNCA1LjAwMTg3IDMuODAyMTFDNS4wMTAyOSAzLjg2ODk4IDUuMDM0ODEgMy45MzI4MSA1LjA3MzMzIDMuOTg4MTJDNS4xMTE4NCA0LjA0MzQzIDUuMTYzMTkgNC4wODg1NyA1LjIyMjk5IDQuMTE5NjhDNS4yODI3OCA0LjE1MDc4IDUuMzQ5MjIgNC4xNjY5MSA1LjQxNjYyIDQuMTY2NjlIOC4zMzMyOUM4LjQxMjE0IDQuMTY2NDMgOC40ODk0NCA0LjE4ODUzIDguNTU2MjIgNC4yMzA0NUM4LjYyMzAxIDQuMjcyMzcgOC42NzY1MyA0LjMzMjM4IDguNzEwNTYgNC40MDM1QzguNzQ0NiA0LjQ3NDYzIDguNzU3NzUgNC41NTM5NSA4Ljc0ODUgNC42MzIyNUM4LjczOTI0IDQuNzEwNTYgOC43MDc5NiA0Ljc4NDYzIDguNjU4MjkgNC44NDU4Nkw0LjUzMzI5IDkuMDk1ODZDNC41MDIzNSA5LjEzMTU4IDQuNDYwMTggOS4xNTU3MSA0LjQxMzcxIDkuMTY0M0M0LjM2NzI1IDkuMTcyOSA0LjMxOTI0IDkuMTY1NDQgNC4yNzc1NyA5LjE0MzE1QzQuMjM1OSA5LjEyMDg2IDQuMjAzMDUgOS4wODUwNyA0LjE4NDQgOS4wNDE2NUM0LjE2NTc1IDguOTk4MjMgNC4xNjI0MiA4Ljk0OTc2IDQuMTc0OTYgOC45MDQxOUw0Ljk3NDk2IDYuMzk1ODZDNC45OTg1NSA2LjMzMjczIDUuMDA2NDcgNi4yNjQ4MSA0Ljk5ODA0IDYuMTk3OTRDNC45ODk2MiA2LjEzMTA3IDQuOTY1MSA2LjA2NzI0IDQuOTI2NTkgNi4wMTE5M0M0Ljg4ODA3IDUuOTU2NjIgNC44MzY3MiA1LjkxMTQ4IDQuNzc2OTIgNS44ODAzOEM0LjcxNzEzIDUuODQ5MjcgNC42NTA2OSA1LjgzMzE0IDQuNTgzMjkgNS44MzMzNkgxLjY2NjYyWlwiIHN0cm9rZT1cIiMwNTk2NjlcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgICAgICAgICBDb25zaWRlciBhZGRpbmcgcmV0cnkgbG9naWMgZm9yIGZvcm0gc3VibWlzc2lvbiBzdGVwXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|