@po-ui/ng-components 6.0.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.mjs +12 -2
- package/esm2020/lib/components/po-field/po-lookup/po-lookup.component.mjs +11 -7
- package/esm2020/lib/components/po-field/po-radio-group/po-radio-group.component.mjs +9 -7
- package/esm2020/lib/components/po-field/po-rich-text/po-rich-text.component.mjs +4 -4
- package/esm2020/lib/components/po-field/po-upload/po-upload.component.mjs +12 -7
- package/esm2020/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.mjs +3 -3
- package/fesm2015/po-ui-ng-components.mjs +41 -20
- package/fesm2015/po-ui-ng-components.mjs.map +1 -1
- package/fesm2020/po-ui-ng-components.mjs +41 -20
- package/fesm2020/po-ui-ng-components.mjs.map +1 -1
- package/lib/components/po-field/po-lookup/po-lookup.component.d.ts +3 -2
- package/lib/components/po-field/po-radio-group/po-radio-group.component.d.ts +3 -2
- package/lib/components/po-field/po-upload/po-upload.component.d.ts +3 -2
- package/package.json +8 -5
- package/po-ui-ng-components-6.1.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/v2/index.js +1 -1
- package/schematics/ng-update/v3/index.js +1 -1
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v5/index.js +1 -1
- package/schematics/ng-update/v6/index.js +1 -1
- package/po-ui-ng-components-6.0.0.tgz +0 -0
package/esm2020/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.mjs
CHANGED
|
@@ -101,7 +101,17 @@ export class PoLookupModalBaseComponent {
|
|
|
101
101
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
102
102
|
this.primaryAction = {
|
|
103
103
|
action: () => {
|
|
104
|
-
|
|
104
|
+
let selectedsItems = [];
|
|
105
|
+
if (!this.multiple) {
|
|
106
|
+
this.items.forEach(element => {
|
|
107
|
+
if (element['$selected']) {
|
|
108
|
+
selectedsItems.push(element);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
selectedsItems = this.selecteds;
|
|
114
|
+
}
|
|
105
115
|
this.model.emit(selectedsItems);
|
|
106
116
|
this.poModal.close();
|
|
107
117
|
},
|
|
@@ -381,4 +391,4 @@ __decorate([
|
|
|
381
391
|
type: Input,
|
|
382
392
|
args: ['p-title']
|
|
383
393
|
}] }); })();
|
|
384
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9va3VwLW1vZGFsLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLWxvb2t1cC9wby1sb29rdXAtbW9kYWwvcG8tbG9va3VwLW1vZGFsLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBNEIsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUV4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUV0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQVduRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBRTFFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLEVBQUUsRUFBb0I7UUFDcEIsdUJBQXVCLEVBQUUsUUFBUTtRQUNqQyx5QkFBeUIsRUFBRSxRQUFRO1FBQ25DLGdCQUFnQixFQUFFLFFBQVE7UUFDMUIsVUFBVSxFQUFFLGlCQUFpQjtRQUM3QixtQkFBbUIsRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsU0FBUztR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QkFBaEMsS0FBSzttQkFBQyxZQUFZO1lBdUJHLEtBQUs7a0JBQTFCLEtBQUs7bUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgRGlyZWN0aXZlLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IElucHV0Qm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMnO1xuXG5pbXBvcnQgeyBpc1R5cGVvZiB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2UuY29uc3RhbnQnO1xuaW1wb3J0IHsgUG9Nb2RhbEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcG8tbW9kYWwnO1xuaW1wb3J0IHsgUG9Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcG8tbW9kYWwvcG8tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW5Tb3J0IH0gZnJvbSAnLi4vLi4vLi4vcG8tdGFibGUvaW50ZXJmYWNlcy9wby10YWJsZS1jb2x1bW4tc29ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UYWJsZUNvbHVtblNvcnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vcG8tdGFibGUnO1xuaW1wb3J0IHsgcG9UYWJsZUxpdGVyYWxzRGVmYXVsdCB9IGZyb20gJy4uLy4uLy4uL3BvLXRhYmxlL3BvLXRhYmxlLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2Uuc2VydmljZSc7XG5cbmltcG9ydCB7IFBvTG9va3VwQ29sdW1uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1sb29rdXAtY29sdW1uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0xvb2t1cEZpbHRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG8tbG9va3VwLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9Mb29rdXBGaWx0ZXJlZEl0ZW1zUGFyYW1zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1sb29rdXAtZmlsdGVyZWQtaXRlbXMtcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0xvb2t1cExpdGVyYWxzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1sb29rdXAtbGl0ZXJhbHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTG9va3VwUmVzcG9uc2VBcGkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLWxvb2t1cC1yZXNwb25zZS1hcGkuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvRGlzY2xhaW1lciB9IGZyb20gJy4vLi4vLi4vLi4vcG8tZGlzY2xhaW1lci9wby1kaXNjbGFpbWVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0Rpc2NsYWltZXJHcm91cCB9IGZyb20gJy4vLi4vLi4vLi4vcG8tZGlzY2xhaW1lci1ncm91cC9wby1kaXNjbGFpbWVyLWdyb3VwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0xvb2t1cEFkdmFuY2VkRmlsdGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1sb29rdXAtYWR2YW5jZWQtZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi8uLi9wby10YWJsZS9wby10YWJsZS5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgcG9Mb29rdXBMaXRlcmFsc0RlZmF1bHQgPSB7XG4gIGVuOiA8UG9Mb29rdXBMaXRlcmFscz57XG4gICAgbW9kYWxQcmltYXJ5QWN0aW9uTGFiZWw6ICdTZWxlY3QnLFxuICAgIG1vZGFsU2Vjb25kYXJ5QWN0aW9uTGFiZWw6ICdDYW5jZWwnLFxuICAgIG1vZGFsUGxhY2Vob2xkZXI6ICdTZWFyY2gnLFxuICAgIG1vZGFsVGl0bGU6ICdTZWxlY3QgYSByZWNvcmQnLFxuICAgIG1vZGFsVGFibGVOb0NvbHVtbnM6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQuZW4ubm9Db2x1bW5zLFxuICAgIG1vZGFsVGFibGVOb0RhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQuZW4ubm9EYXRhLFxuICAgIG1vZGFsVGFibGVMb2FkaW5nRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5lbi5sb2FkaW5nRGF0YSxcbiAgICBtb2RhbFRhYmxlTG9hZE1vcmVEYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LmVuLmxvYWRNb3JlRGF0YSxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoOiAnQWR2YW5jZWQgc2VhcmNoJyxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoVGl0bGU6ICdBZHZhbmNlZCBzZWFyY2gnLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hQcmltYXJ5QWN0aW9uTGFiZWw6ICdGaWx0ZXInLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ1JldHVybicsXG4gICAgbW9kYWxEaXNjbGFpbWVyR3JvdXBUaXRsZTogJ1ByZXNlbnRpbmcgcmVzdWx0cyBmaWx0ZXJlZCBieTonXG4gIH0sXG4gIGVzOiA8UG9Mb29rdXBMaXRlcmFscz57XG4gICAgbW9kYWxQcmltYXJ5QWN0aW9uTGFiZWw6ICdTZWxlY2Npb25hcicsXG4gICAgbW9kYWxTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ0NhbmNlbGFyJyxcbiAgICBtb2RhbFBsYWNlaG9sZGVyOiAnQnVzY2FyJyxcbiAgICBtb2RhbFRpdGxlOiAnU2VsZWNjaW9uZSB1biByZWdpc3RybycsXG4gICAgbW9kYWxUYWJsZU5vQ29sdW1uczogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5lcy5ub0NvbHVtbnMsXG4gICAgbW9kYWxUYWJsZU5vRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5lcy5ub0RhdGEsXG4gICAgbW9kYWxUYWJsZUxvYWRpbmdEYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LmVzLmxvYWRpbmdEYXRhLFxuICAgIG1vZGFsVGFibGVMb2FkTW9yZURhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQuZXMubG9hZE1vcmVEYXRhLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2g6ICdCw7pzcXVlZGEgQXZhbnphZGEnLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hUaXRsZTogJ0LDunNxdWVkYSBBdmFuemFkYScsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFByaW1hcnlBY3Rpb25MYWJlbDogJ0ZpbHRyYXInLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ1Z1ZWx2ZScsXG4gICAgbW9kYWxEaXNjbGFpbWVyR3JvdXBUaXRsZTogJ1ByZXNlbnRhciByZXN1bHRhZG9zIGZpbHRyYWRvcyBwb3I6J1xuICB9LFxuICBwdDogPFBvTG9va3VwTGl0ZXJhbHM+e1xuICAgIG1vZGFsUHJpbWFyeUFjdGlvbkxhYmVsOiAnU2VsZWNpb25hcicsXG4gICAgbW9kYWxTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ0NhbmNlbGFyJyxcbiAgICBtb2RhbFBsYWNlaG9sZGVyOiAnUGVzcXVpc2FyJyxcbiAgICBtb2RhbFRpdGxlOiAnU2VsZWNpb25lIHVtIHJlZ2lzdHJvJyxcbiAgICBtb2RhbFRhYmxlTm9Db2x1bW5zOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LnB0Lm5vQ29sdW1ucyxcbiAgICBtb2RhbFRhYmxlTm9EYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LnB0Lm5vRGF0YSxcbiAgICBtb2RhbFRhYmxlTG9hZGluZ0RhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQucHQubG9hZGluZ0RhdGEsXG4gICAgbW9kYWxUYWJsZUxvYWRNb3JlRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5wdC5sb2FkTW9yZURhdGEsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaDogJ0J1c2NhIGF2YW7Dp2FkYScsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFRpdGxlOiAnQnVzY2EgQXZhbsOnYWRhJyxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoUHJpbWFyeUFjdGlvbkxhYmVsOiAnRmlsdHJhcicsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFNlY29uZGFyeUFjdGlvbkxhYmVsOiAnVm9sdGFyJyxcbiAgICBtb2RhbERpc2NsYWltZXJHcm91cFRpdGxlOiAnQXByZXNlbnRhbmRvIHJlc3VsdGFkb3MgZmlsdHJhZG9zIHBvcjonXG4gIH0sXG4gIHJ1OiA8UG9Mb29rdXBMaXRlcmFscz57XG4gICAgbW9kYWxQcmltYXJ5QWN0aW9uTGFiZWw6ICfQstGL0LHQuNGA0LDRgtGMJyxcbiAgICBtb2RhbFNlY29uZGFyeUFjdGlvbkxhYmVsOiAn0L7RgtC80LXQvdC40YLRjCcsXG4gICAgbW9kYWxQbGFjZWhvbGRlcjogJ9C/0L7QuNGB0LonLFxuICAgIG1vZGFsVGl0bGU6ICfQktGL0LHQtdGA0LjRgtC1INC30LDQv9C40YHRjCcsXG4gICAgbW9kYWxUYWJsZU5vQ29sdW1uczogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5ydS5ub0NvbHVtbnMsXG4gICAgbW9kYWxUYWJsZU5vRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5ydS5ub0RhdGEsXG4gICAgbW9kYWxUYWJsZUxvYWRpbmdEYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LnJ1LmxvYWRpbmdEYXRhLFxuICAgIG1vZGFsVGFibGVMb2FkTW9yZURhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQucnUubG9hZE1vcmVEYXRhLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2g6ICfQoNCw0YHRiNC40YDQtdC90L3Ri9C5INC/0L7QuNGB0LonLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hUaXRsZTogJ9Cg0LDRgdGI0LjRgNC10L3QvdGL0Lkg0L/QvtC40YHQuicsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFByaW1hcnlBY3Rpb25MYWJlbDogJ9Ck0LjQu9GM0YLRgCcsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFNlY29uZGFyeUFjdGlvbkxhYmVsOiAn0JLQtdGA0L3QuNGB0YwnLFxuICAgIG1vZGFsRGlzY2xhaW1lckdyb3VwVGl0bGU6ICfQn9GA0LXQtNGB0YLQsNCy0LvQtdC90LjQtSDRgNC10LfRg9C70YzRgtCw0YLQvtCyINC+0YLRhNC40LvRjNGC0YDQvtCy0LDQvdC+INC/0L46J1xuICB9XG59O1xuXG4vKipcbiAqIEBkb2NzUHJpdmF0ZVxuICpcbiAqIENsYXNzZSBiYXNlIGRvIGNvbXBvbmVudGUgUG8gTG9va3VwIE1vZGFsLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb0xvb2t1cE1vZGFsQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgQFZpZXdDaGlsZChQb01vZGFsQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBwb01vZGFsOiBQb01vZGFsQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKFBvVGFibGVDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHBvVGFibGU6IFBvVGFibGVDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIE9iamV0byBjb20gb3MgY2FtcG9zIHF1ZSBzZXLDo28gY3JpYWRvcyBubyBidXNjYSBhdmFuw6dhZGEuXG4gICAqXG4gICAqID4gQ2FzbyBuw6NvIHNlamEgcGFzc2FkbyB1bSBvYmpldG8gb3UgZW50w6NvIGVsZSBlc3RlamEgZW0gYnJhbmNvIG8gbGluayBkZSBidXNjYSBhdmFuw6dhZGEgZmljYXLDoSBlc2NvbmRpZG8uXG4gICAqXG4gICAqIEV4ZW1wbG8gZGUgVVJMIGNvbSBidXNjYSBhdmFuw6dhZGE6IGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC92MS9oZXJvZXM/ZmlsdGVyPSZwYWdlPTEmcGFnZVNpemU9MTBgJm5hbWU9VG9ueSUyMFN0YXJrJm5pY2tuYW1lPUhvbWVtJTIwZGUlMjBGZXJybyZlbWFpbD1pcm5tYW5AbWFydmVsLmNvbWBcbiAgICpcbiAgICogQ2FzbyBhbGd1bSBwYXLDom1ldHJvIHNlamEgdW1hIGxpc3RhLCBhIGNvbmNhdGVuYcOnw6NvIMOpIGZlaXRhIHV0aWxpemFuZG8gdmlyZ3VsYS5cbiAgICogRXhlbXBsbzogaHR0cDovL2xvY2FsaG9zdDozMDAwL3YxL2hlcm9lcz9maWx0ZXI9JnBhZ2U9MSZwYWdlU2l6ZT0xMGAmbmFtZT1Ub255JTIwU3RhcmssUGV0ZXIlMjBQYXJrZXIsR29oYW5gXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ3AtYWR2YW5jZWQtZmlsdGVycycpIGFkdmFuY2VkRmlsdGVyczogQXJyYXk8UG9Mb29rdXBBZHZhbmNlZEZpbHRlcj47XG5cbiAgLyoqXG4gICAqIExpc3RhIGRhcyBjb2x1bmFzIGRhIHRhYmVsYS5cbiAgICogRXNzYSBwcm9wcmllZGFkZSBkZXZlIHJlY2ViZXIgdW0gYXJyYXkgZGUgb2JqZXRvcyBxdWUgaW1wbGVtZW50YW0gYSBpbnRlcmZhY2UgUG9Mb29rdXBDb2x1bW4uXG4gICAqL1xuICBASW5wdXQoJ3AtY29sdW1ucycpIGNvbHVtbnM6IEFycmF5PFBvTG9va3VwQ29sdW1uPjtcblxuICAvKiogTGlzdGEgZGUgaXRlbnMgZGEgdGFiZWxhLiAqL1xuICBASW5wdXQoJ3AtaXRlbXMnKSBpdGVtczogQXJyYXk8YW55PjtcblxuICAvKiogQ2xhc3NlIGRlIHNlcnZpw6dvIGNvbSBhIGltcGxlbWVudGHDp8OjbyBkbyBjbGllbnRlLiAqL1xuICBASW5wdXQoJ3AtZmlsdGVyLXNlcnZpY2UnKSBmaWx0ZXJTZXJ2aWNlOiBQb0xvb2t1cEZpbHRlcjtcblxuICAvKiogQ2xhc3NlIGRlIHNlcnZpw6dvIGNvbSBhIGltcGxlbWVudGHDp8OjbyBkbyBjbGllbnRlLiAqL1xuICBASW5wdXQoJ3AtZmlsdGVyLXBhcmFtcycpIGZpbHRlclBhcmFtczogYW55O1xuXG4gIC8qKiBTZSB2ZXJkYWRlaXJvLCBhdGl2YSBhIGZ1bmNpb25hbGlkYWRlIGRlIHNjcm9sbCBpbmZpbml0byBwYXJhIGEgdGFiZWxhIGV4aWJpZGEgbm8gcmV0b3JubyBkYSBjb25zdWx0YS4gKi9cbiAgQElucHV0KCdwLWluZmluaXRlLXNjcm9sbCcpIEBJbnB1dEJvb2xlYW4oKSBpbmZpbml0ZVNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBTZSB2ZXJkYWRlaXJvLCBhdGl2YSBhIGZ1bmNpb25hbGlkYWRlIGRlIG11bHRpcGxhIHNlbGXDp8Ojby4gKi9cbiAgQElucHV0KCdwLW11bHRpcGxlJykgQElucHV0Qm9vbGVhbigpIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIEV2ZW50byB1dGlsaXphZG8gYW8gc2VsZWNpb25hciB1bSByZWdpc3RybyBkYSB0YWJlbGEuICovXG4gIEBPdXRwdXQoJ3AtY2hhbmdlLW1vZGVsJykgbW9kZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqIENsYXNzZSBkZSBzZXJ2acOnbyBjb20gaXRlbXMgc2VsZWNpb25hZG9zICovXG4gIEBJbnB1dCgncC1zZWxlY3RlZC1pdGVtcycpIHNlbGVjdGVkSXRlbXM6IGFueTtcblxuICAvKiogSW5kaWNhIGEgY29sdW5hIHF1ZSBzZXLDoSB1dGlsaXphZGEgY29tbyBkZXNjcmnDp8OjbyBkbyBjYW1wbyBlIGNvbW8gZmlsdHJvIGRlbnRybyBkYSBqYW5lbGEuICovXG4gIEBJbnB1dCgncC1maWVsZC1sYWJlbCcpIGZpZWxkTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBhIGNvbHVuYSBxdWUgc2Vyw6EgdXRpbGl6YWRhIGNvbW8gdmFsb3IgZG8gY2FtcG8uXG4gICAqXG4gICAqID4gQXRlbsOnw6NvOiBDYXNvIG7Do28gc2VqYSBwYXNzYWRhIG91IHRlbmhhIG8gY29udGXDumRvIGluY29ycmV0bywgbsOjbyBpcsOhIGF0dWFsaXphciBvIG1vZGVsIGRvIGZvcm11bMOhcmlvLlxuICAgKi9cbiAgQElucHV0KCdwLWZpZWxkLXZhbHVlJykgZmllbGRWYWx1ZTogc3RyaW5nO1xuXG4gIGhhc05leHQgPSB0cnVlO1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgcGFnZSA9IDE7XG4gIHBhZ2VTaXplID0gMTA7XG4gIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgdGFibGVMaXRlcmFsczogYW55O1xuXG4gIC8vIFByb3ByaWVkYWRlIGRhIG1vZGFsIGRlIGJ1c2NhIGF2YW7Dp2FkYTpcbiAgYWR2YW5jZWRGaWx0ZXJNb2RhbFRpdGxlID0gJyc7XG4gIGR5bmFtaWNGb3JtVmFsdWUgPSB7fTtcbiAgZGlzY2xhaW1lciE6IFBvRGlzY2xhaW1lcjtcbiAgZGlzY2xhaW1lckdyb3VwITogUG9EaXNjbGFpbWVyR3JvdXA7XG4gIGlzQWR2YW5jZWRGaWx0ZXIgPSBmYWxzZTtcbiAgcHJpbWFyeUFjdGlvbkFkdmFuY2VkRmlsdGVyITogUG9Nb2RhbEFjdGlvbjtcbiAgc2Vjb25kYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIhOiBQb01vZGFsQWN0aW9uO1xuICBzZWxlY3RlZHM6IEFycmF5PGFueT4gPSBbXTtcblxuICBwcm90ZWN0ZWQgc29ydDogUG9UYWJsZUNvbHVtblNvcnQ7XG5cbiAgcHJpdmF0ZSBmaWx0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzZWFyY2hTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzaG93TW9yZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgX2xpdGVyYWxzOiBQb0xvb2t1cExpdGVyYWxzO1xuICBwcml2YXRlIF90aXRsZTogc3RyaW5nO1xuICBwcml2YXRlIGxhbmd1YWdlOiBzdHJpbmcgPSBwb0xvY2FsZURlZmF1bHQ7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgcHJpbWFyeUFjdGlvbjogUG9Nb2RhbEFjdGlvbiA9IHtcbiAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkc0l0ZW1zID0gdGhpcy5zZWxlY3RlZHM7XG5cbiAgICAgIHRoaXMubW9kZWwuZW1pdChzZWxlY3RlZHNJdGVtcyk7XG4gICAgICB0aGlzLnBvTW9kYWwuY2xvc2UoKTtcbiAgICB9LFxuICAgIGxhYmVsOiB0aGlzLmxpdGVyYWxzLm1vZGFsUHJpbWFyeUFjdGlvbkxhYmVsXG4gIH07XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgc2Vjb25kYXJ5QWN0aW9uOiBQb01vZGFsQWN0aW9uID0ge1xuICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgdGhpcy5tb2RlbC5lbWl0KG51bGwpO1xuICAgICAgdGhpcy5wb01vZGFsLmNsb3NlKCk7XG4gICAgfSxcbiAgICBsYWJlbDogdGhpcy5saXRlcmFscy5tb2RhbFNlY29uZGFyeUFjdGlvbkxhYmVsXG4gIH07XG5cbiAgLyoqIE9iamV0byBjb20gYXMgbGl0ZXJhaXMgdXNhZGFzIG5vIGBwby1sb29rdXAtbW9kYWxgLiAqL1xuICBASW5wdXQoJ3AtbGl0ZXJhbHMnKSBzZXQgbGl0ZXJhbHModmFsdWU6IFBvTG9va3VwTGl0ZXJhbHMpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgdGhpcy5fbGl0ZXJhbHMgPSB7XG4gICAgICAgIC4uLnBvTG9va3VwTGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXG4gICAgICAgIC4uLnBvTG9va3VwTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdLFxuICAgICAgICAuLi52YWx1ZVxuICAgICAgfTtcbiAgICAgIGlmICh2YWx1ZS5tb2RhbFRpdGxlKSB7XG4gICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLmxpdGVyYWxzLm1vZGFsVGl0bGU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xpdGVyYWxzID0gcG9Mb29rdXBMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV07XG4gICAgfVxuICAgIHRoaXMucHJpbWFyeUFjdGlvbi5sYWJlbCA9IHRoaXMubGl0ZXJhbHMubW9kYWxQcmltYXJ5QWN0aW9uTGFiZWw7XG4gICAgdGhpcy5zZWNvbmRhcnlBY3Rpb24ubGFiZWwgPSB0aGlzLmxpdGVyYWxzLm1vZGFsU2Vjb25kYXJ5QWN0aW9uTGFiZWw7XG4gICAgdGhpcy5zZXRUYWJsZUxpdGVyYWxzKCk7XG4gIH1cblxuICBnZXQgbGl0ZXJhbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xpdGVyYWxzIHx8IHBvTG9va3VwTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICB9XG5cbiAgLyoqIFTDrXR1bG8gZGEgbW9kYWwuICovXG4gIEBJbnB1dCgncC10aXRsZScpIHNldCB0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdGl0bGUgPSBpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpID8gdmFsdWUgOiB0aGlzLmxpdGVyYWxzLm1vZGFsVGl0bGU7XG4gIH1cblxuICBnZXQgdGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RpdGxlO1xuICB9XG5cbiAgY29uc3RydWN0b3IobGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLmxhbmd1YWdlID0gbGFuZ3VhZ2VTZXJ2aWNlLmdldFNob3J0TGFuZ3VhZ2UoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmZpbHRlclN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5maWx0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWFyY2hTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd01vcmVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2hvd01vcmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldEFkdmFuY2VkRmlsdGVyTW9kYWxQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5pbml0aWFsaXplRGF0YSgpO1xuICAgIHRoaXMuc2V0VGFibGVMaXRlcmFscygpO1xuICB9XG5cbiAgY3JlYXRlRGlzY2xhaW1lcigpIHtcbiAgICB0aGlzLmRpc2NsYWltZXJHcm91cC5kaXNjbGFpbWVycyA9IFtdO1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAnJztcblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuZHluYW1pY0Zvcm1WYWx1ZSkpIHtcbiAgICAgIHRoaXMuYWRkRGlzY2xhaW1lcih2YWx1ZSwga2V5KTtcbiAgICB9XG5cbiAgICBpZiAoIU9iamVjdC52YWx1ZXModGhpcy5keW5hbWljRm9ybVZhbHVlKS5zb21lKHYgPT4gdiAhPT0gbnVsbCAmJiB0eXBlb2YgdiAhPT0gJ3VuZGVmaW5lZCcpKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgYWRkRGlzY2xhaW1lcih2YWx1ZTogYW55LCBwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgdGhpcy5kaXNjbGFpbWVyID0gPGFueT57IHByb3BlcnR5OiBwcm9wZXJ0eSB9O1xuICAgIHRoaXMuZGlzY2xhaW1lci52YWx1ZSA9IHZhbHVlO1xuXG4gICAgdGhpcy5kaXNjbGFpbWVyR3JvdXAuZGlzY2xhaW1lcnMgPSBbLi4udGhpcy5kaXNjbGFpbWVyR3JvdXAuZGlzY2xhaW1lcnMsIHRoaXMuZGlzY2xhaW1lcl07XG4gIH1cblxuICBvbkNoYW5nZURpc2NsYWltZXJHcm91cCgpIHtcbiAgICBpZiAoIXRoaXMuc2VhcmNoVmFsdWUpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAnJztcblxuICAgICAgdGhpcy5zZWFyY2hGaWx0ZXJlZEl0ZW1zKCk7XG4gICAgfVxuICB9XG5cbiAgc2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMucGFnZSA9IDE7XG5cbiAgICBpZiAodGhpcy5zZWFyY2hWYWx1ZSkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5kaXNjbGFpbWVyR3JvdXAuZGlzY2xhaW1lcnMgPSBbXTtcblxuICAgICAgdGhpcy5zZWFyY2hGaWx0ZXJlZEl0ZW1zKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcbiAgICB9XG4gIH1cblxuICBzZWFyY2hGaWx0ZXJlZEl0ZW1zKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uID0gdGhpcy5nZXRGaWx0ZXJlZEl0ZW1zKHRoaXMuc2VhcmNoVmFsdWUpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5zZXRMb29rdXBSZXNwb25zZVByb3BlcnRpZXMoKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoZGF0YTogUG9Mb29rdXBSZXNwb25zZUFwaSkgPT4gdGhpcy5zZXRMb29rdXBSZXNwb25zZVByb3BlcnRpZXMoZGF0YSksXG4gICAgICAgICgpID0+IHt9XG4gICAgICApO1xuICB9XG5cbiAgc2hvd01vcmVFdmVudCgpIHtcbiAgICB0aGlzLnBhZ2UrKztcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICB0aGlzLnNob3dNb3JlU3Vic2NyaXB0aW9uID0gdGhpcy5nZXRGaWx0ZXJlZEl0ZW1zKHRoaXMuc2VhcmNoVmFsdWUpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5oYXNOZXh0ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoZGF0YTogUG9Mb29rdXBSZXNwb25zZUFwaSkgPT4ge1xuICAgICAgICAgIHRoaXMuaXRlbXMgPSBbLi4udGhpcy5pdGVtcywgLi4uZGF0YS5pdGVtc107XG4gICAgICAgICAgdGhpcy5oYXNOZXh0ID0gZGF0YS5oYXNOZXh0O1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEl0ZW1zKCk7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHt9XG4gICAgICApO1xuICB9XG5cbiAgLy9Nw6l0b2RvIHJlc3BvbnPDoXZlbCBwb3Igc2VsZWNpb25hciBhcyBsaW5oYXMgcXVhbmRvIGFicmUgbyBtb2RhbC5cbiAgc2V0U2VsZWN0ZWRJdGVtcygpIHtcbiAgICB0aGlzLnNlbGVjdGVkcy5mb3JFYWNoKHNlbGVjdGVkSXRlbSA9PlxuICAgICAgdGhpcy5wb1RhYmxlLnNlbGVjdFJvd0l0ZW0oaXRlbSA9PiBpdGVtW3RoaXMuZmllbGRWYWx1ZV0gPT09IHNlbGVjdGVkSXRlbS52YWx1ZSlcbiAgICApO1xuICB9XG5cbiAgLy9Nw6l0b2RvIHJlc3BvbnPDoXZlbCBwb3IgY3JpYXIgb3MgZGlzY2xhaW1lcnMgcXVhbmRvIGFicmUgbyBtb2RhbC5cbiAgc2V0RGlzY2xhaW1lcnNJdGVtcygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zICYmICFBcnJheS5pc0FycmF5KHRoaXMuc2VsZWN0ZWRJdGVtcykpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRzID0gW3sgdmFsdWU6IHRoaXMuc2VsZWN0ZWRJdGVtcyB9XTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRzID0gWy4uLnRoaXMuc2VsZWN0ZWRJdGVtc107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRBZHZhbmNlZEZpbHRlck1vZGFsUHJvcGVydGllcygpIHtcbiAgICB0aGlzLmFkdmFuY2VkRmlsdGVyTW9kYWxUaXRsZSA9IHRoaXMubGl0ZXJhbHMubW9kYWxBZHZhbmNlZFNlYXJjaFRpdGxlO1xuXG4gICAgdGhpcy5kaXNjbGFpbWVyR3JvdXAgPSB7XG4gICAgICB0aXRsZTogdGhpcy5saXRlcmFscy5tb2RhbERpc2NsYWltZXJHcm91cFRpdGxlLFxuICAgICAgZGlzY2xhaW1lcnM6IFtdXG4gICAgfTtcblxuICAgIHRoaXMucHJpbWFyeUFjdGlvbkFkdmFuY2VkRmlsdGVyID0ge1xuICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGVzdHJveUR5bmFtaWNGb3JtKCk7XG4gICAgICAgIHRoaXMuaXNBZHZhbmNlZEZpbHRlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNyZWF0ZURpc2NsYWltZXIoKTtcbiAgICAgIH0sXG4gICAgICBsYWJlbDogdGhpcy5saXRlcmFscy5tb2RhbEFkdmFuY2VkU2VhcmNoUHJpbWFyeUFjdGlvbkxhYmVsXG4gICAgfTtcblxuICAgIHRoaXMuc2Vjb25kYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIgPSB7XG4gICAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgICAgdGhpcy5kZXN0cm95RHluYW1pY0Zvcm0oKTtcbiAgICAgICAgdGhpcy5pc0FkdmFuY2VkRmlsdGVyID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgbGFiZWw6IHRoaXMubGl0ZXJhbHMubW9kYWxBZHZhbmNlZFNlYXJjaFNlY29uZGFyeUFjdGlvbkxhYmVsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWR2YW5jZWRGaWx0ZXJzKGFkdmFuY2VkUGFyYW1zOiBhbnkpIHtcbiAgICBpZiAoYWR2YW5jZWRQYXJhbXMgJiYgYWR2YW5jZWRQYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmlsdGVyczogT2JqZWN0ID0ge307XG4gICAgICBsZXQgdmFsaWRhdGVkQWR2YWNlbmRGaWx0ZXJzOiBhbnk7XG5cbiAgICAgIGFkdmFuY2VkUGFyYW1zLmZvckVhY2goKGZpbHRlcjogYW55KSA9PiB7XG4gICAgICAgIGZpbHRlcnNbZmlsdGVyLnByb3BlcnR5XSA9IGZpbHRlci52YWx1ZSBpbnN0YW5jZW9mIEFycmF5ID8gZmlsdGVyLnZhbHVlLmpvaW4oKSA6IGZpbHRlci52YWx1ZTtcblxuICAgICAgICB2YWxpZGF0ZWRBZHZhY2VuZEZpbHRlcnMgPSB7IC4uLnZhbGlkYXRlZEFkdmFjZW5kRmlsdGVycywgLi4uZmlsdGVycyB9O1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB2YWxpZGF0ZWRBZHZhY2VuZEZpbHRlcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsdGVyZWRJdGVtcyhmaWx0ZXI6IHN0cmluZyk6IE9ic2VydmFibGU8UG9Mb29rdXBSZXNwb25zZUFwaT4ge1xuICAgIGNvbnN0IGZpbHRlcmVkUGFyYW1zOiBQb0xvb2t1cEZpbHRlcmVkSXRlbXNQYXJhbXMgPSB0aGlzLmdldEZpbHRlcmVkUGFyYW1zKGZpbHRlcik7XG5cbiAgICByZXR1cm4gdGhpcy5maWx0ZXJTZXJ2aWNlLmdldEZpbHRlcmVkSXRlbXMoZmlsdGVyZWRQYXJhbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWx0ZXJlZFBhcmFtcyhmaWx0ZXI6IHN0cmluZykge1xuICAgIGNvbnN0IHsgcGFnZSwgcGFnZVNpemUsIGZpbHRlclBhcmFtcywgc29ydCB9ID0gdGhpcztcblxuICAgIGNvbnN0IGZpbHRlcmVkUGFyYW1zID0ge307XG4gICAgY29uc3Qgb3JkZXIgPSB0aGlzLmdldE9yZGVyUGFyYW0oc29ydCk7XG4gICAgY29uc3QgYWR2YW5jZWRGaWx0ZXJzID0gdGhpcy5nZXRBZHZhbmNlZEZpbHRlcnModGhpcy5kaXNjbGFpbWVyR3JvdXAuZGlzY2xhaW1lcnMpO1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgZmlsdGVyLCBwYWdlLCBwYWdlU2l6ZSwgb3JkZXIsIGZpbHRlclBhcmFtcywgYWR2YW5jZWRGaWx0ZXJzIH07XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBwYXJhbXMpIHtcbiAgICAgIGlmIChwYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBwYXJhbXNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZpbHRlcmVkUGFyYW1zW2tleV0gPSBwYXJhbXNba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyZWRQYXJhbXM7XG4gIH1cblxuICBwcml2YXRlIGdldE9yZGVyUGFyYW0oc29ydDogUG9UYWJsZUNvbHVtblNvcnQgPSB7IHR5cGU6IHVuZGVmaW5lZCB9KSB7XG4gICAgY29uc3QgeyBjb2x1bW4sIHR5cGUgfSA9IHNvcnQ7XG5cbiAgICBpZiAoIWNvbHVtbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSBQb1RhYmxlQ29sdW1uU29ydFR5cGUuRGVzY2VuZGluZykge1xuICAgICAgcmV0dXJuIGAtJHtjb2x1bW4ucHJvcGVydHl9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7Y29sdW1uLnByb3BlcnR5fWA7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVEYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgIHRoaXMuZmlsdGVyU3Vic2NyaXB0aW9uID0gdGhpcy5nZXRGaWx0ZXJlZEl0ZW1zKCcnKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnNldExvb2t1cFJlc3BvbnNlUHJvcGVydGllcyhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TG9va3VwUmVzcG9uc2VQcm9wZXJ0aWVzKGRhdGE/OiBQb0xvb2t1cFJlc3BvbnNlQXBpKSB7XG4gICAgdGhpcy5pdGVtcyA9IGRhdGE/Lml0ZW1zID8/IFtdO1xuICAgIHRoaXMuaGFzTmV4dCA9IGRhdGE/Lmhhc05leHQgPz8gZmFsc2U7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnNldERpc2NsYWltZXJzSXRlbXMoKTtcbiAgICB0aGlzLnNldFNlbGVjdGVkSXRlbXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFibGVMaXRlcmFscygpIHtcbiAgICB0aGlzLnRhYmxlTGl0ZXJhbHMgPSB7XG4gICAgICAnbm9Db2x1bW5zJzogdGhpcy5saXRlcmFscy5tb2RhbFRhYmxlTm9Db2x1bW5zLFxuICAgICAgJ25vRGF0YSc6IHRoaXMubGl0ZXJhbHMubW9kYWxUYWJsZU5vRGF0YSxcbiAgICAgICdsb2FkaW5nRGF0YSc6IHRoaXMubGl0ZXJhbHMubW9kYWxUYWJsZUxvYWRpbmdEYXRhLFxuICAgICAgJ2xvYWRNb3JlRGF0YSc6IHRoaXMubGl0ZXJhbHMubW9kYWxUYWJsZUxvYWRNb3JlRGF0YVxuICAgIH07XG4gIH1cblxuICAvLyBNw6l0b2RvIHJlc3BvbnPDoXZlbCBwb3IgYWJyaXIgYSBtb2RhbCBkZSBidXNjYSBkYXMgaW5mb3JtYcOnw7Vlcy5cbiAgYWJzdHJhY3Qgb3Blbk1vZGFsKCk6IHZvaWQ7XG5cbiAgLy8gTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIGRlc3RydWlyIG8gZHluYW1pY0Zvcm1cbiAgYWJzdHJhY3QgZGVzdHJveUR5bmFtaWNGb3JtKCk6IHZvaWQ7XG59XG4iXX0=
|
|
394
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9va3VwLW1vZGFsLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLWxvb2t1cC9wby1sb29rdXAtbW9kYWwvcG8tbG9va3VwLW1vZGFsLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBNEIsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUV4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUV0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQVduRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBRTFFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLEVBQUUsRUFBb0I7UUFDcEIsdUJBQXVCLEVBQUUsUUFBUTtRQUNqQyx5QkFBeUIsRUFBRSxRQUFRO1FBQ25DLGdCQUFnQixFQUFFLFFBQVE7UUFDMUIsVUFBVSxFQUFFLGlCQUFpQjtRQUM3QixtQkFBbUIsRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsU0FBUztR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QUFyQyxLQUFLO21CQUFDLGlCQUFpQjtZQUdvQixjQUFjO2tCQUF6RCxLQUFLO21CQUFDLG1CQUFtQjtZQUdXLFFBQVE7a0JBQTVDLEtBQUs7bUJBQUMsWUFBWTtZQUdPLEtBQUs7a0JBQTlCLE1BQU07bUJBQUMsZ0JBQWdCO1lBR0csYUFBYTtrQkFBdkMsS0FBSzttQkFBQyxrQkFBa0I7WUFHRCxVQUFVO2tCQUFqQyxLQUFLO21CQUFDLGVBQWU7WUFTRSxVQUFVO2tCQUFqQyxLQUFLO21CQUFDLGVBQWU7WUEwREcsUUFBUTtrQkFBaEMsS0FBSzttQkFBQyxZQUFZO1lBdUJHLEtBQUs7a0JBQTFCLEtBQUs7bUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgRGlyZWN0aXZlLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IElucHV0Qm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMnO1xuXG5pbXBvcnQgeyBpc1R5cGVvZiB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2UuY29uc3RhbnQnO1xuaW1wb3J0IHsgUG9Nb2RhbEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcG8tbW9kYWwnO1xuaW1wb3J0IHsgUG9Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcG8tbW9kYWwvcG8tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW5Tb3J0IH0gZnJvbSAnLi4vLi4vLi4vcG8tdGFibGUvaW50ZXJmYWNlcy9wby10YWJsZS1jb2x1bW4tc29ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UYWJsZUNvbHVtblNvcnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vcG8tdGFibGUnO1xuaW1wb3J0IHsgcG9UYWJsZUxpdGVyYWxzRGVmYXVsdCB9IGZyb20gJy4uLy4uLy4uL3BvLXRhYmxlL3BvLXRhYmxlLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2Uuc2VydmljZSc7XG5cbmltcG9ydCB7IFBvTG9va3VwQ29sdW1uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1sb29rdXAtY29sdW1uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0xvb2t1cEZpbHRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG8tbG9va3VwLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9Mb29rdXBGaWx0ZXJlZEl0ZW1zUGFyYW1zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1sb29rdXAtZmlsdGVyZWQtaXRlbXMtcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0xvb2t1cExpdGVyYWxzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1sb29rdXAtbGl0ZXJhbHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTG9va3VwUmVzcG9uc2VBcGkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLWxvb2t1cC1yZXNwb25zZS1hcGkuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvRGlzY2xhaW1lciB9IGZyb20gJy4vLi4vLi4vLi4vcG8tZGlzY2xhaW1lci9wby1kaXNjbGFpbWVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0Rpc2NsYWltZXJHcm91cCB9IGZyb20gJy4vLi4vLi4vLi4vcG8tZGlzY2xhaW1lci1ncm91cC9wby1kaXNjbGFpbWVyLWdyb3VwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0xvb2t1cEFkdmFuY2VkRmlsdGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1sb29rdXAtYWR2YW5jZWQtZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi8uLi9wby10YWJsZS9wby10YWJsZS5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgcG9Mb29rdXBMaXRlcmFsc0RlZmF1bHQgPSB7XG4gIGVuOiA8UG9Mb29rdXBMaXRlcmFscz57XG4gICAgbW9kYWxQcmltYXJ5QWN0aW9uTGFiZWw6ICdTZWxlY3QnLFxuICAgIG1vZGFsU2Vjb25kYXJ5QWN0aW9uTGFiZWw6ICdDYW5jZWwnLFxuICAgIG1vZGFsUGxhY2Vob2xkZXI6ICdTZWFyY2gnLFxuICAgIG1vZGFsVGl0bGU6ICdTZWxlY3QgYSByZWNvcmQnLFxuICAgIG1vZGFsVGFibGVOb0NvbHVtbnM6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQuZW4ubm9Db2x1bW5zLFxuICAgIG1vZGFsVGFibGVOb0RhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQuZW4ubm9EYXRhLFxuICAgIG1vZGFsVGFibGVMb2FkaW5nRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5lbi5sb2FkaW5nRGF0YSxcbiAgICBtb2RhbFRhYmxlTG9hZE1vcmVEYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LmVuLmxvYWRNb3JlRGF0YSxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoOiAnQWR2YW5jZWQgc2VhcmNoJyxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoVGl0bGU6ICdBZHZhbmNlZCBzZWFyY2gnLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hQcmltYXJ5QWN0aW9uTGFiZWw6ICdGaWx0ZXInLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ1JldHVybicsXG4gICAgbW9kYWxEaXNjbGFpbWVyR3JvdXBUaXRsZTogJ1ByZXNlbnRpbmcgcmVzdWx0cyBmaWx0ZXJlZCBieTonXG4gIH0sXG4gIGVzOiA8UG9Mb29rdXBMaXRlcmFscz57XG4gICAgbW9kYWxQcmltYXJ5QWN0aW9uTGFiZWw6ICdTZWxlY2Npb25hcicsXG4gICAgbW9kYWxTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ0NhbmNlbGFyJyxcbiAgICBtb2RhbFBsYWNlaG9sZGVyOiAnQnVzY2FyJyxcbiAgICBtb2RhbFRpdGxlOiAnU2VsZWNjaW9uZSB1biByZWdpc3RybycsXG4gICAgbW9kYWxUYWJsZU5vQ29sdW1uczogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5lcy5ub0NvbHVtbnMsXG4gICAgbW9kYWxUYWJsZU5vRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5lcy5ub0RhdGEsXG4gICAgbW9kYWxUYWJsZUxvYWRpbmdEYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LmVzLmxvYWRpbmdEYXRhLFxuICAgIG1vZGFsVGFibGVMb2FkTW9yZURhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQuZXMubG9hZE1vcmVEYXRhLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2g6ICdCw7pzcXVlZGEgQXZhbnphZGEnLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hUaXRsZTogJ0LDunNxdWVkYSBBdmFuemFkYScsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFByaW1hcnlBY3Rpb25MYWJlbDogJ0ZpbHRyYXInLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ1Z1ZWx2ZScsXG4gICAgbW9kYWxEaXNjbGFpbWVyR3JvdXBUaXRsZTogJ1ByZXNlbnRhciByZXN1bHRhZG9zIGZpbHRyYWRvcyBwb3I6J1xuICB9LFxuICBwdDogPFBvTG9va3VwTGl0ZXJhbHM+e1xuICAgIG1vZGFsUHJpbWFyeUFjdGlvbkxhYmVsOiAnU2VsZWNpb25hcicsXG4gICAgbW9kYWxTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ0NhbmNlbGFyJyxcbiAgICBtb2RhbFBsYWNlaG9sZGVyOiAnUGVzcXVpc2FyJyxcbiAgICBtb2RhbFRpdGxlOiAnU2VsZWNpb25lIHVtIHJlZ2lzdHJvJyxcbiAgICBtb2RhbFRhYmxlTm9Db2x1bW5zOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LnB0Lm5vQ29sdW1ucyxcbiAgICBtb2RhbFRhYmxlTm9EYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LnB0Lm5vRGF0YSxcbiAgICBtb2RhbFRhYmxlTG9hZGluZ0RhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQucHQubG9hZGluZ0RhdGEsXG4gICAgbW9kYWxUYWJsZUxvYWRNb3JlRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5wdC5sb2FkTW9yZURhdGEsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaDogJ0J1c2NhIGF2YW7Dp2FkYScsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFRpdGxlOiAnQnVzY2EgQXZhbsOnYWRhJyxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoUHJpbWFyeUFjdGlvbkxhYmVsOiAnRmlsdHJhcicsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFNlY29uZGFyeUFjdGlvbkxhYmVsOiAnVm9sdGFyJyxcbiAgICBtb2RhbERpc2NsYWltZXJHcm91cFRpdGxlOiAnQXByZXNlbnRhbmRvIHJlc3VsdGFkb3MgZmlsdHJhZG9zIHBvcjonXG4gIH0sXG4gIHJ1OiA8UG9Mb29rdXBMaXRlcmFscz57XG4gICAgbW9kYWxQcmltYXJ5QWN0aW9uTGFiZWw6ICfQstGL0LHQuNGA0LDRgtGMJyxcbiAgICBtb2RhbFNlY29uZGFyeUFjdGlvbkxhYmVsOiAn0L7RgtC80LXQvdC40YLRjCcsXG4gICAgbW9kYWxQbGFjZWhvbGRlcjogJ9C/0L7QuNGB0LonLFxuICAgIG1vZGFsVGl0bGU6ICfQktGL0LHQtdGA0LjRgtC1INC30LDQv9C40YHRjCcsXG4gICAgbW9kYWxUYWJsZU5vQ29sdW1uczogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5ydS5ub0NvbHVtbnMsXG4gICAgbW9kYWxUYWJsZU5vRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5ydS5ub0RhdGEsXG4gICAgbW9kYWxUYWJsZUxvYWRpbmdEYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LnJ1LmxvYWRpbmdEYXRhLFxuICAgIG1vZGFsVGFibGVMb2FkTW9yZURhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQucnUubG9hZE1vcmVEYXRhLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2g6ICfQoNCw0YHRiNC40YDQtdC90L3Ri9C5INC/0L7QuNGB0LonLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hUaXRsZTogJ9Cg0LDRgdGI0LjRgNC10L3QvdGL0Lkg0L/QvtC40YHQuicsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFByaW1hcnlBY3Rpb25MYWJlbDogJ9Ck0LjQu9GM0YLRgCcsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFNlY29uZGFyeUFjdGlvbkxhYmVsOiAn0JLQtdGA0L3QuNGB0YwnLFxuICAgIG1vZGFsRGlzY2xhaW1lckdyb3VwVGl0bGU6ICfQn9GA0LXQtNGB0YLQsNCy0LvQtdC90LjQtSDRgNC10LfRg9C70YzRgtCw0YLQvtCyINC+0YLRhNC40LvRjNGC0YDQvtCy0LDQvdC+INC/0L46J1xuICB9XG59O1xuXG4vKipcbiAqIEBkb2NzUHJpdmF0ZVxuICpcbiAqIENsYXNzZSBiYXNlIGRvIGNvbXBvbmVudGUgUG8gTG9va3VwIE1vZGFsLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb0xvb2t1cE1vZGFsQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgQFZpZXdDaGlsZChQb01vZGFsQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBwb01vZGFsOiBQb01vZGFsQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKFBvVGFibGVDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHBvVGFibGU6IFBvVGFibGVDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIE9iamV0byBjb20gb3MgY2FtcG9zIHF1ZSBzZXLDo28gY3JpYWRvcyBubyBidXNjYSBhdmFuw6dhZGEuXG4gICAqXG4gICAqID4gQ2FzbyBuw6NvIHNlamEgcGFzc2FkbyB1bSBvYmpldG8gb3UgZW50w6NvIGVsZSBlc3RlamEgZW0gYnJhbmNvIG8gbGluayBkZSBidXNjYSBhdmFuw6dhZGEgZmljYXLDoSBlc2NvbmRpZG8uXG4gICAqXG4gICAqIEV4ZW1wbG8gZGUgVVJMIGNvbSBidXNjYSBhdmFuw6dhZGE6IGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC92MS9oZXJvZXM/ZmlsdGVyPSZwYWdlPTEmcGFnZVNpemU9MTBgJm5hbWU9VG9ueSUyMFN0YXJrJm5pY2tuYW1lPUhvbWVtJTIwZGUlMjBGZXJybyZlbWFpbD1pcm5tYW5AbWFydmVsLmNvbWBcbiAgICpcbiAgICogQ2FzbyBhbGd1bSBwYXLDom1ldHJvIHNlamEgdW1hIGxpc3RhLCBhIGNvbmNhdGVuYcOnw6NvIMOpIGZlaXRhIHV0aWxpemFuZG8gdmlyZ3VsYS5cbiAgICogRXhlbXBsbzogaHR0cDovL2xvY2FsaG9zdDozMDAwL3YxL2hlcm9lcz9maWx0ZXI9JnBhZ2U9MSZwYWdlU2l6ZT0xMGAmbmFtZT1Ub255JTIwU3RhcmssUGV0ZXIlMjBQYXJrZXIsR29oYW5gXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ3AtYWR2YW5jZWQtZmlsdGVycycpIGFkdmFuY2VkRmlsdGVyczogQXJyYXk8UG9Mb29rdXBBZHZhbmNlZEZpbHRlcj47XG5cbiAgLyoqXG4gICAqIExpc3RhIGRhcyBjb2x1bmFzIGRhIHRhYmVsYS5cbiAgICogRXNzYSBwcm9wcmllZGFkZSBkZXZlIHJlY2ViZXIgdW0gYXJyYXkgZGUgb2JqZXRvcyBxdWUgaW1wbGVtZW50YW0gYSBpbnRlcmZhY2UgUG9Mb29rdXBDb2x1bW4uXG4gICAqL1xuICBASW5wdXQoJ3AtY29sdW1ucycpIGNvbHVtbnM6IEFycmF5PFBvTG9va3VwQ29sdW1uPjtcblxuICAvKiogTGlzdGEgZGUgaXRlbnMgZGEgdGFiZWxhLiAqL1xuICBASW5wdXQoJ3AtaXRlbXMnKSBpdGVtczogQXJyYXk8YW55PjtcblxuICAvKiogQ2xhc3NlIGRlIHNlcnZpw6dvIGNvbSBhIGltcGxlbWVudGHDp8OjbyBkbyBjbGllbnRlLiAqL1xuICBASW5wdXQoJ3AtZmlsdGVyLXNlcnZpY2UnKSBmaWx0ZXJTZXJ2aWNlOiBQb0xvb2t1cEZpbHRlcjtcblxuICAvKiogQ2xhc3NlIGRlIHNlcnZpw6dvIGNvbSBhIGltcGxlbWVudGHDp8OjbyBkbyBjbGllbnRlLiAqL1xuICBASW5wdXQoJ3AtZmlsdGVyLXBhcmFtcycpIGZpbHRlclBhcmFtczogYW55O1xuXG4gIC8qKiBTZSB2ZXJkYWRlaXJvLCBhdGl2YSBhIGZ1bmNpb25hbGlkYWRlIGRlIHNjcm9sbCBpbmZpbml0byBwYXJhIGEgdGFiZWxhIGV4aWJpZGEgbm8gcmV0b3JubyBkYSBjb25zdWx0YS4gKi9cbiAgQElucHV0KCdwLWluZmluaXRlLXNjcm9sbCcpIEBJbnB1dEJvb2xlYW4oKSBpbmZpbml0ZVNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBTZSB2ZXJkYWRlaXJvLCBhdGl2YSBhIGZ1bmNpb25hbGlkYWRlIGRlIG11bHRpcGxhIHNlbGXDp8Ojby4gKi9cbiAgQElucHV0KCdwLW11bHRpcGxlJykgQElucHV0Qm9vbGVhbigpIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIEV2ZW50byB1dGlsaXphZG8gYW8gc2VsZWNpb25hciB1bSByZWdpc3RybyBkYSB0YWJlbGEuICovXG4gIEBPdXRwdXQoJ3AtY2hhbmdlLW1vZGVsJykgbW9kZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqIENsYXNzZSBkZSBzZXJ2acOnbyBjb20gaXRlbXMgc2VsZWNpb25hZG9zICovXG4gIEBJbnB1dCgncC1zZWxlY3RlZC1pdGVtcycpIHNlbGVjdGVkSXRlbXM6IGFueTtcblxuICAvKiogSW5kaWNhIGEgY29sdW5hIHF1ZSBzZXLDoSB1dGlsaXphZGEgY29tbyBkZXNjcmnDp8OjbyBkbyBjYW1wbyBlIGNvbW8gZmlsdHJvIGRlbnRybyBkYSBqYW5lbGEuICovXG4gIEBJbnB1dCgncC1maWVsZC1sYWJlbCcpIGZpZWxkTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBhIGNvbHVuYSBxdWUgc2Vyw6EgdXRpbGl6YWRhIGNvbW8gdmFsb3IgZG8gY2FtcG8uXG4gICAqXG4gICAqID4gQXRlbsOnw6NvOiBDYXNvIG7Do28gc2VqYSBwYXNzYWRhIG91IHRlbmhhIG8gY29udGXDumRvIGluY29ycmV0bywgbsOjbyBpcsOhIGF0dWFsaXphciBvIG1vZGVsIGRvIGZvcm11bMOhcmlvLlxuICAgKi9cbiAgQElucHV0KCdwLWZpZWxkLXZhbHVlJykgZmllbGRWYWx1ZTogc3RyaW5nO1xuXG4gIGhhc05leHQgPSB0cnVlO1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgcGFnZSA9IDE7XG4gIHBhZ2VTaXplID0gMTA7XG4gIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgdGFibGVMaXRlcmFsczogYW55O1xuXG4gIC8vIFByb3ByaWVkYWRlIGRhIG1vZGFsIGRlIGJ1c2NhIGF2YW7Dp2FkYTpcbiAgYWR2YW5jZWRGaWx0ZXJNb2RhbFRpdGxlID0gJyc7XG4gIGR5bmFtaWNGb3JtVmFsdWUgPSB7fTtcbiAgZGlzY2xhaW1lciE6IFBvRGlzY2xhaW1lcjtcbiAgZGlzY2xhaW1lckdyb3VwITogUG9EaXNjbGFpbWVyR3JvdXA7XG4gIGlzQWR2YW5jZWRGaWx0ZXIgPSBmYWxzZTtcbiAgcHJpbWFyeUFjdGlvbkFkdmFuY2VkRmlsdGVyITogUG9Nb2RhbEFjdGlvbjtcbiAgc2Vjb25kYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIhOiBQb01vZGFsQWN0aW9uO1xuICBzZWxlY3RlZHM6IEFycmF5PGFueT4gPSBbXTtcblxuICBwcm90ZWN0ZWQgc29ydDogUG9UYWJsZUNvbHVtblNvcnQ7XG5cbiAgcHJpdmF0ZSBmaWx0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzZWFyY2hTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzaG93TW9yZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgX2xpdGVyYWxzOiBQb0xvb2t1cExpdGVyYWxzO1xuICBwcml2YXRlIF90aXRsZTogc3RyaW5nO1xuICBwcml2YXRlIGxhbmd1YWdlOiBzdHJpbmcgPSBwb0xvY2FsZURlZmF1bHQ7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgcHJpbWFyeUFjdGlvbjogUG9Nb2RhbEFjdGlvbiA9IHtcbiAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgIGxldCBzZWxlY3RlZHNJdGVtczogQXJyYXk8YW55PiA9IFtdO1xuICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICBpZiAoZWxlbWVudFsnJHNlbGVjdGVkJ10pIHtcbiAgICAgICAgICAgIHNlbGVjdGVkc0l0ZW1zLnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGVjdGVkc0l0ZW1zID0gdGhpcy5zZWxlY3RlZHM7XG4gICAgICB9XG4gICAgICB0aGlzLm1vZGVsLmVtaXQoc2VsZWN0ZWRzSXRlbXMpO1xuICAgICAgdGhpcy5wb01vZGFsLmNsb3NlKCk7XG4gICAgfSxcbiAgICBsYWJlbDogdGhpcy5saXRlcmFscy5tb2RhbFByaW1hcnlBY3Rpb25MYWJlbFxuICB9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gIHNlY29uZGFyeUFjdGlvbjogUG9Nb2RhbEFjdGlvbiA9IHtcbiAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgIHRoaXMubW9kZWwuZW1pdChudWxsKTtcbiAgICAgIHRoaXMucG9Nb2RhbC5jbG9zZSgpO1xuICAgIH0sXG4gICAgbGFiZWw6IHRoaXMubGl0ZXJhbHMubW9kYWxTZWNvbmRhcnlBY3Rpb25MYWJlbFxuICB9O1xuXG4gIC8qKiBPYmpldG8gY29tIGFzIGxpdGVyYWlzIHVzYWRhcyBubyBgcG8tbG9va3VwLW1vZGFsYC4gKi9cbiAgQElucHV0KCdwLWxpdGVyYWxzJykgc2V0IGxpdGVyYWxzKHZhbHVlOiBQb0xvb2t1cExpdGVyYWxzKSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmICEodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgIHRoaXMuX2xpdGVyYWxzID0ge1xuICAgICAgICAuLi5wb0xvb2t1cExpdGVyYWxzRGVmYXVsdFtwb0xvY2FsZURlZmF1bHRdLFxuICAgICAgICAuLi5wb0xvb2t1cExpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXSxcbiAgICAgICAgLi4udmFsdWVcbiAgICAgIH07XG4gICAgICBpZiAodmFsdWUubW9kYWxUaXRsZSkge1xuICAgICAgICB0aGlzLnRpdGxlID0gdGhpcy5saXRlcmFscy5tb2RhbFRpdGxlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXRlcmFscyA9IHBvTG9va3VwTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICAgIH1cbiAgICB0aGlzLnByaW1hcnlBY3Rpb24ubGFiZWwgPSB0aGlzLmxpdGVyYWxzLm1vZGFsUHJpbWFyeUFjdGlvbkxhYmVsO1xuICAgIHRoaXMuc2Vjb25kYXJ5QWN0aW9uLmxhYmVsID0gdGhpcy5saXRlcmFscy5tb2RhbFNlY29uZGFyeUFjdGlvbkxhYmVsO1xuICAgIHRoaXMuc2V0VGFibGVMaXRlcmFscygpO1xuICB9XG5cbiAgZ2V0IGxpdGVyYWxzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXRlcmFscyB8fCBwb0xvb2t1cExpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXTtcbiAgfVxuXG4gIC8qKiBUw610dWxvIGRhIG1vZGFsLiAqL1xuICBASW5wdXQoJ3AtdGl0bGUnKSBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3RpdGxlID0gaXNUeXBlb2YodmFsdWUsICdzdHJpbmcnKSA/IHZhbHVlIDogdGhpcy5saXRlcmFscy5tb2RhbFRpdGxlO1xuICB9XG5cbiAgZ2V0IHRpdGxlKCkge1xuICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2UsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZmlsdGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNob3dNb3JlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNob3dNb3JlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXRBZHZhbmNlZEZpbHRlck1vZGFsUHJvcGVydGllcygpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcbiAgICB0aGlzLnNldFRhYmxlTGl0ZXJhbHMoKTtcbiAgfVxuXG4gIGNyZWF0ZURpc2NsYWltZXIoKSB7XG4gICAgdGhpcy5kaXNjbGFpbWVyR3JvdXAuZGlzY2xhaW1lcnMgPSBbXTtcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmR5bmFtaWNGb3JtVmFsdWUpKSB7XG4gICAgICB0aGlzLmFkZERpc2NsYWltZXIodmFsdWUsIGtleSk7XG4gICAgfVxuXG4gICAgaWYgKCFPYmplY3QudmFsdWVzKHRoaXMuZHluYW1pY0Zvcm1WYWx1ZSkuc29tZSh2ID0+IHYgIT09IG51bGwgJiYgdHlwZW9mIHYgIT09ICd1bmRlZmluZWQnKSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIGFkZERpc2NsYWltZXIodmFsdWU6IGFueSwgcHJvcGVydHk6IHN0cmluZykge1xuICAgIHRoaXMuZGlzY2xhaW1lciA9IDxhbnk+eyBwcm9wZXJ0eTogcHJvcGVydHkgfTtcbiAgICB0aGlzLmRpc2NsYWltZXIudmFsdWUgPSB2YWx1ZTtcblxuICAgIHRoaXMuZGlzY2xhaW1lckdyb3VwLmRpc2NsYWltZXJzID0gWy4uLnRoaXMuZGlzY2xhaW1lckdyb3VwLmRpc2NsYWltZXJzLCB0aGlzLmRpc2NsYWltZXJdO1xuICB9XG5cbiAgb25DaGFuZ2VEaXNjbGFpbWVyR3JvdXAoKSB7XG4gICAgaWYgKCF0aGlzLnNlYXJjaFZhbHVlKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG5cbiAgICAgIHRoaXMuc2VhcmNoRmlsdGVyZWRJdGVtcygpO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2UgPSAxO1xuXG4gICAgaWYgKHRoaXMuc2VhcmNoVmFsdWUpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuZGlzY2xhaW1lckdyb3VwLmRpc2NsYWltZXJzID0gW107XG5cbiAgICAgIHRoaXMuc2VhcmNoRmlsdGVyZWRJdGVtcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgc2VhcmNoRmlsdGVyZWRJdGVtcygpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0RmlsdGVyZWRJdGVtcyh0aGlzLnNlYXJjaFZhbHVlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0TG9va3VwUmVzcG9uc2VQcm9wZXJ0aWVzKCk7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKGRhdGE6IFBvTG9va3VwUmVzcG9uc2VBcGkpID0+IHRoaXMuc2V0TG9va3VwUmVzcG9uc2VQcm9wZXJ0aWVzKGRhdGEpLFxuICAgICAgICAoKSA9PiB7fVxuICAgICAgKTtcbiAgfVxuXG4gIHNob3dNb3JlRXZlbnQoKSB7XG4gICAgdGhpcy5wYWdlKys7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5zaG93TW9yZVN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0RmlsdGVyZWRJdGVtcyh0aGlzLnNlYXJjaFZhbHVlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuaGFzTmV4dCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKGRhdGE6IFBvTG9va3VwUmVzcG9uc2VBcGkpID0+IHtcbiAgICAgICAgICB0aGlzLml0ZW1zID0gWy4uLnRoaXMuaXRlbXMsIC4uLmRhdGEuaXRlbXNdO1xuICAgICAgICAgIHRoaXMuaGFzTmV4dCA9IGRhdGEuaGFzTmV4dDtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICB9LFxuICAgICAgICAoKSA9PiB7fVxuICAgICAgKTtcbiAgfVxuXG4gIC8vTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIHNlbGVjaW9uYXIgYXMgbGluaGFzIHF1YW5kbyBhYnJlIG8gbW9kYWwuXG4gIHNldFNlbGVjdGVkSXRlbXMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZHMuZm9yRWFjaChzZWxlY3RlZEl0ZW0gPT5cbiAgICAgIHRoaXMucG9UYWJsZS5zZWxlY3RSb3dJdGVtKGl0ZW0gPT4gaXRlbVt0aGlzLmZpZWxkVmFsdWVdID09PSBzZWxlY3RlZEl0ZW0udmFsdWUpXG4gICAgKTtcbiAgfVxuXG4gIC8vTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIGNyaWFyIG9zIGRpc2NsYWltZXJzIHF1YW5kbyBhYnJlIG8gbW9kYWwuXG4gIHNldERpc2NsYWltZXJzSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcyAmJiAhQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkSXRlbXMpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkcyA9IFt7IHZhbHVlOiB0aGlzLnNlbGVjdGVkSXRlbXMgfV07XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcyAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkcyA9IFsuLi50aGlzLnNlbGVjdGVkSXRlbXNdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0QWR2YW5jZWRGaWx0ZXJNb2RhbFByb3BlcnRpZXMoKSB7XG4gICAgdGhpcy5hZHZhbmNlZEZpbHRlck1vZGFsVGl0bGUgPSB0aGlzLmxpdGVyYWxzLm1vZGFsQWR2YW5jZWRTZWFyY2hUaXRsZTtcblxuICAgIHRoaXMuZGlzY2xhaW1lckdyb3VwID0ge1xuICAgICAgdGl0bGU6IHRoaXMubGl0ZXJhbHMubW9kYWxEaXNjbGFpbWVyR3JvdXBUaXRsZSxcbiAgICAgIGRpc2NsYWltZXJzOiBbXVxuICAgIH07XG5cbiAgICB0aGlzLnByaW1hcnlBY3Rpb25BZHZhbmNlZEZpbHRlciA9IHtcbiAgICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgICB0aGlzLmRlc3Ryb3lEeW5hbWljRm9ybSgpO1xuICAgICAgICB0aGlzLmlzQWR2YW5jZWRGaWx0ZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jcmVhdGVEaXNjbGFpbWVyKCk7XG4gICAgICB9LFxuICAgICAgbGFiZWw6IHRoaXMubGl0ZXJhbHMubW9kYWxBZHZhbmNlZFNlYXJjaFByaW1hcnlBY3Rpb25MYWJlbFxuICAgIH07XG5cbiAgICB0aGlzLnNlY29uZGFyeUFjdGlvbkFkdmFuY2VkRmlsdGVyID0ge1xuICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGVzdHJveUR5bmFtaWNGb3JtKCk7XG4gICAgICAgIHRoaXMuaXNBZHZhbmNlZEZpbHRlciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGxhYmVsOiB0aGlzLmxpdGVyYWxzLm1vZGFsQWR2YW5jZWRTZWFyY2hTZWNvbmRhcnlBY3Rpb25MYWJlbFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldEFkdmFuY2VkRmlsdGVycyhhZHZhbmNlZFBhcmFtczogYW55KSB7XG4gICAgaWYgKGFkdmFuY2VkUGFyYW1zICYmIGFkdmFuY2VkUGFyYW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbHRlcnM6IE9iamVjdCA9IHt9O1xuICAgICAgbGV0IHZhbGlkYXRlZEFkdmFjZW5kRmlsdGVyczogYW55O1xuXG4gICAgICBhZHZhbmNlZFBhcmFtcy5mb3JFYWNoKChmaWx0ZXI6IGFueSkgPT4ge1xuICAgICAgICBmaWx0ZXJzW2ZpbHRlci5wcm9wZXJ0eV0gPSBmaWx0ZXIudmFsdWUgaW5zdGFuY2VvZiBBcnJheSA/IGZpbHRlci52YWx1ZS5qb2luKCkgOiBmaWx0ZXIudmFsdWU7XG5cbiAgICAgICAgdmFsaWRhdGVkQWR2YWNlbmRGaWx0ZXJzID0geyAuLi52YWxpZGF0ZWRBZHZhY2VuZEZpbHRlcnMsIC4uLmZpbHRlcnMgfTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdmFsaWRhdGVkQWR2YWNlbmRGaWx0ZXJzO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbHRlcmVkSXRlbXMoZmlsdGVyOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFBvTG9va3VwUmVzcG9uc2VBcGk+IHtcbiAgICBjb25zdCBmaWx0ZXJlZFBhcmFtczogUG9Mb29rdXBGaWx0ZXJlZEl0ZW1zUGFyYW1zID0gdGhpcy5nZXRGaWx0ZXJlZFBhcmFtcyhmaWx0ZXIpO1xuXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyU2VydmljZS5nZXRGaWx0ZXJlZEl0ZW1zKGZpbHRlcmVkUGFyYW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsdGVyZWRQYXJhbXMoZmlsdGVyOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IHBhZ2UsIHBhZ2VTaXplLCBmaWx0ZXJQYXJhbXMsIHNvcnQgfSA9IHRoaXM7XG5cbiAgICBjb25zdCBmaWx0ZXJlZFBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IG9yZGVyID0gdGhpcy5nZXRPcmRlclBhcmFtKHNvcnQpO1xuICAgIGNvbnN0IGFkdmFuY2VkRmlsdGVycyA9IHRoaXMuZ2V0QWR2YW5jZWRGaWx0ZXJzKHRoaXMuZGlzY2xhaW1lckdyb3VwLmRpc2NsYWltZXJzKTtcbiAgICBjb25zdCBwYXJhbXMgPSB7IGZpbHRlciwgcGFnZSwgcGFnZVNpemUsIG9yZGVyLCBmaWx0ZXJQYXJhbXMsIGFkdmFuY2VkRmlsdGVycyB9O1xuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcGFyYW1zKSB7XG4gICAgICBpZiAocGFyYW1zLmhhc093blByb3BlcnR5KGtleSkgJiYgcGFyYW1zW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmaWx0ZXJlZFBhcmFtc1trZXldID0gcGFyYW1zW2tleV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlcmVkUGFyYW1zO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcmRlclBhcmFtKHNvcnQ6IFBvVGFibGVDb2x1bW5Tb3J0ID0geyB0eXBlOiB1bmRlZmluZWQgfSkge1xuICAgIGNvbnN0IHsgY29sdW1uLCB0eXBlIH0gPSBzb3J0O1xuXG4gICAgaWYgKCFjb2x1bW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gUG9UYWJsZUNvbHVtblNvcnRUeXBlLkRlc2NlbmRpbmcpIHtcbiAgICAgIHJldHVybiBgLSR7Y29sdW1uLnByb3BlcnR5fWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke2NvbHVtbi5wcm9wZXJ0eX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICB0aGlzLmZpbHRlclN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0RmlsdGVyZWRJdGVtcygnJykuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5zZXRMb29rdXBSZXNwb25zZVByb3BlcnRpZXMoZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldExvb2t1cFJlc3BvbnNlUHJvcGVydGllcyhkYXRhPzogUG9Mb29rdXBSZXNwb25zZUFwaSkge1xuICAgIHRoaXMuaXRlbXMgPSBkYXRhPy5pdGVtcyA/PyBbXTtcbiAgICB0aGlzLmhhc05leHQgPSBkYXRhPy5oYXNOZXh0ID8/IGZhbHNlO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5zZXREaXNjbGFpbWVyc0l0ZW1zKCk7XG4gICAgdGhpcy5zZXRTZWxlY3RlZEl0ZW1zKCk7XG4gIH1cblxuICBwcml2YXRlIHNldFRhYmxlTGl0ZXJhbHMoKSB7XG4gICAgdGhpcy50YWJsZUxpdGVyYWxzID0ge1xuICAgICAgJ25vQ29sdW1ucyc6IHRoaXMubGl0ZXJhbHMubW9kYWxUYWJsZU5vQ29sdW1ucyxcbiAgICAgICdub0RhdGEnOiB0aGlzLmxpdGVyYWxzLm1vZGFsVGFibGVOb0RhdGEsXG4gICAgICAnbG9hZGluZ0RhdGEnOiB0aGlzLmxpdGVyYWxzLm1vZGFsVGFibGVMb2FkaW5nRGF0YSxcbiAgICAgICdsb2FkTW9yZURhdGEnOiB0aGlzLmxpdGVyYWxzLm1vZGFsVGFibGVMb2FkTW9yZURhdGFcbiAgICB9O1xuICB9XG5cbiAgLy8gTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIGFicmlyIGEgbW9kYWwgZGUgYnVzY2EgZGFzIGluZm9ybWHDp8O1ZXMuXG4gIGFic3RyYWN0IG9wZW5Nb2RhbCgpOiB2b2lkO1xuXG4gIC8vIE3DqXRvZG8gcmVzcG9uc8OhdmVsIHBvciBkZXN0cnVpciBvIGR5bmFtaWNGb3JtXG4gIGFic3RyYWN0IGRlc3Ryb3lEeW5hbWljRm9ybSgpOiB2b2lkO1xufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ElementRef, forwardRef, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, ElementRef, forwardRef, ViewChild, ChangeDetectionStrategy } from '@angular/core';
|
|
2
2
|
import { NgControl, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { PoLookupBaseComponent } from './po-lookup-base.component';
|
|
4
4
|
import { PoLookupFilterService } from './services/po-lookup-filter.service';
|
|
@@ -169,10 +169,11 @@ const providers = [
|
|
|
169
169
|
* </example>
|
|
170
170
|
*/
|
|
171
171
|
export class PoLookupComponent extends PoLookupBaseComponent {
|
|
172
|
-
constructor(renderer, poLookupFilterService, poLookupModalService, injector) {
|
|
172
|
+
constructor(renderer, poLookupFilterService, poLookupModalService, cd, injector) {
|
|
173
173
|
super(poLookupFilterService, injector);
|
|
174
174
|
this.renderer = renderer;
|
|
175
175
|
this.poLookupModalService = poLookupModalService;
|
|
176
|
+
this.cd = cd;
|
|
176
177
|
this.initialized = false;
|
|
177
178
|
this.visibleElement = false;
|
|
178
179
|
this.disclaimers = [];
|
|
@@ -197,6 +198,7 @@ export class PoLookupComponent extends PoLookupBaseComponent {
|
|
|
197
198
|
this.debounceResize();
|
|
198
199
|
this.visibleElement = true;
|
|
199
200
|
}
|
|
201
|
+
this.cd.markForCheck();
|
|
200
202
|
}
|
|
201
203
|
ngOnDestroy() {
|
|
202
204
|
if (this.modalSubscription) {
|
|
@@ -275,6 +277,7 @@ export class PoLookupComponent extends PoLookupBaseComponent {
|
|
|
275
277
|
...selectedOption
|
|
276
278
|
}));
|
|
277
279
|
this.visibleDisclaimers = [...this.disclaimers];
|
|
280
|
+
this.cd.markForCheck();
|
|
278
281
|
}
|
|
279
282
|
setViewValue(value, object) {
|
|
280
283
|
if (this.inputEl && this.fieldFormat) {
|
|
@@ -283,6 +286,7 @@ export class PoLookupComponent extends PoLookupBaseComponent {
|
|
|
283
286
|
else if (this.inputEl) {
|
|
284
287
|
this.inputEl.nativeElement.value = this.valueToModel || this.valueToModel === 0 ? value : '';
|
|
285
288
|
}
|
|
289
|
+
this.cd.markForCheck();
|
|
286
290
|
}
|
|
287
291
|
getViewValue() {
|
|
288
292
|
return this.inputEl.nativeElement.value;
|
|
@@ -405,7 +409,7 @@ export class PoLookupComponent extends PoLookupBaseComponent {
|
|
|
405
409
|
});
|
|
406
410
|
}
|
|
407
411
|
}
|
|
408
|
-
PoLookupComponent.ɵfac = function PoLookupComponent_Factory(t) { return new (t || PoLookupComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1.PoLookupFilterService), i0.ɵɵdirectiveInject(i2.PoLookupModalService), i0.ɵɵdirectiveInject(i0.Injector)); };
|
|
412
|
+
PoLookupComponent.ɵfac = function PoLookupComponent_Factory(t) { return new (t || PoLookupComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1.PoLookupFilterService), i0.ɵɵdirectiveInject(i2.PoLookupModalService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Injector)); };
|
|
409
413
|
PoLookupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoLookupComponent, selectors: [["po-lookup"]], viewQuery: function PoLookupComponent_Query(rf, ctx) { if (rf & 1) {
|
|
410
414
|
i0.ɵɵviewQuery(_c0, 5, ElementRef);
|
|
411
415
|
} if (rf & 2) {
|
|
@@ -422,12 +426,12 @@ PoLookupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoLookupC
|
|
|
422
426
|
i0.ɵɵproperty("p-label", ctx.label)("p-help", ctx.help)("p-optional", !ctx.required && ctx.optional);
|
|
423
427
|
i0.ɵɵadvance(1);
|
|
424
428
|
i0.ɵɵproperty("ngIf", !ctx.disclaimers.length)("ngIfElse", _r1);
|
|
425
|
-
} }, directives: [i3.PoFieldContainerComponent, i4.NgIf, i5.PoFieldContainerBottomComponent, i4.NgClass, i6.PoCleanComponent, i4.NgForOf, i7.PoDisclaimerComponent], encapsulation: 2 });
|
|
429
|
+
} }, directives: [i3.PoFieldContainerComponent, i4.NgIf, i5.PoFieldContainerBottomComponent, i4.NgClass, i6.PoCleanComponent, i4.NgForOf, i7.PoDisclaimerComponent], encapsulation: 2, changeDetection: 0 });
|
|
426
430
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoLookupComponent, [{
|
|
427
431
|
type: Component,
|
|
428
|
-
args: [{ selector: 'po-lookup', providers: providers, template: "<po-field-container [p-label]=\"label\" [p-help]=\"help\" [p-optional]=\"!required && optional\">\n <div class=\"po-field-container-content\" *ngIf=\"!disclaimers.length; else disclaimersTemplate\">\n <input\n #inp\n class=\"po-input\"\n type=\"text\"\n [ngClass]=\"clean && inp.value ? 'po-input-double-icon-right' : 'po-input-icon-right'\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n (blur)=\"searchEvent()\"\n />\n\n <div class=\"po-field-icon-container-right\">\n <po-clean *ngIf=\"clean && !disabled\" [p-element-ref]=\"inputEl\" (p-change-event)=\"cleanModel()\"> </po-clean>\n\n <span\n #iconLookup\n class=\"po-icon po-field-icon po-icon-search\"\n tabindex=\"-1\"\n [class.po-field-icon]=\"!disabled\"\n [class.po-field-icon-disabled]=\"disabled\"\n (click)=\"openLookup()\"\n (focus)=\"inp.focus()\"\n >\n </span>\n </div>\n </div>\n <po-field-container-bottom></po-field-container-bottom>\n</po-field-container>\n\n<ng-template #disclaimersTemplate>\n <div class=\"po-field-container-content\">\n <div\n #inp\n [tabindex]=\"disabled ? -1 : 0\"\n class=\"po-input po-input-icon-right po-lookup-input\"\n [class.po-lookup-input-auto]=\"autoHeight\"\n [class.po-lookup-input-static]=\"!autoHeight\"\n [class.po-lookup-input-disabled]=\"disabled\"\n >\n <span *ngIf=\"placeholder && !disclaimers?.length\" class=\"po-lookup-input-placeholder\">\n {{ placeholder }}\n </span>\n\n <po-disclaimer\n *ngFor=\"let disclaimer of visibleDisclaimers\"\n class=\"po-lookup-input-disclaimer\"\n [p-label]=\"disclaimer.label\"\n [p-value]=\"disclaimer.value\"\n [p-hide-close]=\"disclaimer.value === '' || disabled\"\n [class.po-clickable]=\"disclaimer.value === '' && !disabled\"\n (p-close-action)=\"closeDisclaimer(disclaimer.value)\"\n >\n </po-disclaimer>\n </div>\n\n <div class=\"po-field-icon-container-right\">\n <span\n #iconLookup\n class=\"po-icon po-field-icon po-icon-search\"\n tabindex=\"-1\"\n [class.po-field-icon]=\"!disabled\"\n [class.po-field-icon-disabled]=\"disabled\"\n (click)=\"openLookup()\"\n (focus)=\"inp.focus()\"\n >\n </span>\n </div>\n </div>\n</ng-template>\n" }]
|
|
429
|
-
}], function () { return [{ type: i0.Renderer2 }, { type: i1.PoLookupFilterService }, { type: i2.PoLookupModalService }, { type: i0.Injector }]; }, { inputEl: [{
|
|
432
|
+
args: [{ selector: 'po-lookup', changeDetection: ChangeDetectionStrategy.OnPush, providers: providers, template: "<po-field-container [p-label]=\"label\" [p-help]=\"help\" [p-optional]=\"!required && optional\">\n <div class=\"po-field-container-content\" *ngIf=\"!disclaimers.length; else disclaimersTemplate\">\n <input\n #inp\n class=\"po-input\"\n type=\"text\"\n [ngClass]=\"clean && inp.value ? 'po-input-double-icon-right' : 'po-input-icon-right'\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n (blur)=\"searchEvent()\"\n />\n\n <div class=\"po-field-icon-container-right\">\n <po-clean *ngIf=\"clean && !disabled\" [p-element-ref]=\"inputEl\" (p-change-event)=\"cleanModel()\"> </po-clean>\n\n <span\n #iconLookup\n class=\"po-icon po-field-icon po-icon-search\"\n tabindex=\"-1\"\n [class.po-field-icon]=\"!disabled\"\n [class.po-field-icon-disabled]=\"disabled\"\n (click)=\"openLookup()\"\n (focus)=\"inp.focus()\"\n >\n </span>\n </div>\n </div>\n <po-field-container-bottom></po-field-container-bottom>\n</po-field-container>\n\n<ng-template #disclaimersTemplate>\n <div class=\"po-field-container-content\">\n <div\n #inp\n [tabindex]=\"disabled ? -1 : 0\"\n class=\"po-input po-input-icon-right po-lookup-input\"\n [class.po-lookup-input-auto]=\"autoHeight\"\n [class.po-lookup-input-static]=\"!autoHeight\"\n [class.po-lookup-input-disabled]=\"disabled\"\n >\n <span *ngIf=\"placeholder && !disclaimers?.length\" class=\"po-lookup-input-placeholder\">\n {{ placeholder }}\n </span>\n\n <po-disclaimer\n *ngFor=\"let disclaimer of visibleDisclaimers\"\n class=\"po-lookup-input-disclaimer\"\n [p-label]=\"disclaimer.label\"\n [p-value]=\"disclaimer.value\"\n [p-hide-close]=\"disclaimer.value === '' || disabled\"\n [class.po-clickable]=\"disclaimer.value === '' && !disabled\"\n (p-close-action)=\"closeDisclaimer(disclaimer.value)\"\n >\n </po-disclaimer>\n </div>\n\n <div class=\"po-field-icon-container-right\">\n <span\n #iconLookup\n class=\"po-icon po-field-icon po-icon-search\"\n tabindex=\"-1\"\n [class.po-field-icon]=\"!disabled\"\n [class.po-field-icon-disabled]=\"disabled\"\n (click)=\"openLookup()\"\n (focus)=\"inp.focus()\"\n >\n </span>\n </div>\n </div>\n</ng-template>\n" }]
|
|
433
|
+
}], function () { return [{ type: i0.Renderer2 }, { type: i1.PoLookupFilterService }, { type: i2.PoLookupModalService }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }]; }, { inputEl: [{
|
|
430
434
|
type: ViewChild,
|
|
431
435
|
args: ['inp', { read: ElementRef, static: false }]
|
|
432
436
|
}] }); })();
|
|
433
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1sb29rdXAvcG8tbG9va3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1sb29rdXAvcG8tbG9va3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFLVixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7O0lDRnBFLG9DQUErRjtJQUFoQyw4TEFBa0IsbUJBQVksSUFBQztJQUFFLGlCQUFXOzs7SUFBdEUsOENBQXlCOzs7O0lBZGxFLDhCQUE4RjtJQUM1RixtQ0FVRTtJQURBLDJKQUFRLG9CQUFhLElBQUM7SUFUeEIsaUJBVUU7SUFFRiw4QkFBMkM7SUFDekMsa0ZBQTJHO0lBRTNHLGtDQVFDO0lBRkMsNkpBQVMsb0JBQVksSUFBQywySUFDYixXQUFXLElBREU7SUFHeEIsaUJBQU87SUFDVCxpQkFBTTtJQUNSLGlCQUFNOzs7O0lBdEJGLGVBQXFGO0lBQXJGLDBHQUFxRixxQ0FBQSw2QkFBQSxtQ0FBQSw2QkFBQTtJQVMxRSxlQUF3QjtJQUF4Qix1REFBd0I7SUFNakMsZUFBaUM7SUFBakMsaURBQWlDLDJDQUFBOzs7SUFxQm5DLGdDQUFzRjtJQUNwRixZQUNGO0lBQUEsaUJBQU87OztJQURMLGVBQ0Y7SUFERSxvREFDRjs7OztJQUVBLHlDQVFDO0lBREMsb1JBQWtCLDZDQUFpQyxJQUFDO0lBRXRELGlCQUFnQjs7OztJQUhkLGdGQUEyRDtJQUgzRCw4Q0FBNEIsaUNBQUEsaUVBQUE7Ozs7SUFoQmxDLDhCQUF3QztJQUN0QyxrQ0FPQztJQUNDLG1GQUVPO0lBRVAscUdBU2dCO0lBQ2xCLGlCQUFNO0lBRU4sOEJBQTJDO0lBQ3pDLGtDQVFDO0lBRkMsc0tBQVMsb0JBQVksSUFBQyxxSkFDYixZQUFXLElBREU7SUFHeEIsaUJBQU87SUFDVCxpQkFBTTtJQUNSLGlCQUFNOzs7SUFoQ0YsZUFBeUM7SUFBekMseURBQXlDLDhDQUFBLDZDQUFBO0lBRnpDLG1EQUE4QjtJQU12QixlQUF5QztJQUF6Qyw2R0FBeUM7SUFLdkIsZUFBcUI7SUFBckIsbURBQXFCO0lBZ0I1QyxlQUFpQztJQUFqQyxpREFBaUMsMkNBQUE7O0FENUN6QywwQkFBMEI7QUFDMUIsTUFBTSxTQUFTLEdBQUc7SUFDaEIscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQjtRQUNFLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsMkJBQTJCO1FBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7UUFDaEQsS0FBSyxFQUFFLElBQUk7S0FDWjtJQUNEO1FBQ0UsT0FBTyxFQUFFLGFBQWE7UUFDdEIsMkJBQTJCO1FBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7UUFDaEQsS0FBSyxFQUFFLElBQUk7S0FDWjtJQUNEO1FBQ0UsT0FBTyxFQUFFLFNBQVM7UUFDbEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztRQUNoRCxLQUFLLEVBQUUsS0FBSztLQUNiO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdERztBQU1ILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxxQkFBcUI7SUFpQjFELFlBQ1UsUUFBbUIsRUFDM0IscUJBQTRDLEVBQ3BDLG9CQUEwQyxFQUNsRCxRQUFrQjtRQUVsQixLQUFLLENBQUMscUJBQXFCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFML0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUVuQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBakJwRCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQix1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFHaEIsNEJBQXVCLEdBQVksSUFBSSxDQUFDO0lBYWhELENBQUM7SUFYRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVDLENBQUM7SUFXRCxlQUFlO1FBQ2IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDZDtRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDO1FBQzNELGlHQUFpRztRQUNqRyx3RUFBd0U7UUFDeEUsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO1lBQzVHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO1lBQzdCLE1BQU0sRUFDSixlQUFlLEVBQ2YsT0FBTyxFQUNQLE9BQU8sRUFDUCxZQUFZLEVBQ1osUUFBUSxFQUNSLGNBQWMsRUFDZCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDWCxHQUFHLElBQUksQ0FBQztZQUVULE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBRWhELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUM7Z0JBQ2xDLGVBQWU7Z0JBQ2YsT0FBTztnQkFDUCxPQUFPO2dCQUNQLFlBQVk7Z0JBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixRQUFRO2dCQUNSLGNBQWM7Z0JBQ2QsUUFBUTtnQkFDUixhQUFhO2dCQUNiLFVBQVU7Z0JBQ1YsVUFBVTthQUNYLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxFQUFFO29CQUM5RixJQUFJLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO3dCQUN6RCxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO3dCQUNyQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztxQkFDM0I7b0JBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLENBQUM7YUFDSjtTQUNGO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFO2dCQUN6RCxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzVGO1lBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3pCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLGVBQTJCO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEQsS0FBSyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ3RDLEtBQUssRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUN0QyxHQUFHLGNBQWM7U0FDbEIsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVUsRUFBRSxNQUFXO1FBQ2xDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQzthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDOUY7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7UUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWxDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxLQUFLLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsS0FBSztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDdkQ7UUFFRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUMzQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0IsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDcEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQy9CLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFL0MsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQzFCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFckMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNWLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdkMsR0FBRyxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVwQyxJQUFJLEdBQUcsR0FBRyxVQUFVLEVBQUU7b0JBQ3BCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQztvQkFDckMsTUFBTTtpQkFDUDthQUNGO1lBRUQsSUFBSSxrQkFBa0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxLQUFLLFdBQVcsQ0FBQyxNQUFNLEVBQUU7b0JBQzVCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7b0JBQ3JDLE9BQU87aUJBQ1I7Z0JBRUQsSUFBSSxHQUFHLEdBQUcsbUJBQW1CLEdBQUcsVUFBVSxFQUFFO29CQUMxQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUM3QixNQUFNLEtBQUssR0FBRyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDNUQsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7aUJBQ2xEO3FCQUFNO29CQUNMLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzdCLE1BQU0sS0FBSyxHQUFHLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3hELGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUNsRDthQUNGO1NBQ0Y7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyxZQUFZLENBQUMsY0FBYyxFQUFFLFVBQVU7UUFDN0MsSUFBSSxhQUFhLENBQUM7UUFDbEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzdCLEtBQUssTUFBTSxRQUFRLElBQUksVUFBVSxFQUFFO2dCQUNqQyxJQUFJLGNBQWMsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQzlDLElBQUksQ0FBQyxhQUFhLEVBQUU7d0JBQ2xCLGFBQWEsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBQzFDO3lCQUFNO3dCQUNMLGFBQWEsR0FBRyxhQUFhLEdBQUcsS0FBSyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDbEU7aUJBQ0Y7YUFDRjtTQUNGO1FBRUQsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixhQUFhLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNqRDtRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxjQUFtQjtRQUNyRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxhQUFhLENBQUM7UUFFbEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNuQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3JFO2FBQU07WUFDTCxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNsRDtRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUNsRSxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDbEUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrRkF0U1UsaUJBQWlCO29FQUFqQixpQkFBaUI7K0JBQ0YsVUFBVTs7OzswQ0FIcEMsU0FBUztRQ3RHWCw2Q0FBMkY7UUFDekYsbUVBMkJNO1FBQ04sNENBQXVEO1FBQ3pELGlCQUFxQjtRQUVyQixvSEF1Q2M7OztRQXZFTSxtQ0FBaUIsb0JBQUEsNkNBQUE7UUFDTSxlQUEyQjtRQUEzQiw4Q0FBMkIsaUJBQUE7O3VGRHVHekQsaUJBQWlCO2NBTDdCLFNBQVM7MkJBQ0UsV0FBVyxhQUVyQixTQUFTOzBKQUc4QyxPQUFPO2tCQUE3RCxTQUFTO21CQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERvQ2hlY2ssXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUG9Mb29rdXBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1sb29rdXAtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9Mb29rdXBGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby1sb29rdXAtZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9Mb29rdXBNb2RhbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLWxvb2t1cC1tb2RhbC5zZXJ2aWNlJztcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmNvbnN0IHByb3ZpZGVycyA9IFtcbiAgUG9Mb29rdXBGaWx0ZXJTZXJ2aWNlLFxuICBQb0xvb2t1cE1vZGFsU2VydmljZSxcbiAge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvTG9va3VwQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9LFxuICB7XG4gICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQb0xvb2t1cENvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfSxcbiAge1xuICAgIHByb3ZpZGU6IE5nQ29udHJvbCxcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQb0xvb2t1cENvbXBvbmVudCksXG4gICAgbXVsdGk6IGZhbHNlXG4gIH1cbl07XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvTG9va3VwQmFzZUNvbXBvbmVudFxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIFF1YW5kbyBleGlzdGUgbXVpdG9zIGRhZG9zIG8gcG8tbG9va3VwIHBvciBwYWRyw6NvIHRyYXogYXBlbmFzIDEwIGl0ZW5zIG5hIHRhYmVsYSBlIG9zIGRlbWFpcyBzw6NvIGNhcnJlZ2Fkb3MgcG9yIGRlbWFuZGEgYXRyYXbDqXMgZG9cbiAqIGJvdMOjbyAnQ2FycmVnYXIgbWFpcyByZXN1bHRhZG9zJy4gUGFyYSBxdWUgZnVuY2lvbmUgY29ycmV0YW1lbnRlLCDDqSBpbXBvcnRhbnRlIHF1ZSBvIHNlcnZpw6dvIHNpZ2Egb1xuICogW0d1aWEgZGUgaW1wbGVtZW50YcOnw6NvIGRhcyBBUElzIFRPVFZTXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy9hcGkpLlxuICpcbiAqIEltcG9ydGFudGU6XG4gKlxuICogLSBDYXNvIG8gcG8tbG9va3VwIGNvbnRlbmhhIG8gWyhuZ01vZGVsKV0gc2VtIG8gYXRyaWJ1dG8gbmFtZSwgb2NvcnJlcsOhIHVtIGVycm8gZGUgYW5ndWxhci5cbiAqIEVudMOjbyBzZXLDoSBuZWNlc3PDoXJpbyBpbmZvcm1hciBvIGF0cmlidXRvIG5hbWUgb3UgbyBhdHJpYnV0byBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIuXG4gKiBgYGBcbiAqIDxwby1sb29rdXBcbiAqICAgWyhuZ01vZGVsKV09XCJwZXNzb2Eubm9tZVwiXG4gKiAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIj5cbiAqIDwvcG8tbG9va3VwPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbG9va3VwLWJhc2ljXCIgdGl0bGU9XCJQTyBMb29rdXAgQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1iYXNpYy9zYW1wbGUtcG8tbG9va3VwLWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1iYXNpYy9zYW1wbGUtcG8tbG9va3VwLWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWxvb2t1cC1sYWJzXCIgdGl0bGU9XCJQTyBMb29rdXAgTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWxhYnMvc2FtcGxlLXBvLWxvb2t1cC1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1sYWJzL3NhbXBsZS1wby1sb29rdXAtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1sb29rdXAtaGVyb1wiIHRpdGxlPVwiUE8gTG9va3VwIC0gSGVyb1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWhlcm8vc2FtcGxlLXBvLWxvb2t1cC1oZXJvLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1oZXJvL3NhbXBsZS1wby1sb29rdXAtaGVyby5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1sb29rdXAtaGVyby1yZWFjdGl2ZS1mb3JtXCIgdGl0bGU9XCJQTyBMb29rdXAgLSBIZXJvIFJlYWN0aXZlIEZvcm1cIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1oZXJvLXJlYWN0aXZlLWZvcm0vc2FtcGxlLXBvLWxvb2t1cC1oZXJvLXJlYWN0aXZlLWZvcm0uY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWhlcm8tcmVhY3RpdmUtZm9ybS9zYW1wbGUtcG8tbG9va3VwLWhlcm8tcmVhY3RpdmUtZm9ybS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1sb29rdXAtc3ctZmlsbXNcIiB0aXRsZT1cIlBPIExvb2t1cCAtIFN0YXIgV2FycyBmaWxtc1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLXN3LWZpbG1zL3NhbXBsZS1wby1sb29rdXAtc3ctZmlsbXMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLXN3LWZpbG1zL3NhbXBsZS1wby1sb29rdXAtc3ctZmlsbXMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1zdy1maWxtcy9zYW1wbGUtcG8tbG9va3VwLXN3LWZpbG1zLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1sb29rdXAtbXVsdGlwbGVcIiB0aXRsZT1cIlBPIExvb2t1cCAtIE11bHRpcGxlXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAtbXVsdGlwbGUvc2FtcGxlLXBvLWxvb2t1cC1tdWx0aXBsZS5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAtbXVsdGlwbGUvc2FtcGxlLXBvLWxvb2t1cC1tdWx0aXBsZS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLW11bHRpcGxlL3NhbXBsZS1wby1sb29rdXAtbXVsdGlwbGUuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLWxvb2t1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1sb29rdXAuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnNcbn0pXG5leHBvcnQgY2xhc3MgUG9Mb29rdXBDb21wb25lbnQgZXh0ZW5kcyBQb0xvb2t1cEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgRG9DaGVjayB7XG4gIEBWaWV3Q2hpbGQoJ2lucCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSBpbnB1dEVsOiBFbGVtZW50UmVmO1xuXG4gIGluaXRpYWxpemVkID0gZmFsc2U7XG4gIHRpbWVvdXRSZXNpemU7XG4gIHZpc2libGVFbGVtZW50ID0gZmFsc2U7XG5cbiAgZGlzY2xhaW1lcnMgPSBbXTtcbiAgdmlzaWJsZURpc2NsYWltZXJzID0gW107XG5cbiAgcHJpdmF0ZSBtb2RhbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGlzQ2FsY3VsYXRlVmlzaWJsZUl0ZW1zOiBib29sZWFuID0gdHJ1ZTtcblxuICBnZXQgYXV0b2NvbXBsZXRlKCkge1xuICAgIHJldHVybiB0aGlzLm5vQXV0b2NvbXBsZXRlID8gJ29mZicgOiAnb24nO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHBvTG9va3VwRmlsdGVyU2VydmljZTogUG9Mb29rdXBGaWx0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9Mb29rdXBNb2RhbFNlcnZpY2U6IFBvTG9va3VwTW9kYWxTZXJ2aWNlLFxuICAgIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICBzdXBlcihwb0xvb2t1cEZpbHRlclNlcnZpY2UsIGluamVjdG9yKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgIGlmICh0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGNvbnN0IGlucHV0V2lkdGggPSB0aGlzLmlucHV0RWw/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgLy8gUGVybWl0ZSBxdWUgb3MgZGlzY2xhaW1lcnMgc2VqYW0gY2FsY3VsYWRvcyBuYSBwcmltZWlyYSB2ZXogcXVlIG8gY29tcG9uZW50ZSB0b3JuYS1zZSB2aXPDrXZlbCxcbiAgICAvLyBldml0YW5kbyBjb20gaXNzbywgcHJvYmxlbWFzIGNvbSBUYWJzIG91IERpdnMgcXVlIGluaWNpZW0gZXNjb25kaWRhcy5cbiAgICBpZiAoKGlucHV0V2lkdGggJiYgIXRoaXMudmlzaWJsZUVsZW1lbnQgJiYgdGhpcy5pbml0aWFsaXplZCkgfHwgKGlucHV0V2lkdGggJiYgdGhpcy5pc0NhbGN1bGF0ZVZpc2libGVJdGVtcykpIHtcbiAgICAgIHRoaXMuZGVib3VuY2VSZXNpemUoKTtcbiAgICAgIHRoaXMudmlzaWJsZUVsZW1lbnQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLm1vZGFsU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLm1vZGFsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmluaXRpYWxpemVMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW7Dp8OjbyBxdWUgYXRyaWJ1aSBmb2NvIGFvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIFBhcmEgdXRpbGl6w6EtbGEgw6kgbmVjZXNzw6FyaW8gdGVyIGEgaW5zdMOibmNpYSBkbyBjb21wb25lbnRlIG5vIERPTSwgcG9kZW5kbyBzZXIgdXRpbGl6YWRvIG8gVmlld0NoaWxkIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgUG9Mb29rdXBDb21wb25lbnQgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG4gICAqXG4gICAqIC4uLlxuICAgKlxuICAgKiBAVmlld0NoaWxkKFBvTG9va3VwQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBsb29rdXA6IFBvTG9va3VwQ29tcG9uZW50O1xuICAgKlxuICAgKiBmb2N1c0xvb2t1cCgpIHtcbiAgICogICB0aGlzLmxvb2t1cC5mb2N1cygpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5Mb29rdXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBbGxvd2VkT3Blbk1vZGFsKCkpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYWR2YW5jZWRGaWx0ZXJzLFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBmaWx0ZXJQYXJhbXMsXG4gICAgICAgIGxpdGVyYWxzLFxuICAgICAgICBpbmZpbml0ZVNjcm9sbCxcbiAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgIGZpZWxkTGFiZWwsXG4gICAgICAgIGZpZWxkVmFsdWVcbiAgICAgIH0gPSB0aGlzO1xuXG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5jaGVja1NlbGVjdGVkSXRlbXMoKTtcblxuICAgICAgdGhpcy5wb0xvb2t1cE1vZGFsU2VydmljZS5vcGVuTW9kYWwoe1xuICAgICAgICBhZHZhbmNlZEZpbHRlcnMsXG4gICAgICAgIHNlcnZpY2UsXG4gICAgICAgIGNvbHVtbnMsXG4gICAgICAgIGZpbHRlclBhcmFtcyxcbiAgICAgICAgdGl0bGU6IHRoaXMubGFiZWwsXG4gICAgICAgIGxpdGVyYWxzLFxuICAgICAgICBpbmZpbml0ZVNjcm9sbCxcbiAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgIHNlbGVjdGVkSXRlbXMsXG4gICAgICAgIGZpZWxkTGFiZWwsXG4gICAgICAgIGZpZWxkVmFsdWVcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIXRoaXMubW9kYWxTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgdGhpcy5tb2RhbFN1YnNjcmlwdGlvbiA9IHRoaXMucG9Mb29rdXBNb2RhbFNlcnZpY2Uuc2VsZWN0VmFsdWVFdmVudC5zdWJzY3JpYmUoc2VsZWN0ZWRPcHRpb25zID0+IHtcbiAgICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDEgfHwgdGhpcy5kaXNjbGFpbWVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGlzY2xhaW1lcnMoc2VsZWN0ZWRPcHRpb25zKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5zZWxlY3RNb2RlbChzZWxlY3RlZE9wdGlvbnMpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGVja1NlbGVjdGVkSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGlmICghdGhpcy5kaXNjbGFpbWVycy5sZW5ndGggJiYgdGhpcy52YWx1ZVRvTW9kZWw/Lmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW3sgdmFsdWU6IHRoaXMudmFsdWVUb01vZGVsWzBdLCBsYWJlbDogdGhpcy5vbGRWYWx1ZSwgLi4udGhpcy5zZWxlY3RlZE9wdGlvbnNbMF0gfV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmRpc2NsYWltZXJzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZVRvTW9kZWw7XG4gICAgfVxuICB9XG5cbiAgc2V0RGlzY2xhaW1lcnMoc2VsZWN0ZWRPcHRpb25zOiBBcnJheTxhbnk+KSB7XG4gICAgdGhpcy5kaXNjbGFpbWVycyA9IHNlbGVjdGVkT3B0aW9ucy5tYXAoc2VsZWN0ZWRPcHRpb24gPT4gKHtcbiAgICAgIHZhbHVlOiBzZWxlY3RlZE9wdGlvblt0aGlzLmZpZWxkVmFsdWVdLFxuICAgICAgbGFiZWw6IHNlbGVjdGVkT3B0aW9uW3RoaXMuZmllbGRMYWJlbF0sXG4gICAgICAuLi5zZWxlY3RlZE9wdGlvblxuICAgIH0pKTtcblxuICAgIHRoaXMudmlzaWJsZURpc2NsYWltZXJzID0gWy4uLnRoaXMuZGlzY2xhaW1lcnNdO1xuICB9XG5cbiAgc2V0Vmlld1ZhbHVlKHZhbHVlOiBhbnksIG9iamVjdDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5wdXRFbCAmJiB0aGlzLmZpZWxkRm9ybWF0KSB7XG4gICAgICB0aGlzLnNldElucHV0VmFsdWVXaXBvaWVsZEZvcm1hdChvYmplY3QpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pbnB1dEVsKSB7XG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWVUb01vZGVsIHx8IHRoaXMudmFsdWVUb01vZGVsID09PSAwID8gdmFsdWUgOiAnJztcbiAgICB9XG4gIH1cblxuICBnZXRWaWV3VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICBzZWFyY2hFdmVudCgpIHtcbiAgICB0aGlzLm9uVG91Y2hlZD8uKCk7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZpZXdWYWx1ZSgpO1xuXG4gICAgaWYgKHRoaXMub2xkVmFsdWU/LnRvU3RyaW5nKCkgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLnNlYXJjaEJ5SWQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlRGlzY2xhaW1lcih2YWx1ZSkge1xuICAgIHRoaXMuZGlzY2xhaW1lcnMgPSB0aGlzLmRpc2NsYWltZXJzLmZpbHRlcihkaXNjbGFpbWVyID0+IGRpc2NsYWltZXIudmFsdWUgIT09IHZhbHVlKTtcbiAgICB0aGlzLnZhbHVlVG9Nb2RlbCA9IHRoaXMudmFsdWVUb01vZGVsLmZpbHRlcihtb2RlbCA9PiBtb2RlbCAhPT0gdmFsdWUpO1xuXG4gICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICB0aGlzLmNhbGxPbkNoYW5nZSh0aGlzLnZhbHVlVG9Nb2RlbC5sZW5ndGggPyB0aGlzLnZhbHVlVG9Nb2RlbCA6IHVuZGVmaW5lZCk7XG4gIH1cblxuICB1cGRhdGVWaXNpYmxlSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuZGlzY2xhaW1lcnMgJiYgdGhpcy5kaXNjbGFpbWVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnZpc2libGVEaXNjbGFpbWVycyA9IFtdLmNvbmNhdCh0aGlzLmRpc2NsYWltZXJzKTtcbiAgICB9XG5cbiAgICB0aGlzLmRlYm91bmNlUmVzaXplKCk7XG5cbiAgICBpZiAoIXRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSB7XG4gICAgICB0aGlzLmlzQ2FsY3VsYXRlVmlzaWJsZUl0ZW1zID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBkZWJvdW5jZVJlc2l6ZSgpIHtcbiAgICBpZiAoIXRoaXMuYXV0b0hlaWdodCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFJlc2l6ZSk7XG4gICAgICB0aGlzLnRpbWVvdXRSZXNpemUgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICAgIH0sIDIwMCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0SW5wdXRXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSA0MDtcbiAgfVxuXG4gIGdldERpc2NsYWltZXJzV2lkdGgoKSB7XG4gICAgY29uc3QgZGlzY2xhaW1lcnMgPSB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwby1kaXNjbGFpbWVyJyk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZGlzY2xhaW1lcnMpLm1hcChkaXNjbGFpbWVyID0+IGRpc2NsYWltZXJbJ29mZnNldFdpZHRoJ10pO1xuICB9XG5cbiAgY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCkge1xuICAgIGNvbnN0IGRpc2NsYWltZXJzV2lkdGggPSB0aGlzLmdldERpc2NsYWltZXJzV2lkdGgoKTtcbiAgICBjb25zdCBpbnB1dFdpZHRoID0gdGhpcy5nZXRJbnB1dFdpZHRoKCk7XG4gICAgY29uc3QgZXh0cmFEaXNjbGFpbWVyU2l6ZSA9IDM4O1xuICAgIGNvbnN0IGRpc2NsYWltZXJzVmlzaWJsZSA9IGRpc2NsYWltZXJzV2lkdGhbMF07XG5cbiAgICBjb25zdCBuZXdEaXNjbGFpbWVycyA9IFtdO1xuICAgIGNvbnN0IGRpc2NsYWltZXJzID0gdGhpcy5kaXNjbGFpbWVycztcblxuICAgIGlmIChpbnB1dFdpZHRoID4gMCkge1xuICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgZGlzY2xhaW1lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgc3VtICs9IGRpc2NsYWltZXJzV2lkdGhbaV07XG4gICAgICAgIG5ld0Rpc2NsYWltZXJzLnB1c2goZGlzY2xhaW1lcnNbaV0pO1xuXG4gICAgICAgIGlmIChzdW0gPiBpbnB1dFdpZHRoKSB7XG4gICAgICAgICAgc3VtIC09IGRpc2NsYWltZXJzV2lkdGhbaV07XG4gICAgICAgICAgdGhpcy5pc0NhbGN1bGF0ZVZpc2libGVJdGVtcyA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChkaXNjbGFpbWVyc1Zpc2libGUgfHwgIWRpc2NsYWltZXJzLmxlbmd0aCkge1xuICAgICAgICBpZiAoaSA9PT0gZGlzY2xhaW1lcnMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5pc0NhbGN1bGF0ZVZpc2libGVJdGVtcyA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdW0gKyBleHRyYURpc2NsYWltZXJTaXplID4gaW5wdXRXaWR0aCkge1xuICAgICAgICAgIG5ld0Rpc2NsYWltZXJzLnNwbGljZSgtMiwgMik7XG4gICAgICAgICAgY29uc3QgbGFiZWwgPSAnKycgKyAoZGlzY2xhaW1lcnMubGVuZ3RoICsgMSAtIGkpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgbmV3RGlzY2xhaW1lcnMucHVzaCh7IHZhbHVlOiAnJywgbGFiZWw6IGxhYmVsIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld0Rpc2NsYWltZXJzLnNwbGljZSgtMSwgMSk7XG4gICAgICAgICAgY29uc3QgbGFiZWwgPSAnKycgKyAoZGlzY2xhaW1lcnMubGVuZ3RoIC0gaSkudG9TdHJpbmcoKTtcbiAgICAgICAgICBuZXdEaXNjbGFpbWVycy5wdXNoKHsgdmFsdWU6ICcnLCBsYWJlbDogbGFiZWwgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnZpc2libGVEaXNjbGFpbWVycyA9IFsuLi5uZXdEaXNjbGFpbWVyc107XG4gIH1cblxuICBwcml2YXRlIGlzQWxsb3dlZE9wZW5Nb2RhbCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuc2VydmljZSkge1xuICAgICAgY29uc29sZS53YXJuKCdObyBzZXJ2aWNlIGluZm9ybWVkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhKHRoaXMuc2VydmljZSAmJiAhdGhpcy5kaXNhYmxlZCk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEZpZWxkcyhvYmplY3RTZWxlY3RlZCwgcHJvcGVydGllcykge1xuICAgIGxldCBmb3JtYXRlZEZpZWxkO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BlcnRpZXMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKG9iamVjdFNlbGVjdGVkICYmIG9iamVjdFNlbGVjdGVkW3Byb3BlcnR5XSkge1xuICAgICAgICAgIGlmICghZm9ybWF0ZWRGaWVsZCkge1xuICAgICAgICAgICAgZm9ybWF0ZWRGaWVsZCA9IG9iamVjdFNlbGVjdGVkW3Byb3BlcnR5XTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybWF0ZWRGaWVsZCA9IGZvcm1hdGVkRmllbGQgKyAnIC0gJyArIG9iamVjdFNlbGVjdGVkW3Byb3BlcnR5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWZvcm1hdGVkRmllbGQpIHtcbiAgICAgIGZvcm1hdGVkRmllbGQgPSBvYmplY3RTZWxlY3RlZFt0aGlzLmZpZWxkVmFsdWVdO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0ZWRGaWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5wdXRWYWx1ZVdpcG9pZWxkRm9ybWF0KG9iamVjdFNlbGVjdGVkOiBhbnkpIHtcbiAgICBjb25zdCBpc0VtcHR5ID0gT2JqZWN0LmtleXMob2JqZWN0U2VsZWN0ZWQpLmxlbmd0aCA9PT0gMDtcbiAgICBsZXQgZmllbGRGb3JtYXRlZDtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZmllbGRGb3JtYXQpKSB7XG4gICAgICBmaWVsZEZvcm1hdGVkID0gdGhpcy5mb3JtYXRGaWVsZHMob2JqZWN0U2VsZWN0ZWQsIHRoaXMuZmllbGRGb3JtYXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWVsZEZvcm1hdGVkID0gdGhpcy5maWVsZEZvcm1hdChvYmplY3RTZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgdGhpcy5vbGRWYWx1ZSA9IGlzRW1wdHkgPyAnJyA6IGZpZWxkRm9ybWF0ZWQ7XG4gICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBpc0VtcHR5ID8gJycgOiBmaWVsZEZvcm1hdGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ3Jlc2l6ZScsICgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlVmlzaWJsZUl0ZW1zKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxwby1maWVsZC1jb250YWluZXIgW3AtbGFiZWxdPVwibGFiZWxcIiBbcC1oZWxwXT1cImhlbHBcIiBbcC1vcHRpb25hbF09XCIhcmVxdWlyZWQgJiYgb3B0aW9uYWxcIj5cbiAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1jb250ZW50XCIgKm5nSWY9XCIhZGlzY2xhaW1lcnMubGVuZ3RoOyBlbHNlIGRpc2NsYWltZXJzVGVtcGxhdGVcIj5cbiAgICA8aW5wdXRcbiAgICAgICNpbnBcbiAgICAgIGNsYXNzPVwicG8taW5wdXRcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW25nQ2xhc3NdPVwiY2xlYW4gJiYgaW5wLnZhbHVlID8gJ3BvLWlucHV0LWRvdWJsZS1pY29uLXJpZ2h0JyA6ICdwby1pbnB1dC1pY29uLXJpZ2h0J1wiXG4gICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAoYmx1cik9XCJzZWFyY2hFdmVudCgpXCJcbiAgICAvPlxuXG4gICAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWljb24tY29udGFpbmVyLXJpZ2h0XCI+XG4gICAgICA8cG8tY2xlYW4gKm5nSWY9XCJjbGVhbiAmJiAhZGlzYWJsZWRcIiBbcC1lbGVtZW50LXJlZl09XCJpbnB1dEVsXCIgKHAtY2hhbmdlLWV2ZW50KT1cImNsZWFuTW9kZWwoKVwiPiA8L3BvLWNsZWFuPlxuXG4gICAgICA8c3BhblxuICAgICAgICAjaWNvbkxvb2t1cFxuICAgICAgICBjbGFzcz1cInBvLWljb24gcG8tZmllbGQtaWNvbiBwby1pY29uLXNlYXJjaFwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbY2xhc3MucG8tZmllbGQtaWNvbl09XCIhZGlzYWJsZWRcIlxuICAgICAgICBbY2xhc3MucG8tZmllbGQtaWNvbi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJvcGVuTG9va3VwKClcIlxuICAgICAgICAoZm9jdXMpPVwiaW5wLmZvY3VzKClcIlxuICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20+PC9wby1maWVsZC1jb250YWluZXItYm90dG9tPlxuPC9wby1maWVsZC1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZGlzY2xhaW1lcnNUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1jb250ZW50XCI+XG4gICAgPGRpdlxuICAgICAgI2lucFxuICAgICAgW3RhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiAwXCJcbiAgICAgIGNsYXNzPVwicG8taW5wdXQgcG8taW5wdXQtaWNvbi1yaWdodCBwby1sb29rdXAtaW5wdXRcIlxuICAgICAgW2NsYXNzLnBvLWxvb2t1cC1pbnB1dC1hdXRvXT1cImF1dG9IZWlnaHRcIlxuICAgICAgW2NsYXNzLnBvLWxvb2t1cC1pbnB1dC1zdGF0aWNdPVwiIWF1dG9IZWlnaHRcIlxuICAgICAgW2NsYXNzLnBvLWxvb2t1cC1pbnB1dC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgPlxuICAgICAgPHNwYW4gKm5nSWY9XCJwbGFjZWhvbGRlciAmJiAhZGlzY2xhaW1lcnM/Lmxlbmd0aFwiIGNsYXNzPVwicG8tbG9va3VwLWlucHV0LXBsYWNlaG9sZGVyXCI+XG4gICAgICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxwby1kaXNjbGFpbWVyXG4gICAgICAgICpuZ0Zvcj1cImxldCBkaXNjbGFpbWVyIG9mIHZpc2libGVEaXNjbGFpbWVyc1wiXG4gICAgICAgIGNsYXNzPVwicG8tbG9va3VwLWlucHV0LWRpc2NsYWltZXJcIlxuICAgICAgICBbcC1sYWJlbF09XCJkaXNjbGFpbWVyLmxhYmVsXCJcbiAgICAgICAgW3AtdmFsdWVdPVwiZGlzY2xhaW1lci52YWx1ZVwiXG4gICAgICAgIFtwLWhpZGUtY2xvc2VdPVwiZGlzY2xhaW1lci52YWx1ZSA9PT0gJycgfHwgZGlzYWJsZWRcIlxuICAgICAgICBbY2xhc3MucG8tY2xpY2thYmxlXT1cImRpc2NsYWltZXIudmFsdWUgPT09ICcnICYmICFkaXNhYmxlZFwiXG4gICAgICAgIChwLWNsb3NlLWFjdGlvbik9XCJjbG9zZURpc2NsYWltZXIoZGlzY2xhaW1lci52YWx1ZSlcIlxuICAgICAgPlxuICAgICAgPC9wby1kaXNjbGFpbWVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWljb24tY29udGFpbmVyLXJpZ2h0XCI+XG4gICAgICA8c3BhblxuICAgICAgICAjaWNvbkxvb2t1cFxuICAgICAgICBjbGFzcz1cInBvLWljb24gcG8tZmllbGQtaWNvbiBwby1pY29uLXNlYXJjaFwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbY2xhc3MucG8tZmllbGQtaWNvbl09XCIhZGlzYWJsZWRcIlxuICAgICAgICBbY2xhc3MucG8tZmllbGQtaWNvbi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJvcGVuTG9va3VwKClcIlxuICAgICAgICAoZm9jdXMpPVwiaW5wLmZvY3VzKClcIlxuICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
437
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1sb29rdXAvcG8tbG9va3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1sb29rdXAvcG8tbG9va3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFLVixTQUFTLEVBQ1QsdUJBQXVCLEVBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7OztJQ0pwRSxvQ0FBK0Y7SUFBaEMsOExBQWtCLG1CQUFZLElBQUM7SUFBRSxpQkFBVzs7O0lBQXRFLDhDQUF5Qjs7OztJQWRsRSw4QkFBOEY7SUFDNUYsbUNBVUU7SUFEQSwySkFBUSxvQkFBYSxJQUFDO0lBVHhCLGlCQVVFO0lBRUYsOEJBQTJDO0lBQ3pDLGtGQUEyRztJQUUzRyxrQ0FRQztJQUZDLDZKQUFTLG9CQUFZLElBQUMsMklBQ2IsV0FBVyxJQURFO0lBR3hCLGlCQUFPO0lBQ1QsaUJBQU07SUFDUixpQkFBTTs7OztJQXRCRixlQUFxRjtJQUFyRiwwR0FBcUYscUNBQUEsNkJBQUEsbUNBQUEsNkJBQUE7SUFTMUUsZUFBd0I7SUFBeEIsdURBQXdCO0lBTWpD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QUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7a0ZBMVNVLGlCQUFpQjtvRUFBakIsaUJBQWlCOytCQUNGLFVBQVU7Ozs7MENBSHBDLFNBQVM7UUN6R1gsNkNBQTJGO1FBQ3pGLG1FQTJCTTtRQUNOLDRDQUF1RDtRQUN6RCxpQkFBcUI7UUFFckIsb0hBdUNjOzs7UUF2RU0sbUNBQWlCLG9CQUFBLDZDQUFBO1FBQ00sZUFBMkI7UUFBM0IsOENBQTJCLGlCQUFBOzt1RkQwR3pELGlCQUFpQjtjQU43QixTQUFTOzJCQUNFLFdBQVcsbUJBRUosdUJBQXVCLENBQUMsTUFBTSxhQUMvQyxTQUFTOzBMQUc4QyxPQUFPO2tCQUE3RCxTQUFTO21CQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERvQ2hlY2ssXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBQb0xvb2t1cEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLWxvb2t1cC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb0xvb2t1cEZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLWxvb2t1cC1maWx0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQb0xvb2t1cE1vZGFsU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcG8tbG9va3VwLW1vZGFsLnNlcnZpY2UnO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuY29uc3QgcHJvdmlkZXJzID0gW1xuICBQb0xvb2t1cEZpbHRlclNlcnZpY2UsXG4gIFBvTG9va3VwTW9kYWxTZXJ2aWNlLFxuICB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUG9Mb29rdXBDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH0sXG4gIHtcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvTG9va3VwQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9LFxuICB7XG4gICAgcHJvdmlkZTogTmdDb250cm9sLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvTG9va3VwQ29tcG9uZW50KSxcbiAgICBtdWx0aTogZmFsc2VcbiAgfVxuXTtcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9Mb29rdXBCYXNlQ29tcG9uZW50XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogUXVhbmRvIGV4aXN0ZSBtdWl0b3MgZGFkb3MgbyBwby1sb29rdXAgcG9yIHBhZHLDo28gdHJheiBhcGVuYXMgMTAgaXRlbnMgbmEgdGFiZWxhIGUgb3MgZGVtYWlzIHPDo28gY2FycmVnYWRvcyBwb3IgZGVtYW5kYSBhdHJhdsOpcyBkb1xuICogYm90w6NvICdDYXJyZWdhciBtYWlzIHJlc3VsdGFkb3MnLiBQYXJhIHF1ZSBmdW5jaW9uZSBjb3JyZXRhbWVudGUsIMOpIGltcG9ydGFudGUgcXVlIG8gc2VydmnDp28gc2lnYSBvXG4gKiBbR3VpYSBkZSBpbXBsZW1lbnRhw6fDo28gZGFzIEFQSXMgVE9UVlNdKGh0dHBzOi8vcG8tdWkuaW8vZ3VpZGVzL2FwaSkuXG4gKlxuICogSW1wb3J0YW50ZTpcbiAqXG4gKiAtIENhc28gbyBwby1sb29rdXAgY29udGVuaGEgbyBbKG5nTW9kZWwpXSBzZW0gbyBhdHJpYnV0byBuYW1lLCBvY29ycmVyw6EgdW0gZXJybyBkZSBhbmd1bGFyLlxuICogRW50w6NvIHNlcsOhIG5lY2Vzc8OhcmlvIGluZm9ybWFyIG8gYXRyaWJ1dG8gbmFtZSBvdSBvIGF0cmlidXRvIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIi5cbiAqIGBgYFxuICogPHBvLWxvb2t1cFxuICogICBbKG5nTW9kZWwpXT1cInBlc3NvYS5ub21lXCJcbiAqICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiPlxuICogPC9wby1sb29rdXA+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1sb29rdXAtYmFzaWNcIiB0aXRsZT1cIlBPIExvb2t1cCBCYXNpY1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWJhc2ljL3NhbXBsZS1wby1sb29rdXAtYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWJhc2ljL3NhbXBsZS1wby1sb29rdXAtYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbG9va3VwLWxhYnNcIiB0aXRsZT1cIlBPIExvb2t1cCBMYWJzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAtbGFicy9zYW1wbGUtcG8tbG9va3VwLWxhYnMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWxhYnMvc2FtcGxlLXBvLWxvb2t1cC1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWxvb2t1cC1oZXJvXCIgdGl0bGU9XCJQTyBMb29rdXAgLSBIZXJvXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAtaGVyby9zYW1wbGUtcG8tbG9va3VwLWhlcm8uY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWhlcm8vc2FtcGxlLXBvLWxvb2t1cC1oZXJvLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWxvb2t1cC1oZXJvLXJlYWN0aXZlLWZvcm1cIiB0aXRsZT1cIlBPIExvb2t1cCAtIEhlcm8gUmVhY3RpdmUgRm9ybVwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWhlcm8tcmVhY3RpdmUtZm9ybS9zYW1wbGUtcG8tbG9va3VwLWhlcm8tcmVhY3RpdmUtZm9ybS5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAtaGVyby1yZWFjdGl2ZS1mb3JtL3NhbXBsZS1wby1sb29rdXAtaGVyby1yZWFjdGl2ZS1mb3JtLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWxvb2t1cC1zdy1maWxtc1wiIHRpdGxlPVwiUE8gTG9va3VwIC0gU3RhciBXYXJzIGZpbG1zXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAtc3ctZmlsbXMvc2FtcGxlLXBvLWxvb2t1cC1zdy1maWxtcy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAtc3ctZmlsbXMvc2FtcGxlLXBvLWxvb2t1cC1zdy1maWxtcy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLXN3LWZpbG1zL3NhbXBsZS1wby1sb29rdXAtc3ctZmlsbXMuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWxvb2t1cC1tdWx0aXBsZVwiIHRpdGxlPVwiUE8gTG9va3VwIC0gTXVsdGlwbGVcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1tdWx0aXBsZS9zYW1wbGUtcG8tbG9va3VwLW11bHRpcGxlLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1tdWx0aXBsZS9zYW1wbGUtcG8tbG9va3VwLW11bHRpcGxlLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAtbXVsdGlwbGUvc2FtcGxlLXBvLWxvb2t1cC1tdWx0aXBsZS5zZXJ2aWNlLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tbG9va3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLWxvb2t1cC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnNcbn0pXG5leHBvcnQgY2xhc3MgUG9Mb29rdXBDb21wb25lbnQgZXh0ZW5kcyBQb0xvb2t1cEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgRG9DaGVjayB7XG4gIEBWaWV3Q2hpbGQoJ2lucCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSBpbnB1dEVsOiBFbGVtZW50UmVmO1xuXG4gIGluaXRpYWxpemVkID0gZmFsc2U7XG4gIHRpbWVvdXRSZXNpemU7XG4gIHZpc2libGVFbGVtZW50ID0gZmFsc2U7XG5cbiAgZGlzY2xhaW1lcnMgPSBbXTtcbiAgdmlzaWJsZURpc2NsYWltZXJzID0gW107XG5cbiAgcHJpdmF0ZSBtb2RhbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGlzQ2FsY3VsYXRlVmlzaWJsZUl0ZW1zOiBib29sZWFuID0gdHJ1ZTtcblxuICBnZXQgYXV0b2NvbXBsZXRlKCkge1xuICAgIHJldHVybiB0aGlzLm5vQXV0b2NvbXBsZXRlID8gJ29mZicgOiAnb24nO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHBvTG9va3VwRmlsdGVyU2VydmljZTogUG9Mb29rdXBGaWx0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9Mb29rdXBNb2RhbFNlcnZpY2U6IFBvTG9va3VwTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICBzdXBlcihwb0xvb2t1cEZpbHRlclNlcnZpY2UsIGluamVjdG9yKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgIGlmICh0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGNvbnN0IGlucHV0V2lkdGggPSB0aGlzLmlucHV0RWw/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgLy8gUGVybWl0ZSBxdWUgb3MgZGlzY2xhaW1lcnMgc2VqYW0gY2FsY3VsYWRvcyBuYSBwcmltZWlyYSB2ZXogcXVlIG8gY29tcG9uZW50ZSB0b3JuYS1zZSB2aXPDrXZlbCxcbiAgICAvLyBldml0YW5kbyBjb20gaXNzbywgcHJvYmxlbWFzIGNvbSBUYWJzIG91IERpdnMgcXVlIGluaWNpZW0gZXNjb25kaWRhcy5cbiAgICBpZiAoKGlucHV0V2lkdGggJiYgIXRoaXMudmlzaWJsZUVsZW1lbnQgJiYgdGhpcy5pbml0aWFsaXplZCkgfHwgKGlucHV0V2lkdGggJiYgdGhpcy5pc0NhbGN1bGF0ZVZpc2libGVJdGVtcykpIHtcbiAgICAgIHRoaXMuZGVib3VuY2VSZXNpemUoKTtcbiAgICAgIHRoaXMudmlzaWJsZUVsZW1lbnQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMubW9kYWxTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMubW9kYWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUxpc3RlbmVycygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bsOnw6NvIHF1ZSBhdHJpYnVpIGZvY28gYW8gY29tcG9uZW50ZS5cbiAgICpcbiAgICogUGFyYSB1dGlsaXrDoS1sYSDDqSBuZWNlc3PDoXJpbyB0ZXIgYSBpbnN0w6JuY2lhIGRvIGNvbXBvbmVudGUgbm8gRE9NLCBwb2RlbmRvIHNlciB1dGlsaXphZG8gbyBWaWV3Q2hpbGQgZGEgc2VndWludGUgZm9ybWE6XG4gICAqXG4gICAqIGBgYFxuICAgKiBpbXBvcnQgeyBQb0xvb2t1cENvbXBvbmVudCB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcbiAgICpcbiAgICogLi4uXG4gICAqXG4gICAqIEBWaWV3Q2hpbGQoUG9Mb29rdXBDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGxvb2t1cDogUG9Mb29rdXBDb21wb25lbnQ7XG4gICAqXG4gICAqIGZvY3VzTG9va3VwKCkge1xuICAgKiAgIHRoaXMubG9va3VwLmZvY3VzKCk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBmb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgb3Blbkxvb2t1cCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0FsbG93ZWRPcGVuTW9kYWwoKSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBhZHZhbmNlZEZpbHRlcnMsXG4gICAgICAgIHNlcnZpY2UsXG4gICAgICAgIGNvbHVtbnMsXG4gICAgICAgIGZpbHRlclBhcmFtcyxcbiAgICAgICAgbGl0ZXJhbHMsXG4gICAgICAgIGluZmluaXRlU2Nyb2xsLFxuICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgZmllbGRMYWJlbCxcbiAgICAgICAgZmllbGRWYWx1ZVxuICAgICAgfSA9IHRoaXM7XG5cbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLmNoZWNrU2VsZWN0ZWRJdGVtcygpO1xuXG4gICAgICB0aGlzLnBvTG9va3VwTW9kYWxTZXJ2aWNlLm9wZW5Nb2RhbCh7XG4gICAgICAgIGFkdmFuY2VkRmlsdGVycyxcbiAgICAgICAgc2VydmljZSxcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgZmlsdGVyUGFyYW1zLFxuICAgICAgICB0aXRsZTogdGhpcy5sYWJlbCxcbiAgICAgICAgbGl0ZXJhbHMsXG4gICAgICAgIGluZmluaXRlU2Nyb2xsLFxuICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgc2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgZmllbGRMYWJlbCxcbiAgICAgICAgZmllbGRWYWx1ZVxuICAgICAgfSk7XG5cbiAgICAgIGlmICghdGhpcy5tb2RhbFN1YnNjcmlwdGlvbikge1xuICAgICAgICB0aGlzLm1vZGFsU3Vic2NyaXB0aW9uID0gdGhpcy5wb0xvb2t1cE1vZGFsU2VydmljZS5zZWxlY3RWYWx1ZUV2ZW50LnN1YnNjcmliZShzZWxlY3RlZE9wdGlvbnMgPT4ge1xuICAgICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMSB8fCB0aGlzLmRpc2NsYWltZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5zZXREaXNjbGFpbWVycyhzZWxlY3RlZE9wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnNlbGVjdE1vZGVsKHNlbGVjdGVkT3B0aW9ucyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoZWNrU2VsZWN0ZWRJdGVtcygpIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgaWYgKCF0aGlzLmRpc2NsYWltZXJzLmxlbmd0aCAmJiB0aGlzLnZhbHVlVG9Nb2RlbD8ubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbeyB2YWx1ZTogdGhpcy52YWx1ZVRvTW9kZWxbMF0sIGxhYmVsOiB0aGlzLm9sZFZhbHVlLCAuLi50aGlzLnNlbGVjdGVkT3B0aW9uc1swXSB9XTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuZGlzY2xhaW1lcnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlVG9Nb2RlbDtcbiAgICB9XG4gIH1cblxuICBzZXREaXNjbGFpbWVycyhzZWxlY3RlZE9wdGlvbnM6IEFycmF5PGFueT4pIHtcbiAgICB0aGlzLmRpc2NsYWltZXJzID0gc2VsZWN0ZWRPcHRpb25zLm1hcChzZWxlY3RlZE9wdGlvbiA9PiAoe1xuICAgICAgdmFsdWU6IHNlbGVjdGVkT3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0sXG4gICAgICBsYWJlbDogc2VsZWN0ZWRPcHRpb25bdGhpcy5maWVsZExhYmVsXSxcbiAgICAgIC4uLnNlbGVjdGVkT3B0aW9uXG4gICAgfSkpO1xuXG4gICAgdGhpcy52aXNpYmxlRGlzY2xhaW1lcnMgPSBbLi4udGhpcy5kaXNjbGFpbWVyc107XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHNldFZpZXdWYWx1ZSh2YWx1ZTogYW55LCBvYmplY3Q6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlucHV0RWwgJiYgdGhpcy5maWVsZEZvcm1hdCkge1xuICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlV2lwb2llbGRGb3JtYXQob2JqZWN0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5wdXRFbCkge1xuICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlVG9Nb2RlbCB8fCB0aGlzLnZhbHVlVG9Nb2RlbCA9PT0gMCA/IHZhbHVlIDogJyc7XG4gICAgfVxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXRWaWV3VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICBzZWFyY2hFdmVudCgpIHtcbiAgICB0aGlzLm9uVG91Y2hlZD8uKCk7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZpZXdWYWx1ZSgpO1xuXG4gICAgaWYgKHRoaXMub2xkVmFsdWU/LnRvU3RyaW5nKCkgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLnNlYXJjaEJ5SWQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlRGlzY2xhaW1lcih2YWx1ZSkge1xuICAgIHRoaXMuZGlzY2xhaW1lcnMgPSB0aGlzLmRpc2NsYWltZXJzLmZpbHRlcihkaXNjbGFpbWVyID0+IGRpc2NsYWltZXIudmFsdWUgIT09IHZhbHVlKTtcbiAgICB0aGlzLnZhbHVlVG9Nb2RlbCA9IHRoaXMudmFsdWVUb01vZGVsLmZpbHRlcihtb2RlbCA9PiBtb2RlbCAhPT0gdmFsdWUpO1xuXG4gICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICB0aGlzLmNhbGxPbkNoYW5nZSh0aGlzLnZhbHVlVG9Nb2RlbC5sZW5ndGggPyB0aGlzLnZhbHVlVG9Nb2RlbCA6IHVuZGVmaW5lZCk7XG4gIH1cblxuICB1cGRhdGVWaXNpYmxlSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuZGlzY2xhaW1lcnMgJiYgdGhpcy5kaXNjbGFpbWVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnZpc2libGVEaXNjbGFpbWVycyA9IFtdLmNvbmNhdCh0aGlzLmRpc2NsYWltZXJzKTtcbiAgICB9XG5cbiAgICB0aGlzLmRlYm91bmNlUmVzaXplKCk7XG5cbiAgICBpZiAoIXRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSB7XG4gICAgICB0aGlzLmlzQ2FsY3VsYXRlVmlzaWJsZUl0ZW1zID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBkZWJvdW5jZVJlc2l6ZSgpIHtcbiAgICBpZiAoIXRoaXMuYXV0b0hlaWdodCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFJlc2l6ZSk7XG4gICAgICB0aGlzLnRpbWVvdXRSZXNpemUgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICAgIH0sIDIwMCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0SW5wdXRXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSA0MDtcbiAgfVxuXG4gIGdldERpc2NsYWltZXJzV2lkdGgoKSB7XG4gICAgY29uc3QgZGlzY2xhaW1lcnMgPSB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwby1kaXNjbGFpbWVyJyk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZGlzY2xhaW1lcnMpLm1hcChkaXNjbGFpbWVyID0+IGRpc2NsYWltZXJbJ29mZnNldFdpZHRoJ10pO1xuICB9XG5cbiAgY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCkge1xuICAgIGNvbnN0IGRpc2NsYWltZXJzV2lkdGggPSB0aGlzLmdldERpc2NsYWltZXJzV2lkdGgoKTtcbiAgICBjb25zdCBpbnB1dFdpZHRoID0gdGhpcy5nZXRJbnB1dFdpZHRoKCk7XG4gICAgY29uc3QgZXh0cmFEaXNjbGFpbWVyU2l6ZSA9IDM4O1xuICAgIGNvbnN0IGRpc2NsYWltZXJzVmlzaWJsZSA9IGRpc2NsYWltZXJzV2lkdGhbMF07XG5cbiAgICBjb25zdCBuZXdEaXNjbGFpbWVycyA9IFtdO1xuICAgIGNvbnN0IGRpc2NsYWltZXJzID0gdGhpcy5kaXNjbGFpbWVycztcblxuICAgIGlmIChpbnB1dFdpZHRoID4gMCkge1xuICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgZGlzY2xhaW1lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgc3VtICs9IGRpc2NsYWltZXJzV2lkdGhbaV07XG4gICAgICAgIG5ld0Rpc2NsYWltZXJzLnB1c2goZGlzY2xhaW1lcnNbaV0pO1xuXG4gICAgICAgIGlmIChzdW0gPiBpbnB1dFdpZHRoKSB7XG4gICAgICAgICAgc3VtIC09IGRpc2NsYWltZXJzV2lkdGhbaV07XG4gICAgICAgICAgdGhpcy5pc0NhbGN1bGF0ZVZpc2libGVJdGVtcyA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChkaXNjbGFpbWVyc1Zpc2libGUgfHwgIWRpc2NsYWltZXJzLmxlbmd0aCkge1xuICAgICAgICBpZiAoaSA9PT0gZGlzY2xhaW1lcnMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5pc0NhbGN1bGF0ZVZpc2libGVJdGVtcyA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdW0gKyBleHRyYURpc2NsYWltZXJTaXplID4gaW5wdXRXaWR0aCkge1xuICAgICAgICAgIG5ld0Rpc2NsYWltZXJzLnNwbGljZSgtMiwgMik7XG4gICAgICAgICAgY29uc3QgbGFiZWwgPSAnKycgKyAoZGlzY2xhaW1lcnMubGVuZ3RoICsgMSAtIGkpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgbmV3RGlzY2xhaW1lcnMucHVzaCh7IHZhbHVlOiAnJywgbGFiZWw6IGxhYmVsIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld0Rpc2NsYWltZXJzLnNwbGljZSgtMSwgMSk7XG4gICAgICAgICAgY29uc3QgbGFiZWwgPSAnKycgKyAoZGlzY2xhaW1lcnMubGVuZ3RoIC0gaSkudG9TdHJpbmcoKTtcbiAgICAgICAgICBuZXdEaXNjbGFpbWVycy5wdXNoKHsgdmFsdWU6ICcnLCBsYWJlbDogbGFiZWwgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnZpc2libGVEaXNjbGFpbWVycyA9IFsuLi5uZXdEaXNjbGFpbWVyc107XG4gIH1cblxuICBwcml2YXRlIGlzQWxsb3dlZE9wZW5Nb2RhbCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuc2VydmljZSkge1xuICAgICAgY29uc29sZS53YXJuKCdObyBzZXJ2aWNlIGluZm9ybWVkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhKHRoaXMuc2VydmljZSAmJiAhdGhpcy5kaXNhYmxlZCk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEZpZWxkcyhvYmplY3RTZWxlY3RlZCwgcHJvcGVydGllcykge1xuICAgIGxldCBmb3JtYXRlZEZpZWxkO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BlcnRpZXMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKG9iamVjdFNlbGVjdGVkICYmIG9iamVjdFNlbGVjdGVkW3Byb3BlcnR5XSkge1xuICAgICAgICAgIGlmICghZm9ybWF0ZWRGaWVsZCkge1xuICAgICAgICAgICAgZm9ybWF0ZWRGaWVsZCA9IG9iamVjdFNlbGVjdGVkW3Byb3BlcnR5XTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybWF0ZWRGaWVsZCA9IGZvcm1hdGVkRmllbGQgKyAnIC0gJyArIG9iamVjdFNlbGVjdGVkW3Byb3BlcnR5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWZvcm1hdGVkRmllbGQpIHtcbiAgICAgIGZvcm1hdGVkRmllbGQgPSBvYmplY3RTZWxlY3RlZFt0aGlzLmZpZWxkVmFsdWVdO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0ZWRGaWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5wdXRWYWx1ZVdpcG9pZWxkRm9ybWF0KG9iamVjdFNlbGVjdGVkOiBhbnkpIHtcbiAgICBjb25zdCBpc0VtcHR5ID0gT2JqZWN0LmtleXMob2JqZWN0U2VsZWN0ZWQpLmxlbmd0aCA9PT0gMDtcbiAgICBsZXQgZmllbGRGb3JtYXRlZDtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZmllbGRGb3JtYXQpKSB7XG4gICAgICBmaWVsZEZvcm1hdGVkID0gdGhpcy5mb3JtYXRGaWVsZHMob2JqZWN0U2VsZWN0ZWQsIHRoaXMuZmllbGRGb3JtYXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWVsZEZvcm1hdGVkID0gdGhpcy5maWVsZEZvcm1hdChvYmplY3RTZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgdGhpcy5vbGRWYWx1ZSA9IGlzRW1wdHkgPyAnJyA6IGZpZWxkRm9ybWF0ZWQ7XG4gICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBpc0VtcHR5ID8gJycgOiBmaWVsZEZvcm1hdGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ3Jlc2l6ZScsICgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlVmlzaWJsZUl0ZW1zKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxwby1maWVsZC1jb250YWluZXIgW3AtbGFiZWxdPVwibGFiZWxcIiBbcC1oZWxwXT1cImhlbHBcIiBbcC1vcHRpb25hbF09XCIhcmVxdWlyZWQgJiYgb3B0aW9uYWxcIj5cbiAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1jb250ZW50XCIgKm5nSWY9XCIhZGlzY2xhaW1lcnMubGVuZ3RoOyBlbHNlIGRpc2NsYWltZXJzVGVtcGxhdGVcIj5cbiAgICA8aW5wdXRcbiAgICAgICNpbnBcbiAgICAgIGNsYXNzPVwicG8taW5wdXRcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW25nQ2xhc3NdPVwiY2xlYW4gJiYgaW5wLnZhbHVlID8gJ3BvLWlucHV0LWRvdWJsZS1pY29uLXJpZ2h0JyA6ICdwby1pbnB1dC1pY29uLXJpZ2h0J1wiXG4gICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAoYmx1cik9XCJzZWFyY2hFdmVudCgpXCJcbiAgICAvPlxuXG4gICAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWljb24tY29udGFpbmVyLXJpZ2h0XCI+XG4gICAgICA8cG8tY2xlYW4gKm5nSWY9XCJjbGVhbiAmJiAhZGlzYWJsZWRcIiBbcC1lbGVtZW50LXJlZl09XCJpbnB1dEVsXCIgKHAtY2hhbmdlLWV2ZW50KT1cImNsZWFuTW9kZWwoKVwiPiA8L3BvLWNsZWFuPlxuXG4gICAgICA8c3BhblxuICAgICAgICAjaWNvbkxvb2t1cFxuICAgICAgICBjbGFzcz1cInBvLWljb24gcG8tZmllbGQtaWNvbiBwby1pY29uLXNlYXJjaFwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbY2xhc3MucG8tZmllbGQtaWNvbl09XCIhZGlzYWJsZWRcIlxuICAgICAgICBbY2xhc3MucG8tZmllbGQtaWNvbi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJvcGVuTG9va3VwKClcIlxuICAgICAgICAoZm9jdXMpPVwiaW5wLmZvY3VzKClcIlxuICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20+PC9wby1maWVsZC1jb250YWluZXItYm90dG9tPlxuPC9wby1maWVsZC1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZGlzY2xhaW1lcnNUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1jb250ZW50XCI+XG4gICAgPGRpdlxuICAgICAgI2lucFxuICAgICAgW3RhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiAwXCJcbiAgICAgIGNsYXNzPVwicG8taW5wdXQgcG8taW5wdXQtaWNvbi1yaWdodCBwby1sb29rdXAtaW5wdXRcIlxuICAgICAgW2NsYXNzLnBvLWxvb2t1cC1pbnB1dC1hdXRvXT1cImF1dG9IZWlnaHRcIlxuICAgICAgW2NsYXNzLnBvLWxvb2t1cC1pbnB1dC1zdGF0aWNdPVwiIWF1dG9IZWlnaHRcIlxuICAgICAgW2NsYXNzLnBvLWxvb2t1cC1pbnB1dC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgPlxuICAgICAgPHNwYW4gKm5nSWY9XCJwbGFjZWhvbGRlciAmJiAhZGlzY2xhaW1lcnM/Lmxlbmd0aFwiIGNsYXNzPVwicG8tbG9va3VwLWlucHV0LXBsYWNlaG9sZGVyXCI+XG4gICAgICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxwby1kaXNjbGFpbWVyXG4gICAgICAgICpuZ0Zvcj1cImxldCBkaXNjbGFpbWVyIG9mIHZpc2libGVEaXNjbGFpbWVyc1wiXG4gICAgICAgIGNsYXNzPVwicG8tbG9va3VwLWlucHV0LWRpc2NsYWltZXJcIlxuICAgICAgICBbcC1sYWJlbF09XCJkaXNjbGFpbWVyLmxhYmVsXCJcbiAgICAgICAgW3AtdmFsdWVdPVwiZGlzY2xhaW1lci52YWx1ZVwiXG4gICAgICAgIFtwLWhpZGUtY2xvc2VdPVwiZGlzY2xhaW1lci52YWx1ZSA9PT0gJycgfHwgZGlzYWJsZWRcIlxuICAgICAgICBbY2xhc3MucG8tY2xpY2thYmxlXT1cImRpc2NsYWltZXIudmFsdWUgPT09ICcnICYmICFkaXNhYmxlZFwiXG4gICAgICAgIChwLWNsb3NlLWFjdGlvbik9XCJjbG9zZURpc2NsYWltZXIoZGlzY2xhaW1lci52YWx1ZSlcIlxuICAgICAgPlxuICAgICAgPC9wby1kaXNjbGFpbWVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWljb24tY29udGFpbmVyLXJpZ2h0XCI+XG4gICAgICA8c3BhblxuICAgICAgICAjaWNvbkxvb2t1cFxuICAgICAgICBjbGFzcz1cInBvLWljb24gcG8tZmllbGQtaWNvbiBwby1pY29uLXNlYXJjaFwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbY2xhc3MucG8tZmllbGQtaWNvbl09XCIhZGlzYWJsZWRcIlxuICAgICAgICBbY2xhc3MucG8tZmllbGQtaWNvbi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJvcGVuTG9va3VwKClcIlxuICAgICAgICAoZm9jdXMpPVwiaW5wLmZvY3VzKClcIlxuICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ElementRef, forwardRef, Input, ViewChild, ViewChildren } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, forwardRef, Input, ViewChild, ViewChildren } from '@angular/core';
|
|
2
2
|
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { removeDuplicatedOptions } from '../../../utils/util';
|
|
4
4
|
import { PoRadioGroupBaseComponent } from './po-radio-group-base.component';
|
|
@@ -63,8 +63,9 @@ function PoRadioGroupComponent_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
63
63
|
*
|
|
64
64
|
*/
|
|
65
65
|
export class PoRadioGroupComponent extends PoRadioGroupBaseComponent {
|
|
66
|
-
constructor(differs) {
|
|
66
|
+
constructor(differs, cd) {
|
|
67
67
|
super();
|
|
68
|
+
this.cd = cd;
|
|
68
69
|
this.differ = differs.find([]).create(null);
|
|
69
70
|
}
|
|
70
71
|
ngAfterViewInit() {
|
|
@@ -77,6 +78,7 @@ export class PoRadioGroupComponent extends PoRadioGroupBaseComponent {
|
|
|
77
78
|
if (change) {
|
|
78
79
|
removeDuplicatedOptions(this.options);
|
|
79
80
|
}
|
|
81
|
+
this.cd.markForCheck();
|
|
80
82
|
}
|
|
81
83
|
eventClick(value, disabled) {
|
|
82
84
|
if (!disabled) {
|
|
@@ -121,7 +123,7 @@ export class PoRadioGroupComponent extends PoRadioGroupBaseComponent {
|
|
|
121
123
|
return key >= 37 && key <= 40;
|
|
122
124
|
}
|
|
123
125
|
}
|
|
124
|
-
PoRadioGroupComponent.ɵfac = function PoRadioGroupComponent_Factory(t) { return new (t || PoRadioGroupComponent)(i0.ɵɵdirectiveInject(i0.IterableDiffers)); };
|
|
126
|
+
PoRadioGroupComponent.ɵfac = function PoRadioGroupComponent_Factory(t) { return new (t || PoRadioGroupComponent)(i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
125
127
|
PoRadioGroupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoRadioGroupComponent, selectors: [["po-radio-group"]], viewQuery: function PoRadioGroupComponent_Query(rf, ctx) { if (rf & 1) {
|
|
126
128
|
i0.ɵɵviewQuery(_c0, 7, ElementRef);
|
|
127
129
|
i0.ɵɵviewQuery(_c1, 5);
|
|
@@ -151,10 +153,10 @@ PoRadioGroupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoRad
|
|
|
151
153
|
i0.ɵɵproperty("p-help", ctx.help)("p-label", ctx.label)("p-optional", !ctx.required && ctx.optional);
|
|
152
154
|
i0.ɵɵadvance(3);
|
|
153
155
|
i0.ɵɵproperty("ngForOf", ctx.options);
|
|
154
|
-
} }, directives: [i1.PoFieldContainerComponent, i2.NgForOf, i3.PoFieldContainerBottomComponent], encapsulation: 2 });
|
|
156
|
+
} }, directives: [i1.PoFieldContainerComponent, i2.NgForOf, i3.PoFieldContainerBottomComponent], encapsulation: 2, changeDetection: 0 });
|
|
155
157
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoRadioGroupComponent, [{
|
|
156
158
|
type: Component,
|
|
157
|
-
args: [{ selector: 'po-radio-group', providers: [
|
|
159
|
+
args: [{ selector: 'po-radio-group', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
158
160
|
{
|
|
159
161
|
provide: NG_VALUE_ACCESSOR,
|
|
160
162
|
useExisting: forwardRef(() => PoRadioGroupComponent),
|
|
@@ -166,7 +168,7 @@ PoRadioGroupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoRad
|
|
|
166
168
|
multi: true
|
|
167
169
|
}
|
|
168
170
|
], template: "<po-field-container [p-help]=\"help\" [p-label]=\"label\" [p-optional]=\"!required && optional\">\n <div class=\"po-row po-pt-1 po-pb-1\" #inp>\n <div *ngFor=\"let option of options\" class=\"po-radio-group-item po-md-{{ mdColumns }} po-lg-{{ columns }}\">\n <input\n #inputRadio\n class=\"po-radio-group-input\"\n type=\"radio\"\n [attr.name]=\"name\"\n [checked]=\"value === option.value\"\n [class.po-radio-group-input-checked]=\"value === option.value\"\n [disabled]=\"option.disabled === true || disabled\"\n [required]=\"required\"\n [value]=\"option.value\"\n (keyup)=\"onKeyUp($event, option.value)\"\n />\n <label\n class=\"po-radio-group-label\"\n [class.po-clickable]=\"!inputRadio.disabled\"\n [for]=\"name\"\n (click)=\"eventClick(option.value, option.disabled === true || disabled)\"\n >\n {{ option.label }}\n </label>\n </div>\n </div>\n <po-field-container-bottom></po-field-container-bottom>\n</po-field-container>\n" }]
|
|
169
|
-
}], function () { return [{ type: i0.IterableDiffers }]; }, { label: [{
|
|
171
|
+
}], function () { return [{ type: i0.IterableDiffers }, { type: i0.ChangeDetectorRef }]; }, { label: [{
|
|
170
172
|
type: Input,
|
|
171
173
|
args: ['p-label']
|
|
172
174
|
}], help: [{
|
|
@@ -179,4 +181,4 @@ PoRadioGroupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoRad
|
|
|
179
181
|
type: ViewChildren,
|
|
180
182
|
args: ['inputRadio']
|
|
181
183
|
}] }); })();
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLXJhZGlvLWdyb3VwL3BvLXJhZGlvLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1yYWRpby1ncm91cC9wby1yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFVBQVUsRUFDVixVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7SUNkeEUsMkJBQTBHO0lBQ3hHLG1DQVdFO0lBREEsb09BQVMsdUNBQTZCLElBQUM7SUFWekMsaUJBV0U7SUFDRixnQ0FLQztJQURDLDhOQUFTLDBEQUE2QyxJQUFJLG9CQUFhLElBQUM7SUFFeEUsWUFDRjtJQUFBLGlCQUFRO0lBQ1YsaUJBQU07Ozs7O0lBckI4Qix3R0FBcUU7SUFPckcsZUFBNkQ7SUFBN0QsZ0ZBQTZEO0lBRDdELDBEQUFrQyw0REFBQSw2QkFBQSwwQkFBQTtJQURsQyxtQ0FBa0I7SUFVbEIsZUFBMkM7SUFBM0MsNkNBQTJDO0lBQzNDLGlDQUFZO0lBR1osZUFDRjtJQURFLGdEQUNGOztBREpOOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFpQkgsTUFBTSxPQUFPLHFCQUFz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QUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7d0JBQ3BELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGO2tFQUlpQixLQUFLO2tCQUF0QixLQUFLO21CQUFDLFNBQVM7WUFHQyxJQUFJO2tCQUFwQixLQUFLO21CQUFDLFFBQVE7WUFFdUMsT0FBTztrQkFBNUQsU0FBUzttQkFBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDeEIsV0FBVztrQkFBdEMsWUFBWTttQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgSXRlcmFibGVEaWZmZXJzLFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IHJlbW92ZUR1cGxpY2F0ZWRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IFBvUmFkaW9Hcm91cEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLXJhZGlvLWdyb3VwLWJhc2UuY29tcG9uZW50JztcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9SYWRpb0dyb3VwQmFzZUNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXJhZGlvLWdyb3VwLWJhc2ljXCIgdGl0bGU9XCJQTyBSYWRpbyBHcm91cCBCYXNpY1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcmFkaW8tZ3JvdXAtYmFzaWMvc2FtcGxlLXBvLXJhZGlvLWdyb3VwLWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXJhZGlvLWdyb3VwLWJhc2ljL3NhbXBsZS1wby1yYWRpby1ncm91cC1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcmFkaW8tZ3JvdXAtYmFzaWMvc2FtcGxlLXBvLXJhZGlvLWdyb3VwLWJhc2ljLmNvbXBvbmVudC5lMmUtc3BlYy50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1yYWRpby1ncm91cC1iYXNpYy9zYW1wbGUtcG8tcmFkaW8tZ3JvdXAtYmFzaWMuY29tcG9uZW50LnBvLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcmFkaW8tZ3JvdXAtbGFic1wiIHRpdGxlPVwiUE8gUmFkaW8gR3JvdXAgTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcmFkaW8tZ3JvdXAtbGFicy9zYW1wbGUtcG8tcmFkaW8tZ3JvdXAtbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1yYWRpby1ncm91cC1sYWJzL3NhbXBsZS1wby1yYWRpby1ncm91cC1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXJhZGlvLWdyb3VwLXRyYW5zbGF0b3JcIiB0aXRsZT1cIlBPIFJhZGlvIEdyb3VwIC0gVHJhbnNsYXRvclwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcmFkaW8tZ3JvdXAtdHJhbnNsYXRvci9zYW1wbGUtcG8tcmFkaW8tZ3JvdXAtdHJhbnNsYXRvci5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1yYWRpby1ncm91cC10cmFuc2xhdG9yL3NhbXBsZS1wby1yYWRpby1ncm91cC10cmFuc2xhdG9yLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXJhZGlvLWdyb3VwLXRyYW5zbGF0b3ItcmVhY3RpdmUtZm9ybVwiIHRpdGxlPVwiUE8gUmFkaW8gR3JvdXAgLSBUcmFuc2xhdG9yIFJlYWN0aXZlIEZvcm1cIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXJhZGlvLWdyb3VwLXRyYW5zbGF0b3ItcmVhY3RpdmUtZm9ybS9zYW1wbGUtcG8tcmFkaW8tZ3JvdXAtdHJhbnNsYXRvci1yZWFjdGl2ZS1mb3JtLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXJhZGlvLWdyb3VwLXRyYW5zbGF0b3ItcmVhY3RpdmUtZm9ybS9zYW1wbGUtcG8tcmFkaW8tZ3JvdXAtdHJhbnNsYXRvci1yZWFjdGl2ZS1mb3JtLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1yYWRpby1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUG9SYWRpb0dyb3VwQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUG9SYWRpb0dyb3VwQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFBvUmFkaW9Hcm91cENvbXBvbmVudCBleHRlbmRzIFBvUmFkaW9Hcm91cEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBEb0NoZWNrIHtcbiAgLyoqIExhYmVsIGRvIGNhbXBvLiAqL1xuICBASW5wdXQoJ3AtbGFiZWwnKSBsYWJlbD86IHN0cmluZztcblxuICAvKiogVGV4dG8gZGUgYXBvaW8gZG8gY2FtcG8uICovXG4gIEBJbnB1dCgncC1oZWxwJykgaGVscD86IHN0cmluZztcblxuICBAVmlld0NoaWxkKCdpbnAnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkcmVuKCdpbnB1dFJhZGlvJykgcmFkaW9MYWJlbHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICBkaWZmZXI6IGFueTtcblxuICBjb25zdHJ1Y3RvcihkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZGlmZmVyID0gZGlmZmVycy5maW5kKFtdKS5jcmVhdGUobnVsbCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuYXV0b0ZvY3VzKSB7XG4gICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGNvbnN0IGNoYW5nZSA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5vcHRpb25zKTtcbiAgICBpZiAoY2hhbmdlKSB7XG4gICAgICByZW1vdmVEdXBsaWNhdGVkT3B0aW9ucyh0aGlzLm9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGV2ZW50Q2xpY2sodmFsdWU6IGFueSwgZGlzYWJsZWQ6IGFueSkge1xuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2hhbmdlVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW7Dp8OjbyBxdWUgYXRyaWJ1aSBmb2NvIGFvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIFBhcmEgdXRpbGl6w6EtbGEgw6kgbmVjZXNzw6FyaW8gdGVyIGEgaW5zdMOibmNpYSBkbyBjb21wb25lbnRlIG5vIERPTSwgcG9kZW5kbyBzZXIgdXRpbGl6YWRvIG8gVmlld0NoaWxkIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgUG9SYWRpb0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuICAgKlxuICAgKiAuLi5cbiAgICpcbiAgICogQFZpZXdDaGlsZChQb1JhZGlvR3JvdXBDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHJhZGlvOiBQb1JhZGlvR3JvdXBDb21wb25lbnQ7XG4gICAqXG4gICAqIGZvY3VzUmFkaW8oKSB7XG4gICAqICAgdGhpcy5yYWRpby5mb2N1cygpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmFkaW9MYWJlbHMgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGNvbnN0IHJhZGlvTGFiZWwgPSB0aGlzLnJhZGlvTGFiZWxzLmZpbmQoKF8sIGluZGV4KSA9PiAhdGhpcy5vcHRpb25zW2luZGV4XS5kaXNhYmxlZCk7XG5cbiAgICAgIGlmIChyYWRpb0xhYmVsKSB7XG4gICAgICAgIHJhZGlvTGFiZWwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldEVsZW1lbnRCeVZhbHVlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYGlucHV0W3ZhbHVlPScke3ZhbHVlfSddYCk7XG4gIH1cblxuICBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50LCB2YWx1ZSkge1xuICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleUNvZGUgfHwgZXZlbnQud2hpY2g7XG5cbiAgICBpZiAodGhpcy5pc0Fycm93S2V5KGtleSkpIHtcbiAgICAgIHRoaXMuY2hhbmdlVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNBcnJvd0tleShrZXk6IG51bWJlcikge1xuICAgIHJldHVybiBrZXkgPj0gMzcgJiYga2V5IDw9IDQwO1xuICB9XG59XG4iLCI8cG8tZmllbGQtY29udGFpbmVyIFtwLWhlbHBdPVwiaGVscFwiIFtwLWxhYmVsXT1cImxhYmVsXCIgW3Atb3B0aW9uYWxdPVwiIXJlcXVpcmVkICYmIG9wdGlvbmFsXCI+XG4gIDxkaXYgY2xhc3M9XCJwby1yb3cgcG8tcHQtMSBwby1wYi0xXCIgI2lucD5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIGNsYXNzPVwicG8tcmFkaW8tZ3JvdXAtaXRlbSBwby1tZC17eyBtZENvbHVtbnMgfX0gcG8tbGcte3sgY29sdW1ucyB9fVwiPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dFJhZGlvXG4gICAgICAgIGNsYXNzPVwicG8tcmFkaW8tZ3JvdXAtaW5wdXRcIlxuICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgICBbY2hlY2tlZF09XCJ2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlXCJcbiAgICAgICAgW2NsYXNzLnBvLXJhZGlvLWdyb3VwLWlucHV0LWNoZWNrZWRdPVwidmFsdWUgPT09IG9wdGlvbi52YWx1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWQgPT09IHRydWUgfHwgZGlzYWJsZWRcIlxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgKGtleXVwKT1cIm9uS2V5VXAoJGV2ZW50LCBvcHRpb24udmFsdWUpXCJcbiAgICAgIC8+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJwby1yYWRpby1ncm91cC1sYWJlbFwiXG4gICAgICAgIFtjbGFzcy5wby1jbGlja2FibGVdPVwiIWlucHV0UmFkaW8uZGlzYWJsZWRcIlxuICAgICAgICBbZm9yXT1cIm5hbWVcIlxuICAgICAgICAoY2xpY2spPVwiZXZlbnRDbGljayhvcHRpb24udmFsdWUsIG9wdGlvbi5kaXNhYmxlZCA9PT0gdHJ1ZSB8fCBkaXNhYmxlZClcIlxuICAgICAgPlxuICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8cG8tZmllbGQtY29udGFpbmVyLWJvdHRvbT48L3BvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20+XG48L3BvLWZpZWxkLWNvbnRhaW5lcj5cbiJdfQ==
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLXJhZGlvLWdyb3VwL3BvLXJhZGlvLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1yYWRpby1ncm91cC9wby1yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLEtBQUssRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7O0lDaEJ4RSwyQkFBMEc7SUFDeEcsbUNBV0U7SUFEQSxvT0FBUyx1Q0FBNkIsSUFBQztJQVZ6QyxpQkFXRTtJQUNGLGdDQUtDO0lBREMsOE5BQVMsMERBQTZDLElBQUksb0JBQWEsSUFBQztJQUV4RSxZQUNGO0lBQUEsaUJBQVE7SUFDVixpQkFBTTs7Ozs7SUFyQjhCLHdHQUFxRTtJQU9yRyxlQUE2RDtJQUE3RCxnRkFBNkQ7SUFEN0QsMERBQWtDLDREQUFBLDZCQUFBLDBCQUFBO0lBRGxDLG1DQUFrQjtJQVVsQixlQUEyQztJQUEzQyw2Q0FBMkM7SUFDM0MsaUNBQVk7SUFHWixlQUNGO0lBREUsZ0RBQ0Y7O0FERk47Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQWtCSCxN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O3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQzt3QkFDcEQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDO3dCQUNwRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjtrR0FJaUIsS0FBSztrQkFBdEIsS0FBSzttQkFBQyxTQUFTO1lBR0MsSUFBSTtrQkFBcEIsS0FBSzttQkFBQyxRQUFRO1lBRXVDLE9BQU87a0JBQTVELFNBQVM7bUJBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ3hCLFdBQVc7a0JBQXRDLFlBQVk7bUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgSXRlcmFibGVEaWZmZXJzLFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IHJlbW92ZUR1cGxpY2F0ZWRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IFBvUmFkaW9Hcm91cEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLXJhZGlvLWdyb3VwLWJhc2UuY29tcG9uZW50JztcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9SYWRpb0dyb3VwQmFzZUNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXJhZGlvLWdyb3VwLWJhc2ljXCIgdGl0bGU9XCJQTyBSYWRpbyBHcm91cCBCYXNpY1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcmFkaW8tZ3JvdXAtYmFzaWMvc2FtcGxlLXBvLXJhZGlvLWdyb3VwLWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXJhZGlvLWdyb3VwLWJhc2ljL3NhbXBsZS1wby1yYWRpby1ncm91cC1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcmFkaW8tZ3JvdXAtYmFzaWMvc2FtcGxlLXBvLXJhZGlvLWdyb3VwLWJhc2ljLmNvbXBvbmVudC5lMmUtc3BlYy50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1yYWRpby1ncm91cC1iYXNpYy9zYW1wbGUtcG8tcmFkaW8tZ3JvdXAtYmFzaWMuY29tcG9uZW50LnBvLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcmFkaW8tZ3JvdXAtbGFic1wiIHRpdGxlPVwiUE8gUmFkaW8gR3JvdXAgTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcmFkaW8tZ3JvdXAtbGFicy9zYW1wbGUtcG8tcmFkaW8tZ3JvdXAtbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1yYWRpby1ncm91cC1sYWJzL3NhbXBsZS1wby1yYWRpby1ncm91cC1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXJhZGlvLWdyb3VwLXRyYW5zbGF0b3JcIiB0aXRsZT1cIlBPIFJhZGlvIEdyb3VwIC0gVHJhbnNsYXRvclwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcmFkaW8tZ3JvdXAtdHJhbnNsYXRvci9zYW1wbGUtcG8tcmFkaW8tZ3JvdXAtdHJhbnNsYXRvci5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1yYWRpby1ncm91cC10cmFuc2xhdG9yL3NhbXBsZS1wby1yYWRpby1ncm91cC10cmFuc2xhdG9yLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXJhZGlvLWdyb3VwLXRyYW5zbGF0b3ItcmVhY3RpdmUtZm9ybVwiIHRpdGxlPVwiUE8gUmFkaW8gR3JvdXAgLSBUcmFuc2xhdG9yIFJlYWN0aXZlIEZvcm1cIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXJhZGlvLWdyb3VwLXRyYW5zbGF0b3ItcmVhY3RpdmUtZm9ybS9zYW1wbGUtcG8tcmFkaW8tZ3JvdXAtdHJhbnNsYXRvci1yZWFjdGl2ZS1mb3JtLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXJhZGlvLWdyb3VwLXRyYW5zbGF0b3ItcmVhY3RpdmUtZm9ybS9zYW1wbGUtcG8tcmFkaW8tZ3JvdXAtdHJhbnNsYXRvci1yZWFjdGl2ZS1mb3JtLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1yYWRpby1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvUmFkaW9Hcm91cENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvUmFkaW9Hcm91cENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQb1JhZGlvR3JvdXBDb21wb25lbnQgZXh0ZW5kcyBQb1JhZGlvR3JvdXBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgRG9DaGVjayB7XG4gIC8qKiBMYWJlbCBkbyBjYW1wby4gKi9cbiAgQElucHV0KCdwLWxhYmVsJykgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqIFRleHRvIGRlIGFwb2lvIGRvIGNhbXBvLiAqL1xuICBASW5wdXQoJ3AtaGVscCcpIGhlbHA/OiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgnaW5wJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZHJlbignaW5wdXRSYWRpbycpIHJhZGlvTGFiZWxzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgZGlmZmVyOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5kaWZmZXIgPSBkaWZmZXJzLmZpbmQoW10pLmNyZWF0ZShudWxsKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgY29uc3QgY2hhbmdlID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLm9wdGlvbnMpO1xuICAgIGlmIChjaGFuZ2UpIHtcbiAgICAgIHJlbW92ZUR1cGxpY2F0ZWRPcHRpb25zKHRoaXMub3B0aW9ucyk7XG4gICAgfVxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBldmVudENsaWNrKHZhbHVlOiBhbnksIGRpc2FibGVkOiBhbnkpIHtcbiAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICB0aGlzLmNoYW5nZVZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuw6fDo28gcXVlIGF0cmlidWkgZm9jbyBhbyBjb21wb25lbnRlLlxuICAgKlxuICAgKiBQYXJhIHV0aWxpesOhLWxhIMOpIG5lY2Vzc8OhcmlvIHRlciBhIGluc3TDom5jaWEgZG8gY29tcG9uZW50ZSBubyBET00sIHBvZGVuZG8gc2VyIHV0aWxpemFkbyBvIFZpZXdDaGlsZCBkYSBzZWd1aW50ZSBmb3JtYTpcbiAgICpcbiAgICogYGBgXG4gICAqIGltcG9ydCB7IFBvUmFkaW9Hcm91cENvbXBvbmVudCB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcbiAgICpcbiAgICogLi4uXG4gICAqXG4gICAqIEBWaWV3Q2hpbGQoUG9SYWRpb0dyb3VwQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSByYWRpbzogUG9SYWRpb0dyb3VwQ29tcG9uZW50O1xuICAgKlxuICAgKiBmb2N1c1JhZGlvKCkge1xuICAgKiAgIHRoaXMucmFkaW8uZm9jdXMoKTtcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhZGlvTGFiZWxzICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBjb25zdCByYWRpb0xhYmVsID0gdGhpcy5yYWRpb0xhYmVscy5maW5kKChfLCBpbmRleCkgPT4gIXRoaXMub3B0aW9uc1tpbmRleF0uZGlzYWJsZWQpO1xuXG4gICAgICBpZiAocmFkaW9MYWJlbCkge1xuICAgICAgICByYWRpb0xhYmVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRFbGVtZW50QnlWYWx1ZSh2YWx1ZSkge1xuICAgIHJldHVybiB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGBpbnB1dFt2YWx1ZT0nJHt2YWx1ZX0nXWApO1xuICB9XG5cbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCwgdmFsdWUpIHtcbiAgICBjb25zdCBrZXkgPSBldmVudC5rZXlDb2RlIHx8IGV2ZW50LndoaWNoO1xuXG4gICAgaWYgKHRoaXMuaXNBcnJvd0tleShrZXkpKSB7XG4gICAgICB0aGlzLmNoYW5nZVZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzQXJyb3dLZXkoa2V5OiBudW1iZXIpIHtcbiAgICByZXR1cm4ga2V5ID49IDM3ICYmIGtleSA8PSA0MDtcbiAgfVxufVxuIiwiPHBvLWZpZWxkLWNvbnRhaW5lciBbcC1oZWxwXT1cImhlbHBcIiBbcC1sYWJlbF09XCJsYWJlbFwiIFtwLW9wdGlvbmFsXT1cIiFyZXF1aXJlZCAmJiBvcHRpb25hbFwiPlxuICA8ZGl2IGNsYXNzPVwicG8tcm93IHBvLXB0LTEgcG8tcGItMVwiICNpbnA+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBjbGFzcz1cInBvLXJhZGlvLWdyb3VwLWl0ZW0gcG8tbWQte3sgbWRDb2x1bW5zIH19IHBvLWxnLXt7IGNvbHVtbnMgfX1cIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRSYWRpb1xuICAgICAgICBjbGFzcz1cInBvLXJhZGlvLWdyb3VwLWlucHV0XCJcbiAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICAgW2NoZWNrZWRdPVwidmFsdWUgPT09IG9wdGlvbi52YWx1ZVwiXG4gICAgICAgIFtjbGFzcy5wby1yYWRpby1ncm91cC1pbnB1dC1jaGVja2VkXT1cInZhbHVlID09PSBvcHRpb24udmFsdWVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkID09PSB0cnVlIHx8IGRpc2FibGVkXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgIChrZXl1cCk9XCJvbktleVVwKCRldmVudCwgb3B0aW9uLnZhbHVlKVwiXG4gICAgICAvPlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwicG8tcmFkaW8tZ3JvdXAtbGFiZWxcIlxuICAgICAgICBbY2xhc3MucG8tY2xpY2thYmxlXT1cIiFpbnB1dFJhZGlvLmRpc2FibGVkXCJcbiAgICAgICAgW2Zvcl09XCJuYW1lXCJcbiAgICAgICAgKGNsaWNrKT1cImV2ZW50Q2xpY2sob3B0aW9uLnZhbHVlLCBvcHRpb24uZGlzYWJsZWQgPT09IHRydWUgfHwgZGlzYWJsZWQpXCJcbiAgICAgID5cbiAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20+PC9wby1maWVsZC1jb250YWluZXItYm90dG9tPlxuPC9wby1maWVsZC1jb250YWluZXI+XG4iXX0=
|