@mediusinc/mng-commons 3.0.0-rc.8 → 3.0.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/dev-scripts/version-info.js +13 -6
- package/esm2022/lib/components/action/models/action-execution.model.mjs +1 -1
- package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +13 -2
- package/esm2022/lib/components/form/dropdown/dropdown.component.mjs +16 -5
- package/esm2022/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.mjs +22 -4
- package/esm2022/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +10 -3
- package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +7 -5
- package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +17 -8
- package/esm2022/lib/components/form/models/field-action-context.model.mjs +1 -1
- package/esm2022/lib/components/form/models/index.mjs +2 -1
- package/esm2022/lib/components/tableview/table/table.component.mjs +55 -53
- package/esm2022/lib/descriptors/action/action.descriptor.mjs +6 -6
- package/esm2022/lib/descriptors/editor/editor.descriptor.mjs +2 -2
- package/esm2022/lib/descriptors/editor/field.descriptor.mjs +13 -4
- package/esm2022/lib/descriptors/filter/filter.descriptor.mjs +4 -4
- package/esm2022/lib/descriptors/table/column.descriptor.mjs +2 -2
- package/esm2022/lib/descriptors/tableview/tableview.descriptor.mjs +2 -2
- package/esm2022/lib/error/error.handler.mjs +7 -10
- package/esm2022/lib/models/error.model.mjs +44 -2
- package/esm2022/lib/models/index.mjs +1 -2
- package/esm2022/lib/models/log.model.mjs +1 -1
- package/esm2022/lib/models/version.model.mjs +1 -1
- package/esm2022/lib/pipes/json-path.pipe.mjs +3 -62
- package/esm2022/lib/provide-commons.mjs +8 -3
- package/esm2022/lib/router/route-builder.mjs +3 -3
- package/esm2022/lib/router/routes-builder.mjs +2 -2
- package/esm2022/lib/services/action-error-mapper.service.mjs +3 -2
- package/esm2022/lib/services/action-executor.service.mjs +61 -36
- package/esm2022/lib/services/configuration.service.mjs +7 -13
- package/esm2022/lib/services/index.mjs +2 -1
- package/esm2022/lib/services/internal/commons-init.service.mjs +4 -3
- package/esm2022/lib/services/log-publisher-console.service.mjs +40 -0
- package/esm2022/lib/services/logger.service.mjs +57 -50
- package/esm2022/lib/services/tokens/index.mjs +2 -1
- package/esm2022/lib/services/tokens/log-publisher.token.mjs +3 -0
- package/esm2022/lib/services/version.service.mjs +7 -2
- package/esm2022/lib/utils/action-data-provider.util.mjs +7 -7
- package/esm2022/lib/utils/editor-formly.util.mjs +2 -1
- package/esm2022/lib/utils/error.util.mjs +247 -0
- package/esm2022/lib/utils/i18n.util.mjs +7 -9
- package/esm2022/lib/utils/index.mjs +2 -1
- package/esm2022/lib/utils/notification.util.mjs +1 -1
- package/esm2022/lib/utils/object.util.mjs +50 -1
- package/esm2022/lib/utils/route.util.mjs +2 -2
- package/esm2022/lib/utils/string.util.mjs +32 -1
- package/esm2022/lib/utils/tableview.util.mjs +2 -2
- package/esm2022/lib/utils/type.util.mjs +2 -2
- package/fesm2022/mediusinc-mng-commons.mjs +867 -457
- package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
- package/lib/components/action/models/action-execution.model.d.ts +2 -2
- package/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.d.ts +3 -0
- package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +1 -0
- package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +1 -0
- package/lib/components/form/models/field-action-context.model.d.ts +7 -0
- package/lib/components/form/models/index.d.ts +1 -0
- package/lib/components/tableview/table/table.component.d.ts +2 -0
- package/lib/descriptors/editor/field.descriptor.d.ts +8 -6
- package/lib/descriptors/table/column.descriptor.d.ts +1 -1
- package/lib/models/error.model.d.ts +44 -9
- package/lib/models/index.d.ts +0 -1
- package/lib/models/log.model.d.ts +14 -8
- package/lib/models/version.model.d.ts +1 -1
- package/lib/pipes/json-path.pipe.d.ts +0 -1
- package/lib/services/action-error-mapper.service.d.ts +10 -3
- package/lib/services/action-executor.service.d.ts +3 -2
- package/lib/services/index.d.ts +1 -0
- package/lib/services/internal/commons-init.service.d.ts +1 -0
- package/lib/services/log-publisher-console.service.d.ts +4 -0
- package/lib/services/logger.service.d.ts +11 -8
- package/lib/services/tokens/index.d.ts +1 -0
- package/lib/services/tokens/log-publisher.token.d.ts +3 -0
- package/lib/services/version.service.d.ts +1 -0
- package/lib/utils/error.util.d.ts +116 -0
- package/lib/utils/i18n.util.d.ts +3 -3
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/notification.util.d.ts +2 -2
- package/lib/utils/object.util.d.ts +1 -0
- package/lib/utils/string.util.d.ts +5 -0
- package/package.json +4 -1
- package/scss/common/theme/designer/_components.scss +1 -1
- package/scss/mng-overrides/_theme_dialog.scss +7 -0
- package/scss/mng-overrides/_theme_tableview.scss +3 -0
- package/esm2022/lib/models/internal-error.model.mjs +0 -30
- package/lib/models/internal-error.model.d.ts +0 -26
|
@@ -233,7 +233,7 @@ export class TableviewDescriptor {
|
|
|
233
233
|
*/
|
|
234
234
|
withModifiedType(property, columnType, fieldType, columnDisplayType) {
|
|
235
235
|
if (columnType === ColumnTypeEnum.Enum) {
|
|
236
|
-
throw new MngInternalError('Do not use with types where args are required', '
|
|
236
|
+
throw new MngInternalError('Do not use with types where args are required', { name: 'TableViewDescriptorError' });
|
|
237
237
|
}
|
|
238
238
|
const attributeDef = TableviewUtil.getAttributeDefMap(this._modelType).find(atribute => atribute.name === property);
|
|
239
239
|
if (attributeDef != null) {
|
|
@@ -349,4 +349,4 @@ export class TableviewDynamicDescriptor extends TableviewDescriptor {
|
|
|
349
349
|
return descriptor;
|
|
350
350
|
}
|
|
351
351
|
}
|
|
352
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rlc2NyaXB0b3JzL3RhYmxldmlldy90YWJsZXZpZXcuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQXdCLGdCQUFnQixFQUF3QixNQUFNLGNBQWMsQ0FBQztBQUU1RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBRUgsZ0JBQWdCLEVBTW5CLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQW1CLGVBQWUsRUFBRSxzQkFBc0IsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNuRixPQUFPLEVBQXdCLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUU1RyxNQUFNLE9BQU8sbUJBQW1CO0lBZTVCLFlBQVksU0FBdUIsRUFBRSxVQUFtQixFQUFFLGFBQXNCLEVBQUUsV0FBeUM7UUFKakgsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFLM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBSSxTQUFTLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFJLFNBQVMsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBSSxT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LENBQUM7SUFDbEMsQ0FBQztJQUVELElBQW9CLEtBQUs7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDYSxtQkFBbUIsQ0FBQyxVQUFrQztRQUNsRSxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNhLFlBQVksQ0FBQyxRQUFnQjtRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0seUJBQXlCLENBQUMsV0FBbUI7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDYSxJQUFJO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25JLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QyxVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDMUMsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtGaWVsZFZhbGlkYXRvckZufSBmcm9tICdAbmd4LWZvcm1seS9jb3JlL2xpYi9tb2RlbHMvY29uZmlnJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7TWVkaXVzUXVlcnlQYXJhbX0gZnJvbSAnLi4vLi4vYXBpL21vZGVscyc7XG5pbXBvcnQge09iamVjdFNlcmlhbGl6ZXJ9IGZyb20gJy4uLy4uL2FwaS91dGlscyc7XG5pbXBvcnQge0lMb29rdXBEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7SUNvbHVtblZhbHVlQ29tcG9uZW50LCBNbmdJbnRlcm5hbEVycm9yLCBUYWJsZXZpZXdBdHRyaWJ1dGVEZWZ9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0NsYXNzVHlwZSwgRW51bUNvbnN0YW50VHlwZSwgRW51bVR5cGV9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7TW9kZWxVdGlsfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQge1RhYmxldmlld1V0aWx9IGZyb20gJy4uLy4uL3V0aWxzL3RhYmxldmlldy51dGlsJztcbmltcG9ydCB7XG4gICAgQUZpZWxkRGVzY3JpcHRvcixcbiAgICBFZGl0b3JEZXNjcmlwdG9yLFxuICAgIEZpZWxkSW5wdXREZXNjcmlwdG9yLFxuICAgIEZpZWxkTG9va3VwRGVzY3JpcHRvcixcbiAgICBGaWVsZExvb2t1cEVudW1EZXNjcmlwdG9yLFxuICAgIEZpZWxkTWFueUVkaXRvckRlc2NyaXB0b3IsXG4gICAgRmllbGRNYW55VG9NYW55RWRpdG9yRGVzY3JpcHRvclxufSBmcm9tICcuLi9lZGl0b3InO1xuaW1wb3J0IHtNb2RlbERlc2NyaXB0b3J9IGZyb20gJy4uL21vZGVsLmRlc2NyaXB0b3InO1xuaW1wb3J0IHtDb2x1bW5EZXNjcmlwdG9yLCBUYWJsZURlc2NyaXB0b3IsIFRhYmxlRHluYW1pY0Rlc2NyaXB0b3J9IGZyb20gJy4uL3RhYmxlJztcbmltcG9ydCB7Q29sdW1uRGlzcGxheVR5cGVFbnVtLCBDb2x1bW5UeXBlRW51bSwgRmllbGRJbnB1dFR5cGVFbnVtLCBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bX0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgVGFibGV2aWV3RGVzY3JpcHRvcjxUPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxUPjtcbiAgICBwcml2YXRlIF9tb2RlbFR5cGU6IENsYXNzVHlwZTxUPjtcblxuICAgIHByb3RlY3RlZCBfdGFibGU6IFRhYmxlRGVzY3JpcHRvcjxUPjtcbiAgICBwcm90ZWN0ZWQgX2RldGFpbHNFZGl0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD47XG4gICAgcHJvdGVjdGVkIF9hZGRFZGl0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD47XG4gICAgcHJvdGVjdGVkIF9lZGl0RWRpdG9yOiBFZGl0b3JEZXNjcmlwdG9yPFQ+O1xuXG4gICAgcHJvdGVjdGVkIF90YWJsZVRpdGxlPzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9pc0xvY2FsaXplZCA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBfbG9jYWxpemF0aW9uTG9jYWxlUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9sb2NhbGl6YXRpb25Mb2NhbGl6YXRpb25Qcm9wZXJ0eT86IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKG1vZGVsVHlwZTogQ2xhc3NUeXBlPFQ+LCBpZFByb3BlcnR5Pzogc3RyaW5nLCB0aXRsZVByb3BlcnR5Pzogc3RyaW5nLCBpMThuQmFzZUtleT86IHN0cmluZyB8IENsYXNzVHlwZTx1bmtub3duPikge1xuICAgICAgICB0aGlzLl9tb2RlbFR5cGUgPSBtb2RlbFR5cGU7XG4gICAgICAgIHRoaXMuX21vZGVsID0gbmV3IE1vZGVsRGVzY3JpcHRvcjxUPihtb2RlbFR5cGUsIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHksIGkxOG5CYXNlS2V5KTtcbiAgICAgICAgdGhpcy5fdGFibGUgPSBuZXcgVGFibGVEZXNjcmlwdG9yPFQ+KG1vZGVsVHlwZSwgaWRQcm9wZXJ0eSwgdGl0bGVQcm9wZXJ0eSwgaTE4bkJhc2VLZXkpO1xuICAgICAgICB0aGlzLl9kZXRhaWxzRWRpdG9yID0gbmV3IEVkaXRvckRlc2NyaXB0b3I8VD4obW9kZWxUeXBlLCBpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5LCBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5EZXRhaWxzLCBpMThuQmFzZUtleSk7XG4gICAgICAgIHRoaXMuX2RldGFpbHNFZGl0b3Iud2l0aERpc2FibGVkKCk7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvciA9IG5ldyBFZGl0b3JEZXNjcmlwdG9yPFQ+KG1vZGVsVHlwZSwgaWRQcm9wZXJ0eSwgdGl0bGVQcm9wZXJ0eSwgVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uQWRkLCBpMThuQmFzZUtleSk7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IgPSBuZXcgRWRpdG9yRGVzY3JpcHRvcjxUPihtb2RlbFR5cGUsIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHksIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkVkaXQsIGkxOG5CYXNlS2V5KTtcbiAgICAgICAgdGhpcy5fdGFibGVUaXRsZSA9IGAke3RoaXMuX21vZGVsLmkxOG5CYXNlS2V5fS5uYW1lYDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZW5lcmF0ZXMgZGVzY3JpcHRvciBmcm9tIGF0dHJpYnV0ZSBkZWZpbml0aW9uIG9mIG9wZW5hYXBpIG1vZGVsXG4gICAgICogQHBhcmFtIG1vZGVsVHlwZSBjbGFzcyB0eXBlXG4gICAgICogQHBhcmFtIGlkUHJvcGVydHlcbiAgICAgKiBAcGFyYW0gdGl0bGVQcm9wZXJ0eVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbTxUPihtb2RlbFR5cGU6IENsYXNzVHlwZTxUPiwgaWRQcm9wZXJ0eT86IHN0cmluZywgdGl0bGVQcm9wZXJ0eT86IHN0cmluZyk6IFRhYmxldmlld0Rlc2NyaXB0b3I8VD4ge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFRhYmxldmlld0Rlc2NyaXB0b3IobW9kZWxUeXBlLCBpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5KTtcbiAgICAgICAgZGVzY3JpcHRvci5fdGFibGUgPSBUYWJsZURlc2NyaXB0b3IuZnJvbShtb2RlbFR5cGUsIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHkpO1xuICAgICAgICBkZXNjcmlwdG9yLl9lZGl0RWRpdG9yID0gRWRpdG9yRGVzY3JpcHRvci5mcm9tKG1vZGVsVHlwZSwgaWRQcm9wZXJ0eSwgdGl0bGVQcm9wZXJ0eSwgVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uRWRpdCk7XG4gICAgICAgIGRlc2NyaXB0b3IuX2RldGFpbHNFZGl0b3IgPSBFZGl0b3JEZXNjcmlwdG9yLmZyb20obW9kZWxUeXBlLCBpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5LCBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5EZXRhaWxzKS53aXRoRGlzYWJsZWQoKTtcbiAgICAgICAgZGVzY3JpcHRvci5fYWRkRWRpdG9yID0gRWRpdG9yRGVzY3JpcHRvci5mcm9tKG1vZGVsVHlwZSwgaWRQcm9wZXJ0eSwgdGl0bGVQcm9wZXJ0eSwgVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uQWRkKTtcblxuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZW5lcmF0ZXMgZGVzY3JpcHRvciBmcm9tIGdpdmVuIGF0dHJpYnV0ZSBkZWZpbml0aW9uXG4gICAgICogQHBhcmFtIG1vZGVsVHlwZSBjbGFzcyB0eXBlXG4gICAgICogQHBhcmFtIGNvbHVtbkF0dHJpYnV0ZXMgYXR0cmlidXRlIGRlZmluaXRpb24gdG8gZ2VuZXJhdGUgY29sdW1uc1xuICAgICAqIEBwYXJhbSBmaWVsZEF0dHJpYnV0ZXMgYXR0cmlidXRlIGRlZmluaXRpb24gdG8gZ2VuZXJhdGUgZmllbGRzLCBpZiB1bmRlZmluZWQgY29sdW1uRGVmaW5pdGlvbiBpcyB1c2VkLCBpZiBudWxsIGVkaXRvcnMgYXJlIG5vdCBnZW5lcmF0ZWRcbiAgICAgKiBAcGFyYW0gaWRQcm9wZXJ0eVxuICAgICAqIEBwYXJhbSB0aXRsZVByb3BlcnR5XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmcm9tTW9kZWxXaXRoRGVmaW5pdGlvbjxUPihcbiAgICAgICAgbW9kZWxUeXBlOiBDbGFzc1R5cGU8VD4sXG4gICAgICAgIGNvbHVtbkF0dHJpYnV0ZXM6IFRhYmxldmlld0F0dHJpYnV0ZURlZltdLFxuICAgICAgICBmaWVsZEF0dHJpYnV0ZXM/OiBUYWJsZXZpZXdBdHRyaWJ1dGVEZWZbXSB8IG51bGwsXG4gICAgICAgIGlkUHJvcGVydHk/OiBzdHJpbmcsXG4gICAgICAgIHRpdGxlUHJvcGVydHk/OiBzdHJpbmdcbiAgICApOiBUYWJsZXZpZXdEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBUYWJsZXZpZXdEZXNjcmlwdG9yKG1vZGVsVHlwZSwgaWRQcm9wZXJ0eSwgdGl0bGVQcm9wZXJ0eSk7XG4gICAgICAgIGRlc2NyaXB0b3IuX3RhYmxlID0gVGFibGVEZXNjcmlwdG9yLmZyb21Nb2RlbFdpdGhBdHRyaWJ1dGVzKG1vZGVsVHlwZSwgY29sdW1uQXR0cmlidXRlcywgaWRQcm9wZXJ0eSwgdGl0bGVQcm9wZXJ0eSk7XG5cbiAgICAgICAgaWYgKGZpZWxkQXR0cmlidXRlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgZGVzY3JpcHRvci5fZWRpdEVkaXRvciA9IEVkaXRvckRlc2NyaXB0b3IuZnJvbU1vZGVsV2l0aEF0dHJpYnV0ZXMoXG4gICAgICAgICAgICAgICAgbW9kZWxUeXBlLFxuICAgICAgICAgICAgICAgIGZpZWxkQXR0cmlidXRlcyA/PyBjb2x1bW5BdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgIGlkUHJvcGVydHksXG4gICAgICAgICAgICAgICAgdGl0bGVQcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5FZGl0XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZGVzY3JpcHRvci5fZGV0YWlsc0VkaXRvciA9IEVkaXRvckRlc2NyaXB0b3IuZnJvbU1vZGVsV2l0aEF0dHJpYnV0ZXMoXG4gICAgICAgICAgICAgICAgbW9kZWxUeXBlLFxuICAgICAgICAgICAgICAgIGZpZWxkQXR0cmlidXRlcyA/PyBjb2x1bW5BdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgIGlkUHJvcGVydHksXG4gICAgICAgICAgICAgICAgdGl0bGVQcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5EZXRhaWxzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZGVzY3JpcHRvci5fYWRkRWRpdG9yID0gRWRpdG9yRGVzY3JpcHRvci5mcm9tTW9kZWxXaXRoQXR0cmlidXRlcyhcbiAgICAgICAgICAgICAgICBtb2RlbFR5cGUsXG4gICAgICAgICAgICAgICAgZmllbGRBdHRyaWJ1dGVzID8/IGNvbHVtbkF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgaWRQcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICB0aXRsZVByb3BlcnR5LFxuICAgICAgICAgICAgICAgIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkFkZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGFibGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRldGFpbHNFZGl0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZXRhaWxzRWRpdG9yO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWRkRWRpdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkRWRpdG9yO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWRpdEVkaXRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VkaXRFZGl0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0YWJsZVRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGVUaXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1vZGVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWw7XG4gICAgfVxuXG4gICAgcHVibGljIGlzTG9jYWxpemVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNMb2NhbGl6ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUYWJsZURlc2NyaXB0b3IoZGVzY3JpcHRvcjogVGFibGVEZXNjcmlwdG9yPFQ+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RhYmxlID0gZGVzY3JpcHRvcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFZGl0b3JEZXNjcmlwdG9ycyhkZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9yPFQ+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2RldGFpbHNFZGl0b3IgPSBkZXNjcmlwdG9yO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yID0gZGVzY3JpcHRvcjtcbiAgICAgICAgdGhpcy5fYWRkRWRpdG9yID0gZGVzY3JpcHRvcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEZXRhaWxzRGVzY3JpcHRvcihkZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9yPFQ+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2RldGFpbHNFZGl0b3IgPSBkZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEFkZERlc2NyaXB0b3IoZGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvcjxUPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IgPSBkZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEVkaXREZXNjcmlwdG9yKGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvciA9IGRlc2NyaXB0b3I7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgbmV3IGNvcHkgb2YgZWRpdG9yIGRlc2NyaXB0b3IgYW5kIG1ha2VzIGl0IGRpc2FibGVkXG4gICAgICogdXNhYmxlIGluIGNvbWJpbmF0aW9uIHdpdGggdGhpczo6d2l0aEVkaXRvckRlc2NyaXB0b3JzLCB3aGVyZSBkZXRhaWxzRGVzY3JpcHRvciBpcyBtYWRlIG5vbiBkaXNhYmxlZFxuICAgICAqIEBwYXJhbSB0eXBlIHdoaWNoIGVkaXRvciB0eXBlIHRvIHNldCB0byBkaXNhYmxlZFxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoRGlzYWJsZWRFZGl0b3JEZXNjcmlwdG9yKHR5cGUgPSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5EZXRhaWxzKTogdGhpcyB7XG4gICAgICAgIGlmICh0eXBlID09PSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5FZGl0KSB7XG4gICAgICAgICAgICB0aGlzLl9lZGl0RWRpdG9yID0gdGhpcy5fZWRpdEVkaXRvci5jb3B5KCkud2l0aERpc2FibGVkKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uRGV0YWlscykge1xuICAgICAgICAgICAgdGhpcy5fZGV0YWlsc0VkaXRvciA9IHRoaXMuX2RldGFpbHNFZGl0b3IuY29weSgpLndpdGhEaXNhYmxlZCgpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkFkZCkge1xuICAgICAgICAgICAgdGhpcy5fYWRkRWRpdG9yID0gdGhpcy5fYWRkRWRpdG9yLmNvcHkoKS53aXRoRGlzYWJsZWQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFRhYmxlVGl0bGUodGl0bGU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl90YWJsZVRpdGxlID0gdGl0bGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVmFsaWRhdG9yKG5hbWU6IHN0cmluZywgZXhwcmVzc2lvbjogRmllbGRWYWxpZGF0b3JGbik6IHRoaXMge1xuICAgICAgICB0aGlzLl9kZXRhaWxzRWRpdG9yLmFkZFZhbGlkYXRpb24obmFtZSwgZXhwcmVzc2lvbik7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvci5hZGRWYWxpZGF0aW9uKG5hbWUsIGV4cHJlc3Npb24pO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmFkZFZhbGlkYXRpb24obmFtZSwgZXhwcmVzc2lvbik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDb2x1bW5EZXNjcmlwdG9yPENUPihjb2x1bW46IENvbHVtbkRlc2NyaXB0b3I8Q1QsIFQ+KTogVGFibGVEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlLmFkZENvbHVtbkRlc2NyaXB0b3I8Q1Q+KGNvbHVtbik7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbihwcm9wZXJ0eTogc3RyaW5nKTogQ29sdW1uRGVzY3JpcHRvcjxzdHJpbmcsIFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlLmFkZENvbHVtbihwcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZUNvbHVtbihwcm9wZXJ0eTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlLnJlbW92ZUNvbHVtbihwcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpZWxkKHByb3BlcnR5OiBzdHJpbmcsIGVkaXRvclR5cGU6IFRhYmxldmlld0VkaXRvclR5cGVFbnVtKTogQUZpZWxkRGVzY3JpcHRvcjxhbnksIFQ+IHwgbnVsbCB7XG4gICAgICAgIHN3aXRjaCAoZWRpdG9yVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5FZGl0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9lZGl0RWRpdG9yLmdldEZpZWxkKHByb3BlcnR5KTtcbiAgICAgICAgICAgIGNhc2UgVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uQWRkOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZGRFZGl0b3IuZ2V0RmllbGQocHJvcGVydHkpO1xuICAgICAgICAgICAgY2FzZSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5EZXRhaWxzOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9kZXRhaWxzRWRpdG9yLmdldEZpZWxkKHByb3BlcnR5KTtcbiAgICAgICAgICAgIGNhc2UgVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uTm9uZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVGaWVsZChwcm9wZXJ0eTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IucmVtb3ZlRmllbGQocHJvcGVydHkpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IucmVtb3ZlRmllbGQocHJvcGVydHkpO1xuICAgICAgICB0aGlzLl9kZXRhaWxzRWRpdG9yLnJlbW92ZUZpZWxkKHByb3BlcnR5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uTnVtYmVyKHByb3BlcnR5OiBzdHJpbmcsIGRpc3BsYXlGb3JtYXQ/OiBzdHJpbmcpOiBDb2x1bW5EZXNjcmlwdG9yPG51bWJlciwgVD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGUuYWRkQ29sdW1uTnVtYmVyKHByb3BlcnR5LCBkaXNwbGF5Rm9ybWF0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uRGF0ZShwcm9wZXJ0eTogc3RyaW5nLCBkaXNwbGF5Rm9ybWF0Pzogc3RyaW5nKTogQ29sdW1uRGVzY3JpcHRvcjxEYXRlLCBUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZS5hZGRDb2x1bW5EYXRlKHByb3BlcnR5LCBkaXNwbGF5Rm9ybWF0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uQm9vbGVhbihwcm9wZXJ0eTogc3RyaW5nLCB5ZXM/OiBzdHJpbmcsIG5vPzogc3RyaW5nLCBhc0ljb24gPSBmYWxzZSk6IENvbHVtbkRlc2NyaXB0b3I8Ym9vbGVhbiwgVD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGUuYWRkQ29sdW1uQm9vbGVhbihwcm9wZXJ0eSwgeWVzLCBubywgYXNJY29uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uRW51bShwcm9wZXJ0eTogc3RyaW5nLCBlbnVtVHlwZTogRW51bVR5cGUsIG5hbWVBc1ZhbHVlID0gZmFsc2UsIHRpdGxlUGF0aD86IHN0cmluZyB8IG51bGwpOiBDb2x1bW5EZXNjcmlwdG9yPEVudW1UeXBlLCBUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZS5hZGRDb2x1bW5FbnVtKHByb3BlcnR5LCBlbnVtVHlwZSwgbmFtZUFzVmFsdWUsIHRpdGxlUGF0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbkN1c3RvbUNvbXBvbmVudChwcm9wZXJ0eTogc3RyaW5nLCBjdXN0b21Db21wb25lbnRUeXBlOiBUeXBlPElDb2x1bW5WYWx1ZUNvbXBvbmVudDxUPj4pOiBDb2x1bW5EZXNjcmlwdG9yPGFueSwgVD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGUuYWRkQ29sdW1uQ3VzdG9tQ29tcG9uZW50KHByb3BlcnR5LCBjdXN0b21Db21wb25lbnRUeXBlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlVGFiR3JvdXAobmFtZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9kZXRhaWxzRWRpdG9yLmNyZWF0ZVRhYkdyb3VwKG5hbWUsIHRpdGxlKTtcbiAgICAgICAgdGhpcy5fYWRkRWRpdG9yLmNyZWF0ZVRhYkdyb3VwKG5hbWUsIHRpdGxlKTtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvci5jcmVhdGVUYWJHcm91cChuYW1lLCB0aXRsZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVGaWVsZEdyb3VwKG5hbWU6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGV0YWlsc0VkaXRvci5jcmVhdGVGaWVsZEdyb3VwKG5hbWUsIHRpdGxlKTtcbiAgICAgICAgdGhpcy5fYWRkRWRpdG9yLmNyZWF0ZUZpZWxkR3JvdXAobmFtZSwgdGl0bGUpO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmNyZWF0ZUZpZWxkR3JvdXAobmFtZSwgdGl0bGUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkRmllbGREZXNjcmlwdG9yPEZUPihmaWVsZDogQUZpZWxkRGVzY3JpcHRvcjxGVCwgVD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGV0YWlsc0VkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkRmllbGQocHJvcGVydHk6IHN0cmluZyk6IEZpZWxkSW5wdXREZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLl9kZXRhaWxzRWRpdG9yLmFkZEZpZWxkKHByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5fYWRkRWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRGaWVsZExvb2t1cDxGVD4ocHJvcGVydHk6IHN0cmluZywgbW9kZWxUeXBlOiBDbGFzc1R5cGU8RlQ+KTogRmllbGRMb29rdXBEZXNjcmlwdG9yPEZULCBUPiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5fZGV0YWlsc0VkaXRvci5hZGRGaWVsZExvb2t1cChwcm9wZXJ0eSwgbW9kZWxUeXBlKTtcbiAgICAgICAgdGhpcy5fYWRkRWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRGaWVsZExvb2t1cEVudW0oXG4gICAgICAgIHByb3BlcnR5OiBzdHJpbmcsXG4gICAgICAgIGVudW1UeXBlOiBFbnVtVHlwZSxcbiAgICAgICAgb3B0aW9ucz86IEFycmF5PEVudW1Db25zdGFudFR5cGU+LFxuICAgICAgICBuYW1lQXNWYWx1ZSA9IGZhbHNlLFxuICAgICAgICBvcHRpb25zVGl0bGVQYXRoPzogc3RyaW5nIHwgbnVsbFxuICAgICk6IEZpZWxkTG9va3VwRW51bURlc2NyaXB0b3I8VD4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuX2RldGFpbHNFZGl0b3IuYWRkRmllbGRMb29rdXBFbnVtKHByb3BlcnR5LCBlbnVtVHlwZSwgb3B0aW9ucywgbmFtZUFzVmFsdWUsIG9wdGlvbnNUaXRsZVBhdGgpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEZpZWxkTWFueUVkaXRvcjxGVD4ocHJvcGVydHk6IHN0cmluZywgdGFibGV2aWV3RGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvcjxGVD4pOiBGaWVsZE1hbnlFZGl0b3JEZXNjcmlwdG9yPEZULCBUPiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5fZGV0YWlsc0VkaXRvci5hZGRGaWVsZE1hbnlFZGl0b3IocHJvcGVydHksIHRhYmxldmlld0Rlc2NyaXB0b3IpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEZpZWxkTWFueVRvTWFueUVkaXRvcjxGVD4oXG4gICAgICAgIHByb3BlcnR5OiBzdHJpbmcsXG4gICAgICAgIG1haW5UYWJsZURlc2NyaXB0b3I6IFRhYmxlRGVzY3JpcHRvcjxGVD4sXG4gICAgICAgIGxvb2t1cFRhYmxlRGVzY3JpcHRvcjogVGFibGVEZXNjcmlwdG9yPEZUPlxuICAgICk6IEZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3I8RlQsIFQ+IHtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLl9kZXRhaWxzRWRpdG9yLmFkZEZpZWxkTWFueVRvTWFueUVkaXRvcihwcm9wZXJ0eSwgbWFpblRhYmxlRGVzY3JpcHRvciwgbG9va3VwVGFibGVEZXNjcmlwdG9yKTtcbiAgICAgICAgdGhpcy5fYWRkRWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5KCk6IFRhYmxldmlld0Rlc2NyaXB0b3I8VD4ge1xuICAgICAgICBjb25zdCB0YWJsZXZpZXcgPSBuZXcgVGFibGV2aWV3RGVzY3JpcHRvcih0aGlzLl9tb2RlbC50eXBlLCB0aGlzLl9tb2RlbC5pZFByb3BlcnR5TmFtZSwgdGhpcy5fbW9kZWwudGl0bGVQcm9wZXJ0eU5hbWUpO1xuICAgICAgICB0YWJsZXZpZXcuX3RhYmxlID0gdGhpcy5fdGFibGUuY29weSgpO1xuICAgICAgICB0YWJsZXZpZXcuX2RldGFpbHNFZGl0b3IgPSB0aGlzLl9kZXRhaWxzRWRpdG9yLmNvcHkoKTtcbiAgICAgICAgdGFibGV2aWV3Ll9hZGRFZGl0b3IgPSB0aGlzLl9hZGRFZGl0b3IuY29weSgpO1xuICAgICAgICB0YWJsZXZpZXcuX2VkaXRFZGl0b3IgPSB0aGlzLl9lZGl0RWRpdG9yLmNvcHkoKTtcbiAgICAgICAgdGFibGV2aWV3Ll90YWJsZVRpdGxlID0gdGhpcy5fdGFibGVUaXRsZTtcbiAgICAgICAgdGFibGV2aWV3Ll9pc0xvY2FsaXplZCA9IHRoaXMuX2lzTG9jYWxpemVkO1xuICAgICAgICB0YWJsZXZpZXcuX2xvY2FsaXphdGlvbkxvY2FsZVByb3BlcnR5ID0gdGhpcy5fbG9jYWxpemF0aW9uTG9jYWxlUHJvcGVydHk7XG4gICAgICAgIHRhYmxldmlldy5fbG9jYWxpemF0aW9uTG9jYWxpemF0aW9uUHJvcGVydHkgPSB0aGlzLl9sb2NhbGl6YXRpb25Mb2NhbGl6YXRpb25Qcm9wZXJ0eTtcbiAgICAgICAgcmV0dXJuIHRhYmxldmlldztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGNvbHVtbiBhbmQgZmllbGQgd2l0aCBjdXN0b20gdHlwZSwgZm9yIGV4YW1wbGUgY3VycmVuY3lcbiAgICAgKiBpZiBmaWVsZCBleGlzdHMsIGl0IGlzIHJlcGxhY2VkXG4gICAgICogRE8gTk9UIFVTRSBXSVRIIFRZUEVTIFdIRVJFIEFSR1MgQVJFIFJFUVVJUkVEIC0gRVJST1IgV0lMTCBCRSBUSFJPV05cbiAgICAgKiBmb3IgZW51bSB1c2Ugd2l0aEVudW1UeXBlXG4gICAgICogZm9yIGN1c3RvbSBjbGFzcyB1c2Ugd2l0aENsYXNzVHlwZVxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eSBuYW1lIG9mIGZpZWxkXG4gICAgICogQHBhcmFtIGNvbHVtblR5cGUgcmVxdWlyZWQgY29sdW1uIHR5cGVcbiAgICAgKiBAcGFyYW0gZmllbGRUeXBlIG9wdGlvbmFsLCBpZiBub3QgcHJvdmlkZWQgaXQgaXMgY29udmVydGVkIGZyb20gY29sdW1uIHR5cGVcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aE1vZGlmaWVkVHlwZShwcm9wZXJ0eTogc3RyaW5nLCBjb2x1bW5UeXBlOiBDb2x1bW5UeXBlRW51bSwgZmllbGRUeXBlPzogRmllbGRJbnB1dFR5cGVFbnVtLCBjb2x1bW5EaXNwbGF5VHlwZT86IENvbHVtbkRpc3BsYXlUeXBlRW51bSk6IHRoaXMge1xuICAgICAgICBpZiAoY29sdW1uVHlwZSA9PT0gQ29sdW1uVHlwZUVudW0uRW51bSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE1uZ0ludGVybmFsRXJyb3IoJ0RvIG5vdCB1c2Ugd2l0aCB0eXBlcyB3aGVyZSBhcmdzIGFyZSByZXF1aXJlZCcsICdUYWJsZVZpZXdEZXNjcmlwdG9yIGVycm9yJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhdHRyaWJ1dGVEZWYgPSBUYWJsZXZpZXdVdGlsLmdldEF0dHJpYnV0ZURlZk1hcCh0aGlzLl9tb2RlbFR5cGUpLmZpbmQoYXRyaWJ1dGUgPT4gYXRyaWJ1dGUubmFtZSA9PT0gcHJvcGVydHkpO1xuXG4gICAgICAgIGlmIChhdHRyaWJ1dGVEZWYgIT0gbnVsbCkge1xuICAgICAgICAgICAgZmllbGRUeXBlID8/PSBUYWJsZXZpZXdVdGlsLnRvRmllbGRJbnB1dFR5cGVGcm9tQ29sdW1uVHlwZShjb2x1bW5UeXBlLCBjb2x1bW5EaXNwbGF5VHlwZSk7XG4gICAgICAgICAgICBhdHRyaWJ1dGVEZWYuZmllbGRUeXBlID0gZmllbGRUeXBlO1xuXG4gICAgICAgICAgICB0aGlzLl90YWJsZS53aXRoQ29sdW1uTW9kaWZpZWRUeXBlKHByb3BlcnR5LCBjb2x1bW5UeXBlLCBjb2x1bW5EaXNwbGF5VHlwZSk7XG4gICAgICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLndpdGhGaWVsZE1vZGlmaWVkVHlwZShwcm9wZXJ0eSwgZmllbGRUeXBlKTtcbiAgICAgICAgICAgIHRoaXMuX2FkZEVkaXRvci53aXRoRmllbGRNb2RpZmllZFR5cGUocHJvcGVydHksIGZpZWxkVHlwZSk7XG4gICAgICAgICAgICB0aGlzLl9kZXRhaWxzRWRpdG9yLndpdGhGaWVsZE1vZGlmaWVkVHlwZShwcm9wZXJ0eSwgZmllbGRUeXBlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgY29sdW1uIHdpdGggZW51bSB0eXBlXG4gICAgICogaWYgZmllbGRzIGV4aXN0cywgaXQgaXMgcmVwbGFjZWRcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgcHJvcGVydHkgbmFtZVxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSB0eXBlIG9mIGVudW1cbiAgICAgKiBAcGFyYW0gZmllbGRUeXBlIHR5cGUgb2YgZmllbGQsIG9wdGlvbmFsLCBkZWZhdWx0IGlzIFRleHRcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aE1vZGlmaWVkRW51bShwcm9wZXJ0eTogc3RyaW5nLCBlbnVtVHlwZT86IEVudW1UeXBlLCBmaWVsZFR5cGU/OiBGaWVsZElucHV0VHlwZUVudW0pOiB0aGlzIHtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlRGVmID0gVGFibGV2aWV3VXRpbC5nZXRBdHRyaWJ1dGVEZWZNYXAodGhpcy5fbW9kZWxUeXBlKS5maW5kKGF0cmlidXRlID0+IGF0cmlidXRlLm5hbWUgPT09IHByb3BlcnR5KTtcblxuICAgICAgICBpZiAoYXR0cmlidXRlRGVmICE9IG51bGwpIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZURlZi5maWVsZFR5cGUgPSBmaWVsZFR5cGUgPz8gRmllbGRJbnB1dFR5cGVFbnVtLlRleHQ7XG5cbiAgICAgICAgICAgIHRoaXMuX3RhYmxlLndpdGhDb2x1bW5Nb2RpZmllZEVudW0ocHJvcGVydHksIGVudW1UeXBlKTtcbiAgICAgICAgICAgIHRoaXMuX2VkaXRFZGl0b3Iud2l0aEZpZWxkTW9kaWZpZWRFbnVtKHByb3BlcnR5LCBlbnVtVHlwZSk7XG4gICAgICAgICAgICB0aGlzLl9kZXRhaWxzRWRpdG9yLndpdGhGaWVsZE1vZGlmaWVkRW51bShwcm9wZXJ0eSwgZW51bVR5cGUpO1xuICAgICAgICAgICAgdGhpcy5fYWRkRWRpdG9yLndpdGhGaWVsZE1vZGlmaWVkRW51bShwcm9wZXJ0eSwgZW51bVR5cGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2VuZXJhdGVzIGNvbHVtbiB3aXRoIGN1c3RvbSBjbGFzcyB0eXBlXG4gICAgICogZmllbGQgaXMgZ2VuZXJhdGVkIG9ubHkgaWYgbG9va3VwUHJvdmlkZXIgaXMgcHJvdmlkZWRcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgcHJvcGVydHkgbmFtZVxuICAgICAqIEBwYXJhbSBtb2RlbFR5cGUgY2xhc3MgdHlwZSBvZiBvYmplY3RcbiAgICAgKiBAcGFyYW0gdGl0bGVQcm9wZXJ0eVxuICAgICAqIEBwYXJhbSBsb29rdXBQcm92aWRlclxuICAgICAqIEBwYXJhbSBpdGVtc0xhYmVsUHJvcGVydHlcbiAgICAgKiBAcGFyYW0gZmlsdGVyUHJvcGVydHlcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aE1vZGlmaWVkTG9va3VwPE1UPihcbiAgICAgICAgcHJvcGVydHk6IHN0cmluZyxcbiAgICAgICAgbW9kZWxUeXBlPzogQ2xhc3NUeXBlPE1UPixcbiAgICAgICAgbG9va3VwUHJvdmlkZXI/OiBJTG9va3VwRGF0YVByb3ZpZGVyPE1ULCBhbnk+LFxuICAgICAgICB0aXRsZVByb3BlcnR5Pzogc3RyaW5nLFxuICAgICAgICBpdGVtc0xhYmVsUHJvcGVydHk/OiBzdHJpbmcsXG4gICAgICAgIGZpbHRlclByb3BlcnR5Pzogc3RyaW5nXG4gICAgKTogdGhpcyB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZURlZiA9IFRhYmxldmlld1V0aWwuZ2V0QXR0cmlidXRlRGVmTWFwKHRoaXMuX21vZGVsVHlwZSkuZmluZChhdHJpYnV0ZSA9PiBhdHJpYnV0ZS5uYW1lID09PSBwcm9wZXJ0eSk7XG5cbiAgICAgICAgaWYgKGF0dHJpYnV0ZURlZiAhPSBudWxsKSB7XG4gICAgICAgICAgICBtb2RlbFR5cGUgPz89IGF0dHJpYnV0ZURlZi5jbGFzc1R5cGUgPz8gT2JqZWN0U2VyaWFsaXplci5nZXQoKS5maW5kVHlwZShhdHRyaWJ1dGVEZWYudHlwZSk7XG4gICAgICAgICAgICB0aXRsZVByb3BlcnR5ID8/PSBNb2RlbFV0aWwuZmluZFRpdGxlQXR0cmlidXRlKG1vZGVsVHlwZSEpID8/IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGl0ZW1zTGFiZWxQcm9wZXJ0eSA/Pz0gdGl0bGVQcm9wZXJ0eTtcbiAgICAgICAgICAgIGF0dHJpYnV0ZURlZi5jb2x1bW5UeXBlID0gQ29sdW1uVHlwZUVudW0uU3RyaW5nO1xuICAgICAgICAgICAgYXR0cmlidXRlRGVmLmZpZWxkVHlwZSA9IEZpZWxkSW5wdXRUeXBlRW51bS5UZXh0O1xuXG4gICAgICAgICAgICBpZiAobG9va3VwUHJvdmlkZXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlLndpdGhDb2x1bW5Nb2RpZmllZExvb2t1cChwcm9wZXJ0eSwgbG9va3VwUHJvdmlkZXIsIGl0ZW1zTGFiZWxQcm9wZXJ0eSwgZmlsdGVyUHJvcGVydHkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEVkaXRvci53aXRoRmllbGRNb2RpZmllZExvb2t1cChwcm9wZXJ0eSwgbW9kZWxUeXBlISwgbG9va3VwUHJvdmlkZXIsIGl0ZW1zTGFiZWxQcm9wZXJ0eSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGV0YWlsc0VkaXRvci53aXRoRmllbGRNb2RpZmllZExvb2t1cChwcm9wZXJ0eSwgbW9kZWxUeXBlISwgbG9va3VwUHJvdmlkZXIsIGl0ZW1zTGFiZWxQcm9wZXJ0eSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZWRpdEVkaXRvci53aXRoRmllbGRNb2RpZmllZExvb2t1cChwcm9wZXJ0eSwgbW9kZWxUeXBlISwgbG9va3VwUHJvdmlkZXIsIGl0ZW1zTGFiZWxQcm9wZXJ0eSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuX3RhYmxlLmdldENvbHVtbihwcm9wZXJ0eSkgPz8gdGhpcy5hZGRDb2x1bW4ocHJvcGVydHkpO1xuICAgICAgICAgICAgICAgIGNvbHVtbi53aXRoT2JqZWN0UHJvcGVydHkobW9kZWxUeXBlISwgdGl0bGVQcm9wZXJ0eSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9jYWxpemVkPFM+KFxuICAgICAgICBsb2NhbGl6YXRpb25Qcm9wZXJ0eT86IHN0cmluZyxcbiAgICAgICAgbG9jYWxlUHJvcGVydHk/OiBzdHJpbmcsXG4gICAgICAgIGxvY2FsaXphdGlvbkJlYW5UeXBlPzogQ2xhc3NUeXBlPGFueT4sXG4gICAgICAgIGxvY2FsZUxvb2t1cD86IChxdWVyeVBhcmFtPzogTWVkaXVzUXVlcnlQYXJhbSwgc2VydmljZT86IFMsIHNlYXJjaD86IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxBcnJheTxzdHJpbmc+PlxuICAgICk6IHRoaXMge1xuICAgICAgICB0aGlzLl9sb2NhbGl6YXRpb25Mb2NhbGl6YXRpb25Qcm9wZXJ0eSA9IGxvY2FsaXphdGlvblByb3BlcnR5O1xuICAgICAgICB0aGlzLl9sb2NhbGl6YXRpb25Mb2NhbGVQcm9wZXJ0eSA9IGxvY2FsZVByb3BlcnR5O1xuICAgICAgICB0aGlzLl9pc0xvY2FsaXplZCA9IHRydWU7XG5cbiAgICAgICAgaWYgKGxvY2FsZVByb3BlcnR5KSB7XG4gICAgICAgICAgICB0aGlzLl90YWJsZS53aXRoTG9jYWxpemF0aW9uTG9jYWxlUHJvcGVydHkobG9jYWxlUHJvcGVydHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kZXRhaWxzRWRpdG9yLmxvY2FsaXplZDxTPihsb2NhbGl6YXRpb25Qcm9wZXJ0eSwgbG9jYWxlUHJvcGVydHksIGxvY2FsaXphdGlvbkJlYW5UeXBlLCBsb2NhbGVMb29rdXApO1xuICAgICAgICB0aGlzLmFkZEVkaXRvci5sb2NhbGl6ZWQ8Uz4obG9jYWxpemF0aW9uUHJvcGVydHksIGxvY2FsZVByb3BlcnR5LCBsb2NhbGl6YXRpb25CZWFuVHlwZSwgbG9jYWxlTG9va3VwKTtcbiAgICAgICAgdGhpcy5lZGl0RWRpdG9yLmxvY2FsaXplZDxTPihsb2NhbGl6YXRpb25Qcm9wZXJ0eSwgbG9jYWxlUHJvcGVydHksIGxvY2FsaXphdGlvbkJlYW5UeXBlLCBsb2NhbGVMb29rdXApO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxldmlld0R5bmFtaWNEZXNjcmlwdG9yIGV4dGVuZHMgVGFibGV2aWV3RGVzY3JpcHRvcjxhbnk+IHtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX3RhYmxlOiBUYWJsZUR5bmFtaWNEZXNjcmlwdG9yO1xuXG4gICAgY29uc3RydWN0b3IoaWRQcm9wZXJ0eT86IHN0cmluZywgdGl0bGVQcm9wZXJ0eT86IHN0cmluZywgaTE4bkJhc2VLZXk/OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoe30gYXMgQ2xhc3NUeXBlPGFueT4sIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHksIGkxOG5CYXNlS2V5KTtcbiAgICAgICAgdGhpcy5fdGFibGUgPSBuZXcgVGFibGVEeW5hbWljRGVzY3JpcHRvcihpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5LCBpMThuQmFzZUtleSk7XG4gICAgICAgIHN1cGVyLl90YWJsZVRpdGxlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdGFibGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIGN1c3RvbSB0YWJsZSBkZXNjcmlwdG9yXG4gICAgICogQHBhcmFtIGRlc2NyaXB0b3JcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgd2l0aFRhYmxlRGVzY3JpcHRvcihkZXNjcmlwdG9yOiBUYWJsZUR5bmFtaWNEZXNjcmlwdG9yKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RhYmxlID0gZGVzY3JpcHRvcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyB2aXNpYmlsaXR5IGhpZGRlbiBzdGF0ZSB0byBjb2x1bW4gd2l0aCBnaXZlbiBwcm9wZXJ0eVxuICAgICAqIGVxdWFscyB0byBiZSByZW1vdmluZyBpbiBhdXRvIGFuZCBiYXNlIHRhYmxldmlldyBkZXNjcmlwdG9yXG4gICAgICogKiBAcGFyYW0gcHJvcGVydHkgY29sdW1uJ3MgcHJvcGVydHlcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVtb3ZlQ29sdW1uKHByb3BlcnR5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGFibGUucmVtb3ZlQ29sdW1uKHByb3BlcnR5KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFbnRpdHlGb3JUcmFuc2xhdGlvbnMoaTE4bkJhc2VLZXk6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl90YWJsZS5tb2RlbC53aXRoSTE4bkJhc2UoaTE4bkJhc2VLZXkpO1xuICAgICAgICB0aGlzLl9kZXRhaWxzRWRpdG9yLm1vZGVsLndpdGhJMThuQmFzZShpMThuQmFzZUtleSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgZGVlcCBjb3B5IG9mIHRhYmxldmlldyBvYmplY3QgYW5kIGl0cyBjaGlsZHJlblxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBjb3B5KCk6IFRhYmxldmlld0R5bmFtaWNEZXNjcmlwdG9yIHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBUYWJsZXZpZXdEeW5hbWljRGVzY3JpcHRvcih0aGlzLm1vZGVsLmlkUHJvcGVydHlOYW1lLCB0aGlzLm1vZGVsLnRpdGxlUHJvcGVydHlOYW1lLCB0aGlzLm1vZGVsLmkxOG5CYXNlS2V5KTtcbiAgICAgICAgZGVzY3JpcHRvci5fdGFibGUgPSB0aGlzLl90YWJsZS5jb3B5KCk7XG4gICAgICAgIGRlc2NyaXB0b3IuX3RhYmxlVGl0bGUgPSB0aGlzLl90YWJsZVRpdGxlO1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG59XG4iXX0=
|
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rlc2NyaXB0b3JzL3RhYmxldmlldy90YWJsZXZpZXcuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQXdCLGdCQUFnQixFQUF3QixNQUFNLGNBQWMsQ0FBQztBQUU1RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBRUgsZ0JBQWdCLEVBTW5CLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQW1CLGVBQWUsRUFBRSxzQkFBc0IsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNuRixPQUFPLEVBQXdCLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUU1RyxNQUFNLE9BQU8sbUJBQW1CO0lBZTVCLFlBQVksU0FBdUIsRUFBRSxVQUFtQixFQUFFLGFBQXNCLEVBQUUsV0FBeUM7UUFKakgsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFLM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBSSxTQUFTLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFJLFNBQVMsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBSSxT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LENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBb0IsS0FBSztRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNhLG1CQUFtQixDQUFDLFVBQWtDO1FBQ2xFLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ2EsWUFBWSxDQUFDLFFBQWdCO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxXQUFtQjtRQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNhLElBQUk7UUFDaEIsTUFBTSxVQUFVLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkksVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQyxPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0ZpZWxkVmFsaWRhdG9yRm59IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUvbGliL21vZGVscy9jb25maWcnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtNZWRpdXNRdWVyeVBhcmFtfSBmcm9tICcuLi8uLi9hcGkvbW9kZWxzJztcbmltcG9ydCB7T2JqZWN0U2VyaWFsaXplcn0gZnJvbSAnLi4vLi4vYXBpL3V0aWxzJztcbmltcG9ydCB7SUxvb2t1cERhdGFQcm92aWRlcn0gZnJvbSAnLi4vLi4vZGF0YS1wcm92aWRlcnMnO1xuaW1wb3J0IHtJQ29sdW1uVmFsdWVDb21wb25lbnQsIE1uZ0ludGVybmFsRXJyb3IsIFRhYmxldmlld0F0dHJpYnV0ZURlZn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7Q2xhc3NUeXBlLCBFbnVtQ29uc3RhbnRUeXBlLCBFbnVtVHlwZX0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHtNb2RlbFV0aWx9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7VGFibGV2aWV3VXRpbH0gZnJvbSAnLi4vLi4vdXRpbHMvdGFibGV2aWV3LnV0aWwnO1xuaW1wb3J0IHtcbiAgICBBRmllbGREZXNjcmlwdG9yLFxuICAgIEVkaXRvckRlc2NyaXB0b3IsXG4gICAgRmllbGRJbnB1dERlc2NyaXB0b3IsXG4gICAgRmllbGRMb29rdXBEZXNjcmlwdG9yLFxuICAgIEZpZWxkTG9va3VwRW51bURlc2NyaXB0b3IsXG4gICAgRmllbGRNYW55RWRpdG9yRGVzY3JpcHRvcixcbiAgICBGaWVsZE1hbnlUb01hbnlFZGl0b3JEZXNjcmlwdG9yXG59IGZyb20gJy4uL2VkaXRvcic7XG5pbXBvcnQge01vZGVsRGVzY3JpcHRvcn0gZnJvbSAnLi4vbW9kZWwuZGVzY3JpcHRvcic7XG5pbXBvcnQge0NvbHVtbkRlc2NyaXB0b3IsIFRhYmxlRGVzY3JpcHRvciwgVGFibGVEeW5hbWljRGVzY3JpcHRvcn0gZnJvbSAnLi4vdGFibGUnO1xuaW1wb3J0IHtDb2x1bW5EaXNwbGF5VHlwZUVudW0sIENvbHVtblR5cGVFbnVtLCBGaWVsZElucHV0VHlwZUVudW0sIFRhYmxldmlld0VkaXRvclR5cGVFbnVtfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdEZXNjcmlwdG9yPFQ+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tb2RlbDogTW9kZWxEZXNjcmlwdG9yPFQ+O1xuICAgIHByaXZhdGUgX21vZGVsVHlwZTogQ2xhc3NUeXBlPFQ+O1xuXG4gICAgcHJvdGVjdGVkIF90YWJsZTogVGFibGVEZXNjcmlwdG9yPFQ+O1xuICAgIHByb3RlY3RlZCBfZGV0YWlsc0VkaXRvcjogRWRpdG9yRGVzY3JpcHRvcjxUPjtcbiAgICBwcm90ZWN0ZWQgX2FkZEVkaXRvcjogRWRpdG9yRGVzY3JpcHRvcjxUPjtcbiAgICBwcm90ZWN0ZWQgX2VkaXRFZGl0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD47XG5cbiAgICBwcm90ZWN0ZWQgX3RhYmxlVGl0bGU/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX2lzTG9jYWxpemVkID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9sb2NhbGl6YXRpb25Mb2NhbGVQcm9wZXJ0eT86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2xvY2FsaXphdGlvbkxvY2FsaXphdGlvblByb3BlcnR5Pzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IobW9kZWxUeXBlOiBDbGFzc1R5cGU8VD4sIGlkUHJvcGVydHk/OiBzdHJpbmcsIHRpdGxlUHJvcGVydHk/OiBzdHJpbmcsIGkxOG5CYXNlS2V5Pzogc3RyaW5nIHwgQ2xhc3NUeXBlPHVua25vd24+KSB7XG4gICAgICAgIHRoaXMuX21vZGVsVHlwZSA9IG1vZGVsVHlwZTtcbiAgICAgICAgdGhpcy5fbW9kZWwgPSBuZXcgTW9kZWxEZXNjcmlwdG9yPFQ+KG1vZGVsVHlwZSwgaWRQcm9wZXJ0eSwgdGl0bGVQcm9wZXJ0eSwgaTE4bkJhc2VLZXkpO1xuICAgICAgICB0aGlzLl90YWJsZSA9IG5ldyBUYWJsZURlc2NyaXB0b3I8VD4obW9kZWxUeXBlLCBpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5LCBpMThuQmFzZUtleSk7XG4gICAgICAgIHRoaXMuX2RldGFpbHNFZGl0b3IgPSBuZXcgRWRpdG9yRGVzY3JpcHRvcjxUPihtb2RlbFR5cGUsIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHksIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkRldGFpbHMsIGkxOG5CYXNlS2V5KTtcbiAgICAgICAgdGhpcy5fZGV0YWlsc0VkaXRvci53aXRoRGlzYWJsZWQoKTtcbiAgICAgICAgdGhpcy5fYWRkRWRpdG9yID0gbmV3IEVkaXRvckRlc2NyaXB0b3I8VD4obW9kZWxUeXBlLCBpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5LCBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5BZGQsIGkxOG5CYXNlS2V5KTtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvciA9IG5ldyBFZGl0b3JEZXNjcmlwdG9yPFQ+KG1vZGVsVHlwZSwgaWRQcm9wZXJ0eSwgdGl0bGVQcm9wZXJ0eSwgVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uRWRpdCwgaTE4bkJhc2VLZXkpO1xuICAgICAgICB0aGlzLl90YWJsZVRpdGxlID0gYCR7dGhpcy5fbW9kZWwuaTE4bkJhc2VLZXl9Lm5hbWVgO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdlbmVyYXRlcyBkZXNjcmlwdG9yIGZyb20gYXR0cmlidXRlIGRlZmluaXRpb24gb2Ygb3BlbmFhcGkgbW9kZWxcbiAgICAgKiBAcGFyYW0gbW9kZWxUeXBlIGNsYXNzIHR5cGVcbiAgICAgKiBAcGFyYW0gaWRQcm9wZXJ0eVxuICAgICAqIEBwYXJhbSB0aXRsZVByb3BlcnR5XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmcm9tPFQ+KG1vZGVsVHlwZTogQ2xhc3NUeXBlPFQ+LCBpZFByb3BlcnR5Pzogc3RyaW5nLCB0aXRsZVByb3BlcnR5Pzogc3RyaW5nKTogVGFibGV2aWV3RGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgVGFibGV2aWV3RGVzY3JpcHRvcihtb2RlbFR5cGUsIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHkpO1xuICAgICAgICBkZXNjcmlwdG9yLl90YWJsZSA9IFRhYmxlRGVzY3JpcHRvci5mcm9tKG1vZGVsVHlwZSwgaWRQcm9wZXJ0eSwgdGl0bGVQcm9wZXJ0eSk7XG4gICAgICAgIGRlc2NyaXB0b3IuX2VkaXRFZGl0b3IgPSBFZGl0b3JEZXNjcmlwdG9yLmZyb20obW9kZWxUeXBlLCBpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5LCBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5FZGl0KTtcbiAgICAgICAgZGVzY3JpcHRvci5fZGV0YWlsc0VkaXRvciA9IEVkaXRvckRlc2NyaXB0b3IuZnJvbShtb2RlbFR5cGUsIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHksIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkRldGFpbHMpLndpdGhEaXNhYmxlZCgpO1xuICAgICAgICBkZXNjcmlwdG9yLl9hZGRFZGl0b3IgPSBFZGl0b3JEZXNjcmlwdG9yLmZyb20obW9kZWxUeXBlLCBpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5LCBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5BZGQpO1xuXG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdlbmVyYXRlcyBkZXNjcmlwdG9yIGZyb20gZ2l2ZW4gYXR0cmlidXRlIGRlZmluaXRpb25cbiAgICAgKiBAcGFyYW0gbW9kZWxUeXBlIGNsYXNzIHR5cGVcbiAgICAgKiBAcGFyYW0gY29sdW1uQXR0cmlidXRlcyBhdHRyaWJ1dGUgZGVmaW5pdGlvbiB0byBnZW5lcmF0ZSBjb2x1bW5zXG4gICAgICogQHBhcmFtIGZpZWxkQXR0cmlidXRlcyBhdHRyaWJ1dGUgZGVmaW5pdGlvbiB0byBnZW5lcmF0ZSBmaWVsZHMsIGlmIHVuZGVmaW5lZCBjb2x1bW5EZWZpbml0aW9uIGlzIHVzZWQsIGlmIG51bGwgZWRpdG9ycyBhcmUgbm90IGdlbmVyYXRlZFxuICAgICAqIEBwYXJhbSBpZFByb3BlcnR5XG4gICAgICogQHBhcmFtIHRpdGxlUHJvcGVydHlcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZyb21Nb2RlbFdpdGhEZWZpbml0aW9uPFQ+KFxuICAgICAgICBtb2RlbFR5cGU6IENsYXNzVHlwZTxUPixcbiAgICAgICAgY29sdW1uQXR0cmlidXRlczogVGFibGV2aWV3QXR0cmlidXRlRGVmW10sXG4gICAgICAgIGZpZWxkQXR0cmlidXRlcz86IFRhYmxldmlld0F0dHJpYnV0ZURlZltdIHwgbnVsbCxcbiAgICAgICAgaWRQcm9wZXJ0eT86IHN0cmluZyxcbiAgICAgICAgdGl0bGVQcm9wZXJ0eT86IHN0cmluZ1xuICAgICk6IFRhYmxldmlld0Rlc2NyaXB0b3I8VD4ge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFRhYmxldmlld0Rlc2NyaXB0b3IobW9kZWxUeXBlLCBpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5KTtcbiAgICAgICAgZGVzY3JpcHRvci5fdGFibGUgPSBUYWJsZURlc2NyaXB0b3IuZnJvbU1vZGVsV2l0aEF0dHJpYnV0ZXMobW9kZWxUeXBlLCBjb2x1bW5BdHRyaWJ1dGVzLCBpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5KTtcblxuICAgICAgICBpZiAoZmllbGRBdHRyaWJ1dGVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLl9lZGl0RWRpdG9yID0gRWRpdG9yRGVzY3JpcHRvci5mcm9tTW9kZWxXaXRoQXR0cmlidXRlcyhcbiAgICAgICAgICAgICAgICBtb2RlbFR5cGUsXG4gICAgICAgICAgICAgICAgZmllbGRBdHRyaWJ1dGVzID8/IGNvbHVtbkF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgaWRQcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICB0aXRsZVByb3BlcnR5LFxuICAgICAgICAgICAgICAgIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkVkaXRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLl9kZXRhaWxzRWRpdG9yID0gRWRpdG9yRGVzY3JpcHRvci5mcm9tTW9kZWxXaXRoQXR0cmlidXRlcyhcbiAgICAgICAgICAgICAgICBtb2RlbFR5cGUsXG4gICAgICAgICAgICAgICAgZmllbGRBdHRyaWJ1dGVzID8/IGNvbHVtbkF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgaWRQcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICB0aXRsZVByb3BlcnR5LFxuICAgICAgICAgICAgICAgIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkRldGFpbHNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLl9hZGRFZGl0b3IgPSBFZGl0b3JEZXNjcmlwdG9yLmZyb21Nb2RlbFdpdGhBdHRyaWJ1dGVzKFxuICAgICAgICAgICAgICAgIG1vZGVsVHlwZSxcbiAgICAgICAgICAgICAgICBmaWVsZEF0dHJpYnV0ZXMgPz8gY29sdW1uQXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICBpZFByb3BlcnR5LFxuICAgICAgICAgICAgICAgIHRpdGxlUHJvcGVydHksXG4gICAgICAgICAgICAgICAgVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uQWRkXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0YWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGV0YWlsc0VkaXRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RldGFpbHNFZGl0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhZGRFZGl0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRFZGl0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlZGl0RWRpdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdEVkaXRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRhYmxlVGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZVRpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbW9kZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNMb2NhbGl6ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0xvY2FsaXplZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFRhYmxlRGVzY3JpcHRvcihkZXNjcmlwdG9yOiBUYWJsZURlc2NyaXB0b3I8VD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGFibGUgPSBkZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEVkaXRvckRlc2NyaXB0b3JzKGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGV0YWlsc0VkaXRvciA9IGRlc2NyaXB0b3I7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IgPSBkZXNjcmlwdG9yO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IgPSBkZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERldGFpbHNEZXNjcmlwdG9yKGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGV0YWlsc0VkaXRvciA9IGRlc2NyaXB0b3I7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQWRkRGVzY3JpcHRvcihkZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9yPFQ+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvciA9IGRlc2NyaXB0b3I7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRWRpdERlc2NyaXB0b3IoZGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvcjxUPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yID0gZGVzY3JpcHRvcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBuZXcgY29weSBvZiBlZGl0b3IgZGVzY3JpcHRvciBhbmQgbWFrZXMgaXQgZGlzYWJsZWRcbiAgICAgKiB1c2FibGUgaW4gY29tYmluYXRpb24gd2l0aCB0aGlzOjp3aXRoRWRpdG9yRGVzY3JpcHRvcnMsIHdoZXJlIGRldGFpbHNEZXNjcmlwdG9yIGlzIG1hZGUgbm9uIGRpc2FibGVkXG4gICAgICogQHBhcmFtIHR5cGUgd2hpY2ggZWRpdG9yIHR5cGUgdG8gc2V0IHRvIGRpc2FibGVkXG4gICAgICovXG4gICAgcHVibGljIHdpdGhEaXNhYmxlZEVkaXRvckRlc2NyaXB0b3IodHlwZSA9IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkRldGFpbHMpOiB0aGlzIHtcbiAgICAgICAgaWYgKHR5cGUgPT09IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkVkaXQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VkaXRFZGl0b3IgPSB0aGlzLl9lZGl0RWRpdG9yLmNvcHkoKS53aXRoRGlzYWJsZWQoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5EZXRhaWxzKSB7XG4gICAgICAgICAgICB0aGlzLl9kZXRhaWxzRWRpdG9yID0gdGhpcy5fZGV0YWlsc0VkaXRvci5jb3B5KCkud2l0aERpc2FibGVkKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uQWRkKSB7XG4gICAgICAgICAgICB0aGlzLl9hZGRFZGl0b3IgPSB0aGlzLl9hZGRFZGl0b3IuY29weSgpLndpdGhEaXNhYmxlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGFibGVUaXRsZSh0aXRsZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RhYmxlVGl0bGUgPSB0aXRsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhWYWxpZGF0b3IobmFtZTogc3RyaW5nLCBleHByZXNzaW9uOiBGaWVsZFZhbGlkYXRvckZuKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2RldGFpbHNFZGl0b3IuYWRkVmFsaWRhdGlvbihuYW1lLCBleHByZXNzaW9uKTtcbiAgICAgICAgdGhpcy5fYWRkRWRpdG9yLmFkZFZhbGlkYXRpb24obmFtZSwgZXhwcmVzc2lvbik7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IuYWRkVmFsaWRhdGlvbihuYW1lLCBleHByZXNzaW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbkRlc2NyaXB0b3I8Q1Q+KGNvbHVtbjogQ29sdW1uRGVzY3JpcHRvcjxDVCwgVD4pOiBUYWJsZURlc2NyaXB0b3I8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGUuYWRkQ29sdW1uRGVzY3JpcHRvcjxDVD4oY29sdW1uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uKHByb3BlcnR5OiBzdHJpbmcpOiBDb2x1bW5EZXNjcmlwdG9yPHN0cmluZywgVD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGUuYWRkQ29sdW1uKHByb3BlcnR5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlQ29sdW1uKHByb3BlcnR5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGUucmVtb3ZlQ29sdW1uKHByb3BlcnR5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmllbGQocHJvcGVydHk6IHN0cmluZywgZWRpdG9yVHlwZTogVGFibGV2aWV3RWRpdG9yVHlwZUVudW0pOiBBRmllbGREZXNjcmlwdG9yPGFueSwgVD4gfCBudWxsIHtcbiAgICAgICAgc3dpdGNoIChlZGl0b3JUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkVkaXQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2VkaXRFZGl0b3IuZ2V0RmllbGQocHJvcGVydHkpO1xuICAgICAgICAgICAgY2FzZSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5BZGQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkZEVkaXRvci5nZXRGaWVsZChwcm9wZXJ0eSk7XG4gICAgICAgICAgICBjYXNlIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkRldGFpbHM6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RldGFpbHNFZGl0b3IuZ2V0RmllbGQocHJvcGVydHkpO1xuICAgICAgICAgICAgY2FzZSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5Ob25lOlxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZUZpZWxkKHByb3BlcnR5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvci5yZW1vdmVGaWVsZChwcm9wZXJ0eSk7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvci5yZW1vdmVGaWVsZChwcm9wZXJ0eSk7XG4gICAgICAgIHRoaXMuX2RldGFpbHNFZGl0b3IucmVtb3ZlRmllbGQocHJvcGVydHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDb2x1bW5OdW1iZXIocHJvcGVydHk6IHN0cmluZywgZGlzcGxheUZvcm1hdD86IHN0cmluZyk6IENvbHVtbkRlc2NyaXB0b3I8bnVtYmVyLCBUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZS5hZGRDb2x1bW5OdW1iZXIocHJvcGVydHksIGRpc3BsYXlGb3JtYXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDb2x1bW5EYXRlKHByb3BlcnR5OiBzdHJpbmcsIGRpc3BsYXlGb3JtYXQ/OiBzdHJpbmcpOiBDb2x1bW5EZXNjcmlwdG9yPERhdGUsIFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlLmFkZENvbHVtbkRhdGUocHJvcGVydHksIGRpc3BsYXlGb3JtYXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDb2x1bW5Cb29sZWFuKHByb3BlcnR5OiBzdHJpbmcsIHllcz86IHN0cmluZywgbm8/OiBzdHJpbmcsIGFzSWNvbiA9IGZhbHNlKTogQ29sdW1uRGVzY3JpcHRvcjxib29sZWFuLCBUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZS5hZGRDb2x1bW5Cb29sZWFuKHByb3BlcnR5LCB5ZXMsIG5vLCBhc0ljb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDb2x1bW5FbnVtKHByb3BlcnR5OiBzdHJpbmcsIGVudW1UeXBlOiBFbnVtVHlwZSwgbmFtZUFzVmFsdWUgPSBmYWxzZSwgdGl0bGVQYXRoPzogc3RyaW5nIHwgbnVsbCk6IENvbHVtbkRlc2NyaXB0b3I8RW51bVR5cGUsIFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlLmFkZENvbHVtbkVudW0ocHJvcGVydHksIGVudW1UeXBlLCBuYW1lQXNWYWx1ZSwgdGl0bGVQYXRoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uQ3VzdG9tQ29tcG9uZW50KHByb3BlcnR5OiBzdHJpbmcsIGN1c3RvbUNvbXBvbmVudFR5cGU6IFR5cGU8SUNvbHVtblZhbHVlQ29tcG9uZW50PFQ+Pik6IENvbHVtbkRlc2NyaXB0b3I8YW55LCBUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZS5hZGRDb2x1bW5DdXN0b21Db21wb25lbnQocHJvcGVydHksIGN1c3RvbUNvbXBvbmVudFR5cGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVUYWJHcm91cChuYW1lOiBzdHJpbmcsIHRpdGxlPzogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2RldGFpbHNFZGl0b3IuY3JlYXRlVGFiR3JvdXAobmFtZSwgdGl0bGUpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuY3JlYXRlVGFiR3JvdXAobmFtZSwgdGl0bGUpO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmNyZWF0ZVRhYkdyb3VwKG5hbWUsIHRpdGxlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZUZpZWxkR3JvdXAobmFtZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9kZXRhaWxzRWRpdG9yLmNyZWF0ZUZpZWxkR3JvdXAobmFtZSwgdGl0bGUpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuY3JlYXRlRmllbGRHcm91cChuYW1lLCB0aXRsZSk7XG4gICAgICAgIHRoaXMuX2VkaXRFZGl0b3IuY3JlYXRlRmllbGRHcm91cChuYW1lLCB0aXRsZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRGaWVsZERlc2NyaXB0b3I8RlQ+KGZpZWxkOiBBRmllbGREZXNjcmlwdG9yPEZULCBUPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9kZXRhaWxzRWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRGaWVsZChwcm9wZXJ0eTogc3RyaW5nKTogRmllbGRJbnB1dERlc2NyaXB0b3I8VD4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuX2RldGFpbHNFZGl0b3IuYWRkRmllbGQocHJvcGVydHkpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEZpZWxkTG9va3VwPEZUPihwcm9wZXJ0eTogc3RyaW5nLCBtb2RlbFR5cGU6IENsYXNzVHlwZTxGVD4pOiBGaWVsZExvb2t1cERlc2NyaXB0b3I8RlQsIFQ+IHtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLl9kZXRhaWxzRWRpdG9yLmFkZEZpZWxkTG9va3VwKHByb3BlcnR5LCBtb2RlbFR5cGUpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEZpZWxkTG9va3VwRW51bShcbiAgICAgICAgcHJvcGVydHk6IHN0cmluZyxcbiAgICAgICAgZW51bVR5cGU6IEVudW1UeXBlLFxuICAgICAgICBvcHRpb25zPzogQXJyYXk8RW51bUNvbnN0YW50VHlwZT4sXG4gICAgICAgIG5hbWVBc1ZhbHVlID0gZmFsc2UsXG4gICAgICAgIG9wdGlvbnNUaXRsZVBhdGg/OiBzdHJpbmcgfCBudWxsXG4gICAgKTogRmllbGRMb29rdXBFbnVtRGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5fZGV0YWlsc0VkaXRvci5hZGRGaWVsZExvb2t1cEVudW0ocHJvcGVydHksIGVudW1UeXBlLCBvcHRpb25zLCBuYW1lQXNWYWx1ZSwgb3B0aW9uc1RpdGxlUGF0aCk7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkRmllbGRNYW55RWRpdG9yPEZUPihwcm9wZXJ0eTogc3RyaW5nLCB0YWJsZXZpZXdEZXNjcmlwdG9yOiBUYWJsZXZpZXdEZXNjcmlwdG9yPEZUPik6IEZpZWxkTWFueUVkaXRvckRlc2NyaXB0b3I8RlQsIFQ+IHtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLl9kZXRhaWxzRWRpdG9yLmFkZEZpZWxkTWFueUVkaXRvcihwcm9wZXJ0eSwgdGFibGV2aWV3RGVzY3JpcHRvcik7XG4gICAgICAgIHRoaXMuX2FkZEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLmFkZEZpZWxkRGVzY3JpcHRvcihmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkRmllbGRNYW55VG9NYW55RWRpdG9yPEZUPihcbiAgICAgICAgcHJvcGVydHk6IHN0cmluZyxcbiAgICAgICAgbWFpblRhYmxlRGVzY3JpcHRvcjogVGFibGVEZXNjcmlwdG9yPEZUPixcbiAgICAgICAgbG9va3VwVGFibGVEZXNjcmlwdG9yOiBUYWJsZURlc2NyaXB0b3I8RlQ+XG4gICAgKTogRmllbGRNYW55VG9NYW55RWRpdG9yRGVzY3JpcHRvcjxGVCwgVD4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuX2RldGFpbHNFZGl0b3IuYWRkRmllbGRNYW55VG9NYW55RWRpdG9yKHByb3BlcnR5LCBtYWluVGFibGVEZXNjcmlwdG9yLCBsb29rdXBUYWJsZURlc2NyaXB0b3IpO1xuICAgICAgICB0aGlzLl9hZGRFZGl0b3IuYWRkRmllbGREZXNjcmlwdG9yKGZpZWxkKTtcbiAgICAgICAgdGhpcy5fZWRpdEVkaXRvci5hZGRGaWVsZERlc2NyaXB0b3IoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHkoKTogVGFibGV2aWV3RGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIGNvbnN0IHRhYmxldmlldyA9IG5ldyBUYWJsZXZpZXdEZXNjcmlwdG9yKHRoaXMuX21vZGVsLnR5cGUsIHRoaXMuX21vZGVsLmlkUHJvcGVydHlOYW1lLCB0aGlzLl9tb2RlbC50aXRsZVByb3BlcnR5TmFtZSk7XG4gICAgICAgIHRhYmxldmlldy5fdGFibGUgPSB0aGlzLl90YWJsZS5jb3B5KCk7XG4gICAgICAgIHRhYmxldmlldy5fZGV0YWlsc0VkaXRvciA9IHRoaXMuX2RldGFpbHNFZGl0b3IuY29weSgpO1xuICAgICAgICB0YWJsZXZpZXcuX2FkZEVkaXRvciA9IHRoaXMuX2FkZEVkaXRvci5jb3B5KCk7XG4gICAgICAgIHRhYmxldmlldy5fZWRpdEVkaXRvciA9IHRoaXMuX2VkaXRFZGl0b3IuY29weSgpO1xuICAgICAgICB0YWJsZXZpZXcuX3RhYmxlVGl0bGUgPSB0aGlzLl90YWJsZVRpdGxlO1xuICAgICAgICB0YWJsZXZpZXcuX2lzTG9jYWxpemVkID0gdGhpcy5faXNMb2NhbGl6ZWQ7XG4gICAgICAgIHRhYmxldmlldy5fbG9jYWxpemF0aW9uTG9jYWxlUHJvcGVydHkgPSB0aGlzLl9sb2NhbGl6YXRpb25Mb2NhbGVQcm9wZXJ0eTtcbiAgICAgICAgdGFibGV2aWV3Ll9sb2NhbGl6YXRpb25Mb2NhbGl6YXRpb25Qcm9wZXJ0eSA9IHRoaXMuX2xvY2FsaXphdGlvbkxvY2FsaXphdGlvblByb3BlcnR5O1xuICAgICAgICByZXR1cm4gdGFibGV2aWV3O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgY29sdW1uIGFuZCBmaWVsZCB3aXRoIGN1c3RvbSB0eXBlLCBmb3IgZXhhbXBsZSBjdXJyZW5jeVxuICAgICAqIGlmIGZpZWxkIGV4aXN0cywgaXQgaXMgcmVwbGFjZWRcbiAgICAgKiBETyBOT1QgVVNFIFdJVEggVFlQRVMgV0hFUkUgQVJHUyBBUkUgUkVRVUlSRUQgLSBFUlJPUiBXSUxMIEJFIFRIUk9XTlxuICAgICAqIGZvciBlbnVtIHVzZSB3aXRoRW51bVR5cGVcbiAgICAgKiBmb3IgY3VzdG9tIGNsYXNzIHVzZSB3aXRoQ2xhc3NUeXBlXG4gICAgICogQHBhcmFtIHByb3BlcnR5IG5hbWUgb2YgZmllbGRcbiAgICAgKiBAcGFyYW0gY29sdW1uVHlwZSByZXF1aXJlZCBjb2x1bW4gdHlwZVxuICAgICAqIEBwYXJhbSBmaWVsZFR5cGUgb3B0aW9uYWwsIGlmIG5vdCBwcm92aWRlZCBpdCBpcyBjb252ZXJ0ZWQgZnJvbSBjb2x1bW4gdHlwZVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoTW9kaWZpZWRUeXBlKHByb3BlcnR5OiBzdHJpbmcsIGNvbHVtblR5cGU6IENvbHVtblR5cGVFbnVtLCBmaWVsZFR5cGU/OiBGaWVsZElucHV0VHlwZUVudW0sIGNvbHVtbkRpc3BsYXlUeXBlPzogQ29sdW1uRGlzcGxheVR5cGVFbnVtKTogdGhpcyB7XG4gICAgICAgIGlmIChjb2x1bW5UeXBlID09PSBDb2x1bW5UeXBlRW51bS5FbnVtKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTW5nSW50ZXJuYWxFcnJvcignRG8gbm90IHVzZSB3aXRoIHR5cGVzIHdoZXJlIGFyZ3MgYXJlIHJlcXVpcmVkJywge25hbWU6ICdUYWJsZVZpZXdEZXNjcmlwdG9yRXJyb3InfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhdHRyaWJ1dGVEZWYgPSBUYWJsZXZpZXdVdGlsLmdldEF0dHJpYnV0ZURlZk1hcCh0aGlzLl9tb2RlbFR5cGUpLmZpbmQoYXRyaWJ1dGUgPT4gYXRyaWJ1dGUubmFtZSA9PT0gcHJvcGVydHkpO1xuXG4gICAgICAgIGlmIChhdHRyaWJ1dGVEZWYgIT0gbnVsbCkge1xuICAgICAgICAgICAgZmllbGRUeXBlID8/PSBUYWJsZXZpZXdVdGlsLnRvRmllbGRJbnB1dFR5cGVGcm9tQ29sdW1uVHlwZShjb2x1bW5UeXBlLCBjb2x1bW5EaXNwbGF5VHlwZSk7XG4gICAgICAgICAgICBhdHRyaWJ1dGVEZWYuZmllbGRUeXBlID0gZmllbGRUeXBlO1xuXG4gICAgICAgICAgICB0aGlzLl90YWJsZS53aXRoQ29sdW1uTW9kaWZpZWRUeXBlKHByb3BlcnR5LCBjb2x1bW5UeXBlLCBjb2x1bW5EaXNwbGF5VHlwZSk7XG4gICAgICAgICAgICB0aGlzLl9lZGl0RWRpdG9yLndpdGhGaWVsZE1vZGlmaWVkVHlwZShwcm9wZXJ0eSwgZmllbGRUeXBlKTtcbiAgICAgICAgICAgIHRoaXMuX2FkZEVkaXRvci53aXRoRmllbGRNb2RpZmllZFR5cGUocHJvcGVydHksIGZpZWxkVHlwZSk7XG4gICAgICAgICAgICB0aGlzLl9kZXRhaWxzRWRpdG9yLndpdGhGaWVsZE1vZGlmaWVkVHlwZShwcm9wZXJ0eSwgZmllbGRUeXBlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgY29sdW1uIHdpdGggZW51bSB0eXBlXG4gICAgICogaWYgZmllbGRzIGV4aXN0cywgaXQgaXMgcmVwbGFjZWRcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgcHJvcGVydHkgbmFtZVxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSB0eXBlIG9mIGVudW1cbiAgICAgKiBAcGFyYW0gZmllbGRUeXBlIHR5cGUgb2YgZmllbGQsIG9wdGlvbmFsLCBkZWZhdWx0IGlzIFRleHRcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aE1vZGlmaWVkRW51bShwcm9wZXJ0eTogc3RyaW5nLCBlbnVtVHlwZT86IEVudW1UeXBlLCBmaWVsZFR5cGU/OiBGaWVsZElucHV0VHlwZUVudW0pOiB0aGlzIHtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlRGVmID0gVGFibGV2aWV3VXRpbC5nZXRBdHRyaWJ1dGVEZWZNYXAodGhpcy5fbW9kZWxUeXBlKS5maW5kKGF0cmlidXRlID0+IGF0cmlidXRlLm5hbWUgPT09IHByb3BlcnR5KTtcblxuICAgICAgICBpZiAoYXR0cmlidXRlRGVmICE9IG51bGwpIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZURlZi5maWVsZFR5cGUgPSBmaWVsZFR5cGUgPz8gRmllbGRJbnB1dFR5cGVFbnVtLlRleHQ7XG5cbiAgICAgICAgICAgIHRoaXMuX3RhYmxlLndpdGhDb2x1bW5Nb2RpZmllZEVudW0ocHJvcGVydHksIGVudW1UeXBlKTtcbiAgICAgICAgICAgIHRoaXMuX2VkaXRFZGl0b3Iud2l0aEZpZWxkTW9kaWZpZWRFbnVtKHByb3BlcnR5LCBlbnVtVHlwZSk7XG4gICAgICAgICAgICB0aGlzLl9kZXRhaWxzRWRpdG9yLndpdGhGaWVsZE1vZGlmaWVkRW51bShwcm9wZXJ0eSwgZW51bVR5cGUpO1xuICAgICAgICAgICAgdGhpcy5fYWRkRWRpdG9yLndpdGhGaWVsZE1vZGlmaWVkRW51bShwcm9wZXJ0eSwgZW51bVR5cGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2VuZXJhdGVzIGNvbHVtbiB3aXRoIGN1c3RvbSBjbGFzcyB0eXBlXG4gICAgICogZmllbGQgaXMgZ2VuZXJhdGVkIG9ubHkgaWYgbG9va3VwUHJvdmlkZXIgaXMgcHJvdmlkZWRcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgcHJvcGVydHkgbmFtZVxuICAgICAqIEBwYXJhbSBtb2RlbFR5cGUgY2xhc3MgdHlwZSBvZiBvYmplY3RcbiAgICAgKiBAcGFyYW0gdGl0bGVQcm9wZXJ0eVxuICAgICAqIEBwYXJhbSBsb29rdXBQcm92aWRlclxuICAgICAqIEBwYXJhbSBpdGVtc0xhYmVsUHJvcGVydHlcbiAgICAgKiBAcGFyYW0gZmlsdGVyUHJvcGVydHlcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aE1vZGlmaWVkTG9va3VwPE1UPihcbiAgICAgICAgcHJvcGVydHk6IHN0cmluZyxcbiAgICAgICAgbW9kZWxUeXBlPzogQ2xhc3NUeXBlPE1UPixcbiAgICAgICAgbG9va3VwUHJvdmlkZXI/OiBJTG9va3VwRGF0YVByb3ZpZGVyPE1ULCBhbnk+LFxuICAgICAgICB0aXRsZVByb3BlcnR5Pzogc3RyaW5nLFxuICAgICAgICBpdGVtc0xhYmVsUHJvcGVydHk/OiBzdHJpbmcsXG4gICAgICAgIGZpbHRlclByb3BlcnR5Pzogc3RyaW5nXG4gICAgKTogdGhpcyB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZURlZiA9IFRhYmxldmlld1V0aWwuZ2V0QXR0cmlidXRlRGVmTWFwKHRoaXMuX21vZGVsVHlwZSkuZmluZChhdHJpYnV0ZSA9PiBhdHJpYnV0ZS5uYW1lID09PSBwcm9wZXJ0eSk7XG5cbiAgICAgICAgaWYgKGF0dHJpYnV0ZURlZiAhPSBudWxsKSB7XG4gICAgICAgICAgICBtb2RlbFR5cGUgPz89IGF0dHJpYnV0ZURlZi5jbGFzc1R5cGUgPz8gT2JqZWN0U2VyaWFsaXplci5nZXQoKS5maW5kVHlwZShhdHRyaWJ1dGVEZWYudHlwZSk7XG4gICAgICAgICAgICB0aXRsZVByb3BlcnR5ID8/PSBNb2RlbFV0aWwuZmluZFRpdGxlQXR0cmlidXRlKG1vZGVsVHlwZSEpID8/IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGl0ZW1zTGFiZWxQcm9wZXJ0eSA/Pz0gdGl0bGVQcm9wZXJ0eTtcbiAgICAgICAgICAgIGF0dHJpYnV0ZURlZi5jb2x1bW5UeXBlID0gQ29sdW1uVHlwZUVudW0uU3RyaW5nO1xuICAgICAgICAgICAgYXR0cmlidXRlRGVmLmZpZWxkVHlwZSA9IEZpZWxkSW5wdXRUeXBlRW51bS5UZXh0O1xuXG4gICAgICAgICAgICBpZiAobG9va3VwUHJvdmlkZXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlLndpdGhDb2x1bW5Nb2RpZmllZExvb2t1cChwcm9wZXJ0eSwgbG9va3VwUHJvdmlkZXIsIGl0ZW1zTGFiZWxQcm9wZXJ0eSwgZmlsdGVyUHJvcGVydHkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEVkaXRvci53aXRoRmllbGRNb2RpZmllZExvb2t1cChwcm9wZXJ0eSwgbW9kZWxUeXBlISwgbG9va3VwUHJvdmlkZXIsIGl0ZW1zTGFiZWxQcm9wZXJ0eSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGV0YWlsc0VkaXRvci53aXRoRmllbGRNb2RpZmllZExvb2t1cChwcm9wZXJ0eSwgbW9kZWxUeXBlISwgbG9va3VwUHJvdmlkZXIsIGl0ZW1zTGFiZWxQcm9wZXJ0eSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZWRpdEVkaXRvci53aXRoRmllbGRNb2RpZmllZExvb2t1cChwcm9wZXJ0eSwgbW9kZWxUeXBlISwgbG9va3VwUHJvdmlkZXIsIGl0ZW1zTGFiZWxQcm9wZXJ0eSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuX3RhYmxlLmdldENvbHVtbihwcm9wZXJ0eSkgPz8gdGhpcy5hZGRDb2x1bW4ocHJvcGVydHkpO1xuICAgICAgICAgICAgICAgIGNvbHVtbi53aXRoT2JqZWN0UHJvcGVydHkobW9kZWxUeXBlISwgdGl0bGVQcm9wZXJ0eSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9jYWxpemVkPFM+KFxuICAgICAgICBsb2NhbGl6YXRpb25Qcm9wZXJ0eT86IHN0cmluZyxcbiAgICAgICAgbG9jYWxlUHJvcGVydHk/OiBzdHJpbmcsXG4gICAgICAgIGxvY2FsaXphdGlvbkJlYW5UeXBlPzogQ2xhc3NUeXBlPGFueT4sXG4gICAgICAgIGxvY2FsZUxvb2t1cD86IChxdWVyeVBhcmFtPzogTWVkaXVzUXVlcnlQYXJhbSwgc2VydmljZT86IFMsIHNlYXJjaD86IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxBcnJheTxzdHJpbmc+PlxuICAgICk6IHRoaXMge1xuICAgICAgICB0aGlzLl9sb2NhbGl6YXRpb25Mb2NhbGl6YXRpb25Qcm9wZXJ0eSA9IGxvY2FsaXphdGlvblByb3BlcnR5O1xuICAgICAgICB0aGlzLl9sb2NhbGl6YXRpb25Mb2NhbGVQcm9wZXJ0eSA9IGxvY2FsZVByb3BlcnR5O1xuICAgICAgICB0aGlzLl9pc0xvY2FsaXplZCA9IHRydWU7XG5cbiAgICAgICAgaWYgKGxvY2FsZVByb3BlcnR5KSB7XG4gICAgICAgICAgICB0aGlzLl90YWJsZS53aXRoTG9jYWxpemF0aW9uTG9jYWxlUHJvcGVydHkobG9jYWxlUHJvcGVydHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kZXRhaWxzRWRpdG9yLmxvY2FsaXplZDxTPihsb2NhbGl6YXRpb25Qcm9wZXJ0eSwgbG9jYWxlUHJvcGVydHksIGxvY2FsaXphdGlvbkJlYW5UeXBlLCBsb2NhbGVMb29rdXApO1xuICAgICAgICB0aGlzLmFkZEVkaXRvci5sb2NhbGl6ZWQ8Uz4obG9jYWxpemF0aW9uUHJvcGVydHksIGxvY2FsZVByb3BlcnR5LCBsb2NhbGl6YXRpb25CZWFuVHlwZSwgbG9jYWxlTG9va3VwKTtcbiAgICAgICAgdGhpcy5lZGl0RWRpdG9yLmxvY2FsaXplZDxTPihsb2NhbGl6YXRpb25Qcm9wZXJ0eSwgbG9jYWxlUHJvcGVydHksIGxvY2FsaXphdGlvbkJlYW5UeXBlLCBsb2NhbGVMb29rdXApO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxldmlld0R5bmFtaWNEZXNjcmlwdG9yIGV4dGVuZHMgVGFibGV2aWV3RGVzY3JpcHRvcjxhbnk+IHtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX3RhYmxlOiBUYWJsZUR5bmFtaWNEZXNjcmlwdG9yO1xuXG4gICAgY29uc3RydWN0b3IoaWRQcm9wZXJ0eT86IHN0cmluZywgdGl0bGVQcm9wZXJ0eT86IHN0cmluZywgaTE4bkJhc2VLZXk/OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoe30gYXMgQ2xhc3NUeXBlPGFueT4sIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHksIGkxOG5CYXNlS2V5KTtcbiAgICAgICAgdGhpcy5fdGFibGUgPSBuZXcgVGFibGVEeW5hbWljRGVzY3JpcHRvcihpZFByb3BlcnR5LCB0aXRsZVByb3BlcnR5LCBpMThuQmFzZUtleSk7XG4gICAgICAgIHN1cGVyLl90YWJsZVRpdGxlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdGFibGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIGN1c3RvbSB0YWJsZSBkZXNjcmlwdG9yXG4gICAgICogQHBhcmFtIGRlc2NyaXB0b3JcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgd2l0aFRhYmxlRGVzY3JpcHRvcihkZXNjcmlwdG9yOiBUYWJsZUR5bmFtaWNEZXNjcmlwdG9yKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RhYmxlID0gZGVzY3JpcHRvcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyB2aXNpYmlsaXR5IGhpZGRlbiBzdGF0ZSB0byBjb2x1bW4gd2l0aCBnaXZlbiBwcm9wZXJ0eVxuICAgICAqIGVxdWFscyB0byBiZSByZW1vdmluZyBpbiBhdXRvIGFuZCBiYXNlIHRhYmxldmlldyBkZXNjcmlwdG9yXG4gICAgICogKiBAcGFyYW0gcHJvcGVydHkgY29sdW1uJ3MgcHJvcGVydHlcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVtb3ZlQ29sdW1uKHByb3BlcnR5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGFibGUucmVtb3ZlQ29sdW1uKHByb3BlcnR5KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFbnRpdHlGb3JUcmFuc2xhdGlvbnMoaTE4bkJhc2VLZXk6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl90YWJsZS5tb2RlbC53aXRoSTE4bkJhc2UoaTE4bkJhc2VLZXkpO1xuICAgICAgICB0aGlzLl9kZXRhaWxzRWRpdG9yLm1vZGVsLndpdGhJMThuQmFzZShpMThuQmFzZUtleSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgZGVlcCBjb3B5IG9mIHRhYmxldmlldyBvYmplY3QgYW5kIGl0cyBjaGlsZHJlblxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBjb3B5KCk6IFRhYmxldmlld0R5bmFtaWNEZXNjcmlwdG9yIHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBUYWJsZXZpZXdEeW5hbWljRGVzY3JpcHRvcih0aGlzLm1vZGVsLmlkUHJvcGVydHlOYW1lLCB0aGlzLm1vZGVsLnRpdGxlUHJvcGVydHlOYW1lLCB0aGlzLm1vZGVsLmkxOG5CYXNlS2V5KTtcbiAgICAgICAgZGVzY3JpcHRvci5fdGFibGUgPSB0aGlzLl90YWJsZS5jb3B5KCk7XG4gICAgICAgIGRlc2NyaXB0b3IuX3RhYmxlVGl0bGUgPSB0aGlzLl90YWJsZVRpdGxlO1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
2
|
-
import {
|
|
2
|
+
import { AMngErrorBase } from '../models';
|
|
3
3
|
import { MngLoggerService } from '../services';
|
|
4
|
+
import { ErrorUtil } from '../utils';
|
|
4
5
|
export class MngErrorHandler {
|
|
5
6
|
constructor() {
|
|
6
7
|
this.logger = MngLoggerService.get();
|
|
7
8
|
}
|
|
8
9
|
static { this.logCategory = 'MngErrorHandler'; }
|
|
9
10
|
handleError(error) {
|
|
10
|
-
if (error instanceof
|
|
11
|
-
const
|
|
12
|
-
this.logger.log(
|
|
13
|
-
}
|
|
14
|
-
else if (error instanceof HttpErrorResponse) {
|
|
15
|
-
const isClientError = error.status >= 400 && error.status < 500;
|
|
16
|
-
this.logger.log(`Http error occurred with status ${error.status} ${error.statusText}: ${error.message}`, isClientError ? LogLevelEnum.Warning : LogLevelEnum.Error, MngErrorHandler.logCategory, error);
|
|
11
|
+
if (error instanceof AMngErrorBase || error instanceof HttpErrorResponse) {
|
|
12
|
+
const logLevel = ErrorUtil.getErrorLogLevel(error);
|
|
13
|
+
this.logger.log(error, logLevel);
|
|
17
14
|
}
|
|
18
15
|
else {
|
|
19
|
-
this.logger.
|
|
16
|
+
this.logger.error('Unexpected error occurred', error);
|
|
20
17
|
}
|
|
21
18
|
}
|
|
22
19
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZXJyb3IvZXJyb3IuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUd2RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRW5DLE1BQU0sT0FBTyxlQUFlO0lBQTVCO1FBRXFCLFdBQU0sR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQVVyRCxDQUFDO2FBWDJCLGdCQUFXLEdBQUcsaUJBQWlCLEFBQXBCLENBQXFCO0lBR3hELFdBQVcsQ0FBQyxLQUFVO1FBQ2xCLElBQUksS0FBSyxZQUFZLGFBQWEsSUFBSSxLQUFLLFlBQVksaUJBQWlCLEVBQUU7WUFDdEUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNwQzthQUFNO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDekQ7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtFcnJvckhhbmRsZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0FNbmdFcnJvckJhc2V9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge01uZ0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7RXJyb3JVdGlsfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBNbmdFcnJvckhhbmRsZXIgaW1wbGVtZW50cyBFcnJvckhhbmRsZXIge1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGxvZ0NhdGVnb3J5ID0gJ01uZ0Vycm9ySGFuZGxlcic7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBNbmdMb2dnZXJTZXJ2aWNlLmdldCgpO1xuXG4gICAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSkge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBTW5nRXJyb3JCYXNlIHx8IGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvZ0xldmVsID0gRXJyb3JVdGlsLmdldEVycm9yTG9nTGV2ZWwoZXJyb3IpO1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIubG9nKGVycm9yLCBsb2dMZXZlbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignVW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCcsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,44 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
1
|
+
export class AMngErrorBase extends Error {
|
|
2
|
+
constructor(message, options) {
|
|
3
|
+
super(message);
|
|
4
|
+
this.name = options?.name ?? 'MngError';
|
|
5
|
+
this.messageCode = options?.messageCode;
|
|
6
|
+
this.location = options?.location ?? window?.location?.href;
|
|
7
|
+
this.cause = options?.cause;
|
|
8
|
+
this.stack = options?.stack ?? (options?.cause ? options.cause.stack : new Error(message).stack);
|
|
9
|
+
this.details = options?.details;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export class MngInternalError extends AMngErrorBase {
|
|
13
|
+
constructor(message, options) {
|
|
14
|
+
super(message, {
|
|
15
|
+
name: 'MngInternalError',
|
|
16
|
+
...options
|
|
17
|
+
});
|
|
18
|
+
this.type = 'MngInternalError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class MngHttpError extends AMngErrorBase {
|
|
22
|
+
constructor(message, httpError, options) {
|
|
23
|
+
super(message, {
|
|
24
|
+
name: 'MngHttpError_' + httpError.url,
|
|
25
|
+
cause: httpError,
|
|
26
|
+
...options
|
|
27
|
+
});
|
|
28
|
+
this.type = 'MngHttpError';
|
|
29
|
+
this.httpError = httpError;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export class MngActionError extends AMngErrorBase {
|
|
33
|
+
constructor(message, actionName, options) {
|
|
34
|
+
super(message, {
|
|
35
|
+
name: 'MngActionError_' + actionName,
|
|
36
|
+
...options
|
|
37
|
+
});
|
|
38
|
+
this.type = 'MngActionError';
|
|
39
|
+
this.actionId = actionName;
|
|
40
|
+
this.actionContext = options?.actionContext;
|
|
41
|
+
this.httpError = options?.httpError;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9lcnJvci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0QkEsTUFBTSxPQUFnQixhQUFjLFNBQVEsS0FBSztJQU83QyxZQUFzQixPQUFlLEVBQUUsT0FBNkI7UUFDaEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxJQUFJLFVBQVUsQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sRUFBRSxXQUFXLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLEVBQUUsUUFBUSxJQUFJLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDO1FBQzVELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ3BDLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxhQUFhO0lBRy9DLFlBQVksT0FBZSxFQUFFLE9BQTZCO1FBQ3RELEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDWCxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLEdBQUcsT0FBTztTQUNiLENBQUMsQ0FBQztRQU5TLFNBQUksR0FBRyxrQkFBa0IsQ0FBQztJQU8xQyxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sWUFBYSxTQUFRLGFBQWE7SUFLM0MsWUFBWSxPQUFlLEVBQUUsU0FBNEIsRUFBRSxPQUE2QjtRQUNwRixLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ1gsSUFBSSxFQUFFLGVBQWUsR0FBRyxTQUFTLENBQUMsR0FBRztZQUNyQyxLQUFLLEVBQUUsU0FBUztZQUNoQixHQUFHLE9BQU87U0FDYixDQUFDLENBQUM7UUFUUyxTQUFJLEdBQUcsY0FBYyxDQUFDO1FBVWxDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7Q0FDSjtBQU9ELE1BQU0sT0FBTyxjQUFlLFNBQVEsYUFBYTtJQU83QyxZQUFZLE9BQWUsRUFBRSxVQUFrQixFQUFFLE9BQStCO1FBQzVFLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDWCxJQUFJLEVBQUUsaUJBQWlCLEdBQUcsVUFBVTtZQUNwQyxHQUFHLE9BQU87U0FDYixDQUFDLENBQUM7UUFWUyxTQUFJLEdBQUcsZ0JBQWdCLENBQUM7UUFZcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLEVBQUUsYUFBYSxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBFcnJvclJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7QWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vY29tcG9uZW50cy9hY3Rpb24vbW9kZWxzJztcblxuZXhwb3J0IHR5cGUgTW5nRXJyb3JUeXBlcyA9ICdNbmdJbnRlcm5hbEVycm9yJyB8ICdNbmdBY3Rpb25FcnJvcicgfCAnTW5nSHR0cEVycm9yJztcblxuLyoqXG4gKiBNYWluIHVzZSBmb3IgbW5nIGVycm9yIGZyb20gYWN0aW9uIGV4ZWN1dGlvbi5cbiAqIElmIGh0dHAgZXJyb3IgaXMgdGhyb3duLCBhZGQgaXQgaW4gY2F1c2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU1uZ0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIHR5cGU6IE1uZ0Vycm9yVHlwZXM7XG4gICAgbWVzc2FnZUNvZGU/OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGRldGFpbHM/OiBhbnk7XG4gICAgc3RhY2s/OiBzdHJpbmc7XG4gICAgY2F1c2U/OiBFcnJvciB8IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW5nRXJyb3JCYXNlT3B0aW9ucyB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBtZXNzYWdlQ29kZT86IG51bWJlciB8IHN0cmluZztcbiAgICBkZXRhaWxzPzogYW55O1xuICAgIGNhdXNlPzogRXJyb3I7XG4gICAgc3RhY2s/OiBzdHJpbmc7XG4gICAgbG9jYXRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBTW5nRXJyb3JCYXNlIGV4dGVuZHMgRXJyb3IgaW1wbGVtZW50cyBJTW5nRXJyb3Ige1xuICAgIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0eXBlOiBNbmdFcnJvclR5cGVzO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IG1lc3NhZ2VDb2RlPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seSBsb2NhdGlvbj86IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGV0YWlscz86IGFueTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBNbmdFcnJvckJhc2VPcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuXG4gICAgICAgIHRoaXMubmFtZSA9IG9wdGlvbnM/Lm5hbWUgPz8gJ01uZ0Vycm9yJztcbiAgICAgICAgdGhpcy5tZXNzYWdlQ29kZSA9IG9wdGlvbnM/Lm1lc3NhZ2VDb2RlO1xuICAgICAgICB0aGlzLmxvY2F0aW9uID0gb3B0aW9ucz8ubG9jYXRpb24gPz8gd2luZG93Py5sb2NhdGlvbj8uaHJlZjtcbiAgICAgICAgdGhpcy5jYXVzZSA9IG9wdGlvbnM/LmNhdXNlO1xuICAgICAgICB0aGlzLnN0YWNrID0gb3B0aW9ucz8uc3RhY2sgPz8gKG9wdGlvbnM/LmNhdXNlID8gb3B0aW9ucy5jYXVzZS5zdGFjayA6IG5ldyBFcnJvcihtZXNzYWdlKS5zdGFjayk7XG4gICAgICAgIHRoaXMuZGV0YWlscyA9IG9wdGlvbnM/LmRldGFpbHM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTW5nSW50ZXJuYWxFcnJvciBleHRlbmRzIEFNbmdFcnJvckJhc2UgaW1wbGVtZW50cyBJTW5nRXJyb3Ige1xuICAgIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ01uZ0ludGVybmFsRXJyb3InO1xuXG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBvcHRpb25zPzogTW5nRXJyb3JCYXNlT3B0aW9ucykge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCB7XG4gICAgICAgICAgICBuYW1lOiAnTW5nSW50ZXJuYWxFcnJvcicsXG4gICAgICAgICAgICAuLi5vcHRpb25zXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1uZ0h0dHBFcnJvciBleHRlbmRzIEFNbmdFcnJvckJhc2UgaW1wbGVtZW50cyBJTW5nRXJyb3Ige1xuICAgIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ01uZ0h0dHBFcnJvcic7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZTtcblxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSwgb3B0aW9ucz86IE1uZ0Vycm9yQmFzZU9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSwge1xuICAgICAgICAgICAgbmFtZTogJ01uZ0h0dHBFcnJvcl8nICsgaHR0cEVycm9yLnVybCxcbiAgICAgICAgICAgIGNhdXNlOiBodHRwRXJyb3IsXG4gICAgICAgICAgICAuLi5vcHRpb25zXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmh0dHBFcnJvciA9IGh0dHBFcnJvcjtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW5nQWN0aW9uRXJyb3JPcHRpb25zIGV4dGVuZHMgTW5nRXJyb3JCYXNlT3B0aW9ucyB7XG4gICAgYWN0aW9uQ29udGV4dD86IEFjdGlvbkNvbnRleHQ8YW55LCBhbnk+O1xuICAgIGh0dHBFcnJvcj86IEh0dHBFcnJvclJlc3BvbnNlO1xufVxuXG5leHBvcnQgY2xhc3MgTW5nQWN0aW9uRXJyb3IgZXh0ZW5kcyBBTW5nRXJyb3JCYXNlIGltcGxlbWVudHMgSU1uZ0Vycm9yIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHlwZSA9ICdNbmdBY3Rpb25FcnJvcic7XG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGlvbklkOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uQ29udGV4dD86IEFjdGlvbkNvbnRleHQ8YW55LCBhbnk+O1xuICAgIHB1YmxpYyByZWFkb25seSBodHRwRXJyb3I/OiBIdHRwRXJyb3JSZXNwb25zZTtcblxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgYWN0aW9uTmFtZTogc3RyaW5nLCBvcHRpb25zPzogTW5nQWN0aW9uRXJyb3JPcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UsIHtcbiAgICAgICAgICAgIG5hbWU6ICdNbmdBY3Rpb25FcnJvcl8nICsgYWN0aW9uTmFtZSxcbiAgICAgICAgICAgIC4uLm9wdGlvbnNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hY3Rpb25JZCA9IGFjdGlvbk5hbWU7XG4gICAgICAgIHRoaXMuYWN0aW9uQ29udGV4dCA9IG9wdGlvbnM/LmFjdGlvbkNvbnRleHQ7XG4gICAgICAgIHRoaXMuaHR0cEVycm9yID0gb3B0aW9ucz8uaHR0cEVycm9yO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -2,7 +2,6 @@ export * from './column-value.model';
|
|
|
2
2
|
export * from './config.model';
|
|
3
3
|
export * from './enum.model';
|
|
4
4
|
export * from './error.model';
|
|
5
|
-
export * from './internal-error.model';
|
|
6
5
|
export * from './log.model';
|
|
7
6
|
export * from './menu.model';
|
|
8
7
|
export * from './user.model';
|
|
@@ -11,4 +10,4 @@ export * from './view-container.model';
|
|
|
11
10
|
export * from './tableview-attr.model';
|
|
12
11
|
export * from './can-component-deactivate.model';
|
|
13
12
|
export * from './action-editor.model';
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb2x1bW4tdmFsdWUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWcubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3IubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2cubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3ZlcnNpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3LWNvbnRhaW5lci5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxldmlldy1hdHRyLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY2FuLWNvbXBvbmVudC1kZWFjdGl2YXRlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLWVkaXRvci5tb2RlbCc7XG4iXX0=
|
|
@@ -7,4 +7,4 @@ export var LogLevelEnum;
|
|
|
7
7
|
LogLevelEnum[LogLevelEnum["Warning"] = 4] = "Warning";
|
|
8
8
|
LogLevelEnum[LogLevelEnum["Error"] = 5] = "Error";
|
|
9
9
|
})(LogLevelEnum || (LogLevelEnum = {}));
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RlbHMvbG9nLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFlBT1g7QUFQRCxXQUFZLFlBQVk7SUFDcEIsaURBQUssQ0FBQTtJQUNMLGlEQUFLLENBQUE7SUFDTCw2Q0FBRyxDQUFBO0lBQ0gsK0NBQUksQ0FBQTtJQUNKLHFEQUFPLENBQUE7SUFDUCxpREFBSyxDQUFBO0FBQ1QsQ0FBQyxFQVBXLFlBQVksS0FBWixZQUFZLFFBT3ZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTG9nTGV2ZWxFbnVtIHtcbiAgICBUcmFjZSxcbiAgICBEZWJ1ZyxcbiAgICBMb2csXG4gICAgSW5mbyxcbiAgICBXYXJuaW5nLFxuICAgIEVycm9yXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW5nTG9nRW50cnkge1xuICAgIGxldmVsOiBMb2dMZXZlbEVudW07XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIG1lc3NhZ2VEZXRhaWxzPzogc3RyaW5nO1xuICAgIHRpbWVzdGFtcDogRGF0ZTtcbiAgICB0aW1lc3RhbXBGb3JtYXR0ZWQ/OiBzdHJpbmc7XG4gICAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gICAgZXJyb3I/OiBFcnJvcjtcbiAgICBkYXRhPzogYW55W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW5nTG9nQ29uZmlnIHtcbiAgICBsZXZlbD86IExvZ0xldmVsRW51bTtcbiAgICB0aW1lc3RhbXBGb3JtYXQ/OiBzdHJpbmc7XG4gICAgY2F0ZWdvcnk/OiB7XG4gICAgICAgIFtjYXRlZ29yeTogc3RyaW5nXToge1xuICAgICAgICAgICAgbGV2ZWw/OiBMb2dMZXZlbEVudW07XG4gICAgICAgIH07XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTW5nTG9nZ2VyU2VydmljZSB7XG4gICAgY3JlYXRlKGNvbnRleHQ6IHN0cmluZyk6IElNbmdMb2dnZXJTZXJ2aWNlO1xuICAgIHRyYWNlKG1zZ09yRXJyb3I6IHN0cmluZyB8IEVycm9yLCAuLi5kYXRhOiBhbnlbXSk6IHZvaWQ7XG4gICAgZGVidWcobXNnT3JFcnJvcjogc3RyaW5nIHwgRXJyb3IsIC4uLmRhdGE6IGFueVtdKTogdm9pZDtcbiAgICBsb2cobXNnT3JFcnJvcjogc3RyaW5nIHwgRXJyb3IsIGxvZ0xldmVsOiBMb2dMZXZlbEVudW0sIGNhdGVnb3J5OiBzdHJpbmcgfCB1bmRlZmluZWQsIC4uLmRhdGE6IGFueVtdKTogdm9pZDtcbiAgICBsb2dFbnRyeShsb2dFbnRyeTogUGFydGlhbDxNbmdMb2dFbnRyeT4pOiB2b2lkO1xuICAgIGluZm8obXNnT3JFcnJvcjogc3RyaW5nIHwgRXJyb3IsIC4uLmRhdGE6IGFueVtdKTogdm9pZDtcbiAgICB3YXJuKG1zZ09yRXJyb3I6IHN0cmluZyB8IEVycm9yLCAuLi5kYXRhOiBhbnlbXSk6IHZvaWQ7XG4gICAgZXJyb3IobXNnT3JFcnJvcjogc3RyaW5nIHwgRXJyb3IsIC4uLmRhdGE6IGFueVtdKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTW5nTG9nUHVibGlzaGVyIHtcbiAgICBhZGRFbnRyeShlbnRyeTogTW5nTG9nRW50cnkpOiB2b2lkO1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kZWxzL3ZlcnNpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFZlcnNpb25Db25maWdUeXBlID0gVmVyc2lvbkNvbmZpZyB8IFZlcnNpb25JbmZvIHwgc3RyaW5nIHwgQXJyYXk8VmVyc2lvbkNvbmZpZz4gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvbkNvbmZpZyB7XG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gICAgaW5mbz86IFZlcnNpb25JbmZvIHwgc3RyaW5nO1xuICAgIGluZm9Kc29uUGF0aD86IHN0cmluZztcbiAgICB1cmxQYXRoPzogc3RyaW5nO1xuICAgIHVybEJhc2VDb25maWdLZXk/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kZWxzL3ZlcnNpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFZlcnNpb25Db25maWdUeXBlID0gVmVyc2lvbkNvbmZpZyB8IFZlcnNpb25JbmZvIHwgc3RyaW5nIHwgQXJyYXk8VmVyc2lvbkNvbmZpZz4gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvbkNvbmZpZyB7XG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gICAgaW5mbz86IFZlcnNpb25JbmZvIHwgc3RyaW5nO1xuICAgIGluZm9Kc29uUGF0aD86IHN0cmluZztcbiAgICB1cmxQYXRoPzogc3RyaW5nO1xuICAgIHVybEJhc2VDb25maWdLZXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvbkluZm8ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2ZXJzaW9uOiBzdHJpbmcgfCBudWxsO1xuICAgIHRhZzogc3RyaW5nIHwgbnVsbDtcbiAgICBkaXN0YW5jZTogbnVtYmVyIHwgbnVsbDtcbiAgICBoYXNoOiBzdHJpbmcgfCBudWxsO1xuICAgIGRpcnR5OiBib29sZWFuO1xuICAgIHNlbXZlcjogc3RyaW5nIHwgbnVsbDtcbiAgICByYXc6IHN0cmluZztcbiAgICBidWlsZFRpbWVzdGFtcDogbnVtYmVyIHwgbnVsbDtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Pipe } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { ObjectUtil } from '../utils';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
5
5
|
* Imitation of JSONPath Syntax. Supports:
|
|
@@ -8,67 +8,8 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
* - Array notation (e.g.: [0])
|
|
9
9
|
*/
|
|
10
10
|
export class JsonPathPipe {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.logger = MngLoggerService.get().create('JsonPathPipe');
|
|
13
|
-
}
|
|
14
11
|
transform(value, path = '') {
|
|
15
|
-
|
|
16
|
-
// only return the root
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
// Check for leading root object notation
|
|
20
|
-
if (path.startsWith('$')) {
|
|
21
|
-
path = path.substring(1);
|
|
22
|
-
}
|
|
23
|
-
// Check for leading .
|
|
24
|
-
if (path.startsWith('.')) {
|
|
25
|
-
path = path.substring(1);
|
|
26
|
-
}
|
|
27
|
-
if (path.indexOf('.') >= 0) {
|
|
28
|
-
const pathSplit = path.split('.');
|
|
29
|
-
let currValue = value;
|
|
30
|
-
for (const p of pathSplit) {
|
|
31
|
-
if (typeof currValue === 'undefined' || currValue === null) {
|
|
32
|
-
return currValue;
|
|
33
|
-
}
|
|
34
|
-
if (!p.length) {
|
|
35
|
-
// empty path, return current value
|
|
36
|
-
return currValue;
|
|
37
|
-
}
|
|
38
|
-
const leftBracketIdx = p.indexOf('[');
|
|
39
|
-
if (leftBracketIdx >= 0 && p.endsWith(']')) {
|
|
40
|
-
// should be reference to array
|
|
41
|
-
const arrayPath = p.substring(0, leftBracketIdx);
|
|
42
|
-
const arrayIdx = +p.substring(leftBracketIdx + 1, p.length - 1);
|
|
43
|
-
const array = currValue[arrayPath];
|
|
44
|
-
if (Array.isArray(array)) {
|
|
45
|
-
if (arrayIdx >= 0 && arrayIdx < array.length) {
|
|
46
|
-
// valid index, continue on the path
|
|
47
|
-
currValue = array[arrayIdx];
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
this.logger?.warn(`Path ${path} array index at ${p} is not within valid array range`, value);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
this.logger?.warn(`Path ${path} array at ${p} is not a valid array`, value);
|
|
56
|
-
}
|
|
57
|
-
return undefined;
|
|
58
|
-
}
|
|
59
|
-
else if (typeof currValue === 'object') {
|
|
60
|
-
currValue = currValue[p];
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
this.logger?.warn(`Path ${path} is not valid for object`, value);
|
|
64
|
-
return currValue;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return currValue;
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
return value[path];
|
|
71
|
-
}
|
|
12
|
+
return ObjectUtil.getPropertyByPath(value, path);
|
|
72
13
|
}
|
|
73
14
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: JsonPathPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
74
15
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: JsonPathPipe, isStandalone: true, name: "jsonPath" }); }
|
|
@@ -81,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
81
22
|
pure: true
|
|
82
23
|
}]
|
|
83
24
|
}] });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1wYXRoLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3BpcGVzL2pzb24tcGF0aC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxVQUFVLENBQUM7O0FBRXBDOzs7OztHQUtHO0FBTUgsTUFBTSxPQUFPLFlBQVk7SUFDckIsU0FBUyxDQUFDLEtBQVUsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUMzQixPQUFPLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQzs4R0FIUSxZQUFZOzRHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBTHhCLElBQUk7bUJBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUsSUFBSTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JqZWN0VXRpbH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIEltaXRhdGlvbiBvZiBKU09OUGF0aCBTeW50YXguIFN1cHBvcnRzOlxuICogIC0gUm9vdCBvYmplY3Qgbm90YXRpb24gd2l0aCAnJCdcbiAqICAtIERvdCBub3RhdGlvbiAoZS5nLjogJC5mb28uYmFyKSwgbm8gYnJhY2tldCBub3RhdGlvbiBmb3IgcHJvcGVydGllc1xuICogIC0gQXJyYXkgbm90YXRpb24gKGUuZy46IFswXSlcbiAqL1xuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ2pzb25QYXRoJyxcbiAgICBwdXJlOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEpzb25QYXRoUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBwYXRoID0gJycpOiBhbnkge1xuICAgICAgICByZXR1cm4gT2JqZWN0VXRpbC5nZXRQcm9wZXJ0eUJ5UGF0aCh2YWx1ZSwgcGF0aCk7XG4gICAgfVxufVxuIl19
|
|
@@ -8,10 +8,10 @@ import { ObjectSerializer } from './api/utils';
|
|
|
8
8
|
import { MngActionEditorComponent } from './components/action';
|
|
9
9
|
import { MngErrorHandler } from './error';
|
|
10
10
|
import { JsonPathPipe, MngBooleanPipe, MngClassMapPipe, MngEnumPipe, MngEnumerateAsyncPipe, MngEnumeratePipe, MngGetterPipe, MngI18nPropertyPipe, MngLocaleDefaultRowClassPipe, MngParametrizePipe, MngTemplatePipe } from './pipes';
|
|
11
|
-
import { DefaultActionMngErrorMapperService, MngActionErrorMapperService, MngConfigurationService, MngLoggerService } from './services';
|
|
11
|
+
import { DefaultActionMngErrorMapperService, MngActionErrorMapperService, MngConfigurationService, MngLogPublisherConsoleService, MngLoggerService } from './services';
|
|
12
12
|
import { MngCommonsInitService, mngCommonsInitializerProvider } from './services/internal';
|
|
13
13
|
import { mngFormlyConfigProvider } from './services/providers';
|
|
14
|
-
import { ACTION_EDITOR_DIALOG_COMPONENT_SETTING, MNG_MODULE_CONFIG_IT } from './services/tokens';
|
|
14
|
+
import { ACTION_EDITOR_DIALOG_COMPONENT_SETTING, MNG_LOG_PUBLISHERS, MNG_MODULE_CONFIG_IT } from './services/tokens';
|
|
15
15
|
export function provideMngCommons(config) {
|
|
16
16
|
return [
|
|
17
17
|
// primeng services
|
|
@@ -67,10 +67,15 @@ export function provideMngCommons(config) {
|
|
|
67
67
|
provide: MngLoggerService,
|
|
68
68
|
useFactory: () => MngLoggerService.get()
|
|
69
69
|
},
|
|
70
|
+
{
|
|
71
|
+
provide: MNG_LOG_PUBLISHERS,
|
|
72
|
+
useClass: MngLogPublisherConsoleService,
|
|
73
|
+
multi: true
|
|
74
|
+
},
|
|
70
75
|
{
|
|
71
76
|
provide: ErrorHandler,
|
|
72
77
|
useClass: MngErrorHandler
|
|
73
78
|
}
|
|
74
79
|
];
|
|
75
80
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1jb21tb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9wcm92aWRlLWNvbW1vbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxlQUFlLEVBQUUsWUFBWSxFQUFXLE1BQU0sZUFBZSxDQUFDO0FBRXRFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsY0FBYyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUV4QyxPQUFPLEVBQ0gsWUFBWSxFQUNaLGNBQWMsRUFDZCxlQUFlLEVBQ2YsV0FBVyxFQUNYLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDbEIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFDLGtDQUFrQyxFQUFFLDJCQUEyQixFQUFFLHVCQUF1QixFQUFFLDZCQUE2QixFQUFFLGdCQUFnQixFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3JLLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSw2QkFBNkIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBQyxzQ0FBc0MsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRW5ILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxNQUF1QjtJQUNyRCxPQUFPO1FBQ0gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixjQUFjO1FBQ2QsbUJBQW1CO1FBRW5CLFFBQVE7UUFDUixZQUFZO1FBQ1osV0FBVztRQUNYLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixlQUFlO1FBQ2YsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixxQkFBcUI7UUFDckIsNEJBQTRCO1FBQzVCLFFBQVE7UUFFUjtZQUNJLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsUUFBUSxFQUFFLE1BQU07U0FDbkI7UUFDRDtZQUNJLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRTtTQUMzQztRQUNEO1lBQ0ksT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUMsR0FBRyxFQUFFO1NBQ2xEO1FBQ0Q7WUFDSSxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsNkJBQTZCO1lBQ3pDLElBQUksRUFBRSxDQUFDLHFCQUFxQixDQUFDO1lBQzdCLEtBQUssRUFBRSxJQUFJO1NBQ2Q7UUFDRDtZQUNJLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLEtBQUssRUFBRSxJQUFJO1lBQ1gsVUFBVSxFQUFFLHVCQUF1QjtZQUNuQyxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLENBQUM7U0FDM0Q7UUFDRDtZQUNJLE9BQU8sRUFBRSxzQ0FBc0M7WUFDL0MsUUFBUSxFQUFFLHdCQUF3QjtTQUNyQztRQUNEO1lBQ0ksT0FBTyxFQUFFLDJCQUEyQjtZQUNwQyxRQUFRLEVBQUUsa0NBQWtDO1NBQy9DO1FBQ0Q7WUFDSSxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7U0FDM0M7UUFDRDtZQUNJLE9BQU8sRUFBRSxrQkFBa0I7WUFDM0IsUUFBUSxFQUFFLDZCQUE2QjtZQUN2QyxLQUFLLEVBQUUsSUFBSTtTQUNkO1FBQ0Q7WUFDSSxPQUFPLEVBQUUsWUFBWTtZQUNyQixRQUFRLEVBQUUsZUFBZTtTQUM1QjtLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRlUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QVBQX0lOSVRJQUxJWkVSLCBFcnJvckhhbmRsZXIsIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtGT1JNTFlfQ09ORklHfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XG5cbmltcG9ydCB7T2JqZWN0U2VyaWFsaXplcn0gZnJvbSAnLi9hcGkvdXRpbHMnO1xuaW1wb3J0IHtNbmdBY3Rpb25FZGl0b3JDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpb24nO1xuaW1wb3J0IHtNbmdFcnJvckhhbmRsZXJ9IGZyb20gJy4vZXJyb3InO1xuaW1wb3J0IHtNbmdNb2R1bGVDb25maWd9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7XG4gICAgSnNvblBhdGhQaXBlLFxuICAgIE1uZ0Jvb2xlYW5QaXBlLFxuICAgIE1uZ0NsYXNzTWFwUGlwZSxcbiAgICBNbmdFbnVtUGlwZSxcbiAgICBNbmdFbnVtZXJhdGVBc3luY1BpcGUsXG4gICAgTW5nRW51bWVyYXRlUGlwZSxcbiAgICBNbmdHZXR0ZXJQaXBlLFxuICAgIE1uZ0kxOG5Qcm9wZXJ0eVBpcGUsXG4gICAgTW5nTG9jYWxlRGVmYXVsdFJvd0NsYXNzUGlwZSxcbiAgICBNbmdQYXJhbWV0cml6ZVBpcGUsXG4gICAgTW5nVGVtcGxhdGVQaXBlXG59IGZyb20gJy4vcGlwZXMnO1xuaW1wb3J0IHtEZWZhdWx0QWN0aW9uTW5nRXJyb3JNYXBwZXJTZXJ2aWNlLCBNbmdBY3Rpb25FcnJvck1hcHBlclNlcnZpY2UsIE1uZ0NvbmZpZ3VyYXRpb25TZXJ2aWNlLCBNbmdMb2dQdWJsaXNoZXJDb25zb2xlU2VydmljZSwgTW5nTG9nZ2VyU2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5pbXBvcnQge01uZ0NvbW1vbnNJbml0U2VydmljZSwgbW5nQ29tbW9uc0luaXRpYWxpemVyUHJvdmlkZXJ9IGZyb20gJy4vc2VydmljZXMvaW50ZXJuYWwnO1xuaW1wb3J0IHttbmdGb3JtbHlDb25maWdQcm92aWRlcn0gZnJvbSAnLi9zZXJ2aWNlcy9wcm92aWRlcnMnO1xuaW1wb3J0IHtBQ1RJT05fRURJVE9SX0RJQUxPR19DT01QT05FTlRfU0VUVElORywgTU5HX0xPR19QVUJMSVNIRVJTLCBNTkdfTU9EVUxFX0NPTkZJR19JVH0gZnJvbSAnLi9zZXJ2aWNlcy90b2tlbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU1uZ0NvbW1vbnMoY29uZmlnOiBNbmdNb2R1bGVDb25maWcpOiBQcm92aWRlcltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgICAvLyBwcmltZW5nIHNlcnZpY2VzXG4gICAgICAgIERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIE1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBDb25maXJtYXRpb25TZXJ2aWNlLFxuXG4gICAgICAgIC8vIHBpcGVzXG4gICAgICAgIEpzb25QYXRoUGlwZSxcbiAgICAgICAgTW5nRW51bVBpcGUsXG4gICAgICAgIE1uZ0Jvb2xlYW5QaXBlLFxuICAgICAgICBNbmdJMThuUHJvcGVydHlQaXBlLFxuICAgICAgICBNbmdQYXJhbWV0cml6ZVBpcGUsXG4gICAgICAgIE1uZ0dldHRlclBpcGUsXG4gICAgICAgIE1uZ1RlbXBsYXRlUGlwZSxcbiAgICAgICAgTW5nQ2xhc3NNYXBQaXBlLFxuICAgICAgICBNbmdFbnVtZXJhdGVQaXBlLFxuICAgICAgICBNbmdFbnVtZXJhdGVBc3luY1BpcGUsXG4gICAgICAgIE1uZ0xvY2FsZURlZmF1bHRSb3dDbGFzc1BpcGUsXG4gICAgICAgIERhdGVQaXBlLFxuXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE1OR19NT0RVTEVfQ09ORklHX0lULFxuICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBPYmplY3RTZXJpYWxpemVyLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4gT2JqZWN0U2VyaWFsaXplci5nZXQoKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBNbmdDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IE1uZ0NvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldCgpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IG1uZ0NvbW1vbnNJbml0aWFsaXplclByb3ZpZGVyLFxuICAgICAgICAgICAgZGVwczogW01uZ0NvbW1vbnNJbml0U2VydmljZV0sXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGT1JNTFlfQ09ORklHLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBtbmdGb3JtbHlDb25maWdQcm92aWRlcixcbiAgICAgICAgICAgIGRlcHM6IFtUcmFuc2xhdGVTZXJ2aWNlLCBEYXRlUGlwZSwgTU5HX01PRFVMRV9DT05GSUdfSVRdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFDVElPTl9FRElUT1JfRElBTE9HX0NPTVBPTkVOVF9TRVRUSU5HLFxuICAgICAgICAgICAgdXNlVmFsdWU6IE1uZ0FjdGlvbkVkaXRvckNvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBNbmdBY3Rpb25FcnJvck1hcHBlclNlcnZpY2UsXG4gICAgICAgICAgICB1c2VDbGFzczogRGVmYXVsdEFjdGlvbk1uZ0Vycm9yTWFwcGVyU2VydmljZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBNbmdMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4gTW5nTG9nZ2VyU2VydmljZS5nZXQoKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBNTkdfTE9HX1BVQkxJU0hFUlMsXG4gICAgICAgICAgICB1c2VDbGFzczogTW5nTG9nUHVibGlzaGVyQ29uc29sZVNlcnZpY2UsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBFcnJvckhhbmRsZXIsXG4gICAgICAgICAgICB1c2VDbGFzczogTW5nRXJyb3JIYW5kbGVyXG4gICAgICAgIH1cbiAgICBdO1xufVxuIl19
|