@symphony-talent/component-library 3.37.0 → 3.38.2

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.
@@ -10,10 +10,10 @@ export class ChipComponent {
10
10
  }
11
11
  }
12
12
  ChipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
- ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: ChipComponent, selector: "symphony-chip", inputs: { chipLabel: "chipLabel", hasClose: "hasClose", hasError: "hasError" }, outputs: { removeChip: "removeChip" }, ngImport: i0, template: "<span\n class=\"sfx-d-inline-block sfx-chip-item\"\n [ngClass]=\"{ 'has-close': hasClose, 'has-error': hasError }\"\n>\n <i\n *ngIf=\"hasClose\"\n (click)=\"onRemoveClick()\"\n class=\"si-add sfx-cursor-pointer\"\n ></i>\n {{ chipLabel }}\n</span>\n", styles: [".sfx-chip-item{color:#000;padding:4px 15px;border-radius:25px;text-align:center;letter-spacing:-.4px;margin-right:5px;position:relative;border:1px solid #bababa}.sfx-chip-item:hover{background-color:#000;color:#fff}.sfx-chip-item.has-close{padding:4px 15px 4px 31px}.sfx-chip-item.has-error{border:1px solid #f0001e}.sfx-chip-item i{font-size:18px;position:absolute;left:10px;top:5px;transform:rotate(45deg)}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
13
+ ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: ChipComponent, selector: "symphony-chip", inputs: { chipLabel: "chipLabel", hasClose: "hasClose", hasError: "hasError" }, outputs: { removeChip: "removeChip" }, ngImport: i0, template: "<span\n class=\"sfx-d-inline-block sfx-chip-item\"\n [ngClass]=\"{ 'has-close': hasClose, 'has-error': hasError }\"\n>\n <i\n *ngIf=\"hasClose\"\n (click)=\"onRemoveClick()\"\n class=\"si-add sfx-cursor-pointer\"\n ></i>\n {{ chipLabel }}\n</span>\n", styles: [".sfx-chip-item{color:#000;padding:4px 15px;border-radius:25px;text-align:center;letter-spacing:-.4px;margin-right:5px;position:relative;border:1px solid #bababa}.sfx-chip-item:hover{background-color:#000;color:#fff}.sfx-chip-item.has-close{padding:4px 15px 4px 31px}.sfx-chip-item.has-error{border:1px solid #f0001e}.sfx-chip-item i{font-size:18px;position:absolute;left:10px;top:5px;transform:rotate(45deg);font-family:library-icons!important}.sfx-chip-item i:before{content:\"\\e927\"}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ChipComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'symphony-chip', encapsulation: ViewEncapsulation.None, template: "<span\n class=\"sfx-d-inline-block sfx-chip-item\"\n [ngClass]=\"{ 'has-close': hasClose, 'has-error': hasError }\"\n>\n <i\n *ngIf=\"hasClose\"\n (click)=\"onRemoveClick()\"\n class=\"si-add sfx-cursor-pointer\"\n ></i>\n {{ chipLabel }}\n</span>\n", styles: [".sfx-chip-item{color:#000;padding:4px 15px;border-radius:25px;text-align:center;letter-spacing:-.4px;margin-right:5px;position:relative;border:1px solid #bababa}.sfx-chip-item:hover{background-color:#000;color:#fff}.sfx-chip-item.has-close{padding:4px 15px 4px 31px}.sfx-chip-item.has-error{border:1px solid #f0001e}.sfx-chip-item i{font-size:18px;position:absolute;left:10px;top:5px;transform:rotate(45deg)}\n"] }]
16
+ args: [{ selector: 'symphony-chip', encapsulation: ViewEncapsulation.None, template: "<span\n class=\"sfx-d-inline-block sfx-chip-item\"\n [ngClass]=\"{ 'has-close': hasClose, 'has-error': hasError }\"\n>\n <i\n *ngIf=\"hasClose\"\n (click)=\"onRemoveClick()\"\n class=\"si-add sfx-cursor-pointer\"\n ></i>\n {{ chipLabel }}\n</span>\n", styles: [".sfx-chip-item{color:#000;padding:4px 15px;border-radius:25px;text-align:center;letter-spacing:-.4px;margin-right:5px;position:relative;border:1px solid #bababa}.sfx-chip-item:hover{background-color:#000;color:#fff}.sfx-chip-item.has-close{padding:4px 15px 4px 31px}.sfx-chip-item.has-error{border:1px solid #f0001e}.sfx-chip-item i{font-size:18px;position:absolute;left:10px;top:5px;transform:rotate(45deg);font-family:library-icons!important}.sfx-chip-item i:before{content:\"\\e927\"}\n"] }]
17
17
  }], ctorParameters: function () { return []; }, propDecorators: { chipLabel: [{
18
18
  type: Input
19
19
  }], hasClose: [{
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output, } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { Icons } from '../../../atoms/icon/icon.enum';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../../templates/modal-templates/two-column-modal-template/two-column-modal-template.component";
@@ -21,11 +21,12 @@ export class AdvertiseModalComponent {
21
21
  this.buttonClicked = new EventEmitter();
22
22
  this.closeButtonClicked = new EventEmitter();
23
23
  this.postingBoardChange = new EventEmitter();
24
+ this.keywordSearchChange = new EventEmitter();
24
25
  this.fundsInfo = {
25
26
  icon: Icons.CONFIRMATION,
26
27
  iconFirst: true,
27
28
  text: 'Sufficient Funds',
28
- iconColor: '#00D56B',
29
+ iconColor: '#00D56B'
29
30
  };
30
31
  this.payPerClickBoards = [];
31
32
  this.jobBoards = [];
@@ -40,7 +41,7 @@ export class AdvertiseModalComponent {
40
41
  title: 'Are you sure you want to abandon your order?',
41
42
  content: 'All selections will be deleted and you will have to start over.',
42
43
  btnPrimary: 'Continue Order',
43
- btnSecondary: 'Abandon Order',
44
+ btnSecondary: 'Abandon Order'
44
45
  };
45
46
  }
46
47
  ngOnChanges(changes) {
@@ -57,29 +58,29 @@ export class AdvertiseModalComponent {
57
58
  title: 'Pay-Per-Click',
58
59
  total: {
59
60
  textLeft: 'Cost Programatic Boards',
60
- textRight: `x (${this.jobCount}) Jobs = $0`,
61
- },
61
+ textRight: `x (${this.jobCount}) Jobs = $0`
62
+ }
62
63
  },
63
64
  {
64
65
  lineItems: [],
65
66
  title: 'Job Boards',
66
67
  total: {
67
68
  textLeft: 'Cost Job Boards',
68
- textRight: `x (${this.jobCount}) Jobs = $0`,
69
- },
70
- },
69
+ textRight: `x (${this.jobCount}) Jobs = $0`
70
+ }
71
+ }
71
72
  ],
72
73
  total: {
73
74
  textLeft: '',
74
75
  textRight: '$0',
75
- label: 'Total:',
76
- },
76
+ label: 'Total:'
77
+ }
77
78
  };
78
79
  }
