ca-components 1.0.86 → 1.0.88

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.
@@ -72,7 +72,8 @@ export class InputTestComponent {
72
72
  : obj; // ✅ Apply mask
73
73
  this.inputValue = value;
74
74
  this.onChange(value); // Notify Angular form about the change
75
- this.onTouched(); // Mark as touched
75
+ if (value)
76
+ this.onTouched(); // Mark as touched
76
77
  this.inputElement.nativeElement.value = value;
77
78
  this.chdet.detectChanges();
78
79
  }
@@ -190,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
190
191
  }], inputConfig: [{
191
192
  type: Input
192
193
  }] } });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGVzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1pbnB1dC9pbnB1dC10ZXN0L2lucHV0LXRlc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvaW5wdXQtdGVzdC9pbnB1dC10ZXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU94RCxRQUFRO0FBQ1IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV6RSxRQUFRO0FBQ1IsT0FBTyxFQUNILGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsY0FBYyxFQUNkLGtDQUFrQyxFQUNsQyw2QkFBNkIsRUFDN0IsYUFBYSxFQUNiLGNBQWMsRUFDZCxhQUFhLEVBQ2IsdUJBQXVCLEdBQzFCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxhQUFhO0FBQ2IsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1B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OUIsU0FBUzsrQkFDSSxlQUFlLGNBQ2IsSUFBSSxXQUNQO3dCQUNMLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixTQUFTO3dCQUNULG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFFYixRQUFRO3dCQUNSLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLDZCQUE2Qjt3QkFDN0IsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLFNBQVM7d0JBQ1QsbUJBQW1CO3dCQUNuQixrQ0FBa0M7d0JBQ2xDLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFFYixhQUFhO3dCQUNiLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFFakIsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsK0JBQStCO3dCQUMvQix3QkFBd0I7cUJBQzNCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkFrQ2hDLFFBQVE7OzBCQUFJLElBQUk7c0dBNUJpQixZQUFZO3NCQUFqRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQzNCLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ08sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ2JNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhclN2Z0ljb25Nb2R1bGUgfSBmcm9tICdhbmd1bGFyLXN2Zy1pY29uJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBJbnB1dENoYW5nZVZhbHVlIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTGFiZWxDb2xvciB9IGZyb20gJy4uL21vZGVscyc7XG5cbi8vIGVtdW1zXG5pbXBvcnQgeyBJbnB1dENvbW1hbmRzVHlwZSwgSW5wdXRTdHJpbmdFbnVtIH0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHsgRHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vY2EtaW5wdXQtZHJvcGRvd24vZW51bXMnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHtcbiAgICBJbnB1dENsYXNzUGlwZSxcbiAgICBJbnB1dENvbnRhaW5lckNsYXNzUGlwZSxcbiAgICBJbnB1dEVycm9yUGlwZSxcbiAgICBJbnB1dFBsYWNlaG9sZGVySWNvblJpZ2h0Q2xhc3NQaXBlLFxuICAgIElucHV0UGxhY2Vob2xkZXJUZXh0Q2xhc3NQaXBlLFxuICAgIElucHV0VHlwZVBpcGUsXG4gICAgTGFiZWxDbGFzc1BpcGUsXG4gICAgU2hvd0NsZWFyUGlwZSxcbiAgICBTaG93UGxhY2Vob2xkZXJUZXh0UGlwZSxcbn0gZnJvbSAnLi4vcGlwZXMnO1xuaW1wb3J0IHsgQ2FTdmdQaXBlLCBMb2FkU3RhdHVzQ29sb3JQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgeyBDYUlucHV0UGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NhLWlucHV0LXBhc3N3b3JkL2NhLWlucHV0LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0UGxhY2Vob2xkZXJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jYS1pbnB1dC1wbGFjZWhvbGRlci1pY29uL2NhLWlucHV0LXBsYWNlaG9sZGVyLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXRDbGVhckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY2EtaW5wdXQtY2xlYXIvY2EtaW5wdXQtY2xlYXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhQXBwVG9vbHRpcFYyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2EtYXBwLXRvb2x0aXAtdjIvY2EtYXBwLXRvb2x0aXAtdjIuY29tcG9uZW50JztcblxuLy8gZGlyZWN0aXZlc1xuaW1wb3J0IHsgQ2Fwc0xvY2tEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IE1heFZhbHVlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBSZXN0cmljdElucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBQcmljZUZvcm1hdERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTmd4TWFza01vZHVsZSB9IGZyb20gJ25neC1tYXNrJztcbmltcG9ydCB7IE5neE1hc2tTZXJ2aWNlIH0gZnJvbSAnbmd4LW1hc2snO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NhLWlucHV0LXRlc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvLyBNb2R1bGVzXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTmdiTW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgTmd4TWFza01vZHVsZSxcblxuICAgICAgICAvLyBQaXBlc1xuICAgICAgICBJbnB1dEVycm9yUGlwZSxcbiAgICAgICAgSW5wdXRDb250YWluZXJDbGFzc1BpcGUsXG4gICAgICAgIElucHV0Q2xhc3NQaXBlLFxuICAgICAgICBJbnB1dFBsYWNlaG9sZGVyVGV4dENsYXNzUGlwZSxcbiAgICAgICAgU2hvd1BsYWNlaG9sZGVyVGV4dFBpcGUsXG4gICAgICAgIExhYmVsQ2xhc3NQaXBlLFxuICAgICAgICBDYVN2Z1BpcGUsXG4gICAgICAgIExvYWRTdGF0dXNDb2xvclBpcGUsXG4gICAgICAgIElucHV0UGxhY2Vob2xkZXJJY29uUmlnaHRDbGFzc1BpcGUsXG4gICAgICAgIE1heFZhbHVlRGlyZWN0aXZlLFxuICAgICAgICBJbnB1dFR5cGVQaXBlLFxuXG4gICAgICAgIC8vIERpcmVjdGl2ZXNcbiAgICAgICAgUmVzdHJpY3RJbnB1dERpcmVjdGl2ZSxcbiAgICAgICAgUHJpY2VGb3JtYXREaXJlY3RpdmUsXG4gICAgICAgIFNob3dDbGVhclBpcGUsXG4gICAgICAgIENhcHNMb2NrRGlyZWN0aXZlLFxuXG4gICAgICAgIC8vIENvbXBvbmVudHNcbiAgICAgICAgQ2FJbnB1dENsZWFyQ29tcG9uZW50LFxuICAgICAgICBDYUFwcFRvb2x0aXBWMkNvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dFBsYWNlaG9sZGVySWNvbkNvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dFBhc3N3b3JkQ29tcG9uZW50LFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXRlc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9pbnB1dC10ZXN0LmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dFRlc3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHVibGljIGlucHV0VmFsdWU6IElucHV0Q2hhbmdlVmFsdWUgPSAnJztcbiAgICBwdWJsaWMgX2lucHV0Q29uZmlnITogSUNhSW5wdXQ7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY7XG4gICAgQElucHV0KCkgc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3IhOiBMYWJlbENvbG9yIHwgbnVsbDtcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpbmNvcnJlY3RWYWx1ZSE6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2V0IGlucHV0Q29uZmlnKGNvbmZpZzogSUNhSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faW5wdXRDb25maWcgPSBjb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRm9jdXNJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0VkaXRJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0Ryb3Bkb3duVG9nZ2xlcjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1Zpc2libGVDb21tYW5kczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1RvdWNoZWRJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGlzQ2Fwc0xvY2tPbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGlucHV0Q29tbWFuZHNUeXBlID0gSW5wdXRDb21tYW5kc1R5cGU7XG4gICAgcHVibGljIGlucHV0U3RyaW5nRW51bSA9IElucHV0U3RyaW5nRW51bTtcbiAgICBwdWJsaWMgZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtID0gRHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtO1xuXG4gICAgLy8gUGFzc3dvcmRcbiAgICBwdWJsaWMgaXNUb2dnbGVQYXNzd29yZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGdldCBpbnB1dENvbmZpZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lucHV0Q29uZmlnO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgcHVibGljIGNoZGV0OiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBtYXNrQXBwbGllcjogTmd4TWFza1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5pbnB1dFZhbHVlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sPy5jb250cm9sO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNoYW5nZShfOiBhbnkpOiB2b2lkIHt9XG4gICAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gICAgcHVibGljIHdyaXRlVmFsdWUob2JqOiBJbnB1dENoYW5nZVZhbHVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5faW5wdXRDb25maWcubWFza1xuICAgICAgICAgICAgPyB0aGlzLm1hc2tBcHBsaWVyLmFwcGx5TWFzayhvYmogYXMgc3RyaW5nLCB0aGlzLl9pbnB1dENvbmZpZy5tYXNrKVxuICAgICAgICAgICAgOiBvYmo7IC8vIOKchSBBcHBseSBtYXNrXG5cbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpOyAvLyBOb3RpZnkgQW5ndWxhciBmb3JtIGFib3V0IHRoZSBjaGFuZ2VcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTsgLy8gTWFyayBhcyB0b3VjaGVkXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLmNoZGV0LmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIGhhbmRsZUlucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpOyAvLyBOb3RpZnkgQW5ndWxhciBmb3JtIGFib3V0IHRoZSBjaGFuZ2VcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTsgLy8gTWFyayBhcyB0b3VjaGVkXG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFySW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKCcnKTtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVJbnB1dEZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlSW5wdXRCbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUG9wb3ZlclNob3duKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblBvcG92ZXJIaWRkZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5pc0ZvY3VzSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblRvZ2dsZVBhc3N3b3JkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmlzVG9nZ2xlUGFzc3dvcmQgPSAhdGhpcy5pc1RvZ2dsZVBhc3N3b3JkO1xuICAgIH1cblxuICAgIGhhbmRsZUNhcHNMb2NrKHN0YXR1czogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzQ2Fwc0xvY2tPbiA9IHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgaWRlbnRpZnkoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICAvLyAjcmVnaW9uIG9uUGxhY2Vob2xkZXJJY29uZXZlbnRcbiAgICBwdWJsaWMgb25QbGFjZWhvbGRlckljb25FdmVudChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIC8vIGlmICh0aGlzLmlzRWRpdElucHV0KSB7XG4gICAgICAgIC8vICAgICB0aGlzLnNldENvbW1hbmRFdmVudC5uZXh0KHtcbiAgICAgICAgLy8gICAgICAgICBkYXRhOiB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZSxcbiAgICAgICAgLy8gICAgICAgICBhY3Rpb246ICdUb2dnbGUgRHJvcGRvd24nLFxuICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICB0aGlzLnNldENvbW1hbmRFdmVudC5uZXh0KHtcbiAgICAgICAgLy8gICAgICAgICBkYXRhOiB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZSxcbiAgICAgICAgLy8gICAgICAgICBhY3Rpb246ICdQbGFjZWhvbGRlciBJY29uIEV2ZW50JyxcbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICAvLyB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiaW5wdXQtY3VzdG9tLWdyb3VwIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgW25nQ2xhc3NdPVwiXG4gICAgICAgIGNvbnRyb2xcbiAgICAgICAgICAgIHwgaW5wdXRDb250YWluZXJDbGFzc1xuICAgICAgICAgICAgICAgIDogaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkIVxuICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgOiBjb250cm9sPy52YWx1ZVxuICAgIFwiXG4gICAgbmdiVG9vbHRpcFxuICAgIFttYWluQ2FUb29sdGlwXT1cImNvbnRyb2w/LmVycm9ycyB8IGlucHV0RXJyb3I6IF9pbnB1dENvbmZpZy5uYW1lXCJcbiAgICBbdG9vbHRpcEJhY2tncm91bmRdPVwiJyNERjNDM0MnXCJcbiAgICBbZGlzYWJsZVRvb2x0aXBdPVwiIV9pbnB1dENvbmZpZy5yZXF1aXJlZExhYmVsIHx8ICEhY29udHJvbD8udmFsaWRcIlxuICAgIHBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICB0cmlnZ2Vycz1cImhvdmVyXCJcbj5cbiAgICA8IS0tIElucHV0IFBhc3N3b3JkIENhcHMgTG9jayBBbmQgRXllIC0tPlxuICAgIEBpZiAoX2lucHV0Q29uZmlnLnR5cGUgPT09ICdwYXNzd29yZCcpIHtcbiAgICAgICAgPGFwcC1jYS1pbnB1dC1wYXNzd29yZFxuICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cIl9pbnB1dENvbmZpZ1wiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgICAgICAgW2lzVG91Y2hlZElucHV0XT1cImlzVG91Y2hlZElucHV0XCJcbiAgICAgICAgICAgIFtpc0NhcHNMb2NrT25dPVwiaXNDYXBzTG9ja09uXCJcbiAgICAgICAgICAgIFtpc1RvZ2dsZVBhc3N3b3JkXT1cImlzVG9nZ2xlUGFzc3dvcmRcIlxuICAgICAgICAgICAgKG9uVG9nZ2xlUGFzc3dvcmRDbGljayk9XCJvblRvZ2dsZVBhc3N3b3JkKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXBwLWNhLWlucHV0LXBhc3N3b3JkPlxuICAgIH1cbiAgICA8IS0tIElucHV0IENsZWFyIC0tPlxuICAgIEBpZiAoX2lucHV0Q29uZmlnIHwgc2hvd0NsZWFyKSB7XG4gICAgICAgIDxhcHAtY2EtaW5wdXQtY2xlYXJcbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJfaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgIFtpc0ZvY3VzSW5wdXRdPVwiaXNGb2N1c0lucHV0XCJcbiAgICAgICAgICAgIFtpbmNvcnJlY3RWYWx1ZV09XCJpbmNvcnJlY3RWYWx1ZVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3JdPVwic2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3JcIlxuICAgICAgICAgICAgW3RlbXBsYXRlXT1cInRlbXBsYXRlXCJcbiAgICAgICAgICAgIChjbGVhcklucHV0Q2xpY2spPVwiY2xlYXJJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1jYS1pbnB1dC1jbGVhcj5cbiAgICB9XG5cbiAgICA8IS0tIElucHV0IFBsYWNlaG9sZGVyIEljb24gLS0+XG4gICAgQGlmIChcbiAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVySWNvbiB8fFxuICAgICAgICBfaW5wdXRDb25maWcubmFtZSA9PT0gJ2RhdGVwaWNrZXInIHx8XG4gICAgICAgIF9pbnB1dENvbmZpZy5uYW1lID09PSAndGltZXBpY2tlcidcbiAgICApIHtcbiAgICAgICAgPGFwcC1jYS1pbnB1dC1wbGFjZWhvbGRlci1pY29uXG4gICAgICAgICAgICBbaW5wdXRDb25maWddPVwiX2lucHV0Q29uZmlnXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICBbaXNGb2N1c0lucHV0XT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICAgICAgICBbaXNUb3VjaGVkSW5wdXRdPVwiY29udHJvbD8udG91Y2hlZCFcIlxuICAgICAgICAgICAgW3NlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXT1cInNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXCJcbiAgICAgICAgICAgIFtpc0VkaXRJbnB1dF09XCJpc0VkaXRJbnB1dFwiXG4gICAgICAgICAgICAob25QbGFjZWhvbGRlckljb25FdmVudEVtaXR0ZXIpPVwib25QbGFjZWhvbGRlckljb25FdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvblBvcG92ZXJTaG93bkVtaXR0ZXIpPVwib25Qb3BvdmVyU2hvd24oKVwiXG4gICAgICAgICAgICAob25Qb3BvdmVySGlkZGVuRW1pdHRlcik9XCJvblBvcG92ZXJIaWRkZW4oKVwiXG4gICAgICAgID5cbiAgICAgICAgPC9hcHAtY2EtaW5wdXQtcGxhY2Vob2xkZXItaWNvbj5cbiAgICB9XG5cbiAgICA8IS0tIElucHV0IFBsYWNlaG9sZGVyIFRleHQgLS0+XG4gICAgQGlmIChcbiAgICAgICAgX2lucHV0Q29uZmlnXG4gICAgICAgICAgICB8IHNob3dQbGFjZWhvbGRlclRleHQ6IGNvbnRyb2wgOiBpc1Zpc2libGVDb21tYW5kcyA6IGNvbnRyb2w/LnZhbHVlXG4gICAgKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cImNhLXBsYWNlaG9sZGVyLXRleHQge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgIGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICB8IGlucHV0UGxhY2Vob2xkZXJUZXh0Q2xhc3NcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udG91Y2hlZCFcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBfaW5wdXRDb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXNWaXNpYmxlQ29tbWFuZHNcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udmFsdWVcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbc3R5bGUubGVmdF09XCJcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICBpbnB1dFN0cmluZ0VudW0uUEVSU09OUyB8fFxuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICAgICAgICAgICAgICAgIGlucHV0U3RyaW5nRW51bS5WRUhJQ0xFU1xuICAgICAgICAgICAgICAgICAgICA/IDMwICsgKGNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpPy5sZW5ndGggKyAxKSAqIDkgKyAncHgnXG4gICAgICAgICAgICAgICAgICAgIDogaXNGb2N1c0lucHV0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpICE9PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0Q29tbWFuZHNUeXBlLk1PTlRIU1xuICAgICAgICAgICAgICAgICAgICAgID8gJ2F1dG8nXG4gICAgICAgICAgICAgICAgICAgICAgOiAoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/Lmxlbmd0aCArIDEpICogOCArICdweCdcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbc3R5bGUucmlnaHRdPVwiXG4gICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0ICYmXG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dD8udG9Mb3dlckNhc2UoKSAhPT1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXRDb21tYW5kc1R5cGUuTU9OVEhTXG4gICAgICAgICAgICAgICAgICAgID8gJzI4cHgnXG4gICAgICAgICAgICAgICAgICAgIDogJ2F1dG8nXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG5cbiAgICA8IS0tIElucHV0IExhYmVsIC0tPlxuICAgIEBpZiAoIV9pbnB1dENvbmZpZy5tdWx0aVNlbGVjdERyb3Bkb3duQWN0aXZlKSB7XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgW2Zvcl09XCJfaW5wdXRDb25maWcubmFtZVwiXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LWxhYmVsIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fSB7e1xuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5tdWx0aXBsZUxhYmVsPy5jdXN0b21DbGFzc1xuICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgY29udHJvbD8udmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfCBsYWJlbENsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBfaW5wdXRDb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXNUb3VjaGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8uaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKF9pbnB1dENvbmZpZy5sYWJlbCkge1xuICAgICAgICAgICAgICAgIDxzcGFuPnt7IF9pbnB1dENvbmZpZy5sYWJlbCB9fSA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoX2lucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmxhYmVscz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiX2lucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmN1c3RvbUNsYXNzIVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICdtdWx0aXBsZS1sYWJlbHMtcG9zaXRpb24tb24tZm9jdXMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRm9jdXNJbnB1dCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5tdWx0aXBsZUlucHV0VmFsdWVzPy5vcHRpb25zPy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcuaXNSZXF1aXJlZCAmJiAhX2lucHV0Q29uZmlnLmlzRGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCBvZiBfaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8ubGFiZWxzO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgaWRlbnRpZnlcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbGFiZWw+XG4gICAgfVxuXG4gICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICAoaW5wdXQpPVwiaGFuZGxlSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIFtyZXN0cmljdElucHV0XT1cImlucHV0Q29uZmlnXCJcbiAgICAgICAgcHJpY2VGb3JtYXRcbiAgICAgICAgW3ByaWNlU2VwYXJhdG9yXT1cImlucHV0Q29uZmlnLnByaWNlU2VwYXJhdG9yXCJcbiAgICAgICAgKGZvY3VzKT1cImhhbmRsZUlucHV0Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cImhhbmRsZUlucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cIl9pbnB1dENvbmZpZy5yZWFkT25seVwiXG4gICAgICAgIFt0eXBlXT1cIl9pbnB1dENvbmZpZy50eXBlIHwgaW5wdXRUeXBlOiBpc1RvZ2dsZVBhc3N3b3JkXCJcbiAgICAgICAgY2xhc3M9XCJpbnB1dC1jb250cm9sXG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcudGV4dFRyYW5zZm9ybSB9fVxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLnRleHRBbGlnbiB9fVxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XG4gICAgICAgIFwiXG4gICAgICAgIFthcHBNYXhWYWx1ZV09XCJpbnB1dENvbmZpZy5tYXhcIlxuICAgICAgICBhcHBDYXBzTG9ja1xuICAgICAgICAoY2Fwc0xvY2tTdGF0dXMpPVwiaGFuZGxlQ2Fwc0xvY2soJGV2ZW50KVwiXG4gICAgICAgIFttYXNrXT1cIl9pbnB1dENvbmZpZy5tYXNrXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICBjb250cm9sXG4gICAgICAgICAgICAgICAgfCBpbnB1dENsYXNzXG4gICAgICAgICAgICAgICAgICAgIDogaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udG91Y2hlZCFcbiAgICAgICAgICAgICAgICAgICAgOiBfaW5wdXRDb25maWdcbiAgICAgICAgICAgICAgICAgICAgOiBpbnB1dFxuICAgICAgICAgICAgICAgICAgICA6IGlzVmlzaWJsZUNvbW1hbmRzXG4gICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy5pbnZhbGlkXG4gICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udG91Y2hlZFxuICAgICAgICAgICAgICAgICAgICA6IGlzRHJvcGRvd25Ub2dnbGVyXG4gICAgICAgICAgICAgICAgICAgIDogaXNFZGl0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgOiB0ZW1wbGF0ZVxuICAgICAgICBcIlxuICAgIC8+XG5cbiAgICA8IS0tIFBsYWNlaG9sZGVyIEljb24gb24gUmlnaHQgU2lkZSAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb25SaWdodFNpZGUpIHtcbiAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInBsYWNlaG9sZGVyLWljb24tcmlnaHQtc2lkZSB7e1xuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb25Db2xvclxuICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgIHwgaW5wdXRQbGFjZWhvbGRlckljb25SaWdodENsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVG91Y2hlZElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3NyY109XCJcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgfCBjYVN2ZzogJ2NvbW1vbidcbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L3N2Zy1pY29uPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgRXJyb3IgTWVzc2FnZSAtLT5cbiAgICBAaWYgKFxuICAgICAgICAhKCFjb250cm9sPy52YWx1ZSAmJiBpc0ZvY3VzSW5wdXQpICYmXG4gICAgICAgIChpc1RvdWNoZWRJbnB1dCB8fCBjb250cm9sPy50b3VjaGVkIHx8IGNvbnRyb2w/LnZhbHVlKSAmJlxuICAgICAgICBjb250cm9sPy5pbnZhbGlkICYmXG4gICAgICAgICFfaW5wdXRDb25maWcuaXNJbnZhbGlkU2VhcmNoSW5Ecm9wZG93biAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnLmlzRGlzYWJsZWRcbiAgICApIHtcbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICEoX2lucHV0Q29uZmlnLmhpZGVFcnJvck1lc3NhZ2UgfHwgX2lucHV0Q29uZmlnLmVycm9ySW5zaWRlSW5wdXQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1lcnJvciB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIj5cbiAgICAgICAgICAgICAgICB7eyBjb250cm9sPy5lcnJvcnMgfCBpbnB1dEVycm9yOiBfaW5wdXRDb25maWcubmFtZSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBFcnJvciBNZXNzYWdlIEluc2lkZSBJbnB1dCAtLT5cbiAgICAgICAgQGlmIChfaW5wdXRDb25maWcuZXJyb3JJbnNpZGVJbnB1dCkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1pbnNpZGUtaW5wdXQge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCI+XG4gICAgICAgICAgICAgICAge3sgY29udHJvbD8uZXJyb3JzIHwgaW5wdXRFcnJvcjogX2lucHV0Q29uZmlnLm5hbWUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoX2lucHV0Q29uZmlnLmZpeGVkUGxhY2hvbGRlciAmJiBpbnB1dC52YWx1ZSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWZpeGVkLXBsYWNlaG9kZXItbGFiZWxcIj5cbiAgICAgICAgICAgIHt7IF9pbnB1dENvbmZpZy5maXhlZFBsYWNob2xkZXIgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbjwvZGl2PlxuIl19
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGVzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1pbnB1dC9pbnB1dC10ZXN0L2lucHV0LXRlc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvaW5wdXQtdGVzdC9pbnB1dC10ZXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU94RCxRQUFRO0FBQ1IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV6RSxRQUFRO0FBQ1IsT0FBTyxFQUNILGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsY0FBYyxFQUNkLGtDQUFrQyxFQUNsQyw2QkFBNkIsRUFDN0IsYUFBYSxFQUNiLGNBQWMsRUFDZCxhQUFhLEVBQ2IsdUJBQXVCLEdBQzFCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxhQUFhO0FBQ2IsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1B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bkIsa0JBQWtCO2tCQXhDOUIsU0FBUzsrQkFDSSxlQUFlLGNBQ2IsSUFBSSxXQUNQO3dCQUNMLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixTQUFTO3dCQUNULG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFFYixRQUFRO3dCQUNSLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLDZCQUE2Qjt3QkFDN0IsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLFNBQVM7d0JBQ1QsbUJBQW1CO3dCQUNuQixrQ0FBa0M7d0JBQ2xDLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFFYixhQUFhO3dCQUNiLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFFakIsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsK0JBQStCO3dCQUMvQix3QkFBd0I7cUJBQzNCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkFrQ2hDLFFBQVE7OzBCQUFJLElBQUk7c0dBNUJpQixZQUFZO3NCQUFqRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQzNCLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ08sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ2JNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhclN2Z0ljb25Nb2R1bGUgfSBmcm9tICdhbmd1bGFyLXN2Zy1pY29uJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBJbnB1dENoYW5nZVZhbHVlIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTGFiZWxDb2xvciB9IGZyb20gJy4uL21vZGVscyc7XG5cbi8vIGVtdW1zXG5pbXBvcnQgeyBJbnB1dENvbW1hbmRzVHlwZSwgSW5wdXRTdHJpbmdFbnVtIH0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHsgRHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vY2EtaW5wdXQtZHJvcGRvd24vZW51bXMnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHtcbiAgICBJbnB1dENsYXNzUGlwZSxcbiAgICBJbnB1dENvbnRhaW5lckNsYXNzUGlwZSxcbiAgICBJbnB1dEVycm9yUGlwZSxcbiAgICBJbnB1dFBsYWNlaG9sZGVySWNvblJpZ2h0Q2xhc3NQaXBlLFxuICAgIElucHV0UGxhY2Vob2xkZXJUZXh0Q2xhc3NQaXBlLFxuICAgIElucHV0VHlwZVBpcGUsXG4gICAgTGFiZWxDbGFzc1BpcGUsXG4gICAgU2hvd0NsZWFyUGlwZSxcbiAgICBTaG93UGxhY2Vob2xkZXJUZXh0UGlwZSxcbn0gZnJvbSAnLi4vcGlwZXMnO1xuaW1wb3J0IHsgQ2FTdmdQaXBlLCBMb2FkU3RhdHVzQ29sb3JQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgeyBDYUlucHV0UGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NhLWlucHV0LXBhc3N3b3JkL2NhLWlucHV0LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0UGxhY2Vob2xkZXJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jYS1pbnB1dC1wbGFjZWhvbGRlci1pY29uL2NhLWlucHV0LXBsYWNlaG9sZGVyLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXRDbGVhckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY2EtaW5wdXQtY2xlYXIvY2EtaW5wdXQtY2xlYXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhQXBwVG9vbHRpcFYyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2EtYXBwLXRvb2x0aXAtdjIvY2EtYXBwLXRvb2x0aXAtdjIuY29tcG9uZW50JztcblxuLy8gZGlyZWN0aXZlc1xuaW1wb3J0IHsgQ2Fwc0xvY2tEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IE1heFZhbHVlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBSZXN0cmljdElucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBQcmljZUZvcm1hdERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTmd4TWFza01vZHVsZSB9IGZyb20gJ25neC1tYXNrJztcbmltcG9ydCB7IE5neE1hc2tTZXJ2aWNlIH0gZnJvbSAnbmd4LW1hc2snO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NhLWlucHV0LXRlc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvLyBNb2R1bGVzXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTmdiTW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgTmd4TWFza01vZHVsZSxcblxuICAgICAgICAvLyBQaXBlc1xuICAgICAgICBJbnB1dEVycm9yUGlwZSxcbiAgICAgICAgSW5wdXRDb250YWluZXJDbGFzc1BpcGUsXG4gICAgICAgIElucHV0Q2xhc3NQaXBlLFxuICAgICAgICBJbnB1dFBsYWNlaG9sZGVyVGV4dENsYXNzUGlwZSxcbiAgICAgICAgU2hvd1BsYWNlaG9sZGVyVGV4dFBpcGUsXG4gICAgICAgIExhYmVsQ2xhc3NQaXBlLFxuICAgICAgICBDYVN2Z1BpcGUsXG4gICAgICAgIExvYWRTdGF0dXNDb2xvclBpcGUsXG4gICAgICAgIElucHV0UGxhY2Vob2xkZXJJY29uUmlnaHRDbGFzc1BpcGUsXG4gICAgICAgIE1heFZhbHVlRGlyZWN0aXZlLFxuICAgICAgICBJbnB1dFR5cGVQaXBlLFxuXG4gICAgICAgIC8vIERpcmVjdGl2ZXNcbiAgICAgICAgUmVzdHJpY3RJbnB1dERpcmVjdGl2ZSxcbiAgICAgICAgUHJpY2VGb3JtYXREaXJlY3RpdmUsXG4gICAgICAgIFNob3dDbGVhclBpcGUsXG4gICAgICAgIENhcHNMb2NrRGlyZWN0aXZlLFxuXG4gICAgICAgIC8vIENvbXBvbmVudHNcbiAgICAgICAgQ2FJbnB1dENsZWFyQ29tcG9uZW50LFxuICAgICAgICBDYUFwcFRvb2x0aXBWMkNvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dFBsYWNlaG9sZGVySWNvbkNvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dFBhc3N3b3JkQ29tcG9uZW50LFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXRlc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9pbnB1dC10ZXN0LmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dFRlc3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHVibGljIGlucHV0VmFsdWU6IElucHV0Q2hhbmdlVmFsdWUgPSAnJztcbiAgICBwdWJsaWMgX2lucHV0Q29uZmlnITogSUNhSW5wdXQ7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY7XG4gICAgQElucHV0KCkgc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3IhOiBMYWJlbENvbG9yIHwgbnVsbDtcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpbmNvcnJlY3RWYWx1ZSE6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2V0IGlucHV0Q29uZmlnKGNvbmZpZzogSUNhSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faW5wdXRDb25maWcgPSBjb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRm9jdXNJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0VkaXRJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0Ryb3Bkb3duVG9nZ2xlcjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1Zpc2libGVDb21tYW5kczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1RvdWNoZWRJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGlzQ2Fwc0xvY2tPbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGlucHV0Q29tbWFuZHNUeXBlID0gSW5wdXRDb21tYW5kc1R5cGU7XG4gICAgcHVibGljIGlucHV0U3RyaW5nRW51bSA9IElucHV0U3RyaW5nRW51bTtcbiAgICBwdWJsaWMgZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtID0gRHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtO1xuXG4gICAgLy8gUGFzc3dvcmRcbiAgICBwdWJsaWMgaXNUb2dnbGVQYXNzd29yZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGdldCBpbnB1dENvbmZpZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lucHV0Q29uZmlnO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgcHVibGljIGNoZGV0OiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBtYXNrQXBwbGllcjogTmd4TWFza1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5pbnB1dFZhbHVlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sPy5jb250cm9sO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNoYW5nZShfOiBhbnkpOiB2b2lkIHt9XG4gICAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gICAgcHVibGljIHdyaXRlVmFsdWUob2JqOiBJbnB1dENoYW5nZVZhbHVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5faW5wdXRDb25maWcubWFza1xuICAgICAgICAgICAgPyB0aGlzLm1hc2tBcHBsaWVyLmFwcGx5TWFzayhvYmogYXMgc3RyaW5nLCB0aGlzLl9pbnB1dENvbmZpZy5tYXNrKVxuICAgICAgICAgICAgOiBvYmo7IC8vIOKchSBBcHBseSBtYXNrXG5cbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpOyAvLyBOb3RpZnkgQW5ndWxhciBmb3JtIGFib3V0IHRoZSBjaGFuZ2VcbiAgICAgICAgaWYoIHZhbHVlICkgIHRoaXMub25Ub3VjaGVkKCk7IC8vIE1hcmsgYXMgdG91Y2hlZFxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5jaGRldC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBoYW5kbGVJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTsgLy8gTm90aWZ5IEFuZ3VsYXIgZm9ybSBhYm91dCB0aGUgY2hhbmdlXG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7IC8vIE1hcmsgYXMgdG91Y2hlZFxuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcklucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSgnJyk7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlSW5wdXRGb2N1cyhldmVudDogRm9jdXNFdmVudCkge1xuICAgICAgICB0aGlzLmlzRm9jdXNJbnB1dCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUlucHV0Qmx1cihldmVudDogRm9jdXNFdmVudCkge1xuICAgICAgICB0aGlzLmlzRm9jdXNJbnB1dCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblBvcG92ZXJTaG93bigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNJbnB1dCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25Qb3BvdmVySGlkZGVuKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25Ub2dnbGVQYXNzd29yZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pc1RvZ2dsZVBhc3N3b3JkID0gIXRoaXMuaXNUb2dnbGVQYXNzd29yZDtcbiAgICB9XG5cbiAgICBoYW5kbGVDYXBzTG9jayhzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0NhcHNMb2NrT24gPSBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGlkZW50aWZ5KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuXG4gICAgLy8gI3JlZ2lvbiBvblBsYWNlaG9sZGVySWNvbmV2ZW50XG4gICAgcHVibGljIG9uUGxhY2Vob2xkZXJJY29uRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAvLyBpZiAodGhpcy5pc0VkaXRJbnB1dCkge1xuICAgICAgICAvLyAgICAgdGhpcy5zZXRDb21tYW5kRXZlbnQubmV4dCh7XG4gICAgICAgIC8vICAgICAgICAgZGF0YTogdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8udmFsdWUsXG4gICAgICAgIC8vICAgICAgICAgYWN0aW9uOiAnVG9nZ2xlIERyb3Bkb3duJyxcbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgdGhpcy5zZXRDb21tYW5kRXZlbnQubmV4dCh7XG4gICAgICAgIC8vICAgICAgICAgZGF0YTogdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8udmFsdWUsXG4gICAgICAgIC8vICAgICAgICAgYWN0aW9uOiAnUGxhY2Vob2xkZXIgSWNvbiBFdmVudCcsXG4gICAgICAgIC8vICAgICB9KTtcbiAgICAgICAgLy8gfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImlucHV0LWN1c3RvbS1ncm91cCB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIlxuICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICBjb250cm9sXG4gICAgICAgICAgICB8IGlucHV0Q29udGFpbmVyQ2xhc3NcbiAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgIDogY29udHJvbD8udG91Y2hlZCFcbiAgICAgICAgICAgICAgICA6IF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgICAgIDogY29udHJvbD8udmFsdWVcbiAgICBcIlxuICAgIG5nYlRvb2x0aXBcbiAgICBbbWFpbkNhVG9vbHRpcF09XCJjb250cm9sPy5lcnJvcnMgfCBpbnB1dEVycm9yOiBfaW5wdXRDb25maWcubmFtZVwiXG4gICAgW3Rvb2x0aXBCYWNrZ3JvdW5kXT1cIicjREYzQzNDJ1wiXG4gICAgW2Rpc2FibGVUb29sdGlwXT1cIiFfaW5wdXRDb25maWcucmVxdWlyZWRMYWJlbCB8fCAhIWNvbnRyb2w/LnZhbGlkXCJcbiAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgdHJpZ2dlcnM9XCJob3ZlclwiXG4+XG4gICAgPCEtLSBJbnB1dCBQYXNzd29yZCBDYXBzIExvY2sgQW5kIEV5ZSAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy50eXBlID09PSAncGFzc3dvcmQnKSB7XG4gICAgICAgIDxhcHAtY2EtaW5wdXQtcGFzc3dvcmRcbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJfaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgIFtpc0ZvY3VzSW5wdXRdPVwiaXNGb2N1c0lucHV0XCJcbiAgICAgICAgICAgIFtpc1RvdWNoZWRJbnB1dF09XCJpc1RvdWNoZWRJbnB1dFwiXG4gICAgICAgICAgICBbaXNDYXBzTG9ja09uXT1cImlzQ2Fwc0xvY2tPblwiXG4gICAgICAgICAgICBbaXNUb2dnbGVQYXNzd29yZF09XCJpc1RvZ2dsZVBhc3N3b3JkXCJcbiAgICAgICAgICAgIChvblRvZ2dsZVBhc3N3b3JkQ2xpY2spPVwib25Ub2dnbGVQYXNzd29yZCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1jYS1pbnB1dC1wYXNzd29yZD5cbiAgICB9XG4gICAgPCEtLSBJbnB1dCBDbGVhciAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZyB8IHNob3dDbGVhcikge1xuICAgICAgICA8YXBwLWNhLWlucHV0LWNsZWFyXG4gICAgICAgICAgICBbaW5wdXRDb25maWddPVwiX2lucHV0Q29uZmlnXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICBbaXNGb2N1c0lucHV0XT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICAgICAgICBbaW5jb3JyZWN0VmFsdWVdPVwiaW5jb3JyZWN0VmFsdWVcIlxuICAgICAgICAgICAgW3NlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXT1cInNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXCJcbiAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXG4gICAgICAgICAgICAoY2xlYXJJbnB1dENsaWNrKT1cImNsZWFySW5wdXQoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9hcHAtY2EtaW5wdXQtY2xlYXI+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBQbGFjZWhvbGRlciBJY29uIC0tPlxuICAgIEBpZiAoXG4gICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb24gfHxcbiAgICAgICAgX2lucHV0Q29uZmlnLm5hbWUgPT09ICdkYXRlcGlja2VyJyB8fFxuICAgICAgICBfaW5wdXRDb25maWcubmFtZSA9PT0gJ3RpbWVwaWNrZXInXG4gICAgKSB7XG4gICAgICAgIDxhcHAtY2EtaW5wdXQtcGxhY2Vob2xkZXItaWNvblxuICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cIl9pbnB1dENvbmZpZ1wiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgICAgICAgW2lzVG91Y2hlZElucHV0XT1cImNvbnRyb2w/LnRvdWNoZWQhXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvcl09XCJzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvclwiXG4gICAgICAgICAgICBbaXNFZGl0SW5wdXRdPVwiaXNFZGl0SW5wdXRcIlxuICAgICAgICAgICAgKG9uUGxhY2Vob2xkZXJJY29uRXZlbnRFbWl0dGVyKT1cIm9uUGxhY2Vob2xkZXJJY29uRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25Qb3BvdmVyU2hvd25FbWl0dGVyKT1cIm9uUG9wb3ZlclNob3duKClcIlxuICAgICAgICAgICAgKG9uUG9wb3ZlckhpZGRlbkVtaXR0ZXIpPVwib25Qb3BvdmVySGlkZGVuKClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXBwLWNhLWlucHV0LXBsYWNlaG9sZGVyLWljb24+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBQbGFjZWhvbGRlciBUZXh0IC0tPlxuICAgIEBpZiAoXG4gICAgICAgIF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgfCBzaG93UGxhY2Vob2xkZXJUZXh0OiBjb250cm9sIDogaXNWaXNpYmxlQ29tbWFuZHMgOiBjb250cm9sPy52YWx1ZVxuICAgICkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJjYS1wbGFjZWhvbGRlci10ZXh0IHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgICAgICBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgfCBpbnB1dFBsYWNlaG9sZGVyVGV4dENsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnRvdWNoZWQhXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVmlzaWJsZUNvbW1hbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3N0eWxlLmxlZnRdPVwiXG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dD8udG9Mb3dlckNhc2UoKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXRTdHJpbmdFbnVtLlBFUlNPTlMgfHxcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICBpbnB1dFN0cmluZ0VudW0uVkVISUNMRVNcbiAgICAgICAgICAgICAgICAgICAgPyAzMCArIChjb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKT8ubGVuZ3RoICsgMSkgKiA5ICsgJ3B4J1xuICAgICAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dD8udG9Mb3dlckNhc2UoKSAhPT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dENvbW1hbmRzVHlwZS5NT05USFNcbiAgICAgICAgICAgICAgICAgICAgICA/ICdhdXRvJ1xuICAgICAgICAgICAgICAgICAgICAgIDogKGNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpPy5sZW5ndGggKyAxKSAqIDggKyAncHgnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3N0eWxlLnJpZ2h0XT1cIlxuICAgICAgICAgICAgICAgIGlzRm9jdXNJbnB1dCAmJlxuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgIT09XG4gICAgICAgICAgICAgICAgICAgIGlucHV0Q29tbWFuZHNUeXBlLk1PTlRIU1xuICAgICAgICAgICAgICAgICAgICA/ICcyOHB4J1xuICAgICAgICAgICAgICAgICAgICA6ICdhdXRvJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBMYWJlbCAtLT5cbiAgICBAaWYgKCFfaW5wdXRDb25maWcubXVsdGlTZWxlY3REcm9wZG93bkFjdGl2ZSkge1xuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIFtmb3JdPVwiX2lucHV0Q29uZmlnLm5hbWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1sYWJlbCB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX0ge3tcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8uY3VzdG9tQ2xhc3NcbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgIGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIHwgbGFiZWxDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVG91Y2hlZElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LmludmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udG91Y2hlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChfaW5wdXRDb25maWcubGFiZWwpIHtcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBfaW5wdXRDb25maWcubGFiZWwgfX0gPC9zcGFuPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKF9pbnB1dENvbmZpZy5tdWx0aXBsZUxhYmVsPy5sYWJlbHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIl9pbnB1dENvbmZpZy5tdWx0aXBsZUxhYmVsPy5jdXN0b21DbGFzcyFcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAnbXVsdGlwbGUtbGFiZWxzLXBvc2l0aW9uLW9uLWZvY3VzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZvY3VzSW5wdXQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcubXVsdGlwbGVJbnB1dFZhbHVlcz8ub3B0aW9ucz8ubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLmlzUmVxdWlyZWQgJiYgIV9pbnB1dENvbmZpZy5pc0Rpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgb2YgX2lucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmxhYmVscztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrIGlkZW50aWZ5XG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2xhYmVsPlxuICAgIH1cblxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgKGlucHV0KT1cImhhbmRsZUlucHV0KCRldmVudClcIlxuICAgICAgICBbcmVzdHJpY3RJbnB1dF09XCJpbnB1dENvbmZpZ1wiXG4gICAgICAgIHByaWNlRm9ybWF0XG4gICAgICAgIFtwcmljZVNlcGFyYXRvcl09XCJpbnB1dENvbmZpZy5wcmljZVNlcGFyYXRvclwiXG4gICAgICAgIChmb2N1cyk9XCJoYW5kbGVJbnB1dEZvY3VzKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJoYW5kbGVJbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgICAgIFtyZWFkT25seV09XCJfaW5wdXRDb25maWcucmVhZE9ubHlcIlxuICAgICAgICBbdHlwZV09XCJfaW5wdXRDb25maWcudHlwZSB8IGlucHV0VHlwZTogaXNUb2dnbGVQYXNzd29yZFwiXG4gICAgICAgIGNsYXNzPVwiaW5wdXQtY29udHJvbFxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLnRleHRUcmFuc2Zvcm0gfX1cbiAgICAgICAgICAgIHt7IF9pbnB1dENvbmZpZy50ZXh0QWxpZ24gfX1cbiAgICAgICAgICAgIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVxuICAgICAgICBcIlxuICAgICAgICBbYXBwTWF4VmFsdWVdPVwiaW5wdXRDb25maWcubWF4XCJcbiAgICAgICAgYXBwQ2Fwc0xvY2tcbiAgICAgICAgKGNhcHNMb2NrU3RhdHVzKT1cImhhbmRsZUNhcHNMb2NrKCRldmVudClcIlxuICAgICAgICBbbWFza109XCJfaW5wdXRDb25maWcubWFza1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgY29udHJvbFxuICAgICAgICAgICAgICAgIHwgaW5wdXRDbGFzc1xuICAgICAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnRvdWNoZWQhXG4gICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgOiBpc1Zpc2libGVDb21tYW5kc1xuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8uaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnRvdWNoZWRcbiAgICAgICAgICAgICAgICAgICAgOiBpc0Ryb3Bkb3duVG9nZ2xlclxuICAgICAgICAgICAgICAgICAgICA6IGlzRWRpdElucHV0XG4gICAgICAgICAgICAgICAgICAgIDogdGVtcGxhdGVcbiAgICAgICAgXCJcbiAgICAvPlxuXG4gICAgPCEtLSBQbGFjZWhvbGRlciBJY29uIG9uIFJpZ2h0IFNpZGUgLS0+XG4gICAgQGlmIChfaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlKSB7XG4gICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJwbGFjZWhvbGRlci1pY29uLXJpZ2h0LXNpZGUge3tcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uQ29sb3JcbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgIGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICB8IGlucHV0UGxhY2Vob2xkZXJJY29uUmlnaHRDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc1RvdWNoZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzcmNdPVwiXG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVySWNvblJpZ2h0U2lkZS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgIHwgY2FTdmc6ICdjb21tb24nXG4gICAgICAgICAgICBcIlxuICAgICAgICA+PC9zdmctaWNvbj5cbiAgICB9XG5cbiAgICA8IS0tIElucHV0IEVycm9yIE1lc3NhZ2UgLS0+XG4gICAgQGlmIChcbiAgICAgICAgISghY29udHJvbD8udmFsdWUgJiYgaXNGb2N1c0lucHV0KSAmJlxuICAgICAgICAoaXNUb3VjaGVkSW5wdXQgfHwgY29udHJvbD8udG91Y2hlZCB8fCBjb250cm9sPy52YWx1ZSkgJiZcbiAgICAgICAgY29udHJvbD8uaW52YWxpZCAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnLmlzSW52YWxpZFNlYXJjaEluRHJvcGRvd24gJiZcbiAgICAgICAgIV9pbnB1dENvbmZpZy5pc0Rpc2FibGVkXG4gICAgKSB7XG4gICAgICAgIEBpZiAoXG4gICAgICAgICAgICAhKF9pbnB1dENvbmZpZy5oaWRlRXJyb3JNZXNzYWdlIHx8IF9pbnB1dENvbmZpZy5lcnJvckluc2lkZUlucHV0KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZXJyb3Ige3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCI+XG4gICAgICAgICAgICAgICAge3sgY29udHJvbD8uZXJyb3JzIHwgaW5wdXRFcnJvcjogX2lucHV0Q29uZmlnLm5hbWUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gRXJyb3IgTWVzc2FnZSBJbnNpZGUgSW5wdXQgLS0+XG4gICAgICAgIEBpZiAoX2lucHV0Q29uZmlnLmVycm9ySW5zaWRlSW5wdXQpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItaW5zaWRlLWlucHV0IHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiPlxuICAgICAgICAgICAgICAgIHt7IGNvbnRyb2w/LmVycm9ycyB8IGlucHV0RXJyb3I6IF9pbnB1dENvbmZpZy5uYW1lIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5maXhlZFBsYWNob2xkZXIgJiYgaW5wdXQudmFsdWUpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1maXhlZC1wbGFjZWhvZGVyLWxhYmVsXCI+XG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcuZml4ZWRQbGFjaG9sZGVyIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
@@ -18,7 +18,7 @@ export class InputPatternPipe {
18
18
  };
