@seniorsistemas/data-seniorx-core 2.0.1 → 2.1.0
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/core/config/dynamic-view-builder.config.d.ts +3 -0
- package/core/constants/dynamic-view-builder.const.d.ts +15 -0
- package/core/constants/picklist.const.d.ts +4 -0
- package/core/constants/timeline.const.d.ts +6 -0
- package/core/types/confirm.type.d.ts +1 -0
- package/core/types/dynamic-view-builder.type.d.ts +130 -0
- package/core/types/row-card.type.d.ts +10 -0
- package/core/types/timeline.type.d.ts +22 -0
- package/esm2022/core/config/dynamic-view-builder.config.mjs +396 -0
- package/esm2022/core/config/row-card.type.config.mjs +2 -1
- package/esm2022/core/constants/dynamic-view-builder.const.mjs +24 -0
- package/esm2022/core/constants/picklist.const.mjs +5 -1
- package/esm2022/core/constants/timeline.const.mjs +6 -0
- package/esm2022/core/handlers/sqlFormatter.mjs +3 -2
- package/esm2022/core/types/confirm.type.mjs +1 -1
- package/esm2022/core/types/dynamic-view-builder.type.mjs +2 -0
- package/esm2022/core/types/row-card.type.mjs +1 -1
- package/esm2022/core/types/timeline.type.mjs +2 -0
- package/esm2022/core/utils/layout.util.mjs +4 -4
- package/esm2022/core/utils/number-input.util.mjs +2 -2
- package/esm2022/features/breadcrumb/breadcrumb.component.mjs +21 -3
- package/esm2022/features/button/button.component.mjs +5 -5
- package/esm2022/features/card-list/card/card.component.mjs +4 -6
- package/esm2022/features/card-list/card-list.component.mjs +4 -7
- package/esm2022/features/code-editor/code-editor.component.mjs +5 -5
- package/esm2022/features/color-picker/color-picker.component.mjs +4 -4
- package/esm2022/features/combobox/combobox.component.mjs +8 -8
- package/esm2022/features/confirm/confirm.component.mjs +8 -4
- package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +6 -8
- package/esm2022/features/empty-state/empty-state.component.mjs +3 -3
- package/esm2022/features/hyperlink/hyperlink.component.mjs +10 -12
- package/esm2022/features/icon-picker/icon-picker.component.mjs +3 -3
- package/esm2022/features/info-sign/info-sign.component.mjs +3 -3
- package/esm2022/features/list/list.component.mjs +1 -1
- package/esm2022/features/loading-state/loading-state.component.mjs +20 -25
- package/esm2022/features/localized-number-input/localized-number-input.component.mjs +4 -4
- package/esm2022/features/mask/mask.component.mjs +4 -4
- package/esm2022/features/modal/modal.component.mjs +5 -5
- package/esm2022/features/modalc/modalc.component.mjs +1 -1
- package/esm2022/features/number-input/number-input.component.mjs +4 -4
- package/esm2022/features/numeric/numeric.component.mjs +4 -6
- package/esm2022/features/paginator/paginator.component.mjs +2 -2
- package/esm2022/features/password-strength/password-strength.component.mjs +3 -3
- package/esm2022/features/picklist/picklist.component.mjs +50 -9
- package/esm2022/features/radio/radio.component.mjs +12 -12
- package/esm2022/features/row-card-list/row-card/row-card.component.mjs +32 -9
- package/esm2022/features/row-card-list/row-card-list.component.mjs +3 -3
- package/esm2022/features/searchbox/searchbox.component.mjs +1 -1
- package/esm2022/features/sidebar/sidebar.component.mjs +7 -3
- package/esm2022/features/switch/switch.component.mjs +3 -3
- package/esm2022/features/table/table.component.mjs +3 -3
- package/esm2022/features/textarea/textarea.component.mjs +4 -4
- package/esm2022/features/textbox/textbox.component.mjs +4 -4
- package/esm2022/features/timeline/timeline.component.mjs +90 -0
- package/esm2022/features/toast/toast.component.mjs +4 -6
- package/esm2022/features/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2810 -0
- package/esm2022/locales/en.json +202 -1
- package/esm2022/locales/es-CO.json +202 -1
- package/esm2022/locales/pt.json +202 -1
- package/esm2022/public-api.mjs +6 -1
- package/features/breadcrumb/breadcrumb.component.d.ts +2 -0
- package/features/button/button.component.d.ts +2 -2
- package/features/code-editor/code-editor.component.d.ts +2 -2
- package/features/hyperlink/hyperlink.component.d.ts +3 -3
- package/features/loading-state/loading-state.component.d.ts +3 -4
- package/features/modal/modal.component.d.ts +2 -2
- package/features/picklist/picklist.component.d.ts +10 -1
- package/features/radio/radio.component.d.ts +4 -4
- package/features/row-card-list/row-card/row-card.component.d.ts +8 -1
- package/features/sidebar/sidebar.component.d.ts +2 -1
- package/features/timeline/timeline.component.d.ts +27 -0
- package/features/visual-sql-editor/visual-sql-editor.component.d.ts +560 -0
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +4161 -176
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +7 -0
- package/src/locales/en.json +211 -1
- package/src/locales/es-CO.json +211 -1
- package/src/locales/pt.json +211 -1
- package/styles.css +1 -1
|
@@ -19,7 +19,7 @@ export class PaginatorComponent {
|
|
|
19
19
|
effectiveRowsPerPageOptions = computed(() => {
|
|
20
20
|
const provided = this.rowsPerPageOptions() ?? PAGINATOR_DEFAULT_ROWS_OPTIONS;
|
|
21
21
|
const normalized = [...provided]
|
|
22
|
-
.map(
|
|
22
|
+
.map(Number)
|
|
23
23
|
.filter(v => Number.isFinite(v) && v > 0)
|
|
24
24
|
.map(v => Math.trunc(v));
|
|
25
25
|
const unique = Array.from(new Set(normalized));
|
|
@@ -145,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
145
145
|
}], propDecorators: { pageChange: [{
|
|
146
146
|
type: Output
|
|
147
147
|
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJMUcsT0FBTyxFQUNMLDJCQUEyQixFQUMzQiw4QkFBOEIsRUFDOUIsNkNBQTZDLEVBQzdDLHFDQUFxQyxFQUNyQyw2QkFBNkIsRUFDN0IsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDOUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQVVuRSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDakMsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUNoQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBRXhDLGtCQUFrQixHQUFHLEtBQUssQ0FBOEIsU0FBUyxDQUFDLENBQUM7SUFDbkUsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLDZDQUE2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VUFBVSxDQUFDLElBQUksQ0FBQztZQUNuQixLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJLEVBQUUsUUFBUTtZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsU0FBUyxFQUFFLGFBQWE7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0F4S1Usa0JBQWtCOzRGQUFsQixrQkFBa0IsNmxDQzlCL0IsbzZHQW9HQSxxd0dEM0VZLFlBQVksOEJBQUUsV0FBVywrVkFBRSxpQkFBaUIsZ1NBQUUsZUFBZTs7NEZBSzVELGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLENBQUMsbUJBR3ZELHVCQUF1QixDQUFDLE1BQU07OEJBWXJDLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBPcHRpb25JdGVtLCBPcHRpb25WYWx1ZSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2VtYW50aWNzLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBQYWdpbmF0b3JTdGF0ZSwgUGFnaW5hdG9yUGFnZXNJdGVtLCBQYWdpbmF0b3JSb3dzUGVyUGFnZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3BhZ2luYXRvci50eXBlJztcbmltcG9ydCB7XG4gIFBBR0lOQVRPUl9ERUZBVUxUX0lTX01PQklMRSxcbiAgUEFHSU5BVE9SX0RFRkFVTFRfUk9XU19PUFRJT05TLFxuICBQQUdJTkFUT1JfREVGQVVMVF9TSE9XX1JPV1NfUEVSX1BBR0VfU0VMRUNUT1IsXG4gIFBBR0lOQVRPUl9ERUZBVUxUX1RPVEFMX1JFQ09SRFNfTEFCRUwsXG4gIFBBR0lOQVRPUl9ERVNLVE9QX1dJTkRPV19TSVpFLFxuICBQQUdJTkFUT1JfRklSU1RfUEFHRV9JTkRFWCxcbiAgUEFHSU5BVE9SX01JTl9ST1dTLFxuICBQQUdJTkFUT1JfTU9CSUxFX1dJTkRPV19TSVpFLFxuICBQQUdJTkFUT1JfUkVDT1JEX0ZPVU5EX0xBQkVMLFxuICBQQUdJTkFUT1JfUkVDT1JEU19GT1VORF9MQUJFTCxcbiAgUEFHSU5BVE9SX1RPVEFMX1JFQ09SRFNfTEFCRUxcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvcGFnaW5hdG9yLmNvbnN0JztcbmltcG9ydCB7IENvbWJvYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLXBhZ2luYXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBDb21ib2JveENvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3JDb21wb25lbnQge1xuICBmaXJzdCA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgcm93cyA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgdG90YWxSZWNvcmRzID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuXG4gIHJvd3NQZXJQYWdlT3B0aW9ucyA9IGlucHV0PFBhZ2luYXRvclJvd3NQZXJQYWdlT3B0aW9ucz4odW5kZWZpbmVkKTtcbiAgc2hvd1Jvd3NQZXJQYWdlU2VsZWN0b3IgPSBpbnB1dChQQUdJTkFUT1JfREVGQVVMVF9TSE9XX1JPV1NfUEVSX1BBR0VfU0VMRUNUT1IpO1xuICBpc01vYmlsZSA9IGlucHV0KFBBR0lOQVRPUl9ERUZBVUxUX0lTX01PQklMRSk7XG4gIHRvdGFsUmVjb3Jkc0xhYmVsID0gaW5wdXQ8c3RyaW5nPihQQUdJTkFUT1JfREVGQVVMVF9UT1RBTF9SRUNPUkRTX0xBQkVMKTtcblxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnaW5hdG9yU3RhdGU+KCk7XG5cbiAgcmVhZG9ubHkgZWZmZWN0aXZlUm93c1BlclBhZ2VPcHRpb25zID0gY29tcHV0ZWQ8bnVtYmVyW10+KCgpID0+IHtcbiAgICBjb25zdCBwcm92aWRlZCA9IHRoaXMucm93c1BlclBhZ2VPcHRpb25zKCkgPz8gUEFHSU5BVE9SX0RFRkFVTFRfUk9XU19PUFRJT05TO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBbLi4ucHJvdmlkZWRdXG4gICAgICAubWFwKHYgPT4gTnVtYmVyKHYpKVxuICAgICAgLmZpbHRlcih2ID0+IE51bWJlci5pc0Zpbml0ZSh2KSAmJiB2ID4gMClcbiAgICAgIC5tYXAodiA9PiBNYXRoLnRydW5jKHYpKTtcblxuICAgIGNvbnN0IHVuaXF1ZSA9IEFycmF5LmZyb20obmV3IFNldChub3JtYWxpemVkKSk7XG4gICAgY29uc3QgY3VycmVudFJvd3MgPSBNYXRoLm1heChQQUdJTkFUT1JfTUlOX1JPV1MsIE1hdGgudHJ1bmModGhpcy5yb3dzKCkgfHwgUEFHSU5BVE9SX01JTl9ST1dTKSk7XG5cbiAgICBpZiAoIXVuaXF1ZS5pbmNsdWRlcyhjdXJyZW50Um93cykpIHtcbiAgICAgIHVuaXF1ZS51bnNoaWZ0KGN1cnJlbnRSb3dzKTtcbiAgICB9XG5cbiAgICBpZiAodW5pcXVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtjdXJyZW50Um93c107XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuaXF1ZTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcm93T3B0aW9ucyA9IGNvbXB1dGVkPE9wdGlvbkl0ZW1bXT4oKCkgPT5cbiAgICB0aGlzLmVmZmVjdGl2ZVJvd3NQZXJQYWdlT3B0aW9ucygpLm1hcCh2ID0+ICh7XG4gICAgICB0ZXh0OiBTdHJpbmcodiksXG4gICAgICB2YWx1ZTogU3RyaW5nKHYpIGFzIE9wdGlvblZhbHVlXG4gICAgfSkpXG4gICk7XG5cbiAgcmVhZG9ubHkgcGFnZUNvdW50ID0gY29tcHV0ZWQ8bnVtYmVyPigoKSA9PiB7XG4gICAgY29uc3QgdG90YWwgPSBNYXRoLm1heCgwLCB0aGlzLnRvdGFsUmVjb3JkcygpKTtcbiAgICBjb25zdCBwYWdlU2l6ZSA9IE1hdGgubWF4KFBBR0lOQVRPUl9NSU5fUk9XUywgdGhpcy5yb3dzKCkpO1xuICAgIHJldHVybiBNYXRoLm1heCgxLCBNYXRoLmNlaWwodG90YWwgLyBwYWdlU2l6ZSkpO1xuICB9KTtcblxuICByZWFkb25seSBjdXJyZW50UGFnZSA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4ge1xuICAgIGNvbnN0IHBhZ2VTaXplID0gTWF0aC5tYXgoUEFHSU5BVE9SX01JTl9ST1dTLCB0aGlzLnJvd3MoKSk7XG4gICAgY29uc3QgcmF3ID0gTWF0aC5mbG9vcih0aGlzLmZpcnN0KCkgLyBwYWdlU2l6ZSk7XG4gICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KHJhdywgUEFHSU5BVE9SX0ZJUlNUX1BBR0VfSU5ERVgpLCB0aGlzLnBhZ2VDb3VudCgpIC0gMSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHBhZ2VzID0gY29tcHV0ZWQ8UGFnaW5hdG9yUGFnZXNJdGVtW10+KCgpID0+IHtcbiAgICBjb25zdCBjb3VudCA9IHRoaXMucGFnZUNvdW50KCk7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuY3VycmVudFBhZ2UoKTtcbiAgICBjb25zdCB3aW5kb3dTaXplID0gdGhpcy5pc01vYmlsZSgpID8gUEFHSU5BVE9SX01PQklMRV9XSU5ET1dfU0laRSA6IFBBR0lOQVRPUl9ERVNLVE9QX1dJTkRPV19TSVpFO1xuXG4gICAgaWYgKGNvdW50IDw9IHdpbmRvd1NpemUpIHtcbiAgICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCB9LCAoXywgaSkgPT4gaSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2lkZVNsb3RzID0gTWF0aC5mbG9vcigod2luZG93U2l6ZSAtIDMpIC8gMik7XG4gICAgY29uc3Qgc3RhcnQgPSBNYXRoLm1heCgxLCBjdXJyZW50IC0gc2lkZVNsb3RzKTtcbiAgICBjb25zdCBlbmQgPSBNYXRoLm1pbihjb3VudCAtIDIsIGN1cnJlbnQgKyBzaWRlU2xvdHMpO1xuXG4gICAgY29uc3QgaXRlbXM6IFBhZ2luYXRvclBhZ2VzSXRlbVtdID0gWzBdO1xuXG4gICAgaWYgKHN0YXJ0ID4gMSkge1xuICAgICAgaXRlbXMucHVzaCgn4oCmJyk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgcCA9IHN0YXJ0OyBwIDw9IGVuZDsgcCsrKSB7XG4gICAgICBpdGVtcy5wdXNoKHApO1xuICAgIH1cblxuICAgIGlmIChlbmQgPCBjb3VudCAtIDIpIHtcbiAgICAgIGl0ZW1zLnB1c2goJ+KApicpO1xuICAgIH1cblxuICAgIGl0ZW1zLnB1c2goY291bnQgLSAxKTtcblxuICAgIHJldHVybiBpdGVtcztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgY2FuR29CYWNrID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5jdXJyZW50UGFnZSgpID4gUEFHSU5BVE9SX0ZJUlNUX1BBR0VfSU5ERVgpO1xuICByZWFkb25seSBjYW5Hb0ZvcndhcmQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLmN1cnJlbnRQYWdlKCkgPCB0aGlzLnBhZ2VDb3VudCgpIC0gMSk7XG4gIHJlYWRvbmx5IHNob3VsZERpc3BsYXlUb3RhbFJlY29yZHNGaXJzdCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+XG4gICAgdGhpcy5pc0RlZmF1bHRSZWNvcmRzTGFiZWwodGhpcy50b3RhbFJlY29yZHNMYWJlbCgpKVxuICApO1xuICByZWFkb25seSB0b3RhbFJlY29yZHNEaXNwbGF5TGFiZWwgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICBjb25zdCBsYWJlbCA9IHRoaXMudG90YWxSZWNvcmRzTGFiZWwoKTtcblxuICAgIGlmICghdGhpcy5pc0RlZmF1bHRSZWNvcmRzTGFiZWwobGFiZWwpKSB7XG4gICAgICByZXR1cm4gbGFiZWw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudG90YWxSZWNvcmRzKCkgPT09IDFcbiAgICAgID8gUEFHSU5BVE9SX1JFQ09SRF9GT1VORF9MQUJFTFxuICAgICAgOiBQQUdJTkFUT1JfUkVDT1JEU19GT1VORF9MQUJFTDtcbiAgfSk7XG5cbiAgZ290b1BhZ2UoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IE1hdGgubWluKE1hdGgubWF4KE1hdGgudHJ1bmMoaW5kZXgpLCAwKSwgdGhpcy5wYWdlQ291bnQoKSAtIDEpO1xuICAgIHRoaXMuZW1pdENoYW5nZSh0YXJnZXQgKiBNYXRoLm1heChQQUdJTkFUT1JfTUlOX1JPV1MsIHRoaXMucm93cygpKSk7XG4gIH1cblxuICBmaXJzdFBhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5nb3RvUGFnZSgwKTtcbiAgfVxuXG4gIHByZXZQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuZ290b1BhZ2UodGhpcy5jdXJyZW50UGFnZSgpIC0gMSk7XG4gIH1cblxuICBuZXh0UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdvdG9QYWdlKHRoaXMuY3VycmVudFBhZ2UoKSArIDEpO1xuICB9XG5cbiAgbGFzdFBhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5nb3RvUGFnZSh0aGlzLnBhZ2VDb3VudCgpIC0gMSk7XG4gIH1cblxuICBvblJvd3NDaGFuZ2Uocm93czogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5lbWl0Q2hhbmdlKDAsIHJvd3MpO1xuICB9XG5cbiAgb25Sb3dzQ29tYm9Nb2RlbCh2YWw6IE9wdGlvblZhbHVlIHwgT3B0aW9uVmFsdWVbXSB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCByYXcgPSBBcnJheS5pc0FycmF5KHZhbCkgPyB2YWxbMF0gOiB2YWw7XG4gICAgY29uc3QgbiA9IE51bWJlcihyYXcpO1xuXG4gICAgaWYgKCFOdW1iZXIuaXNOYU4obikgJiYgbiA+IDApIHtcbiAgICAgIHRoaXMub25Sb3dzQ2hhbmdlKG4pO1xuICAgIH1cbiAgfVxuXG4gIGlzQ3VycmVudChwYWdlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcGFnZSA9PT0gdGhpcy5jdXJyZW50UGFnZSgpO1xuICB9XG5cbiAgYXNOdW1iZXIocDogUGFnaW5hdG9yUGFnZXNJdGVtKTogcCBpcyBudW1iZXIge1xuICAgIHJldHVybiB0eXBlb2YgcCA9PT0gJ251bWJlcic7XG4gIH1cblxuICBnZXRQYWdlTGFiZWwocGFnZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU3RyaW5nKHBhZ2UgKyAxKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNEZWZhdWx0UmVjb3Jkc0xhYmVsKGxhYmVsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gW1xuICAgICAgUEFHSU5BVE9SX1RPVEFMX1JFQ09SRFNfTEFCRUwsXG4gICAgICBQQUdJTkFUT1JfUkVDT1JEX0ZPVU5EX0xBQkVMLFxuICAgICAgUEFHSU5BVE9SX1JFQ09SRFNfRk9VTkRfTEFCRUxcbiAgICBdLmluY2x1ZGVzKGxhYmVsKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENoYW5nZShmaXJzdDogbnVtYmVyLCByb3dzID0gdGhpcy5yb3dzKCkpOiB2b2lkIHtcbiAgICBjb25zdCBzYWZlUm93cyA9IE1hdGgubWF4KFBBR0lOQVRPUl9NSU5fUk9XUywgTWF0aC50cnVuYyhyb3dzIHx8IFBBR0lOQVRPUl9NSU5fUk9XUykpO1xuICAgIGNvbnN0IHNhZmVQYWdlQ291bnQgPSBNYXRoLm1heCgxLCBNYXRoLmNlaWwoTWF0aC5tYXgoMCwgdGhpcy50b3RhbFJlY29yZHMoKSkgLyBzYWZlUm93cykpO1xuICAgIGNvbnN0IG1heEZpcnN0ID0gTWF0aC5tYXgoMCwgKHNhZmVQYWdlQ291bnQgLSAxKSAqIHNhZmVSb3dzKTtcbiAgICBjb25zdCBzYWZlRmlyc3QgPSBNYXRoLm1pbihNYXRoLm1heCgwLCBNYXRoLnRydW5jKGZpcnN0IHx8IDApKSwgbWF4Rmlyc3QpO1xuICAgIGNvbnN0IHNhZmVQYWdlID0gTWF0aC5mbG9vcihzYWZlRmlyc3QgLyBzYWZlUm93cyk7XG5cbiAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7XG4gICAgICBmaXJzdDogc2FmZUZpcnN0LFxuICAgICAgcm93czogc2FmZVJvd3MsXG4gICAgICBwYWdlOiBzYWZlUGFnZSxcbiAgICAgIHBhZ2VDb3VudDogc2FmZVBhZ2VDb3VudFxuICAgIH0pO1xuICB9XG59XG4iLCI8bmF2XG4gIGNsYXNzPVwic2RjLXBhZ2luYXRvclwiXG4gIHJvbGU9XCJuYXZpZ2F0aW9uXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5wYWdpbmF0aW9uX25hdmlnYXRpb24nIHwgdHJhbnNsYXRlXCJcbj5cbiAgPGRpdiBjbGFzcz1cInNkYy1wYWdpbmF0b3ItbGVmdFwiPlxuICAgIDxkaXYgY2xhc3M9XCJzZGMtcGFnaW5hdG9yLXBhZ2VzXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInNkYy1wYWdlIHNkYy1lZGdlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Hb0JhY2soKVwiXG4gICAgICAgIChjbGljayk9XCJmaXJzdFBhZ2UoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuZmlyc3RfcGFnZScgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hbmdsZS1kb3VibGUtbGVmdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInNkYy1wYWdlIHNkYy1lZGdlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Hb0JhY2soKVwiXG4gICAgICAgIChjbGljayk9XCJwcmV2UGFnZSgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5wcmV2aW91c19wYWdlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWFuZ2xlLWxlZnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgQGZvciAocCBvZiBwYWdlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgQGlmIChhc051bWJlcihwKSkge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJzZGMtcGFnZVwiXG4gICAgICAgICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cImlzQ3VycmVudChwKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaXNDdXJyZW50KHApID8gJ3BhZ2UnIDogbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICBpc0N1cnJlbnQocClcbiAgICAgICAgICAgICAgICA/ICgncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5jdXJyZW50X3BhZ2UnIHwgdHJhbnNsYXRlKS5yZXBsYWNlKCd7bnVtYmVyfScsIGdldFBhZ2VMYWJlbChwKSlcbiAgICAgICAgICAgICAgICA6ICgncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5wYWdlX251bWJlcicgfCB0cmFuc2xhdGUpLnJlcGxhY2UoJ3tudW1iZXJ9JywgZ2V0UGFnZUxhYmVsKHApKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb3RvUGFnZShwKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgcCArIDEgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzZGMtcGFnZSBzZGMtcGFnZS0tZWxsaXBzaXNcIiBkaXNhYmxlZCBhcmlhLWhpZGRlbj1cInRydWVcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1lbGxpcHNpcy1kb3RzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWVsbGlwc2lzLWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtZWxsaXBzaXMtZG90XCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1lbGxpcHNpcy1kb3RcIj48L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtcGFnZSBzZGMtZWRnZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuR29Gb3J3YXJkKClcIlxuICAgICAgICAoY2xpY2spPVwibmV4dFBhZ2UoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubmV4dF9wYWdlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWFuZ2xlLXJpZ2h0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwic2RjLXBhZ2Ugc2RjLWVkZ2VcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbkdvRm9yd2FyZCgpXCJcbiAgICAgICAgKGNsaWNrKT1cImxhc3RQYWdlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lmxhc3RfcGFnZScgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hbmdsZS1kb3VibGUtcmlnaHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoc2hvd1Jvd3NQZXJQYWdlU2VsZWN0b3IoKSkge1xuICAgICAgPHNkYy1jb21ib2JveFxuICAgICAgICBjbGFzcz1cInNkYy1yb3dzLWNvbWJvYm94XCJcbiAgICAgICAgW211bHRpcGxlXT1cImZhbHNlXCJcbiAgICAgICAgW29wdGlvbnNdPVwicm93T3B0aW9ucygpXCJcbiAgICAgICAgW2FwcGVuZFRvXT1cIidib2R5J1wiXG4gICAgICAgIFtzaG93Q2xlYXJdPVwiZmFsc2VcIlxuICAgICAgICBbbmdNb2RlbF09XCJyb3dzKCkudG9TdHJpbmcoKVwiXG4gICAgICAgIChvblNlbGVjdGVkSXRlbSk9XCJvblJvd3NDb21ib01vZGVsKCRldmVudClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJvd3NfcGVyX3BhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgIDwvc2RjLWNvbWJvYm94PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgQGlmICh0b3RhbFJlY29yZHNMYWJlbCgpKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJzZGMtdG90YWxcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgIEBpZiAoc2hvdWxkRGlzcGxheVRvdGFsUmVjb3Jkc0ZpcnN0KCkpIHtcbiAgICAgICAge3sgdG90YWxSZWNvcmRzKCkgfX0ge3sgdG90YWxSZWNvcmRzRGlzcGxheUxhYmVsKCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB7eyB0b3RhbFJlY29yZHNEaXNwbGF5TGFiZWwoKSB8IHRyYW5zbGF0ZSB9fToge3sgdG90YWxSZWNvcmRzKCkgfX1cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmF2PlxuIl19
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJMUcsT0FBTyxFQUNMLDJCQUEyQixFQUMzQiw4QkFBOEIsRUFDOUIsNkNBQTZDLEVBQzdDLHFDQUFxQyxFQUNyQyw2QkFBNkIsRUFDN0IsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDOUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQVVuRSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDakMsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUNoQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBRXhDLGtCQUFrQixHQUFHLEtBQUssQ0FBOEIsU0FBUyxDQUFDLENBQUM7SUFDbkUsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLDZDQUE2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U0FBUztZQUNoQixJQUFJLEVBQUUsUUFBUTtZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsU0FBUyxFQUFFLGFBQWE7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0F4S1Usa0JBQWtCOzRGQUFsQixrQkFBa0IsNmxDQzlCL0IsbzZHQW9HQSxxd0dEM0VZLFlBQVksOEJBQUUsV0FBVywrVkFBRSxpQkFBaUIsZ1NBQUUsZUFBZTs7NEZBSzVELGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLENBQUMsbUJBR3ZELHVCQUF1QixDQUFDLE1BQU07OEJBWXJDLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBPcHRpb25JdGVtLCBPcHRpb25WYWx1ZSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2VtYW50aWNzLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBQYWdpbmF0b3JTdGF0ZSwgUGFnaW5hdG9yUGFnZXNJdGVtLCBQYWdpbmF0b3JSb3dzUGVyUGFnZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3BhZ2luYXRvci50eXBlJztcbmltcG9ydCB7XG4gIFBBR0lOQVRPUl9ERUZBVUxUX0lTX01PQklMRSxcbiAgUEFHSU5BVE9SX0RFRkFVTFRfUk9XU19PUFRJT05TLFxuICBQQUdJTkFUT1JfREVGQVVMVF9TSE9XX1JPV1NfUEVSX1BBR0VfU0VMRUNUT1IsXG4gIFBBR0lOQVRPUl9ERUZBVUxUX1RPVEFMX1JFQ09SRFNfTEFCRUwsXG4gIFBBR0lOQVRPUl9ERVNLVE9QX1dJTkRPV19TSVpFLFxuICBQQUdJTkFUT1JfRklSU1RfUEFHRV9JTkRFWCxcbiAgUEFHSU5BVE9SX01JTl9ST1dTLFxuICBQQUdJTkFUT1JfTU9CSUxFX1dJTkRPV19TSVpFLFxuICBQQUdJTkFUT1JfUkVDT1JEX0ZPVU5EX0xBQkVMLFxuICBQQUdJTkFUT1JfUkVDT1JEU19GT1VORF9MQUJFTCxcbiAgUEFHSU5BVE9SX1RPVEFMX1JFQ09SRFNfTEFCRUxcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvcGFnaW5hdG9yLmNvbnN0JztcbmltcG9ydCB7IENvbWJvYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLXBhZ2luYXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBDb21ib2JveENvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3JDb21wb25lbnQge1xuICBmaXJzdCA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgcm93cyA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgdG90YWxSZWNvcmRzID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuXG4gIHJvd3NQZXJQYWdlT3B0aW9ucyA9IGlucHV0PFBhZ2luYXRvclJvd3NQZXJQYWdlT3B0aW9ucz4odW5kZWZpbmVkKTtcbiAgc2hvd1Jvd3NQZXJQYWdlU2VsZWN0b3IgPSBpbnB1dChQQUdJTkFUT1JfREVGQVVMVF9TSE9XX1JPV1NfUEVSX1BBR0VfU0VMRUNUT1IpO1xuICBpc01vYmlsZSA9IGlucHV0KFBBR0lOQVRPUl9ERUZBVUxUX0lTX01PQklMRSk7XG4gIHRvdGFsUmVjb3Jkc0xhYmVsID0gaW5wdXQ8c3RyaW5nPihQQUdJTkFUT1JfREVGQVVMVF9UT1RBTF9SRUNPUkRTX0xBQkVMKTtcblxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnaW5hdG9yU3RhdGU+KCk7XG5cbiAgcmVhZG9ubHkgZWZmZWN0aXZlUm93c1BlclBhZ2VPcHRpb25zID0gY29tcHV0ZWQ8bnVtYmVyW10+KCgpID0+IHtcbiAgICBjb25zdCBwcm92aWRlZCA9IHRoaXMucm93c1BlclBhZ2VPcHRpb25zKCkgPz8gUEFHSU5BVE9SX0RFRkFVTFRfUk9XU19PUFRJT05TO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBbLi4ucHJvdmlkZWRdXG4gICAgICAubWFwKE51bWJlcilcbiAgICAgIC5maWx0ZXIodiA9PiBOdW1iZXIuaXNGaW5pdGUodikgJiYgdiA+IDApXG4gICAgICAubWFwKHYgPT4gTWF0aC50cnVuYyh2KSk7XG5cbiAgICBjb25zdCB1bmlxdWUgPSBBcnJheS5mcm9tKG5ldyBTZXQobm9ybWFsaXplZCkpO1xuICAgIGNvbnN0IGN1cnJlbnRSb3dzID0gTWF0aC5tYXgoUEFHSU5BVE9SX01JTl9ST1dTLCBNYXRoLnRydW5jKHRoaXMucm93cygpIHx8IFBBR0lOQVRPUl9NSU5fUk9XUykpO1xuXG4gICAgaWYgKCF1bmlxdWUuaW5jbHVkZXMoY3VycmVudFJvd3MpKSB7XG4gICAgICB1bmlxdWUudW5zaGlmdChjdXJyZW50Um93cyk7XG4gICAgfVxuXG4gICAgaWYgKHVuaXF1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBbY3VycmVudFJvd3NdO1xuICAgIH1cblxuICAgIHJldHVybiB1bmlxdWU7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJvd09wdGlvbnMgPSBjb21wdXRlZDxPcHRpb25JdGVtW10+KCgpID0+XG4gICAgdGhpcy5lZmZlY3RpdmVSb3dzUGVyUGFnZU9wdGlvbnMoKS5tYXAodiA9PiAoe1xuICAgICAgdGV4dDogU3RyaW5nKHYpLFxuICAgICAgdmFsdWU6IFN0cmluZyh2KSBhcyBPcHRpb25WYWx1ZVxuICAgIH0pKVxuICApO1xuXG4gIHJlYWRvbmx5IHBhZ2VDb3VudCA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4ge1xuICAgIGNvbnN0IHRvdGFsID0gTWF0aC5tYXgoMCwgdGhpcy50b3RhbFJlY29yZHMoKSk7XG4gICAgY29uc3QgcGFnZVNpemUgPSBNYXRoLm1heChQQUdJTkFUT1JfTUlOX1JPV1MsIHRoaXMucm93cygpKTtcbiAgICByZXR1cm4gTWF0aC5tYXgoMSwgTWF0aC5jZWlsKHRvdGFsIC8gcGFnZVNpemUpKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudFBhZ2UgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHtcbiAgICBjb25zdCBwYWdlU2l6ZSA9IE1hdGgubWF4KFBBR0lOQVRPUl9NSU5fUk9XUywgdGhpcy5yb3dzKCkpO1xuICAgIGNvbnN0IHJhdyA9IE1hdGguZmxvb3IodGhpcy5maXJzdCgpIC8gcGFnZVNpemUpO1xuICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChyYXcsIFBBR0lOQVRPUl9GSVJTVF9QQUdFX0lOREVYKSwgdGhpcy5wYWdlQ291bnQoKSAtIDEpO1xuICB9KTtcblxuICByZWFkb25seSBwYWdlcyA9IGNvbXB1dGVkPFBhZ2luYXRvclBhZ2VzSXRlbVtdPigoKSA9PiB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLnBhZ2VDb3VudCgpO1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmN1cnJlbnRQYWdlKCk7XG4gICAgY29uc3Qgd2luZG93U2l6ZSA9IHRoaXMuaXNNb2JpbGUoKSA/IFBBR0lOQVRPUl9NT0JJTEVfV0lORE9XX1NJWkUgOiBQQUdJTkFUT1JfREVTS1RPUF9XSU5ET1dfU0laRTtcblxuICAgIGlmIChjb3VudCA8PSB3aW5kb3dTaXplKSB7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogY291bnQgfSwgKF8sIGkpID0+IGkpO1xuICAgIH1cblxuICAgIGNvbnN0IHNpZGVTbG90cyA9IE1hdGguZmxvb3IoKHdpbmRvd1NpemUgLSAzKSAvIDIpO1xuICAgIGNvbnN0IHN0YXJ0ID0gTWF0aC5tYXgoMSwgY3VycmVudCAtIHNpZGVTbG90cyk7XG4gICAgY29uc3QgZW5kID0gTWF0aC5taW4oY291bnQgLSAyLCBjdXJyZW50ICsgc2lkZVNsb3RzKTtcblxuICAgIGNvbnN0IGl0ZW1zOiBQYWdpbmF0b3JQYWdlc0l0ZW1bXSA9IFswXTtcblxuICAgIGlmIChzdGFydCA+IDEpIHtcbiAgICAgIGl0ZW1zLnB1c2goJ+KApicpO1xuICAgIH1cblxuICAgIGZvciAobGV0IHAgPSBzdGFydDsgcCA8PSBlbmQ7IHArKykge1xuICAgICAgaXRlbXMucHVzaChwKTtcbiAgICB9XG5cbiAgICBpZiAoZW5kIDwgY291bnQgLSAyKSB7XG4gICAgICBpdGVtcy5wdXNoKCfigKYnKTtcbiAgICB9XG5cbiAgICBpdGVtcy5wdXNoKGNvdW50IC0gMSk7XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNhbkdvQmFjayA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMuY3VycmVudFBhZ2UoKSA+IFBBR0lOQVRPUl9GSVJTVF9QQUdFX0lOREVYKTtcbiAgcmVhZG9ubHkgY2FuR29Gb3J3YXJkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5jdXJyZW50UGFnZSgpIDwgdGhpcy5wYWdlQ291bnQoKSAtIDEpO1xuICByZWFkb25seSBzaG91bGREaXNwbGF5VG90YWxSZWNvcmRzRmlyc3QgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PlxuICAgIHRoaXMuaXNEZWZhdWx0UmVjb3Jkc0xhYmVsKHRoaXMudG90YWxSZWNvcmRzTGFiZWwoKSlcbiAgKTtcbiAgcmVhZG9ubHkgdG90YWxSZWNvcmRzRGlzcGxheUxhYmVsID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLnRvdGFsUmVjb3Jkc0xhYmVsKCk7XG5cbiAgICBpZiAoIXRoaXMuaXNEZWZhdWx0UmVjb3Jkc0xhYmVsKGxhYmVsKSkge1xuICAgICAgcmV0dXJuIGxhYmVsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRvdGFsUmVjb3JkcygpID09PSAxXG4gICAgICA/IFBBR0lOQVRPUl9SRUNPUkRfRk9VTkRfTEFCRUxcbiAgICAgIDogUEFHSU5BVE9SX1JFQ09SRFNfRk9VTkRfTEFCRUw7XG4gIH0pO1xuXG4gIGdvdG9QYWdlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBNYXRoLm1pbihNYXRoLm1heChNYXRoLnRydW5jKGluZGV4KSwgMCksIHRoaXMucGFnZUNvdW50KCkgLSAxKTtcbiAgICB0aGlzLmVtaXRDaGFuZ2UodGFyZ2V0ICogTWF0aC5tYXgoUEFHSU5BVE9SX01JTl9ST1dTLCB0aGlzLnJvd3MoKSkpO1xuICB9XG5cbiAgZmlyc3RQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuZ290b1BhZ2UoMCk7XG4gIH1cblxuICBwcmV2UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdvdG9QYWdlKHRoaXMuY3VycmVudFBhZ2UoKSAtIDEpO1xuICB9XG5cbiAgbmV4dFBhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5nb3RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKCkgKyAxKTtcbiAgfVxuXG4gIGxhc3RQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuZ290b1BhZ2UodGhpcy5wYWdlQ291bnQoKSAtIDEpO1xuICB9XG5cbiAgb25Sb3dzQ2hhbmdlKHJvd3M6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuZW1pdENoYW5nZSgwLCByb3dzKTtcbiAgfVxuXG4gIG9uUm93c0NvbWJvTW9kZWwodmFsOiBPcHRpb25WYWx1ZSB8IE9wdGlvblZhbHVlW10gfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgcmF3ID0gQXJyYXkuaXNBcnJheSh2YWwpID8gdmFsWzBdIDogdmFsO1xuICAgIGNvbnN0IG4gPSBOdW1iZXIocmF3KTtcblxuICAgIGlmICghTnVtYmVyLmlzTmFOKG4pICYmIG4gPiAwKSB7XG4gICAgICB0aGlzLm9uUm93c0NoYW5nZShuKTtcbiAgICB9XG4gIH1cblxuICBpc0N1cnJlbnQocGFnZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHBhZ2UgPT09IHRoaXMuY3VycmVudFBhZ2UoKTtcbiAgfVxuXG4gIGFzTnVtYmVyKHA6IFBhZ2luYXRvclBhZ2VzSXRlbSk6IHAgaXMgbnVtYmVyIHtcbiAgICByZXR1cm4gdHlwZW9mIHAgPT09ICdudW1iZXInO1xuICB9XG5cbiAgZ2V0UGFnZUxhYmVsKHBhZ2U6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIFN0cmluZyhwYWdlICsgMSk7XG4gIH1cblxuICBwcml2YXRlIGlzRGVmYXVsdFJlY29yZHNMYWJlbChsYWJlbDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIFBBR0lOQVRPUl9UT1RBTF9SRUNPUkRTX0xBQkVMLFxuICAgICAgUEFHSU5BVE9SX1JFQ09SRF9GT1VORF9MQUJFTCxcbiAgICAgIFBBR0lOQVRPUl9SRUNPUkRTX0ZPVU5EX0xBQkVMXG4gICAgXS5pbmNsdWRlcyhsYWJlbCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDaGFuZ2UoZmlyc3Q6IG51bWJlciwgcm93cyA9IHRoaXMucm93cygpKTogdm9pZCB7XG4gICAgY29uc3Qgc2FmZVJvd3MgPSBNYXRoLm1heChQQUdJTkFUT1JfTUlOX1JPV1MsIE1hdGgudHJ1bmMocm93cyB8fCBQQUdJTkFUT1JfTUlOX1JPV1MpKTtcbiAgICBjb25zdCBzYWZlUGFnZUNvdW50ID0gTWF0aC5tYXgoMSwgTWF0aC5jZWlsKE1hdGgubWF4KDAsIHRoaXMudG90YWxSZWNvcmRzKCkpIC8gc2FmZVJvd3MpKTtcbiAgICBjb25zdCBtYXhGaXJzdCA9IE1hdGgubWF4KDAsIChzYWZlUGFnZUNvdW50IC0gMSkgKiBzYWZlUm93cyk7XG4gICAgY29uc3Qgc2FmZUZpcnN0ID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgTWF0aC50cnVuYyhmaXJzdCB8fCAwKSksIG1heEZpcnN0KTtcbiAgICBjb25zdCBzYWZlUGFnZSA9IE1hdGguZmxvb3Ioc2FmZUZpcnN0IC8gc2FmZVJvd3MpO1xuXG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoe1xuICAgICAgZmlyc3Q6IHNhZmVGaXJzdCxcbiAgICAgIHJvd3M6IHNhZmVSb3dzLFxuICAgICAgcGFnZTogc2FmZVBhZ2UsXG4gICAgICBwYWdlQ291bnQ6IHNhZmVQYWdlQ291bnRcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5hdlxuICBjbGFzcz1cInNkYy1wYWdpbmF0b3JcIlxuICByb2xlPVwibmF2aWdhdGlvblwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucGFnaW5hdGlvbl9uYXZpZ2F0aW9uJyB8IHRyYW5zbGF0ZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJzZGMtcGFnaW5hdG9yLWxlZnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLXBhZ2luYXRvci1wYWdlc1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtcGFnZSBzZGMtZWRnZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuR29CYWNrKClcIlxuICAgICAgICAoY2xpY2spPVwiZmlyc3RQYWdlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmZpcnN0X3BhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtYW5nbGUtZG91YmxlLWxlZnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtcGFnZSBzZGMtZWRnZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuR29CYWNrKClcIlxuICAgICAgICAoY2xpY2spPVwicHJldlBhZ2UoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucHJldmlvdXNfcGFnZScgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hbmdsZS1sZWZ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIEBmb3IgKHAgb2YgcGFnZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIEBpZiAoYXNOdW1iZXIocCkpIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLXBhZ2VcIlxuICAgICAgICAgICAgW2NsYXNzLmlzLWFjdGl2ZV09XCJpc0N1cnJlbnQocClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImlzQ3VycmVudChwKSA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgaXNDdXJyZW50KHApXG4gICAgICAgICAgICAgICAgPyAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuY3VycmVudF9wYWdlJyB8IHRyYW5zbGF0ZSkucmVwbGFjZSgne251bWJlcn0nLCBnZXRQYWdlTGFiZWwocCkpXG4gICAgICAgICAgICAgICAgOiAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucGFnZV9udW1iZXInIHwgdHJhbnNsYXRlKS5yZXBsYWNlKCd7bnVtYmVyfScsIGdldFBhZ2VMYWJlbChwKSlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZ290b1BhZ2UocClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHAgKyAxIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2RjLXBhZ2Ugc2RjLXBhZ2UtLWVsbGlwc2lzXCIgZGlzYWJsZWQgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtZWxsaXBzaXMtZG90c1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1lbGxpcHNpcy1kb3RcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWVsbGlwc2lzLWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtZWxsaXBzaXMtZG90XCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwic2RjLXBhZ2Ugc2RjLWVkZ2VcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbkdvRm9yd2FyZCgpXCJcbiAgICAgICAgKGNsaWNrKT1cIm5leHRQYWdlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm5leHRfcGFnZScgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hbmdsZS1yaWdodFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInNkYy1wYWdlIHNkYy1lZGdlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Hb0ZvcndhcmQoKVwiXG4gICAgICAgIChjbGljayk9XCJsYXN0UGFnZSgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5sYXN0X3BhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtYW5nbGUtZG91YmxlLXJpZ2h0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKHNob3dSb3dzUGVyUGFnZVNlbGVjdG9yKCkpIHtcbiAgICAgIDxzZGMtY29tYm9ib3hcbiAgICAgICAgY2xhc3M9XCJzZGMtcm93cy1jb21ib2JveFwiXG4gICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICAgIFtvcHRpb25zXT1cInJvd09wdGlvbnMoKVwiXG4gICAgICAgIFthcHBlbmRUb109XCInYm9keSdcIlxuICAgICAgICBbc2hvd0NsZWFyXT1cImZhbHNlXCJcbiAgICAgICAgW25nTW9kZWxdPVwicm93cygpLnRvU3RyaW5nKClcIlxuICAgICAgICAob25TZWxlY3RlZEl0ZW0pPVwib25Sb3dzQ29tYm9Nb2RlbCgkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yb3dzX3Blcl9wYWdlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+XG4gICAgICA8L3NkYy1jb21ib2JveD5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIEBpZiAodG90YWxSZWNvcmRzTGFiZWwoKSkge1xuICAgIDxzcGFuIGNsYXNzPVwic2RjLXRvdGFsXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICBAaWYgKHNob3VsZERpc3BsYXlUb3RhbFJlY29yZHNGaXJzdCgpKSB7XG4gICAgICAgIHt7IHRvdGFsUmVjb3JkcygpIH19IHt7IHRvdGFsUmVjb3Jkc0Rpc3BsYXlMYWJlbCgpIHwgdHJhbnNsYXRlIH19XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAge3sgdG90YWxSZWNvcmRzRGlzcGxheUxhYmVsKCkgfCB0cmFuc2xhdGUgfX06IHt7IHRvdGFsUmVjb3JkcygpIH19XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICB9XG48L25hdj5cbiJdfQ==
|
|
@@ -161,7 +161,7 @@ export class PasswordStrengthComponent {
|
|
|
161
161
|
useExisting: forwardRef(() => PasswordStrengthComponent),
|
|
162
162
|
multi: true
|
|
163
163
|
}
|
|
164
|
-
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }], ngImport: i0, template: "<div class=\"sdc-password-strength\">\n
|
|
164
|
+
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }], ngImport: i0, template: "<div class=\"sdc-password-strength\">\n @if (label) {\n <label\n class=\"sdc-password-strength__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <input\n #inputRef\n [id]=\"inputId\"\n class=\"sdc-password-strength__input\"\n [class.sdc-password-strength__input--invalid]=\"invalid\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"value\"\n type=\"password\"\n autocomplete=\"new-password\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.password_strength.accessibility.input' | translate)\n \"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n />\n\n @if (showPanel) {\n <output\n class=\"sdc-password-strength__panel\"\n [class.sdc-password-strength__panel--top]=\"passwordStrengthPosition === 'top'\"\n [class.sdc-password-strength__panel--left]=\"passwordStrengthPosition === 'left'\"\n [class.sdc-password-strength__panel--right]=\"passwordStrengthPosition === 'right'\"\n [style.top.px]=\"panelTop\"\n [style.left.px]=\"panelLeft\"\n aria-live=\"polite\"\n >\n <span class=\"sdc-password-strength__title\">{{ title }}</span>\n <div class=\"sdc-password-strength__indicators\">\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(1)\"></span>\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(2)\"></span>\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(3)\"></span>\n </div>\n <span class=\"sdc-password-strength__content\">{{ passwordStrengthDescription | translate }}</span>\n </output>\n }\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-password-strength{display:flex;flex-direction:column;gap:.5rem}.sdc-password-strength .sdc-password-strength__label{font-weight:600;color:var(--sdc-text-color, var(--p-text-color, #111827))}.sdc-password-strength .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-password-strength .sdc-password-strength__input{width:100%;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 var(--sdc-form-input-padding-x, .875rem);font:inherit;background:var(--sdc-formfield-default-bg, #fff)}.sdc-password-strength .sdc-password-strength__input:focus,.sdc-password-strength .sdc-password-strength__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-password-strength .sdc-password-strength__input--invalid{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))}.sdc-password-strength .sdc-password-strength__panel{position:fixed;width:232px;padding:10px;background:#fff;border-radius:4px;box-shadow:0 0 5px 1px #0000002e;z-index:9999}.sdc-password-strength .sdc-password-strength__panel--top{transform:translate(-50%,-100%)}.sdc-password-strength .sdc-password-strength__panel--left{transform:translate(-100%,-50%)}.sdc-password-strength .sdc-password-strength__panel--right{transform:translateY(-50%)}.sdc-password-strength .sdc-password-strength__title{font-size:14px;font-weight:700;line-height:150%}.sdc-password-strength .sdc-password-strength__indicators{display:flex;justify-content:space-between;gap:.5rem;padding:10px 0}.sdc-password-strength .sdc-password-strength__indicator{background-color:#ccc;border-radius:2px;display:inline-block;height:3px;width:64px}.sdc-password-strength .sdc-password-strength__indicator--weak{background-color:#c13018}.sdc-password-strength .sdc-password-strength__indicator--medium{background-color:#fcbf10}.sdc-password-strength .sdc-password-strength__indicator--strong{background-color:#0c9348}.sdc-password-strength .sdc-password-strength__content{font-size:12px;line-height:150%;color:var(--sdc-text-subtle, #667085)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
165
165
|
}
|
|
166
166
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PasswordStrengthComponent, decorators: [{
|
|
167
167
|
type: Component,
|
|
@@ -171,7 +171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
171
171
|
useExisting: forwardRef(() => PasswordStrengthComponent),
|
|
172
172
|
multi: true
|
|
173
173
|
}
|
|
174
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-password-strength\">\n
|
|
174
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-password-strength\">\n @if (label) {\n <label\n class=\"sdc-password-strength__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <input\n #inputRef\n [id]=\"inputId\"\n class=\"sdc-password-strength__input\"\n [class.sdc-password-strength__input--invalid]=\"invalid\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"value\"\n type=\"password\"\n autocomplete=\"new-password\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.password_strength.accessibility.input' | translate)\n \"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n />\n\n @if (showPanel) {\n <output\n class=\"sdc-password-strength__panel\"\n [class.sdc-password-strength__panel--top]=\"passwordStrengthPosition === 'top'\"\n [class.sdc-password-strength__panel--left]=\"passwordStrengthPosition === 'left'\"\n [class.sdc-password-strength__panel--right]=\"passwordStrengthPosition === 'right'\"\n [style.top.px]=\"panelTop\"\n [style.left.px]=\"panelLeft\"\n aria-live=\"polite\"\n >\n <span class=\"sdc-password-strength__title\">{{ title }}</span>\n <div class=\"sdc-password-strength__indicators\">\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(1)\"></span>\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(2)\"></span>\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(3)\"></span>\n </div>\n <span class=\"sdc-password-strength__content\">{{ passwordStrengthDescription | translate }}</span>\n </output>\n }\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-password-strength{display:flex;flex-direction:column;gap:.5rem}.sdc-password-strength .sdc-password-strength__label{font-weight:600;color:var(--sdc-text-color, var(--p-text-color, #111827))}.sdc-password-strength .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-password-strength .sdc-password-strength__input{width:100%;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 var(--sdc-form-input-padding-x, .875rem);font:inherit;background:var(--sdc-formfield-default-bg, #fff)}.sdc-password-strength .sdc-password-strength__input:focus,.sdc-password-strength .sdc-password-strength__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-password-strength .sdc-password-strength__input--invalid{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))}.sdc-password-strength .sdc-password-strength__panel{position:fixed;width:232px;padding:10px;background:#fff;border-radius:4px;box-shadow:0 0 5px 1px #0000002e;z-index:9999}.sdc-password-strength .sdc-password-strength__panel--top{transform:translate(-50%,-100%)}.sdc-password-strength .sdc-password-strength__panel--left{transform:translate(-100%,-50%)}.sdc-password-strength .sdc-password-strength__panel--right{transform:translateY(-50%)}.sdc-password-strength .sdc-password-strength__title{font-size:14px;font-weight:700;line-height:150%}.sdc-password-strength .sdc-password-strength__indicators{display:flex;justify-content:space-between;gap:.5rem;padding:10px 0}.sdc-password-strength .sdc-password-strength__indicator{background-color:#ccc;border-radius:2px;display:inline-block;height:3px;width:64px}.sdc-password-strength .sdc-password-strength__indicator--weak{background-color:#c13018}.sdc-password-strength .sdc-password-strength__indicator--medium{background-color:#fcbf10}.sdc-password-strength .sdc-password-strength__indicator--strong{background-color:#0c9348}.sdc-password-strength .sdc-password-strength__content{font-size:12px;line-height:150%;color:var(--sdc-text-subtle, #667085)}\n"] }]
|
|
175
175
|
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { label: [{
|
|
176
176
|
type: Input
|
|
177
177
|
}], message: [{
|
|
@@ -209,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
209
209
|
type: HostListener,
|
|
210
210
|
args: ['window:scroll']
|
|
211
211
|
}] } });
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9wYXNzd29yZC1zdHJlbmd0aC9wYXNzd29yZC1zdHJlbmd0aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3Bhc3N3b3JkLXN0cmVuZ3RoL3Bhc3N3b3JkLXN0cmVuZ3RoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0Isa0NBQWtDLEVBQ25DLE1BQU0sOENBQThDLENBQUM7QUFFdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFFNUQsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQUM7QUFDdkMsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLENBQUM7QUFDN0MsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLENBQUM7QUFDN0MsTUFBTSxpQ0FBaUMsR0FBRyxFQUFFLENBQUM7QUFrQjdDLE1BQU0sT0FBTyx5QkFBeUI7SUE0QlA7SUEzQnBCLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRXBELEtBQUssR0FBbUIsS0FBSyxDQUFDO0lBQzlCLE9BQU8sR0FBbUIsS0FBSyxDQUFD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QkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNxQiwyQkFBMkI7c0JBQXJELEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQix3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFaUIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQXNFckIsZ0JBQWdCO3NCQUZmLFlBQVk7dUJBQUMsZUFBZTs7c0JBQzVCLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfTEVWRUwsXG4gIFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfUE9TSVRJT05cbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvcGFzc3dvcmQtc3RyZW5ndGguY29uc3QnO1xuaW1wb3J0IHR5cGUgeyBQYXNzd29yZFN0cmVuZ3RoTGV2ZWwsIFBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvcGFzc3dvcmQtc3RyZW5ndGgudHlwZSc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcblxuY29uc3QgUEFTU1dPUkRfU1RSRU5HVEhfTUlOX0xFTkdUSCA9IDY7XG5jb25zdCBQQVNTV09SRF9TVFJFTkdUSF9NRURJVU1fVEhSRVNIT0xEID0gNDtcbmNvbnN0IFBBU1NXT1JEX1NUUkVOR1RIX1NUUk9OR19USFJFU0hPTEQgPSA1O1xuY29uc3QgUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYID0gMjA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1wYXNzd29yZC1zdHJlbmd0aCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBhc3N3b3JkU3RyZW5ndGhDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBQYXNzd29yZFN0cmVuZ3RoQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgaW5wdXRJZCA9IG5leHRTZXF1ZW50aWFsSWQoJ3NkYy1wYXNzd29yZC1zdHJlbmd0aCcpO1xuXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCBmYWxzZSA9IGZhbHNlO1xuICBASW5wdXQoKSBtZXNzYWdlOiBzdHJpbmcgfCBmYWxzZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHBhc3N3b3JkU3RyZW5ndGhEZXNjcmlwdGlvbiA9ICcnO1xuICBASW5wdXQoKSBwYXNzd29yZFN0cmVuZ3RoUG9zaXRpb246IFBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbiA9IFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfUE9TSVRJT047XG4gIEBJbnB1dCgpIHBhc3N3b3JkU3RyZW5ndGhXZWFrVGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhc3N3b3JkU3RyZW5ndGhNZWRpdW1UaXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgcGFzc3dvcmRTdHJlbmd0aFN0cm9uZ1RpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBwYXNzd29yZFN0cmVuZ3RoVmFsaWRhdGlvbj86IChjb250ZW50OiBzdHJpbmcpID0+IFBhc3N3b3JkU3RyZW5ndGhMZXZlbDtcbiAgQElucHV0KCkgZW5hYmxlZCA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnKSBpbnB1dFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgdmFsdWUgPSAnJztcbiAgc2hvd1BhbmVsID0gZmFsc2U7XG4gIHBhbmVsVG9wID0gMDtcbiAgcGFuZWxMZWZ0ID0gMDtcbiAgbGV2ZWw6IFBhc3N3b3JkU3RyZW5ndGhMZXZlbCA9IFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfTEVWRUw7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLmxldmVsKSB7XG4gICAgICBjYXNlICdzdHJvbmcnOlxuICAgICAgICByZXR1cm4gdGhpcy5wYXNzd29yZFN0cmVuZ3RoU3Ryb25nVGl0bGVcbiAgICAgICAgICA/PyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5kYXRhY29yZS5wYXNzd29yZF9zdHJlbmd0aC5zdHJvbmcnKTtcbiAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICAgIHJldHVybiB0aGlzLnBhc3N3b3JkU3RyZW5ndGhNZWRpdW1UaXRsZVxuICAgICAgICAgID8/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3BsYXRmb3JtLmRhdGFjb3JlLnBhc3N3b3JkX3N0cmVuZ3RoLm1lZGl1bScpO1xuICAgICAgY2FzZSAnd2Vhayc6XG4gICAgICBjYXNlICd2ZXJ5V2Vhayc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5wYXNzd29yZFN0cmVuZ3RoV2Vha1RpdGxlXG4gICAgICAgICAgPz8gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxhdGZvcm0uZGF0YWNvcmUucGFzc3dvcmRfc3RyZW5ndGgud2VhaycpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgPz8gJyc7XG4gICAgdGhpcy5sZXZlbCA9IHRoaXMucmVzb2x2ZVN0cmVuZ3RoKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgbmV4dFZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCk/LnZhbHVlID8/ICcnO1xuICAgIHRoaXMudmFsdWUgPSBuZXh0VmFsdWU7XG4gICAgdGhpcy5sZXZlbCA9IHRoaXMucmVzb2x2ZVN0cmVuZ3RoKG5leHRWYWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZShuZXh0VmFsdWUpO1xuICAgIHRoaXMudXBkYXRlUGFuZWxQb3NpdGlvbigpO1xuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BhbmVsID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZVBhbmVsUG9zaXRpb24oKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dQYW5lbCA9IGZhbHNlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpXG4gIG9uVmlld3BvcnRDaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd1BhbmVsKSB7XG4gICAgICB0aGlzLnVwZGF0ZVBhbmVsUG9zaXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBpbmRpY2F0b3JDbGFzcyhpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5sZXZlbCA9PT0gJ3N0cm9uZycpIHtcbiAgICAgIHJldHVybiAnc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3ItLXN0cm9uZyc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGV2ZWwgPT09ICdtZWRpdW0nICYmIGluZGV4IDw9IDIpIHtcbiAgICAgIHJldHVybiAnc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3ItLW1lZGl1bSc7XG4gICAgfVxuXG4gICAgaWYgKCh0aGlzLmxldmVsID09PSAnd2VhaycgfHwgdGhpcy5sZXZlbCA9PT0gJ3ZlcnlXZWFrJykgJiYgaW5kZXggPT09IDEpIHtcbiAgICAgIHJldHVybiAnc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3ItLXdlYWsnO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGFuZWxQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFpbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlY3QgPSBpbnB1dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIHN3aXRjaCAodGhpcy5wYXNzd29yZFN0cmVuZ3RoUG9zaXRpb24pIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHRoaXMucGFuZWxUb3AgPSBNYXRoLnJvdW5kKHJlY3QudG9wIC0gUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYKTtcbiAgICAgICAgdGhpcy5wYW5lbExlZnQgPSBNYXRoLnJvdW5kKHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgdGhpcy5wYW5lbFRvcCA9IE1hdGgucm91bmQocmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDIpO1xuICAgICAgICB0aGlzLnBhbmVsTGVmdCA9IE1hdGgucm91bmQocmVjdC5sZWZ0IC0gUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnBhbmVsVG9wID0gTWF0aC5yb3VuZChyZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMik7XG4gICAgICAgIHRoaXMucGFuZWxMZWZ0ID0gTWF0aC5yb3VuZChyZWN0LnJpZ2h0ICsgUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlU3RyZW5ndGgoY29udGVudDogc3RyaW5nKTogUGFzc3dvcmRTdHJlbmd0aExldmVsIHtcbiAgICBpZiAodGhpcy5wYXNzd29yZFN0cmVuZ3RoVmFsaWRhdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMucGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRpb24oY29udGVudCk7XG4gICAgfVxuXG4gICAgbGV0IHBvaW50cyA9IDA7XG4gICAgaWYgKGNvbnRlbnQubGVuZ3RoID49IFBBU1NXT1JEX1NUUkVOR1RIX01JTl9MRU5HVEgpIHtcbiAgICAgIHBvaW50cyArPSAxO1xuICAgIH1cbiAgICBpZiAoL1xcZC8udGVzdChjb250ZW50KSkge1xuICAgICAgcG9pbnRzICs9IDE7XG4gICAgfVxuICAgIGlmICgvW2Etel0vLnRlc3QoY29udGVudCkpIHtcbiAgICAgIHBvaW50cyArPSAxO1xuICAgIH1cbiAgICBpZiAoL1tBLVpdLy50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICBwb2ludHMgKz0gMTtcbiAgICB9XG4gICAgaWYgKC9bIUAjJCUmKi5cXFxcPStefi1dLy50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICBwb2ludHMgKz0gMTtcbiAgICB9XG5cbiAgICBpZiAocG9pbnRzIDwgMSkge1xuICAgICAgcmV0dXJuICd2ZXJ5V2Vhayc7XG4gICAgfVxuICAgIGlmIChwb2ludHMgPCBQQVNTV09SRF9TVFJFTkdUSF9NRURJVU1fVEhSRVNIT0xEKSB7XG4gICAgICByZXR1cm4gJ3dlYWsnO1xuICAgIH1cbiAgICBpZiAocG9pbnRzIDwgUEFTU1dPUkRfU1RSRU5HVEhfU1RST05HX1RIUkVTSE9MRCkge1xuICAgICAgcmV0dXJuICdtZWRpdW0nO1xuICAgIH1cbiAgICByZXR1cm4gJ3N0cm9uZyc7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhcIj5cbiAgPGxhYmVsXG4gICAgKm5nSWY9XCJsYWJlbFwiXG4gICAgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2xhYmVsXCJcbiAgICBbYXR0ci5mb3JdPVwiaW5wdXRJZFwiXG4gID5cbiAgICB7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgIDxzcGFuICpuZ0lmPVwicmVxdWlyZWRcIiBjbGFzcz1cInJlcXVpcmVkLWZpZWxkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Kjwvc3Bhbj5cbiAgPC9sYWJlbD5cblxuICA8aW5wdXRcbiAgICAjaW5wdXRSZWZcbiAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2lucHV0XCJcbiAgICBbY2xhc3Muc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbnB1dC0taW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciA/IChwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgbGFiZWxcbiAgICAgICAgPyAobGFiZWwgfCB0cmFuc2xhdGUpXG4gICAgICAgIDogKCdwbGF0Zm9ybS5kYXRhY29yZS5wYXNzd29yZF9zdHJlbmd0aC5hY2Nlc3NpYmlsaXR5LmlucHV0JyB8IHRyYW5zbGF0ZSlcbiAgICBcIlxuICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgLz5cblxuICBAaWYgKHNob3dQYW5lbCkge1xuICAgIDxvdXRwdXRcbiAgICAgIGNsYXNzPVwic2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19wYW5lbFwiXG4gICAgICBbY2xhc3Muc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19wYW5lbC0tdG9wXT1cInBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbiA9PT0gJ3RvcCdcIlxuICAgICAgW2NsYXNzLnNkYy1wYXNzd29yZC1zdHJlbmd0aF9fcGFuZWwtLWxlZnRdPVwicGFzc3dvcmRTdHJlbmd0aFBvc2l0aW9uID09PSAnbGVmdCdcIlxuICAgICAgW2NsYXNzLnNkYy1wYXNzd29yZC1zdHJlbmd0aF9fcGFuZWwtLXJpZ2h0XT1cInBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbiA9PT0gJ3JpZ2h0J1wiXG4gICAgICBbc3R5bGUudG9wLnB4XT1cInBhbmVsVG9wXCJcbiAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInBhbmVsTGVmdFwiXG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXBhc3N3b3JkLXN0cmVuZ3RoX190aXRsZVwiPnt7IHRpdGxlIH19PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1wYXNzd29yZC1zdHJlbmd0aF9faW5kaWNhdG9yc1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1wYXNzd29yZC1zdHJlbmd0aF9faW5kaWNhdG9yXCIgW25nQ2xhc3NdPVwiaW5kaWNhdG9yQ2xhc3MoMSlcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3JcIiBbbmdDbGFzc109XCJpbmRpY2F0b3JDbGFzcygyKVwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2luZGljYXRvclwiIFtuZ0NsYXNzXT1cImluZGljYXRvckNsYXNzKDMpXCI+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy1wYXNzd29yZC1zdHJlbmd0aF9fY29udGVudFwiPnt7IHBhc3N3b3JkU3RyZW5ndGhEZXNjcmlwdGlvbiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L291dHB1dD5cbiAgfVxuXG4gIDxzbWFsbCAqbmdJZj1cIm1lc3NhZ2VcIiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIj5cbiAgICB7eyBtZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gIDwvc21hbGw+XG48L2Rpdj5cbiJdfQ==
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9wYXNzd29yZC1zdHJlbmd0aC9wYXNzd29yZC1zdHJlbmd0aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3Bhc3N3b3JkLXN0cmVuZ3RoL3Bhc3N3b3JkLXN0cmVuZ3RoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0Isa0NBQWtDLEVBQ25DLE1BQU0sOENBQThDLENBQUM7QUFFdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFFNUQsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQUM7QUFDdkMsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLENBQUM7QUFDN0MsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLENBQUM7QUFDN0MsTUFBTSxpQ0FBaUMsR0FBRyxFQUFFLENBQUM7QUFrQjdDLE1BQU0sT0FBTyx5QkFBeUI7SUE0QlA7SUEzQnBCLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRXBELEtBQUssR0FBbUIsS0FBSyxDQUFDO0lBQzlCLE9BQU8sR0FBbUIsS0FBSyxDQUFD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QkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNxQiwyQkFBMkI7c0JBQXJELEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQix3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFaUIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQXNFckIsZ0JBQWdCO3NCQUZmLFlBQVk7dUJBQUMsZUFBZTs7c0JBQzVCLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfTEVWRUwsXG4gIFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfUE9TSVRJT05cbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvcGFzc3dvcmQtc3RyZW5ndGguY29uc3QnO1xuaW1wb3J0IHR5cGUgeyBQYXNzd29yZFN0cmVuZ3RoTGV2ZWwsIFBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvcGFzc3dvcmQtc3RyZW5ndGgudHlwZSc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcblxuY29uc3QgUEFTU1dPUkRfU1RSRU5HVEhfTUlOX0xFTkdUSCA9IDY7XG5jb25zdCBQQVNTV09SRF9TVFJFTkdUSF9NRURJVU1fVEhSRVNIT0xEID0gNDtcbmNvbnN0IFBBU1NXT1JEX1NUUkVOR1RIX1NUUk9OR19USFJFU0hPTEQgPSA1O1xuY29uc3QgUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYID0gMjA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1wYXNzd29yZC1zdHJlbmd0aCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBhc3N3b3JkU3RyZW5ndGhDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBQYXNzd29yZFN0cmVuZ3RoQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgaW5wdXRJZCA9IG5leHRTZXF1ZW50aWFsSWQoJ3NkYy1wYXNzd29yZC1zdHJlbmd0aCcpO1xuXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCBmYWxzZSA9IGZhbHNlO1xuICBASW5wdXQoKSBtZXNzYWdlOiBzdHJpbmcgfCBmYWxzZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHBhc3N3b3JkU3RyZW5ndGhEZXNjcmlwdGlvbiA9ICcnO1xuICBASW5wdXQoKSBwYXNzd29yZFN0cmVuZ3RoUG9zaXRpb246IFBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbiA9IFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfUE9TSVRJT047XG4gIEBJbnB1dCgpIHBhc3N3b3JkU3RyZW5ndGhXZWFrVGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhc3N3b3JkU3RyZW5ndGhNZWRpdW1UaXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgcGFzc3dvcmRTdHJlbmd0aFN0cm9uZ1RpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBwYXNzd29yZFN0cmVuZ3RoVmFsaWRhdGlvbj86IChjb250ZW50OiBzdHJpbmcpID0+IFBhc3N3b3JkU3RyZW5ndGhMZXZlbDtcbiAgQElucHV0KCkgZW5hYmxlZCA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnKSBpbnB1dFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgdmFsdWUgPSAnJztcbiAgc2hvd1BhbmVsID0gZmFsc2U7XG4gIHBhbmVsVG9wID0gMDtcbiAgcGFuZWxMZWZ0ID0gMDtcbiAgbGV2ZWw6IFBhc3N3b3JkU3RyZW5ndGhMZXZlbCA9IFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfTEVWRUw7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLmxldmVsKSB7XG4gICAgICBjYXNlICdzdHJvbmcnOlxuICAgICAgICByZXR1cm4gdGhpcy5wYXNzd29yZFN0cmVuZ3RoU3Ryb25nVGl0bGVcbiAgICAgICAgICA/PyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5kYXRhY29yZS5wYXNzd29yZF9zdHJlbmd0aC5zdHJvbmcnKTtcbiAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICAgIHJldHVybiB0aGlzLnBhc3N3b3JkU3RyZW5ndGhNZWRpdW1UaXRsZVxuICAgICAgICAgID8/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3BsYXRmb3JtLmRhdGFjb3JlLnBhc3N3b3JkX3N0cmVuZ3RoLm1lZGl1bScpO1xuICAgICAgY2FzZSAnd2Vhayc6XG4gICAgICBjYXNlICd2ZXJ5V2Vhayc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5wYXNzd29yZFN0cmVuZ3RoV2Vha1RpdGxlXG4gICAgICAgICAgPz8gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxhdGZvcm0uZGF0YWNvcmUucGFzc3dvcmRfc3RyZW5ndGgud2VhaycpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgPz8gJyc7XG4gICAgdGhpcy5sZXZlbCA9IHRoaXMucmVzb2x2ZVN0cmVuZ3RoKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgbmV4dFZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCk/LnZhbHVlID8/ICcnO1xuICAgIHRoaXMudmFsdWUgPSBuZXh0VmFsdWU7XG4gICAgdGhpcy5sZXZlbCA9IHRoaXMucmVzb2x2ZVN0cmVuZ3RoKG5leHRWYWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZShuZXh0VmFsdWUpO1xuICAgIHRoaXMudXBkYXRlUGFuZWxQb3NpdGlvbigpO1xuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BhbmVsID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZVBhbmVsUG9zaXRpb24oKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dQYW5lbCA9IGZhbHNlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpXG4gIG9uVmlld3BvcnRDaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd1BhbmVsKSB7XG4gICAgICB0aGlzLnVwZGF0ZVBhbmVsUG9zaXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBpbmRpY2F0b3JDbGFzcyhpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5sZXZlbCA9PT0gJ3N0cm9uZycpIHtcbiAgICAgIHJldHVybiAnc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3ItLXN0cm9uZyc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGV2ZWwgPT09ICdtZWRpdW0nICYmIGluZGV4IDw9IDIpIHtcbiAgICAgIHJldHVybiAnc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3ItLW1lZGl1bSc7XG4gICAgfVxuXG4gICAgaWYgKCh0aGlzLmxldmVsID09PSAnd2VhaycgfHwgdGhpcy5sZXZlbCA9PT0gJ3ZlcnlXZWFrJykgJiYgaW5kZXggPT09IDEpIHtcbiAgICAgIHJldHVybiAnc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3ItLXdlYWsnO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGFuZWxQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFpbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlY3QgPSBpbnB1dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIHN3aXRjaCAodGhpcy5wYXNzd29yZFN0cmVuZ3RoUG9zaXRpb24pIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHRoaXMucGFuZWxUb3AgPSBNYXRoLnJvdW5kKHJlY3QudG9wIC0gUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYKTtcbiAgICAgICAgdGhpcy5wYW5lbExlZnQgPSBNYXRoLnJvdW5kKHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgdGhpcy5wYW5lbFRvcCA9IE1hdGgucm91bmQocmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDIpO1xuICAgICAgICB0aGlzLnBhbmVsTGVmdCA9IE1hdGgucm91bmQocmVjdC5sZWZ0IC0gUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnBhbmVsVG9wID0gTWF0aC5yb3VuZChyZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMik7XG4gICAgICAgIHRoaXMucGFuZWxMZWZ0ID0gTWF0aC5yb3VuZChyZWN0LnJpZ2h0ICsgUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlU3RyZW5ndGgoY29udGVudDogc3RyaW5nKTogUGFzc3dvcmRTdHJlbmd0aExldmVsIHtcbiAgICBpZiAodGhpcy5wYXNzd29yZFN0cmVuZ3RoVmFsaWRhdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMucGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRpb24oY29udGVudCk7XG4gICAgfVxuXG4gICAgbGV0IHBvaW50cyA9IDA7XG4gICAgaWYgKGNvbnRlbnQubGVuZ3RoID49IFBBU1NXT1JEX1NUUkVOR1RIX01JTl9MRU5HVEgpIHtcbiAgICAgIHBvaW50cyArPSAxO1xuICAgIH1cbiAgICBpZiAoL1xcZC8udGVzdChjb250ZW50KSkge1xuICAgICAgcG9pbnRzICs9IDE7XG4gICAgfVxuICAgIGlmICgvW2Etel0vLnRlc3QoY29udGVudCkpIHtcbiAgICAgIHBvaW50cyArPSAxO1xuICAgIH1cbiAgICBpZiAoL1tBLVpdLy50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICBwb2ludHMgKz0gMTtcbiAgICB9XG4gICAgaWYgKC9bIUAjJCUmKi5cXFxcPStefi1dLy50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICBwb2ludHMgKz0gMTtcbiAgICB9XG5cbiAgICBpZiAocG9pbnRzIDwgMSkge1xuICAgICAgcmV0dXJuICd2ZXJ5V2Vhayc7XG4gICAgfVxuICAgIGlmIChwb2ludHMgPCBQQVNTV09SRF9TVFJFTkdUSF9NRURJVU1fVEhSRVNIT0xEKSB7XG4gICAgICByZXR1cm4gJ3dlYWsnO1xuICAgIH1cbiAgICBpZiAocG9pbnRzIDwgUEFTU1dPUkRfU1RSRU5HVEhfU1RST05HX1RIUkVTSE9MRCkge1xuICAgICAgcmV0dXJuICdtZWRpdW0nO1xuICAgIH1cbiAgICByZXR1cm4gJ3N0cm9uZyc7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhcIj5cbiAgQGlmIChsYWJlbCkge1xuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2xhYmVsXCJcbiAgICAgIFthdHRyLmZvcl09XCJpbnB1dElkXCJcbiAgICAgID5cbiAgICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgfVxuICAgIDwvbGFiZWw+XG4gIH1cblxuICA8aW5wdXRcbiAgICAjaW5wdXRSZWZcbiAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2lucHV0XCJcbiAgICBbY2xhc3Muc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbnB1dC0taW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciA/IChwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgbGFiZWxcbiAgICAgICAgPyAobGFiZWwgfCB0cmFuc2xhdGUpXG4gICAgICAgIDogKCdwbGF0Zm9ybS5kYXRhY29yZS5wYXNzd29yZF9zdHJlbmd0aC5hY2Nlc3NpYmlsaXR5LmlucHV0JyB8IHRyYW5zbGF0ZSlcbiAgICBcIlxuICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAvPlxuXG4gICAgQGlmIChzaG93UGFuZWwpIHtcbiAgICAgIDxvdXRwdXRcbiAgICAgICAgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX3BhbmVsXCJcbiAgICAgICAgW2NsYXNzLnNkYy1wYXNzd29yZC1zdHJlbmd0aF9fcGFuZWwtLXRvcF09XCJwYXNzd29yZFN0cmVuZ3RoUG9zaXRpb24gPT09ICd0b3AnXCJcbiAgICAgICAgW2NsYXNzLnNkYy1wYXNzd29yZC1zdHJlbmd0aF9fcGFuZWwtLWxlZnRdPVwicGFzc3dvcmRTdHJlbmd0aFBvc2l0aW9uID09PSAnbGVmdCdcIlxuICAgICAgICBbY2xhc3Muc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19wYW5lbC0tcmlnaHRdPVwicGFzc3dvcmRTdHJlbmd0aFBvc2l0aW9uID09PSAncmlnaHQnXCJcbiAgICAgICAgW3N0eWxlLnRvcC5weF09XCJwYW5lbFRvcFwiXG4gICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInBhbmVsTGVmdFwiXG4gICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX3RpdGxlXCI+e3sgdGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2luZGljYXRvcnNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1wYXNzd29yZC1zdHJlbmd0aF9faW5kaWNhdG9yXCIgW25nQ2xhc3NdPVwiaW5kaWNhdG9yQ2xhc3MoMSlcIj48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2luZGljYXRvclwiIFtuZ0NsYXNzXT1cImluZGljYXRvckNsYXNzKDIpXCI+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3JcIiBbbmdDbGFzc109XCJpbmRpY2F0b3JDbGFzcygzKVwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19jb250ZW50XCI+e3sgcGFzc3dvcmRTdHJlbmd0aERlc2NyaXB0aW9uIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPC9vdXRwdXQ+XG4gICAgfVxuXG4gICAgQGlmIChtZXNzYWdlKSB7XG4gICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+XG4gICAgICAgIHt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc21hbGw+XG4gICAgfVxuICA8L2Rpdj5cbiJdfQ==
|