@progressio_resources/gravity-design-system 2.6.9 → 2.6.11

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.
@@ -1,7 +1,8 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
- import * as i2 from "../gravity-icon/gravity-icon.component";
4
+ import * as i2 from "@angular/forms";
5
+ import * as i3 from "../gravity-icon/gravity-icon.component";
5
6
  export class GravityTextFieldNumberOnlyComponent {
6
7
  constructor(renderer) {
7
8
  this.renderer = renderer;
@@ -14,21 +15,7 @@ export class GravityTextFieldNumberOnlyComponent {
14
15
  this.inputValue = '';
15
16
  }
16
17
  clearInput() {
17
- this.changeInputValue(true);
18
- }
19
- changeInputValue(clearInput = false, textareaElement) {
20
- if (clearInput) {
21
- this.inputValue = '';
22
- }
23
- else {
24
- this.inputValue = textareaElement.value;
25
- }
26
- if (this.inputValue == '') {
27
- this.textFieldValueResponse.emit('');
28
- }
29
- else {
30
- this.textFieldValueResponse.emit(this.inputValue);
31
- }
18
+ this.inputValue = '';
32
19
  }
33
20
  getTextFieldStatus() {
34
21
  if (this.customState == 'default') {
@@ -67,6 +54,14 @@ export class GravityTextFieldNumberOnlyComponent {
67
54
  $event.preventDefault();
68
55
  }
69
56
  }
57
+ returnValue() {
58
+ if (this.inputValue == '') {
59
+ this.textFieldValueResponse.emit('');
60
+ }
61
+ else {
62
+ this.textFieldValueResponse.emit(this.inputValue);
63
+ }
64
+ }
70
65
  setFocus(textareaElement) {
71
66
  let containers = [this.digitContainer0, this.digitContainer1, this.digitContainer2, this.digitContainer3, this.digitContainer4, this.digitContainer5];
72
67
  for (let index = 0; index < containers.length; index++) {
@@ -85,11 +80,11 @@ export class GravityTextFieldNumberOnlyComponent {
85
80
  }
86
81
  }
87
82
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTextFieldNumberOnlyComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTextFieldNumberOnlyComponent, selector: "gravity-text-field-number-only", inputs: { currentLang: "currentLang", customState: "customState", cypressTag: "cypressTag", label: "label", required: "required", size: "size", supportText: "supportText" }, outputs: { textFieldValueResponse: "response" }, viewQueries: [{ propertyName: "digitContainer0", first: true, predicate: ["digitContainer0"], descendants: true }, { propertyName: "digitContainer1", first: true, predicate: ["digitContainer1"], descendants: true }, { propertyName: "digitContainer2", first: true, predicate: ["digitContainer2"], descendants: true }, { propertyName: "digitContainer3", first: true, predicate: ["digitContainer3"], descendants: true }, { propertyName: "digitContainer4", first: true, predicate: ["digitContainer4"], descendants: true }, { propertyName: "digitContainer5", first: true, predicate: ["digitContainer5"], descendants: true }], ngImport: i0, template: "<div class=\"{{size}}\" style=\"width: fit-content\">\n <label class=\"hr-label sm-bold {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\" *ngIf=\"label\">\n {{label}} <span *ngIf=\"required || getTextFieldStatus() == 'typed-error'\">*</span>\n </label>\n <div class=\"text-field-number-only-wrapper {{getTextFieldStatus()}}\">\n <textarea [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"customState == 'disabled' ? true : null\"\n [attr.readonly]=\"customState == 'readonly' ? true : null\"\n #textAreaElement\n\n autocomplete=\"off\"\n class=\"hr-label {{size}}-regular\"\n cols=\"6\"\n maxlength=\"6\"\n minlength=\"6\"\n inputmode=\"numeric\"\n placeholder=\"______\"\n rows=\"1\"\n type=\"text\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue(false, textAreaElement)\"\n (click)=\"setFocus(textAreaElement)\"\n (focus)=\"focusInput = true\"\n (keydown)=\"onKeyDownEvent($event)\"\n (keyup)=\"setFocus(textAreaElement)\"></textarea>\n <div class=\"digit-container\" #digitContainer0></div>\n <div class=\"digit-container\" #digitContainer1></div>\n <div class=\"digit-container\" #digitContainer2></div>\n <div class=\"digit-container\" #digitContainer3></div>\n <div class=\"digit-container\" #digitContainer4></div>\n <div class=\"digit-container\" #digitContainer5></div>\n <div class=\"overflow\"></div>\n </div>\n <p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\"\n *ngIf=\"supportText\">\n <gravity-icon [iconName]=\"'question-circle'\" *ngIf=\"getTextFieldStatus() == 'typed-error'\"\n [iconSize]=\"'sm-12'\"></gravity-icon>\n {{supportText}}\n </p>\n <p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\"\n *ngIf=\"!supportText && getTextFieldStatus() == 'active' && inputValue == '' && required\">\n {{currentLang == 'es' ? 'Requerido' : 'Required'}}\n </p>\n</div>\n", styles: [".border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}:host{display:block}label{color:var(--text-field-label-color);display:block;margin:var(--label-margin)}label.active,label.hover,label.autofill{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.typing{--text-field-label-color: var(--label-text-full-enabled-pressed-primary)}label.typed,label.typed-error{--text-field-label-color: var(--label-text-full-enabled-primary)}label.typed-error span{color:var(--negative-primary)}label.typed-positive{--text-field-label-color: var(--label-text-full-enabled-primary)}label.disabled{--text-field-label-color: var(--on-bg-disabled)}label.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}.text-field-number-only-wrapper{display:flex;grid-column-gap:var(--text-field-number-only-wrapper-grid-column-gap);--input-border-width: .5px;position:relative}textarea{background-color:transparent;border:0;color:var(--textarea-color);height:var(--textarea-height);letter-spacing:var(--textarea-letter-spacing)!important;line-height:1;resize:none;outline:0;padding:var(--textarea-padding);position:absolute;width:var(--textarea-width)}textarea::placeholder{color:var(--textarea-placeholder-color)}textarea.hide-caret{caret-color:transparent}.digit-container{background-color:var(--input-background-color);border:var(--input-border-width) solid var(--input-border-color);border-radius:.3125rem;height:var(--textarea-height);padding:var(--input-padding);width:var(--input-width)}.overflow{height:var(--textarea-height);left:100%;position:absolute;top:0;width:var(--input-width)}.text-field-number-only-wrapper.active{--input-background-color: var(--bg-field-empty-enabled-primary);--input-border-color: var(--outline-field-empty-enabled-primary);--textarea-color: var(--placeholder-empty-enabled-primary);--textarea-placeholder-color: var(--placeholder-empty-enabled-primary)}.text-field-number-only-wrapper.active:hover{--input-border-width: 1px}.text-field-number-only-wrapper.hover{--input-background-color: var(--bg-field-empty-enabled-primary);--input-border-color: var(--outline-field-empty-enabled-primary);--input-border-width: 1px;--textarea-color: var(--placeholder-empty-enabled-primary);--textarea-placeholder-color: var(--placeholder-empty-enabled-primary)}.text-field-number-only-wrapper.typing{--input-background-color: var(--bg-field-empty-enabled-primary);--input-border-color: var(--outline-field-full-enabled-primary);--input-border-width: 1px;--textarea-color: var(--placeholder-full-enabled-pressed-primary);--textarea-placeholder-color: var(--placeholder-full-enabled-pressed-primary)}.text-field-number-only-wrapper.typing .digit-container.focused{--input-border-color: var(--outline-field-full-enabled-pressed-primary);outline:var(--input-border-width) solid var(--input-border-color)}.text-field-number-only-wrapper.typed{--input-background-color: var(--bg-field-full-enabled-primary);--input-border-color: var(--outline-field-full-enabled-primary);--input-border-width: 1px;--textarea-color: var(--label-text-full-enabled-primary);--textarea-placeholder-color: var(--label-text-full-enabled-primary)}.text-field-number-only-wrapper.typed-error{--input-background-color: var(--bg-field-full-enabled-primary);--input-border-color: var(--negative-primary);--input-border-width: 1px;--textarea-color: var(--label-text-full-enabled-primary);--textarea-placeholder-color: var(--label-text-full-enabled-primary)}.text-field-number-only-wrapper.typed-positive{--input-background-color: var(--bg-field-full-enabled-primary);--input-border-color: var(--positive-primary);--input-border-width: 1px;--textarea-color: var(--label-text-full-enabled-primary);--textarea-placeholder-color: var(--label-text-full-enabled-primary)}.text-field-number-only-wrapper.disabled,.text-field-number-only-wrapper input[disabled]{--input-background-color: var(--bg-field-empty-disabled-primary);--input-border-color: var(--outline-disabled);--input-border-width: 1px;--textarea-color: var(--on-bg-disabled);--textarea-placeholder-color: var(--on-bg-disabled)}.text-field-number-only-wrapper.readonly,.text-field-number-only-wrapper input[readonly]{--input-background-color: var(--bg-field-full-read-only-primary);--input-border-color: var(--bg-field-full-read-only-primary);--input-border-width: 1px;--textarea-color: var(--input-text-full-read-only-primary);--textarea-placeholder-color: var(--input-text-full-read-only-primary)}.supporting-text{align-items:center;color:var(--supporting-text-color);display:flex;margin-left:0;margin-top:var(--supporting-text-margin-top)}.supporting-text.active,.supporting-text.hover,.supporting-text.autofill{--supporting-text-color: var(--label-text-empty-enabled-primary)}.supporting-text.typing{--supporting-text-color: var(--label-text-full-enabled-pressed-primary)}.supporting-text.typed{--supporting-text-color: var(--label-text-full-enabled-primary)}.supporting-text.typed-error{--supporting-text-color: var(--negative-primary)}.supporting-text.typed-positive{--supporting-text-color: var(--positive-primary)}.supporting-text.disabled{--supporting-text-color: var(--on-bg-disabled)}.supporting-text.readonly{--supporting-text-color: var(--label-text-full-read-only-primary)}.supporting-text gravity-icon{--icon-color: var(--negative-primary);--icon-height: var(--supporting-text-icon-size);--icon-width: var(--supporting-text-icon-size);margin-right:5px}\n", ".md{--label-margin: 0 0 8px;--input-padding: 11px 12px;--input-width: 35px;--supporting-text-icon-size: 9px;--supporting-text-margin-top: 8px;--text-field-number-only-wrapper-grid-column-gap: 5px;--textarea-height: 35px;--textarea-letter-spacing: 31.3px;--textarea-padding: 9px 12px;--textarea-width: 290px}.md .text-field-number-only-wrapper textarea:placeholder-shown{--textarea-letter-spacing: 32.5px}.sm{--label-margin: 0 0 5px;--input-padding: 8px 12px;--input-width: 33px;--supporting-text-icon-size: 9px;--supporting-text-margin-top: 5px;--text-field-number-only-wrapper-grid-column-gap: 4px;--textarea-height: 29px;--textarea-letter-spacing: 30.5px;--textarea-padding: var(--input-padding);--textarea-width: 260px}.sm .text-field-number-only-wrapper textarea:placeholder-shown{--textarea-letter-spacing: 31.5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "iconSize", "hoverIcon", "size"] }] }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTextFieldNumberOnlyComponent, selector: "gravity-text-field-number-only", inputs: { currentLang: "currentLang", customState: "customState", cypressTag: "cypressTag", label: "label", required: "required", size: "size", supportText: "supportText" }, outputs: { textFieldValueResponse: "response" }, viewQueries: [{ propertyName: "digitContainer0", first: true, predicate: ["digitContainer0"], descendants: true }, { propertyName: "digitContainer1", first: true, predicate: ["digitContainer1"], descendants: true }, { propertyName: "digitContainer2", first: true, predicate: ["digitContainer2"], descendants: true }, { propertyName: "digitContainer3", first: true, predicate: ["digitContainer3"], descendants: true }, { propertyName: "digitContainer4", first: true, predicate: ["digitContainer4"], descendants: true }, { propertyName: "digitContainer5", first: true, predicate: ["digitContainer5"], descendants: true }], ngImport: i0, template: "<div class=\"{{size}}\" style=\"width: fit-content\">\n <label class=\"hr-label sm-bold {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\" *ngIf=\"label\">\n {{label}} <span *ngIf=\"required || getTextFieldStatus() == 'typed-error'\">*</span>\n </label>\n <div class=\"text-field-number-only-wrapper {{getTextFieldStatus()}}\">\n <textarea [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"customState == 'disabled' ? true : null\"\n [attr.readonly]=\"customState == 'readonly' ? true : null\"\n #textAreaElement\n\n autocomplete=\"off\"\n class=\"hr-label {{size}}-regular\"\n cols=\"6\"\n maxlength=\"6\"\n minlength=\"6\"\n inputmode=\"numeric\"\n placeholder=\"______\"\n rows=\"1\"\n type=\"text\"\n\n [(ngModel)]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (click)=\"setFocus(textAreaElement)\"\n (focus)=\"focusInput = true\"\n (keydown)=\"onKeyDownEvent($event)\"\n (keyup)=\"setFocus(textAreaElement); returnValue()\"></textarea>\n <div class=\"digit-container\" #digitContainer0></div>\n <div class=\"digit-container\" #digitContainer1></div>\n <div class=\"digit-container\" #digitContainer2></div>\n <div class=\"digit-container\" #digitContainer3></div>\n <div class=\"digit-container\" #digitContainer4></div>\n <div class=\"digit-container\" #digitContainer5></div>\n <div class=\"overflow\"></div>\n </div>\n <p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\"\n *ngIf=\"supportText\">\n <gravity-icon [iconName]=\"'question-circle'\" *ngIf=\"getTextFieldStatus() == 'typed-error'\"\n [iconSize]=\"'sm-12'\"></gravity-icon>\n {{supportText}}\n </p>\n <p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\"\n *ngIf=\"!supportText && getTextFieldStatus() == 'active' && inputValue == '' && required\">\n {{currentLang == 'es' ? 'Requerido' : 'Required'}}\n </p>\n</div>\n", styles: [".border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}:host{display:block}label{color:var(--text-field-label-color);display:block;margin:var(--label-margin)}label.active,label.hover,label.autofill{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.typing{--text-field-label-color: var(--label-text-full-enabled-pressed-primary)}label.typed,label.typed-error{--text-field-label-color: var(--label-text-full-enabled-primary)}label.typed-error span{color:var(--negative-primary)}label.typed-positive{--text-field-label-color: var(--label-text-full-enabled-primary)}label.disabled{--text-field-label-color: var(--on-bg-disabled)}label.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}.text-field-number-only-wrapper{display:flex;grid-column-gap:var(--text-field-number-only-wrapper-grid-column-gap);--input-border-width: .5px;position:relative}textarea{background-color:transparent;border:0;color:var(--textarea-color);height:var(--textarea-height);letter-spacing:var(--textarea-letter-spacing)!important;line-height:1;resize:none;outline:0;padding:var(--textarea-padding);position:absolute;width:var(--textarea-width)}textarea::placeholder{color:var(--textarea-placeholder-color)}textarea.hide-caret{caret-color:transparent}.digit-container{background-color:var(--input-background-color);border:var(--input-border-width) solid var(--input-border-color);border-radius:.3125rem;height:var(--textarea-height);padding:var(--input-padding);width:var(--input-width)}.overflow{height:var(--textarea-height);left:100%;position:absolute;top:0;width:var(--input-width)}.text-field-number-only-wrapper.active{--input-background-color: var(--bg-field-empty-enabled-primary);--input-border-color: var(--outline-field-empty-enabled-primary);--textarea-color: var(--placeholder-empty-enabled-primary);--textarea-placeholder-color: var(--placeholder-empty-enabled-primary)}.text-field-number-only-wrapper.active:hover{--input-border-width: 1px}.text-field-number-only-wrapper.hover{--input-background-color: var(--bg-field-empty-enabled-primary);--input-border-color: var(--outline-field-empty-enabled-primary);--input-border-width: 1px;--textarea-color: var(--placeholder-empty-enabled-primary);--textarea-placeholder-color: var(--placeholder-empty-enabled-primary)}.text-field-number-only-wrapper.typing{--input-background-color: var(--bg-field-empty-enabled-primary);--input-border-color: var(--outline-field-full-enabled-primary);--input-border-width: 1px;--textarea-color: var(--placeholder-full-enabled-pressed-primary);--textarea-placeholder-color: var(--placeholder-full-enabled-pressed-primary)}.text-field-number-only-wrapper.typing .digit-container.focused{--input-border-color: var(--outline-field-full-enabled-pressed-primary);outline:var(--input-border-width) solid var(--input-border-color)}.text-field-number-only-wrapper.typed{--input-background-color: var(--bg-field-full-enabled-primary);--input-border-color: var(--outline-field-full-enabled-primary);--input-border-width: 1px;--textarea-color: var(--label-text-full-enabled-primary);--textarea-placeholder-color: var(--label-text-full-enabled-primary)}.text-field-number-only-wrapper.typed-error{--input-background-color: var(--bg-field-full-enabled-primary);--input-border-color: var(--negative-primary);--input-border-width: 1px;--textarea-color: var(--label-text-full-enabled-primary);--textarea-placeholder-color: var(--label-text-full-enabled-primary)}.text-field-number-only-wrapper.typed-positive{--input-background-color: var(--bg-field-full-enabled-primary);--input-border-color: var(--positive-primary);--input-border-width: 1px;--textarea-color: var(--label-text-full-enabled-primary);--textarea-placeholder-color: var(--label-text-full-enabled-primary)}.text-field-number-only-wrapper.disabled,.text-field-number-only-wrapper input[disabled]{--input-background-color: var(--bg-field-empty-disabled-primary);--input-border-color: var(--outline-disabled);--input-border-width: 1px;--textarea-color: var(--on-bg-disabled);--textarea-placeholder-color: var(--on-bg-disabled)}.text-field-number-only-wrapper.readonly,.text-field-number-only-wrapper input[readonly]{--input-background-color: var(--bg-field-full-read-only-primary);--input-border-color: var(--bg-field-full-read-only-primary);--input-border-width: 1px;--textarea-color: var(--input-text-full-read-only-primary);--textarea-placeholder-color: var(--input-text-full-read-only-primary)}.supporting-text{align-items:center;color:var(--supporting-text-color);display:flex;margin-left:0;margin-top:var(--supporting-text-margin-top)}.supporting-text.active,.supporting-text.hover,.supporting-text.autofill{--supporting-text-color: var(--label-text-empty-enabled-primary)}.supporting-text.typing{--supporting-text-color: var(--label-text-full-enabled-pressed-primary)}.supporting-text.typed{--supporting-text-color: var(--label-text-full-enabled-primary)}.supporting-text.typed-error{--supporting-text-color: var(--negative-primary)}.supporting-text.typed-positive{--supporting-text-color: var(--positive-primary)}.supporting-text.disabled{--supporting-text-color: var(--on-bg-disabled)}.supporting-text.readonly{--supporting-text-color: var(--label-text-full-read-only-primary)}.supporting-text gravity-icon{--icon-color: var(--negative-primary);--icon-height: var(--supporting-text-icon-size);--icon-width: var(--supporting-text-icon-size);margin-right:5px}\n", ".md{--label-margin: 0 0 8px;--input-padding: 11px 12px;--input-width: 35px;--supporting-text-icon-size: 9px;--supporting-text-margin-top: 8px;--text-field-number-only-wrapper-grid-column-gap: 5px;--textarea-height: 35px;--textarea-letter-spacing: 31.3px;--textarea-padding: 9px 12px;--textarea-width: 290px}.md .text-field-number-only-wrapper textarea:placeholder-shown{--textarea-letter-spacing: 32.5px}.sm{--label-margin: 0 0 5px;--input-padding: 8px 12px;--input-width: 33px;--supporting-text-icon-size: 9px;--supporting-text-margin-top: 5px;--text-field-number-only-wrapper-grid-column-gap: 4px;--textarea-height: 29px;--textarea-letter-spacing: 30.5px;--textarea-padding: var(--input-padding);--textarea-width: 260px}.sm .text-field-number-only-wrapper textarea:placeholder-shown{--textarea-letter-spacing: 31.5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "iconSize", "hoverIcon", "size"] }] }); }
89
84
  }
90
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTextFieldNumberOnlyComponent, decorators: [{
91
86
  type: Component,
92
- args: [{ selector: 'gravity-text-field-number-only', template: "<div class=\"{{size}}\" style=\"width: fit-content\">\n <label class=\"hr-label sm-bold {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\" *ngIf=\"label\">\n {{label}} <span *ngIf=\"required || getTextFieldStatus() == 'typed-error'\">*</span>\n </label>\n <div class=\"text-field-number-only-wrapper {{getTextFieldStatus()}}\">\n <textarea [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"customState == 'disabled' ? true : null\"\n [attr.readonly]=\"customState == 'readonly' ? true : null\"\n #textAreaElement\n\n autocomplete=\"off\"\n class=\"hr-label {{size}}-regular\"\n cols=\"6\"\n maxlength=\"6\"\n minlength=\"6\"\n inputmode=\"numeric\"\n placeholder=\"______\"\n rows=\"1\"\n type=\"text\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue(false, textAreaElement)\"\n (click)=\"setFocus(textAreaElement)\"\n (focus)=\"focusInput = true\"\n (keydown)=\"onKeyDownEvent($event)\"\n (keyup)=\"setFocus(textAreaElement)\"></textarea>\n <div class=\"digit-container\" #digitContainer0></div>\n <div class=\"digit-container\" #digitContainer1></div>\n <div class=\"digit-container\" #digitContainer2></div>\n <div class=\"digit-container\" #digitContainer3></div>\n <div class=\"digit-container\" #digitContainer4></div>\n <div class=\"digit-container\" #digitContainer5></div>\n <div class=\"overflow\"></div>\n </div>\n <p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\"\n *ngIf=\"supportText\">\n <gravity-icon [iconName]=\"'question-circle'\" *ngIf=\"getTextFieldStatus() == 'typed-error'\"\n [iconSize]=\"'sm-12'\"></gravity-icon>\n {{supportText}}\n </p>\n <p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\"\n *ngIf=\"!supportText && getTextFieldStatus() == 'active' && inputValue == '' && required\">\n {{currentLang == 'es' ? 'Requerido' : 'Required'}}\n </p>\n</div>\n", styles: [".border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}:host{display:block}label{color:var(--text-field-label-color);display:block;margin:var(--label-margin)}label.active,label.hover,label.autofill{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.typing{--text-field-label-color: var(--label-text-full-enabled-pressed-primary)}label.typed,label.typed-error{--text-field-label-color: var(--label-text-full-enabled-primary)}label.typed-error span{color:var(--negative-primary)}label.typed-positive{--text-field-label-color: var(--label-text-full-enabled-primary)}label.disabled{--text-field-label-color: var(--on-bg-disabled)}label.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}.text-field-number-only-wrapper{display:flex;grid-column-gap:var(--text-field-number-only-wrapper-grid-column-gap);--input-border-width: .5px;position:relative}textarea{background-color:transparent;border:0;color:var(--textarea-color);height:var(--textarea-height);letter-spacing:var(--textarea-letter-spacing)!important;line-height:1;resize:none;outline:0;padding:var(--textarea-padding);position:absolute;width:var(--textarea-width)}textarea::placeholder{color:var(--textarea-placeholder-color)}textarea.hide-caret{caret-color:transparent}.digit-container{background-color:var(--input-background-color);border:var(--input-border-width) solid var(--input-border-color);border-radius:.3125rem;height:var(--textarea-height);padding:var(--input-padding);width:var(--input-width)}.overflow{height:var(--textarea-height);left:100%;position:absolute;top:0;width:var(--input-width)}.text-field-number-only-wrapper.active{--input-background-color: var(--bg-field-empty-enabled-primary);--input-border-color: var(--outline-field-empty-enabled-primary);--textarea-color: var(--placeholder-empty-enabled-primary);--textarea-placeholder-color: var(--placeholder-empty-enabled-primary)}.text-field-number-only-wrapper.active:hover{--input-border-width: 1px}.text-field-number-only-wrapper.hover{--input-background-color: var(--bg-field-empty-enabled-primary);--input-border-color: var(--outline-field-empty-enabled-primary);--input-border-width: 1px;--textarea-color: var(--placeholder-empty-enabled-primary);--textarea-placeholder-color: var(--placeholder-empty-enabled-primary)}.text-field-number-only-wrapper.typing{--input-background-color: var(--bg-field-empty-enabled-primary);--input-border-color: var(--outline-field-full-enabled-primary);--input-border-width: 1px;--textarea-color: var(--placeholder-full-enabled-pressed-primary);--textarea-placeholder-color: var(--placeholder-full-enabled-pressed-primary)}.text-field-number-only-wrapper.typing .digit-container.focused{--input-border-color: var(--outline-field-full-enabled-pressed-primary);outline:var(--input-border-width) solid var(--input-border-color)}.text-field-number-only-wrapper.typed{--input-background-color: var(--bg-field-full-enabled-primary);--input-border-color: var(--outline-field-full-enabled-primary);--input-border-width: 1px;--textarea-color: var(--label-text-full-enabled-primary);--textarea-placeholder-color: var(--label-text-full-enabled-primary)}.text-field-number-only-wrapper.typed-error{--input-background-color: var(--bg-field-full-enabled-primary);--input-border-color: var(--negative-primary);--input-border-width: 1px;--textarea-color: var(--label-text-full-enabled-primary);--textarea-placeholder-color: var(--label-text-full-enabled-primary)}.text-field-number-only-wrapper.typed-positive{--input-background-color: var(--bg-field-full-enabled-primary);--input-border-color: var(--positive-primary);--input-border-width: 1px;--textarea-color: var(--label-text-full-enabled-primary);--textarea-placeholder-color: var(--label-text-full-enabled-primary)}.text-field-number-only-wrapper.disabled,.text-field-number-only-wrapper input[disabled]{--input-background-color: var(--bg-field-empty-disabled-primary);--input-border-color: var(--outline-disabled);--input-border-width: 1px;--textarea-color: var(--on-bg-disabled);--textarea-placeholder-color: var(--on-bg-disabled)}.text-field-number-only-wrapper.readonly,.text-field-number-only-wrapper input[readonly]{--input-background-color: var(--bg-field-full-read-only-primary);--input-border-color: var(--bg-field-full-read-only-primary);--input-border-width: 1px;--textarea-color: var(--input-text-full-read-only-primary);--textarea-placeholder-color: var(--input-text-full-read-only-primary)}.supporting-text{align-items:center;color:var(--supporting-text-color);display:flex;margin-left:0;margin-top:var(--supporting-text-margin-top)}.supporting-text.active,.supporting-text.hover,.supporting-text.autofill{--supporting-text-color: var(--label-text-empty-enabled-primary)}.supporting-text.typing{--supporting-text-color: var(--label-text-full-enabled-pressed-primary)}.supporting-text.typed{--supporting-text-color: var(--label-text-full-enabled-primary)}.supporting-text.typed-error{--supporting-text-color: var(--negative-primary)}.supporting-text.typed-positive{--supporting-text-color: var(--positive-primary)}.supporting-text.disabled{--supporting-text-color: var(--on-bg-disabled)}.supporting-text.readonly{--supporting-text-color: var(--label-text-full-read-only-primary)}.supporting-text gravity-icon{--icon-color: var(--negative-primary);--icon-height: var(--supporting-text-icon-size);--icon-width: var(--supporting-text-icon-size);margin-right:5px}\n", ".md{--label-margin: 0 0 8px;--input-padding: 11px 12px;--input-width: 35px;--supporting-text-icon-size: 9px;--supporting-text-margin-top: 8px;--text-field-number-only-wrapper-grid-column-gap: 5px;--textarea-height: 35px;--textarea-letter-spacing: 31.3px;--textarea-padding: 9px 12px;--textarea-width: 290px}.md .text-field-number-only-wrapper textarea:placeholder-shown{--textarea-letter-spacing: 32.5px}.sm{--label-margin: 0 0 5px;--input-padding: 8px 12px;--input-width: 33px;--supporting-text-icon-size: 9px;--supporting-text-margin-top: 5px;--text-field-number-only-wrapper-grid-column-gap: 4px;--textarea-height: 29px;--textarea-letter-spacing: 30.5px;--textarea-padding: var(--input-padding);--textarea-width: 260px}.sm .text-field-number-only-wrapper textarea:placeholder-shown{--textarea-letter-spacing: 31.5px}\n"] }]
87
+ args: [{ selector: 'gravity-text-field-number-only', template: "<div class=\"{{size}}\" style=\"width: fit-content\">\n <label class=\"hr-label sm-bold {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\" *ngIf=\"label\">\n {{label}} <span *ngIf=\"required || getTextFieldStatus() == 'typed-error'\">*</span>\n </label>\n <div class=\"text-field-number-only-wrapper {{getTextFieldStatus()}}\">\n <textarea [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"customState == 'disabled' ? true : null\"\n [attr.readonly]=\"customState == 'readonly' ? true : null\"\n #textAreaElement\n\n autocomplete=\"off\"\n class=\"hr-label {{size}}-regular\"\n cols=\"6\"\n maxlength=\"6\"\n minlength=\"6\"\n inputmode=\"numeric\"\n placeholder=\"______\"\n rows=\"1\"\n type=\"text\"\n\n [(ngModel)]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (click)=\"setFocus(textAreaElement)\"\n (focus)=\"focusInput = true\"\n (keydown)=\"onKeyDownEvent($event)\"\n (keyup)=\"setFocus(textAreaElement); returnValue()\"></textarea>\n <div class=\"digit-container\" #digitContainer0></div>\n <div class=\"digit-container\" #digitContainer1></div>\n <div class=\"digit-container\" #digitContainer2></div>\n <div class=\"digit-container\" #digitContainer3></div>\n <div class=\"digit-container\" #digitContainer4></div>\n <div class=\"digit-container\" #digitContainer5></div>\n <div class=\"overflow\"></div>\n </div>\n <p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\"\n *ngIf=\"supportText\">\n <gravity-icon [iconName]=\"'question-circle'\" *ngIf=\"getTextFieldStatus() == 'typed-error'\"\n [iconSize]=\"'sm-12'\"></gravity-icon>\n {{supportText}}\n </p>\n <p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\"\n *ngIf=\"!supportText && getTextFieldStatus() == 'active' && inputValue == '' && required\">\n {{currentLang == 'es' ? 'Requerido' : 'Required'}}\n </p>\n</div>\n", styles: [".border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}:host{display:block}label{color:var(--text-field-label-color);display:block;margin:var(--label-margin)}label.active,label.hover,label.autofill{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.typing{--text-field-label-color: var(--label-text-full-enabled-pressed-primary)}label.typed,label.typed-error{--text-field-label-color: var(--label-text-full-enabled-primary)}label.typed-error span{color:var(--negative-primary)}label.typed-positive{--text-field-label-color: var(--label-text-full-enabled-primary)}label.disabled{--text-field-label-color: var(--on-bg-disabled)}label.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}.text-field-number-only-wrapper{display:flex;grid-column-gap:var(--text-field-number-only-wrapper-grid-column-gap);--input-border-width: .5px;position:relative}textarea{background-color:transparent;border:0;color:var(--textarea-color);height:var(--textarea-height);letter-spacing:var(--textarea-letter-spacing)!important;line-height:1;resize:none;outline:0;padding:var(--textarea-padding);position:absolute;width:var(--textarea-width)}textarea::placeholder{color:var(--textarea-placeholder-color)}textarea.hide-caret{caret-color:transparent}.digit-container{background-color:var(--input-background-color);border:var(--input-border-width) solid var(--input-border-color);border-radius:.3125rem;height:var(--textarea-height);padding:var(--input-padding);width:var(--input-width)}.overflow{height:var(--textarea-height);left:100%;position:absolute;top:0;width:var(--input-width)}.text-field-number-only-wrapper.active{--input-background-color: var(--bg-field-empty-enabled-primary);--input-border-color: var(--outline-field-empty-enabled-primary);--textarea-color: var(--placeholder-empty-enabled-primary);--textarea-placeholder-color: var(--placeholder-empty-enabled-primary)}.text-field-number-only-wrapper.active:hover{--input-border-width: 1px}.text-field-number-only-wrapper.hover{--input-background-color: var(--bg-field-empty-enabled-primary);--input-border-color: var(--outline-field-empty-enabled-primary);--input-border-width: 1px;--textarea-color: var(--placeholder-empty-enabled-primary);--textarea-placeholder-color: var(--placeholder-empty-enabled-primary)}.text-field-number-only-wrapper.typing{--input-background-color: var(--bg-field-empty-enabled-primary);--input-border-color: var(--outline-field-full-enabled-primary);--input-border-width: 1px;--textarea-color: var(--placeholder-full-enabled-pressed-primary);--textarea-placeholder-color: var(--placeholder-full-enabled-pressed-primary)}.text-field-number-only-wrapper.typing .digit-container.focused{--input-border-color: var(--outline-field-full-enabled-pressed-primary);outline:var(--input-border-width) solid var(--input-border-color)}.text-field-number-only-wrapper.typed{--input-background-color: var(--bg-field-full-enabled-primary);--input-border-color: var(--outline-field-full-enabled-primary);--input-border-width: 1px;--textarea-color: var(--label-text-full-enabled-primary);--textarea-placeholder-color: var(--label-text-full-enabled-primary)}.text-field-number-only-wrapper.typed-error{--input-background-color: var(--bg-field-full-enabled-primary);--input-border-color: var(--negative-primary);--input-border-width: 1px;--textarea-color: var(--label-text-full-enabled-primary);--textarea-placeholder-color: var(--label-text-full-enabled-primary)}.text-field-number-only-wrapper.typed-positive{--input-background-color: var(--bg-field-full-enabled-primary);--input-border-color: var(--positive-primary);--input-border-width: 1px;--textarea-color: var(--label-text-full-enabled-primary);--textarea-placeholder-color: var(--label-text-full-enabled-primary)}.text-field-number-only-wrapper.disabled,.text-field-number-only-wrapper input[disabled]{--input-background-color: var(--bg-field-empty-disabled-primary);--input-border-color: var(--outline-disabled);--input-border-width: 1px;--textarea-color: var(--on-bg-disabled);--textarea-placeholder-color: var(--on-bg-disabled)}.text-field-number-only-wrapper.readonly,.text-field-number-only-wrapper input[readonly]{--input-background-color: var(--bg-field-full-read-only-primary);--input-border-color: var(--bg-field-full-read-only-primary);--input-border-width: 1px;--textarea-color: var(--input-text-full-read-only-primary);--textarea-placeholder-color: var(--input-text-full-read-only-primary)}.supporting-text{align-items:center;color:var(--supporting-text-color);display:flex;margin-left:0;margin-top:var(--supporting-text-margin-top)}.supporting-text.active,.supporting-text.hover,.supporting-text.autofill{--supporting-text-color: var(--label-text-empty-enabled-primary)}.supporting-text.typing{--supporting-text-color: var(--label-text-full-enabled-pressed-primary)}.supporting-text.typed{--supporting-text-color: var(--label-text-full-enabled-primary)}.supporting-text.typed-error{--supporting-text-color: var(--negative-primary)}.supporting-text.typed-positive{--supporting-text-color: var(--positive-primary)}.supporting-text.disabled{--supporting-text-color: var(--on-bg-disabled)}.supporting-text.readonly{--supporting-text-color: var(--label-text-full-read-only-primary)}.supporting-text gravity-icon{--icon-color: var(--negative-primary);--icon-height: var(--supporting-text-icon-size);--icon-width: var(--supporting-text-icon-size);margin-right:5px}\n", ".md{--label-margin: 0 0 8px;--input-padding: 11px 12px;--input-width: 35px;--supporting-text-icon-size: 9px;--supporting-text-margin-top: 8px;--text-field-number-only-wrapper-grid-column-gap: 5px;--textarea-height: 35px;--textarea-letter-spacing: 31.3px;--textarea-padding: 9px 12px;--textarea-width: 290px}.md .text-field-number-only-wrapper textarea:placeholder-shown{--textarea-letter-spacing: 32.5px}.sm{--label-margin: 0 0 5px;--input-padding: 8px 12px;--input-width: 33px;--supporting-text-icon-size: 9px;--supporting-text-margin-top: 5px;--text-field-number-only-wrapper-grid-column-gap: 4px;--textarea-height: 29px;--textarea-letter-spacing: 30.5px;--textarea-padding: var(--input-padding);--textarea-width: 260px}.sm .text-field-number-only-wrapper textarea:placeholder-shown{--textarea-letter-spacing: 31.5px}\n"] }]
93
88
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { textFieldValueResponse: [{
94
89
  type: Output,
95
90
  args: ['response']
@@ -126,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
126
121
  }], supportText: [{
127
122
  type: Input
128
123
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10ZXh0LWZpZWxkLW51bWJlci1vbmx5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS10ZXh0LWZpZWxkLW51bWJlci1vbmx5L2dyYXZpdHktdGV4dC1maWVsZC1udW1iZXItb25seS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGV4dC1maWVsZC1udW1iZXItb25seS9ncmF2aXR5LXRleHQtZmllbGQtbnVtYmVyLW9ubHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7QUFPM0YsTUFBTSxPQUFPLG1DQUFtQztJQXFCOUMsWUFBNkIsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXBCckIsMkJBQXNCLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFRN0YsWUFBWTtRQUNJLGdCQUFXLEdBQVcsSUFBSSxDQUFDO1FBQzNCLGdCQUFXLEdBQXFILFNBQVMsQ0FBQztRQUkxSSxTQUFJLEdBQWdCLElBQUksQ0FBQztRQUdsQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGVBQVUsR0FBVyxFQUFFLENBQUM7SUFHL0IsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLGFBQXNCLEtBQUssRUFBRSxlQUFxQztRQUN4RixJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLEdB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QWU7c0JBQXJFLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNVLGVBQWU7c0JBQXJFLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNVLGVBQWU7c0JBQXJFLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNVLGVBQWU7c0JBQXJFLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUc3QixXQUFXO3NCQUExQixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdncmF2aXR5LXRleHQtZmllbGQtbnVtYmVyLW9ubHknLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3Jhdml0eS10ZXh0LWZpZWxkLW51bWJlci1vbmx5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3Jhdml0eS10ZXh0LWZpZWxkLW51bWJlci1vbmx5LmNvbXBvbmVudC5zY3NzJywgJy4vZ3Jhdml0eS10ZXh0LWZpZWxkLW51bWJlci1vbmx5LnZhcmlhYmxlcy5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR3Jhdml0eVRleHRGaWVsZE51bWJlck9ubHlDb21wb25lbnQge1xuICBAT3V0cHV0KCdyZXNwb25zZScpIHB1YmxpYyB0ZXh0RmllbGRWYWx1ZVJlc3BvbnNlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQFZpZXdDaGlsZCgnZGlnaXRDb250YWluZXIwJywge3N0YXRpYzogZmFsc2V9KSBwcml2YXRlIGRpZ2l0Q29udGFpbmVyMDogYW55O1xuICBAVmlld0NoaWxkKCdkaWdpdENvbnRhaW5lcjEnLCB7c3RhdGljOiBmYWxzZX0pIHByaXZhdGUgZGlnaXRDb250YWluZXIxOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ2RpZ2l0Q29udGFpbmVyMicsIHtzdGF0aWM6IGZhbHNlfSkgcHJpdmF0ZSBkaWdpdENvbnRhaW5lcjI6IGFueTtcbiAgQFZpZXdDaGlsZCgnZGlnaXRDb250YWluZXIzJywge3N0YXRpYzogZmFsc2V9KSBwcml2YXRlIGRpZ2l0Q29udGFpbmVyMzogYW55O1xuICBAVmlld0NoaWxkKCdkaWdpdENvbnRhaW5lcjQnLCB7c3RhdGljOiBmYWxzZX0pIHByaXZhdGUgZGlnaXRDb250YWluZXI0OiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ2RpZ2l0Q29udGFpbmVyNScsIHtzdGF0aWM6IGZhbHNlfSkgcHJpdmF0ZSBkaWdpdENvbnRhaW5lcjU6IGFueTtcblxuICAvLyBDb21wb25lbnRcbiAgQElucHV0KCkgcHVibGljIGN1cnJlbnRMYW5nOiBzdHJpbmcgPSAnZW4nO1xuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tU3RhdGU6ICdkZWZhdWx0JyB8ICdhY3RpdmUnIHwgJ2hvdmVyJyB8ICd0eXBpbmcnIHwgJ3R5cGVkJyB8ICd0eXBlZC1lcnJvcicgfCAndHlwZWQtcG9zaXRpdmUnIHwgJ2Rpc2FibGVkJyB8ICdyZWFkb25seScgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIHB1YmxpYyBjeXByZXNzVGFnOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyBzaXplOiAnc20nIHwgJ21kJyA9ICdtZCc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdXBwb3J0VGV4dDogc3RyaW5nO1xuXG4gIHB1YmxpYyBmb2N1c0lucHV0OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpbnB1dFZhbHVlOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlSW5wdXRWYWx1ZSh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VJbnB1dFZhbHVlKGNsZWFySW5wdXQ6IGJvb2xlYW4gPSBmYWxzZSwgdGV4dGFyZWFFbGVtZW50PzogSFRNTFRleHRBcmVhRWxlbWVudCk6IHZvaWQge1xuICAgIGlmIChjbGVhcklucHV0KSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdGV4dGFyZWFFbGVtZW50LnZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlucHV0VmFsdWUgPT0gJycpIHtcbiAgICAgIHRoaXMudGV4dEZpZWxkVmFsdWVSZXNwb25zZS5lbWl0KCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50ZXh0RmllbGRWYWx1ZVJlc3BvbnNlLmVtaXQodGhpcy5pbnB1dFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VGV4dEZpZWxkU3RhdHVzKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY3VzdG9tU3RhdGUgPT0gJ2RlZmF1bHQnKSB7XG4gICAgICBpZiAoIXRoaXMuZm9jdXNJbnB1dCAmJiAhdGhpcy5pbnB1dFZhbHVlKSB7XG4gICAgICAgIHJldHVybiAnYWN0aXZlJztcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuZm9jdXNJbnB1dCAmJiB0aGlzLmlucHV0VmFsdWUpIHtcbiAgICAgICAgcmV0dXJuICd0eXBlZCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gJ3R5cGluZyc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmN1c3RvbVN0YXRlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbktleURvd25FdmVudCgkZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgbmF2aWdhdGlvbktleXMgPSBbJ0JhY2tzcGFjZScsICdEZWxldGUnLCAnVGFiJywgJ0VzY2FwZScsICdFbnRlcicsICdIb21lJywgJ0VuZCcsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdDbGVhcicsICdDb3B5JywgJ1Bhc3RlJ107XG5cbiAgICBpZiAoXG4gICAgICBuYXZpZ2F0aW9uS2V5cy5pbmRleE9mKCRldmVudC5rZXkpID4gLTEgfHwgLy8gQWxsb3c6IG5hdmlnYXRpb24ga2V5czogYmFja3NwYWNlLCBkZWxldGUsIGFycm93cyBldGMuXG4gICAgICAoJGV2ZW50LmtleSA9PT0gJ2EnICYmICRldmVudC5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtBXG4gICAgICAoJGV2ZW50LmtleSA9PT0gJ2MnICYmICRldmVudC5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtDXG4gICAgICAoJGV2ZW50LmtleSA9PT0gJ3YnICYmICRldmVudC5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtWXG4gICAgICAoJGV2ZW50LmtleSA9PT0gJ3gnICYmICRldmVudC5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtYXG4gICAgICAoJGV2ZW50LmtleSA9PT0gJ2EnICYmICRldmVudC5tZXRhS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ21kK0EgKE1hYylcbiAgICAgICgkZXZlbnQua2V5ID09PSAnYycgJiYgJGV2ZW50Lm1ldGFLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDbWQrQyAoTWFjKVxuICAgICAgKCRldmVudC5rZXkgPT09ICd2JyAmJiAkZXZlbnQubWV0YUtleSA9PT0gdHJ1ZSkgfHwgLy8gQWxsb3c6IENtZCtWIChNYWMpXG4gICAgICAoJGV2ZW50LmtleSA9PT0gJ3gnICYmICRldmVudC5tZXRhS2V5ID09PSB0cnVlKSAvLyBBbGxvdzogQ21kK1ggKE1hYylcbiAgICApIHtcbiAgICAgIC8vIGxldCBpdCBoYXBwZW4sIGRvbid0IGRvIGFueXRoaW5nXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIHRoYXQgaXQgaXMgYSBudW1iZXIgYW5kIHN0b3AgdGhlIGtleXByZXNzXG4gICAgaWYgKFxuICAgICAgKCRldmVudC5zaGlmdEtleSB8fCAoJGV2ZW50LmtleUNvZGUgPCA0OCB8fCAkZXZlbnQua2V5Q29kZSA+IDU3KSkgJiZcbiAgICAgICgkZXZlbnQua2V5Q29kZSA8IDk2IHx8ICRldmVudC5rZXlDb2RlID4gMTA1KVxuICAgICkge1xuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEZvY3VzKHRleHRhcmVhRWxlbWVudDogSFRNTFRleHRBcmVhRWxlbWVudCk6IHZvaWQge1xuICAgIGxldCBjb250YWluZXJzOiBhbnlbXSA9IFt0aGlzLmRpZ2l0Q29udGFpbmVyMCwgdGhpcy5kaWdpdENvbnRhaW5lcjEsIHRoaXMuZGlnaXRDb250YWluZXIyLCB0aGlzLmRpZ2l0Q29udGFpbmVyMywgdGhpcy5kaWdpdENvbnRhaW5lcjQsIHRoaXMuZGlnaXRDb250YWluZXI1XTtcblxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjb250YWluZXJzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgaWYgKGluZGV4ID09IHRleHRhcmVhRWxlbWVudC5zZWxlY3Rpb25TdGFydCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGNvbnRhaW5lcnNbaW5kZXhdLm5hdGl2ZUVsZW1lbnQsICdmb2N1c2VkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGNvbnRhaW5lcnNbaW5kZXhdLm5hdGl2ZUVsZW1lbnQsICdmb2N1c2VkJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRleHRhcmVhRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PSA2KSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRleHRhcmVhRWxlbWVudCwgJ2hpZGUtY2FyZXQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0ZXh0YXJlYUVsZW1lbnQsICdoaWRlLWNhcmV0Jyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwie3tzaXplfX1cIiBzdHlsZT1cIndpZHRoOiBmaXQtY29udGVudFwiPlxuICA8bGFiZWwgY2xhc3M9XCJoci1sYWJlbCBzbS1ib2xkIHt7Z2V0VGV4dEZpZWxkU3RhdHVzKCl9fVwiIFtjbGFzcy5jdXN0b20tbGFiZWwtc2l6ZV09XCJzaXplID09ICdzbSdcIiAqbmdJZj1cImxhYmVsXCI+XG4gICAge3tsYWJlbH19IDxzcGFuICpuZ0lmPVwicmVxdWlyZWQgfHwgZ2V0VGV4dEZpZWxkU3RhdHVzKCkgPT0gJ3R5cGVkLWVycm9yJ1wiPio8L3NwYW4+XG4gIDwvbGFiZWw+XG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LWZpZWxkLW51bWJlci1vbmx5LXdyYXBwZXIge3tnZXRUZXh0RmllbGRTdGF0dXMoKX19XCI+XG4gICAgPHRleHRhcmVhIFthdHRyLmRhdGEtY3ldPVwiY3lwcmVzc1RhZ1wiXG4gICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImN1c3RvbVN0YXRlID09ICdkaXNhYmxlZCcgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICAgICAgIFthdHRyLnJlYWRvbmx5XT1cImN1c3RvbVN0YXRlID09ICdyZWFkb25seScgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICAgICAgICN0ZXh0QXJlYUVsZW1lbnRcblxuICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICBjbGFzcz1cImhyLWxhYmVsIHt7c2l6ZX19LXJlZ3VsYXJcIlxuICAgICAgICAgICAgICBjb2xzPVwiNlwiXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjZcIlxuICAgICAgICAgICAgICBtaW5sZW5ndGg9XCI2XCJcbiAgICAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiX19fX19fXCJcbiAgICAgICAgICAgICAgcm93cz1cIjFcIlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG5cbiAgICAgICAgICAgICAgKGJsdXIpPVwiZm9jdXNJbnB1dCA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VJbnB1dFZhbHVlKGZhbHNlLCB0ZXh0QXJlYUVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEZvY3VzKHRleHRBcmVhRWxlbWVudClcIlxuICAgICAgICAgICAgICAoZm9jdXMpPVwiZm9jdXNJbnB1dCA9IHRydWVcIlxuICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd25FdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGtleXVwKT1cInNldEZvY3VzKHRleHRBcmVhRWxlbWVudClcIj48L3RleHRhcmVhPlxuICAgIDxkaXYgY2xhc3M9XCJkaWdpdC1jb250YWluZXJcIiAjZGlnaXRDb250YWluZXIwPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkaWdpdC1jb250YWluZXJcIiAjZGlnaXRDb250YWluZXIxPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkaWdpdC1jb250YWluZXJcIiAjZGlnaXRDb250YWluZXIyPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkaWdpdC1jb250YWluZXJcIiAjZGlnaXRDb250YWluZXIzPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkaWdpdC1jb250YWluZXJcIiAjZGlnaXRDb250YWluZXI0PjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkaWdpdC1jb250YWluZXJcIiAjZGlnaXRDb250YWluZXI1PjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvd1wiPjwvZGl2PlxuICA8L2Rpdj5cbiAgPHAgY2xhc3M9XCJoci1sYWJlbCBzbS1yZWd1bGFyIHN1cHBvcnRpbmctdGV4dCB7e2dldFRleHRGaWVsZFN0YXR1cygpfX1cIiBbY2xhc3MuY3VzdG9tLWxhYmVsLXNpemVdPVwic2l6ZSA9PSAnc20nXCJcbiAgICAgKm5nSWY9XCJzdXBwb3J0VGV4dFwiPlxuICAgIDxncmF2aXR5LWljb24gW2ljb25OYW1lXT1cIidxdWVzdGlvbi1jaXJjbGUnXCIgKm5nSWY9XCJnZXRUZXh0RmllbGRTdGF0dXMoKSA9PSAndHlwZWQtZXJyb3InXCJcbiAgICAgICAgICAgICAgICAgIFtpY29uU2l6ZV09XCInc20tMTInXCI+PC9ncmF2aXR5LWljb24+XG4gICAge3tzdXBwb3J0VGV4dH19XG4gIDwvcD5cbiAgPHAgY2xhc3M9XCJoci1sYWJlbCBzbS1yZWd1bGFyIHN1cHBvcnRpbmctdGV4dCB7e2dldFRleHRGaWVsZFN0YXR1cygpfX1cIiBbY2xhc3MuY3VzdG9tLWxhYmVsLXNpemVdPVwic2l6ZSA9PSAnc20nXCJcbiAgICAgKm5nSWY9XCIhc3VwcG9ydFRleHQgJiYgZ2V0VGV4dEZpZWxkU3RhdHVzKCkgPT0gJ2FjdGl2ZScgJiYgaW5wdXRWYWx1ZSA9PSAnJyAmJiByZXF1aXJlZFwiPlxuICAgIHt7Y3VycmVudExhbmcgPT0gJ2VzJyA/ICdSZXF1ZXJpZG8nIDogJ1JlcXVpcmVkJ319XG4gIDwvcD5cbjwvZGl2PlxuIl19
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10ZXh0LWZpZWxkLW51bWJlci1vbmx5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS10ZXh0LWZpZWxkLW51bWJlci1vbmx5L2dyYXZpdHktdGV4dC1maWVsZC1udW1iZXItb25seS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGV4dC1maWVsZC1udW1iZXItb25seS9ncmF2aXR5LXRleHQtZmllbGQtbnVtYmVyLW9ubHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7O0FBTzNGLE1BQU0sT0FBTyxtQ0FBbUM7SUFxQjlDLFlBQTZCLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFwQnJCLDJCQUFzQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBUTdGLFlBQVk7UUFDSSxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUMzQixnQkFBVyxHQUFxSCxTQUFTLENBQUM7UUFJMUksU0FBSSxHQUFnQixJQUFJLENBQUM7UUFHbEMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixlQUFVLEdBQVcsRUFBRSxDQUFDO0lBRy9CLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksU0FBUyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDeEMsT0FBTyxRQUFRLENBQUM7YUFDakI7aUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDOUMsT0FBTyxPQUFPLENBQUM7YUFDaEI7aUJBQU07Z0JBQ0wsT0FBTyxRQUFRLENBQUM7YUFDakI7U0FDRjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUFxQjtRQUN6QyxJQUFJLGNBQWMsR0FBRyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFM0ksSUFDRSxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSx5REFBeUQ7WUFDcEcsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxJQUFJLGdCQUFnQjtZQUNuRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLElBQUksZ0JBQWdCO1lBQ25FLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7WUFDbkUsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxJQUFJLGdCQUFnQjtZQUNuRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLElBQUkscUJBQXFCO1lBQ3hFLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxxQkFBcUI7WUFDeEUsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxJQUFJLHFCQUFxQjtZQUN4RSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMscUJBQXFCO1VBQ3JFO1lBQ0EsbUNBQW1DO1lBQ25DLE9BQU87U0FDUjtRQUVELG1EQUFtRDtRQUNuRCxJQUNFLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDakUsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxFQUM3QztZQUNBLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN0QzthQUFNO1lBQ0wsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRU0sUUFBUSxDQUFDLGVBQW9DO1FBQ2xELElBQUksVUFBVSxHQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU3SixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN0RCxJQUFJLEtBQUssSUFBSSxlQUFlLENBQUMsY0FBYyxFQUFFO2dCQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQ3BFO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDdkU7U0FDRjtRQUVELElBQUksZUFBZSxDQUFDLGNBQWMsSUFBSSxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDOytHQTdGVSxtQ0FBbUM7bUdBQW5DLG1DQUFtQyxrNUJDUGhELG1zRUE4Q0E7OzRGRHZDYSxtQ0FBbUM7a0JBTC9DLFNBQVM7K0JBQ0UsZ0NBQWdDO2dHQUtmLHNCQUFzQjtzQkFBaEQsTUFBTTt1QkFBQyxVQUFVO2dCQUNxQyxlQUFlO3NCQUFyRSxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDVSxlQUFlO3NCQUFyRSxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDVSxlQUFlO3NCQUFyRSxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDVSxlQUFlO3NCQUFyRSxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDVSxlQUFlO3NCQUFyRSxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDVSxlQUFlO3NCQUFyRSxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFHN0IsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFJlbmRlcmVyMiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ3Jhdml0eS10ZXh0LWZpZWxkLW51bWJlci1vbmx5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyYXZpdHktdGV4dC1maWVsZC1udW1iZXItb25seS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyYXZpdHktdGV4dC1maWVsZC1udW1iZXItb25seS5jb21wb25lbnQuc2NzcycsICcuL2dyYXZpdHktdGV4dC1maWVsZC1udW1iZXItb25seS52YXJpYWJsZXMuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEdyYXZpdHlUZXh0RmllbGROdW1iZXJPbmx5Q29tcG9uZW50IHtcbiAgQE91dHB1dCgncmVzcG9uc2UnKSBwdWJsaWMgdGV4dEZpZWxkVmFsdWVSZXNwb25zZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBWaWV3Q2hpbGQoJ2RpZ2l0Q29udGFpbmVyMCcsIHtzdGF0aWM6IGZhbHNlfSkgcHJpdmF0ZSBkaWdpdENvbnRhaW5lcjA6IGFueTtcbiAgQFZpZXdDaGlsZCgnZGlnaXRDb250YWluZXIxJywge3N0YXRpYzogZmFsc2V9KSBwcml2YXRlIGRpZ2l0Q29udGFpbmVyMTogYW55O1xuICBAVmlld0NoaWxkKCdkaWdpdENvbnRhaW5lcjInLCB7c3RhdGljOiBmYWxzZX0pIHByaXZhdGUgZGlnaXRDb250YWluZXIyOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ2RpZ2l0Q29udGFpbmVyMycsIHtzdGF0aWM6IGZhbHNlfSkgcHJpdmF0ZSBkaWdpdENvbnRhaW5lcjM6IGFueTtcbiAgQFZpZXdDaGlsZCgnZGlnaXRDb250YWluZXI0Jywge3N0YXRpYzogZmFsc2V9KSBwcml2YXRlIGRpZ2l0Q29udGFpbmVyNDogYW55O1xuICBAVmlld0NoaWxkKCdkaWdpdENvbnRhaW5lcjUnLCB7c3RhdGljOiBmYWxzZX0pIHByaXZhdGUgZGlnaXRDb250YWluZXI1OiBhbnk7XG5cbiAgLy8gQ29tcG9uZW50XG4gIEBJbnB1dCgpIHB1YmxpYyBjdXJyZW50TGFuZzogc3RyaW5nID0gJ2VuJztcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbVN0YXRlOiAnZGVmYXVsdCcgfCAnYWN0aXZlJyB8ICdob3ZlcicgfCAndHlwaW5nJyB8ICd0eXBlZCcgfCAndHlwZWQtZXJyb3InIHwgJ3R5cGVkLXBvc2l0aXZlJyB8ICdkaXNhYmxlZCcgfCAncmVhZG9ubHknID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBwdWJsaWMgY3lwcmVzc1RhZzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogJ3NtJyB8ICdtZCcgPSAnbWQnO1xuICBASW5wdXQoKSBwdWJsaWMgc3VwcG9ydFRleHQ6IHN0cmluZztcblxuICBwdWJsaWMgZm9jdXNJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgaW5wdXRWYWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRUZXh0RmllbGRTdGF0dXMoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jdXN0b21TdGF0ZSA9PSAnZGVmYXVsdCcpIHtcbiAgICAgIGlmICghdGhpcy5mb2N1c0lucHV0ICYmICF0aGlzLmlucHV0VmFsdWUpIHtcbiAgICAgICAgcmV0dXJuICdhY3RpdmUnO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5mb2N1c0lucHV0ICYmIHRoaXMuaW5wdXRWYWx1ZSkge1xuICAgICAgICByZXR1cm4gJ3R5cGVkJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAndHlwaW5nJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tU3RhdGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uS2V5RG93bkV2ZW50KCRldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGxldCBuYXZpZ2F0aW9uS2V5cyA9IFsnQmFja3NwYWNlJywgJ0RlbGV0ZScsICdUYWInLCAnRXNjYXBlJywgJ0VudGVyJywgJ0hvbWUnLCAnRW5kJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0JywgJ0NsZWFyJywgJ0NvcHknLCAnUGFzdGUnXTtcblxuICAgIGlmIChcbiAgICAgIG5hdmlnYXRpb25LZXlzLmluZGV4T2YoJGV2ZW50LmtleSkgPiAtMSB8fCAvLyBBbGxvdzogbmF2aWdhdGlvbiBrZXlzOiBiYWNrc3BhY2UsIGRlbGV0ZSwgYXJyb3dzIGV0Yy5cbiAgICAgICgkZXZlbnQua2V5ID09PSAnYScgJiYgJGV2ZW50LmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK0FcbiAgICAgICgkZXZlbnQua2V5ID09PSAnYycgJiYgJGV2ZW50LmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK0NcbiAgICAgICgkZXZlbnQua2V5ID09PSAndicgJiYgJGV2ZW50LmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK1ZcbiAgICAgICgkZXZlbnQua2V5ID09PSAneCcgJiYgJGV2ZW50LmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK1hcbiAgICAgICgkZXZlbnQua2V5ID09PSAnYScgJiYgJGV2ZW50Lm1ldGFLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDbWQrQSAoTWFjKVxuICAgICAgKCRldmVudC5rZXkgPT09ICdjJyAmJiAkZXZlbnQubWV0YUtleSA9PT0gdHJ1ZSkgfHwgLy8gQWxsb3c6IENtZCtDIChNYWMpXG4gICAgICAoJGV2ZW50LmtleSA9PT0gJ3YnICYmICRldmVudC5tZXRhS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ21kK1YgKE1hYylcbiAgICAgICgkZXZlbnQua2V5ID09PSAneCcgJiYgJGV2ZW50Lm1ldGFLZXkgPT09IHRydWUpIC8vIEFsbG93OiBDbWQrWCAoTWFjKVxuICAgICkge1xuICAgICAgLy8gbGV0IGl0IGhhcHBlbiwgZG9uJ3QgZG8gYW55dGhpbmdcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBhIG51bWJlciBhbmQgc3RvcCB0aGUga2V5cHJlc3NcbiAgICBpZiAoXG4gICAgICAoJGV2ZW50LnNoaWZ0S2V5IHx8ICgkZXZlbnQua2V5Q29kZSA8IDQ4IHx8ICRldmVudC5rZXlDb2RlID4gNTcpKSAmJlxuICAgICAgKCRldmVudC5rZXlDb2RlIDwgOTYgfHwgJGV2ZW50LmtleUNvZGUgPiAxMDUpXG4gICAgKSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmV0dXJuVmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5wdXRWYWx1ZSA9PSAnJykge1xuICAgICAgdGhpcy50ZXh0RmllbGRWYWx1ZVJlc3BvbnNlLmVtaXQoJycpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRleHRGaWVsZFZhbHVlUmVzcG9uc2UuZW1pdCh0aGlzLmlucHV0VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRGb2N1cyh0ZXh0YXJlYUVsZW1lbnQ6IEhUTUxUZXh0QXJlYUVsZW1lbnQpOiB2b2lkIHtcbiAgICBsZXQgY29udGFpbmVyczogYW55W10gPSBbdGhpcy5kaWdpdENvbnRhaW5lcjAsIHRoaXMuZGlnaXRDb250YWluZXIxLCB0aGlzLmRpZ2l0Q29udGFpbmVyMiwgdGhpcy5kaWdpdENvbnRhaW5lcjMsIHRoaXMuZGlnaXRDb250YWluZXI0LCB0aGlzLmRpZ2l0Q29udGFpbmVyNV07XG5cbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY29udGFpbmVycy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGlmIChpbmRleCA9PSB0ZXh0YXJlYUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhjb250YWluZXJzW2luZGV4XS5uYXRpdmVFbGVtZW50LCAnZm9jdXNlZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhjb250YWluZXJzW2luZGV4XS5uYXRpdmVFbGVtZW50LCAnZm9jdXNlZCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0ZXh0YXJlYUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT0gNikge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0ZXh0YXJlYUVsZW1lbnQsICdoaWRlLWNhcmV0Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGV4dGFyZWFFbGVtZW50LCAnaGlkZS1jYXJldCcpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInt7c2l6ZX19XCIgc3R5bGU9XCJ3aWR0aDogZml0LWNvbnRlbnRcIj5cbiAgPGxhYmVsIGNsYXNzPVwiaHItbGFiZWwgc20tYm9sZCB7e2dldFRleHRGaWVsZFN0YXR1cygpfX1cIiBbY2xhc3MuY3VzdG9tLWxhYmVsLXNpemVdPVwic2l6ZSA9PSAnc20nXCIgKm5nSWY9XCJsYWJlbFwiPlxuICAgIHt7bGFiZWx9fSA8c3BhbiAqbmdJZj1cInJlcXVpcmVkIHx8IGdldFRleHRGaWVsZFN0YXR1cygpID09ICd0eXBlZC1lcnJvcidcIj4qPC9zcGFuPlxuICA8L2xhYmVsPlxuICA8ZGl2IGNsYXNzPVwidGV4dC1maWVsZC1udW1iZXItb25seS13cmFwcGVyIHt7Z2V0VGV4dEZpZWxkU3RhdHVzKCl9fVwiPlxuICAgIDx0ZXh0YXJlYSBbYXR0ci5kYXRhLWN5XT1cImN5cHJlc3NUYWdcIlxuICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJjdXN0b21TdGF0ZSA9PSAnZGlzYWJsZWQnID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgICBbYXR0ci5yZWFkb25seV09XCJjdXN0b21TdGF0ZSA9PSAncmVhZG9ubHknID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAjdGV4dEFyZWFFbGVtZW50XG5cbiAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJoci1sYWJlbCB7e3NpemV9fS1yZWd1bGFyXCJcbiAgICAgICAgICAgICAgY29scz1cIjZcIlxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI2XCJcbiAgICAgICAgICAgICAgbWlubGVuZ3RoPVwiNlwiXG4gICAgICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIl9fX19fX1wiXG4gICAgICAgICAgICAgIHJvd3M9XCIxXCJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG5cbiAgICAgICAgICAgICAgKGJsdXIpPVwiZm9jdXNJbnB1dCA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEZvY3VzKHRleHRBcmVhRWxlbWVudClcIlxuICAgICAgICAgICAgICAoZm9jdXMpPVwiZm9jdXNJbnB1dCA9IHRydWVcIlxuICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd25FdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGtleXVwKT1cInNldEZvY3VzKHRleHRBcmVhRWxlbWVudCk7IHJldHVyblZhbHVlKClcIj48L3RleHRhcmVhPlxuICAgIDxkaXYgY2xhc3M9XCJkaWdpdC1jb250YWluZXJcIiAjZGlnaXRDb250YWluZXIwPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkaWdpdC1jb250YWluZXJcIiAjZGlnaXRDb250YWluZXIxPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkaWdpdC1jb250YWluZXJcIiAjZGlnaXRDb250YWluZXIyPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkaWdpdC1jb250YWluZXJcIiAjZGlnaXRDb250YWluZXIzPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkaWdpdC1jb250YWluZXJcIiAjZGlnaXRDb250YWluZXI0PjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkaWdpdC1jb250YWluZXJcIiAjZGlnaXRDb250YWluZXI1PjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvd1wiPjwvZGl2PlxuICA8L2Rpdj5cbiAgPHAgY2xhc3M9XCJoci1sYWJlbCBzbS1yZWd1bGFyIHN1cHBvcnRpbmctdGV4dCB7e2dldFRleHRGaWVsZFN0YXR1cygpfX1cIiBbY2xhc3MuY3VzdG9tLWxhYmVsLXNpemVdPVwic2l6ZSA9PSAnc20nXCJcbiAgICAgKm5nSWY9XCJzdXBwb3J0VGV4dFwiPlxuICAgIDxncmF2aXR5LWljb24gW2ljb25OYW1lXT1cIidxdWVzdGlvbi1jaXJjbGUnXCIgKm5nSWY9XCJnZXRUZXh0RmllbGRTdGF0dXMoKSA9PSAndHlwZWQtZXJyb3InXCJcbiAgICAgICAgICAgICAgICAgIFtpY29uU2l6ZV09XCInc20tMTInXCI+PC9ncmF2aXR5LWljb24+XG4gICAge3tzdXBwb3J0VGV4dH19XG4gIDwvcD5cbiAgPHAgY2xhc3M9XCJoci1sYWJlbCBzbS1yZWd1bGFyIHN1cHBvcnRpbmctdGV4dCB7e2dldFRleHRGaWVsZFN0YXR1cygpfX1cIiBbY2xhc3MuY3VzdG9tLWxhYmVsLXNpemVdPVwic2l6ZSA9PSAnc20nXCJcbiAgICAgKm5nSWY9XCIhc3VwcG9ydFRleHQgJiYgZ2V0VGV4dEZpZWxkU3RhdHVzKCkgPT0gJ2FjdGl2ZScgJiYgaW5wdXRWYWx1ZSA9PSAnJyAmJiByZXF1aXJlZFwiPlxuICAgIHt7Y3VycmVudExhbmcgPT0gJ2VzJyA/ICdSZXF1ZXJpZG8nIDogJ1JlcXVpcmVkJ319XG4gIDwvcD5cbjwvZGl2PlxuIl19