19
19
  //return /^[0-9.]*$/;
20
20
  }
21
- else if (['phone'].includes(inputName)) {
21
+ else if (['phone', 'fax'].includes(inputName)) {
22
22
  return {
23
23
  regex: /^[0-9() -]*$/g
24
24
  };
@@ -323,4 +323,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
323
323
  standalone: true,
324
324
  }]
325
325
  }] });
326
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGF0dGVybi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvcGlwZXMvaW5wdXQtcGF0dGVybi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFNBQVMsQ0FBQyxTQUFpQixFQUFFLEdBQUcsSUFBVztRQUN2QyxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsRSxPQUFPO2dCQUNILEtBQUssRUFBRSx1REFBdUQ7Z0JBQzlELHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztRQUNOLENBQUM7YUFBTSxJQUFJLGlCQUFpQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLG1CQUFtQixFQUFFLElBQUk7Z0JBQ3pCLG1CQUFtQixFQUFFLElBQUk7YUFDNUIsQ0FBQztZQUNGLHFCQUFxQjtRQUN6QixDQUFDO2FBQU0sSUFBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBQyxDQUFDO1lBQ3JDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLGVBQWU7YUFDekIsQ0FBQTtRQUNMLENBQUM7YUFDSSxJQUNEO1lBQ0ksS0FBSztZQUNMLE9BQU87WUFDUCxpQkFBaUI7WUFDakIsY0FBYztZQUNkLGNBQWM7WUFDZCxLQUFLO1lBQ0wsV0FBVztZQUNYLGNBQWM7WUFDZCxjQUFjO1lBQ2QsUUFBUTtZQUNSLE9BQU87WUFDUCxn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WUFDWCx5QkFBeUIsRUFBRSxLQUFLO1lBQ2hDLHVCQUF1QixFQUFFLEtBQUs7WUFDOUIsbUJBQW1CLEVBQUUsS0FBSztZQUMxQixtQkFBbUIsRUFBRSxLQUFLO1NBQzdCLENBQUM7SUFDTixDQUFDOytHQTNTUSxnQkFBZ0I7NkdBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFKNUIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsY0FBYztvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2lucHV0UGF0dGVybicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRQYXR0ZXJuUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShpbnB1dE5hbWU6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgICAgICAgaWYgKFsnYnVzaW5lc3MgbmFtZScsICdzaG9wIG5hbWUnLCAnZnVlbCBzdG9wJ10uaW5jbHVkZXMoaW5wdXROYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05ISMnJCYlKCkqKywuL1s6Oz08Pj/Dp8Opw6LDqsOuw7TDu8Ogw6jDrMOyw7nDq8Ovw7xcXHMtXSokL2csXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmICgncHJpY2Utc2VwYXJhdG9yJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXlswLTkuXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGlzRGVjaW1hbEFuZERvdE9ubHk6IHRydWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXlswLTkuXSokLztcbiAgICAgICAgfSBlbHNlIGlmKFsncGhvbmUnXS5pbmNsdWRlcyhpbnB1dE5hbWUpKXtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eWzAtOSgpIC1dKiQvZ1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICdlaW4nLFxuICAgICAgICAgICAgICAgICdtYy9mZicsXG4gICAgICAgICAgICAgICAgJ3Bob25lLWV4dGVuc2lvbicsXG4gICAgICAgICAgICAgICAgJ2FjY291bnQtYmFuaycsXG4gICAgICAgICAgICAgICAgJ3JvdXRpbmctYmFuaycsXG4gICAgICAgICAgICAgICAgJ3NzbicsXG4gICAgICAgICAgICAgICAgJ2Z1ZWwtY2FyZCcsXG4gICAgICAgICAgICAgICAgJ2VtcHR5LXdlaWdodCcsXG4gICAgICAgICAgICAgICAgJ2NyZWRpdCBsaW1pdCcsXG4gICAgICAgICAgICAgICAgJ3BvIGJveCcsXG4gICAgICAgICAgICAgICAgJ3ByaWNlJyxcbiAgICAgICAgICAgICAgICAndHJhaWxlci12b2x1bWUnLFxuICAgICAgICAgICAgICAgICdyZXBhaXItb2RvbWV0ZXInLFxuICAgICAgICAgICAgICAgICd1c2RvdCcsXG4gICAgICAgICAgICAgICAgJ2lycCcsXG4gICAgICAgICAgICAgICAgJ3N0YXJ0aW5nJyxcbiAgICAgICAgICAgICAgICAnY3VzdG9tZXIgcGF5IHRlcm0nLFxuICAgICAgICAgICAgICAgICdjdXN0b21lciBjcmVkaXQnLFxuICAgICAgICAgICAgICAgICdkZWZhdWx0IGJhc2UnLFxuICAgICAgICAgICAgICAgICdlYWNoIG9jY3VycmVuY2UnLFxuICAgICAgICAgICAgICAgICdkYW1hZ2UnLFxuICAgICAgICAgICAgICAgICdwZXJzb25hbC1hZHZlci1pbmonLFxuICAgICAgICAgICAgICAgICdtZWRpY2FsIGV4cGVuc2VzJyxcbiAgICAgICAgICAgICAgICAnYm9kaWx5IGluanVyeScsXG4gICAgICAgICAgICAgICAgJ2dlbmVyYWwgYWdncmVnYXRlJyxcbiAgICAgICAgICAgICAgICAncHJvZHVjdHMtY29tcC1vcC1hZ2cnLFxuICAgICAgICAgICAgICAgICdjb21iaW5lZC1zaW5nbGUtbGltaXQnLFxuICAgICAgICAgICAgICAgICdzaW5nbGUtY29udmV5YW5jZScsXG4gICAgICAgICAgICAgICAgJ2RlZHVjdGFibGUnLFxuICAgICAgICAgICAgICAgICdjb21wcmVoLWNvbGxpc2lvbicsXG4gICAgICAgICAgICAgICAgJ3RyYWlsZXItdmFsdWUtaW5zdXJhbmNlLXBvbGljeScsXG4gICAgICAgICAgICAgICAgJ3JlbnQnLFxuICAgICAgICAgICAgICAgICdzYWxhcnknLFxuICAgICAgICAgICAgICAgICdtaWxlYWdlJyxcbiAgICAgICAgICAgICAgICAnbW9udGhzJyxcbiAgICAgICAgICAgICAgICAnZW1wdHkgd2VpZ2h0JyxcbiAgICAgICAgICAgICAgICAncXR5JyxcbiAgICAgICAgICAgICAgICAncHVyY2hhc2UgcHJpY2UnLFxuICAgICAgICAgICAgXS5pbmNsdWRlcyhpbnB1dE5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05XSokL2csXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eWzAtOV0qJC9nO1xuICAgICAgICB9IGVsc2UgaWYgKCdlbWFpbCcgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05ISMkJSYnKisvPT9eX2B7fH1+QC4tXSokL2csXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IHRydWUsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05ISMkJSYnKisvPT9eX2B7fH1+QC4tXSokL2c7XG4gICAgICAgIH0gZWxzZSBpZiAoJ2ludm9pY2UnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOS8tXSokL2csXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOS8tXSokL2c7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBbJ2FkZHJlc3MtdW5pdCcsICdkZXBhcnRtZW50JywgJ3ZlaGljbGUtdW5pdCddLmluY2x1ZGVzKGlucHV0TmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTldKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTldKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdmaXJzdCBuYW1lJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXonLFxccy4tXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16JyxcXHMuLV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2xhc3QgbmFtZScgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16JyxcXHMuLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEteicsXFxzLi1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdiYW5rIG5hbWUnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOSEjJyQmJSgpKissLi86Oz08Pj8tXltdKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTkhIyckJiUoKSorLC4vOjs9PD4/LV5bXSokLztcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIFsndmluLW51bWJlcicsICdpbnN1cmFuY2UtcG9saWN5JywgJ2lmdGEnXS5pbmNsdWRlcyhpbnB1dE5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05LV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOS1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCd0cnVjay10cmFpbGVyLW1vZGVsJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTlcXHMtXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05XFxzLV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ3llYXInID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eWzAtOV0kLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05XSQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdsaWNlbnNlIHBsYXRlJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTlcXHNdKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTlcXHNdKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdkZXNjcmlwdGlvbicgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05LS4sL1xcc10qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOS0uLC9cXHNdKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdkYmEgbmFtZScgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05ISMnJCYlKCkqKywuLzo7PTw+P15bLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOSEjJyQmJSgpKissLi86Oz08Pj9eWy1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdwZXIgbWlsZScgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05Ll0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eWzAtOS5dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdwZXIgc3RvcCcgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05XSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05XSokLztcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIFsnZW1lcmdlbmN5IG5hbWUnLCAncmVsYXRpb25zaGlwJywgJ3NjYWMnXS5pbmNsdWRlcyhpbnB1dE5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16JyxcXHMuLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEteicsXFxzLi1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdmdWVsIHN0b3JlJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTktXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05LV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2hvcycgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05XSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05XSokLztcbiAgICAgICAgfSBlbHNlIGlmIChbJ2Z1bGwgcGFya2luZyBzbG90JywgJ3Bhcmtpbmcgc2xvdCddLmluY2x1ZGVzKGlucHV0TmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eWzAtOSwtXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05LC1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdjZGwtbnVtYmVyJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTlcXHMqLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOVxccyotXSokLztcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIFsndXNlcm5hbWUnLCAnbmlja25hbWUnLCAndGVybWluYWwgbmFtZScsICdwYXNzd29yZCddLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgIGlucHV0TmFtZVxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOS4sXyEjXn5bPy88YEAkJSorPX17fDpcIjs+JicoKS1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTkuLF8hI15+Wz8vPGBAJCUqKz19e3w6XCI7PiYnKCktXSokLztcbiAgICAgICAgfSBlbHNlIGlmICgnZnVsbCBuYW1lJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTkuLC8hQCMkJV4mKigpXys9e31cIic6Pj88O1xccy1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTkuLC8hQCMkJV4mKigpXys9e31cIic6Pj88O1xccy1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCd0b2xsdmFsaWRhdGlvbicgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05LV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eWzAtOS1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKFsncHJlZml4JywgJ3N1ZmZpeCcsICdwYXJraW5nIG5hbWUnXS5pbmNsdWRlcyhpbnB1dE5hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTldKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTldKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdmaWxlIG5hbWUnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eWzoqP1wiPD58L10qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eWzoqP1wiPD58L10qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBbJ3Byb2R1Y2VyIG5hbWUnLCAnaW5zdXJlciBuYW1lJywgJ29mZmljZSBuYW1lJ10uaW5jbHVkZXMoaW5wdXROYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOSEjJyQmJSgpKissLi87Oj08Pj9bXi1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTkhIyckJiUoKSorLC4vOzo9PD4/W14tXSokLztcbiAgICAgICAgfSBlbHNlIGlmIChbJ2Z1bGwgY29udGFjdCBuYW1lJ10uaW5jbHVkZXMoaW5wdXROYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16XFxzXSskLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16XFxzXSskLztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZWdleDogLy4qLyxcbiAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICBpc0RlY2ltYWxBbmREb3RPbmx5OiBmYWxzZVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
326
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGF0dGVybi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvcGlwZXMvaW5wdXQtcGF0dGVybi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFNBQVMsQ0FBQyxTQUFpQixFQUFFLEdBQUcsSUFBVztRQUN2QyxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsRSxPQUFPO2dCQUNILEtBQUssRUFBRSx1REFBdUQ7Z0JBQzlELHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztRQUNOLENBQUM7YUFBTSxJQUFJLGlCQUFpQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLG1CQUFtQixFQUFFLElBQUk7Z0JBQ3pCLG1CQUFtQixFQUFFLElBQUk7YUFDNUIsQ0FBQztZQUNGLHFCQUFxQjtRQUN6QixDQUFDO2FBQU0sSUFBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQztZQUM1QyxPQUFPO2dCQUNILEtBQUssRUFBRSxlQUFlO2FBQ3pCLENBQUE7UUFDTCxDQUFDO2FBQ0ksSUFDRDtZQUNJLEtBQUs7WUFDTCxPQUFPO1lBQ1AsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxjQUFjO1lBQ2QsS0FBSztZQUNMLFdBQVc7WUFDWCxjQUFjO1lBQ2QsY0FBYztZQUNkLFFBQVE7WUFDUixP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RUFBRSxJQUFJO1lBQ1gseUJBQXlCLEVBQUUsS0FBSztZQUNoQyx1QkFBdUIsRUFBRSxLQUFLO1lBQzlCLG1CQUFtQixFQUFFLEtBQUs7WUFDMUIsbUJBQW1CLEVBQUUsS0FBSztTQUM3QixDQUFDO0lBQ04sQ0FBQzsrR0EzU1EsZ0JBQWdCOzZHQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBSjVCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdpbnB1dFBhdHRlcm4nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0UGF0dGVyblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oaW5wdXROYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgIGlmIChbJ2J1c2luZXNzIG5hbWUnLCAnc2hvcCBuYW1lJywgJ2Z1ZWwgc3RvcCddLmluY2x1ZGVzKGlucHV0TmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOSEjJyQmJSgpKissLi9bOjs9PD4/w6fDqcOiw6rDrsO0w7vDoMOow6zDssO5w6vDr8O8XFxzLV0qJC9nLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoJ3ByaWNlLXNlcGFyYXRvcicgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05Ll0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpc0RlY2ltYWxBbmREb3RPbmx5OiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05Ll0qJC87XG4gICAgICAgIH0gZWxzZSBpZihbJ3Bob25lJywgJ2ZheCddLmluY2x1ZGVzKGlucHV0TmFtZSkpe1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05KCkgLV0qJC9nXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgJ2VpbicsXG4gICAgICAgICAgICAgICAgJ21jL2ZmJyxcbiAgICAgICAgICAgICAgICAncGhvbmUtZXh0ZW5zaW9uJyxcbiAgICAgICAgICAgICAgICAnYWNjb3VudC1iYW5rJyxcbiAgICAgICAgICAgICAgICAncm91dGluZy1iYW5rJyxcbiAgICAgICAgICAgICAgICAnc3NuJyxcbiAgICAgICAgICAgICAgICAnZnVlbC1jYXJkJyxcbiAgICAgICAgICAgICAgICAnZW1wdHktd2VpZ2h0JyxcbiAgICAgICAgICAgICAgICAnY3JlZGl0IGxpbWl0JyxcbiAgICAgICAgICAgICAgICAncG8gYm94JyxcbiAgICAgICAgICAgICAgICAncHJpY2UnLFxuICAgICAgICAgICAgICAgICd0cmFpbGVyLXZvbHVtZScsXG4gICAgICAgICAgICAgICAgJ3JlcGFpci1vZG9tZXRlcicsXG4gICAgICAgICAgICAgICAgJ3VzZG90JyxcbiAgICAgICAgICAgICAgICAnaXJwJyxcbiAgICAgICAgICAgICAgICAnc3RhcnRpbmcnLFxuICAgICAgICAgICAgICAgICdjdXN0b21lciBwYXkgdGVybScsXG4gICAgICAgICAgICAgICAgJ2N1c3RvbWVyIGNyZWRpdCcsXG4gICAgICAgICAgICAgICAgJ2RlZmF1bHQgYmFzZScsXG4gICAgICAgICAgICAgICAgJ2VhY2ggb2NjdXJyZW5jZScsXG4gICAgICAgICAgICAgICAgJ2RhbWFnZScsXG4gICAgICAgICAgICAgICAgJ3BlcnNvbmFsLWFkdmVyLWluaicsXG4gICAgICAgICAgICAgICAgJ21lZGljYWwgZXhwZW5zZXMnLFxuICAgICAgICAgICAgICAgICdib2RpbHkgaW5qdXJ5JyxcbiAgICAgICAgICAgICAgICAnZ2VuZXJhbCBhZ2dyZWdhdGUnLFxuICAgICAgICAgICAgICAgICdwcm9kdWN0cy1jb21wLW9wLWFnZycsXG4gICAgICAgICAgICAgICAgJ2NvbWJpbmVkLXNpbmdsZS1saW1pdCcsXG4gICAgICAgICAgICAgICAgJ3NpbmdsZS1jb252ZXlhbmNlJyxcbiAgICAgICAgICAgICAgICAnZGVkdWN0YWJsZScsXG4gICAgICAgICAgICAgICAgJ2NvbXByZWgtY29sbGlzaW9uJyxcbiAgICAgICAgICAgICAgICAndHJhaWxlci12YWx1ZS1pbnN1cmFuY2UtcG9saWN5JyxcbiAgICAgICAgICAgICAgICAncmVudCcsXG4gICAgICAgICAgICAgICAgJ3NhbGFyeScsXG4gICAgICAgICAgICAgICAgJ21pbGVhZ2UnLFxuICAgICAgICAgICAgICAgICdtb250aHMnLFxuICAgICAgICAgICAgICAgICdlbXB0eSB3ZWlnaHQnLFxuICAgICAgICAgICAgICAgICdxdHknLFxuICAgICAgICAgICAgICAgICdwdXJjaGFzZSBwcmljZScsXG4gICAgICAgICAgICBdLmluY2x1ZGVzKGlucHV0TmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXlswLTldKiQvZyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05XSokL2c7XG4gICAgICAgIH0gZWxzZSBpZiAoJ2VtYWlsJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTkhIyQlJicqKy89P15fYHt8fX5ALi1dKiQvZyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogdHJ1ZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTkhIyQlJicqKy89P15fYHt8fX5ALi1dKiQvZztcbiAgICAgICAgfSBlbHNlIGlmICgnaW52b2ljZScgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05Ly1dKiQvZyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05Ly1dKiQvZztcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIFsnYWRkcmVzcy11bml0JywgJ2RlcGFydG1lbnQnLCAndmVoaWNsZS11bml0J10uaW5jbHVkZXMoaW5wdXROYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2ZpcnN0IG5hbWUnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEteicsXFxzLi1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXonLFxccy4tXSokLztcbiAgICAgICAgfSBlbHNlIGlmICgnbGFzdCBuYW1lJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXonLFxccy4tXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16JyxcXHMuLV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2JhbmsgbmFtZScgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05ISMnJCYlKCkqKywuLzo7PTw+Py1eW10qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOSEjJyQmJSgpKissLi86Oz08Pj8tXltdKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgWyd2aW4tbnVtYmVyJywgJ2luc3VyYW5jZS1wb2xpY3knLCAnaWZ0YSddLmluY2x1ZGVzKGlucHV0TmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTktXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05LV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ3RydWNrLXRyYWlsZXItbW9kZWwnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOVxccy1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTlcXHMtXSokLztcbiAgICAgICAgfSBlbHNlIGlmICgneWVhcicgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05XSQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXlswLTldJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2xpY2Vuc2UgcGxhdGUnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOVxcc10qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOVxcc10qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2Rlc2NyaXB0aW9uJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTktLiwvXFxzXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05LS4sL1xcc10qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2RiYSBuYW1lJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTkhIyckJiUoKSorLC4vOjs9PD4/XlstXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05ISMnJCYlKCkqKywuLzo7PTw+P15bLV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ3BlciBtaWxlJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXlswLTkuXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05Ll0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ3BlciBzdG9wJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXlswLTldKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXlswLTldKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgWydlbWVyZ2VuY3kgbmFtZScsICdyZWxhdGlvbnNoaXAnLCAnc2NhYyddLmluY2x1ZGVzKGlucHV0TmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXonLFxccy4tXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16JyxcXHMuLV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2Z1ZWwgc3RvcmUnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOS1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTktXSokLztcbiAgICAgICAgfSBlbHNlIGlmICgnaG9zJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXlswLTldKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXlswLTldKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKFsnZnVsbCBwYXJraW5nIHNsb3QnLCAncGFya2luZyBzbG90J10uaW5jbHVkZXMoaW5wdXROYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05LC1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXlswLTksLV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2NkbC1udW1iZXInID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOVxccyotXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05XFxzKi1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgWyd1c2VybmFtZScsICduaWNrbmFtZScsICd0ZXJtaW5hbCBuYW1lJywgJ3Bhc3N3b3JkJ10uaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgaW5wdXROYW1lXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05LixfISNefls/LzxgQCQlKis9fXt8OlwiOz4mJygpLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOS4sXyEjXn5bPy88YEAkJSorPX17fDpcIjs+JicoKS1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdmdWxsIG5hbWUnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOS4sLyFAIyQlXiYqKClfKz17fVwiJzo+Pzw7XFxzLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOS4sLyFAIyQlXiYqKClfKz17fVwiJzo+Pzw7XFxzLV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ3RvbGx2YWxpZGF0aW9uJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXlswLTktXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05LV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoWydwcmVmaXgnLCAnc3VmZml4JywgJ3BhcmtpbmcgbmFtZSddLmluY2x1ZGVzKGlucHV0TmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2ZpbGUgbmFtZScgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bOio/XCI8PnwvXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bOio/XCI8PnwvXSokLztcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIFsncHJvZHVjZXIgbmFtZScsICdpbnN1cmVyIG5hbWUnLCAnb2ZmaWNlIG5hbWUnXS5pbmNsdWRlcyhpbnB1dE5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05ISMnJCYlKCkqKywuLzs6PTw+P1teLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOSEjJyQmJSgpKissLi87Oj08Pj9bXi1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKFsnZnVsbCBjb250YWN0IG5hbWUnXS5pbmNsdWRlcyhpbnB1dE5hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXpcXHNdKyQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXpcXHNdKyQvO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlZ2V4OiAvLiovLFxuICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIGlzRGVjaW1hbEFuZERvdE9ubHk6IGZhbHNlXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
@@ -3316,7 +3316,7 @@ class InputPatternPipe {
3316
3316
  };
3317
3317
  //return /^[0-9.]*$/;
3318
3318
  }
3319
- else if (['phone'].includes(inputName)) {
3319
+ else if (['phone', 'fax'].includes(inputName)) {
3320
3320
  return {
3321
3321
  regex: /^[0-9() -]*$/g
3322
3322
  };
@@ -25166,7 +25166,8 @@ class InputTestComponent {
25166
25166
  : obj; // ✅ Apply mask
25167
25167
  this.inputValue = value;
25168
25168
  this.onChange(value); // Notify Angular form about the change
25169
- this.onTouched(); // Mark as touched
25169
+ if (value)
25170
+ this.onTouched(); // Mark as touched
25170
25171
  this.inputElement.nativeElement.value = value;
25171
25172
  this.chdet.detectChanges();
25172
25173
  }