@seniorsistemas/angular-components 17.8.3 → 17.8.5
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/bundles/seniorsistemas-angular-components.umd.js +2269 -2188
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.d.ts +6 -0
- package/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.d.ts +2 -0
- package/components/dynamic-form/configurations/field-type.d.ts +2 -1
- package/components/dynamic-form/configurations/fields/profile-picture.d.ts +36 -0
- package/components/profile-picture-picker/models/index.d.ts +3 -2
- package/components/profile-picture-picker/models/profile-picture-picker-data.d.ts +4 -0
- package/components/profile-picture-picker/profile-picture-picker.component.d.ts +14 -7
- package/esm2015/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.js +17 -0
- package/esm2015/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.js +22 -0
- package/esm2015/components/dynamic-form/configurations/field-type.js +2 -1
- package/esm2015/components/dynamic-form/configurations/fields/profile-picture.js +21 -0
- package/esm2015/components/dynamic-form/configurations/form-field.js +4 -1
- package/esm2015/components/dynamic-form/dynamic-form.js +4 -1
- package/esm2015/components/dynamic-form/dynamic-form.module.js +3 -1
- package/esm2015/components/profile-picture-picker/models/index.js +1 -1
- package/esm2015/components/profile-picture-picker/models/profile-picture-picker-data.js +1 -0
- package/esm2015/components/profile-picture-picker/profile-picture-picker.component.js +27 -13
- package/esm2015/components/profile-picture-picker/profile-picture-picker.module.js +6 -4
- package/esm2015/components/table/table-column/table-columns.component.js +2 -2
- package/esm2015/seniorsistemas-angular-components.js +61 -59
- package/esm5/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.js +20 -0
- package/esm5/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.js +25 -0
- package/esm5/components/dynamic-form/configurations/field-type.js +2 -1
- package/esm5/components/dynamic-form/configurations/fields/profile-picture.js +26 -0
- package/esm5/components/dynamic-form/configurations/form-field.js +4 -1
- package/esm5/components/dynamic-form/dynamic-form.js +4 -1
- package/esm5/components/dynamic-form/dynamic-form.module.js +3 -1
- package/esm5/components/profile-picture-picker/models/index.js +1 -1
- package/esm5/components/profile-picture-picker/models/profile-picture-picker-data.js +1 -0
- package/esm5/components/profile-picture-picker/profile-picture-picker.component.js +27 -12
- package/esm5/components/profile-picture-picker/profile-picture-picker.module.js +6 -4
- package/esm5/components/table/table-column/table-columns.component.js +2 -2
- package/esm5/seniorsistemas-angular-components.js +61 -59
- package/fesm2015/seniorsistemas-angular-components.js +3316 -3247
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +2206 -2127
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-angular-components.d.ts +60 -58
- package/seniorsistemas-angular-components.metadata.json +1 -1
|
@@ -71,6 +71,7 @@ import { TextFieldModule } from "./components/fields/text/text-field.module";
|
|
|
71
71
|
import { NumberFieldModule } from "./components/fields/number/number-field.module";
|
|
72
72
|
import { CurrencyFieldModule } from "./components/fields/currency/currency-field.module";
|
|
73
73
|
import { NumberFieldModule as BignumberFieldModule } from "./components/fields/bignumber/bignumber-field.module";
|
|
74
|
+
import { ProfilePictureModule } from "./components/fields/profile-picture/profile-picture-field.module";
|
|
74
75
|
var DynamicFormModule = /** @class */ (function () {
|
|
75
76
|
function DynamicFormModule() {
|
|
76
77
|
}
|
|
@@ -124,6 +125,7 @@ var DynamicFormModule = /** @class */ (function () {
|
|
|
124
125
|
NumberFieldModule,
|
|
125
126
|
CurrencyFieldModule,
|
|
126
127
|
BignumberFieldModule,
|
|
128
|
+
ProfilePictureModule,
|
|
127
129
|
],
|
|
128
130
|
declarations: [
|
|
129
131
|
AutocompleteFieldComponent,
|
|
@@ -175,4 +177,4 @@ var DynamicFormModule = /** @class */ (function () {
|
|
|
175
177
|
return DynamicFormModule;
|
|
176
178
|
}());
|
|
177
179
|
export { DynamicFormModule };
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksSUFBSSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1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dEIsd0JBQXdCO2FBQzNCO1lBQ0QsU0FBUyxFQUFFO2dCQUNQLGNBQWM7Z0JBQ2QsY0FBYzthQUNqQjtTQUNKLENBQUM7T0FDVyxpQkFBaUIsQ0FBSTtJQUFELHdCQUFDO0NBQUEsQUFBbEMsSUFBa0M7U0FBckIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuaW1wb3J0IHsgSG90a2V5TW9kdWxlLCBIb3RrZXlzU2VydmljZSB9IGZyb20gXCJhbmd1bGFyMi1ob3RrZXlzXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvYXV0b2NvbXBsZXRlXCI7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgYXMgUHJpbWVCdXR0b25Nb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9idXR0b25cIjtcbmltcG9ydCB7IENhbGVuZGFyTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvY2FsZW5kYXJcIjtcbmltcG9ydCB7IENoZWNrYm94TW9kdWxlIH0gZnJvbSBcInByaW1lbmcvY2hlY2tib3hcIjtcbmltcG9ydCB7IENoaXBzTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvY2hpcHNcIjtcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gXCJwcmltZW5nL2RpYWxvZ1wiO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9kcm9wZG93blwiO1xuaW1wb3J0IHsgRmllbGRzZXRNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9maWVsZHNldFwiO1xuaW1wb3J0IHsgSW5wdXRNYXNrTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvaW5wdXRtYXNrXCI7XG5pbXBvcnQgeyBJbnB1dFRleHRNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9pbnB1dHRleHRcIjtcbmltcG9ydCB7IElucHV0VGV4dGFyZWFNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9pbnB1dHRleHRhcmVhXCI7XG5pbXBvcnQgeyBLZXlGaWx0ZXJNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9rZXlmaWx0ZXJcIjtcbmltcG9ydCB7IE11bHRpU2VsZWN0TW9kdWxlIH0gZnJvbSBcInByaW1lbmcvbXVsdGlzZWxlY3RcIjtcbmltcG9ydCB7IFBhbmVsTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvcGFuZWxcIjtcbmltcG9ydCB7IFJhZGlvQnV0dG9uTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvcmFkaW9idXR0b25cIjtcbmltcG9ydCB7IFRhYmxlTW9kdWxlIGFzIFByaW1lTkdUYWJsZU1vZHVsZSB9IGZyb20gXCJwcmltZW5nL3RhYmxlXCI7XG5pbXBvcnQgeyBTbGlkZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL3NsaWRlcic7XG5cbmltcG9ydCB7IElBc3Npc3RTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvSUFzc2lzdC9pYXNzaXN0LnNlcnZpY2VcIjtcbmltcG9ydCB7IE1vdXNlRXZlbnRzTW9kdWxlIH0gZnJvbSBcIi4uL21vdXNlLWV2ZW50cy9tb3VzZS1ldmVudHMubW9kdWxlXCI7XG5cbi8vIE1vZHVsZXNcbmltcG9ydCB7IEJpZ251bWJlcklucHV0TW9kdWxlIH0gZnJvbSBcIi4uL2JpZ251bWJlci1pbnB1dC9udW1iZXItaW5wdXQubW9kdWxlXCI7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tIFwiLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGVcIjtcbmltcG9ydCB7IENhbGVuZGFyTWFza01vZHVsZSB9IGZyb20gXCIuLi9jYWxlbmRhci1tYXNrL2NhbGVuZGFyLW1hc2subW9kdWxlXCI7XG5pbXBvcnQgeyBDb250cm9sRXJyb3JzTW9kdWxlIH0gZnJvbSBcIi4uL2NvbnRyb2wtZXJyb3JzL2NvbnRyb2wtZXJyb3JzLm1vZHVsZVwiO1xuaW1wb3J0IHsgQ291bnRyeVBob25lUGlja2VyTW9kdWxlIH0gZnJvbSBcIi4uL2NvdW50cnktcGhvbmUtcGlja2VyL2NvdW50cnktcGhvbmUtcGlja2VyLm1vZHVsZVwiO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1vZHVsZSB9IGZyb20gXCIuLi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5tb2R1bGVcIjtcbmltcG9ydCB7IEZpbGVVcGxvYWRNb2R1bGUgfSBmcm9tIFwiLi4vZmlsZS11cGxvYWQvZmlsZS11cGxvYWQubW9kdWxlXCI7XG5pbXBvcnQgeyBJbmZvU2lnbk1vZHVsZSB9IGZyb20gXCIuLi9pbmZvLXNpZ24vaW5mby1zaWduLm1vZHVsZVwiO1xuaW1wb3J0IHsgTG9hZGluZ1N0YXRlTW9kdWxlIH0gZnJvbSBcIi4uL2xvYWRpbmctc3RhdGUvbG9hZGluZy1zdGF0ZS5tb2R1bGVcIjtcbmltcG9ydCB7IExvY2FsZU1vZHVsZSB9IGZyb20gXCIuLi9sb2NhbGUvbG9jYWxlLm1vZHVsZVwiO1xuaW1wb3J0IHsgTG9jYWxpemVkTnVtYmVySW5wdXRNb2R1bGUgfSBmcm9tIFwiLi4vbG9jYWxpemVkLW51bWJlci1pbnB1dC9sb2NhbGl6ZWQtbnVtYmVyLWlucHV0Lm1vZHVsZVwiO1xuaW1wb3J0IHsgTWFza0Zvcm1hdHRlck1vZHVsZSB9IGZyb20gXCIuLi9tYXNrL21hc2stZm9ybWF0dGVyLm1vZHVsZVwiO1xuaW1wb3J0IHsgTnVtYmVySW5wdXRNb2R1bGUgfSBmcm9tIFwiLi4vbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5tb2R1bGVcIjtcbmltcG9ydCB7IFBhc3N3b3JkU3RyZW5ndGhNb2R1bGUgfSBmcm9tIFwiLi4vcGFzc3dvcmQtc3RyZW5ndGgvcGFzc3dvcmQtc3RyZW5ndGgubW9kdWxlXCI7XG5pbXBvcnQgeyBTd2l0Y2hNb2R1bGUgfSBmcm9tIFwiLi4vc3dpdGNoL3N3aXRjaC5tb2R1bGVcIjtcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSBcIi4uL3RhYmxlL3RhYmxlLm1vZHVsZVwiO1xuaW1wb3J0IHsgVGFibGVIZWFkZXJDaGVja2JveE1vZHVsZSB9IGZyb20gXCIuLi90YWJsZS1oZWFkZXIvdGFibGUtaGVhZGVyLWNoZWNrb3gubW9kdWxlXCI7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSBcIi4uL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGVcIjtcblxuLy8gQ29tcG9uZW50c1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQm9vbGVhbkZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvYm9vbGVhbi9ib29sZWFuLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQm9vbGVhblN3aXRjaEZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvYm9vbGVhbi9ib29sZWFuLXN3aXRjaC1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IENhbGVuZGFyRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9jYWxlbmRhci9jYWxlbmRhci1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IENoaXBzRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9jaGlwcy9jaGlwcy1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IENvdW50cnlQaG9uZVBpY2tlckZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvY291bnRyeS1waG9uZS1waWNrZXIvY291bnRyeS1waG9uZS1waWNrZXItZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBGaWVsZHNldENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvc3RydWN0dXJlL2ZpZWxkc2V0L2ZpZWxkc2V0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTG9va3VwRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9sb29rdXAvbG9va3VwLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvc3RydWN0dXJlL3NlY3Rpb24vc2VjdGlvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IFNlbGVjdEZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvc2VsZWN0L3NlbGVjdC1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFNsaWRlckZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvc2xpZGVyL3NsaWRlci1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFRleHRBcmVhRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWFyZWEvdGV4dC1hcmVhLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVGV4dEFyZWFJQUZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvdGV4dC1hcmVhLWlhL3RleHQtYXJlYS1pYS1maWVsZC5jb21wb25lbnRcIjtcblxuLy8gR3JpZFxuaW1wb3J0IHsgUm93Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9ncmlkL3Jvdy9yb3cuY29tcG9uZW50XCI7XG4vLyBMb29rdXBcbmltcG9ydCB7IExvb2t1cENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbG9va3VwL2xvb2t1cC5jb21wb25lbnRcIjtcblxuLy8gRHluYW1pYy1mb3JtXG5pbXBvcnQgeyBEeW5hbWljRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2R5bmFtaWMtZmllbGQvZHluYW1pYy1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1EaXJlY3RpdmUgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0uZGlyZWN0aXZlXCI7XG5cbmltcG9ydCB7IFBhc3N3b3JkRmllbGRNb2R1bGUgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9wYXNzd29yZC9wYXNzd29yZC1maWVsZC5tb2R1bGVcIjtcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL3RleHQvdGV4dC1maWVsZC5tb2R1bGVcIjtcbmltcG9ydCB7IE51bWJlckZpZWxkTW9kdWxlIH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvbnVtYmVyL251bWJlci1maWVsZC5tb2R1bGVcIjtcbmltcG9ydCB7IEN1cnJlbmN5RmllbGRNb2R1bGUgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9jdXJyZW5jeS9jdXJyZW5jeS1maWVsZC5tb2R1bGVcIjtcbmltcG9ydCB7IE51bWJlckZpZWxkTW9kdWxlIGFzIEJpZ251bWJlckZpZWxkTW9kdWxlIH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvYmlnbnVtYmVyL2JpZ251bWJlci1maWVsZC5tb2R1bGVcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEF1dG9Db21wbGV0ZU1vZHVsZSxcbiAgICAgICAgQmlnbnVtYmVySW5wdXRNb2R1bGUsXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQ2FsZW5kYXJNYXNrTW9kdWxlLFxuICAgICAgICBDYWxlbmRhck1vZHVsZSxcbiAgICAgICAgQ2hlY2tib3hNb2R1bGUsXG4gICAgICAgIENoaXBzTW9kdWxlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIENvbnRyb2xFcnJvcnNNb2R1bGUsXG4gICAgICAgIENvdW50cnlQaG9uZVBpY2tlck1vZHVsZSxcbiAgICAgICAgRGlhbG9nTW9kdWxlLFxuICAgICAgICBEcm9wZG93bk1vZHVsZSxcbiAgICAgICAgRW1wdHlTdGF0ZU1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIEhvdGtleU1vZHVsZSxcbiAgICAgICAgSW5wdXRNYXNrTW9kdWxlLFxuICAgICAgICBJbnB1dFRleHRhcmVhTW9kdWxlLFxuICAgICAgICBJbnB1dFRleHRNb2R1bGUsXG4gICAgICAgIEtleUZpbHRlck1vZHVsZSxcbiAgICAgICAgTG9hZGluZ1N0YXRlTW9kdWxlLFxuICAgICAgICBMb2NhbGVNb2R1bGUsXG4gICAgICAgIExvY2FsaXplZE51bWJlcklucHV0TW9kdWxlLFxuICAgICAgICBQYW5lbE1vZHVsZSxcbiAgICAgICAgUHJpbWVCdXR0b25Nb2R1bGUsXG4gICAgICAgIFByaW1lTkdUYWJsZU1vZHVsZSxcbiAgICAgICAgTXVsdGlTZWxlY3RNb2R1bGUsXG4gICAgICAgIE51bWJlcklucHV0TW9kdWxlLFxuICAgICAgICBSYWRpb0J1dHRvbk1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVG9vbHRpcE1vZHVsZSxcblxuICAgICAgICBGaWVsZHNldE1vZHVsZSxcbiAgICAgICAgVGFibGVIZWFkZXJDaGVja2JveE1vZHVsZSxcbiAgICAgICAgRmlsZVVwbG9hZE1vZHVsZSxcbiAgICAgICAgVGFibGVNb2R1bGUsXG4gICAgICAgIEluZm9TaWduTW9kdWxlLFxuICAgICAgICBNYXNrRm9ybWF0dGVyTW9kdWxlLFxuICAgICAgICBIb3RrZXlNb2R1bGUuZm9yUm9vdCgpLFxuICAgICAgICBNb3VzZUV2ZW50c01vZHVsZSxcbiAgICAgICAgU3dpdGNoTW9kdWxlLFxuICAgICAgICBQYXNzd29yZFN0cmVuZ3RoTW9kdWxlLFxuICAgICAgICBTbGlkZXJNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuXG4gICAgICAgIFBhc3N3b3JkRmllbGRNb2R1bGUsXG4gICAgICAgIFRleHRGaWVsZE1vZHVsZSxcbiAgICAgICAgTnVtYmVyRmllbGRNb2R1bGUsXG4gICAgICAgIEN1cnJlbmN5RmllbGRNb2R1bGUsXG4gICAgICAgIEJpZ251bWJlckZpZWxkTW9kdWxlLFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50LFxuICAgICAgICBCb29sZWFuRmllbGRDb21wb25lbnQsXG4gICAgICAgIEJvb2xlYW5Td2l0Y2hGaWVsZENvbXBvbmVudCxcbiAgICAgICAgQ2FsZW5kYXJGaWVsZENvbXBvbmVudCxcbiAgICAgICAgQ2hpcHNGaWVsZENvbXBvbmVudCxcbiAgICAgICAgQ291bnRyeVBob25lUGlja2VyRmllbGRDb21wb25lbnQsXG4gICAgICAgIER5bmFtaWNGaWVsZENvbXBvbmVudCxcbiAgICAgICAgRHluYW1pY0Zvcm1Db21wb25lbnQsXG4gICAgICAgIER5bmFtaWNGb3JtRGlyZWN0aXZlLFxuICAgICAgICBGaWVsZHNldENvbXBvbmVudCxcbiAgICAgICAgRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICAgICAgTG9va3VwQ29tcG9uZW50LFxuICAgICAgICBMb29rdXBGaWVsZENvbXBvbmVudCxcbiAgICAgICAgUmFkaW9CdXR0b25Db21wb25lbnQsXG4gICAgICAgIFJvd0NvbXBvbmVudCxcbiAgICAgICAgU2VjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgU2VsZWN0RmllbGRDb21wb25lbnQsXG4gICAgICAgIFNsaWRlckZpZWxkQ29tcG9uZW50LFxuICAgICAgICBUZXh0QXJlYUZpZWxkQ29tcG9uZW50LFxuICAgICAgICBUZXh0QXJlYUlBRmllbGRDb21wb25lbnQsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbRHluYW1pY0Zvcm1Db21wb25lbnQsIExvb2t1cENvbXBvbmVudF0sXG4gICAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgICAgIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50LFxuICAgICAgICBCb29sZWFuRmllbGRDb21wb25lbnQsXG4gICAgICAgIEJvb2xlYW5Td2l0Y2hGaWVsZENvbXBvbmVudCxcbiAgICAgICAgQ2FsZW5kYXJGaWVsZENvbXBvbmVudCxcbiAgICAgICAgQ2hpcHNGaWVsZENvbXBvbmVudCxcbiAgICAgICAgQ291bnRyeVBob25lUGlja2VyRmllbGRDb21wb25lbnQsXG4gICAgICAgIEZpZWxkc2V0Q29tcG9uZW50LFxuICAgICAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgICAgICBMb29rdXBGaWVsZENvbXBvbmVudCxcbiAgICAgICAgUmFkaW9CdXR0b25Db21wb25lbnQsXG4gICAgICAgIFJvd0NvbXBvbmVudCxcbiAgICAgICAgU2VjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgU2VsZWN0RmllbGRDb21wb25lbnQsXG4gICAgICAgIFNsaWRlckZpZWxkQ29tcG9uZW50LFxuICAgICAgICBUZXh0QXJlYUZpZWxkQ29tcG9uZW50LFxuICAgICAgICBUZXh0QXJlYUlBRmllbGRDb21wb25lbnQsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgSG90a2V5c1NlcnZpY2UsXG4gICAgICAgIElBc3Npc3RTZXJ2aWNlLFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1Nb2R1bGUgeyB9XG4iXX0=
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksSUFBSSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1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Z0JBQ1osZ0JBQWdCO2dCQUNoQixvQkFBb0I7Z0JBQ3BCLG9CQUFvQjtnQkFDcEIsc0JBQXNCO2dCQUN0Qix3QkFBd0I7YUFDM0I7WUFDRCxTQUFTLEVBQUU7Z0JBQ1AsY0FBYztnQkFDZCxjQUFjO2FBQ2pCO1NBQ0osQ0FBQztPQUNXLGlCQUFpQixDQUFJO0lBQUQsd0JBQUM7Q0FBQSxBQUFsQyxJQUFrQztTQUFyQixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5pbXBvcnQgeyBIb3RrZXlNb2R1bGUsIEhvdGtleXNTZXJ2aWNlIH0gZnJvbSBcImFuZ3VsYXIyLWhvdGtleXNcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9hdXRvY29tcGxldGVcIjtcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSBhcyBQcmltZUJ1dHRvbk1vZHVsZSB9IGZyb20gXCJwcmltZW5nL2J1dHRvblwiO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9jYWxlbmRhclwiO1xuaW1wb3J0IHsgQ2hlY2tib3hNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9jaGVja2JveFwiO1xuaW1wb3J0IHsgQ2hpcHNNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9jaGlwc1wiO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvZGlhbG9nXCI7XG5pbXBvcnQgeyBEcm9wZG93bk1vZHVsZSB9IGZyb20gXCJwcmltZW5nL2Ryb3Bkb3duXCI7XG5pbXBvcnQgeyBGaWVsZHNldE1vZHVsZSB9IGZyb20gXCJwcmltZW5nL2ZpZWxkc2V0XCI7XG5pbXBvcnQgeyBJbnB1dE1hc2tNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9pbnB1dG1hc2tcIjtcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gXCJwcmltZW5nL2lucHV0dGV4dFwiO1xuaW1wb3J0IHsgSW5wdXRUZXh0YXJlYU1vZHVsZSB9IGZyb20gXCJwcmltZW5nL2lucHV0dGV4dGFyZWFcIjtcbmltcG9ydCB7IEtleUZpbHRlck1vZHVsZSB9IGZyb20gXCJwcmltZW5nL2tleWZpbHRlclwiO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9tdWx0aXNlbGVjdFwiO1xuaW1wb3J0IHsgUGFuZWxNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9wYW5lbFwiO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Nb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9yYWRpb2J1dHRvblwiO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgYXMgUHJpbWVOR1RhYmxlTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvdGFibGVcIjtcbmltcG9ydCB7IFNsaWRlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2xpZGVyJztcblxuaW1wb3J0IHsgSUFzc2lzdFNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9JQXNzaXN0L2lhc3Npc3Quc2VydmljZVwiO1xuaW1wb3J0IHsgTW91c2VFdmVudHNNb2R1bGUgfSBmcm9tIFwiLi4vbW91c2UtZXZlbnRzL21vdXNlLWV2ZW50cy5tb2R1bGVcIjtcblxuLy8gTW9kdWxlc1xuaW1wb3J0IHsgQmlnbnVtYmVySW5wdXRNb2R1bGUgfSBmcm9tIFwiLi4vYmlnbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5tb2R1bGVcIjtcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gXCIuLi9idXR0b24vYnV0dG9uLm1vZHVsZVwiO1xuaW1wb3J0IHsgQ2FsZW5kYXJNYXNrTW9kdWxlIH0gZnJvbSBcIi4uL2NhbGVuZGFyLW1hc2svY2FsZW5kYXItbWFzay5tb2R1bGVcIjtcbmltcG9ydCB7IENvbnRyb2xFcnJvcnNNb2R1bGUgfSBmcm9tIFwiLi4vY29udHJvbC1lcnJvcnMvY29udHJvbC1lcnJvcnMubW9kdWxlXCI7XG5pbXBvcnQgeyBDb3VudHJ5UGhvbmVQaWNrZXJNb2R1bGUgfSBmcm9tIFwiLi4vY291bnRyeS1waG9uZS1waWNrZXIvY291bnRyeS1waG9uZS1waWNrZXIubW9kdWxlXCI7XG5pbXBvcnQgeyBFbXB0eVN0YXRlTW9kdWxlIH0gZnJvbSBcIi4uL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLm1vZHVsZVwiO1xuaW1wb3J0IHsgRmlsZVVwbG9hZE1vZHVsZSB9IGZyb20gXCIuLi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5tb2R1bGVcIjtcbmltcG9ydCB7IEluZm9TaWduTW9kdWxlIH0gZnJvbSBcIi4uL2luZm8tc2lnbi9pbmZvLXNpZ24ubW9kdWxlXCI7XG5pbXBvcnQgeyBMb2FkaW5nU3RhdGVNb2R1bGUgfSBmcm9tIFwiLi4vbG9hZGluZy1zdGF0ZS9sb2FkaW5nLXN0YXRlLm1vZHVsZVwiO1xuaW1wb3J0IHsgTG9jYWxlTW9kdWxlIH0gZnJvbSBcIi4uL2xvY2FsZS9sb2NhbGUubW9kdWxlXCI7XG5pbXBvcnQgeyBMb2NhbGl6ZWROdW1iZXJJbnB1dE1vZHVsZSB9IGZyb20gXCIuLi9sb2NhbGl6ZWQtbnVtYmVyLWlucHV0L2xvY2FsaXplZC1udW1iZXItaW5wdXQubW9kdWxlXCI7XG5pbXBvcnQgeyBNYXNrRm9ybWF0dGVyTW9kdWxlIH0gZnJvbSBcIi4uL21hc2svbWFzay1mb3JtYXR0ZXIubW9kdWxlXCI7XG5pbXBvcnQgeyBOdW1iZXJJbnB1dE1vZHVsZSB9IGZyb20gXCIuLi9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0Lm1vZHVsZVwiO1xuaW1wb3J0IHsgUGFzc3dvcmRTdHJlbmd0aE1vZHVsZSB9IGZyb20gXCIuLi9wYXNzd29yZC1zdHJlbmd0aC9wYXNzd29yZC1zdHJlbmd0aC5tb2R1bGVcIjtcbmltcG9ydCB7IFN3aXRjaE1vZHVsZSB9IGZyb20gXCIuLi9zd2l0Y2gvc3dpdGNoLm1vZHVsZVwiO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tIFwiLi4vdGFibGUvdGFibGUubW9kdWxlXCI7XG5pbXBvcnQgeyBUYWJsZUhlYWRlckNoZWNrYm94TW9kdWxlIH0gZnJvbSBcIi4uL3RhYmxlLWhlYWRlci90YWJsZS1oZWFkZXItY2hlY2tveC5tb2R1bGVcIjtcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tIFwiLi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZVwiO1xuXG4vLyBDb21wb25lbnRzXG5pbXBvcnQgeyBBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBCb29sZWFuRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9ib29sZWFuL2Jvb2xlYW4tZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBCb29sZWFuU3dpdGNoRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9ib29sZWFuL2Jvb2xlYW4tc3dpdGNoLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ2FsZW5kYXJGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2NhbGVuZGFyL2NhbGVuZGFyLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ2hpcHNGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2NoaXBzL2NoaXBzLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ291bnRyeVBob25lUGlja2VyRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9jb3VudHJ5LXBob25lLXBpY2tlci9jb3VudHJ5LXBob25lLXBpY2tlci1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEZpZWxkc2V0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zdHJ1Y3R1cmUvZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBMb29rdXBGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2xvb2t1cC9sb29rdXAtZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24tZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zdHJ1Y3R1cmUvc2VjdGlvbi9zZWN0aW9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VsZWN0RmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9zZWxlY3Qvc2VsZWN0LWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2xpZGVyRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9zbGlkZXIvc2xpZGVyLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVGV4dEFyZWFGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL3RleHQtYXJlYS90ZXh0LWFyZWEtZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBUZXh0QXJlYUlBRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWFyZWEtaWEvdGV4dC1hcmVhLWlhLWZpZWxkLmNvbXBvbmVudFwiO1xuXG4vLyBHcmlkXG5pbXBvcnQgeyBSb3dDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2dyaWQvcm93L3Jvdy5jb21wb25lbnRcIjtcbi8vIExvb2t1cFxuaW1wb3J0IHsgTG9va3VwQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9sb29rdXAvbG9va3VwLmNvbXBvbmVudFwiO1xuXG4vLyBEeW5hbWljLWZvcm1cbmltcG9ydCB7IER5bmFtaWNGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZHluYW1pYy1maWVsZC9keW5hbWljLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db21wb25lbnQgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybURpcmVjdGl2ZSB9IGZyb20gXCIuL2R5bmFtaWMtZm9ybS5kaXJlY3RpdmVcIjtcblxuaW1wb3J0IHsgUGFzc3dvcmRGaWVsZE1vZHVsZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL3Bhc3N3b3JkL3Bhc3N3b3JkLWZpZWxkLm1vZHVsZVwiO1xuaW1wb3J0IHsgVGV4dEZpZWxkTW9kdWxlIH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvdGV4dC90ZXh0LWZpZWxkLm1vZHVsZVwiO1xuaW1wb3J0IHsgTnVtYmVyRmllbGRNb2R1bGUgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9udW1iZXIvbnVtYmVyLWZpZWxkLm1vZHVsZVwiO1xuaW1wb3J0IHsgQ3VycmVuY3lGaWVsZE1vZHVsZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2N1cnJlbmN5L2N1cnJlbmN5LWZpZWxkLm1vZHVsZVwiO1xuaW1wb3J0IHsgTnVtYmVyRmllbGRNb2R1bGUgYXMgQmlnbnVtYmVyRmllbGRNb2R1bGUgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9iaWdudW1iZXIvYmlnbnVtYmVyLWZpZWxkLm1vZHVsZVwiO1xuaW1wb3J0IHsgUHJvZmlsZVBpY3R1cmVNb2R1bGUgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9wcm9maWxlLXBpY3R1cmUvcHJvZmlsZS1waWN0dXJlLWZpZWxkLm1vZHVsZVwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQXV0b0NvbXBsZXRlTW9kdWxlLFxuICAgICAgICBCaWdudW1iZXJJbnB1dE1vZHVsZSxcbiAgICAgICAgQnV0dG9uTW9kdWxlLFxuICAgICAgICBDYWxlbmRhck1hc2tNb2R1bGUsXG4gICAgICAgIENhbGVuZGFyTW9kdWxlLFxuICAgICAgICBDaGVja2JveE1vZHVsZSxcbiAgICAgICAgQ2hpcHNNb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQ29udHJvbEVycm9yc01vZHVsZSxcbiAgICAgICAgQ291bnRyeVBob25lUGlja2VyTW9kdWxlLFxuICAgICAgICBEaWFsb2dNb2R1bGUsXG4gICAgICAgIERyb3Bkb3duTW9kdWxlLFxuICAgICAgICBFbXB0eVN0YXRlTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgSG90a2V5TW9kdWxlLFxuICAgICAgICBJbnB1dE1hc2tNb2R1bGUsXG4gICAgICAgIElucHV0VGV4dGFyZWFNb2R1bGUsXG4gICAgICAgIElucHV0VGV4dE1vZHVsZSxcbiAgICAgICAgS2V5RmlsdGVyTW9kdWxlLFxuICAgICAgICBMb2FkaW5nU3RhdGVNb2R1bGUsXG4gICAgICAgIExvY2FsZU1vZHVsZSxcbiAgICAgICAgTG9jYWxpemVkTnVtYmVySW5wdXRNb2R1bGUsXG4gICAgICAgIFBhbmVsTW9kdWxlLFxuICAgICAgICBQcmltZUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgUHJpbWVOR1RhYmxlTW9kdWxlLFxuICAgICAgICBNdWx0aVNlbGVjdE1vZHVsZSxcbiAgICAgICAgTnVtYmVySW5wdXRNb2R1bGUsXG4gICAgICAgIFJhZGlvQnV0dG9uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUb29sdGlwTW9kdWxlLFxuXG4gICAgICAgIEZpZWxkc2V0TW9kdWxlLFxuICAgICAgICBUYWJsZUhlYWRlckNoZWNrYm94TW9kdWxlLFxuICAgICAgICBGaWxlVXBsb2FkTW9kdWxlLFxuICAgICAgICBUYWJsZU1vZHVsZSxcbiAgICAgICAgSW5mb1NpZ25Nb2R1bGUsXG4gICAgICAgIE1hc2tGb3JtYXR0ZXJNb2R1bGUsXG4gICAgICAgIEhvdGtleU1vZHVsZS5mb3JSb290KCksXG4gICAgICAgIE1vdXNlRXZlbnRzTW9kdWxlLFxuICAgICAgICBTd2l0Y2hNb2R1bGUsXG4gICAgICAgIFBhc3N3b3JkU3RyZW5ndGhNb2R1bGUsXG4gICAgICAgIFNsaWRlck1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG5cbiAgICAgICAgUGFzc3dvcmRGaWVsZE1vZHVsZSxcbiAgICAgICAgVGV4dEZpZWxkTW9kdWxlLFxuICAgICAgICBOdW1iZXJGaWVsZE1vZHVsZSxcbiAgICAgICAgQ3VycmVuY3lGaWVsZE1vZHVsZSxcbiAgICAgICAgQmlnbnVtYmVyRmllbGRNb2R1bGUsXG4gICAgICAgIFByb2ZpbGVQaWN0dXJlTW9kdWxlLFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50LFxuICAgICAgICBCb29sZWFuRmllbGRDb21wb25lbnQsXG4gICAgICAgIEJvb2xlYW5Td2l0Y2hGaWVsZENvbXBvbmVudCxcbiAgICAgICAgQ2FsZW5kYXJGaWVsZENvbXBvbmVudCxcbiAgICAgICAgQ2hpcHNGaWVsZENvbXBvbmVudCxcbiAgICAgICAgQ291bnRyeVBob25lUGlja2VyRmllbGRDb21wb25lbnQsXG4gICAgICAgIER5bmFtaWNGaWVsZENvbXBvbmVudCxcbiAgICAgICAgRHluYW1pY0Zvcm1Db21wb25lbnQsXG4gICAgICAgIER5bmFtaWNGb3JtRGlyZWN0aXZlLFxuICAgICAgICBGaWVsZHNldENvbXBvbmVudCxcbiAgICAgICAgRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICAgICAgTG9va3VwQ29tcG9uZW50LFxuICAgICAgICBMb29rdXBGaWVsZENvbXBvbmVudCxcbiAgICAgICAgUmFkaW9CdXR0b25Db21wb25lbnQsXG4gICAgICAgIFJvd0NvbXBvbmVudCxcbiAgICAgICAgU2VjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgU2VsZWN0RmllbGRDb21wb25lbnQsXG4gICAgICAgIFNsaWRlckZpZWxkQ29tcG9uZW50LFxuICAgICAgICBUZXh0QXJlYUZpZWxkQ29tcG9uZW50LFxuICAgICAgICBUZXh0QXJlYUlBRmllbGRDb21wb25lbnQsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbRHluYW1pY0Zvcm1Db21wb25lbnQsIExvb2t1cENvbXBvbmVudF0sXG4gICAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgICAgIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50LFxuICAgICAgICBCb29sZWFuRmllbGRDb21wb25lbnQsXG4gICAgICAgIEJvb2xlYW5Td2l0Y2hGaWVsZENvbXBvbmVudCxcbiAgICAgICAgQ2FsZW5kYXJGaWVsZENvbXBvbmVudCxcbiAgICAgICAgQ2hpcHNGaWVsZENvbXBvbmVudCxcbiAgICAgICAgQ291bnRyeVBob25lUGlja2VyRmllbGRDb21wb25lbnQsXG4gICAgICAgIEZpZWxkc2V0Q29tcG9uZW50LFxuICAgICAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgICAgICBMb29rdXBGaWVsZENvbXBvbmVudCxcbiAgICAgICAgUmFkaW9CdXR0b25Db21wb25lbnQsXG4gICAgICAgIFJvd0NvbXBvbmVudCxcbiAgICAgICAgU2VjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgU2VsZWN0RmllbGRDb21wb25lbnQsXG4gICAgICAgIFNsaWRlckZpZWxkQ29tcG9uZW50LFxuICAgICAgICBUZXh0QXJlYUZpZWxkQ29tcG9uZW50LFxuICAgICAgICBUZXh0QXJlYUlBRmllbGRDb21wb25lbnQsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgSG90a2V5c1NlcnZpY2UsXG4gICAgICAgIElBc3Npc3RTZXJ2aWNlLFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1Nb2R1bGUgeyB9XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { FileValidation } from "./file-validation-errors";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wcm9maWxlLXBpY3R1cmUtcGlja2VyL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUF3QixNQUFNLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ29uZmlybWF0aW9uVGV4dHMgfSBmcm9tIFwiLi9jb25maXJtYXRpb24tdGV4dHNcIjtcbmV4cG9ydCB7IENyb3BwZXJMYWJlbHNDb25maWcgfSBmcm9tIFwiLi9jcm9wcGVyLWxhYmVscy1jb25maWdcIjtcbmV4cG9ydCB7IEZpbGVWYWxpZGF0aW9uLCBGaWxlVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gXCIuL2ZpbGUtdmFsaWRhdGlvbi1lcnJvcnNcIjtcbmV4cG9ydCB7IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSB9IGZyb20gXCIuL3Byb2ZpbGUtcGljdHVyZS1waWNrZXItZGF0YVwiO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1waWN0dXJlLXBpY2tlci1kYXRhLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvcHJvZmlsZS1waWN0dXJlLXBpY2tlci9tb2RlbHMvcHJvZmlsZS1waWN0dXJlLXBpY2tlci1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSB7XG4gICAgc291cmNlRmlsZTogRmlsZTtcbiAgICBiYXNlNjQ6IHN0cmluZztcbn0iXX0=
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import { __assign, __decorate } from "tslib";
|
|
2
|
-
import { Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild, } from "@angular/core";
|
|
2
|
+
import { Component, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output, ViewChild, } from "@angular/core";
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
4
|
+
import { TranslateService } from "@ngx-translate/core";
|
|
3
5
|
import { ConfirmationService } from "primeng/api";
|
|
4
|
-
import { FileValidation } from "./models/index";
|
|
5
6
|
import { ImageCropperService } from "../image-cropper/image-cropper.service";
|
|
6
|
-
import {
|
|
7
|
+
import { FileValidation } from "./models/index";
|
|
7
8
|
var ProfilePicturePickerComponent = /** @class */ (function () {
|
|
8
9
|
function ProfilePicturePickerComponent(imageCropperService, confirmationService, translateService) {
|
|
9
10
|
this.imageCropperService = imageCropperService;
|
|
10
11
|
this.confirmationService = confirmationService;
|
|
11
12
|
this.translateService = translateService;
|
|
12
|
-
this.simpleTitle = this.translateService.instant("platform.angular_components.drag_your_photo_or"); // Arraste sua foto ou
|
|
13
|
-
this.actionTitle = this.translateService.instant("platform.angular_components.select_a_file"); // Selecione um arquivo
|
|
14
13
|
this.aspectRatio = 1;
|
|
15
|
-
this.removeButtonLabel = this.translateService.instant("platform.angular_components.remover");
|
|
16
|
-
this.changeButtonLabel = this.translateService.instant("platform.angular_components.change_photo"); // Alterar foto
|
|
17
14
|
this.confirmationTexts = {
|
|
18
15
|
removalHeader: this.translateService.instant("platform.angular_components.remove_image"),
|
|
19
16
|
removalMessage: this.translateService.instant("platform.angular_components.confirmation_remove_image"),
|
|
@@ -25,6 +22,16 @@ var ProfilePicturePickerComponent = /** @class */ (function () {
|
|
|
25
22
|
this.removedImage = new EventEmitter();
|
|
26
23
|
this.invalidFile = new EventEmitter();
|
|
27
24
|
}
|
|
25
|
+
ProfilePicturePickerComponent_1 = ProfilePicturePickerComponent;
|
|
26
|
+
ProfilePicturePickerComponent.prototype.writeValue = function (value) {
|
|
27
|
+
this._value = value;
|
|
28
|
+
};
|
|
29
|
+
ProfilePicturePickerComponent.prototype.registerOnChange = function (onChange) {
|
|
30
|
+
this._onChange = onChange;
|
|
31
|
+
};
|
|
32
|
+
ProfilePicturePickerComponent.prototype.registerOnTouched = function (onTouched) {
|
|
33
|
+
this._onTouched = onTouched;
|
|
34
|
+
};
|
|
28
35
|
ProfilePicturePickerComponent.prototype.ngOnInit = function () {
|
|
29
36
|
this._normalizeSuportedExtensions();
|
|
30
37
|
};
|
|
@@ -95,12 +102,14 @@ var ProfilePicturePickerComponent = /** @class */ (function () {
|
|
|
95
102
|
_this.imageCropperService.show(__assign({ imageSource: fileEvent.target.result, croppedImage: function (image) {
|
|
96
103
|
_this.image = image;
|
|
97
104
|
_this.changedImage.emit(image);
|
|
105
|
+
_this._value = { sourceFile: file, base64: image };
|
|
106
|
+
_this._onChange(_this._value);
|
|
98
107
|
}, changeImage: function () { return _this.selectPhoto(); }, allowSelectAnother: false, aspectRatio: _this.aspectRatio }, _this.cropperLabelsConfig));
|
|
99
108
|
};
|
|
100
109
|
};
|
|
101
110
|
ProfilePicturePickerComponent.prototype._normalizeSuportedExtensions = function () {
|
|
102
|
-
|
|
103
|
-
|
|
111
|
+
var _a;
|
|
112
|
+
this.supportedExtensions = (_a = this.supportedExtensions) === null || _a === void 0 ? void 0 : _a.map(function (extension) { return extension.replace(".", "").toLocaleLowerCase(); });
|
|
104
113
|
};
|
|
105
114
|
ProfilePicturePickerComponent.prototype._validateData = function (files) {
|
|
106
115
|
if (!files.length) {
|
|
@@ -143,6 +152,7 @@ var ProfilePicturePickerComponent = /** @class */ (function () {
|
|
|
143
152
|
var _a = element.nativeElement.getBoundingClientRect(), left = _a.left, right = _a.right;
|
|
144
153
|
return right - left;
|
|
145
154
|
};
|
|
155
|
+
var ProfilePicturePickerComponent_1;
|
|
146
156
|
ProfilePicturePickerComponent.ctorParameters = function () { return [
|
|
147
157
|
{ type: ImageCropperService },
|
|
148
158
|
{ type: ConfirmationService },
|
|
@@ -217,14 +227,19 @@ var ProfilePicturePickerComponent = /** @class */ (function () {
|
|
|
217
227
|
__decorate([
|
|
218
228
|
HostListener("window:resize")
|
|
219
229
|
], ProfilePicturePickerComponent.prototype, "onResize", null);
|
|
220
|
-
ProfilePicturePickerComponent = __decorate([
|
|
230
|
+
ProfilePicturePickerComponent = ProfilePicturePickerComponent_1 = __decorate([
|
|
221
231
|
Component({
|
|
222
232
|
selector: "s-profile-picture-picker",
|
|
223
|
-
template: "<p-confirmDialog></p-confirmDialog>\n\n<input #fileInput [accept]=\"accept\" class=\"file-input\" type=\"file\" (change)=\"photoSelected($event)\">\n<div #uploadPicture class=\"upload-picture\">\n <s-thumbnail\n #thumbnail\n iconClass=\"far fa-user\"\n [imageSource]=\"image\"\n [hasAction]=\"!image\"\n (click)=\"selectPhoto()\">\n </s-thumbnail>\n <div #info class=\"info\">\n <ng-container *ngIf=\"image; then withImage; else noImage\"></ng-container>\n <p class=\"subtitle\">{{ subtitle }}</p>\n </div>\n</div>\n\n<ng-template #withImage>\n <div class=\"buttons\">\n <s-button\n [label]=\"changeButtonLabel\"\n priority=\"primary\"\n (onClick)=\"selectPhoto()\">\n </s-button>\n <s-button\n [label]=\"removeButtonLabel\"\n priority=\"secondary\"\n (onClick)=\"removePhoto()\">\n </s-button>\n </div>\n</ng-template>\n\n<ng-template #noImage>\n <p class=\"title\">\n {{ simpleTitle }}\n <span\n class=\"action-title\"\n (click)=\"selectPhoto()\">\n {{ actionTitle }}\n </span>\n </p>\n</ng-template>",
|
|
233
|
+
template: "<p-confirmDialog></p-confirmDialog>\n\n<input #fileInput [accept]=\"accept\" class=\"file-input\" type=\"file\" (change)=\"photoSelected($event)\">\n<div #uploadPicture class=\"upload-picture\">\n <s-thumbnail\n #thumbnail\n iconClass=\"far fa-user\"\n [imageSource]=\"image\"\n [hasAction]=\"!image\"\n (click)=\"selectPhoto()\">\n </s-thumbnail>\n <div #info class=\"info\">\n <ng-container *ngIf=\"image; then withImage; else noImage\"></ng-container>\n <p class=\"subtitle\">{{ subtitle }}</p>\n </div>\n</div>\n\n<ng-template #withImage>\n <div class=\"buttons\">\n <s-button\n [label]=\"changeButtonLabel || 'platform.angular_components.change_photo' | translate\"\n priority=\"primary\"\n (onClick)=\"selectPhoto()\">\n </s-button>\n <s-button\n [label]=\"removeButtonLabel || 'platform.angular_components.remove' | translate\"\n priority=\"secondary\"\n (onClick)=\"removePhoto()\">\n </s-button>\n </div>\n</ng-template>\n\n<ng-template #noImage>\n <p class=\"title\">\n {{ simpleTitle || 'platform.angular_components.drag_your_photo_or' | translate }}\n <span\n class=\"action-title\"\n (click)=\"selectPhoto()\">\n {{ actionTitle || 'platform.angular_components.select_a_file' | translate }}\n </span>\n </p>\n</ng-template>",
|
|
234
|
+
providers: [{
|
|
235
|
+
provide: NG_VALUE_ACCESSOR,
|
|
236
|
+
useExisting: forwardRef(function () { return ProfilePicturePickerComponent_1; }),
|
|
237
|
+
multi: true,
|
|
238
|
+
}],
|
|
224
239
|
styles: [".file-input{display:none}.upload-picture{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.upload-picture .info{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:12px 20px;-ms-flex-align:start;align-items:flex-start}.upload-picture .info .title{font-family:\"Open Sans\",sans-serif;font-weight:700;font-size:.875rem;line-height:150%;color:#333}.upload-picture .info .title .action-title{cursor:pointer;color:#428bca}.upload-picture .info .buttons{display:-ms-flexbox;display:flex;gap:8px}.upload-picture .info .buttons s-button{margin:0}.upload-picture .info .subtitle{padding:6px 0;font-family:\"Open Sans\",sans-serif;font-weight:400;font-size:.75rem;line-height:150%;color:#697882;text-align:center}.upload-picture--small .info{-ms-flex-align:center;align-items:center}.upload-picture--small .info .subtitle,.upload-picture--small .info .title{text-align:center}.upload-picture--small .info .buttons{-ms-flex-pack:center;justify-content:center;-ms-flex-wrap:wrap;flex-wrap:wrap}"]
|
|
225
240
|
})
|
|
226
241
|
], ProfilePicturePickerComponent);
|
|
227
242
|
return ProfilePicturePickerComponent;
|
|
228
243
|
}());
|
|
229
244
|
export { ProfilePicturePickerComponent };
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1waWN0dXJlLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wcm9maWxlLXBpY3R1cmUtcGlja2VyL3Byb2ZpbGUtcGljdHVyZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0osU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsRCxPQUFPLEVBQTZDLGNBQWMsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU92RDtJQStERyx1Q0FDb0IsbUJBQXdDLEVBQ3hDLG1CQUF3QyxFQUN4QyxnQkFBa0M7UUFGbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFoRS9DLGdCQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO1FBR3JILGdCQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCO1FBTWpILGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBTWhCLHNCQUFpQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FBQztR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SXJDO0lBR0Q7UUFEQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7K0RBYWhDO0lBSUQ7UUFEQyxZQUFZLENBQUMsZUFBZSxDQUFDO2lFQWE3QjtJQWxIUyw2QkFBNkI7UUFMekMsU0FBUyxDQUFDO1lBQ1IsUUFBUSxFQUFFLDBCQUEwQjtZQUNwQyxvcENBQW9EOztTQUV0RCxDQUFDO09BQ1csNkJBQTZCLENBMk56QztJQUFELG9DQUFDO0NBQUEsQUEzTkQsSUEyTkM7U0EzTlksNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgIENvbXBvbmVudCxcbiAgIEVsZW1lbnRSZWYsXG4gICBFdmVudEVtaXR0ZXIsXG4gICBIb3N0TGlzdGVuZXIsXG4gICBJbnB1dCxcbiAgIE9uSW5pdCxcbiAgIE91dHB1dCxcbiAgIFZpZXdDaGlsZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuXG5pbXBvcnQgeyBDcm9wcGVyTGFiZWxzQ29uZmlnLCBGaWxlVmFsaWRhdGlvbkVycm9ycywgRmlsZVZhbGlkYXRpb24sIENvbmZpcm1hdGlvblRleHRzIH0gZnJvbSBcIi4vbW9kZWxzL2luZGV4XCI7XG5pbXBvcnQgeyBJbWFnZUNyb3BwZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL2ltYWdlLWNyb3BwZXIvaW1hZ2UtY3JvcHBlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gICBzZWxlY3RvcjogXCJzLXByb2ZpbGUtcGljdHVyZS1waWNrZXJcIixcbiAgIHRlbXBsYXRlVXJsOiBcInByb2ZpbGUtcGljdHVyZS1waWNrZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgIHN0eWxlVXJsczogW1wicHJvZmlsZS1waWN0dXJlLXBpY2tlci5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZVBpY3R1cmVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgQElucHV0KClcbiAgIHB1YmxpYyBzaW1wbGVUaXRsZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwicGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmRyYWdfeW91cl9waG90b19vclwiKTsgLy8gQXJyYXN0ZSBzdWEgZm90byBvdVxuXG4gICBASW5wdXQoKVxuICAgcHVibGljIGFjdGlvblRpdGxlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuc2VsZWN0X2FfZmlsZVwiKTsgLy8gU2VsZWNpb25lIHVtIGFycXVpdm9cblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBzdWJ0aXRsZTogc3RyaW5nO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIGFzcGVjdFJhdGlvID0gMTtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBjcm9wcGVyTGFiZWxzQ29uZmlnOiBDcm9wcGVyTGFiZWxzQ29uZmlnO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIHJlbW92ZUJ1dHRvbkxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMucmVtb3ZlclwiKTtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBjaGFuZ2VCdXR0b25MYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwicGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmNoYW5nZV9waG90b1wiKTsgLy8gQWx0ZXJhciBmb3RvXG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgY29uZmlybWF0aW9uVGV4dHM6IENvbmZpcm1hdGlvblRleHRzID0ge1xuICAgICAgcmVtb3ZhbEhlYWRlcjogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMucmVtb3ZlX2ltYWdlXCIpLCAvLyBSZW1vdmVyIGltYWdlbVxuICAgICAgcmVtb3ZhbE1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwicGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmNvbmZpcm1hdGlvbl9yZW1vdmVfaW1hZ2VcIiksIC8vIERlc2VqYSByZW1vdmVyIGEgaW1hZ2VtPyBOw6NvIHBvZGUgc2VyIHJldmVydGlkYS5cbiAgICAgIHJlbW92YWxBY2NlcHRMYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMucmVtb3ZlXCIpLFxuICAgICAgcmVtb3ZhbFJlamVjdExhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcInBsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5jYW5jZWxcIiksXG4gICB9O1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIG1heEZpbGVTaXplOiBudW1iZXI7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgYWNjZXB0OiBzdHJpbmc7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgc3VwcG9ydGVkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBbXTtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBpbWFnZTogc3RyaW5nO1xuXG4gICBAVmlld0NoaWxkKFwidXBsb2FkUGljdHVyZVwiKVxuICAgcHVibGljIHVwbG9hZFBpY3R1cmU6IEVsZW1lbnRSZWY7XG5cbiAgIEBWaWV3Q2hpbGQoXCJpbmZvXCIpXG4gICBwdWJsaWMgaW5mbzogRWxlbWVudFJlZjtcblxuICAgQFZpZXdDaGlsZChcInRodW1ibmFpbFwiLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgIHB1YmxpYyB0aHVtYm5haWw6IEVsZW1lbnRSZWY7XG5cbiAgIEBWaWV3Q2hpbGQoXCJmaWxlSW5wdXRcIiwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICBwdWJsaWMgZmlsZUlucHV0OiBFbGVtZW50UmVmO1xuXG4gICBAT3V0cHV0KClcbiAgIHB1YmxpYyBjaGFuZ2VkSW1hZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICBAT3V0cHV0KClcbiAgIHB1YmxpYyByZW1vdmVkSW1hZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgIEBPdXRwdXQoKVxuICAgcHVibGljIGludmFsaWRGaWxlOiBFdmVudEVtaXR0ZXI8RmlsZVZhbGlkYXRpb25FcnJvcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW1hZ2VDcm9wcGVyU2VydmljZTogSW1hZ2VDcm9wcGVyU2VydmljZSxcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICkgeyB9XG5cbiAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgIHRoaXMuX25vcm1hbGl6ZVN1cG9ydGVkRXh0ZW5zaW9ucygpO1xuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKFwiZHJhZ292ZXJcIiwgW1wiJGV2ZW50XCJdKVxuICAgcHVibGljIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKFwiZHJhZ2xlYXZlXCIsIFtcIiRldmVudFwiXSlcbiAgIHB1YmxpYyBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJkcm9wXCIsIFtcIiRldmVudFwiXSlcbiAgIHB1YmxpYyBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICBjb25zdCBmaWxlczogRmlsZVtdID0gW107XG4gICAgICBjb25zdCBkYXRhVHJhbnNmZXJGaWxlcyA9IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcztcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhVHJhbnNmZXJGaWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgZmlsZXMucHVzaChkYXRhVHJhbnNmZXJGaWxlcy5pdGVtKGkpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fc2hvd0ltYWdlQ3JvcHBlcihmaWxlcyk7XG4gICB9XG5cbiAgIC8vIFZlcmlmaWNhbmRvIG8gcmVkaW1lbnNpb25hbWVudG8gcGFyYSBhanVzdGFyIG8gZGVzaWduIHBhcmEgZmljYXIgcmVzcG9uc2l2by5cbiAgIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIpXG4gICBwdWJsaWMgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy51cGxvYWRQaWN0dXJlICYmIHRoaXMuaW5mbyAmJiB0aGlzLnRodW1ibmFpbCkge1xuICAgICAgICAgY29uc3QgdXBsb2FkUGljdHVyZVdpZHRoID0gdGhpcy5fZ2V0V2lkdGhFbGVtZW50KHRoaXMudXBsb2FkUGljdHVyZSk7XG4gICAgICAgICBjb25zdCBpbmZvV2lkdGggPSB0aGlzLl9nZXRXaWR0aEVsZW1lbnQodGhpcy5pbmZvKTtcbiAgICAgICAgIGNvbnN0IHRodW1ibmFpbFdpZHRoID0gdGhpcy5fZ2V0V2lkdGhFbGVtZW50KHRoaXMudGh1bWJuYWlsKTtcblxuICAgICAgICAgaWYgKHRodW1ibmFpbFdpZHRoICsgaW5mb1dpZHRoID4gdXBsb2FkUGljdHVyZVdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZFBpY3R1cmUubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwidXBsb2FkLXBpY3R1cmUtLXNtYWxsXCIpO1xuICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkUGljdHVyZS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJ1cGxvYWQtcGljdHVyZS0tc21hbGxcIik7XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG5cbiAgIHB1YmxpYyBzZWxlY3RQaG90bygpOiB2b2lkIHtcbiAgICAgIGNvbnN0IGZpbGVJbnB1dEVsZW1lbnQgPSB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50O1xuICAgICAgZmlsZUlucHV0RWxlbWVudC52YWx1ZSA9IFwiXCI7XG4gICAgICBmaWxlSW5wdXRFbGVtZW50LmNsaWNrKCk7XG4gICB9XG5cbiAgIHB1YmxpYyByZW1vdmVQaG90bygpOiB2b2lkIHtcbiAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgIG1lc3NhZ2U6IHRoaXMuY29uZmlybWF0aW9uVGV4dHMucmVtb3ZhbE1lc3NhZ2UsXG4gICAgICAgICBhY2NlcHRMYWJlbDogdGhpcy5jb25maXJtYXRpb25UZXh0cy5yZW1vdmFsQWNjZXB0TGFiZWwsXG4gICAgICAgICByZWplY3RMYWJlbDogdGhpcy5jb25maXJtYXRpb25UZXh0cy5yZW1vdmFsUmVqZWN0TGFiZWwsXG4gICAgICAgICBoZWFkZXI6IHRoaXMuY29uZmlybWF0aW9uVGV4dHMucmVtb3ZhbEhlYWRlcixcbiAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsZUlucHV0RWxlbWVudCA9IHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBmaWxlSW5wdXRFbGVtZW50LnZhbHVlID0gXCJcIjtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2UgPSBcIlwiO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVkSW1hZ2UuZW1pdCgpO1xuICAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgfVxuXG4gICBwdWJsaWMgcGhvdG9TZWxlY3RlZChldmVudDogYW55KTogdm9pZCB7XG4gICAgICB0aGlzLl9zaG93SW1hZ2VDcm9wcGVyKGV2ZW50LnNyY0VsZW1lbnQuZmlsZXMpO1xuICAgfVxuXG4gICBwcml2YXRlIF9zaG93SW1hZ2VDcm9wcGVyKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcbiAgICAgIGlmICghdGhpcy5fdmFsaWRhdGVEYXRhKGZpbGVzKSkge1xuICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmaWxlID0gZmlsZXNbMF07XG5cbiAgICAgIGNvbnN0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgZmlsZVJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgZmlsZVJlYWRlci5vbmxvYWRlbmQgPSAoZmlsZUV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgIHRoaXMuaW1hZ2VDcm9wcGVyU2VydmljZS5zaG93KHtcbiAgICAgICAgICAgIGltYWdlU291cmNlOiBmaWxlRXZlbnQudGFyZ2V0LnJlc3VsdCxcbiAgICAgICAgICAgIGNyb3BwZWRJbWFnZTogaW1hZ2UgPT4ge1xuICAgICAgICAgICAgICAgdGhpcy5pbWFnZSA9IGltYWdlO1xuICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VkSW1hZ2UuZW1pdChpbWFnZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2hhbmdlSW1hZ2U6ICgpID0+IHRoaXMuc2VsZWN0UGhvdG8oKSxcbiAgICAgICAgICAgIGFsbG93U2VsZWN0QW5vdGhlcjogZmFsc2UsXG4gICAgICAgICAgICBhc3BlY3RSYXRpbzogdGhpcy5hc3BlY3RSYXRpbyxcbiAgICAgICAgICAgIC4uLnRoaXMuY3JvcHBlckxhYmVsc0NvbmZpZyxcbiAgICAgICAgIH0pO1xuICAgICAgfTtcbiAgIH1cblxuICAgcHJpdmF0ZSBfbm9ybWFsaXplU3Vwb3J0ZWRFeHRlbnNpb25zKCk6IHZvaWQge1xuICAgICAgdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zID0gdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zXG4gICAgICAgICAubWFwKGV4dGVuc2lvbiA9PiBleHRlbnNpb24ucmVwbGFjZShcIi5cIiwgXCJcIikudG9Mb2NhbGVMb3dlckNhc2UoKSk7XG4gICB9XG5cbiAgIHByaXZhdGUgX3ZhbGlkYXRlRGF0YShmaWxlczogRmlsZVtdKTogYm9vbGVhbiB7XG4gICAgICBpZiAoIWZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmlsZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgdGhpcy5pbnZhbGlkRmlsZS5lbWl0KHsgZmlsZTogbnVsbCwgdmFsaWRhdGlvbjogRmlsZVZhbGlkYXRpb24uTWF4RmlsZUxpbWl0IH0pO1xuICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmaWxlID0gZmlsZXNbMF07XG5cbiAgICAgIGlmICghZmlsZS50eXBlLmluY2x1ZGVzKFwiaW1hZ2VcIikpIHtcbiAgICAgICAgIHRoaXMuaW52YWxpZEZpbGUuZW1pdCh7IGZpbGUsIHZhbGlkYXRpb246IEZpbGVWYWxpZGF0aW9uLlR5cGVJbnZhbGlkIH0pO1xuICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuX3ZhbGlkYXRlRmlsZUV4dGVuc2lvbihmaWxlKSkge1xuICAgICAgICAgdGhpcy5pbnZhbGlkRmlsZS5lbWl0KHsgZmlsZSwgdmFsaWRhdGlvbjogRmlsZVZhbGlkYXRpb24uVW5zdXBwb3J0ZWRFeHRlbnNpb24gfSk7XG4gICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5fdmFsaWRhdGVGaWxlU2l6ZShmaWxlKSkge1xuICAgICAgICAgdGhpcy5pbnZhbGlkRmlsZS5lbWl0KHsgZmlsZSwgdmFsaWRhdGlvbjogRmlsZVZhbGlkYXRpb24uTWF4RmlsZVNpemUgfSk7XG4gICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgfVxuXG4gICBwcml2YXRlIF92YWxpZGF0ZUZpbGVFeHRlbnNpb24oZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgaWYgKHRoaXMuc3VwcG9ydGVkRXh0ZW5zaW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlLm5hbWUuc3BsaXQoXCIuXCIpLnBvcCgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICByZXR1cm4gdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zLmluY2x1ZGVzKGV4dGVuc2lvbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgIH1cblxuICAgcHJpdmF0ZSBfdmFsaWRhdGVGaWxlU2l6ZShmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICBpZiAodGhpcy5tYXhGaWxlU2l6ZSkge1xuICAgICAgICAgcmV0dXJuIGZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgIH1cblxuICAgcHJpdmF0ZSBfZ2V0V2lkdGhFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnRSZWYpOiBudW1iZXIge1xuICAgICAgY29uc3QgeyBsZWZ0LCByaWdodCB9ID0gZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgcmV0dXJuIHJpZ2h0IC0gbGVmdDtcbiAgIH1cbn1cbiJdfQ==
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1waWN0dXJlLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wcm9maWxlLXBpY3R1cmUtcGlja2VyL3Byb2ZpbGUtcGljdHVyZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0osU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBMEMsY0FBYyxFQUFrRCxNQUFNLGdCQUFnQixDQUFDO0FBWXhJO0lBbUVHLHVDQUNvQixtQkFBd0MsRUFDeEMsbUJBQXdDLEVBQ3hDLGdCQUFrQztRQUZsQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTNEL0MsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFZaEIsc0JBQWlCLEdBQXNCO1lBQzNDLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDO1lBQ3hGLGNBQWMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLHVEQUF1RCxDQUFDO1lBQ3RHLGtCQUFrQixFQUFFLElBQUksQ0FBQyxn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UUFEQyxNQUFNLEVBQUU7c0VBQ21FO0lBNkI1RTtRQURDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzttRUFJcEM7SUFHRDtRQURDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztvRUFJckM7SUFHRDtRQURDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzsrREFhaEM7SUFJRDtRQURDLFlBQVksQ0FBQyxlQUFlLENBQUM7aUVBYTdCO0lBbElTLDZCQUE2QjtRQVZ6QyxTQUFTLENBQUM7WUFDUixRQUFRLEVBQUUsMEJBQTBCO1lBQ3BDLDYzQ0FBb0Q7WUFFcEQsU0FBUyxFQUFFLENBQUM7b0JBQ1QsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsK0JBQTZCLEVBQTdCLENBQTZCLENBQUM7b0JBQzVELEtBQUssRUFBRSxJQUFJO2lCQUNiLENBQUM7O1NBQ0osQ0FBQztPQUNXLDZCQUE2QixDQTZPekM7SUFBRCxvQ0FBQztDQUFBLEFBN09ELElBNk9DO1NBN09ZLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICBDb21wb25lbnQsXG4gICBFbGVtZW50UmVmLFxuICAgRXZlbnRFbWl0dGVyLFxuICAgZm9yd2FyZFJlZixcbiAgIEhvc3RMaXN0ZW5lcixcbiAgIElucHV0LFxuICAgT25Jbml0LFxuICAgT3V0cHV0LFxuICAgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuXG5pbXBvcnQgeyBJbWFnZUNyb3BwZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL2ltYWdlLWNyb3BwZXIvaW1hZ2UtY3JvcHBlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBDb25maXJtYXRpb25UZXh0cywgQ3JvcHBlckxhYmVsc0NvbmZpZywgRmlsZVZhbGlkYXRpb24sIEZpbGVWYWxpZGF0aW9uRXJyb3JzLCBQcm9maWxlUGljdHVyZVBpY2tlckRhdGEgfSBmcm9tIFwiLi9tb2RlbHMvaW5kZXhcIjtcblxuQENvbXBvbmVudCh7XG4gICBzZWxlY3RvcjogXCJzLXByb2ZpbGUtcGljdHVyZS1waWNrZXJcIixcbiAgIHRlbXBsYXRlVXJsOiBcInByb2ZpbGUtcGljdHVyZS1waWNrZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgIHN0eWxlVXJsczogW1wicHJvZmlsZS1waWN0dXJlLXBpY2tlci5jb21wb25lbnQuc2Nzc1wiXSxcbiAgIHByb3ZpZGVyczogW3tcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUHJvZmlsZVBpY3R1cmVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICB9XSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZVBpY3R1cmVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgc2ltcGxlVGl0bGU6IHN0cmluZztcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBhY3Rpb25UaXRsZTogc3RyaW5nO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIHN1YnRpdGxlOiBzdHJpbmc7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgYXNwZWN0UmF0aW8gPSAxO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIGNyb3BwZXJMYWJlbHNDb25maWc6IENyb3BwZXJMYWJlbHNDb25maWc7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgcmVtb3ZlQnV0dG9uTGFiZWw6IHN0cmluZztcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBjaGFuZ2VCdXR0b25MYWJlbDogc3RyaW5nO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIGNvbmZpcm1hdGlvblRleHRzOiBDb25maXJtYXRpb25UZXh0cyA9IHtcbiAgICAgIHJlbW92YWxIZWFkZXI6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwicGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnJlbW92ZV9pbWFnZVwiKSxcbiAgICAgIHJlbW92YWxNZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcInBsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5jb25maXJtYXRpb25fcmVtb3ZlX2ltYWdlXCIpLFxuICAgICAgcmVtb3ZhbEFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcInBsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5yZW1vdmVcIiksXG4gICAgICByZW1vdmFsUmVqZWN0TGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwicGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmNhbmNlbFwiKSxcbiAgIH07XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgbWF4RmlsZVNpemU6IG51bWJlcjtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBhY2NlcHQ6IHN0cmluZztcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBzdXBwb3J0ZWRFeHRlbnNpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIGltYWdlOiBzdHJpbmc7XG5cbiAgIEBWaWV3Q2hpbGQoXCJ1cGxvYWRQaWN0dXJlXCIpXG4gICBwdWJsaWMgdXBsb2FkUGljdHVyZTogRWxlbWVudFJlZjtcblxuICAgQFZpZXdDaGlsZChcImluZm9cIilcbiAgIHB1YmxpYyBpbmZvOiBFbGVtZW50UmVmO1xuXG4gICBAVmlld0NoaWxkKFwidGh1bWJuYWlsXCIsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgcHVibGljIHRodW1ibmFpbDogRWxlbWVudFJlZjtcblxuICAgQFZpZXdDaGlsZChcImZpbGVJbnB1dFwiLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgIHB1YmxpYyBmaWxlSW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgIEBPdXRwdXQoKVxuICAgcHVibGljIGNoYW5nZWRJbWFnZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgIEBPdXRwdXQoKVxuICAgcHVibGljIHJlbW92ZWRJbWFnZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgQE91dHB1dCgpXG4gICBwdWJsaWMgaW52YWxpZEZpbGU6IEV2ZW50RW1pdHRlcjxGaWxlVmFsaWRhdGlvbkVycm9ycz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgIHByaXZhdGUgX3ZhbHVlOiBQcm9maWxlUGljdHVyZVBpY2tlckRhdGE7XG4gICBwcml2YXRlIF9vbkNoYW5nZTogKHZhbHVlOiBQcm9maWxlUGljdHVyZVBpY2tlckRhdGEpID0+IHZvaWQ7XG4gICBwcml2YXRlIF9vblRvdWNoZWQ6ICh2YWx1ZTogUHJvZmlsZVBpY3R1cmVQaWNrZXJEYXRhKSA9PiB2b2lkO1xuXG4gICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW1hZ2VDcm9wcGVyU2VydmljZTogSW1hZ2VDcm9wcGVyU2VydmljZSxcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICkgeyB9XG5cbiAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICB9XG5cbiAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgdGhpcy5fb25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgIH1cblxuICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgIHRoaXMuX29uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgIH1cblxuICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy5fbm9ybWFsaXplU3Vwb3J0ZWRFeHRlbnNpb25zKCk7XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJkcmFnb3ZlclwiLCBbXCIkZXZlbnRcIl0pXG4gICBwdWJsaWMgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJkcmFnbGVhdmVcIiwgW1wiJGV2ZW50XCJdKVxuICAgcHVibGljIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcImRyb3BcIiwgW1wiJGV2ZW50XCJdKVxuICAgcHVibGljIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgIGNvbnN0IGZpbGVzOiBGaWxlW10gPSBbXTtcbiAgICAgIGNvbnN0IGRhdGFUcmFuc2ZlckZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGFUcmFuc2ZlckZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICBmaWxlcy5wdXNoKGRhdGFUcmFuc2ZlckZpbGVzLml0ZW0oaSkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9zaG93SW1hZ2VDcm9wcGVyKGZpbGVzKTtcbiAgIH1cblxuICAgLy8gVmVyaWZpY2FuZG8gbyByZWRpbWVuc2lvbmFtZW50byBwYXJhIGFqdXN0YXIgbyBkZXNpZ24gcGFyYSBmaWNhciByZXNwb25zaXZvLlxuICAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIilcbiAgIHB1YmxpYyBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnVwbG9hZFBpY3R1cmUgJiYgdGhpcy5pbmZvICYmIHRoaXMudGh1bWJuYWlsKSB7XG4gICAgICAgICBjb25zdCB1cGxvYWRQaWN0dXJlV2lkdGggPSB0aGlzLl9nZXRXaWR0aEVsZW1lbnQodGhpcy51cGxvYWRQaWN0dXJlKTtcbiAgICAgICAgIGNvbnN0IGluZm9XaWR0aCA9IHRoaXMuX2dldFdpZHRoRWxlbWVudCh0aGlzLmluZm8pO1xuICAgICAgICAgY29uc3QgdGh1bWJuYWlsV2lkdGggPSB0aGlzLl9nZXRXaWR0aEVsZW1lbnQodGhpcy50aHVtYm5haWwpO1xuXG4gICAgICAgICBpZiAodGh1bWJuYWlsV2lkdGggKyBpbmZvV2lkdGggPiB1cGxvYWRQaWN0dXJlV2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkUGljdHVyZS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJ1cGxvYWQtcGljdHVyZS0tc21hbGxcIik7XG4gICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRQaWN0dXJlLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcInVwbG9hZC1waWN0dXJlLS1zbWFsbFwiKTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgcHVibGljIHNlbGVjdFBob3RvKCk6IHZvaWQge1xuICAgICAgY29uc3QgZmlsZUlucHV0RWxlbWVudCA9IHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBmaWxlSW5wdXRFbGVtZW50LnZhbHVlID0gXCJcIjtcbiAgICAgIGZpbGVJbnB1dEVsZW1lbnQuY2xpY2soKTtcbiAgIH1cblxuICAgcHVibGljIHJlbW92ZVBob3RvKCk6IHZvaWQge1xuICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgbWVzc2FnZTogdGhpcy5jb25maXJtYXRpb25UZXh0cy5yZW1vdmFsTWVzc2FnZSxcbiAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLmNvbmZpcm1hdGlvblRleHRzLnJlbW92YWxBY2NlcHRMYWJlbCxcbiAgICAgICAgIHJlamVjdExhYmVsOiB0aGlzLmNvbmZpcm1hdGlvblRleHRzLnJlbW92YWxSZWplY3RMYWJlbCxcbiAgICAgICAgIGhlYWRlcjogdGhpcy5jb25maXJtYXRpb25UZXh0cy5yZW1vdmFsSGVhZGVyLFxuICAgICAgICAgYWNjZXB0OiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWxlSW5wdXRFbGVtZW50ID0gdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGZpbGVJbnB1dEVsZW1lbnQudmFsdWUgPSBcIlwiO1xuICAgICAgICAgICAgdGhpcy5pbWFnZSA9IFwiXCI7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZWRJbWFnZS5lbWl0KCk7XG4gICAgICAgICB9LFxuICAgICAgfSk7XG4gICB9XG5cbiAgIHB1YmxpYyBwaG90b1NlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgIHRoaXMuX3Nob3dJbWFnZUNyb3BwZXIoZXZlbnQuc3JjRWxlbWVudC5maWxlcyk7XG4gICB9XG5cbiAgIHByaXZhdGUgX3Nob3dJbWFnZUNyb3BwZXIoZmlsZXM6IEZpbGVbXSk6IHZvaWQge1xuICAgICAgaWYgKCF0aGlzLl92YWxpZGF0ZURhdGEoZmlsZXMpKSB7XG4gICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1swXTtcblxuICAgICAgY29uc3QgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICBmaWxlUmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICBmaWxlUmVhZGVyLm9ubG9hZGVuZCA9IChmaWxlRXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgdGhpcy5pbWFnZUNyb3BwZXJTZXJ2aWNlLnNob3coe1xuICAgICAgICAgICAgaW1hZ2VTb3VyY2U6IGZpbGVFdmVudC50YXJnZXQucmVzdWx0LFxuICAgICAgICAgICAgY3JvcHBlZEltYWdlOiBpbWFnZSA9PiB7XG4gICAgICAgICAgICAgICB0aGlzLmltYWdlID0gaW1hZ2U7XG4gICAgICAgICAgICAgICB0aGlzLmNoYW5nZWRJbWFnZS5lbWl0KGltYWdlKTtcbiAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0geyBzb3VyY2VGaWxlOiBmaWxlLCBiYXNlNjQ6IGltYWdlIH07XG4gICAgICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2hhbmdlSW1hZ2U6ICgpID0+IHRoaXMuc2VsZWN0UGhvdG8oKSxcbiAgICAgICAgICAgIGFsbG93U2VsZWN0QW5vdGhlcjogZmFsc2UsXG4gICAgICAgICAgICBhc3BlY3RSYXRpbzogdGhpcy5hc3BlY3RSYXRpbyxcbiAgICAgICAgICAgIC4uLnRoaXMuY3JvcHBlckxhYmVsc0NvbmZpZyxcbiAgICAgICAgIH0pO1xuICAgICAgfTtcbiAgIH1cblxuICAgcHJpdmF0ZSBfbm9ybWFsaXplU3Vwb3J0ZWRFeHRlbnNpb25zKCk6IHZvaWQge1xuICAgICAgdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zID0gdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zXG4gICAgICAgICA/Lm1hcChleHRlbnNpb24gPT4gZXh0ZW5zaW9uLnJlcGxhY2UoXCIuXCIsIFwiXCIpLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xuICAgfVxuXG4gICBwcml2YXRlIF92YWxpZGF0ZURhdGEoZmlsZXM6IEZpbGVbXSk6IGJvb2xlYW4ge1xuICAgICAgaWYgKCFmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpbGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgIHRoaXMuaW52YWxpZEZpbGUuZW1pdCh7IGZpbGU6IG51bGwsIHZhbGlkYXRpb246IEZpbGVWYWxpZGF0aW9uLk1heEZpbGVMaW1pdCB9KTtcbiAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZSA9IGZpbGVzWzBdO1xuXG4gICAgICBpZiAoIWZpbGUudHlwZS5pbmNsdWRlcyhcImltYWdlXCIpKSB7XG4gICAgICAgICB0aGlzLmludmFsaWRGaWxlLmVtaXQoeyBmaWxlLCB2YWxpZGF0aW9uOiBGaWxlVmFsaWRhdGlvbi5UeXBlSW52YWxpZCB9KTtcbiAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLl92YWxpZGF0ZUZpbGVFeHRlbnNpb24oZmlsZSkpIHtcbiAgICAgICAgIHRoaXMuaW52YWxpZEZpbGUuZW1pdCh7IGZpbGUsIHZhbGlkYXRpb246IEZpbGVWYWxpZGF0aW9uLlVuc3VwcG9ydGVkRXh0ZW5zaW9uIH0pO1xuICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuX3ZhbGlkYXRlRmlsZVNpemUoZmlsZSkpIHtcbiAgICAgICAgIHRoaXMuaW52YWxpZEZpbGUuZW1pdCh7IGZpbGUsIHZhbGlkYXRpb246IEZpbGVWYWxpZGF0aW9uLk1heEZpbGVTaXplIH0pO1xuICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgIH1cblxuICAgcHJpdmF0ZSBfdmFsaWRhdGVGaWxlRXh0ZW5zaW9uKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgIGlmICh0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZS5uYW1lLnNwbGl0KFwiLlwiKS5wb3AoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgcmV0dXJuIHRoaXMuc3VwcG9ydGVkRXh0ZW5zaW9ucy5pbmNsdWRlcyhleHRlbnNpb24pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICB9XG5cbiAgIHByaXZhdGUgX3ZhbGlkYXRlRmlsZVNpemUoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgaWYgKHRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgICAgIHJldHVybiBmaWxlLnNpemUgPiB0aGlzLm1heEZpbGVTaXplO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICB9XG5cbiAgIHByaXZhdGUgX2dldFdpZHRoRWxlbWVudChlbGVtZW50OiBFbGVtZW50UmVmKTogbnVtYmVyIHtcbiAgICAgIGNvbnN0IHsgbGVmdCwgcmlnaHQgfSA9IGVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHJldHVybiByaWdodCAtIGxlZnQ7XG4gICB9XG59XG4iXX0=
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { NgModule } from "@angular/core";
|
|
3
2
|
import { CommonModule } from "@angular/common";
|
|
4
|
-
import {
|
|
3
|
+
import { NgModule } from "@angular/core";
|
|
4
|
+
import { TranslateModule } from "@ngx-translate/core";
|
|
5
5
|
import { ConfirmationService } from "primeng/api";
|
|
6
|
+
import { ConfirmDialogModule } from "primeng/confirmdialog";
|
|
6
7
|
import { ButtonModule } from '../button/button.module';
|
|
7
|
-
import { ThumbnailModule } from '../thumbnail/thumbnail.module';
|
|
8
8
|
import { ImageCropperModule } from '../image-cropper/image-cropper.module';
|
|
9
9
|
import { ImageCropperService } from '../image-cropper/image-cropper.service';
|
|
10
|
+
import { ThumbnailModule } from '../thumbnail/thumbnail.module';
|
|
10
11
|
import { ProfilePicturePickerComponent } from "./profile-picture-picker.component";
|
|
11
12
|
var ProfilePicturePickerModule = /** @class */ (function () {
|
|
12
13
|
function ProfilePicturePickerModule() {
|
|
@@ -15,6 +16,7 @@ var ProfilePicturePickerModule = /** @class */ (function () {
|
|
|
15
16
|
NgModule({
|
|
16
17
|
imports: [
|
|
17
18
|
CommonModule,
|
|
19
|
+
TranslateModule,
|
|
18
20
|
ButtonModule,
|
|
19
21
|
ThumbnailModule,
|
|
20
22
|
ImageCropperModule,
|
|
@@ -31,4 +33,4 @@ var ProfilePicturePickerModule = /** @class */ (function () {
|
|
|
31
33
|
return ProfilePicturePickerModule;
|
|
32
34
|
}());
|
|
33
35
|
export { ProfilePicturePickerModule };
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1waWN0dXJlLXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wcm9maWxlLXBpY3R1cmUtcGlja2VyL3Byb2ZpbGUtcGljdHVyZS1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFrQm5GO0lBQUE7SUFBMEMsQ0FBQztJQUE5QiwwQkFBMEI7UUFoQnRDLFFBQVEsQ0FBQztZQUNQLE9BQU8sRUFBRTtnQkFDTixZQUFZO2dCQUNaLGVBQWU7Z0JBQ2YsWUFBWTtnQkFDWixlQUFlO2dCQUNmLGtCQUFrQjtnQkFDbEIsbUJBQW1CO2FBQ3JCO1lBQ0QsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7WUFDN0MsT0FBTyxFQUFFLENBQUMsNkJBQTZCLENBQUM7WUFDeEMsU0FBUyxFQUFFO2dCQUNSLG1CQUFtQjtnQkFDbkIsbUJBQW1CO2FBQ3JCO1NBQ0gsQ0FBQztPQUNXLDBCQUEwQixDQUFJO0lBQUQsaUNBQUM7Q0FBQSxBQUEzQyxJQUEyQztTQUE5QiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvY29uZmlybWRpYWxvZ1wiO1xuXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBJbWFnZUNyb3BwZXJNb2R1bGUgfSBmcm9tICcuLi9pbWFnZS1jcm9wcGVyL2ltYWdlLWNyb3BwZXIubW9kdWxlJztcbmltcG9ydCB7IEltYWdlQ3JvcHBlclNlcnZpY2UgfSBmcm9tICcuLi9pbWFnZS1jcm9wcGVyL2ltYWdlLWNyb3BwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUaHVtYm5haWxNb2R1bGUgfSBmcm9tICcuLi90aHVtYm5haWwvdGh1bWJuYWlsLm1vZHVsZSc7XG5pbXBvcnQgeyBQcm9maWxlUGljdHVyZVBpY2tlckNvbXBvbmVudCB9IGZyb20gXCIuL3Byb2ZpbGUtcGljdHVyZS1waWNrZXIuY29tcG9uZW50XCI7XG5cbkBOZ01vZHVsZSh7XG4gICBpbXBvcnRzOiBbXG4gICAgICBDb21tb25Nb2R1bGUsXG4gICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICBCdXR0b25Nb2R1bGUsXG4gICAgICBUaHVtYm5haWxNb2R1bGUsXG4gICAgICBJbWFnZUNyb3BwZXJNb2R1bGUsXG4gICAgICBDb25maXJtRGlhbG9nTW9kdWxlLFxuICAgXSxcbiAgIGRlY2xhcmF0aW9uczogW1Byb2ZpbGVQaWN0dXJlUGlja2VyQ29tcG9uZW50XSxcbiAgIGV4cG9ydHM6IFtQcm9maWxlUGljdHVyZVBpY2tlckNvbXBvbmVudF0sXG4gICBwcm92aWRlcnM6IFtcbiAgICAgIEltYWdlQ3JvcHBlclNlcnZpY2UsXG4gICAgICBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZVBpY3R1cmVQaWNrZXJNb2R1bGUgeyB9Il19
|
|
@@ -69,7 +69,7 @@ var TableColumnsComponent = /** @class */ (function () {
|
|
|
69
69
|
return column.prefix ? column.prefix : this.hostProjectConfigs.domain + "." + this.hostProjectConfigs.service + ".";
|
|
70
70
|
};
|
|
71
71
|
TableColumnsComponent.prototype.isAttributeValueInvalid = function (attributeValue) {
|
|
72
|
-
return attributeValue
|
|
72
|
+
return !attributeValue || (this.isArray(attributeValue) && !attributeValue.length);
|
|
73
73
|
};
|
|
74
74
|
TableColumnsComponent.prototype.getFormattedColumnValue = function (column, columnValue, unifiedColumnValues, uninformedText, uninformedNumber) {
|
|
75
75
|
if (uninformedNumber === column.attributes.length) {
|
|
@@ -251,4 +251,4 @@ var TableColumnsComponent = /** @class */ (function () {
|
|
|
251
251
|
return TableColumnsComponent;
|
|
252
252
|
}());
|
|
253
253
|
export { TableColumnsComponent };
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90YWJsZS90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0gsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFjLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sU0FBUyxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUVsQyxPQUFPLEVBRUgsZ0NBQWdDLEVBQ25DLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsT0FBTyxFQUdILG1CQUFtQixFQUV0QixNQUFNLFVBQVUsQ0FBQztBQUVsQixJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFPdkI7SUFlSSwrQkFDcUIsZ0JBQWtDLEVBQ2xDLFNBQTJCLEVBQ2Usa0JBQXNDO1FBRmhGLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDZSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBTDlGLHFCQUFnQixHQUFtQixFQUFFLENBQUM7SUFNMUMsQ0FBQztJQUVKLDJDQUFXLEdBQVgsVUFBWSxPQUFzQjtRQUM5QixJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUMsSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxLQUFLLE9B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V0FBQSxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtPQWxCcEMscUJBQXFCLENBc1JqQztJQUFELDRCQUFDO0NBQUEsQUF0UkQsSUFzUkM7U0F0UlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IE1hc2tDb25maWcsIGFwcGx5TWFzayB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvbmcyLWN1cnJlbmN5LW1hc2tcIjtcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSBcImJpZ251bWJlci5qc1wiO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tIFwibW9tZW50XCI7XG5cbmltcG9ydCB7XG4gICAgSG9zdFByb2plY3RDb25maWdzLFxuICAgIEhvc3RQcm9qZWN0Q29uZmlnc0luamVjdGlvblRva2VuXG59IGZyb20gXCIuLi8uLi8uLi9hbmd1bGFyLWNvbXBvbmVudHMubW9kdWxlXCI7XG5pbXBvcnQgeyBJVG9rZW4gfSBmcm9tIFwiLi4vLi4vdG9rZW4tbGlzdFwiO1xuaW1wb3J0IHtcbiAgICBDb2x1bW4sXG4gICAgQ29sdW1uVmFsdWVzLFxuICAgIEVudW1Db2x1bW5GaWVsZFR5cGUsXG4gICAgVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zXG59IGZyb20gXCIuL21vZGVsc1wiO1xuXG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3RhYmxlLWNvbHVtbnMuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vdGFibGUtY29sdW1ucy5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICBzZWxlY3RvcjogXCJzLXRhYmxlLWNvbHVtbnNcIixcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5zQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICAgIEBWaWV3Q2hpbGQoXCJjb2x1bW5zVGVtcGxhdGVcIiwgeyBzdGF0aWM6IHRydWUgfSkgY29sdW1uc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sdW1ucyE6IENvbHVtbltdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm93VmFsdWUhOiBhbnk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb2NhbGUhOiBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnM7XG5cbiAgICBwdWJsaWMgZm9ybWF0dGVkQ29sdW1uczogQ29sdW1uVmFsdWVzW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KEhvc3RQcm9qZWN0Q29uZmlnc0luamVjdGlvblRva2VuKSBwcml2YXRlIHJlYWRvbmx5IGhvc3RQcm9qZWN0Q29uZmlnczogSG9zdFByb2plY3RDb25maWdzXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQ29tcG9uZW50QXR0cmlidXRlcyhjaGFuZ2VzKTtcblxuICAgICAgICBpZiAoY2hhbmdlcy5jb2x1bW5zICYmIGNoYW5nZXMuY29sdW1ucy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY29sdW1ucy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLnNvcnRDb2x1bW5zQnlTZXF1ZW5jZShjaGFuZ2VzLmNvbHVtbnMuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3JlYXRlQ29sdW1uc1RlbXBsYXRlKGNoYW5nZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0FycmF5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTcGxpdHRlZFN0cmluZyhjb2x1bW46IENvbHVtblZhbHVlcyk6IHsgdmFsdWU6IHN0cmluZywgaXNVbmluZm9ybWVkOiBib29sZWFuLCBzZXBhcmF0b3I6IHN0cmluZyB9W10ge1xuICAgICAgICBjb25zdCB7IGNvbHVtblZhbHVlLCBzZXBhcmF0b3IsIHVuaW5mb3JtZWQgfSA9IGNvbHVtbjtcbiAgICAgICAgaWYgKHR5cGVvZiBjb2x1bW5WYWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgY29uc3Qgc3BsaXR0ZWRTdHJpbmcgPSBjb2x1bW5WYWx1ZS5zcGxpdChzZXBhcmF0b3IpO1xuICAgICAgICAgICAgcmV0dXJuIHNwbGl0dGVkU3RyaW5nLm1hcCgoc3RyaW5nLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzTGFzdEluZGV4ID0gc3BsaXR0ZWRTdHJpbmcubGVuZ3RoIC0gMSA9PT0gaW5kZXg7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgaXNVbmluZm9ybWVkOiBzdHJpbmcgPT09IHVuaW5mb3JtZWQsXG4gICAgICAgICAgICAgICAgICAgIHNlcGFyYXRvcjogIWlzTGFzdEluZGV4ID8gc2VwYXJhdG9yIDogXCJcIlxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVDb21wb25lbnRBdHRyaWJ1dGVzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbHVtbnMgJiYgIWNoYW5nZXMuY29sdW1ucz8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ2NvbHVtbnMnIGF0dHJpYnV0ZSBtdXN0IGJlIGluZm9ybWVkIVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucm93VmFsdWUgJiYgIWNoYW5nZXMucm93VmFsdWU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlICdyb3dWYWx1ZScgYXR0cmlidXRlIG11c3QgYmUgaW5mb3JtZWQhXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5sb2NhbGUgJiYgIWNoYW5nZXMubG9jYWxlPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSAnbG9jYWxlJyBhdHRyaWJ1dGUgbXVzdCBiZSBpbmZvcm1lZCFcIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNvbHVtbnNUZW1wbGF0ZShjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuXG4gICAgICAgIGNvbnN0IGNvbHVtbnM6IENvbHVtbltdID0gY2hhbmdlcy5jb2x1bW5zPy5jdXJyZW50VmFsdWUgfHwgdGhpcy5jb2x1bW5zO1xuICAgICAgICBjb25zdCByb3dWYWx1ZTogb2JqZWN0ID0gY2hhbmdlcy5yb3dWYWx1ZT8uY3VycmVudFZhbHVlIHx8IHRoaXMucm93VmFsdWU7XG4gICAgICAgIGNvbnN0IGxvY2FsZTogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zID0gY2hhbmdlcy5sb2NhbGU/LmN1cnJlbnRWYWx1ZSB8fCB0aGlzLmxvY2FsZTtcblxuICAgICAgICB0aGlzLmZvcm1hdHRlZENvbHVtbnMgPSBbXTtcbiAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHRoaXMuZm9ybWF0dGVkQ29sdW1ucy5wdXNoKHRoaXMuZ2V0Q29sdW1uVmFsdWUoY29sdW1uLCByb3dWYWx1ZSwgbG9jYWxlKSkpO1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuY29sdW1uc1RlbXBsYXRlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblNlcGFyYXRvcihjb2x1bW46IENvbHVtbikge1xuICAgICAgICByZXR1cm4gY29sdW1uLnNlcGFyYXRvciA/IGNvbHVtbi5zZXBhcmF0b3IgOiBcIiAtIFwiO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VHJhbnNsYXRpb25QcmVmaXgoY29sdW1uOiBDb2x1bW4pIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5wcmVmaXggPyBjb2x1bW4ucHJlZml4IDogYCR7dGhpcy5ob3N0UHJvamVjdENvbmZpZ3MuZG9tYWlufS4ke3RoaXMuaG9zdFByb2plY3RDb25maWdzLnNlcnZpY2V9LmA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0F0dHJpYnV0ZVZhbHVlSW52YWxpZChhdHRyaWJ1dGVWYWx1ZTogYW55KSB7XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVWYWx1ZSA9PT0gbnVsbCB8fCBhdHRyaWJ1dGVWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8ICh0aGlzLmlzQXJyYXkoYXR0cmlidXRlVmFsdWUpICYmICFhdHRyaWJ1dGVWYWx1ZS5sZW5ndGgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9ybWF0dGVkQ29sdW1uVmFsdWUoY29sdW1uOiBDb2x1bW4sIGNvbHVtblZhbHVlOiBhbnlbXSwgdW5pZmllZENvbHVtblZhbHVlczogc3RyaW5nLFxuICAgICAgICB1bmluZm9ybWVkVGV4dDogc3RyaW5nLCB1bmluZm9ybWVkTnVtYmVyOiBudW1iZXIpIHtcblxuICAgICAgICBpZiAodW5pbmZvcm1lZE51bWJlciA9PT0gY29sdW1uLmF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5pbmZvcm1lZFRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29sdW1uLnR5cGUgPT09IEVudW1Db2x1bW5GaWVsZFR5cGUuVE9LRU5TKSB7XG4gICAgICAgICAgICByZXR1cm4gW10uY29uY2F0LmFwcGx5KFtdLCBjb2x1bW5WYWx1ZS5maWx0ZXIodmFsdWVzID0+IHZhbHVlcyAhPT0gdW5pbmZvcm1lZFRleHQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1bmlmaWVkQ29sdW1uVmFsdWVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QXR0cmlidXRlVmFsdWUoYXR0cmlidXRlOiBzdHJpbmcsIHJvd1ZhbHVlOiBvYmplY3QpIHtcbiAgICAgICAgbGV0IGF0dHJpYnV0ZVZhbHVlITogYW55O1xuXG4gICAgICAgIGF0dHJpYnV0ZVxuICAgICAgICAgICAgLnNwbGl0KFwiL1wiKVxuICAgICAgICAgICAgLmZvckVhY2goKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWF0dHJpYnV0ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCIuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgodmFsOiBzdHJpbmcsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJvd1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9IHJvd1ZhbHVlW3ZhbF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9IGF0dHJpYnV0ZVZhbHVlW3ZhbF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVWYWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE51bWJlckNvbmZpZ3MoY29sdW1uOiBDb2x1bW4sIGxvY2FsZTogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zKTogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5sb2NhbGUubnVtYmVyLFxuICAgICAgICAgICAgc2NhbGU6IGNvbHVtbi5zY2FsZSAhPT0gbnVsbCAmJiBjb2x1bW4uc2NhbGUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gdGhpcy5nZXRDb2x1bW5TY2FsZShjb2x1bW4uc2NhbGUpXG4gICAgICAgICAgICAgICAgOiBsb2NhbGUubnVtYmVyLnNjYWxlLFxuICAgICAgICAgICAgcHJlZml4OiBgJHtsb2NhbGUubnVtYmVyLmN1cnJlbmN5U3ltYm9sfSBgXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREYXRlRm9ybWF0KGNvbHVtbjogQ29sdW1uLCBsb2NhbGU6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucykge1xuICAgICAgICByZXR1cm4gY29sdW1uLmRhdGVGb3JtYXQgPyBjb2x1bW4uZGF0ZUZvcm1hdCA6IGxvY2FsZS5jYWxlbmRhci5kYXRlRm9ybWF0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uVmFsdWUoY29sdW1uOiBDb2x1bW4sIHJvd1ZhbHVlOiBvYmplY3QsIGxvY2FsZTogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zKTogQ29sdW1uVmFsdWVzIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gdGhpcy5nZXRUcmFuc2xhdGlvblByZWZpeChjb2x1bW4pO1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSB0aGlzLmdldENvbHVtblNlcGFyYXRvcihjb2x1bW4pO1xuICAgICAgICBjb25zdCB1bmluZm9ybWVkID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChwcmVmaXggKyBcImVtcHR5X2xhYmVsXCIpO1xuICAgICAgICBjb25zdCBzdHlsZSA9IGNvbHVtbi5zdHlsZTtcblxuICAgICAgICBjb25zdCBjb2x1bW5WYWx1ZSA9IGNvbHVtbi5hdHRyaWJ1dGVzXG4gICAgICAgICAgICAubWFwKChhdHRyaWJ1dGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGVWYWx1ZShhdHRyaWJ1dGUsIHJvd1ZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQXR0cmlidXRlVmFsdWVJbnZhbGlkKGF0dHJpYnV0ZVZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5pbmZvcm1lZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBudW1iZXJDb25maWdzID0gdGhpcy5nZXROdW1iZXJDb25maWdzKGNvbHVtbiwgbG9jYWxlKTtcblxuICAgICAgICAgICAgICAgIHN3aXRjaCAoY29sdW1uLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkVOVU06XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChjb2x1bW4uZW51bVByZWZpeCArIGF0dHJpYnV0ZVZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkNVUlJFTkNZOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5TWFzayhhdHRyaWJ1dGVWYWx1ZSwgbnVtYmVyQ29uZmlncywgdGhpcy5pc051bWJlcihhdHRyaWJ1dGVWYWx1ZSkpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5EQVRFOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZUZvcm1hdCA9IHRoaXMuZ2V0RGF0ZUZvcm1hdChjb2x1bW4sIGxvY2FsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9tZW50KGF0dHJpYnV0ZVZhbHVlKS5mb3JtYXQoZGF0ZUZvcm1hdCk7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkJPT0xFQU46XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlID8gXCJ5ZXNcIiA6IFwibm9cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHByZWZpeCArIHZhbHVlKTtcblxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuTlVNQkVSOlxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyQ29uZmlncy5wcmVmaXggPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5TWFzayhhdHRyaWJ1dGVWYWx1ZSwgbnVtYmVyQ29uZmlncywgdGhpcy5pc051bWJlcihhdHRyaWJ1dGVWYWx1ZSkpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5UT0tFTlM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUb2tlbnMoYXR0cmlidXRlVmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXR0cmlidXRlVmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgdW5pZmllZENvbHVtblZhbHVlcyA9IGNvbHVtblZhbHVlLmpvaW4oc2VwYXJhdG9yKTtcbiAgICAgICAgY29uc3QgdW5pbmZvcm1lZE51bWJlciA9IHVuaWZpZWRDb2x1bW5WYWx1ZXNcbiAgICAgICAgICAgIC5zcGxpdChzZXBhcmF0b3IpXG4gICAgICAgICAgICAuZmlsdGVyKHZhbHVlID0+IHZhbHVlID09PSB1bmluZm9ybWVkKS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZENvbHVtblZhbHVlID0gdGhpcy5nZXRGb3JtYXR0ZWRDb2x1bW5WYWx1ZShjb2x1bW4sIGNvbHVtblZhbHVlLCB1bmlmaWVkQ29sdW1uVmFsdWVzLCB1bmluZm9ybWVkLCB1bmluZm9ybWVkTnVtYmVyKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3R5bGUsXG4gICAgICAgICAgICBjb2x1bW5WYWx1ZTogZm9ybWF0dGVkQ29sdW1uVmFsdWUsXG4gICAgICAgICAgICBzZXBhcmF0b3IsXG4gICAgICAgICAgICB1bmluZm9ybWVkLFxuICAgICAgICAgICAgYmFkZ2VDb25maWdzOiBjb2x1bW4/LmJhZGdlQ29uZmlncz8uZmluZChcbiAgICAgICAgICAgICAgICAoYmFkZ2VDb25maWcpID0+IGJhZGdlQ29uZmlnLmVudW1WYWx1ZSA9PT0gcm93VmFsdWVbY29sdW1uLmF0dHJpYnV0ZXNbMF0gPz8gY29sdW1uLmZpZWxkXVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHR5cGU6IGNvbHVtbi50eXBlLFxuICAgICAgICAgICAgdG9vbHRpcDogdGhpcy5nZXRDb2x1bW5Ub29sdGlwKGNvbHVtbi50b29sdGlwKSxcbiAgICAgICAgICAgIGluZm9TaWduOiB0aGlzLmdldENvbHVtbkluZm9TaWduKGNvbHVtbi5pbmZvU2lnbiksXG4gICAgICAgICAgICBvbkxpbmtDbGljazogY29sdW1uLm9uTGlua0NsaWNrLFxuICAgICAgICAgICAgb25Db2x1bW5DbGljazogY29sdW1uLm9uQ29sdW1uQ2xpY2tcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblNjYWxlKHNjYWxlOiBudW1iZXIgfCAoKHJvd1ZhbHVlOiBhbnkpID0+IG51bWJlcikpOiBudW1iZXIge1xuICAgICAgICBpZiAodHlwZW9mIHNjYWxlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBzY2FsZSh0aGlzLnJvd1ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2NhbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5JbmZvU2lnbihpbmZvU2lnbjogc3RyaW5nIHwgKChyb3dWYWx1ZTogYW55KSA9PiBzdHJpbmcpKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGluZm9TaWduICE9PSB1bmRlZmluZWQgJiYgaW5mb1NpZ24gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5mb1NpZ24gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpbmZvU2lnbih0aGlzLnJvd1ZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpbmZvU2lnbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblRvb2x0aXAodG9vbHRpcDogc3RyaW5nIHwgKChyb3dWYWx1ZTogYW55KSA9PiBzdHJpbmcpKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRvb2x0aXAgIT09IHVuZGVmaW5lZCAmJiB0b29sdGlwICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRvb2x0aXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b29sdGlwKHRoaXMucm93VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRvb2x0aXA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc051bWJlcih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhKG5ldyBCaWdOdW1iZXIodmFsdWUpLmlzTmFOKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VG9rZW5zKHZhbHVlczogYW55KTogSVRva2VuW10ge1xuICAgICAgICBpZiAoIXRoaXMuaXNBcnJheSh2YWx1ZXMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUbyB1c2UgdG9rZW5zIGFuIGFycmF5IG11c3QgYmUgaW5mb3JtZWRcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZFRva2VuQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm90IGEgdmFsaWQgdG9rZW4gYXJyYXkuIE11c3QgYmUgYSBwcmltaXRpdmUgdmFsdWVzIGFycmF5IG9yIGFuIG9iamVjdHMgd2l0aCBsYWJlbCBhdHRyaWJ1dGUgYXJyYXlcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0xhYmVsT2JqZWN0QXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZXNcbiAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlOiBhbnkpID0+IHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpXG4gICAgICAgICAgICAubWFwKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0eXBlb2YgdmFsdWUgPT09IFwic3ltYm9sXCIgPyB2YWx1ZS50b1N0cmluZygpIDogYCR7dmFsdWV9YDtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRUb2tlbkFycmF5KHZhbHVlczogYW55W10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNQcmltaXRpdmVWYWx1ZXNBcnJheSh2YWx1ZXMpIHx8IHRoaXMuaXNMYWJlbE9iamVjdEFycmF5KHZhbHVlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ByaW1pdGl2ZVZhbHVlc0FycmF5KHZhbHVlczogYW55W10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5maWx0ZXIodmFsdWUgPT4gdmFsdWUgIT09IE9iamVjdCh2YWx1ZSkpLmxlbmd0aCA9PT0gdmFsdWVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTGFiZWxPYmplY3RBcnJheSh2YWx1ZXM6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZXMuZmlsdGVyKHZhbHVlID0+IHZhbHVlPy5sYWJlbCAhPT0gbnVsbCAmJiB2YWx1ZT8ubGFiZWwgIT09IHVuZGVmaW5lZCkubGVuZ3RoID09PSB2YWx1ZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydENvbHVtbnNCeVNlcXVlbmNlKGNvbHVtbnM6IENvbHVtbltdKTogQ29sdW1uW10ge1xuICAgICAgICByZXR1cm4gY29sdW1ucy5zb3J0KChhLCBiKSA9PiBhLnNlcXVlbmNlIC0gYi5zZXF1ZW5jZSk7XG4gICAgfVxufVxuIl19
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90YWJsZS90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0gsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFjLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sU0FBUyxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUVsQyxPQUFPLEVBRUgsZ0NBQWdDLEVBQ25DLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsT0FBTyxFQUdILG1CQUFtQixFQUV0QixNQUFNLFVBQVUsQ0FBQztBQUVsQixJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFPdkI7SUFlSSwrQkFDcUIsZ0JBQWtDLEVBQ2xDLFNBQTJCLEVBQ2Usa0JBQXNDO1FBRmhGLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDZSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBTDlGLHFCQUFnQixHQUFtQixFQUFFLENBQUM7SUFNMUMsQ0FBQztJQUVKLDJDQUFXLEdBQVgsVUFBWSxPQUFzQjtRQUM5QixJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUMsSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxLQUFLLE9B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QyxDQUFBO09BbEJwQyxxQkFBcUIsQ0FzUmpDO0lBQUQsNEJBQUM7Q0FBQSxBQXRSRCxJQXNSQztTQXRSWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTWFza0NvbmZpZywgYXBwbHlNYXNrIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9uZzItY3VycmVuY3ktbWFza1wiO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tIFwiYmlnbnVtYmVyLmpzXCI7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gXCJtb21lbnRcIjtcblxuaW1wb3J0IHtcbiAgICBIb3N0UHJvamVjdENvbmZpZ3MsXG4gICAgSG9zdFByb2plY3RDb25maWdzSW5qZWN0aW9uVG9rZW5cbn0gZnJvbSBcIi4uLy4uLy4uL2FuZ3VsYXItY29tcG9uZW50cy5tb2R1bGVcIjtcbmltcG9ydCB7IElUb2tlbiB9IGZyb20gXCIuLi8uLi90b2tlbi1saXN0XCI7XG5pbXBvcnQge1xuICAgIENvbHVtbixcbiAgICBDb2x1bW5WYWx1ZXMsXG4gICAgRW51bUNvbHVtbkZpZWxkVHlwZSxcbiAgICBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnNcbn0gZnJvbSBcIi4vbW9kZWxzXCI7XG5cbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcIi4vdGFibGUtY29sdW1ucy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi90YWJsZS1jb2x1bW5zLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIHNlbGVjdG9yOiBcInMtdGFibGUtY29sdW1uc1wiLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgQFZpZXdDaGlsZChcImNvbHVtbnNUZW1wbGF0ZVwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb2x1bW5zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb2x1bW5zITogQ29sdW1uW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByb3dWYWx1ZSE6IGFueTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvY2FsZSE6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucztcblxuICAgIHB1YmxpYyBmb3JtYXR0ZWRDb2x1bW5zOiBDb2x1bW5WYWx1ZXNbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoSG9zdFByb2plY3RDb25maWdzSW5qZWN0aW9uVG9rZW4pIHByaXZhdGUgcmVhZG9ubHkgaG9zdFByb2plY3RDb25maWdzOiBIb3N0UHJvamVjdENvbmZpZ3NcbiAgICApIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVDb21wb25lbnRBdHRyaWJ1dGVzKGNoYW5nZXMpO1xuXG4gICAgICAgIGlmIChjaGFuZ2VzLmNvbHVtbnMgJiYgY2hhbmdlcy5jb2x1bW5zLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5jb2x1bW5zLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuc29ydENvbHVtbnNCeVNlcXVlbmNlKGNoYW5nZXMuY29sdW1ucy5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jcmVhdGVDb2x1bW5zVGVtcGxhdGUoY2hhbmdlcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQXJyYXkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNwbGl0dGVkU3RyaW5nKGNvbHVtbjogQ29sdW1uVmFsdWVzKTogeyB2YWx1ZTogc3RyaW5nLCBpc1VuaW5mb3JtZWQ6IGJvb2xlYW4sIHNlcGFyYXRvcjogc3RyaW5nIH1bXSB7XG4gICAgICAgIGNvbnN0IHsgY29sdW1uVmFsdWUsIHNlcGFyYXRvciwgdW5pbmZvcm1lZCB9ID0gY29sdW1uO1xuICAgICAgICBpZiAodHlwZW9mIGNvbHVtblZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBjb25zdCBzcGxpdHRlZFN0cmluZyA9IGNvbHVtblZhbHVlLnNwbGl0KHNlcGFyYXRvcik7XG4gICAgICAgICAgICByZXR1cm4gc3BsaXR0ZWRTdHJpbmcubWFwKChzdHJpbmcsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNMYXN0SW5kZXggPSBzcGxpdHRlZFN0cmluZy5sZW5ndGggLSAxID09PSBpbmRleDtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICBpc1VuaW5mb3JtZWQ6IHN0cmluZyA9PT0gdW5pbmZvcm1lZCxcbiAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yOiAhaXNMYXN0SW5kZXggPyBzZXBhcmF0b3IgOiBcIlwiXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUNvbXBvbmVudEF0dHJpYnV0ZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY29sdW1ucyAmJiAhY2hhbmdlcy5jb2x1bW5zPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSAnY29sdW1ucycgYXR0cmlidXRlIG11c3QgYmUgaW5mb3JtZWQhXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5yb3dWYWx1ZSAmJiAhY2hhbmdlcy5yb3dWYWx1ZT8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ3Jvd1ZhbHVlJyBhdHRyaWJ1dGUgbXVzdCBiZSBpbmZvcm1lZCFcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmxvY2FsZSAmJiAhY2hhbmdlcy5sb2NhbGU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlICdsb2NhbGUnIGF0dHJpYnV0ZSBtdXN0IGJlIGluZm9ybWVkIVwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29sdW1uc1RlbXBsYXRlKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICAgICAgY29uc3QgY29sdW1uczogQ29sdW1uW10gPSBjaGFuZ2VzLmNvbHVtbnM/LmN1cnJlbnRWYWx1ZSB8fCB0aGlzLmNvbHVtbnM7XG4gICAgICAgIGNvbnN0IHJvd1ZhbHVlOiBvYmplY3QgPSBjaGFuZ2VzLnJvd1ZhbHVlPy5jdXJyZW50VmFsdWUgfHwgdGhpcy5yb3dWYWx1ZTtcbiAgICAgICAgY29uc3QgbG9jYWxlOiBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnMgPSBjaGFuZ2VzLmxvY2FsZT8uY3VycmVudFZhbHVlIHx8IHRoaXMubG9jYWxlO1xuXG4gICAgICAgIHRoaXMuZm9ybWF0dGVkQ29sdW1ucyA9IFtdO1xuICAgICAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4gdGhpcy5mb3JtYXR0ZWRDb2x1bW5zLnB1c2godGhpcy5nZXRDb2x1bW5WYWx1ZShjb2x1bW4sIHJvd1ZhbHVlLCBsb2NhbGUpKSk7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5jb2x1bW5zVGVtcGxhdGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uU2VwYXJhdG9yKGNvbHVtbjogQ29sdW1uKSB7XG4gICAgICAgIHJldHVybiBjb2x1bW4uc2VwYXJhdG9yID8gY29sdW1uLnNlcGFyYXRvciA6IFwiIC0gXCI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUcmFuc2xhdGlvblByZWZpeChjb2x1bW46IENvbHVtbikge1xuICAgICAgICByZXR1cm4gY29sdW1uLnByZWZpeCA/IGNvbHVtbi5wcmVmaXggOiBgJHt0aGlzLmhvc3RQcm9qZWN0Q29uZmlncy5kb21haW59LiR7dGhpcy5ob3N0UHJvamVjdENvbmZpZ3Muc2VydmljZX0uYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQXR0cmlidXRlVmFsdWVJbnZhbGlkKGF0dHJpYnV0ZVZhbHVlOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuICFhdHRyaWJ1dGVWYWx1ZSB8fCAodGhpcy5pc0FycmF5KGF0dHJpYnV0ZVZhbHVlKSAmJiAhYXR0cmlidXRlVmFsdWUubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZvcm1hdHRlZENvbHVtblZhbHVlKGNvbHVtbjogQ29sdW1uLCBjb2x1bW5WYWx1ZTogYW55W10sIHVuaWZpZWRDb2x1bW5WYWx1ZXM6IHN0cmluZyxcbiAgICAgICAgdW5pbmZvcm1lZFRleHQ6IHN0cmluZywgdW5pbmZvcm1lZE51bWJlcjogbnVtYmVyKSB7XG5cbiAgICAgICAgaWYgKHVuaW5mb3JtZWROdW1iZXIgPT09IGNvbHVtbi5hdHRyaWJ1dGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuaW5mb3JtZWRUZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbHVtbi50eXBlID09PSBFbnVtQ29sdW1uRmllbGRUeXBlLlRPS0VOUykge1xuICAgICAgICAgICAgcmV0dXJuIFtdLmNvbmNhdC5hcHBseShbXSwgY29sdW1uVmFsdWUuZmlsdGVyKHZhbHVlcyA9PiB2YWx1ZXMgIT09IHVuaW5mb3JtZWRUZXh0KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5pZmllZENvbHVtblZhbHVlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEF0dHJpYnV0ZVZhbHVlKGF0dHJpYnV0ZTogc3RyaW5nLCByb3dWYWx1ZTogb2JqZWN0KSB7XG4gICAgICAgIGxldCBhdHRyaWJ1dGVWYWx1ZSE6IGFueTtcblxuICAgICAgICBhdHRyaWJ1dGVcbiAgICAgICAgICAgIC5zcGxpdChcIi9cIilcbiAgICAgICAgICAgIC5mb3JFYWNoKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFhdHRyaWJ1dGVWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiLlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKHZhbDogc3RyaW5nLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyb3dWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUgPSByb3dWYWx1ZVt2YWxdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZVt2YWxdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gYXR0cmlidXRlVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROdW1iZXJDb25maWdzKGNvbHVtbjogQ29sdW1uLCBsb2NhbGU6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyk6IE1hc2tDb25maWcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ubG9jYWxlLm51bWJlcixcbiAgICAgICAgICAgIHNjYWxlOiBjb2x1bW4uc2NhbGUgIT09IG51bGwgJiYgY29sdW1uLnNjYWxlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHRoaXMuZ2V0Q29sdW1uU2NhbGUoY29sdW1uLnNjYWxlKVxuICAgICAgICAgICAgICAgIDogbG9jYWxlLm51bWJlci5zY2FsZSxcbiAgICAgICAgICAgIHByZWZpeDogYCR7bG9jYWxlLm51bWJlci5jdXJyZW5jeVN5bWJvbH0gYFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0ZUZvcm1hdChjb2x1bW46IENvbHVtbiwgbG9jYWxlOiBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5kYXRlRm9ybWF0ID8gY29sdW1uLmRhdGVGb3JtYXQgOiBsb2NhbGUuY2FsZW5kYXIuZGF0ZUZvcm1hdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblZhbHVlKGNvbHVtbjogQ29sdW1uLCByb3dWYWx1ZTogb2JqZWN0LCBsb2NhbGU6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyk6IENvbHVtblZhbHVlcyB7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZ2V0VHJhbnNsYXRpb25QcmVmaXgoY29sdW1uKTtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gdGhpcy5nZXRDb2x1bW5TZXBhcmF0b3IoY29sdW1uKTtcbiAgICAgICAgY29uc3QgdW5pbmZvcm1lZCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJlZml4ICsgXCJlbXB0eV9sYWJlbFwiKTtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBjb2x1bW4uc3R5bGU7XG5cbiAgICAgICAgY29uc3QgY29sdW1uVmFsdWUgPSBjb2x1bW4uYXR0cmlidXRlc1xuICAgICAgICAgICAgLm1hcCgoYXR0cmlidXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlVmFsdWUoYXR0cmlidXRlLCByb3dWYWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0F0dHJpYnV0ZVZhbHVlSW52YWxpZChhdHRyaWJ1dGVWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuaW5mb3JtZWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyQ29uZmlncyA9IHRoaXMuZ2V0TnVtYmVyQ29uZmlncyhjb2x1bW4sIGxvY2FsZSk7XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbHVtbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5FTlVNOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoY29sdW1uLmVudW1QcmVmaXggKyBhdHRyaWJ1dGVWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5DVVJSRU5DWTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhcHBseU1hc2soYXR0cmlidXRlVmFsdWUsIG51bWJlckNvbmZpZ3MsIHRoaXMuaXNOdW1iZXIoYXR0cmlidXRlVmFsdWUpKTtcblxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuREFURTpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVGb3JtYXQgPSB0aGlzLmdldERhdGVGb3JtYXQoY29sdW1uLCBsb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbWVudChhdHRyaWJ1dGVWYWx1ZSkuZm9ybWF0KGRhdGVGb3JtYXQpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5CT09MRUFOOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZSA/IFwieWVzXCIgOiBcIm5vXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChwcmVmaXggKyB2YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLk5VTUJFUjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckNvbmZpZ3MucHJlZml4ID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhcHBseU1hc2soYXR0cmlidXRlVmFsdWUsIG51bWJlckNvbmZpZ3MsIHRoaXMuaXNOdW1iZXIoYXR0cmlidXRlVmFsdWUpKTtcblxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuVE9LRU5TOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9rZW5zKGF0dHJpYnV0ZVZhbHVlKTtcblxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZVZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHVuaWZpZWRDb2x1bW5WYWx1ZXMgPSBjb2x1bW5WYWx1ZS5qb2luKHNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHVuaW5mb3JtZWROdW1iZXIgPSB1bmlmaWVkQ29sdW1uVmFsdWVzXG4gICAgICAgICAgICAuc3BsaXQoc2VwYXJhdG9yKVxuICAgICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSA9PT0gdW5pbmZvcm1lZCkubGVuZ3RoO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRDb2x1bW5WYWx1ZSA9IHRoaXMuZ2V0Rm9ybWF0dGVkQ29sdW1uVmFsdWUoY29sdW1uLCBjb2x1bW5WYWx1ZSwgdW5pZmllZENvbHVtblZhbHVlcywgdW5pbmZvcm1lZCwgdW5pbmZvcm1lZE51bWJlcik7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgY29sdW1uVmFsdWU6IGZvcm1hdHRlZENvbHVtblZhbHVlLFxuICAgICAgICAgICAgc2VwYXJhdG9yLFxuICAgICAgICAgICAgdW5pbmZvcm1lZCxcbiAgICAgICAgICAgIGJhZGdlQ29uZmlnczogY29sdW1uPy5iYWRnZUNvbmZpZ3M/LmZpbmQoXG4gICAgICAgICAgICAgICAgKGJhZGdlQ29uZmlnKSA9PiBiYWRnZUNvbmZpZy5lbnVtVmFsdWUgPT09IHJvd1ZhbHVlW2NvbHVtbi5hdHRyaWJ1dGVzWzBdID8/IGNvbHVtbi5maWVsZF1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0eXBlOiBjb2x1bW4udHlwZSxcbiAgICAgICAgICAgIHRvb2x0aXA6IHRoaXMuZ2V0Q29sdW1uVG9vbHRpcChjb2x1bW4udG9vbHRpcCksXG4gICAgICAgICAgICBpbmZvU2lnbjogdGhpcy5nZXRDb2x1bW5JbmZvU2lnbihjb2x1bW4uaW5mb1NpZ24pLFxuICAgICAgICAgICAgb25MaW5rQ2xpY2s6IGNvbHVtbi5vbkxpbmtDbGljayxcbiAgICAgICAgICAgIG9uQ29sdW1uQ2xpY2s6IGNvbHVtbi5vbkNvbHVtbkNsaWNrXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5TY2FsZShzY2FsZTogbnVtYmVyIHwgKChyb3dWYWx1ZTogYW55KSA9PiBudW1iZXIpKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzY2FsZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gc2NhbGUodGhpcy5yb3dWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNjYWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uSW5mb1NpZ24oaW5mb1NpZ246IHN0cmluZyB8ICgocm93VmFsdWU6IGFueSkgPT4gc3RyaW5nKSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChpbmZvU2lnbiAhPT0gdW5kZWZpbmVkICYmIGluZm9TaWduICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGluZm9TaWduID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW5mb1NpZ24odGhpcy5yb3dWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaW5mb1NpZ247XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5Ub29sdGlwKHRvb2x0aXA6IHN0cmluZyB8ICgocm93VmFsdWU6IGFueSkgPT4gc3RyaW5nKSk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0b29sdGlwICE9PSB1bmRlZmluZWQgJiYgdG9vbHRpcCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0b29sdGlwID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9vbHRpcCh0aGlzLnJvd1ZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0b29sdGlwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNOdW1iZXIodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIShuZXcgQmlnTnVtYmVyKHZhbHVlKS5pc05hTigpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRva2Vucyh2YWx1ZXM6IGFueSk6IElUb2tlbltdIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVG8gdXNlIHRva2VucyBhbiBhcnJheSBtdXN0IGJlIGluZm9ybWVkXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWRUb2tlbkFycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vdCBhIHZhbGlkIHRva2VuIGFycmF5LiBNdXN0IGJlIGEgcHJpbWl0aXZlIHZhbHVlcyBhcnJheSBvciBhbiBvYmplY3RzIHdpdGggbGFiZWwgYXR0cmlidXRlIGFycmF5XCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNMYWJlbE9iamVjdEFycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWVzXG4gICAgICAgICAgICAuZmlsdGVyKCh2YWx1ZTogYW55KSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsKVxuICAgICAgICAgICAgLm1hcCgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gdHlwZW9mIHZhbHVlID09PSBcInN5bWJvbFwiID8gdmFsdWUudG9TdHJpbmcoKSA6IGAke3ZhbHVlfWA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkVG9rZW5BcnJheSh2YWx1ZXM6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUHJpbWl0aXZlVmFsdWVzQXJyYXkodmFsdWVzKSB8fCB0aGlzLmlzTGFiZWxPYmplY3RBcnJheSh2YWx1ZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNQcmltaXRpdmVWYWx1ZXNBcnJheSh2YWx1ZXM6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZXMuZmlsdGVyKHZhbHVlID0+IHZhbHVlICE9PSBPYmplY3QodmFsdWUpKS5sZW5ndGggPT09IHZhbHVlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0xhYmVsT2JqZWN0QXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWVzLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZT8ubGFiZWwgIT09IG51bGwgJiYgdmFsdWU/LmxhYmVsICE9PSB1bmRlZmluZWQpLmxlbmd0aCA9PT0gdmFsdWVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNvcnRDb2x1bW5zQnlTZXF1ZW5jZShjb2x1bW5zOiBDb2x1bW5bXSk6IENvbHVtbltdIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbnMuc29ydCgoYSwgYikgPT4gYS5zZXF1ZW5jZSAtIGIuc2VxdWVuY2UpO1xuICAgIH1cbn1cbiJdfQ==
|