@eqproject/eqp-dynamic-module 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/private/add-form-field/add-form-field.component.mjs +21 -3
- package/esm2020/lib/components/private/add-formula-field/add-formula-field.component.mjs +223 -0
- package/esm2020/lib/components/private/dynamic-module-field-fix/dynamic-module-field.component.mjs +3 -3
- package/esm2020/lib/components/private/field-templates/image-field-template/image-field-template.component.mjs +3 -2
- package/esm2020/lib/eqp-dynamic-module.module.mjs +12 -5
- package/esm2020/lib/modules/formula.model.mjs +265 -0
- package/esm2020/lib/services/utilityHelper.services.mjs +1 -1
- package/fesm2015/eqproject-eqp-dynamic-module.mjs +517 -11
- package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/fesm2020/eqproject-eqp-dynamic-module.mjs +515 -11
- package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/lib/components/private/add-form-field/add-form-field.component.d.ts +4 -0
- package/lib/components/private/add-formula-field/add-formula-field.component.d.ts +50 -0
- package/lib/eqp-dynamic-module.module.d.ts +13 -11
- package/lib/modules/formula.model.d.ts +32 -0
- package/package.json +3 -3
|
@@ -54,7 +54,8 @@ export class ImageFieldTemplateComponent {
|
|
|
54
54
|
if (!this.record[this.field.Name] || !Array.isArray(this.record[this.field.Name]) || !(this.record[this.field.Name].length > 0)) {
|
|
55
55
|
this.record[this.field.Name] = [JSON.parse(JSON.stringify(this.field.ContextualAttachment))];
|
|
56
56
|
}
|
|
57
|
-
|
|
57
|
+
if (this.field.AttachDefinition.MetadataFields != undefined)
|
|
58
|
+
this.preLoadedImageMetadataFormGroup = this.utilityService.CreateFormFormGroup(this.field.AttachDefinition.MetadataFields, this.record[this.field.Name][0]);
|
|
58
59
|
this.getImageDimensions();
|
|
59
60
|
}
|
|
60
61
|
this.updateField();
|
|
@@ -189,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
189
190
|
type: ViewChild,
|
|
190
191
|
args: ["dialogImageDrowing", { static: true }]
|
|
191
192
|
}] } });
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9pbWFnZS1maWVsZC10ZW1wbGF0ZS9pbWFnZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2ltYWdlLWZpZWxkLXRlbXBsYXRlL2ltYWdlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUE4QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakksT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFHM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7O0FBS25GOzs7O0dBSUc7QUFDSCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQy9ELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7SUFDaEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDeEQsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMs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LElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQ7O09BRUc7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7O3dIQWpMVSwyQkFBMkI7NEdBQTNCLDJCQUEyQixrVEMzQnhDLHd4R0F3RGM7MkZEN0JELDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSxzQkFBc0I7bUlBTXZCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFZNEMsa0JBQWtCO3NCQUFwRSxTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbWFnZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpZWxkcy9pbWFnZUZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgQXZhaWxhYmxlSW1hZ2VFeHRlbnNpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpZWxkcy9hdHRhY2htZW50RmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgSUJhc2VGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvaUJhc2VGaWVsZENvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEkxOG5JbnRlcmZhY2UgfSBmcm9tICdAZXFwcm9qZWN0L2VxcC1pbWctZHJhd2luZyc7XHJcblxyXG4vKipcclxuICogTWV0b2RvIHBlciByZWN1cGVyYXJlLCBhIHBhcnRpcmUgZGEgdW4gQmxvYiwgbGEgc3RyaW5nYSBjb250ZW5lbnRlIGlsIGJhc2U2NCBkZWwgZmlsZS5cclxuICogVXNhdG8gcGVyIHByZW5kZXJlIGlsIGJhc2U2NCBkZWxsJ2ltbWFnaW5lIGRvcG8gY2hlIGwndXRlbnRlIGNpIGhhIGRpc2VnbmF0byBzb3ByYS5cclxuICogQHBhcmFtIGZpbGUgQmxvYiBjaGUgcmFwcHJlc2VudGEgbCdpbW1hZ2luZS5cclxuICovXHJcbmNvbnN0IHRvQmFzZTY0ID0gZmlsZSA9PiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gIHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQudG9TdHJpbmcoKSk7XHJcbiAgcmVhZGVyLm9uZXJyb3IgPSBlcnJvciA9PiByZWplY3QoZXJyb3IpO1xyXG59KTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaW1hZ2UtZmllbGQtdGVtcGxhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1hZ2VGaWVsZFRlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIElCYXNlRmllbGRDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSByZWNvcmQ6IFJlY29yZDtcclxuICBASW5wdXQoKSBmaWVsZDogSW1hZ2VGaWVsZDtcclxuICBAT3V0cHV0KCkgcmVjb3JkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVjb3JkPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPigpO1xyXG5cclxuICBwcmVMb2FkZWRJbWFnZU1ldGFkYXRhRm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICAvLyNyZWdpb24gUHJvcHJpZXTDoCBwZXIgY29uZmlndXJhcmUgaWwgY29tcG9uZW50ZSBuZ3gtaW1hZ2UtZHJhd2luZyBlIGFwcmlyZSBpbCByZWxhdGl2byBkaWFsb2cuXHJcbiAgcHVibGljIHdpZHRoID0gbnVsbDtcclxuICBwdWJsaWMgaGVpZ2h0ID0gbnVsbDtcclxuICBwdWJsaWMgaTE4bjogSTE4bkludGVyZmFjZSA9IHtcclxuICAgIHNhdmVCdG46ICdTYWx2YSBtb2RpZmljaGUnLFxyXG4gICAgY2FuY2VsQnRuOiAnUmljYXJpY2Egb3JpZ2luYWxlJ1xyXG4gIH07XHJcbiAgZGlhbG9nSW1hZ2VEcm93aW5nUmVmOiBNYXREaWFsb2dSZWY8VGVtcGxhdGVSZWY8YW55Pj47XHJcbiAgQFZpZXdDaGlsZChcImRpYWxvZ0ltYWdlRHJvd2luZ1wiLCB7IHN0YXRpYzogdHJ1ZSB9KSBkaWFsb2dJbWFnZURyb3dpbmc6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eUhlbHBlclNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5Gb3JtRm9ybUdyb3VwID0gdGhpcy5maWVsZC5Gb3JtRm9ybUdyb3VwO1xyXG5cclxuICAgIGlmICghdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLkFsbG93ZWRFeHRlbnNpb25zKSB7XHJcbiAgICAgIHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5BbGxvd2VkRXh0ZW5zaW9ucyA9IEF2YWlsYWJsZUltYWdlRXh0ZW5zaW9ucy5tYXAoZXh0ID0+IGV4dC5rZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5OYW1lID0gdGhpcy5maWVsZC5OYW1lO1xyXG4gICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLkxhYmVsID0gdGhpcy5maWVsZC5MYWJlbDtcclxuICAgIHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5EZXNjcmlwdGlvbiA9IHRoaXMuZmllbGQuRGVzY3JpcHRpb247XHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uUmVxdWlyZWQgPSB0aGlzLmZpZWxkLlJlcXVpcmVkO1xyXG4gICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLkZvcm11bGEgPSB0aGlzLmZpZWxkLkZvcm11bGE7XHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uRmllbGRWYWx1ZSA9IHRoaXMuZmllbGQuRmllbGRWYWx1ZTtcclxuXHJcbiAgICAvLyBTZSBpbCBjYW1wbyBwcmV2ZWRlIHVuJ2ltbWFnaW5lIHByZS1jYXJpY2F0YSAoSW1hZ2VJc0NvbnRleHR1YWxBdHRhY2htZW50ID09IHRydWUpIHN1bGxhIHF1YWxlIFxyXG4gICAgLy8gbCd1dGVudGUgcHXDsiBkaXNlZ25hcmUgKEVuYWJsZURyYXdpbmcgPT0gdHJ1ZSkgZSBub24gc29ubyBpbiBtb2RpZmljYSBkaSB1biByZWNvcmQgKG92dmVybyBuZWwgcmVjb3JkXHJcbiAgICAvLyBub24gaG8gdW4naW1tYWdpbmUgZ2nDoCBzYWx2YXRhKSBhbGxvcmEgaW1wb3N0YSBsJ2ltbWFnaW5lIHByZSBjYXJpY2F0YSBjb21lIHZhbG9yZSBpbml6aWFsZVxyXG4gICAgLy8gbmVsIHJlY29yZCBjb3JyZW50ZSBlIG5lIHJlY3VwZXJhIGxlIGRpbWVuc2lvbmkgcGVyIHZpc3VhbGl6emFyZSBjb3JyZXR0YW1lbnRlIGwnYXJlYSBpbiBjdWkgIFxyXG4gICAgLy8gbCd1dGVudGUgcHXDsiBkaXNlZ25hcmUuIFNlIG5vbiBlZmZldHR1YSBtb2RpZmljaGUgbyBub24gc2FsdmEgaSBkaXNlZ25pIGZhdHRpIHZpZW5lIHNhbHZhdGFcclxuICAgIC8vIGwnaW1tYWdpbmUgb3JpZ2luYWxlLlxyXG4gICAgaWYgKHRoaXMuZmllbGQuSW1hZ2VJc0NvbnRleHR1YWxBdHRhY2htZW50ICYmIHRoaXMuZmllbGQuQ29udGV4dHVhbEF0dGFjaG1lbnQpIHtcclxuICAgICAgaWYgKCF0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdIHx8ICFBcnJheS5pc0FycmF5KHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0pIHx8ICEodGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXS5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBbSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZpZWxkLkNvbnRleHR1YWxBdHRhY2htZW50KSldO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucHJlTG9hZGVkSW1hZ2VNZXRhZGF0YUZvcm1Hcm91cCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuQ3JlYXRlRm9ybUZvcm1Hcm91cCh0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uTWV0YWRhdGFGaWVsZHMsIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV1bMF0pO1xyXG4gICAgICB0aGlzLmdldEltYWdlRGltZW5zaW9ucygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVGaWVsZCgpO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAvLyBTZSB2aWVuZSBtb2RpZmljYXRvIGlsIHZhbG9yZSBkaSBcIm5nTW9kZWxJbnB1dFwiIGFsbG9yYSBhZ2dpb3JuYSBsJ2lucHV0XHJcbiAgICBpZiAoY2hhbmdlc1sncmVjb3JkJ10gIT0gdW5kZWZpbmVkICYmIGNoYW5nZXNbJ3JlY29yZCddLmZpcnN0Q2hhbmdlID09IGZhbHNlICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLmN1cnJlbnRWYWx1ZSkgIT0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1sncmVjb3JkJ10ucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5yZWNvcmQgPSBjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgIHRoaXMudXBkYXRlRmllbGQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICB1cGRhdGVNZXRhZGF0YVZhbGlkaXR5KCkge1xyXG4gICAgaWYgKHRoaXMucHJlTG9hZGVkSW1hZ2VNZXRhZGF0YUZvcm1Hcm91cC5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuZmllbGQuRm9ybUZvcm1Hcm91cC5jb250cm9sc1t0aGlzLmZpZWxkLk5hbWVdLnNldEVycm9ycyh7ICdpbmNvcnJlY3QnOiB0cnVlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5maWVsZC5Gb3JtRm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGQuTmFtZV0uc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblJlY29yZFZhbHVlQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBhZ2dpb3JuYXJlIGlsIHZhbG9yZSBkZWwgY2FtcG8gcXVhbmRvIHF1ZXN0byDDqCByYXBwcmVzZW50YXRvIGRhIHVuYSBmb3JtdWxhLlxyXG4gICAqL1xyXG4gIHVwZGF0ZUZpZWxkKCkge1xyXG4gICAgaWYgKHRoaXMuZmllbGQuRm9ybXVsYSkge1xyXG4gICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gVXRpbGl0eUhlbHBlclNlcnZpY2UuRXZhbHVhdGVGaWVsZEZvcm11bGEodGhpcy5maWVsZC5Gb3JtdWxhLCB0aGlzLnJlY29yZCwgbnVsbCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5maWVsZC5WaXNpYmxlSWYpIHtcclxuICAgICAgdGhpcy5maWVsZC5Jbkxpc3RWaWV3ID0gVXRpbGl0eUhlbHBlclNlcnZpY2UuRXZhbHVhdGVGaWVsZEZvcm11bGEodGhpcy5maWVsZC5WaXNpYmxlSWYsIHRoaXMucmVjb3JkLCBudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICByZXNldFByZUxvYWRlZEltYWdlKCkge1xyXG4gICAgdGhpcy53aWR0aCA9IG51bGw7XHJcbiAgICB0aGlzLmhlaWdodCA9IG51bGw7XHJcbiAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gW0pTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5maWVsZC5Db250ZXh0dWFsQXR0YWNobWVudCkpXTtcclxuICAgIHRoaXMuZ2V0SW1hZ2VEaW1lbnNpb25zKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gaW52b2NhdG8gcXVhbmRvIHZlbmdvbm8gYWdnaXVudGkgbyBlbGltaW5hdGkgZ2xpIGFsbGVnYXRpIG5lbCBjb21wb25lbnRlIEF0dGFjaG1lbnRGaWVsZFRlbXBsYXRlLlxyXG4gICAqIFNlIGwnSW1hZ2VGaWVsZCDDqCBhYmlsaXRhdG8gYWwgZGlzZWdubyAoRW5hYmxlRHJhd2luZyA9PSB0cnVlKSwgbm9uIHBlcm1ldHRlIGFsbGVnYXRpIG11bHRpcGxpIChJc011bGl0QXR0YWNoID09IGZhbHNlKVxyXG4gICAqIGUgbmVsIFJlY29yZCBjb3JyZW50ZSDDqCBwcmVzZW50ZSBsJ2ltbWFnaW5lIGNhcmljYXRhIGRhbGwndXRlbnRlIGFsbG9yYSByZWN1cGVyYSBsZSBkaW1lbnNpb25pIGRlbGwnaW1tYWdpbmUgZVxyXG4gICAqIGFwcmUgaWwgZGlhbG9nIGNvbiBpbCBjb21wb25lbnRlIGltYWdlLWRyYXdpbmcgcGVyIHBlcm1ldHRlcmUgaWwgZGlzZWdubyBzdWxsJ2ltbWFnaW5lIGFwcGVuYSBjYXJpY2F0YS5cclxuICAgKi9cclxuICBvbkF0dGFjaG1lbnRzQ2hhbmdlKCkge1xyXG4gICAgaWYgKCF0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uSXNNdWx0aUF0dGFjaCAmJiB0aGlzLmZpZWxkLkVuYWJsZURyYXdpbmcgJiYgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSAmJiB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdWzBdKSB7XHJcbiAgICAgIHRoaXMuZ2V0SW1hZ2VEaW1lbnNpb25zKCk7XHJcbiAgICAgIHRoaXMuZGlhbG9nSW1hZ2VEcm93aW5nUmVmID0gdGhpcy5kaWFsb2cub3Blbih0aGlzLmRpYWxvZ0ltYWdlRHJvd2luZywge1xyXG4gICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgICB3aWR0aDogJzc1JSdcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gaW52b2NhdG8gYWwgc2FsdmF0YWdnaW8gZGVsbCdpbW1hZ2luZSBkYWwgY29tcG9uZW50ZSBpbWFnZS1kcmF3aW5nLlxyXG4gICAqIFRyYXNmb3JtYSBpbCBCbG9iIHJpY2V2dXRvIGluIHVuIGJhc2U2NCwgYWdnaW9ybmEgaWwgRmlsZUNvbnRldFR5cGUgZSBpbCBGaWxlRGF0YUJhc2U2NFxyXG4gICAqIGRlbGwnYWxsZWdhdG8gY2FyaWNhdG8gZSBjaGl1ZGUgaWwgZGlhbG9nIGluIGN1aSBkaXNlZ25hcmUuXHJcbiAgICogQHBhcmFtIGRyYXduUGljdHVyZSBCbG9iIGRlbGwnaW1tYWdpbmUgZGlzZWduYXRhLlxyXG4gICAqL1xyXG4gIGFzeW5jIHNhdmVEcm93bmluZyhkcmF3blBpY3R1cmU6IEJsb2IpIHtcclxuICAgIGxldCBiYXNlNjRGaWxlID0gYXdhaXQgdG9CYXNlNjQoZHJhd25QaWN0dXJlKTtcclxuICAgIGlmIChiYXNlNjRGaWxlKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV1bMF0uRmlsZUNvbnRlbnRUeXBlID0gYmFzZTY0RmlsZS5zcGxpdChcIixcIilbMF0uc3BsaXQoXCI6XCIpWzFdLnNwbGl0KFwiO1wiKVswXTtcclxuICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXVswXS5GaWxlRGF0YUJhc2U2NCA9IGJhc2U2NEZpbGUuc3BsaXQoXCIsXCIpWzFdO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGlhbG9nSW1hZ2VEcm93aW5nUmVmKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VJbWFnZURyb3dpbmdEaWFsb2coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgY2hpdWRlcmUgaWwgZGlhbG9nIGluIGN1aSBkaXNlZ25hcmUgc3VsbCdpbW1hZ2luZSBjYXJpYXRhIGUgc3Z1b3RhcmUgbGUgZGltZW5zaW9uaS5cclxuICAgKi9cclxuICBjbG9zZUltYWdlRHJvd2luZ0RpYWxvZygpIHtcclxuICAgIHRoaXMuZGlhbG9nSW1hZ2VEcm93aW5nUmVmLmNsb3NlKCk7XHJcbiAgICB0aGlzLndpZHRoID0gbnVsbDtcclxuICAgIHRoaXMuaGVpZ2h0ID0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgcmVjdXBlcmFyZSBsZSBkaW1lbnNpb25pIGRlbGwnaW1tYWdpbmUgY2FyaWNhdGEgcGVyIG1vc3RyYXJlIGNvcnJldHRhbWVudGVcclxuICAgKiBpbCBjb21wb25lbnRlIGltYWdlLWRyYXdpbmcuIFNlIG5vbiB2aWVuZSBlc2VndWl0byBxdWVzdG8gcGFzc2FnZ2lvIGwnYXJlYSBpbiBjdWkgZGlzZWduYXJlIFxyXG4gICAqIMOoIHBpw7kgZ3JhbmRlIGRlbGwnaW1tYWdpbmUgc3Rlc3NhIGUgYWwgc2FsdmF0YWdnaW8gaSB0cmF0dGkgZGlzZWduYXRpIHZlbmdvbm8gc3Bvc3RhdGkuIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0SW1hZ2VEaW1lbnNpb25zKCkge1xyXG4gICAgdmFyIGJsb2I6IEJsb2IgPSB0aGlzLmdldEJsb2JGcm9tQmFzZTY0KCk7XHJcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgaW1hZ2Uuc3JjID0gZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICBpbWFnZS5vbmxvYWQgPSBycyA9PiB7XHJcbiAgICAgICAgdGhpcy5oZWlnaHQgPSBycy5jdXJyZW50VGFyZ2V0WydoZWlnaHQnXTtcclxuICAgICAgICB0aGlzLndpZHRoID0gcnMuY3VycmVudFRhcmdldFsnd2lkdGgnXTtcclxuICAgICAgfTtcclxuICAgIH07XHJcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgY29udmVydGlyZSBpbCBiYXNlNjQgZGkgdW4naW1tYWdpbmUgaW4gdW4gQmxvYi5cclxuICAgKiBOZWNlc3NhcmlvIHBlciBpbCByZWN1cGVybyBkZWxsZSBkaW1lbnNpb25pIGRlbGwnaW1tYWdpbmUgY2FyaWNhdGEgYSBwYXJ0aXJlIGRhbCBzdW8gYmFzZTY0LlxyXG4gICAqIFZpZW5lIGVzZWd1aXRvIHNvbG8gbmVsIGNhc28gaW4gY3VpIGwnSW1hZ2VGaWVsZCBub24gYW1tZXR0ZSBhbGxlZ2F0aSBtdWx0aXBsaS5cclxuICAgKiBAcmV0dXJucyBSZXN0aXR1aXNjZSBpbCBCbG9iIGRlbGwnaW1tYWdpbmUgY2FyaWNhdGEuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRCbG9iRnJvbUJhc2U2NCgpIHtcclxuICAgIGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYih0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdWzBdLkZpbGVEYXRhQmFzZTY0KTtcclxuICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGJ5dGVOdW1iZXJzW2ldID0gYnl0ZUNoYXJhY3RlcnMuY2hhckNvZGVBdChpKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGJ5dGVOdW1iZXJzKTtcclxuICAgIHJldHVybiBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdWzBdLkZpbGVDb250ZW50VHlwZSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgZW1ldHRlcmUgbCdldmVudG8gY2hlIGlsIHZhbG9yZSBkZWwgcmVjb3JkIMOoIGNhbWJpYXRvLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25SZWNvcmRWYWx1ZUNoYW5nZSgpIHtcclxuICAgIGlmICghdGhpcy5maWVsZC5Gb3JtdWxhKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkQ2hhbmdlLmVtaXQodGhpcy5yZWNvcmQpO1xyXG4gICAgfVxyXG4gIH1cclxufSIsIjwhLS0gVklTVUFMSVpaQVpJT05FIEFMTEVHQVRPIFBSRSBDQVJJQ0FUTyBDT04gUE9TU0lCSUxJVEEnIERJIERJU0VHTk8gLS0+XHJcbjxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImZpZWxkLkltYWdlSXNDb250ZXh0dWFsQXR0YWNobWVudCAmJiBmaWVsZC5Db250ZXh0dWFsQXR0YWNobWVudFwiPlxyXG4gICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgY29sLW1kLTYgY29sLWxnLTRcIj5cclxuICAgICAgICAgIDxwIGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgICAgICAgICB7eyBmaWVsZC5EZXNjcmlwdGlvbiArIChmaWVsZC5SZXF1aXJlZCA/IFwiICpcIiA6IFwiXCIpfX1cclxuICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICBOb21lIGltbWFnaW5lOiB7eyBmaWVsZC5JbWdOYW1lfX1cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICAgIDxlcXAtaW1nLWRyYXdpbmdcclxuICAgICAgICAgICAgICAgKm5nSWY9XCJmaWVsZC5FbmFibGVEcmF3aW5nICYmIHJlY29yZFtmaWVsZC5OYW1lXSAmJiByZWNvcmRbZmllbGQuTmFtZV1bMF0gJiYgd2lkdGggIT0gbnVsbCAmJiBoZWlnaHQgIT0gbnVsbFwiXHJcbiAgICAgICAgICAgICAgIFtzcmNdPVwiJ2RhdGE6JysgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdLkZpbGVDb250ZW50VHlwZSArICc7YmFzZTY0LCcrIHJlY29yZFtmaWVsZC5OYW1lXVswXS5GaWxlRGF0YUJhc2U2NFwiXHJcbiAgICAgICAgICAgICAgIFtzaG93Q2FuY2VsQnV0dG9uXT1cImZhbHNlXCIgW2VuYWJsZUxvYWRBbm90aGVySW1hZ2VdPVwiZmFsc2VcIiBbZW5hYmxlUmVtb3ZlSW1hZ2VdPVwiZmFsc2VcIiBbd2lkdGhdPVwid2lkdGhcIlxyXG4gICAgICAgICAgICAgICBbaGVpZ2h0XT1cImhlaWdodFwiIFtpMThuXT1cImkxOG5cIiBbc2hvd0NhbmNlbEJ1dHRvbl09XCJ0cnVlXCIgKHNhdmUpPVwic2F2ZURyb3duaW5nKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAoY2FuY2VsKT1cInJlc2V0UHJlTG9hZGVkSW1hZ2UoKVwiPlxyXG4gICAgICAgICAgPC9lcXAtaW1nLWRyYXdpbmc+XHJcblxyXG4gICAgICAgICAgPGltZyAqbmdJZj1cIiFmaWVsZC5FbmFibGVEcmF3aW5nXCJcclxuICAgICAgICAgICAgICAgW3NyY109XCInZGF0YTonKyByZWNvcmRbZmllbGQuTmFtZV1bMF0uRmlsZUNvbnRlbnRUeXBlKyAnO2Jhc2U2NCwnKyByZWNvcmRbZmllbGQuTmFtZV1bMF0uRmlsZURhdGFCYXNlNjRcIj5cclxuICAgICA8L2Rpdj5cclxuXHJcbiAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtNiBjb2wtbGctOFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgICAgICpuZ0lmPVwiZmllbGQuQXR0YWNoRGVmaW5pdGlvbiAmJiBmaWVsZC5BdHRhY2hEZWZpbml0aW9uLk1ldGFkYXRhRmllbGRzICYmIHByZUxvYWRlZEltYWdlTWV0YWRhdGFGb3JtR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIiAqbmdGb3I9XCJsZXQgbWV0YWRhdGEgb2YgZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5NZXRhZGF0YUZpZWxkc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwidXRpbGl0eVNlcnZpY2UuZ2V0RmllbGRTeWxlQ2xhc3MobWV0YWRhdGEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR5bmFtaWMtbW9kdWxlLWZpZWxkLWZpeCAjZmllbGRUZW1wbGF0ZSBbZmllbGRdPVwibWV0YWRhdGFcIiBbZm9ybV09XCJwcmVMb2FkZWRJbWFnZU1ldGFkYXRhRm9ybUdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWNvcmRdPVwicmVjb3JkW2ZpZWxkLk5hbWVdWzBdXCIgKHJlY29yZENoYW5nZSk9XCJ1cGRhdGVNZXRhZGF0YVZhbGlkaXR5KClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2R5bmFtaWMtbW9kdWxlLWZpZWxkLWZpeD5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIENPTVBPTkVOVEUgSU4gQ1VJIENBUklDQVJFIE5VT1ZJIEFMTEVHQVRJIC0tPlxyXG48YXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZSBbKHJlY29yZCldPVwicmVjb3JkXCIgW2ZpZWxkXT1cImZpZWxkLkF0dGFjaERlZmluaXRpb25cIiBbb25seUltYWdlc109XCJ0cnVlXCJcclxuICAgICAob25BdHRhY2htZW50c0NoYW5nZSk9XCJvbkF0dGFjaG1lbnRzQ2hhbmdlKClcIiAqbmdJZj1cIiFmaWVsZC5JbWFnZUlzQ29udGV4dHVhbEF0dGFjaG1lbnRcIj5cclxuPC9hdHRhY2htZW50LWZpZWxkLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBESUFMT0cgUEVSIERJU0VHTkFSRSBTVUwgTlVPVk8gQUxMRUdBVE8gQ0FSSUNBVE8gLS0+XHJcbjxuZy10ZW1wbGF0ZSAjZGlhbG9nSW1hZ2VEcm93aW5nPlxyXG4gICAgIDxkaXYgKm5nSWY9XCJmaWVsZC5FbmFibGVEcmF3aW5nICYmIHJlY29yZFtmaWVsZC5OYW1lXSAmJiByZWNvcmRbZmllbGQuTmFtZV1bMF0gJiYgd2lkdGggIT0gbnVsbCAmJiBoZWlnaHQgIT0gbnVsbFwiXHJcbiAgICAgICAgICBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgPGVxcC1pbWctZHJhd2luZyBbc2hvd0NhbmNlbEJ1dHRvbl09XCJmYWxzZVwiIFtlbmFibGVMb2FkQW5vdGhlckltYWdlXT1cImZhbHNlXCIgW2VuYWJsZVJlbW92ZUltYWdlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIidkYXRhOicrIHJlY29yZFtmaWVsZC5OYW1lXVswXS5GaWxlQ29udGVudFR5cGUgKyAnO2Jhc2U2NCwnKyByZWNvcmRbZmllbGQuTmFtZV1bMF0uRmlsZURhdGFCYXNlNjRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpMThuXT1cImkxOG5cIiBbc2hvd0NhbmNlbEJ1dHRvbl09XCJmYWxzZVwiIChzYXZlKT1cInNhdmVEcm93bmluZygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgIDwvZXFwLWltZy1kcmF3aW5nPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgPC9kaXY+XHJcbiAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yIG1iLTFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIG1hdC1yYWlzZWQtYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlSW1hZ2VEcm93aW5nRGlhbG9nKClcIiB0eXBlPVwiYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQW5udWxsYSBkaXNlZ25vXHJcbiAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9pbWFnZS1maWVsZC10ZW1wbGF0ZS9pbWFnZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2ltYWdlLWZpZWxkLXRlbXBsYXRlL2ltYWdlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUE4QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakksT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFHM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7O0FBS25GOzs7O0dBSUc7QUFDSCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQy9ELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7SUFDaEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDeEQsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMs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QUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRDs7T0FFRztJQUNLLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs7d0hBbkxVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLGtUQzNCeEMsd3hHQXdEYzsyRkQ3QkQsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLHNCQUFzQjttSUFNdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQVk0QyxrQkFBa0I7c0JBQXBFLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEltYWdlRmllbGQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmllbGRzL2ltYWdlRmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBBdmFpbGFibGVJbWFnZUV4dGVuc2lvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmllbGRzL2F0dGFjaG1lbnRGaWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IFJlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9yZWNvcmQubW9kZWwnO1xyXG5pbXBvcnQgeyBJQmFzZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9pQmFzZUZpZWxkQ29tcG9uZW50LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFV0aWxpdHlIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdXRpbGl0eUhlbHBlci5zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSTE4bkludGVyZmFjZSB9IGZyb20gJ0BlcXByb2plY3QvZXFwLWltZy1kcmF3aW5nJztcclxuXHJcbi8qKlxyXG4gKiBNZXRvZG8gcGVyIHJlY3VwZXJhcmUsIGEgcGFydGlyZSBkYSB1biBCbG9iLCBsYSBzdHJpbmdhIGNvbnRlbmVudGUgaWwgYmFzZTY0IGRlbCBmaWxlLlxyXG4gKiBVc2F0byBwZXIgcHJlbmRlcmUgaWwgYmFzZTY0IGRlbGwnaW1tYWdpbmUgZG9wbyBjaGUgbCd1dGVudGUgY2kgaGEgZGlzZWduYXRvIHNvcHJhLlxyXG4gKiBAcGFyYW0gZmlsZSBCbG9iIGNoZSByYXBwcmVzZW50YSBsJ2ltbWFnaW5lLlxyXG4gKi9cclxuY29uc3QgdG9CYXNlNjQgPSBmaWxlID0+IG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHJlc29sdmUocmVhZGVyLnJlc3VsdC50b1N0cmluZygpKTtcclxuICByZWFkZXIub25lcnJvciA9IGVycm9yID0+IHJlamVjdChlcnJvcik7XHJcbn0pO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbWFnZS1maWVsZC10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWFnZUZpZWxkVGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgSUJhc2VGaWVsZENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIHJlY29yZDogUmVjb3JkO1xyXG4gIEBJbnB1dCgpIGZpZWxkOiBJbWFnZUZpZWxkO1xyXG4gIEBPdXRwdXQoKSByZWNvcmRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxSZWNvcmQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ+KCk7XHJcblxyXG4gIHByZUxvYWRlZEltYWdlTWV0YWRhdGFGb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXA7XHJcblxyXG4gIC8vI3JlZ2lvbiBQcm9wcmlldMOgIHBlciBjb25maWd1cmFyZSBpbCBjb21wb25lbnRlIG5neC1pbWFnZS1kcmF3aW5nIGUgYXByaXJlIGlsIHJlbGF0aXZvIGRpYWxvZy5cclxuICBwdWJsaWMgd2lkdGggPSBudWxsO1xyXG4gIHB1YmxpYyBoZWlnaHQgPSBudWxsO1xyXG4gIHB1YmxpYyBpMThuOiBJMThuSW50ZXJmYWNlID0ge1xyXG4gICAgc2F2ZUJ0bjogJ1NhbHZhIG1vZGlmaWNoZScsXHJcbiAgICBjYW5jZWxCdG46ICdSaWNhcmljYSBvcmlnaW5hbGUnXHJcbiAgfTtcclxuICBkaWFsb2dJbWFnZURyb3dpbmdSZWY6IE1hdERpYWxvZ1JlZjxUZW1wbGF0ZVJlZjxhbnk+PjtcclxuICBAVmlld0NoaWxkKFwiZGlhbG9nSW1hZ2VEcm93aW5nXCIsIHsgc3RhdGljOiB0cnVlIH0pIGRpYWxvZ0ltYWdlRHJvd2luZzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5SGVscGVyU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgXHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uRm9ybUZvcm1Hcm91cCA9IHRoaXMuZmllbGQuRm9ybUZvcm1Hcm91cDtcclxuXHJcbiAgICBpZiAoIXRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5BbGxvd2VkRXh0ZW5zaW9ucykge1xyXG4gICAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uQWxsb3dlZEV4dGVuc2lvbnMgPSBBdmFpbGFibGVJbWFnZUV4dGVuc2lvbnMubWFwKGV4dCA9PiBleHQua2V5KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uTmFtZSA9IHRoaXMuZmllbGQuTmFtZTtcclxuICAgIHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5MYWJlbCA9IHRoaXMuZmllbGQuTGFiZWw7XHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uRGVzY3JpcHRpb24gPSB0aGlzLmZpZWxkLkRlc2NyaXB0aW9uO1xyXG4gICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLlJlcXVpcmVkID0gdGhpcy5maWVsZC5SZXF1aXJlZDtcclxuICAgIHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5Gb3JtdWxhID0gdGhpcy5maWVsZC5Gb3JtdWxhO1xyXG4gICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLkZpZWxkVmFsdWUgPSB0aGlzLmZpZWxkLkZpZWxkVmFsdWU7XHJcblxyXG4gICAgLy8gU2UgaWwgY2FtcG8gcHJldmVkZSB1bidpbW1hZ2luZSBwcmUtY2FyaWNhdGEgKEltYWdlSXNDb250ZXh0dWFsQXR0YWNobWVudCA9PSB0cnVlKSBzdWxsYSBxdWFsZSBcclxuICAgIC8vIGwndXRlbnRlIHB1w7IgZGlzZWduYXJlIChFbmFibGVEcmF3aW5nID09IHRydWUpIGUgbm9uIHNvbm8gaW4gbW9kaWZpY2EgZGkgdW4gcmVjb3JkIChvdnZlcm8gbmVsIHJlY29yZFxyXG4gICAgLy8gbm9uIGhvIHVuJ2ltbWFnaW5lIGdpw6Agc2FsdmF0YSkgYWxsb3JhIGltcG9zdGEgbCdpbW1hZ2luZSBwcmUgY2FyaWNhdGEgY29tZSB2YWxvcmUgaW5pemlhbGVcclxuICAgIC8vIG5lbCByZWNvcmQgY29ycmVudGUgZSBuZSByZWN1cGVyYSBsZSBkaW1lbnNpb25pIHBlciB2aXN1YWxpenphcmUgY29ycmV0dGFtZW50ZSBsJ2FyZWEgaW4gY3VpICBcclxuICAgIC8vIGwndXRlbnRlIHB1w7IgZGlzZWduYXJlLiBTZSBub24gZWZmZXR0dWEgbW9kaWZpY2hlIG8gbm9uIHNhbHZhIGkgZGlzZWduaSBmYXR0aSB2aWVuZSBzYWx2YXRhXHJcbiAgICAvLyBsJ2ltbWFnaW5lIG9yaWdpbmFsZS5cclxuICAgIGlmICh0aGlzLmZpZWxkLkltYWdlSXNDb250ZXh0dWFsQXR0YWNobWVudCAmJiB0aGlzLmZpZWxkLkNvbnRleHR1YWxBdHRhY2htZW50KSB7XHJcbiAgICAgIGlmICghdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSB8fCAhQXJyYXkuaXNBcnJheSh0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdKSB8fCAhKHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0ubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gW0pTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5maWVsZC5Db250ZXh0dWFsQXR0YWNobWVudCkpXTtcclxuICAgICAgfVxyXG4gICAgIGlmKHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5NZXRhZGF0YUZpZWxkcyAhPSB1bmRlZmluZWQpIFxyXG4gICAgICB0aGlzLnByZUxvYWRlZEltYWdlTWV0YWRhdGFGb3JtR3JvdXAgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLkNyZWF0ZUZvcm1Gb3JtR3JvdXAodGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLk1ldGFkYXRhRmllbGRzLCB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdWzBdKTtcclxuICAgICAgdGhpcy5nZXRJbWFnZURpbWVuc2lvbnMoKTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlRmllbGQoKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgLy8gU2UgdmllbmUgbW9kaWZpY2F0byBpbCB2YWxvcmUgZGkgXCJuZ01vZGVsSW5wdXRcIiBhbGxvcmEgYWdnaW9ybmEgbCdpbnB1dFxyXG4gICAgaWYgKGNoYW5nZXNbJ3JlY29yZCddICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VzWydyZWNvcmQnXS5maXJzdENoYW5nZSA9PSBmYWxzZSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWUpICE9IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkID0gY2hhbmdlc1sncmVjb3JkJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgdXBkYXRlTWV0YWRhdGFWYWxpZGl0eSgpIHtcclxuICAgIGlmICh0aGlzLnByZUxvYWRlZEltYWdlTWV0YWRhdGFGb3JtR3JvdXAuaW52YWxpZCkge1xyXG4gICAgICB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXAuY29udHJvbHNbdGhpcy5maWVsZC5OYW1lXS5zZXRFcnJvcnMoeyAnaW5jb3JyZWN0JzogdHJ1ZSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmllbGQuRm9ybUZvcm1Hcm91cC5jb250cm9sc1t0aGlzLmZpZWxkLk5hbWVdLnNldEVycm9ycyhudWxsKTtcclxuICAgIH1cclxuICAgIHRoaXMub25SZWNvcmRWYWx1ZUNoYW5nZSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgYWdnaW9ybmFyZSBpbCB2YWxvcmUgZGVsIGNhbXBvIHF1YW5kbyBxdWVzdG8gw6ggcmFwcHJlc2VudGF0byBkYSB1bmEgZm9ybXVsYS5cclxuICAgKi9cclxuICB1cGRhdGVGaWVsZCgpIHtcclxuICAgIGlmICh0aGlzLmZpZWxkLkZvcm11bGEpIHtcclxuICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKHRoaXMuZmllbGQuRm9ybXVsYSwgdGhpcy5yZWNvcmQsIG51bGwpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmllbGQuVmlzaWJsZUlmKSB7XHJcbiAgICAgIHRoaXMuZmllbGQuSW5MaXN0VmlldyA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKHRoaXMuZmllbGQuVmlzaWJsZUlmLCB0aGlzLnJlY29yZCwgbnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcmVzZXRQcmVMb2FkZWRJbWFnZSgpIHtcclxuICAgIHRoaXMud2lkdGggPSBudWxsO1xyXG4gICAgdGhpcy5oZWlnaHQgPSBudWxsO1xyXG4gICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IFtKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmllbGQuQ29udGV4dHVhbEF0dGFjaG1lbnQpKV07XHJcbiAgICB0aGlzLmdldEltYWdlRGltZW5zaW9ucygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIGludm9jYXRvIHF1YW5kbyB2ZW5nb25vIGFnZ2l1bnRpIG8gZWxpbWluYXRpIGdsaSBhbGxlZ2F0aSBuZWwgY29tcG9uZW50ZSBBdHRhY2htZW50RmllbGRUZW1wbGF0ZS5cclxuICAgKiBTZSBsJ0ltYWdlRmllbGQgw6ggYWJpbGl0YXRvIGFsIGRpc2Vnbm8gKEVuYWJsZURyYXdpbmcgPT0gdHJ1ZSksIG5vbiBwZXJtZXR0ZSBhbGxlZ2F0aSBtdWx0aXBsaSAoSXNNdWxpdEF0dGFjaCA9PSBmYWxzZSlcclxuICAgKiBlIG5lbCBSZWNvcmQgY29ycmVudGUgw6ggcHJlc2VudGUgbCdpbW1hZ2luZSBjYXJpY2F0YSBkYWxsJ3V0ZW50ZSBhbGxvcmEgcmVjdXBlcmEgbGUgZGltZW5zaW9uaSBkZWxsJ2ltbWFnaW5lIGVcclxuICAgKiBhcHJlIGlsIGRpYWxvZyBjb24gaWwgY29tcG9uZW50ZSBpbWFnZS1kcmF3aW5nIHBlciBwZXJtZXR0ZXJlIGlsIGRpc2Vnbm8gc3VsbCdpbW1hZ2luZSBhcHBlbmEgY2FyaWNhdGEuXHJcbiAgICovXHJcbiAgb25BdHRhY2htZW50c0NoYW5nZSgpIHtcclxuICAgIGlmICghdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLklzTXVsdGlBdHRhY2ggJiYgdGhpcy5maWVsZC5FbmFibGVEcmF3aW5nICYmIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gJiYgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXVswXSkge1xyXG4gICAgICB0aGlzLmdldEltYWdlRGltZW5zaW9ucygpO1xyXG4gICAgICB0aGlzLmRpYWxvZ0ltYWdlRHJvd2luZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4odGhpcy5kaWFsb2dJbWFnZURyb3dpbmcsIHtcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgICAgd2lkdGg6ICc3NSUnXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIGludm9jYXRvIGFsIHNhbHZhdGFnZ2lvIGRlbGwnaW1tYWdpbmUgZGFsIGNvbXBvbmVudGUgaW1hZ2UtZHJhd2luZy5cclxuICAgKiBUcmFzZm9ybWEgaWwgQmxvYiByaWNldnV0byBpbiB1biBiYXNlNjQsIGFnZ2lvcm5hIGlsIEZpbGVDb250ZXRUeXBlIGUgaWwgRmlsZURhdGFCYXNlNjRcclxuICAgKiBkZWxsJ2FsbGVnYXRvIGNhcmljYXRvIGUgY2hpdWRlIGlsIGRpYWxvZyBpbiBjdWkgZGlzZWduYXJlLlxyXG4gICAqIEBwYXJhbSBkcmF3blBpY3R1cmUgQmxvYiBkZWxsJ2ltbWFnaW5lIGRpc2VnbmF0YS5cclxuICAgKi9cclxuICBhc3luYyBzYXZlRHJvd25pbmcoZHJhd25QaWN0dXJlOiBCbG9iKSB7XHJcbiAgICBsZXQgYmFzZTY0RmlsZSA9IGF3YWl0IHRvQmFzZTY0KGRyYXduUGljdHVyZSk7XHJcbiAgICBpZiAoYmFzZTY0RmlsZSkge1xyXG4gICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdWzBdLkZpbGVDb250ZW50VHlwZSA9IGJhc2U2NEZpbGUuc3BsaXQoXCIsXCIpWzBdLnNwbGl0KFwiOlwiKVsxXS5zcGxpdChcIjtcIilbMF07XHJcbiAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV1bMF0uRmlsZURhdGFCYXNlNjQgPSBiYXNlNjRGaWxlLnNwbGl0KFwiLFwiKVsxXTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRpYWxvZ0ltYWdlRHJvd2luZ1JlZikge1xyXG4gICAgICB0aGlzLmNsb3NlSW1hZ2VEcm93aW5nRGlhbG9nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGNoaXVkZXJlIGlsIGRpYWxvZyBpbiBjdWkgZGlzZWduYXJlIHN1bGwnaW1tYWdpbmUgY2FyaWF0YSBlIHN2dW90YXJlIGxlIGRpbWVuc2lvbmkuXHJcbiAgICovXHJcbiAgY2xvc2VJbWFnZURyb3dpbmdEaWFsb2coKSB7XHJcbiAgICB0aGlzLmRpYWxvZ0ltYWdlRHJvd2luZ1JlZi5jbG9zZSgpO1xyXG4gICAgdGhpcy53aWR0aCA9IG51bGw7XHJcbiAgICB0aGlzLmhlaWdodCA9IG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIHJlY3VwZXJhcmUgbGUgZGltZW5zaW9uaSBkZWxsJ2ltbWFnaW5lIGNhcmljYXRhIHBlciBtb3N0cmFyZSBjb3JyZXR0YW1lbnRlXHJcbiAgICogaWwgY29tcG9uZW50ZSBpbWFnZS1kcmF3aW5nLiBTZSBub24gdmllbmUgZXNlZ3VpdG8gcXVlc3RvIHBhc3NhZ2dpbyBsJ2FyZWEgaW4gY3VpIGRpc2VnbmFyZSBcclxuICAgKiDDqCBwacO5IGdyYW5kZSBkZWxsJ2ltbWFnaW5lIHN0ZXNzYSBlIGFsIHNhbHZhdGFnZ2lvIGkgdHJhdHRpIGRpc2VnbmF0aSB2ZW5nb25vIHNwb3N0YXRpLiBcclxuICAgKi9cclxuICBwcml2YXRlIGdldEltYWdlRGltZW5zaW9ucygpIHtcclxuICAgIHZhciBibG9iOiBCbG9iID0gdGhpcy5nZXRCbG9iRnJvbUJhc2U2NCgpO1xyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgICAgIGltYWdlLnNyYyA9IGUudGFyZ2V0LnJlc3VsdDtcclxuICAgICAgaW1hZ2Uub25sb2FkID0gcnMgPT4ge1xyXG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gcnMuY3VycmVudFRhcmdldFsnaGVpZ2h0J107XHJcbiAgICAgICAgdGhpcy53aWR0aCA9IHJzLmN1cnJlbnRUYXJnZXRbJ3dpZHRoJ107XHJcbiAgICAgIH07XHJcbiAgICB9O1xyXG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGNvbnZlcnRpcmUgaWwgYmFzZTY0IGRpIHVuJ2ltbWFnaW5lIGluIHVuIEJsb2IuXHJcbiAgICogTmVjZXNzYXJpbyBwZXIgaWwgcmVjdXBlcm8gZGVsbGUgZGltZW5zaW9uaSBkZWxsJ2ltbWFnaW5lIGNhcmljYXRhIGEgcGFydGlyZSBkYWwgc3VvIGJhc2U2NC5cclxuICAgKiBWaWVuZSBlc2VndWl0byBzb2xvIG5lbCBjYXNvIGluIGN1aSBsJ0ltYWdlRmllbGQgbm9uIGFtbWV0dGUgYWxsZWdhdGkgbXVsdGlwbGkuXHJcbiAgICogQHJldHVybnMgUmVzdGl0dWlzY2UgaWwgQmxvYiBkZWxsJ2ltbWFnaW5lIGNhcmljYXRhLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0QmxvYkZyb21CYXNlNjQoKSB7XHJcbiAgICBjb25zdCBieXRlQ2hhcmFjdGVycyA9IGF0b2IodGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXVswXS5GaWxlRGF0YUJhc2U2NCk7XHJcbiAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShieXRlQ2hhcmFjdGVycy5sZW5ndGgpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlQ2hhcmFjdGVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBieXRlTnVtYmVyc1tpXSA9IGJ5dGVDaGFyYWN0ZXJzLmNoYXJDb2RlQXQoaSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XHJcbiAgICByZXR1cm4gbmV3IEJsb2IoW2J5dGVBcnJheV0sIHsgdHlwZTogdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXVswXS5GaWxlQ29udGVudFR5cGUgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGVtZXR0ZXJlIGwnZXZlbnRvIGNoZSBpbCB2YWxvcmUgZGVsIHJlY29yZCDDqCBjYW1iaWF0by5cclxuICAgKi9cclxuICBwcml2YXRlIG9uUmVjb3JkVmFsdWVDaGFuZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuZmllbGQuRm9ybXVsYSkge1xyXG4gICAgICB0aGlzLnJlY29yZENoYW5nZS5lbWl0KHRoaXMucmVjb3JkKTtcclxuICAgIH1cclxuICB9XHJcbn0iLCI8IS0tIFZJU1VBTElaWkFaSU9ORSBBTExFR0FUTyBQUkUgQ0FSSUNBVE8gQ09OIFBPU1NJQklMSVRBJyBESSBESVNFR05PIC0tPlxyXG48ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJmaWVsZC5JbWFnZUlzQ29udGV4dHVhbEF0dGFjaG1lbnQgJiYgZmllbGQuQ29udGV4dHVhbEF0dGFjaG1lbnRcIj5cclxuICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGNvbC1tZC02IGNvbC1sZy00XCI+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cIm1iLTJcIj5cclxuICAgICAgICAgICAgICAge3sgZmllbGQuRGVzY3JpcHRpb24gKyAoZmllbGQuUmVxdWlyZWQgPyBcIiAqXCIgOiBcIlwiKX19XHJcbiAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgTm9tZSBpbW1hZ2luZToge3sgZmllbGQuSW1nTmFtZX19XHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8ZXFwLWltZy1kcmF3aW5nXHJcbiAgICAgICAgICAgICAgICpuZ0lmPVwiZmllbGQuRW5hYmxlRHJhd2luZyAmJiByZWNvcmRbZmllbGQuTmFtZV0gJiYgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdICYmIHdpZHRoICE9IG51bGwgJiYgaGVpZ2h0ICE9IG51bGxcIlxyXG4gICAgICAgICAgICAgICBbc3JjXT1cIidkYXRhOicrIHJlY29yZFtmaWVsZC5OYW1lXVswXS5GaWxlQ29udGVudFR5cGUgKyAnO2Jhc2U2NCwnKyByZWNvcmRbZmllbGQuTmFtZV1bMF0uRmlsZURhdGFCYXNlNjRcIlxyXG4gICAgICAgICAgICAgICBbc2hvd0NhbmNlbEJ1dHRvbl09XCJmYWxzZVwiIFtlbmFibGVMb2FkQW5vdGhlckltYWdlXT1cImZhbHNlXCIgW2VuYWJsZVJlbW92ZUltYWdlXT1cImZhbHNlXCIgW3dpZHRoXT1cIndpZHRoXCJcclxuICAgICAgICAgICAgICAgW2hlaWdodF09XCJoZWlnaHRcIiBbaTE4bl09XCJpMThuXCIgW3Nob3dDYW5jZWxCdXR0b25dPVwidHJ1ZVwiIChzYXZlKT1cInNhdmVEcm93bmluZygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKGNhbmNlbCk9XCJyZXNldFByZUxvYWRlZEltYWdlKClcIj5cclxuICAgICAgICAgIDwvZXFwLWltZy1kcmF3aW5nPlxyXG5cclxuICAgICAgICAgIDxpbWcgKm5nSWY9XCIhZmllbGQuRW5hYmxlRHJhd2luZ1wiXHJcbiAgICAgICAgICAgICAgIFtzcmNdPVwiJ2RhdGE6JysgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdLkZpbGVDb250ZW50VHlwZSsgJztiYXNlNjQsJysgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdLkZpbGVEYXRhQmFzZTY0XCI+XHJcbiAgICAgPC9kaXY+XHJcblxyXG4gICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgY29sLW1kLTYgY29sLWxnLThcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cImZpZWxkLkF0dGFjaERlZmluaXRpb24gJiYgZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5NZXRhZGF0YUZpZWxkcyAmJiBwcmVMb2FkZWRJbWFnZU1ldGFkYXRhRm9ybUdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nRm9yPVwibGV0IG1ldGFkYXRhIG9mIGZpZWxkLkF0dGFjaERlZmluaXRpb24uTWV0YWRhdGFGaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInV0aWxpdHlTZXJ2aWNlLmdldEZpZWxkU3lsZUNsYXNzKG1ldGFkYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeW5hbWljLW1vZHVsZS1maWVsZC1maXggI2ZpZWxkVGVtcGxhdGUgW2ZpZWxkXT1cIm1ldGFkYXRhXCIgW2Zvcm1dPVwicHJlTG9hZGVkSW1hZ2VNZXRhZGF0YUZvcm1Hcm91cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVjb3JkXT1cInJlY29yZFtmaWVsZC5OYW1lXVswXVwiIChyZWNvcmRDaGFuZ2UpPVwidXBkYXRlTWV0YWRhdGFWYWxpZGl0eSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9keW5hbWljLW1vZHVsZS1maWVsZC1maXg+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSBDT01QT05FTlRFIElOIENVSSBDQVJJQ0FSRSBOVU9WSSBBTExFR0FUSSAtLT5cclxuPGF0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUgWyhyZWNvcmQpXT1cInJlY29yZFwiIFtmaWVsZF09XCJmaWVsZC5BdHRhY2hEZWZpbml0aW9uXCIgW29ubHlJbWFnZXNdPVwidHJ1ZVwiXHJcbiAgICAgKG9uQXR0YWNobWVudHNDaGFuZ2UpPVwib25BdHRhY2htZW50c0NoYW5nZSgpXCIgKm5nSWY9XCIhZmllbGQuSW1hZ2VJc0NvbnRleHR1YWxBdHRhY2htZW50XCI+XHJcbjwvYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZT5cclxuXHJcbjwhLS0gRElBTE9HIFBFUiBESVNFR05BUkUgU1VMIE5VT1ZPIEFMTEVHQVRPIENBUklDQVRPIC0tPlxyXG48bmctdGVtcGxhdGUgI2RpYWxvZ0ltYWdlRHJvd2luZz5cclxuICAgICA8ZGl2ICpuZ0lmPVwiZmllbGQuRW5hYmxlRHJhd2luZyAmJiByZWNvcmRbZmllbGQuTmFtZV0gJiYgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdICYmIHdpZHRoICE9IG51bGwgJiYgaGVpZ2h0ICE9IG51bGxcIlxyXG4gICAgICAgICAgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgIDxlcXAtaW1nLWRyYXdpbmcgW3Nob3dDYW5jZWxCdXR0b25dPVwiZmFsc2VcIiBbZW5hYmxlTG9hZEFub3RoZXJJbWFnZV09XCJmYWxzZVwiIFtlbmFibGVSZW1vdmVJbWFnZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCInZGF0YTonKyByZWNvcmRbZmllbGQuTmFtZV1bMF0uRmlsZUNvbnRlbnRUeXBlICsgJztiYXNlNjQsJysgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdLkZpbGVEYXRhQmFzZTY0XCJcclxuICAgICAgICAgICAgICAgICAgICBbaTE4bl09XCJpMThuXCIgW3Nob3dDYW5jZWxCdXR0b25dPVwiZmFsc2VcIiAoc2F2ZSk9XCJzYXZlRHJvd25pbmcoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICA8L2VxcC1pbWctZHJhd2luZz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgIDwvZGl2PlxyXG4gICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMiBtYi0xXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIHRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBtYXQtcmFpc2VkLWJ1dHRvblwiIChjbGljayk9XCJjbG9zZUltYWdlRHJvd2luZ0RpYWxvZygpXCIgdHlwZT1cImJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEFubnVsbGEgZGlzZWdub1xyXG4gICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
@@ -25,6 +25,8 @@ import { AddFormRecordComponent } from './components/private/form-records/add-fo
|
|
|
25
25
|
import { DynamicModuleFieldComponent } from './components/private/dynamic-module-field/dynamic-module-field.component';
|
|
26
26
|
import { SpinnerComponent } from './components/private/spinner/spinner.component';
|
|
27
27
|
import { DynamicModuleFieldFixComponent } from './components/private/dynamic-module-field-fix/dynamic-module-field.component';
|
|
28
|
+
import { AddFormulaComponent } from './components/private/add-formula-field/add-formula-field.component';
|
|
29
|
+
import { BrowserModule } from '@angular/platform-browser';
|
|
28
30
|
import * as i0 from "@angular/core";
|
|
29
31
|
export class EqpDynamicModuleModule {
|
|
30
32
|
}
|
|
@@ -44,7 +46,8 @@ EqpDynamicModuleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
|
|
|
44
46
|
AddFormRecordComponent,
|
|
45
47
|
DynamicModuleFieldComponent,
|
|
46
48
|
DynamicModuleFieldFixComponent,
|
|
47
|
-
SpinnerComponent
|
|
49
|
+
SpinnerComponent,
|
|
50
|
+
AddFormulaComponent], imports: [MaterialModule,
|
|
48
51
|
FormsModule,
|
|
49
52
|
CommonModule,
|
|
50
53
|
ReactiveFormsModule,
|
|
@@ -54,7 +57,8 @@ EqpDynamicModuleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
|
|
|
54
57
|
EqpDatetimepickerModule,
|
|
55
58
|
EqpFiltersModule,
|
|
56
59
|
EqpNumericModule,
|
|
57
|
-
EqpImgDrawingModule
|
|
60
|
+
EqpImgDrawingModule,
|
|
61
|
+
BrowserModule], exports: [EqpDynamicModuleComponent,
|
|
58
62
|
EqpDynamicModuleConfiguratorComponent] });
|
|
59
63
|
EqpDynamicModuleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: EqpDynamicModuleModule, imports: [MaterialModule,
|
|
60
64
|
FormsModule,
|
|
@@ -66,7 +70,8 @@ EqpDynamicModuleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
|
|
|
66
70
|
EqpDatetimepickerModule,
|
|
67
71
|
EqpFiltersModule,
|
|
68
72
|
EqpNumericModule,
|
|
69
|
-
EqpImgDrawingModule
|
|
73
|
+
EqpImgDrawingModule,
|
|
74
|
+
BrowserModule] });
|
|
70
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: EqpDynamicModuleModule, decorators: [{
|
|
71
76
|
type: NgModule,
|
|
72
77
|
args: [{
|
|
@@ -87,6 +92,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
87
92
|
DynamicModuleFieldComponent,
|
|
88
93
|
DynamicModuleFieldFixComponent,
|
|
89
94
|
SpinnerComponent,
|
|
95
|
+
AddFormulaComponent
|
|
90
96
|
],
|
|
91
97
|
imports: [
|
|
92
98
|
MaterialModule,
|
|
@@ -99,7 +105,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
99
105
|
EqpDatetimepickerModule,
|
|
100
106
|
EqpFiltersModule,
|
|
101
107
|
EqpNumericModule,
|
|
102
|
-
EqpImgDrawingModule
|
|
108
|
+
EqpImgDrawingModule,
|
|
109
|
+
BrowserModule
|
|
103
110
|
],
|
|
104
111
|
exports: [
|
|
105
112
|
EqpDynamicModuleComponent,
|
|
@@ -107,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
107
114
|
]
|
|
108
115
|
}]
|
|
109
116
|
}] });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXFwLWR5bmFtaWMtbW9kdWxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2VxcC1keW5hbWljLW1vZHVsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLGlHQUFpRyxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdGQUF3RixDQUFDO0FBQ3BJLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhGQUE4RixDQUFDO0FBQzdJLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdGQUF3RixDQUFDO0FBQ3BJLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdHQUFnRyxDQUFDO0FBQ2hKLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhGQUE4RixDQUFDO0FBQzdJLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG9HQUFvRyxDQUFDO0FBQ3JKLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9HQUFvRyxDQUFDO0FBQ3RKLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBGQUEwRixDQUFDO0FBQ3ZJLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtFQUErRSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZFQUE2RSxDQUFDO0FBQ3JILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBQzlILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUF5QzFELE1BQU0sT0FBTyxzQkFBc0I7O21IQUF0QixzQkFBc0I7b0hBQXRCLHNCQUFzQixpQkFyQy9CLHlCQUF5QjtRQUN6QixxQ0FBcUM7UUFDckMscUJBQXFCO1FBQ3JCLDBCQUEwQjtRQUMxQiw2QkFBNkI7UUFDN0IsMEJBQTBCO1FBQzFCLDhCQUE4QjtRQUM5Qiw2QkFBNkI7UUFDN0IsK0JBQStCO1FBQy9CLGdDQUFnQztRQUNoQywyQkFBMkI7UUFDM0IsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0QiwyQkFBMkI7UUFDM0IsOEJBQThCO1FBQzlCLGdCQUFnQjtRQUNoQixtQkFBbUIsYUFHbkIsY0FBYztRQUNkLFdBQVc7UUFDWCxZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLGNBQWM7UUFDZCxvQkFBb0I7UUFDcEIsZUFBZTtRQUNmLHVCQUF1QjtRQUN2QixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixhQUFhLGFBR2IseUJBQXlCO1FBQ3pCLHFDQUFxQztvSEFHNUIsc0JBQXNCLFlBbEIvQixjQUFjO1FBQ2QsV0FBVztRQUNYLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsY0FBYztRQUNkLG9CQUFvQjtRQUNwQixlQUFlO1FBQ2YsdUJBQXVCO1FBQ3ZCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGFBQWE7MkZBT0osc0JBQXNCO2tCQXZDbEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oseUJBQXlCO3dCQUN6QixxQ0FBcUM7d0JBQ3JDLHFCQUFxQjt3QkFDckIsMEJBQTBCO3dCQUMxQiw2QkFBNkI7d0JBQzdCLDBCQUEwQjt3QkFDMUIsOEJBQThCO3dCQUM5Qiw2QkFBNkI7d0JBQzdCLCtCQUErQjt3QkFDL0IsZ0NBQWdDO3dCQUNoQywyQkFBMkI7d0JBQzNCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QiwyQkFBMkI7d0JBQzNCLDhCQUE4Qjt3QkFDOUIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsYUFBYTtxQkFDZDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AseUJBQXlCO3dCQUN6QixxQ0FBcUM7cUJBQ3RDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEVxcER5bmFtaWNNb2R1bGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZXhwb3J0ZWQvZXFwLWR5bmFtaWMtbW9kdWxlL2VxcC1keW5hbWljLW1vZHVsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4vbW9kdWxlcy9tYXRlcmlhbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBFcXBUYWJsZU1vZHVsZSB9IGZyb20gJ0BlcXByb2plY3QvZXFwLXRhYmxlJztcclxuaW1wb3J0IHsgRXFwQXR0YWNobWVudHNNb2R1bGUgfSBmcm9tICdAZXFwcm9qZWN0L2VxcC1hdHRhY2htZW50cyc7XHJcbmltcG9ydCB7IEVxcFNlbGVjdE1vZHVsZSB9IGZyb20gJ0BlcXByb2plY3QvZXFwLXNlbGVjdCc7XHJcbmltcG9ydCB7IEVxcERhdGV0aW1lcGlja2VyTW9kdWxlIH0gZnJvbSAnQGVxcHJvamVjdC9lcXAtZGF0ZXRpbWVwaWNrZXInO1xyXG5pbXBvcnQgeyBFcXBJbWdEcmF3aW5nTW9kdWxlIH0gZnJvbSAnQGVxcHJvamVjdC9lcXAtaW1nLWRyYXdpbmcnO1xyXG5pbXBvcnQgeyBFcXBGaWx0ZXJzTW9kdWxlIH0gZnJvbSAnQGVxcHJvamVjdC9lcXAtZmlsdGVycyc7XHJcbmltcG9ydCB7IEVxcE51bWVyaWNNb2R1bGUgfSBmcm9tICdAZXFwcm9qZWN0L2VxcC1udW1lcmljJztcclxuaW1wb3J0IHsgRXFwRHluYW1pY01vZHVsZUNvbmZpZ3VyYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9leHBvcnRlZC9lcXAtZHluYW1pYy1tb2R1bGUtY29uZmlndXJhdG9yL2VxcC1keW5hbWljLW1vZHVsZS1jb25maWd1cmF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvYWRkLWZvcm0tZmllbGQvYWRkLWZvcm0tZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dEZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvdGV4dC1maWVsZC10ZW1wbGF0ZS90ZXh0LWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJvb2xlYW5GaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2Jvb2xlYW4tZmllbGQtdGVtcGxhdGUvYm9vbGVhbi1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlRmllbGRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9kYXRlLWZpZWxkLXRlbXBsYXRlL2RhdGUtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGFyZWFGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL3RleHRhcmVhLWZpZWxkLXRlbXBsYXRlL3RleHRhcmVhLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE51bWVyaWNGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL251bWVyaWMtZmllbGQtdGVtcGxhdGUvbnVtZXJpYy1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaXN0VmFsdWVGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2xpc3QtdmFsdWUtZmllbGQtdGVtcGxhdGUvbGlzdC12YWx1ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50RmllbGRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9hdHRhY2htZW50LWZpZWxkLXRlbXBsYXRlL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW1hZ2VGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2ltYWdlLWZpZWxkLXRlbXBsYXRlL2ltYWdlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RGb3JtUmVjb3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1yZWNvcmRzL2xpc3QtZm9ybS1yZWNvcmQvbGlzdC1mb3JtLXJlY29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRGb3JtUmVjb3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1yZWNvcmRzL2FkZC1mb3JtLXJlY29yZC9hZGQtZm9ybS1yZWNvcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZHluYW1pYy1tb2R1bGUtZmllbGQvZHluYW1pYy1tb2R1bGUtZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlRmllbGRGaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9keW5hbWljLW1vZHVsZS1maWVsZC1maXgvZHluYW1pYy1tb2R1bGUtZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkRm9ybXVsYUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2FkZC1mb3JtdWxhLWZpZWxkL2FkZC1mb3JtdWxhLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBFcXBEeW5hbWljTW9kdWxlQ29tcG9uZW50LFxyXG4gICAgRXFwRHluYW1pY01vZHVsZUNvbmZpZ3VyYXRvckNvbXBvbmVudCxcclxuICAgIEFkZEZvcm1GaWVsZENvbXBvbmVudCxcclxuICAgIFRleHRGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQm9vbGVhbkZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBEYXRlRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIFRleHRhcmVhRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIE51bWVyaWNGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTGlzdFZhbHVlRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIEF0dGFjaG1lbnRGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgSW1hZ2VGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTGlzdEZvcm1SZWNvcmRDb21wb25lbnQsXHJcbiAgICBBZGRGb3JtUmVjb3JkQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY01vZHVsZUZpZWxkQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY01vZHVsZUZpZWxkRml4Q29tcG9uZW50LFxyXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcclxuICAgIEFkZEZvcm11bGFDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdGVyaWFsTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRXFwVGFibGVNb2R1bGUsXHJcbiAgICBFcXBBdHRhY2htZW50c01vZHVsZSxcclxuICAgIEVxcFNlbGVjdE1vZHVsZSxcclxuICAgIEVxcERhdGV0aW1lcGlja2VyTW9kdWxlLFxyXG4gICAgRXFwRmlsdGVyc01vZHVsZSxcclxuICAgIEVxcE51bWVyaWNNb2R1bGUsXHJcbiAgICBFcXBJbWdEcmF3aW5nTW9kdWxlLFxyXG4gICAgQnJvd3Nlck1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRXFwRHluYW1pY01vZHVsZUNvbXBvbmVudCxcclxuICAgIEVxcER5bmFtaWNNb2R1bGVDb25maWd1cmF0b3JDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFcXBEeW5hbWljTW9kdWxlTW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
export class Formula {
|
|
2
|
+
constructor(formula = '') {
|
|
3
|
+
this.current_number = 0;
|
|
4
|
+
this.prev_number = 0;
|
|
5
|
+
this.stack = [];
|
|
6
|
+
this.start = false;
|
|
7
|
+
this.dotted = false; // input number having dot
|
|
8
|
+
this.is_operand = false;
|
|
9
|
+
this.radians = true;
|
|
10
|
+
this.operation = '';
|
|
11
|
+
this.memory = 0;
|
|
12
|
+
this.in_memory = false;
|
|
13
|
+
this.bracket = false;
|
|
14
|
+
this.secondScreen = false;
|
|
15
|
+
this.formula = formula;
|
|
16
|
+
}
|
|
17
|
+
get() {
|
|
18
|
+
return this.formula;
|
|
19
|
+
}
|
|
20
|
+
parse(value) {
|
|
21
|
+
return parseFloat(value);
|
|
22
|
+
}
|
|
23
|
+
getCurrentNumber() {
|
|
24
|
+
return this.parse(this.formula);
|
|
25
|
+
}
|
|
26
|
+
setRadians(switcher) {
|
|
27
|
+
this.radians = switcher;
|
|
28
|
+
return this.radians;
|
|
29
|
+
}
|
|
30
|
+
clear() {
|
|
31
|
+
this.formula = '0';
|
|
32
|
+
this.dotted = false;
|
|
33
|
+
this.is_operand = false;
|
|
34
|
+
this.operation = '';
|
|
35
|
+
this.start = false;
|
|
36
|
+
this.stack = [];
|
|
37
|
+
this.bracket = false;
|
|
38
|
+
return this.formula;
|
|
39
|
+
}
|
|
40
|
+
clearMemory() {
|
|
41
|
+
this.memory = 0;
|
|
42
|
+
this.in_memory = false;
|
|
43
|
+
}
|
|
44
|
+
sumToMemory() {
|
|
45
|
+
let value = this.getCurrentNumber();
|
|
46
|
+
this.memory += value;
|
|
47
|
+
this.in_memory = true;
|
|
48
|
+
this.start = true;
|
|
49
|
+
}
|
|
50
|
+
deductToMemory() {
|
|
51
|
+
let value = this.getCurrentNumber();
|
|
52
|
+
this.memory -= value;
|
|
53
|
+
this.in_memory = true;
|
|
54
|
+
this.start = true;
|
|
55
|
+
}
|
|
56
|
+
readMemory() {
|
|
57
|
+
this.formula = this.memory.toString();
|
|
58
|
+
return this.formula;
|
|
59
|
+
}
|
|
60
|
+
addBracket(value) {
|
|
61
|
+
// brackets can be set only if we have not set them before and we set operand (if we set brackets first - it will not make sense)
|
|
62
|
+
if (value == '(' && this.bracket == false && this.is_operand == true) {
|
|
63
|
+
this.stack.push(value);
|
|
64
|
+
this.bracket = true;
|
|
65
|
+
this.is_operand = false;
|
|
66
|
+
}
|
|
67
|
+
if (value == ')' && this.bracket == true && this.is_operand != true) {
|
|
68
|
+
this.bracket = false;
|
|
69
|
+
this.stack.push(this.formula);
|
|
70
|
+
this.stack.push(')');
|
|
71
|
+
this.is_operand = false;
|
|
72
|
+
this.start = true;
|
|
73
|
+
this.formula = eval(this.stack.join('')).toString();
|
|
74
|
+
this.stack = [this.formula];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
setOperation(operand) {
|
|
78
|
+
this.operation = operand;
|
|
79
|
+
// If operator already set - nothing doing
|
|
80
|
+
if (this.is_operand) {
|
|
81
|
+
this.operation = operand;
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
this.is_operand = true;
|
|
85
|
+
this.stack.push(this.formula);
|
|
86
|
+
this.stack.push(this.operation);
|
|
87
|
+
this.start = true;
|
|
88
|
+
}
|
|
89
|
+
calculate() {
|
|
90
|
+
let result;
|
|
91
|
+
if (this.stack.length < 3)
|
|
92
|
+
return;
|
|
93
|
+
this.is_operand = false;
|
|
94
|
+
this.current_number = this.parse(this.stack.pop());
|
|
95
|
+
this.operation = this.stack.pop();
|
|
96
|
+
this.prev_number = this.parse(this.stack.pop());
|
|
97
|
+
if (!this.prev_number)
|
|
98
|
+
return 0;
|
|
99
|
+
switch (this.operation) {
|
|
100
|
+
case '+':
|
|
101
|
+
result = this.prev_number + this.current_number;
|
|
102
|
+
this.show(result);
|
|
103
|
+
break;
|
|
104
|
+
case '-':
|
|
105
|
+
result = this.prev_number - this.current_number;
|
|
106
|
+
this.show(result);
|
|
107
|
+
break;
|
|
108
|
+
case '*':
|
|
109
|
+
result = this.prev_number * this.current_number;
|
|
110
|
+
this.show(result);
|
|
111
|
+
break;
|
|
112
|
+
case '/':
|
|
113
|
+
result = this.prev_number / this.current_number;
|
|
114
|
+
this.show(result);
|
|
115
|
+
break;
|
|
116
|
+
case 'sqrt':
|
|
117
|
+
result = Math.pow(this.prev_number, 1 / this.current_number);
|
|
118
|
+
this.show(result);
|
|
119
|
+
break;
|
|
120
|
+
case 'pow':
|
|
121
|
+
result = Math.pow(this.prev_number, this.current_number);
|
|
122
|
+
this.show(result);
|
|
123
|
+
break;
|
|
124
|
+
case 'yx':
|
|
125
|
+
result = Math.pow(this.current_number, this.prev_number);
|
|
126
|
+
this.show(result);
|
|
127
|
+
break;
|
|
128
|
+
case 'log':
|
|
129
|
+
result = Math.log(this.prev_number) / Math.log(this.current_number);
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
this.current_number = this.parse(this.formula);
|
|
133
|
+
this.start = true;
|
|
134
|
+
return result;
|
|
135
|
+
}
|
|
136
|
+
addValue(value, start) {
|
|
137
|
+
if (start || this.start || (this.dotted == false && this.formula == '0' && value != '.')) {
|
|
138
|
+
this.formula = '';
|
|
139
|
+
}
|
|
140
|
+
this.start = start;
|
|
141
|
+
if (value == '.') {
|
|
142
|
+
if (this.dotted == true) {
|
|
143
|
+
return this.formula;
|
|
144
|
+
}
|
|
145
|
+
this.dotted = true;
|
|
146
|
+
}
|
|
147
|
+
this.formula += value;
|
|
148
|
+
this.is_operand = false;
|
|
149
|
+
return this.formula;
|
|
150
|
+
}
|
|
151
|
+
removeSymbol() {
|
|
152
|
+
let len = this.formula.length;
|
|
153
|
+
let last_symbol = this.formula.substring(len - 1, len);
|
|
154
|
+
if (last_symbol == '.') {
|
|
155
|
+
this.dotted = false;
|
|
156
|
+
}
|
|
157
|
+
this.formula = this.formula.slice(0, -1);
|
|
158
|
+
}
|
|
159
|
+
singleton(operand, data) {
|
|
160
|
+
let result = 0;
|
|
161
|
+
let rad = 0;
|
|
162
|
+
let grad = 180 / Math.PI;
|
|
163
|
+
this.current_number = parseFloat(this.formula);
|
|
164
|
+
switch (operand) {
|
|
165
|
+
case 'invert':
|
|
166
|
+
result = this.current_number * data;
|
|
167
|
+
break;
|
|
168
|
+
case 'sqrt':
|
|
169
|
+
result = Math.sqrt(this.current_number);
|
|
170
|
+
break;
|
|
171
|
+
case 'sqrt3':
|
|
172
|
+
result = Math.pow(this.current_number, 1 / 3);
|
|
173
|
+
break;
|
|
174
|
+
case 'ln':
|
|
175
|
+
result = Math.log(this.current_number);
|
|
176
|
+
break;
|
|
177
|
+
case 'lg':
|
|
178
|
+
result = Math.log(this.current_number) / Math.log(data);
|
|
179
|
+
break;
|
|
180
|
+
case 'pow_base':
|
|
181
|
+
let base = data == 'e' ? Math.E : data;
|
|
182
|
+
result = Math.pow(base, this.current_number);
|
|
183
|
+
break;
|
|
184
|
+
case 'pow':
|
|
185
|
+
let step = parseFloat(data);
|
|
186
|
+
result = Math.pow(this.current_number, step);
|
|
187
|
+
break;
|
|
188
|
+
case 'div':
|
|
189
|
+
result = 1 / this.current_number;
|
|
190
|
+
break;
|
|
191
|
+
case 'sin':
|
|
192
|
+
rad = (this.radians) ? this.current_number : this.current_number / grad;
|
|
193
|
+
result = Math.sin(rad);
|
|
194
|
+
break;
|
|
195
|
+
case 'cos':
|
|
196
|
+
rad = (this.radians) ? this.current_number : this.current_number / grad;
|
|
197
|
+
result = Math.cos(rad);
|
|
198
|
+
break;
|
|
199
|
+
case 'tan':
|
|
200
|
+
rad = (this.radians) ? this.current_number : this.current_number / grad;
|
|
201
|
+
result = Math.tan(rad);
|
|
202
|
+
break;
|
|
203
|
+
case 'sinh':
|
|
204
|
+
rad = (this.radians) ? this.current_number : this.current_number / grad;
|
|
205
|
+
result = (Math.exp(rad) - Math.exp(-rad)) / 2;
|
|
206
|
+
break;
|
|
207
|
+
case 'cosh':
|
|
208
|
+
rad = (this.radians) ? this.current_number : this.current_number / grad;
|
|
209
|
+
result = (Math.exp(rad) + Math.exp(-rad)) / 2;
|
|
210
|
+
break;
|
|
211
|
+
case 'tanh':
|
|
212
|
+
rad = (this.radians) ? this.current_number : this.current_number / grad;
|
|
213
|
+
result = (Math.exp(rad) - Math.exp(-rad)) / (Math.exp(rad) + Math.exp(-rad));
|
|
214
|
+
break;
|
|
215
|
+
case 'asin':
|
|
216
|
+
result = Math.asin(this.current_number);
|
|
217
|
+
result = (this.radians) ? result : result * grad;
|
|
218
|
+
break;
|
|
219
|
+
case 'acos':
|
|
220
|
+
result = Math.acos(this.current_number);
|
|
221
|
+
result = (this.radians) ? result : result * grad;
|
|
222
|
+
break;
|
|
223
|
+
case 'atan':
|
|
224
|
+
result = Math.atan(this.current_number);
|
|
225
|
+
result = (this.radians) ? result : result * grad;
|
|
226
|
+
break;
|
|
227
|
+
case 'asinh':
|
|
228
|
+
result = Math.asinh(this.current_number);
|
|
229
|
+
result = (this.radians) ? result : result * grad;
|
|
230
|
+
break;
|
|
231
|
+
case 'acosh':
|
|
232
|
+
result = Math.acosh(this.current_number);
|
|
233
|
+
result = (this.radians) ? result : result * grad;
|
|
234
|
+
break;
|
|
235
|
+
case 'atanh':
|
|
236
|
+
result = Math.atanh(this.current_number);
|
|
237
|
+
result = (this.radians) ? result : result * grad;
|
|
238
|
+
break;
|
|
239
|
+
case 'rand':
|
|
240
|
+
result = Math.random();
|
|
241
|
+
break;
|
|
242
|
+
case 'factorial':
|
|
243
|
+
let n = Math.ceil(this.current_number);
|
|
244
|
+
result = 1;
|
|
245
|
+
for (let i = 1; i <= n; i++) {
|
|
246
|
+
result *= i;
|
|
247
|
+
}
|
|
248
|
+
break;
|
|
249
|
+
case 'percent':
|
|
250
|
+
result = this.current_number / 100;
|
|
251
|
+
break;
|
|
252
|
+
case 'ee':
|
|
253
|
+
this.formula = this.current_number.toExponential();
|
|
254
|
+
return 0;
|
|
255
|
+
}
|
|
256
|
+
this.start = true;
|
|
257
|
+
this.show(result);
|
|
258
|
+
return result;
|
|
259
|
+
}
|
|
260
|
+
show(value) {
|
|
261
|
+
this.formula = value.toString();
|
|
262
|
+
return this.formula;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL21vZHVsZXMvZm9ybXVsYS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sT0FBTztJQWVoQixZQUFZLFVBQWUsRUFBRTtRQWI3QixtQkFBYyxHQUFVLENBQUMsQ0FBQztRQUMxQixnQkFBVyxHQUFVLENBQUMsQ0FBQztRQUN2QixVQUFLLEdBQVksRUFBRSxDQUFDO1FBQ3BCLFVBQUssR0FBVyxLQUFLLENBQUM7UUFDdEIsV0FBTSxHQUFXLEtBQUssQ0FBQyxDQUFDLDBCQUEwQjtRQUNsRCxlQUFVLEdBQVcsS0FBSyxDQUFDO1FBQzNCLFlBQU8sR0FBVyxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFVLEVBQUUsQ0FBQztRQUN0QixXQUFNLEdBQVUsQ0FBQyxDQUFDO1FBQ2xCLGNBQVMsR0FBVyxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFXLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFXLEtBQUssQ0FBQztRQUd6QixJQUFJLENBQUMsT0FBTyxHQUFDLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsR0FBRztRQUNDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQVk7UUFDZCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWdCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUMsUUFBUSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBR0QsS0FBSztRQUNELElBQUksQ0FB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TSxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDekIsTUFBTTtZQUNOLEtBQUssV0FBVztnQkFDWixJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDckMsTUFBTSxHQUFDLENBQUMsQ0FBQztnQkFDVCxLQUFLLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFFO29CQUNuQixNQUFNLElBQUUsQ0FBQyxDQUFDO2lCQUNiO2dCQUNMLE1BQU07WUFDTixLQUFLLFNBQVM7Z0JBQ1YsTUFBTSxHQUFDLElBQUksQ0FBQyxjQUFjLEdBQUMsR0FBRyxDQUFDO2dCQUNuQyxNQUFNO1lBQ04sS0FBSyxJQUFJO2dCQUNMLElBQUksQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDakQsT0FBTyxDQUFDLENBQUM7U0FDaEI7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBWTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRm9ybXVsYSB7XHJcbiAgICBmb3JtdWxhOnN0cmluZztcclxuICAgIGN1cnJlbnRfbnVtYmVyOm51bWJlciA9IDA7XHJcbiAgICBwcmV2X251bWJlcjpudW1iZXIgPSAwO1xyXG4gICAgc3RhY2s6c3RyaW5nW10gPSBbXTtcclxuICAgIHN0YXJ0OmJvb2xlYW4gPSBmYWxzZTsgXHJcbiAgICBkb3R0ZWQ6Ym9vbGVhbiA9IGZhbHNlOyAvLyBpbnB1dCBudW1iZXIgaGF2aW5nIGRvdFxyXG4gICAgaXNfb3BlcmFuZDpib29sZWFuID0gZmFsc2U7XHJcbiAgICByYWRpYW5zOmJvb2xlYW4gPSB0cnVlO1xyXG4gICAgb3BlcmF0aW9uOnN0cmluZyA9ICcnO1xyXG4gICAgbWVtb3J5Om51bWJlciA9IDA7XHJcbiAgICBpbl9tZW1vcnk6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgYnJhY2tldDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBzZWNvbmRTY3JlZW46Ym9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGZvcm11bGE6c3RyaW5nPScnKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhPWZvcm11bGE7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm11bGE7XHJcbiAgICB9XHJcblxyXG4gICAgcGFyc2UodmFsdWU6c3RyaW5nKTpudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDdXJyZW50TnVtYmVyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlKHRoaXMuZm9ybXVsYSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UmFkaWFucyhzd2l0Y2hlcjpib29sZWFuKTpib29sZWFuIHtcclxuICAgICAgICB0aGlzLnJhZGlhbnM9c3dpdGNoZXI7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmFkaWFucztcclxuICAgIH1cclxuXHJcblxyXG4gICAgY2xlYXIoKTpzdHJpbmcge1xyXG4gICAgICAgIHRoaXMuZm9ybXVsYSA9ICcwJztcclxuXHJcbiAgICAgICAgdGhpcy5kb3R0ZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzX29wZXJhbmQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9wZXJhdGlvbiA9ICcnO1xyXG4gICAgICAgIHRoaXMuc3RhcnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0YWNrID0gW107XHJcbiAgICAgICAgdGhpcy5icmFja2V0ID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybXVsYTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhck1lbW9yeSgpIHtcclxuICAgICAgICB0aGlzLm1lbW9yeSA9IDA7XHJcbiAgICAgICAgdGhpcy5pbl9tZW1vcnkgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdW1Ub01lbW9yeSgpIHtcclxuICAgICAgICBsZXQgdmFsdWU9dGhpcy5nZXRDdXJyZW50TnVtYmVyKCk7XHJcbiAgICAgICAgdGhpcy5tZW1vcnkgKz0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5pbl9tZW1vcnkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3RhcnQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGRlZHVjdFRvTWVtb3J5KCkge1xyXG4gICAgICAgIGxldCB2YWx1ZT10aGlzLmdldEN1cnJlbnROdW1iZXIoKTtcclxuICAgICAgICB0aGlzLm1lbW9yeSAtPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmluX21lbW9yeSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zdGFydCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVhZE1lbW9yeSgpOnN0cmluZyB7XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhPXRoaXMubWVtb3J5LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybXVsYTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRCcmFja2V0KHZhbHVlOnN0cmluZyk6dm9pZCB7XHJcbiAgICAgICAgLy8gYnJhY2tldHMgY2FuIGJlIHNldCBvbmx5IGlmIHdlIGhhdmUgbm90IHNldCB0aGVtIGJlZm9yZSBhbmQgd2Ugc2V0IG9wZXJhbmQgKGlmIHdlIHNldCBicmFja2V0cyBmaXJzdCAtIGl0IHdpbGwgbm90IG1ha2Ugc2Vuc2UpXHJcbiAgICAgICAgaWYgKHZhbHVlID09ICcoJyAmJiB0aGlzLmJyYWNrZXQgPT0gZmFsc2UgJiYgdGhpcy5pc19vcGVyYW5kID09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKHZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5icmFja2V0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5pc19vcGVyYW5kID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh2YWx1ZSA9PSAnKScgJiYgdGhpcy5icmFja2V0ID09IHRydWUgJiYgdGhpcy5pc19vcGVyYW5kICE9IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5icmFja2V0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhY2sucHVzaCh0aGlzLmZvcm11bGEpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YWNrLnB1c2goJyknKTtcclxuICAgICAgICAgICAgdGhpcy5pc19vcGVyYW5kID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm11bGE9ZXZhbCh0aGlzLnN0YWNrLmpvaW4oJycpKS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YWNrPVt0aGlzLmZvcm11bGFdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRPcGVyYXRpb24ob3BlcmFuZDpzdHJpbmcpOnZvaWQge1xyXG4gICAgICAgIHRoaXMub3BlcmF0aW9uPW9wZXJhbmQ7XHJcbiAgICAgICAgLy8gSWYgb3BlcmF0b3IgYWxyZWFkeSBzZXQgLSBub3RoaW5nIGRvaW5nXHJcbiAgICAgICAgaWYgKHRoaXMuaXNfb3BlcmFuZCkge1xyXG4gICAgICAgICAgICB0aGlzLm9wZXJhdGlvbiA9IG9wZXJhbmQ7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzX29wZXJhbmQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3RhY2sucHVzaCh0aGlzLmZvcm11bGEpO1xyXG4gICAgICAgIHRoaXMuc3RhY2sucHVzaCh0aGlzLm9wZXJhdGlvbik7XHJcbiAgICAgICAgdGhpcy5zdGFydD10cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGN1bGF0ZSgpOm51bWJlciB7XHJcbiAgICAgICAgbGV0IHJlc3VsdDpudW1iZXI7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhY2subGVuZ3RoPDMpIHJldHVybjtcclxuICAgICAgICB0aGlzLmlzX29wZXJhbmQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRfbnVtYmVyPXRoaXMucGFyc2UodGhpcy5zdGFjay5wb3AoKSk7XHJcbiAgICAgICAgdGhpcy5vcGVyYXRpb249dGhpcy5zdGFjay5wb3AoKTtcclxuICAgICAgICB0aGlzLnByZXZfbnVtYmVyPXRoaXMucGFyc2UodGhpcy5zdGFjay5wb3AoKSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByZXZfbnVtYmVyKSByZXR1cm4gMDtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLm9wZXJhdGlvbikge1xyXG4gICAgICAgICAgICBjYXNlICcrJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD10aGlzLnByZXZfbnVtYmVyK3RoaXMuY3VycmVudF9udW1iZXI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICctJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD10aGlzLnByZXZfbnVtYmVyLXRoaXMuY3VycmVudF9udW1iZXI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICcqJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD10aGlzLnByZXZfbnVtYmVyKnRoaXMuY3VycmVudF9udW1iZXI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICcvJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD10aGlzLnByZXZfbnVtYmVyL3RoaXMuY3VycmVudF9udW1iZXI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzcXJ0JzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD1NYXRoLnBvdyh0aGlzLnByZXZfbnVtYmVyLDEvdGhpcy5jdXJyZW50X251bWJlcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdwb3cnOlxyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGgucG93KHRoaXMucHJldl9udW1iZXIsdGhpcy5jdXJyZW50X251bWJlcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd5eCc6XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBNYXRoLnBvdyh0aGlzLmN1cnJlbnRfbnVtYmVyLCB0aGlzLnByZXZfbnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hvdyhyZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2xvZyc6XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBNYXRoLmxvZyh0aGlzLnByZXZfbnVtYmVyKSAvIE1hdGgubG9nKHRoaXMuY3VycmVudF9udW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmN1cnJlbnRfbnVtYmVyPXRoaXMucGFyc2UodGhpcy5mb3JtdWxhKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdGFydD10cnVlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGFkZFZhbHVlKHZhbHVlOnN0cmluZyxzdGFydDpib29sZWFuKTpzdHJpbmcge1xyXG4gICAgICAgIGlmIChzdGFydCB8fCB0aGlzLnN0YXJ0IHx8ICh0aGlzLmRvdHRlZCA9PSBmYWxzZSAmJiB0aGlzLmZvcm11bGEgPT0gJzAnICYmIHZhbHVlICE9ICcuJykpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtdWxhPScnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0YXJ0PXN0YXJ0O1xyXG4gICAgICAgIGlmICh2YWx1ZT09Jy4nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRvdHRlZD09dHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybXVsYTsgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5kb3R0ZWQ9dHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhKz12YWx1ZTtcclxuICAgICAgICB0aGlzLmlzX29wZXJhbmQgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtdWxhO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZVN5bWJvbCgpOnZvaWQge1xyXG4gICAgICAgIGxldCBsZW49dGhpcy5mb3JtdWxhLmxlbmd0aDtcclxuICAgICAgICBsZXQgbGFzdF9zeW1ib2w9dGhpcy5mb3JtdWxhLnN1YnN0cmluZyhsZW4gLSAxLGxlbik7XHJcbiAgICAgICAgaWYgKGxhc3Rfc3ltYm9sID09ICcuJykge1xyXG4gICAgICAgICAgICB0aGlzLmRvdHRlZD1mYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhPXRoaXMuZm9ybXVsYS5zbGljZSgwLC0xKTtcclxuICAgIH1cclxuXHJcbiAgICBzaW5nbGV0b24ob3BlcmFuZDpzdHJpbmcsZGF0YTphbnkpOm51bWJlciB7XHJcbiAgICAgICAgbGV0IHJlc3VsdDpudW1iZXI9MDtcclxuICAgICAgICBsZXQgcmFkOm51bWJlcj0wO1xyXG4gICAgICAgIGxldCBncmFkPTE4MC9NYXRoLlBJO1xyXG4gICAgICAgIHRoaXMuY3VycmVudF9udW1iZXI9cGFyc2VGbG9hdCh0aGlzLmZvcm11bGEpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHN3aXRjaCAob3BlcmFuZCkge1xyXG4gICAgICAgICAgICBjYXNlICdpbnZlcnQnOlxyXG4gICAgICAgICAgICAgICAgcmVzdWx0PXRoaXMuY3VycmVudF9udW1iZXIqZGF0YTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3NxcnQnOlxyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGguc3FydCh0aGlzLmN1cnJlbnRfbnVtYmVyKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3NxcnQzJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD1NYXRoLnBvdyh0aGlzLmN1cnJlbnRfbnVtYmVyLDEvMyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdsbic6XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9TWF0aC5sb2codGhpcy5jdXJyZW50X251bWJlcik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdsZyc6XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9TWF0aC5sb2codGhpcy5jdXJyZW50X251bWJlcikvTWF0aC5sb2coZGF0YSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdwb3dfYmFzZSc6XHJcbiAgICAgICAgICAgICAgICBsZXQgYmFzZT1kYXRhPT0nZScgPyBNYXRoLkUgOiBkYXRhO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGgucG93KGJhc2UsdGhpcy5jdXJyZW50X251bWJlcik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdwb3cnOlxyXG4gICAgICAgICAgICAgICAgbGV0IHN0ZXA9cGFyc2VGbG9hdChkYXRhKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdD1NYXRoLnBvdyh0aGlzLmN1cnJlbnRfbnVtYmVyLHN0ZXApO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnZGl2JzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD0xL3RoaXMuY3VycmVudF9udW1iZXI7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzaW4nOlxyXG4gICAgICAgICAgICAgICAgcmFkPSh0aGlzLnJhZGlhbnMpID8gdGhpcy5jdXJyZW50X251bWJlciA6IHRoaXMuY3VycmVudF9udW1iZXIvZ3JhZDtcclxuICAgICAgICAgICAgICAgIHJlc3VsdD1NYXRoLnNpbihyYWQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnY29zJzpcclxuICAgICAgICAgICAgICAgIHJhZD0odGhpcy5yYWRpYW5zKSA/IHRoaXMuY3VycmVudF9udW1iZXIgOiB0aGlzLmN1cnJlbnRfbnVtYmVyL2dyYWQ7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9TWF0aC5jb3MocmFkKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3Rhbic6XHJcbiAgICAgICAgICAgICAgICByYWQ9KHRoaXMucmFkaWFucykgPyB0aGlzLmN1cnJlbnRfbnVtYmVyIDogdGhpcy5jdXJyZW50X251bWJlci9ncmFkO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGgudGFuKHJhZCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzaW5oJzpcclxuICAgICAgICAgICAgICAgIHJhZD0odGhpcy5yYWRpYW5zKSA/IHRoaXMuY3VycmVudF9udW1iZXIgOiB0aGlzLmN1cnJlbnRfbnVtYmVyL2dyYWQ7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9KE1hdGguZXhwKHJhZCktTWF0aC5leHAoLXJhZCkpLzI7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdjb3NoJzpcclxuICAgICAgICAgICAgICAgIHJhZD0odGhpcy5yYWRpYW5zKSA/IHRoaXMuY3VycmVudF9udW1iZXIgOiB0aGlzLmN1cnJlbnRfbnVtYmVyL2dyYWQ7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9KE1hdGguZXhwKHJhZCkrTWF0aC5leHAoLXJhZCkpLzI7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd0YW5oJzpcclxuICAgICAgICAgICAgICAgIHJhZD0odGhpcy5yYWRpYW5zKSA/IHRoaXMuY3VycmVudF9udW1iZXIgOiB0aGlzLmN1cnJlbnRfbnVtYmVyL2dyYWQ7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9KE1hdGguZXhwKHJhZCktTWF0aC5leHAoLXJhZCkpLyhNYXRoLmV4cChyYWQpK01hdGguZXhwKC1yYWQpKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2FzaW4nOlxyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGguYXNpbih0aGlzLmN1cnJlbnRfbnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdD0odGhpcy5yYWRpYW5zKSA/IHJlc3VsdCA6IHJlc3VsdCpncmFkO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnYWNvcyc6XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9TWF0aC5hY29zKHRoaXMuY3VycmVudF9udW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0PSh0aGlzLnJhZGlhbnMpID8gcmVzdWx0IDogcmVzdWx0KmdyYWQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdhdGFuJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD1NYXRoLmF0YW4odGhpcy5jdXJyZW50X251bWJlcik7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9KHRoaXMucmFkaWFucykgPyByZXN1bHQgOiByZXN1bHQqZ3JhZDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2FzaW5oJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD1NYXRoLmFzaW5oKHRoaXMuY3VycmVudF9udW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0PSh0aGlzLnJhZGlhbnMpID8gcmVzdWx0IDogcmVzdWx0KmdyYWQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdhY29zaCc6XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9TWF0aC5hY29zaCh0aGlzLmN1cnJlbnRfbnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdD0odGhpcy5yYWRpYW5zKSA/IHJlc3VsdCA6IHJlc3VsdCpncmFkO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnYXRhbmgnOlxyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGguYXRhbmgodGhpcy5jdXJyZW50X251bWJlcik7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9KHRoaXMucmFkaWFucykgPyByZXN1bHQgOiByZXN1bHQqZ3JhZDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3JhbmQnOlxyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGgucmFuZG9tKCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdmYWN0b3JpYWwnOlxyXG4gICAgICAgICAgICAgICAgbGV0IG49TWF0aC5jZWlsKHRoaXMuY3VycmVudF9udW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0PTE7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpPTE7aTw9bjtpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQqPWk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdwZXJjZW50JzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD10aGlzLmN1cnJlbnRfbnVtYmVyLzEwMDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VlJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybXVsYT10aGlzLmN1cnJlbnRfbnVtYmVyLnRvRXhwb25lbnRpYWwoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zdGFydD10cnVlO1xyXG4gICAgICAgIHRoaXMuc2hvdyhyZXN1bHQpO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvdyh2YWx1ZTpudW1iZXIpOnN0cmluZyB7XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhPXZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybXVsYTtcclxuICAgIH1cclxufSJdfQ==
|