79
80
  updateModalHeader() {
80
81
  let subTitleTooltip = '';
81
82
  let jobNumber = 1;
82
- this.model.jobsToAdvertise.forEach((job) => {
83
+ this.model.jobsToAdvertise.forEach(job => {
83
84
  subTitleTooltip = subTitleTooltip + `${job.jobTitle} [${job.id}]`;
84
85
  if (jobNumber != this.model.jobsToAdvertise.length) {
85
86
  subTitleTooltip = subTitleTooltip + '</br>';
@@ -91,11 +92,12 @@ export class AdvertiseModalComponent {
91
92
  text: `${this.model.jobsToAdvertise.length} Jobs`,
92
93
  iconFirst: false,
93
94
  icon: Icons.INFO,
94
- placement: 'right',
95
+ placement: 'right'
95
96
  };
96
97
  }
97
98
  onKeywordSearch(keyword) {
98
- this.filteredPostingBoardList = this.model.jobBoards.filter((board) => board.boardName.toLowerCase().includes(keyword.toLowerCase()));
99
+ this.filteredPostingBoardList = this.model.jobBoards.filter(board => board.boardName.toLowerCase().includes(keyword.toLowerCase()));
100
+ this.keywordSearchChange.emit(keyword);
99
101
  }
100
102
  onButtonClick(text) {
101
103
  this.buttonClicked.emit(text);
@@ -109,31 +111,32 @@ export class AdvertiseModalComponent {
109
111
  addLineItem(invoiceAreaIndex, selectedBoard) {
110
112
  this.orderSummary.invoiceAreas[invoiceAreaIndex].lineItems.push({
111
113
  textLeft: selectedBoard.boardName,
112
- textRight: `$${selectedBoard.boardPrice}`,
114
+ textRight: `$${selectedBoard.boardPrice}`
113
115
  });
114
116
  }
115
117
  calculateInvoiceAreaTotal(invoiceAreaIndex) {
116
118
  let invoiceAreaTotal = 0;
117
- this.orderSummary.invoiceAreas[invoiceAreaIndex].lineItems.forEach((li) => {
119
+ this.orderSummary.invoiceAreas[invoiceAreaIndex].lineItems.forEach(li => {
118
120
  invoiceAreaTotal = invoiceAreaTotal + +li.textRight.replace('$', '');
119
121
  });
120
122
  this.orderSummary.invoiceAreas[invoiceAreaIndex].total.textRight = `x (${this.model.jobsToAdvertise.length}) Jobs = $${invoiceAreaTotal * this.model.jobsToAdvertise.length}`;
121
123
  return invoiceAreaTotal * this.model.jobsToAdvertise.length;
122
124
  }
123
125
  calculateOrderTotal(payPerClickAreaTotal, jobBoardAreaTotal) {
124
- const selectedJobBoards = this.model.jobBoards.filter((jb) => jb.isSelected).length;
126
+ const selectedJobBoards = this.model.jobBoards.filter(jb => jb.isSelected)
127
+ .length;
125
128
  const jobToAdvertiseCount = this.model.jobsToAdvertise.length;
126
129
  const orderSummaryText = `(${selectedJobBoards}) Boards x ${this.model.jobsToAdvertise.length} Jobs = (${selectedJobBoards * jobToAdvertiseCount}) Ads`;
127
130
  this.orderSummary.total = {
128
131
  label: 'Total:',
129
132
  textLeft: orderSummaryText,
130
- textRight: `$${payPerClickAreaTotal + jobBoardAreaTotal}`,
133
+ textRight: `$${payPerClickAreaTotal + jobBoardAreaTotal}`
131
134
  };
132
135
  }
133
136
  updateOrderSummary() {
134
137
  this.orderSummary.invoiceAreas[0].lineItems = [];
135
138
  this.orderSummary.invoiceAreas[1].lineItems = [];
136
- this.model.jobBoards.forEach((jb) => {
139
+ this.model.jobBoards.forEach(jb => {
137
140
  if (jb.isSelected) {
138
141
  if (jb.isPayPerClick) {
139
142
  this.addLineItem(0, jb);
@@ -146,7 +149,7 @@ export class AdvertiseModalComponent {
146
149
  const payPerClickAreaTotal = this.calculateInvoiceAreaTotal(0);
147
150
  const jobBoardAreaTotal = this.calculateInvoiceAreaTotal(1);
148
151
  this.calculateOrderTotal(payPerClickAreaTotal, jobBoardAreaTotal);
149
- if (this.model.jobBoards.filter((jb) => jb.isSelected).length === 0) {
152
+ if (this.model.jobBoards.filter(jb => jb.isSelected).length === 0) {
150
153
  this.isJobBoardNextButtonDisabled = true;
151
154
  }
152
155
  else {
@@ -156,7 +159,7 @@ export class AdvertiseModalComponent {
156
159
  }
157
160
  }
158
161
  AdvertiseModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AdvertiseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
159
- AdvertiseModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AdvertiseModalComponent, selector: "symphony-advertise-modal", inputs: { model: "model" }, outputs: { buttonClicked: "buttonClicked", closeButtonClicked: "closeButtonClicked", postingBoardChange: "postingBoardChange" }, usesOnChanges: true, ngImport: i0, template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"filteredPostingBoardList\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"], components: [{ type: i1.TwoColumnModalTemplateComponent, selector: "symphony-two-column-modal-template" }, { type: i2.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i3.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i4.H5WithIconComponent, selector: "symphony-h5-with-icon", inputs: ["model"] }, { type: i5.TwoColumnBodyTemplateComponent, selector: "symphony-two-column-body-template", inputs: ["showHeader"] }, { type: i6.InputTextComponent, selector: "symphony-input-text", inputs: ["placeholder", "icon", "label", "isInverse", "noMargin"], outputs: ["textChange"] }, { type: i7.AdvertisePostingboardSelectionListComponent, selector: "symphony-advertise-postingboard-selection-list", inputs: ["model"], outputs: ["postingBoardChange"] }, { type: i8.OrderSummaryComponent, selector: "symphony-order-summary", inputs: ["model"] }, { type: i9.AdvertiseOrderReviewComponent, selector: "symphony-advertise-order-review" }, { type: i10.H2Component, selector: "symphony-h2", inputs: ["text", "isSecondary"] }, { type: i11.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary"] }, { type: i12.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message"] }, { type: i13.ButtonComponent, selector: "symphony-button", inputs: ["text", "disabled", "isSecondary", "isInverse"], outputs: ["clicked"] }, { type: i14.ConfirmationModalComponent, selector: "symphony-confirmation-modal", inputs: ["model"], outputs: ["buttonClicked", "closeButtonClicked"] }], directives: [{ type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
162
+ AdvertiseModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AdvertiseModalComponent, selector: "symphony-advertise-modal", inputs: { model: "model" }, outputs: { buttonClicked: "buttonClicked", closeButtonClicked: "closeButtonClicked", postingBoardChange: "postingBoardChange", keywordSearchChange: "keywordSearchChange" }, usesOnChanges: true, ngImport: i0, template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"filteredPostingBoardList\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"], components: [{ type: i1.TwoColumnModalTemplateComponent, selector: "symphony-two-column-modal-template" }, { type: i2.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i3.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i4.H5WithIconComponent, selector: "symphony-h5-with-icon", inputs: ["model"] }, { type: i5.TwoColumnBodyTemplateComponent, selector: "symphony-two-column-body-template", inputs: ["showHeader"] }, { type: i6.InputTextComponent, selector: "symphony-input-text", inputs: ["placeholder", "icon", "label", "isInverse", "noMargin"], outputs: ["textChange"] }, { type: i7.AdvertisePostingboardSelectionListComponent, selector: "symphony-advertise-postingboard-selection-list", inputs: ["model"], outputs: ["postingBoardChange"] }, { type: i8.OrderSummaryComponent, selector: "symphony-order-summary", inputs: ["model"] }, { type: i9.AdvertiseOrderReviewComponent, selector: "symphony-advertise-order-review" }, { type: i10.H2Component, selector: "symphony-h2", inputs: ["text", "isSecondary"] }, { type: i11.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary"] }, { type: i12.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message"] }, { type: i13.ButtonComponent, selector: "symphony-button", inputs: ["text", "disabled", "isSecondary", "isInverse"], outputs: ["clicked"] }, { type: i14.ConfirmationModalComponent, selector: "symphony-confirmation-modal", inputs: ["model"], outputs: ["buttonClicked", "closeButtonClicked"] }], directives: [{ type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
160
163
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AdvertiseModalComponent, decorators: [{
161
164
  type: Component,
162
165
  args: [{ selector: 'symphony-advertise-modal', template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"filteredPostingBoardList\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"] }]
@@ -168,5 +171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
168
171
  type: Output
169
172
  }], postingBoardChange: [{
170
173
  type: Output
174
+ }], keywordSearchChange: [{
175
+ type: Output
171
176
  }] } });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2ZXJ0aXNlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvcGFnZXMvbW9kYWxzL2FkdmVydGlzZS1tb2RhbC9hZHZlcnRpc2UtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9wYWdlcy9tb2RhbHMvYWR2ZXJ0aXNlLW1vZGFsL2FkdmVydGlzZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFldEQsTUFBTSxPQUFPLHVCQUF1QjtJQTBCbEM7UUF2QlUsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDaEQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBRTVDLENBQUM7UUFLRyxjQUFTLEdBQW9CO1lBQ2xDLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUN4QixTQUFTLEVBQUUsSUFBSTtZQUNmLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQztRQUdLLHNCQUFpQixHQUFtQixFQUFFLENBQUM7UUFDdkMsY0FBUyxHQUFtQixFQUFFLENBQUM7UUFDL0IsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixlQUFVLEdBQVcsRUFBRSxDQUFDO0lBR2hCLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FB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NUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDbEUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7U0FDMUM7YUFBTTtZQUNMLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDOztvSEE5S1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsa1BDekJwQyw4dUxBb0xBOzJGRDNKYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UsMEJBQTBCOzBFQUszQixLQUFLO3NCQUFiLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uLy4uL2F0b21zL2ljb24vaWNvbi5lbnVtJztcbmltcG9ydCB7IE9yZGVyU3VtbWFyeU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vb3JnYW5pc21zL29yZGVyLXN1bW1hcnkvb3JkZXItc3VtbWFyeS5tb2RlbCc7XG5pbXBvcnQgeyBINVdpdGhJY29uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2xlY3VsZXMvaDUtd2l0aC1pY29uL2g1LXdpdGgtaWNvbi5tb2RlbCc7XG5pbXBvcnQge1xuICBBZHZlcnRpc2VNb2RhbE1vZGVsLFxuICBQb3N0aW5nQm9hcmRzU2VsZWN0aW9uTW9kZWwsXG59IGZyb20gJy4vYWR2ZXJ0aXNlLW1vZGFsLm1vZGVsJztcbmltcG9ydCB7IEludm9pY2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vbGVjdWxlcy9pbnZvaWNlLWxpbmUtaXRlbS9pbnZvaWNlLWxpbmUtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uL29yZ2FuaXNtcy9jb25maXJtYXRpb24tbW9kYWwvY29uZmlybWF0aW9uLW1vZGFsLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3ltcGhvbnktYWR2ZXJ0aXNlLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkdmVydGlzZS1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FkdmVydGlzZS1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBZHZlcnRpc2VNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgbW9kZWw6IFBhcnRpYWw8QWR2ZXJ0aXNlTW9kYWxNb2RlbD47XG5cbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGNsb3NlQnV0dG9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgcG9zdGluZ0JvYXJkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBQYXJ0aWFsPEFkdmVydGlzZU1vZGFsTW9kZWw+XG4gID4oKTtcblxuICBwdWJsaWMgZmlsdGVyZWRQb3N0aW5nQm9hcmRMaXN0OiBQb3N0aW5nQm9hcmRzU2VsZWN0aW9uTW9kZWxbXTtcbiAgcHVibGljIG9yZGVyU3VtbWFyeTogT3JkZXJTdW1tYXJ5TW9kZWw7XG4gIHB1YmxpYyBzdWJUaXRsZTogSDVXaXRoSWNvbk1vZGVsO1xuICBwdWJsaWMgZnVuZHNJbmZvOiBINVdpdGhJY29uTW9kZWwgPSB7XG4gICAgaWNvbjogSWNvbnMuQ09ORklSTUFUSU9OLFxuICAgIGljb25GaXJzdDogdHJ1ZSxcbiAgICB0ZXh0OiAnU3VmZmljaWVudCBGdW5kcycsXG4gICAgaWNvbkNvbG9yOiAnIzAwRDU2QicsXG4gIH07XG4gIHB1YmxpYyBjYW5jZWxDb250ZW50OiBDb25maXJtYXRpb25Nb2RlbDtcblxuICBwdWJsaWMgcGF5UGVyQ2xpY2tCb2FyZHM6IEludm9pY2VNb2RlbFtdID0gW107XG4gIHB1YmxpYyBqb2JCb2FyZHM6IEludm9pY2VNb2RlbFtdID0gW107XG4gIHB1YmxpYyBqb2JDb3VudDogbnVtYmVyID0gMDtcbiAgcHVibGljIG1vZGFsVGl0bGU6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgaXNKb2JCb2FyZE5leHRCdXR0b25EaXNhYmxlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXNlRGVmYXVsdFZhbHVlcygpO1xuICAgIHRoaXMudXBkYXRlTW9kYWxIZWFkZXIoKTtcbiAgICB0aGlzLnVwZGF0ZU9yZGVyU3VtbWFyeSgpO1xuICAgIHRoaXMuY2FuY2VsQ29udGVudCA9IHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGFiYW5kb24geW91ciBvcmRlcj8nLFxuICAgICAgY29udGVudDpcbiAgICAgICAgJ0FsbCBzZWxlY3Rpb25zIHdpbGwgYmUgZGVsZXRlZCBhbmQgeW91IHdpbGwgaGF2ZSB0byBzdGFydCBvdmVyLicsXG4gICAgICBidG5QcmltYXJ5OiAnQ29udGludWUgT3JkZXInLFxuICAgICAgYnRuU2Vjb25kYXJ5OiAnQWJhbmRvbiBPcmRlcicsXG4gICAgfTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcmVkUG9zdGluZ0JvYXJkTGlzdCA9IHRoaXMubW9kZWwuam9iQm9hcmRzO1xuICB9XG5cbiAgaW5pdGlhbGlzZURlZmF1bHRWYWx1ZXMoKSB7XG4gICAgdGhpcy5maWx0ZXJlZFBvc3RpbmdCb2FyZExpc3QgPSB0aGlzLm1vZGVsLmpvYkJvYXJkcztcbiAgICB0aGlzLmpvYkNvdW50ID0gdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoO1xuICAgIHRoaXMub3JkZXJTdW1tYXJ5ID0ge1xuICAgICAgdGl0bGU6ICdZb3VyIE9yZGVyJyxcbiAgICAgIGludm9pY2VBcmVhczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGluZUl0ZW1zOiBbXSxcbiAgICAgICAgICB0aXRsZTogJ1BheS1QZXItQ2xpY2snLFxuICAgICAgICAgIHRvdGFsOiB7XG4gICAgICAgICAgICB0ZXh0TGVmdDogJ0Nvc3QgUHJvZ3JhbWF0aWMgQm9hcmRzJyxcbiAgICAgICAgICAgIHRleHRSaWdodDogYHggKCR7dGhpcy5qb2JDb3VudH0pIEpvYnMgPSAkMGAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbmVJdGVtczogW10sXG4gICAgICAgICAgdGl0bGU6ICdKb2IgQm9hcmRzJyxcbiAgICAgICAgICB0b3RhbDoge1xuICAgICAgICAgICAgdGV4dExlZnQ6ICdDb3N0IEpvYiBCb2FyZHMnLFxuICAgICAgICAgICAgdGV4dFJpZ2h0OiBgeCAoJHt0aGlzLmpvYkNvdW50fSkgSm9icyA9ICQwYCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHRvdGFsOiB7XG4gICAgICAgIHRleHRMZWZ0OiAnJyxcbiAgICAgICAgdGV4dFJpZ2h0OiAnJDAnLFxuICAgICAgICBsYWJlbDogJ1RvdGFsOicsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICB1cGRhdGVNb2RhbEhlYWRlcigpIHtcbiAgICBsZXQgc3ViVGl0bGVUb29sdGlwOiBzdHJpbmcgPSAnJztcbiAgICBsZXQgam9iTnVtYmVyID0gMTtcbiAgICB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5mb3JFYWNoKChqb2IpID0+IHtcbiAgICAgIHN1YlRpdGxlVG9vbHRpcCA9IHN1YlRpdGxlVG9vbHRpcCArIGAke2pvYi5qb2JUaXRsZX0gWyR7am9iLmlkfV1gO1xuICAgICAgaWYgKGpvYk51bWJlciAhPSB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGgpIHtcbiAgICAgICAgc3ViVGl0bGVUb29sdGlwID0gc3ViVGl0bGVUb29sdGlwICsgJzwvYnI+JztcbiAgICAgIH1cbiAgICAgIGpvYk51bWJlcisrO1xuICAgIH0pO1xuICAgIHRoaXMuc3ViVGl0bGUgPSB7XG4gICAgICB0b29sdGlwSHRtbDogc3ViVGl0bGVUb29sdGlwLFxuICAgICAgdGV4dDogYCR7dGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RofSBKb2JzYCxcbiAgICAgIGljb25GaXJzdDogZmFsc2UsXG4gICAgICBpY29uOiBJY29ucy5JTkZPLFxuICAgICAgcGxhY2VtZW50OiAncmlnaHQnLFxuICAgIH07XG4gIH1cblxuICBvbktleXdvcmRTZWFyY2goa2V5d29yZDogc3RyaW5nKSB7XG4gICAgdGhpcy5maWx0ZXJlZFBvc3RpbmdCb2FyZExpc3QgPSB0aGlzLm1vZGVsLmpvYkJvYXJkcy5maWx0ZXIoKGJvYXJkKSA9PlxuICAgICAgYm9hcmQuYm9hcmROYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoa2V5d29yZC50b0xvd2VyQ2FzZSgpKVxuICAgICk7XG4gIH1cblxuICBvbkJ1dHRvbkNsaWNrKHRleHQ6IHN0cmluZykge1xuICAgIHRoaXMuYnV0dG9uQ2xpY2tlZC5lbWl0KHRleHQpO1xuICB9XG5cbiAgb25DbG9zZUJ1dHRvbkNsaWNrKCkge1xuICAgIHRoaXMuY2xvc2VCdXR0b25DbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uUG9zdGluZ0JvYXJkQ2hhbmdlKHNlbGVjdGVkQm9hcmQ6IFBvc3RpbmdCb2FyZHNTZWxlY3Rpb25Nb2RlbCkge1xuICAgIHRoaXMudXBkYXRlT3JkZXJTdW1tYXJ5KCk7XG4gIH1cblxuICBhZGRMaW5lSXRlbShcbiAgICBpbnZvaWNlQXJlYUluZGV4OiBudW1iZXIsXG4gICAgc2VsZWN0ZWRCb2FyZDogUG9zdGluZ0JvYXJkc1NlbGVjdGlvbk1vZGVsXG4gICkge1xuICAgIHRoaXMub3JkZXJTdW1tYXJ5Lmludm9pY2VBcmVhc1tpbnZvaWNlQXJlYUluZGV4XS5saW5lSXRlbXMucHVzaCh7XG4gICAgICB0ZXh0TGVmdDogc2VsZWN0ZWRCb2FyZC5ib2FyZE5hbWUsXG4gICAgICB0ZXh0UmlnaHQ6IGAkJHtzZWxlY3RlZEJvYXJkLmJvYXJkUHJpY2V9YCxcbiAgICB9KTtcbiAgfVxuXG4gIGNhbGN1bGF0ZUludm9pY2VBcmVhVG90YWwoaW52b2ljZUFyZWFJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBsZXQgaW52b2ljZUFyZWFUb3RhbCA9IDA7XG4gICAgdGhpcy5vcmRlclN1bW1hcnkuaW52b2ljZUFyZWFzW2ludm9pY2VBcmVhSW5kZXhdLmxpbmVJdGVtcy5mb3JFYWNoKChsaSkgPT4ge1xuICAgICAgaW52b2ljZUFyZWFUb3RhbCA9IGludm9pY2VBcmVhVG90YWwgKyArbGkudGV4dFJpZ2h0LnJlcGxhY2UoJyQnLCAnJyk7XG4gICAgfSk7XG4gICAgdGhpcy5vcmRlclN1bW1hcnkuaW52b2ljZUFyZWFzW2ludm9pY2VBcmVhSW5kZXhdLnRvdGFsLnRleHRSaWdodCA9IGB4ICgke1xuICAgICAgdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoXG4gICAgfSkgSm9icyA9ICQke2ludm9pY2VBcmVhVG90YWwgKiB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGh9YDtcbiAgICByZXR1cm4gaW52b2ljZUFyZWFUb3RhbCAqIHRoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aDtcbiAgfVxuXG4gIGNhbGN1bGF0ZU9yZGVyVG90YWwocGF5UGVyQ2xpY2tBcmVhVG90YWw6IG51bWJlciwgam9iQm9hcmRBcmVhVG90YWw6IG51bWJlcikge1xuICAgIGNvbnN0IHNlbGVjdGVkSm9iQm9hcmRzID0gdGhpcy5tb2RlbC5qb2JCb2FyZHMuZmlsdGVyKFxuICAgICAgKGpiKSA9PiBqYi5pc1NlbGVjdGVkXG4gICAgKS5sZW5ndGg7XG5cbiAgICBjb25zdCBqb2JUb0FkdmVydGlzZUNvdW50ID0gdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoO1xuXG4gICAgY29uc3Qgb3JkZXJTdW1tYXJ5VGV4dCA9IGAoJHtzZWxlY3RlZEpvYkJvYXJkc30pIEJvYXJkcyB4ICR7XG4gICAgICB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGhcbiAgICB9IEpvYnMgPSAoJHtzZWxlY3RlZEpvYkJvYXJkcyAqIGpvYlRvQWR2ZXJ0aXNlQ291bnR9KSBBZHNgO1xuXG4gICAgdGhpcy5vcmRlclN1bW1hcnkudG90YWwgPSB7XG4gICAgICBsYWJlbDogJ1RvdGFsOicsXG4gICAgICB0ZXh0TGVmdDogb3JkZXJTdW1tYXJ5VGV4dCxcbiAgICAgIHRleHRSaWdodDogYCQke3BheVBlckNsaWNrQXJlYVRvdGFsICsgam9iQm9hcmRBcmVhVG90YWx9YCxcbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlT3JkZXJTdW1tYXJ5KCkge1xuICAgIHRoaXMub3JkZXJTdW1tYXJ5Lmludm9pY2VBcmVhc1swXS5saW5lSXRlbXMgPSBbXTtcbiAgICB0aGlzLm9yZGVyU3VtbWFyeS5pbnZvaWNlQXJlYXNbMV0ubGluZUl0ZW1zID0gW107XG4gICAgdGhpcy5tb2RlbC5qb2JCb2FyZHMuZm9yRWFjaCgoamIpID0+IHtcbiAgICAgIGlmIChqYi5pc1NlbGVjdGVkKSB7XG4gICAgICAgIGlmIChqYi5pc1BheVBlckNsaWNrKSB7XG4gICAgICAgICAgdGhpcy5hZGRMaW5lSXRlbSgwLCBqYik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5hZGRMaW5lSXRlbSgxLCBqYik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHBheVBlckNsaWNrQXJlYVRvdGFsID0gdGhpcy5jYWxjdWxhdGVJbnZvaWNlQXJlYVRvdGFsKDApO1xuICAgIGNvbnN0IGpvYkJvYXJkQXJlYVRvdGFsID0gdGhpcy5jYWxjdWxhdGVJbnZvaWNlQXJlYVRvdGFsKDEpO1xuICAgIHRoaXMuY2FsY3VsYXRlT3JkZXJUb3RhbChwYXlQZXJDbGlja0FyZWFUb3RhbCwgam9iQm9hcmRBcmVhVG90YWwpO1xuICAgIGlmICh0aGlzLm1vZGVsLmpvYkJvYXJkcy5maWx0ZXIoKGpiKSA9PiBqYi5pc1NlbGVjdGVkKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuaXNKb2JCb2FyZE5leHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNKb2JCb2FyZE5leHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnBvc3RpbmdCb2FyZENoYW5nZS5lbWl0KHRoaXMubW9kZWwpO1xuICB9XG59XG4iLCI8c3ltcGhvbnktdHdvLWNvbHVtbi1tb2RhbC10ZW1wbGF0ZSAqbmdJZj1cIiFtb2RlbC5uYXZpZ2F0aW9uLnNob3dDYW5jZWxcIj5cbiAgPHN5bXBob255LWg0XG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dKb2JCb2FyZHNTZWxlY3Rpb24gJiYgIW1vZGVsLmlzTG9hZGluZ1wiXG4gICAgc2Z4LW1vZGFsLXRpdGxlXG4gICAgPlNlbGVjdCBZb3VyIEpvYiBBZCBCdXlzPC9zeW1waG9ueS1oNFxuICA+XG4gIDxzeW1waG9ueS1oNCAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd09yZGVyUmV2aWV3XCIgc2Z4LW1vZGFsLXRpdGxlXG4gICAgPlJldmlldyB5b3UgSm9iIEFkIEJ1eXM8L3N5bXBob255LWg0XG4gID5cbiAgPHN5bXBob255LWg0ICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93Q29uZmlybWF0aW9uXCIgc2Z4LW1vZGFsLXRpdGxlXG4gICAgPkNvbmZpcm1hdGlvbiBvZiB5b3VyIEpvYiBBZCBCdXlzPC9zeW1waG9ueS1oNFxuICA+XG4gIDxzeW1waG9ueS1oNCAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd1Byb2Nlc3NpbmdcIiBzZngtbW9kYWwtdGl0bGVcbiAgICA+UHJvY2Vzc2luZyBPcmRlci4uLjwvc3ltcGhvbnktaDRcbiAgPlxuICA8c3ltcGhvbnktaDQgKm5nSWY9XCJtb2RlbC5pc0xvYWRpbmdcIiBzZngtbW9kYWwtdGl0bGVcbiAgICA+TG9hZGluZyBKb2IgQm9hcmRzLi4uPC9zeW1waG9ueS1oNFxuICA+XG4gIDxzeW1waG9ueS1pY29uXG4gICAgc2Z4LWNsb3NlLWJ1dHRvblxuICAgIFtpY29uXT1cIidzaS1jbG9zZS1tb2RhbCdcIlxuICAgIChjbGlja2VkKT1cIm9uQ2xvc2VCdXR0b25DbGljaygpXCJcbiAgPjwvc3ltcGhvbnktaWNvbj5cbiAgPHN5bXBob255LWg1LXdpdGgtaWNvbiBzZngtbW9kYWwtc3VidGl0bGUgW21vZGVsXT1cInN1YlRpdGxlXCI+XG4gIDwvc3ltcGhvbnktaDUtd2l0aC1pY29uPlxuXG4gIDxzeW1waG9ueS10d28tY29sdW1uLWJvZHktdGVtcGxhdGVcbiAgICAqbmdJZj1cIiFtb2RlbC5pc0xvYWRpbmcgJiYgbW9kZWwubmF2aWdhdGlvbi5zaG93Sm9iQm9hcmRzU2VsZWN0aW9uXCJcbiAgICBbc2hvd0hlYWRlcl09XCJ0cnVlXCJcbiAgICBzZngtbW9kYWwtYm9keS1hcmVhXG4gID5cbiAgICA8c3ltcGhvbnktaW5wdXQtdGV4dFxuICAgICAgc2Z4LWxlZnQtY29sLWhlYWRlclxuICAgICAgW25vTWFyZ2luXT1cInRydWVcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWFyY2ggQWQgQm9hcmRzJ1wiXG4gICAgICBbaWNvbl09XCInc2ktc2VhcmNoLW5ldydcIlxuICAgICAgKHRleHRDaGFuZ2UpPVwib25LZXl3b3JkU2VhcmNoKCRldmVudClcIlxuICAgID5cbiAgICA8L3N5bXBob255LWlucHV0LXRleHQ+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbC1oZWFkZXItaW5uZXJcIiBzZngtcmlnaHQtY29sLWhlYWRlcj5cbiAgICAgIDxzeW1waG9ueS1oNS13aXRoLWljb25cbiAgICAgICAgc2Z4LXJpZ2h0LWNvbC1oZWFkZXJcbiAgICAgICAgKm5nSWY9XCJtb2RlbC5zaG93RnVuZHNcIlxuICAgICAgICBjbGFzcz1cInB1bGwtcmlnaHRcIlxuICAgICAgICBbbW9kZWxdPVwiZnVuZHNJbmZvXCJcbiAgICAgID48L3N5bXBob255LWg1LXdpdGgtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHNmeC1sZWZ0LWNvbHVtbiBjbGFzcz1cInBvc3RpbmctYm9hcmRzIHNmeC1wci0xMFwiPlxuICAgICAgPHN5bXBob255LWFkdmVydGlzZS1wb3N0aW5nYm9hcmQtc2VsZWN0aW9uLWxpc3RcbiAgICAgICAgW21vZGVsXT1cImZpbHRlcmVkUG9zdGluZ0JvYXJkTGlzdFwiXG4gICAgICAgIChwb3N0aW5nQm9hcmRDaGFuZ2UpPVwib25Qb3N0aW5nQm9hcmRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+PC9zeW1waG9ueS1hZHZlcnRpc2UtcG9zdGluZ2JvYXJkLXNlbGVjdGlvbi1saXN0PlxuICAgIDwvZGl2PlxuXG4gICAgPHN5bXBob255LW9yZGVyLXN1bW1hcnlcbiAgICAgIHNmeC1yaWdodC1jb2x1bW5cbiAgICAgIFttb2RlbF09XCJvcmRlclN1bW1hcnlcIlxuICAgID48L3N5bXBob255LW9yZGVyLXN1bW1hcnk+XG4gIDwvc3ltcGhvbnktdHdvLWNvbHVtbi1ib2R5LXRlbXBsYXRlPlxuXG4gIDxzeW1waG9ueS10d28tY29sdW1uLWJvZHktdGVtcGxhdGVcbiAgICAqbmdJZj1cIiFtb2RlbC5pc0xvYWRpbmcgJiYgbW9kZWwubmF2aWdhdGlvbi5zaG93T3JkZXJSZXZpZXdcIlxuICAgIHNmeC1tb2RhbC1ib2R5LWFyZWFcbiAgPlxuICAgIDxkaXYgc2Z4LWxlZnQtY29sdW1uIGNsYXNzPVwicG9zdGluZy1ib2FyZHNcIj5cbiAgICAgIDxzeW1waG9ueS1hZHZlcnRpc2Utb3JkZXItcmV2aWV3Pjwvc3ltcGhvbnktYWR2ZXJ0aXNlLW9yZGVyLXJldmlldz5cbiAgICA8L2Rpdj5cblxuICAgIDxzeW1waG9ueS1vcmRlci1zdW1tYXJ5XG4gICAgICBzZngtcmlnaHQtY29sdW1uXG4gICAgICBbbW9kZWxdPVwib3JkZXJTdW1tYXJ5XCJcbiAgICA+PC9zeW1waG9ueS1vcmRlci1zdW1tYXJ5PlxuICA8L3N5bXBob255LXR3by1jb2x1bW4tYm9keS10ZW1wbGF0ZT5cblxuICA8c3ltcGhvbnktdHdvLWNvbHVtbi1ib2R5LXRlbXBsYXRlXG4gICAgKm5nSWY9XCIhbW9kZWwuaXNMb2FkaW5nICYmIG1vZGVsLm5hdmlnYXRpb24uc2hvd0NvbmZpcm1hdGlvblwiXG4gICAgc2Z4LW1vZGFsLWJvZHktYXJlYVxuICA+XG4gICAgPHN5bXBob255LW9yZGVyLXN1bW1hcnlcbiAgICAgIHNmeC1sZWZ0LWNvbHVtblxuICAgICAgW21vZGVsXT1cIm9yZGVyU3VtbWFyeVwiXG4gICAgPjwvc3ltcGhvbnktb3JkZXItc3VtbWFyeT5cbiAgICA8ZGl2IHNmeC1yaWdodC1jb2x1bW4gY2xhc3M9XCJwb3N0aW5nLWJvYXJkc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInN0YWdlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3ggYm91bmNlLTdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tcGxldGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c3ltcGhvbnktaDI+WW91ciBvcmRlciBpcyBjb21wbGV0ZTwvc3ltcGhvbnktaDI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VjY2Vzcy1pY29uLXNwYWNpbmdcIj5cbiAgICAgICAgICAgICAgPHN5bXBob255LWljb25cbiAgICAgICAgICAgICAgICBbaWNvbl09XCInc2ktY29uZmlybWF0aW9uJ1wiXG4gICAgICAgICAgICAgICAgW2ljb25Db2xvcl09XCInIzAwRDU2QidcIlxuICAgICAgICAgICAgICAgIFtzaXplXT1cIic1MHB4J1wiXG4gICAgICAgICAgICAgID48L3N5bXBob255LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9zeW1waG9ueS10d28tY29sdW1uLWJvZHktdGVtcGxhdGU+XG5cbiAgPGRpdlxuICAgICpuZ0lmPVwiIW1vZGVsLmlzTG9hZGluZyAmJiBtb2RlbC5uYXZpZ2F0aW9uLnNob3dQcm9jZXNzaW5nXCJcbiAgICBzZngtbW9kYWwtYm9keS1hcmVhXG4gICAgY2xhc3M9XCJwb3N0aW5nLWJvYXJkcyBzZngtcC0zMFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwicHJvY2Vzc2luZy1jb250YWluZXJcIj5cbiAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGhcbiAgICAgICAgPjxiPlNtYXNoRmx5WDwvYj4gaXMgc3VibWl0dGluZyB5b3VyIG9yZGVyIHRvIHlvdXIgc2VsZWN0ZWQgam9iIGJvYXJkcy5cbiAgICAgICAgU29tZSBvcmRlcnMgaGFwcGVuIGltbWVkaWF0ZWx5LCB3aGlsZSBvdGhlcnMgdGFrZSBhIGxpdHRsZSBtb3JlIHRpbWUuXG4gICAgICAgIENoZWNrIHlvdXIgb3JkZXIgc3RhdHVzIGlmIHlvdSBkb24ndCByZWNpZXZlIGEgY29uZmlybWF0aW9uIGluIHRoZSBuZXh0XG4gICAgICAgIDI0aG91cnMuPC9zeW1waG9ueS1wYXJhZ3JhcGhcbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2Z4LW10LTgwXCI+XG4gICAgICA8c3ltcGhvbnktc2Z4LWxvYWRlcj48L3N5bXBob255LXNmeC1sb2FkZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJsb2FkZXItY29udGFpbmVyXCIgKm5nSWY9XCJtb2RlbC5pc0xvYWRpbmdcIiBzZngtbW9kYWwtYm9keS1hcmVhPlxuICAgIDxzeW1waG9ueS1zZngtbG9hZGVyPjwvc3ltcGhvbnktc2Z4LWxvYWRlcj5cbiAgPC9kaXY+XG5cbiAgPHN5bXBob255LWJ1dHRvblxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93Sm9iQm9hcmRzU2VsZWN0aW9uXCJcbiAgICBzZngtYnV0dG9uLXNlY29uZGFyeVxuICAgIFt0ZXh0XT1cIidDYW5jZWwnXCJcbiAgICBbaXNTZWNvbmRhcnldPVwidHJ1ZVwiXG4gICAgW2lzSW52ZXJzZV09XCJ0cnVlXCJcbiAgICAoY2xpY2tlZCk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICA+PC9zeW1waG9ueS1idXR0b24+XG4gIDxzeW1waG9ueS1idXR0b25cbiAgICAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd0pvYkJvYXJkc1NlbGVjdGlvblwiXG4gICAgc2Z4LWJ1dHRvbi1wcmltYXJ5XG4gICAgW3RleHRdPVwiJ1JldmlldyBPcmRlcidcIlxuICAgIFtkaXNhYmxlZF09XCJpc0pvYkJvYXJkTmV4dEJ1dHRvbkRpc2FibGVkXCJcbiAgICBbaXNJbnZlcnNlXT1cInRydWVcIlxuICAgIChjbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gID48L3N5bXBob255LWJ1dHRvbj5cblxuICA8c3ltcGhvbnktYnV0dG9uXG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dPcmRlclJldmlld1wiXG4gICAgc2Z4LWJ1dHRvbi1iYWNrXG4gICAgW3RleHRdPVwiJ0VkaXQgT3JkZXInXCJcbiAgICBbaXNTZWNvbmRhcnldPVwidHJ1ZVwiXG4gICAgW2lzSW52ZXJzZV09XCJ0cnVlXCJcbiAgICAoY2xpY2tlZCk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICA+PC9zeW1waG9ueS1idXR0b24+XG4gIDxzeW1waG9ueS1idXR0b25cbiAgICAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd09yZGVyUmV2aWV3XCJcbiAgICBzZngtYnV0dG9uLXNlY29uZGFyeVxuICAgIFt0ZXh0XT1cIidDYW5jZWwnXCJcbiAgICBbaXNTZWNvbmRhcnldPVwidHJ1ZVwiXG4gICAgW2lzSW52ZXJzZV09XCJ0cnVlXCJcbiAgICAoY2xpY2tlZCk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICA+PC9zeW1waG9ueS1idXR0b24+XG4gIDxzeW1waG9ueS1idXR0b25cbiAgICAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd09yZGVyUmV2aWV3XCJcbiAgICBzZngtYnV0dG9uLXByaW1hcnlcbiAgICBbdGV4dF09XCInQnV5J1wiXG4gICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICBbaXNJbnZlcnNlXT1cInRydWVcIlxuICAgIChjbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gID48L3N5bXBob255LWJ1dHRvbj5cblxuICA8c3ltcGhvbnktYnV0dG9uXG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dDb25maXJtYXRpb25cIlxuICAgIHNmeC1idXR0b24tcHJpbWFyeVxuICAgIFt0ZXh0XT1cIidGaW5pc2ggJiBDbG9zZSdcIlxuICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgW2lzSW52ZXJzZV09XCJ0cnVlXCJcbiAgICAoY2xpY2tlZCk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICA+PC9zeW1waG9ueS1idXR0b24+XG48L3N5bXBob255LXR3by1jb2x1bW4tbW9kYWwtdGVtcGxhdGU+XG48c3ltcGhvbnktY29uZmlybWF0aW9uLW1vZGFsXG4gICpuZ0lmPVwiIW1vZGVsLmlzTG9hZGluZyAmJiBtb2RlbC5uYXZpZ2F0aW9uLnNob3dDYW5jZWxcIlxuICAoYnV0dG9uQ2xpY2tlZCk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAoY2xvc2VCdXR0b25DbGlja2VkKT1cIm9uQ2xvc2VCdXR0b25DbGljaygpXCJcbiAgW21vZGVsXT1cImNhbmNlbENvbnRlbnRcIlxuPlxuPC9zeW1waG9ueS1jb25maXJtYXRpb24tbW9kYWw+XG4iXX0=
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2ZXJ0aXNlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvcGFnZXMvbW9kYWxzL2FkdmVydGlzZS1tb2RhbC9hZHZlcnRpc2UtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9wYWdlcy9tb2RhbHMvYWR2ZXJ0aXNlLW1vZGFsL2FkdmVydGlzZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFldEQsTUFBTSxPQUFPLHVCQUF1QjtJQTJCbEM7UUF4QlUsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDaEQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBRTVDLENBQUM7UUFDTSx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS3BELGNBQVMsR0FBb0I7WUFDbEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ3hCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO1FBR0ssc0JBQWlCLEdBQW1CLEVBQUUsQ0FBQztRQUN2QyxjQUFTLEdBQW1CLEVBQUUsQ0FBQztRQUMvQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGVBQVUsR0FBVyxFQUFFLENBQUM7SUFHaEIsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFB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QztRQUMvRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNsRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pFLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7U0FDMUM7YUFBTTtZQUNMLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDOztvSEEvS1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsOFJDekJwQyw4dUxBb0xBOzJGRDNKYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UsMEJBQTBCOzBFQUszQixLQUFLO3NCQUFiLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUdHLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uLy4uL2F0b21zL2ljb24vaWNvbi5lbnVtJztcbmltcG9ydCB7IE9yZGVyU3VtbWFyeU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vb3JnYW5pc21zL29yZGVyLXN1bW1hcnkvb3JkZXItc3VtbWFyeS5tb2RlbCc7XG5pbXBvcnQgeyBINVdpdGhJY29uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2xlY3VsZXMvaDUtd2l0aC1pY29uL2g1LXdpdGgtaWNvbi5tb2RlbCc7XG5pbXBvcnQge1xuICBBZHZlcnRpc2VNb2RhbE1vZGVsLFxuICBQb3N0aW5nQm9hcmRzU2VsZWN0aW9uTW9kZWxcbn0gZnJvbSAnLi9hZHZlcnRpc2UtbW9kYWwubW9kZWwnO1xuaW1wb3J0IHsgSW52b2ljZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9sZWN1bGVzL2ludm9pY2UtbGluZS1pdGVtL2ludm9pY2UtbGluZS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vb3JnYW5pc21zL2NvbmZpcm1hdGlvbi1tb2RhbC9jb25maXJtYXRpb24tbW9kYWwubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1hZHZlcnRpc2UtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWR2ZXJ0aXNlLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWR2ZXJ0aXNlLW1vZGFsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWR2ZXJ0aXNlTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG1vZGVsOiBQYXJ0aWFsPEFkdmVydGlzZU1vZGFsTW9kZWw+O1xuXG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZUJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHBvc3RpbmdCb2FyZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgUGFydGlhbDxBZHZlcnRpc2VNb2RhbE1vZGVsPlxuICA+KCk7XG4gIEBPdXRwdXQoKSBrZXl3b3JkU2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHVibGljIGZpbHRlcmVkUG9zdGluZ0JvYXJkTGlzdDogUG9zdGluZ0JvYXJkc1NlbGVjdGlvbk1vZGVsW107XG4gIHB1YmxpYyBvcmRlclN1bW1hcnk6IE9yZGVyU3VtbWFyeU1vZGVsO1xuICBwdWJsaWMgc3ViVGl0bGU6IEg1V2l0aEljb25Nb2RlbDtcbiAgcHVibGljIGZ1bmRzSW5mbzogSDVXaXRoSWNvbk1vZGVsID0ge1xuICAgIGljb246IEljb25zLkNPTkZJUk1BVElPTixcbiAgICBpY29uRmlyc3Q6IHRydWUsXG4gICAgdGV4dDogJ1N1ZmZpY2llbnQgRnVuZHMnLFxuICAgIGljb25Db2xvcjogJyMwMEQ1NkInXG4gIH07XG4gIHB1YmxpYyBjYW5jZWxDb250ZW50OiBDb25maXJtYXRpb25Nb2RlbDtcblxuICBwdWJsaWMgcGF5UGVyQ2xpY2tCb2FyZHM6IEludm9pY2VNb2RlbFtdID0gW107XG4gIHB1YmxpYyBqb2JCb2FyZHM6IEludm9pY2VNb2RlbFtdID0gW107XG4gIHB1YmxpYyBqb2JDb3VudDogbnVtYmVyID0gMDtcbiAgcHVibGljIG1vZGFsVGl0bGU6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgaXNKb2JCb2FyZE5leHRCdXR0b25EaXNhYmxlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXNlRGVmYXVsdFZhbHVlcygpO1xuICAgIHRoaXMudXBkYXRlTW9kYWxIZWFkZXIoKTtcbiAgICB0aGlzLnVwZGF0ZU9yZGVyU3VtbWFyeSgpO1xuICAgIHRoaXMuY2FuY2VsQ29udGVudCA9IHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGFiYW5kb24geW91ciBvcmRlcj8nLFxuICAgICAgY29udGVudDpcbiAgICAgICAgJ0FsbCBzZWxlY3Rpb25zIHdpbGwgYmUgZGVsZXRlZCBhbmQgeW91IHdpbGwgaGF2ZSB0byBzdGFydCBvdmVyLicsXG4gICAgICBidG5QcmltYXJ5OiAnQ29udGludWUgT3JkZXInLFxuICAgICAgYnRuU2Vjb25kYXJ5OiAnQWJhbmRvbiBPcmRlcidcbiAgICB9O1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyZWRQb3N0aW5nQm9hcmRMaXN0ID0gdGhpcy5tb2RlbC5qb2JCb2FyZHM7XG4gIH1cblxuICBpbml0aWFsaXNlRGVmYXVsdFZhbHVlcygpIHtcbiAgICB0aGlzLmZpbHRlcmVkUG9zdGluZ0JvYXJkTGlzdCA9IHRoaXMubW9kZWwuam9iQm9hcmRzO1xuICAgIHRoaXMuam9iQ291bnQgPSB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGg7XG4gICAgdGhpcy5vcmRlclN1bW1hcnkgPSB7XG4gICAgICB0aXRsZTogJ1lvdXIgT3JkZXInLFxuICAgICAgaW52b2ljZUFyZWFzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5lSXRlbXM6IFtdLFxuICAgICAgICAgIHRpdGxlOiAnUGF5LVBlci1DbGljaycsXG4gICAgICAgICAgdG90YWw6IHtcbiAgICAgICAgICAgIHRleHRMZWZ0OiAnQ29zdCBQcm9ncmFtYXRpYyBCb2FyZHMnLFxuICAgICAgICAgICAgdGV4dFJpZ2h0OiBgeCAoJHt0aGlzLmpvYkNvdW50fSkgSm9icyA9ICQwYFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbmVJdGVtczogW10sXG4gICAgICAgICAgdGl0bGU6ICdKb2IgQm9hcmRzJyxcbiAgICAgICAgICB0b3RhbDoge1xuICAgICAgICAgICAgdGV4dExlZnQ6ICdDb3N0IEpvYiBCb2FyZHMnLFxuICAgICAgICAgICAgdGV4dFJpZ2h0OiBgeCAoJHt0aGlzLmpvYkNvdW50fSkgSm9icyA9ICQwYFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIHRvdGFsOiB7XG4gICAgICAgIHRleHRMZWZ0OiAnJyxcbiAgICAgICAgdGV4dFJpZ2h0OiAnJDAnLFxuICAgICAgICBsYWJlbDogJ1RvdGFsOidcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlTW9kYWxIZWFkZXIoKSB7XG4gICAgbGV0IHN1YlRpdGxlVG9vbHRpcDogc3RyaW5nID0gJyc7XG4gICAgbGV0IGpvYk51bWJlciA9IDE7XG4gICAgdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UuZm9yRWFjaChqb2IgPT4ge1xuICAgICAgc3ViVGl0bGVUb29sdGlwID0gc3ViVGl0bGVUb29sdGlwICsgYCR7am9iLmpvYlRpdGxlfSBbJHtqb2IuaWR9XWA7XG4gICAgICBpZiAoam9iTnVtYmVyICE9IHRoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aCkge1xuICAgICAgICBzdWJUaXRsZVRvb2x0aXAgPSBzdWJUaXRsZVRvb2x0aXAgKyAnPC9icj4nO1xuICAgICAgfVxuICAgICAgam9iTnVtYmVyKys7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJUaXRsZSA9IHtcbiAgICAgIHRvb2x0aXBIdG1sOiBzdWJUaXRsZVRvb2x0aXAsXG4gICAgICB0ZXh0OiBgJHt0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGh9IEpvYnNgLFxuICAgICAgaWNvbkZpcnN0OiBmYWxzZSxcbiAgICAgIGljb246IEljb25zLklORk8sXG4gICAgICBwbGFjZW1lbnQ6ICdyaWdodCdcbiAgICB9O1xuICB9XG5cbiAgb25LZXl3b3JkU2VhcmNoKGtleXdvcmQ6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyZWRQb3N0aW5nQm9hcmRMaXN0ID0gdGhpcy5tb2RlbC5qb2JCb2FyZHMuZmlsdGVyKGJvYXJkID0+XG4gICAgICBib2FyZC5ib2FyZE5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhrZXl3b3JkLnRvTG93ZXJDYXNlKCkpXG4gICAgKTtcbiAgICB0aGlzLmtleXdvcmRTZWFyY2hDaGFuZ2UuZW1pdChrZXl3b3JkKTtcbiAgfVxuXG4gIG9uQnV0dG9uQ2xpY2sodGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5idXR0b25DbGlja2VkLmVtaXQodGV4dCk7XG4gIH1cblxuICBvbkNsb3NlQnV0dG9uQ2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZUJ1dHRvbkNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgb25Qb3N0aW5nQm9hcmRDaGFuZ2Uoc2VsZWN0ZWRCb2FyZDogUG9zdGluZ0JvYXJkc1NlbGVjdGlvbk1vZGVsKSB7XG4gICAgdGhpcy51cGRhdGVPcmRlclN1bW1hcnkoKTtcbiAgfVxuXG4gIGFkZExpbmVJdGVtKFxuICAgIGludm9pY2VBcmVhSW5kZXg6IG51bWJlcixcbiAgICBzZWxlY3RlZEJvYXJkOiBQb3N0aW5nQm9hcmRzU2VsZWN0aW9uTW9kZWxcbiAgKSB7XG4gICAgdGhpcy5vcmRlclN1bW1hcnkuaW52b2ljZUFyZWFzW2ludm9pY2VBcmVhSW5kZXhdLmxpbmVJdGVtcy5wdXNoKHtcbiAgICAgIHRleHRMZWZ0OiBzZWxlY3RlZEJvYXJkLmJvYXJkTmFtZSxcbiAgICAgIHRleHRSaWdodDogYCQke3NlbGVjdGVkQm9hcmQuYm9hcmRQcmljZX1gXG4gICAgfSk7XG4gIH1cblxuICBjYWxjdWxhdGVJbnZvaWNlQXJlYVRvdGFsKGludm9pY2VBcmVhSW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IGludm9pY2VBcmVhVG90YWwgPSAwO1xuICAgIHRoaXMub3JkZXJTdW1tYXJ5Lmludm9pY2VBcmVhc1tpbnZvaWNlQXJlYUluZGV4XS5saW5lSXRlbXMuZm9yRWFjaChsaSA9PiB7XG4gICAgICBpbnZvaWNlQXJlYVRvdGFsID0gaW52b2ljZUFyZWFUb3RhbCArICtsaS50ZXh0UmlnaHQucmVwbGFjZSgnJCcsICcnKTtcbiAgICB9KTtcbiAgICB0aGlzLm9yZGVyU3VtbWFyeS5pbnZvaWNlQXJlYXNbaW52b2ljZUFyZWFJbmRleF0udG90YWwudGV4dFJpZ2h0ID0gYHggKCR7XG4gICAgICB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGhcbiAgICB9KSBKb2JzID0gJCR7aW52b2ljZUFyZWFUb3RhbCAqIHRoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aH1gO1xuICAgIHJldHVybiBpbnZvaWNlQXJlYVRvdGFsICogdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoO1xuICB9XG5cbiAgY2FsY3VsYXRlT3JkZXJUb3RhbChwYXlQZXJDbGlja0FyZWFUb3RhbDogbnVtYmVyLCBqb2JCb2FyZEFyZWFUb3RhbDogbnVtYmVyKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRKb2JCb2FyZHMgPSB0aGlzLm1vZGVsLmpvYkJvYXJkcy5maWx0ZXIoamIgPT4gamIuaXNTZWxlY3RlZClcbiAgICAgIC5sZW5ndGg7XG5cbiAgICBjb25zdCBqb2JUb0FkdmVydGlzZUNvdW50ID0gdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoO1xuXG4gICAgY29uc3Qgb3JkZXJTdW1tYXJ5VGV4dCA9IGAoJHtzZWxlY3RlZEpvYkJvYXJkc30pIEJvYXJkcyB4ICR7XG4gICAgICB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGhcbiAgICB9IEpvYnMgPSAoJHtzZWxlY3RlZEpvYkJvYXJkcyAqIGpvYlRvQWR2ZXJ0aXNlQ291bnR9KSBBZHNgO1xuXG4gICAgdGhpcy5vcmRlclN1bW1hcnkudG90YWwgPSB7XG4gICAgICBsYWJlbDogJ1RvdGFsOicsXG4gICAgICB0ZXh0TGVmdDogb3JkZXJTdW1tYXJ5VGV4dCxcbiAgICAgIHRleHRSaWdodDogYCQke3BheVBlckNsaWNrQXJlYVRvdGFsICsgam9iQm9hcmRBcmVhVG90YWx9YFxuICAgIH07XG4gIH1cblxuICB1cGRhdGVPcmRlclN1bW1hcnkoKSB7XG4gICAgdGhpcy5vcmRlclN1bW1hcnkuaW52b2ljZUFyZWFzWzBdLmxpbmVJdGVtcyA9IFtdO1xuICAgIHRoaXMub3JkZXJTdW1tYXJ5Lmludm9pY2VBcmVhc1sxXS5saW5lSXRlbXMgPSBbXTtcbiAgICB0aGlzLm1vZGVsLmpvYkJvYXJkcy5mb3JFYWNoKGpiID0+IHtcbiAgICAgIGlmIChqYi5pc1NlbGVjdGVkKSB7XG4gICAgICAgIGlmIChqYi5pc1BheVBlckNsaWNrKSB7XG4gICAgICAgICAgdGhpcy5hZGRMaW5lSXRlbSgwLCBqYik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5hZGRMaW5lSXRlbSgxLCBqYik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHBheVBlckNsaWNrQXJlYVRvdGFsID0gdGhpcy5jYWxjdWxhdGVJbnZvaWNlQXJlYVRvdGFsKDApO1xuICAgIGNvbnN0IGpvYkJvYXJkQXJlYVRvdGFsID0gdGhpcy5jYWxjdWxhdGVJbnZvaWNlQXJlYVRvdGFsKDEpO1xuICAgIHRoaXMuY2FsY3VsYXRlT3JkZXJUb3RhbChwYXlQZXJDbGlja0FyZWFUb3RhbCwgam9iQm9hcmRBcmVhVG90YWwpO1xuICAgIGlmICh0aGlzLm1vZGVsLmpvYkJvYXJkcy5maWx0ZXIoamIgPT4gamIuaXNTZWxlY3RlZCkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmlzSm9iQm9hcmROZXh0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzSm9iQm9hcmROZXh0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5wb3N0aW5nQm9hcmRDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcbiAgfVxufVxuIiwiPHN5bXBob255LXR3by1jb2x1bW4tbW9kYWwtdGVtcGxhdGUgKm5nSWY9XCIhbW9kZWwubmF2aWdhdGlvbi5zaG93Q2FuY2VsXCI+XG4gIDxzeW1waG9ueS1oNFxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93Sm9iQm9hcmRzU2VsZWN0aW9uICYmICFtb2RlbC5pc0xvYWRpbmdcIlxuICAgIHNmeC1tb2RhbC10aXRsZVxuICAgID5TZWxlY3QgWW91ciBKb2IgQWQgQnV5czwvc3ltcGhvbnktaDRcbiAgPlxuICA8c3ltcGhvbnktaDQgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dPcmRlclJldmlld1wiIHNmeC1tb2RhbC10aXRsZVxuICAgID5SZXZpZXcgeW91IEpvYiBBZCBCdXlzPC9zeW1waG9ueS1oNFxuICA+XG4gIDxzeW1waG9ueS1oNCAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd0NvbmZpcm1hdGlvblwiIHNmeC1tb2RhbC10aXRsZVxuICAgID5Db25maXJtYXRpb24gb2YgeW91ciBKb2IgQWQgQnV5czwvc3ltcGhvbnktaDRcbiAgPlxuICA8c3ltcGhvbnktaDQgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dQcm9jZXNzaW5nXCIgc2Z4LW1vZGFsLXRpdGxlXG4gICAgPlByb2Nlc3NpbmcgT3JkZXIuLi48L3N5bXBob255LWg0XG4gID5cbiAgPHN5bXBob255LWg0ICpuZ0lmPVwibW9kZWwuaXNMb2FkaW5nXCIgc2Z4LW1vZGFsLXRpdGxlXG4gICAgPkxvYWRpbmcgSm9iIEJvYXJkcy4uLjwvc3ltcGhvbnktaDRcbiAgPlxuICA8c3ltcGhvbnktaWNvblxuICAgIHNmeC1jbG9zZS1idXR0b25cbiAgICBbaWNvbl09XCInc2ktY2xvc2UtbW9kYWwnXCJcbiAgICAoY2xpY2tlZCk9XCJvbkNsb3NlQnV0dG9uQ2xpY2soKVwiXG4gID48L3N5bXBob255LWljb24+XG4gIDxzeW1waG9ueS1oNS13aXRoLWljb24gc2Z4LW1vZGFsLXN1YnRpdGxlIFttb2RlbF09XCJzdWJUaXRsZVwiPlxuICA8L3N5bXBob255LWg1LXdpdGgtaWNvbj5cblxuICA8c3ltcGhvbnktdHdvLWNvbHVtbi1ib2R5LXRlbXBsYXRlXG4gICAgKm5nSWY9XCIhbW9kZWwuaXNMb2FkaW5nICYmIG1vZGVsLm5hdmlnYXRpb24uc2hvd0pvYkJvYXJkc1NlbGVjdGlvblwiXG4gICAgW3Nob3dIZWFkZXJdPVwidHJ1ZVwiXG4gICAgc2Z4LW1vZGFsLWJvZHktYXJlYVxuICA+XG4gICAgPHN5bXBob255LWlucHV0LXRleHRcbiAgICAgIHNmeC1sZWZ0LWNvbC1oZWFkZXJcbiAgICAgIFtub01hcmdpbl09XCJ0cnVlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoIEFkIEJvYXJkcydcIlxuICAgICAgW2ljb25dPVwiJ3NpLXNlYXJjaC1uZXcnXCJcbiAgICAgICh0ZXh0Q2hhbmdlKT1cIm9uS2V5d29yZFNlYXJjaCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9zeW1waG9ueS1pbnB1dC10ZXh0PlxuICAgIDxkaXYgY2xhc3M9XCJyaWdodC1jb2wtaGVhZGVyLWlubmVyXCIgc2Z4LXJpZ2h0LWNvbC1oZWFkZXI+XG4gICAgICA8c3ltcGhvbnktaDUtd2l0aC1pY29uXG4gICAgICAgIHNmeC1yaWdodC1jb2wtaGVhZGVyXG4gICAgICAgICpuZ0lmPVwibW9kZWwuc2hvd0Z1bmRzXCJcbiAgICAgICAgY2xhc3M9XCJwdWxsLXJpZ2h0XCJcbiAgICAgICAgW21vZGVsXT1cImZ1bmRzSW5mb1wiXG4gICAgICA+PC9zeW1waG9ueS1oNS13aXRoLWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzZngtbGVmdC1jb2x1bW4gY2xhc3M9XCJwb3N0aW5nLWJvYXJkcyBzZngtcHItMTBcIj5cbiAgICAgIDxzeW1waG9ueS1hZHZlcnRpc2UtcG9zdGluZ2JvYXJkLXNlbGVjdGlvbi1saXN0XG4gICAgICAgIFttb2RlbF09XCJmaWx0ZXJlZFBvc3RpbmdCb2FyZExpc3RcIlxuICAgICAgICAocG9zdGluZ0JvYXJkQ2hhbmdlKT1cIm9uUG9zdGluZ0JvYXJkQ2hhbmdlKCRldmVudClcIlxuICAgICAgPjwvc3ltcGhvbnktYWR2ZXJ0aXNlLXBvc3Rpbmdib2FyZC1zZWxlY3Rpb24tbGlzdD5cbiAgICA8L2Rpdj5cblxuICAgIDxzeW1waG9ueS1vcmRlci1zdW1tYXJ5XG4gICAgICBzZngtcmlnaHQtY29sdW1uXG4gICAgICBbbW9kZWxdPVwib3JkZXJTdW1tYXJ5XCJcbiAgICA+PC9zeW1waG9ueS1vcmRlci1zdW1tYXJ5PlxuICA8L3N5bXBob255LXR3by1jb2x1bW4tYm9keS10ZW1wbGF0ZT5cblxuICA8c3ltcGhvbnktdHdvLWNvbHVtbi1ib2R5LXRlbXBsYXRlXG4gICAgKm5nSWY9XCIhbW9kZWwuaXNMb2FkaW5nICYmIG1vZGVsLm5hdmlnYXRpb24uc2hvd09yZGVyUmV2aWV3XCJcbiAgICBzZngtbW9kYWwtYm9keS1hcmVhXG4gID5cbiAgICA8ZGl2IHNmeC1sZWZ0LWNvbHVtbiBjbGFzcz1cInBvc3RpbmctYm9hcmRzXCI+XG4gICAgICA8c3ltcGhvbnktYWR2ZXJ0aXNlLW9yZGVyLXJldmlldz48L3N5bXBob255LWFkdmVydGlzZS1vcmRlci1yZXZpZXc+XG4gICAgPC9kaXY+XG5cbiAgICA8c3ltcGhvbnktb3JkZXItc3VtbWFyeVxuICAgICAgc2Z4LXJpZ2h0LWNvbHVtblxuICAgICAgW21vZGVsXT1cIm9yZGVyU3VtbWFyeVwiXG4gICAgPjwvc3ltcGhvbnktb3JkZXItc3VtbWFyeT5cbiAgPC9zeW1waG9ueS10d28tY29sdW1uLWJvZHktdGVtcGxhdGU+XG5cbiAgPHN5bXBob255LXR3by1jb2x1bW4tYm9keS10ZW1wbGF0ZVxuICAgICpuZ0lmPVwiIW1vZGVsLmlzTG9hZGluZyAmJiBtb2RlbC5uYXZpZ2F0aW9uLnNob3dDb25maXJtYXRpb25cIlxuICAgIHNmeC1tb2RhbC1ib2R5LWFyZWFcbiAgPlxuICAgIDxzeW1waG9ueS1vcmRlci1zdW1tYXJ5XG4gICAgICBzZngtbGVmdC1jb2x1bW5cbiAgICAgIFttb2RlbF09XCJvcmRlclN1bW1hcnlcIlxuICAgID48L3N5bXBob255LW9yZGVyLXN1bW1hcnk+XG4gICAgPGRpdiBzZngtcmlnaHQtY29sdW1uIGNsYXNzPVwicG9zdGluZy1ib2FyZHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdGFnZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm94IGJvdW5jZS03XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbXBsZXRlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHN5bXBob255LWgyPllvdXIgb3JkZXIgaXMgY29tcGxldGU8L3N5bXBob255LWgyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Y2Nlc3MtaWNvbi1zcGFjaW5nXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1pY29uXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiJ3NpLWNvbmZpcm1hdGlvbidcIlxuICAgICAgICAgICAgICAgIFtpY29uQ29sb3JdPVwiJyMwMEQ1NkInXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCInNTBweCdcIlxuICAgICAgICAgICAgICA+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvc3ltcGhvbnktdHdvLWNvbHVtbi1ib2R5LXRlbXBsYXRlPlxuXG4gIDxkaXZcbiAgICAqbmdJZj1cIiFtb2RlbC5pc0xvYWRpbmcgJiYgbW9kZWwubmF2aWdhdGlvbi5zaG93UHJvY2Vzc2luZ1wiXG4gICAgc2Z4LW1vZGFsLWJvZHktYXJlYVxuICAgIGNsYXNzPVwicG9zdGluZy1ib2FyZHMgc2Z4LXAtMzBcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInByb2Nlc3NpbmctY29udGFpbmVyXCI+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoXG4gICAgICAgID48Yj5TbWFzaEZseVg8L2I+IGlzIHN1Ym1pdHRpbmcgeW91ciBvcmRlciB0byB5b3VyIHNlbGVjdGVkIGpvYiBib2FyZHMuXG4gICAgICAgIFNvbWUgb3JkZXJzIGhhcHBlbiBpbW1lZGlhdGVseSwgd2hpbGUgb3RoZXJzIHRha2UgYSBsaXR0bGUgbW9yZSB0aW1lLlxuICAgICAgICBDaGVjayB5b3VyIG9yZGVyIHN0YXR1cyBpZiB5b3UgZG9uJ3QgcmVjaWV2ZSBhIGNvbmZpcm1hdGlvbiBpbiB0aGUgbmV4dFxuICAgICAgICAyNGhvdXJzLjwvc3ltcGhvbnktcGFyYWdyYXBoXG4gICAgICA+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNmeC1tdC04MFwiPlxuICAgICAgPHN5bXBob255LXNmeC1sb2FkZXI+PC9zeW1waG9ueS1zZngtbG9hZGVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibG9hZGVyLWNvbnRhaW5lclwiICpuZ0lmPVwibW9kZWwuaXNMb2FkaW5nXCIgc2Z4LW1vZGFsLWJvZHktYXJlYT5cbiAgICA8c3ltcGhvbnktc2Z4LWxvYWRlcj48L3N5bXBob255LXNmeC1sb2FkZXI+XG4gIDwvZGl2PlxuXG4gIDxzeW1waG9ueS1idXR0b25cbiAgICAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd0pvYkJvYXJkc1NlbGVjdGlvblwiXG4gICAgc2Z4LWJ1dHRvbi1zZWNvbmRhcnlcbiAgICBbdGV4dF09XCInQ2FuY2VsJ1wiXG4gICAgW2lzU2Vjb25kYXJ5XT1cInRydWVcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuICA8c3ltcGhvbnktYnV0dG9uXG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dKb2JCb2FyZHNTZWxlY3Rpb25cIlxuICAgIHNmeC1idXR0b24tcHJpbWFyeVxuICAgIFt0ZXh0XT1cIidSZXZpZXcgT3JkZXInXCJcbiAgICBbZGlzYWJsZWRdPVwiaXNKb2JCb2FyZE5leHRCdXR0b25EaXNhYmxlZFwiXG4gICAgW2lzSW52ZXJzZV09XCJ0cnVlXCJcbiAgICAoY2xpY2tlZCk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICA+PC9zeW1waG9ueS1idXR0b24+XG5cbiAgPHN5bXBob255LWJ1dHRvblxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93T3JkZXJSZXZpZXdcIlxuICAgIHNmeC1idXR0b24tYmFja1xuICAgIFt0ZXh0XT1cIidFZGl0IE9yZGVyJ1wiXG4gICAgW2lzU2Vjb25kYXJ5XT1cInRydWVcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuICA8c3ltcGhvbnktYnV0dG9uXG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dPcmRlclJldmlld1wiXG4gICAgc2Z4LWJ1dHRvbi1zZWNvbmRhcnlcbiAgICBbdGV4dF09XCInQ2FuY2VsJ1wiXG4gICAgW2lzU2Vjb25kYXJ5XT1cInRydWVcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuICA8c3ltcGhvbnktYnV0dG9uXG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dPcmRlclJldmlld1wiXG4gICAgc2Z4LWJ1dHRvbi1wcmltYXJ5XG4gICAgW3RleHRdPVwiJ0J1eSdcIlxuICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgW2lzSW52ZXJzZV09XCJ0cnVlXCJcbiAgICAoY2xpY2tlZCk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICA+PC9zeW1waG9ueS1idXR0b24+XG5cbiAgPHN5bXBob255LWJ1dHRvblxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93Q29uZmlybWF0aW9uXCJcbiAgICBzZngtYnV0dG9uLXByaW1hcnlcbiAgICBbdGV4dF09XCInRmluaXNoICYgQ2xvc2UnXCJcbiAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuPC9zeW1waG9ueS10d28tY29sdW1uLW1vZGFsLXRlbXBsYXRlPlxuPHN5bXBob255LWNvbmZpcm1hdGlvbi1tb2RhbFxuICAqbmdJZj1cIiFtb2RlbC5pc0xvYWRpbmcgJiYgbW9kZWwubmF2aWdhdGlvbi5zaG93Q2FuY2VsXCJcbiAgKGJ1dHRvbkNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgKGNsb3NlQnV0dG9uQ2xpY2tlZCk9XCJvbkNsb3NlQnV0dG9uQ2xpY2soKVwiXG4gIFttb2RlbF09XCJjYW5jZWxDb250ZW50XCJcbj5cbjwvc3ltcGhvbnktY29uZmlybWF0aW9uLW1vZGFsPlxuIl19
@@ -10,10 +10,10 @@ export class ChipComponent {
10
10
  }
11
11
  }
12
12
  ChipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
- ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: ChipComponent, selector: "symphony-chip", inputs: { chipLabel: "chipLabel", hasClose: "hasClose", hasError: "hasError" }, outputs: { removeChip: "removeChip" }, ngImport: i0, template: "<span\n class=\"sfx-d-inline-block sfx-chip-item\"\n [ngClass]=\"{ 'has-close': hasClose, 'has-error': hasError }\"\n>\n <i\n *ngIf=\"hasClose\"\n (click)=\"onRemoveClick()\"\n class=\"si-add sfx-cursor-pointer\"\n ></i>\n {{ chipLabel }}\n</span>\n", styles: [".sfx-chip-item{color:#000;padding:4px 15px;border-radius:25px;text-align:center;letter-spacing:-.4px;margin-right:5px;position:relative;border:1px solid #bababa}.sfx-chip-item:hover{background-color:#000;color:#fff}.sfx-chip-item.has-close{padding:4px 15px 4px 31px}.sfx-chip-item.has-error{border:1px solid #f0001e}.sfx-chip-item i{font-size:18px;position:absolute;left:10px;top:5px;transform:rotate(45deg)}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
13
+ ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: ChipComponent, selector: "symphony-chip", inputs: { chipLabel: "chipLabel", hasClose: "hasClose", hasError: "hasError" }, outputs: { removeChip: "removeChip" }, ngImport: i0, template: "<span\n class=\"sfx-d-inline-block sfx-chip-item\"\n [ngClass]=\"{ 'has-close': hasClose, 'has-error': hasError }\"\n>\n <i\n *ngIf=\"hasClose\"\n (click)=\"onRemoveClick()\"\n class=\"si-add sfx-cursor-pointer\"\n ></i>\n {{ chipLabel }}\n</span>\n", styles: [".sfx-chip-item{color:#000;padding:4px 15px;border-radius:25px;text-align:center;letter-spacing:-.4px;margin-right:5px;position:relative;border:1px solid #bababa}.sfx-chip-item:hover{background-color:#000;color:#fff}.sfx-chip-item.has-close{padding:4px 15px 4px 31px}.sfx-chip-item.has-error{border:1px solid #f0001e}.sfx-chip-item i{font-size:18px;position:absolute;left:10px;top:5px;transform:rotate(45deg);font-family:library-icons!important}.sfx-chip-item i:before{content:\"\\e927\"}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ChipComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'symphony-chip', encapsulation: ViewEncapsulation.None, template: "<span\n class=\"sfx-d-inline-block sfx-chip-item\"\n [ngClass]=\"{ 'has-close': hasClose, 'has-error': hasError }\"\n>\n <i\n *ngIf=\"hasClose\"\n (click)=\"onRemoveClick()\"\n class=\"si-add sfx-cursor-pointer\"\n ></i>\n {{ chipLabel }}\n</span>\n", styles: [".sfx-chip-item{color:#000;padding:4px 15px;border-radius:25px;text-align:center;letter-spacing:-.4px;margin-right:5px;position:relative;border:1px solid #bababa}.sfx-chip-item:hover{background-color:#000;color:#fff}.sfx-chip-item.has-close{padding:4px 15px 4px 31px}.sfx-chip-item.has-error{border:1px solid #f0001e}.sfx-chip-item i{font-size:18px;position:absolute;left:10px;top:5px;transform:rotate(45deg)}\n"] }]
16
+ args: [{ selector: 'symphony-chip', encapsulation: ViewEncapsulation.None, template: "<span\n class=\"sfx-d-inline-block sfx-chip-item\"\n [ngClass]=\"{ 'has-close': hasClose, 'has-error': hasError }\"\n>\n <i\n *ngIf=\"hasClose\"\n (click)=\"onRemoveClick()\"\n class=\"si-add sfx-cursor-pointer\"\n ></i>\n {{ chipLabel }}\n</span>\n", styles: [".sfx-chip-item{color:#000;padding:4px 15px;border-radius:25px;text-align:center;letter-spacing:-.4px;margin-right:5px;position:relative;border:1px solid #bababa}.sfx-chip-item:hover{background-color:#000;color:#fff}.sfx-chip-item.has-close{padding:4px 15px 4px 31px}.sfx-chip-item.has-error{border:1px solid #f0001e}.sfx-chip-item i{font-size:18px;position:absolute;left:10px;top:5px;transform:rotate(45deg);font-family:library-icons!important}.sfx-chip-item i:before{content:\"\\e927\"}\n"] }]
17
17
  }], ctorParameters: function () { return []; }, propDecorators: { chipLabel: [{
18
18
  type: Input
19
19
  }], hasClose: [{