@po-ui/ng-sync 17.19.0 → 18.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/models/po-entity/po-entity.model.mjs +1 -1
- package/esm2022/lib/models/po-network-status.model.mjs +1 -1
- package/esm2022/lib/models/po-query-builder/po-query-builder.model.mjs +1 -1
- package/esm2022/lib/services/po-event-sourcing/po-event-sourcing.service.mjs +8 -8
- package/esm2022/lib/services/po-http-client/po-http-client.service.mjs +1 -1
- package/esm2022/lib/services/po-schema/po-schema-definition/po-schema-definition.service.mjs +1 -1
- package/esm2022/lib/services/po-schema/po-schema-util/po-schema-util.model.mjs +1 -1
- package/esm2022/lib/services/po-schema/po-schema.service.mjs +1 -1
- package/esm2022/lib/services/po-sync/po-sync.service.mjs +1 -1
- package/esm2022/lib/utils/utils.mjs +1 -1
- package/fesm2022/po-ui-ng-sync.mjs +7 -7
- package/fesm2022/po-ui-ng-sync.mjs.map +1 -1
- package/package.json +6 -6
- package/po-ui-ng-sync-18.0.0-next.0.tgz +0 -0
- package/schematics/migrations.json +8 -3
- package/schematics/ng-add/index.d.ts +5 -1
- package/schematics/ng-add/index.js +31 -4
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-update/v14/index.js +1 -1
- package/schematics/ng-update/v15/index.js +1 -1
- package/schematics/ng-update/v15/index.js.map +1 -1
- package/schematics/ng-update/v16/index.js +1 -1
- package/schematics/ng-update/v17/index.js +1 -1
- package/schematics/ng-update/v18/changes.d.ts +2 -0
- package/schematics/ng-update/v18/changes.js +14 -0
- package/schematics/ng-update/v18/changes.js.map +1 -0
- package/schematics/ng-update/v18/index.d.ts +1 -0
- package/schematics/ng-update/v18/index.js +16 -0
- package/schematics/ng-update/v18/index.js.map +1 -0
- package/schematics/ng-update/v2/index.js +3 -1
- package/schematics/ng-update/v2/index.js.map +1 -1
- package/schematics/ng-update/v3/index.js +1 -1
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v5/index.js +1 -1
- package/schematics/ng-update/v6/index.js +1 -1
- package/po-ui-ng-sync-17.19.0.tgz +0 -0
|
@@ -214,4 +214,4 @@ export class PoEntity {
|
|
|
214
214
|
return recordedData;
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZW50aXR5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3luYy9zcmMvbGliL21vZGVscy9wby1lbnRpdHkvcG8tZW50aXR5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXRELE9BQU8sRUFDTCx3QkFBd0IsRUFHekIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFtQixZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd6RTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFFVDtJQUNBO0lBQ0E7SUFIVixZQUNVLGFBQXFDLEVBQ3JDLE1BQW9CLEVBQ3BCLGVBQWdDO1FBRmhDLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQUNyQyxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ3BCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUN2QyxDQUFDO0lBRUo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXFCRztJQUNILElBQUksQ0FBQyxNQUFlLEVBQUUsTUFBZTtRQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRSxJQUFJLE1BQU0sRUFBRTtZQUNWLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdEI7UUFFRCxJQUFJLE1BQU0sRUFBRTtZQUNWLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdEI7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FvQkc7SUFDSCxRQUFRLENBQUMsRUFBTyxFQUFFLE1BQWU7UUFD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bUIsRUFBRSxlQUFlLENBQUM7WUFDakUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVPLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBa0IsRUFBRSxtQkFBNEIsRUFBRSxlQUF3QjtRQUM3RixhQUFhLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6RCxhQUFhLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUU3QixNQUFNLHVCQUF1QixHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xGLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUVuRixJQUFJLHVCQUF1QixJQUFJLG1CQUFtQixFQUFFO1lBQ2xELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ25HLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1NBQ2xGO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdmFsaWRhdGVQYXJhbWV0ZXIgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XG5cbmltcG9ydCB7XG4gIFBvRXZlbnRTb3VyY2luZ09wZXJhdGlvbixcbiAgUG9FdmVudFNvdXJjaW5nU2VydmljZSxcbiAgUG9FdmVudFNvdXJjaW5nU3VtbWFyeUl0ZW1cbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tZXZlbnQtc291cmNpbmcnO1xuaW1wb3J0IHsgUG9RdWVyeUJ1aWxkZXIgfSBmcm9tICcuLy4uL3BvLXF1ZXJ5LWJ1aWxkZXIvcG8tcXVlcnktYnVpbGRlci5tb2RlbCc7XG5pbXBvcnQgeyBQb1NjaGVtYVNlcnZpY2UsIFBvU2NoZW1hVXRpbCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLXNjaGVtYSc7XG5pbXBvcnQgeyBQb1N5bmNTY2hlbWEgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1zeW5jL2ludGVyZmFjZXMvcG8tc3luYy1zY2hlbWEuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBVbWEgaW5zdMOibmNpYSBgUG9FbnRpdHlgIHJlcHJlc2VudGEgdW0gKnNjaGVtYSogZSBlbGEgY29udMOpbSBtw6l0b2RvcyBxdWUgcG9zc2liaWxpdGFtIG1hbmlwdWxhciBzZXVzIHJlZ2lzdHJvcyxcbiAqIGNvbW8gcG9yIGV4ZW1wbG86IGJ1c2NhciwgY3JpYXIgZSByZW1vdmVyLlxuICpcbiAqIEVzdGEgaW5zdMOibmNpYSBwb2RlIHNlciBvYnRpZGEgYSBwYXJ0aXIgZG8gcmV0b3JubyBkbyBtw6l0b2RvIGBQb1N5bmNTZXJ2aWNlLmdldE1vZGVsKCdzY2hlbWEgbmFtZScpYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFBvRW50aXR5IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBldmVudFNvdXJjaW5nOiBQb0V2ZW50U291cmNpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2NoZW1hOiBQb1N5bmNTY2hlbWEsXG4gICAgcHJpdmF0ZSBwb1NjaGVtYVNlcnZpY2U6IFBvU2NoZW1hU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIEJ1c2NhIG9zIHJlZ2lzdHJvcyBkbyAqc2NoZW1hKiwgcG9kZW5kbyBmaWx0cmFyIG8gcmVzdWx0YWRvIGEgcGFydGlyIGRvIGZpbHRybyBwYXNzYWRvIGUgcmV0b3JuYW5kbyBhcGVuYXNcbiAgICogb3MgY2FtcG9zIGRlZmluaWRvcy5cbiAgICpcbiAgICogUGFyYSBxdWUgZXN0YSBidXNjYSBzZWphIGNvbmNsdcOtZGEgw6kgbmVjZXNzw6FyaW8gdXRpbGl6YXIgbyBtw6l0b2RvIGBQb1F1ZXJ5QnVpbGRlci5leGVjKClgLlxuICAgKiBWZWphIG1haXMgZW06IFtQb1F1ZXJ5QnVpbGRlcl0oL2RvY3VtZW50YXRpb24vcG8tcXVlcnktYnVpbGRlcikuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBmaWx0ZXIgT2JqZXRvIHF1ZSBjb250w6ltIG9zIGNhbXBvcyBlIHZhbG9yZXMgYSBzZXJlbSBmaWx0cmFkb3Mgbm8gKnNjaGVtYSouXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZHMgQ2FtcG9zIHF1ZSBzZXLDo28gcmV0b3JuYWRvcyBub3MgcmVnaXN0cm9zLiBFc3RlIGNhbXBvcyBkZXZlbSBlc3RhciBkZW50cm8gZGVcbiAgICogdW1hICpzdHJpbmcqIHNlcGFyYWRvcyBwb3IgZXNwYcOnbyBwb2RlbmRvIHVzYXIgbyBjYXJhY3RlcmUgYC1gIHBhcmEgZXhjbHVpciBjYW1wb3MuXG4gICAqIFBvciBleGVtcGxvLCBhIGRlZmluacOnw6NvIGFiYWl4bzpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnbmFtZSBhZ2UgYWRkcmVzcycpO1xuICAgKiBgYGBcbiAgICogSXLDoSByZXRvcm5hciBhcGVuYXMgb3MgY2FtcG9zIGBuYW1lYCwgYGFnZWAgZSBgYWRkcmVzc2AuIEUgcGFyYSBuw6NvIG1vc3RyYXIgdW0gY2FtcG8gb3UgbWFpcyBiYXN0YSBmYXplcjpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnLW5hbWUgLWFnZScpO1xuICAgKiBgYGBcbiAgICogQHJldHVybnMge1BvUXVlcnlCdWlsZGVyfSBPYmpldG8gcXVlIHBvc3NpYmlsaXRhIGVuY2FkZWFyIHVtIG3DqXRvZG8gZG8gYFBvUXVlcnlCdWlsZGVyYC5cbiAgICovXG4gIGZpbmQoZmlsdGVyPzogb2JqZWN0LCBmaWVsZHM/OiBzdHJpbmcpOiBQb1F1ZXJ5QnVpbGRlciB7XG4gICAgY29uc3QgcXVlcnkgPSBuZXcgUG9RdWVyeUJ1aWxkZXIodGhpcy5wb1NjaGVtYVNlcnZpY2UsIHRoaXMuc2NoZW1hKTtcblxuICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgIHF1ZXJ5LmZpbHRlcihmaWx0ZXIpO1xuICAgIH1cblxuICAgIGlmIChmaWVsZHMpIHtcbiAgICAgIHF1ZXJ5LnNlbGVjdChmaWVsZHMpO1xuICAgIH1cblxuICAgIHJldHVybiBxdWVyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdXNjYSB1bSByZWdpc3RybyBwZWxvIHNldSAqaWQqLlxuICAgKlxuICAgKiBQYXJhIHF1ZSBlc3RhIGJ1c2NhIHNlamEgY29uY2x1w61kYSDDqSBuZWNlc3PDoXJpbyB1dGlsaXphciBvIG3DqXRvZG8gYFBvUXVlcnlCdWlsZGVyLmV4ZWMoKWAuXG4gICAqIFZlamEgbWFpcyBlbTogW1BvUXVlcnlCdWlsZGVyXSgvZG9jdW1lbnRhdGlvbi9wby1xdWVyeS1idWlsZGVyKS5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IGlkIElkZW50aWZpY2Fkb3IgZG8gcmVnaXN0cm8uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZHMgQ2FtcG9zIHF1ZSBzZXLDo28gcmV0b3JuYWRvcyBub3MgcmVnaXN0cm9zLiBFc3RlIGNhbXBvcyBkZXZlbSBlc3RhciBkZW50cm8gZGVcbiAgICogdW1hICpzdHJpbmcqIHNlcGFyYWRvcyBwb3IgZXNwYcOnbyBwb2RlbmRvIHVzYXIgbyBjYXJhY3RlcmUgYC1gIHBhcmEgZXhjbHVpciBjYW1wb3MuXG4gICAqIFBvciBleGVtcGxvLCBhIGRlZmluacOnw6NvIGFiYWl4bzpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnbmFtZSBhZ2UgYWRkcmVzcycpO1xuICAgKiBgYGBcbiAgICogSXLDoSByZXRvcm5hciBhcGVuYXMgb3MgY2FtcG9zIGBuYW1lYCwgYGFnZWAgZSBgYWRkcmVzc2AuIEUgcGFyYSBuw6NvIG1vc3RyYXIgdW0gY2FtcG8gb3UgbWFpcyBiYXN0YSBmYXplcjpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnLW5hbWUgLWFnZScpO1xuICAgKiBgYGBcbiAgICogQHJldHVybnMge1BvUXVlcnlCdWlsZGVyfSBPYmpldG8gcXVlIHBvc3NpYmlsaXRhIGVuY2FkZWFyIHVtIG3DqXRvZG8gZG8gYFBvUXVlcnlCdWlsZGVyYC5cbiAgICovXG4gIGZpbmRCeUlkKGlkOiBhbnksIGZpZWxkcz86IHN0cmluZyk6IFBvUXVlcnlCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5maW5kT25lKHsgW3RoaXMuc2NoZW1hLmlkRmllbGRdOiBpZCB9LCBmaWVsZHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbWVsaGFudGUgYW8gbcOpdG9kbyBgUG9FbnRpdHkuZmluZCgpYCwgcG9yw6ltIHJldG9ybmEgYXBlbmFzIG8gcHJpbWVpcm8gcmVnaXN0cm8gZW5jb250cmFkbyBuYSBidXNjYS5cbiAgICpcbiAgICogUGFyYSBxdWUgZXN0YSBidXNjYSBzZWphIGNvbmNsdcOtZGEgw6kgbmVjZXNzw6FyaW8gdXRpbGl6YXIgbyBtw6l0b2RvIGBQb1F1ZXJ5QnVpbGRlci5leGVjKClgLlxuICAgKiBWZWphIG1haXMgZW06IFtQb1F1ZXJ5QnVpbGRlcl0oL2RvY3VtZW50YXRpb24vcG8tcXVlcnktYnVpbGRlcikuXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSBmaWx0ZXIgT2JqZXRvIHF1ZSBjb250w6ltIG9zIGNhbXBvcyBlIHZhbG9yZXMgYSBzZXJlbSBmaWx0cmFkb3Mgbm8gKnNjaGVtYSouXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZHMgQ2FtcG9zIHF1ZSBzZXLDo28gcmV0b3JuYWRvcyBub3MgcmVnaXN0cm9zLiBFc3RlIGNhbXBvcyBkZXZlbSBlc3RhciBkZW50cm8gZGVcbiAgICogdW1hICpzdHJpbmcqIHNlcGFyYWRvcyBwb3IgZXNwYcOnbyBwb2RlbmRvIHVzYXIgbyBjYXJhY3RlcmUgYC1gIHBhcmEgZXhjbHVpciBjYW1wb3MuXG4gICAqIFBvciBleGVtcGxvLCBhIGRlZmluacOnw6NvIGFiYWl4bzpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnbmFtZSBhZ2UgYWRkcmVzcycpO1xuICAgKiBgYGBcbiAgICogSXLDoSByZXRvcm5hciBhcGVuYXMgb3MgY2FtcG9zIGBuYW1lYCwgYGFnZWAgZSBgYWRkcmVzc2AuIEUgcGFyYSBuw6NvIG1vc3RyYXIgdW0gY2FtcG8gb3UgbWFpcyBiYXN0YSBmYXplcjpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnLW5hbWUgLWFnZScpO1xuICAgKiBgYGBcbiAgICogQHJldHVybnMge1BvUXVlcnlCdWlsZGVyfSBPYmpldG8gcXVlIHBvc3NpYmlsaXRhIGVuY2FkZWFyIHVtIG3DqXRvZG8gZG8gYFBvUXVlcnlCdWlsZGVyYC5cbiAgICovXG4gIGZpbmRPbmUoZmlsdGVyPzogYW55LCBmaWVsZHM/OiBzdHJpbmcpOiBQb1F1ZXJ5QnVpbGRlciB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmZpbmQoZmlsdGVyLCBmaWVsZHMpO1xuICAgIHF1ZXJ5LmxpbWl0KDEpO1xuICAgIHJldHVybiBxdWVyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdW0gcmVnaXN0cm8uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSByZWNvcmQgUmVnaXN0cm8gcXVlIHNlcsOhIHJlbW92aWRvLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3VzdG9tUmVxdWVzdElkIElkZW50aWZpY2Fkb3IgY3VzdG9taXphZG8gZG8gY29tYW5kby5cbiAgICogQHJldHVybnMge1Byb21pc2V9IFByb21lc3NhIHF1ZSDDqSBjb25jbHXDrWRhIGFww7NzIG8gcmVnaXN0cm8gc2VyIHJlbW92aWRvLlxuICAgKi9cbiAgYXN5bmMgcmVtb3ZlKHJlY29yZDogb2JqZWN0LCBjdXN0b21SZXF1ZXN0SWQ/OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHZhbGlkYXRlUGFyYW1ldGVyKHsgcmVjb3JkIH0pO1xuXG4gICAgY29uc3QgcmVtb3ZlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaWRGaWVsZCA9IHJlY29yZFt0aGlzLnNjaGVtYS5pZEZpZWxkXSA/IHRoaXMuc2NoZW1hLmlkRmllbGQgOiBQb1NjaGVtYVV0aWwuc3luY0ludGVybmFsSWRGaWVsZE5hbWU7XG4gICAgICBjb25zdCBzZXJ2ZXJSZWNvcmQgPSBQb1NjaGVtYVV0aWwuc2VwYXJhdGVTY2hlbWFGaWVsZHModGhpcy5zY2hlbWEsIHJlY29yZClbJ3NlcnZlclJlY29yZCddO1xuXG4gICAgICBhd2FpdCB0aGlzLnBvU2NoZW1hU2VydmljZS5yZW1vdmUodGhpcy5zY2hlbWEubmFtZSwgcmVjb3JkW2lkRmllbGRdKTtcbiAgICAgIGF3YWl0IHRoaXMuZXZlbnRTb3VyY2luZy5yZW1vdmUodGhpcy5zY2hlbWEubmFtZSwgc2VydmVyUmVjb3JkLCBjdXN0b21SZXF1ZXN0SWQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5wb1NjaGVtYVNlcnZpY2UubGltaXRlZENhbGxXcmFwKHJlbW92ZSk7XG4gIH1cblxuICAvKipcbiAgICogQWx0ZXJhIG91IGluY2x1aSB1bSByZWdpc3Ryby5cbiAgICpcbiAgICogPiBPIHJlZ2lzdHJvIHNlcsOhIGFsdGVyYWRvIHNlIGVsZSBwb3NzdWlyIHVtICppZCosIGNhc28gY29udHLDoXJpbyB1bSBub3ZvIHJlZ2lzdHJvIHNlcsOhIGNyaWFkby5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IHJlY29yZCBSZWdpc3RybyBxdWUgc2Vyw6EgcGVyc2lzdGlkby5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGN1c3RvbVJlcXVlc3RJZCBJZGVudGlmaWNhZG9yIGN1c3RvbWl6YWRvIGRvIGNvbWFuZG8uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9tZXNzYSBxdWUgw6kgY29uY2x1w61kYSBhcMOzcyBvIHJlZ2lzdHJvIHNlciBhbHRlcmFkbyBvdSBpbmNsdcOtZG8uXG4gICAqL1xuICBhc3luYyBzYXZlKHJlY29yZDogb2JqZWN0LCBjdXN0b21SZXF1ZXN0SWQ/OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHZhbGlkYXRlUGFyYW1ldGVyKHsgcmVjb3JkIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMucG9TY2hlbWFTZXJ2aWNlLmxpbWl0ZWRDYWxsV3JhcCh0aGlzLnNlbGVjdFNhdmVUeXBlLmJpbmQodGhpcywgcmVjb3JkLCB0cnVlLCBjdXN0b21SZXF1ZXN0SWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYWx2YSB1bWEgbGlzdGEgZGUgcmVnaXN0cm9zIGVtIGxvdGUuXG4gICAqXG4gICAqID4gUGFyYSBjYWRhIHJlZ2lzdHJvIGRhIGxpc3RhLCBzZXLDoSBpbnNlcmlkbyB1bSBub3ZvIHJlZ2lzdHJvIHNlIG8gbWVzbW8gbsOjbyB0aXZlciAqaWQqLCBjYXNvIGNvbnRyw6FyaW9cbiAgICogc2Vyw6EgY29udGFkbyBjb21vIHVtYSBhdHVhbGl6YcOnw6NvIGRlIHVtIHJlZ2lzdHJvIGV4aXN0ZW50ZS5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxvYmplY3Q+fSByZWNvcmRzIExpc3RhIGRlIHJlZ2lzdHJvcyBxdWUgc2Vyw6NvIHBlcnNpc3RpZG9zLlxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz4gfCBzdHJpbmd9IGN1c3RvbVJlcXVlc3RJZHMgSWRlbnRpZmljYWRvciBjdXN0b21pemFkbyBkbyBjb21hbmRvLlxuICAgKlxuICAgKiBBbyBwYXNzYXIgdW1hIGxpc3RhIGRlIGlkZW50aWZpY2Fkb3JlcywgY2FkYSDDrW5kaWNlIGRhIGxpc3RhIGRlIGlkZW50aWZpY2Fkb3JlcyBkZXZlcsOhXG4gICAqIGNvcnJlc3BvbmRlciBhbyDDrW5kaWNlIGRvIHJlZ2lzdHJvIG5hIGxpc3RhIGRlIHJlZ2lzdHJvcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn0gUHJvbWVzc2EgcXVlIMOpIGNvbmNsdcOtZGEgYXDDs3Mgb3MgcmVnaXN0cm9zIHNlcmVtIGFsdGVyYWRvcyBvdSBpbmNsdcOtZG9zLlxuICAgKi9cbiAgYXN5bmMgc2F2ZUFsbChyZWNvcmRzOiBBcnJheTxvYmplY3Q+LCBjdXN0b21SZXF1ZXN0SWRzPzogQXJyYXk8c3RyaW5nPiB8IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgdmFsaWRhdGVQYXJhbWV0ZXIoeyByZWNvcmRzIH0pO1xuXG4gICAgY29uc3Qgc2F2ZUFsbCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJhdGNoRXZlbnRzID0gW107XG5cbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCByZWNvcmRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb25zdCByZWNvcmQgPSByZWNvcmRzW2luZGV4XTtcbiAgICAgICAgY29uc3Qgc2VuZFRvRXZlbnRTb3VyY2luZyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IGlzTm9uTG9jYWxSZWNvcmRDaGFuZ2VkID0gYXdhaXQgdGhpcy5pc05vbkxvY2FsUmVjb3JkQ2hhbmdlZChyZWNvcmQpO1xuICAgICAgICBjb25zdCB1cGRhdGVkUmVjb3JkID0gYXdhaXQgdGhpcy5zZWxlY3RTYXZlVHlwZShyZWNvcmQsIHNlbmRUb0V2ZW50U291cmNpbmcpO1xuXG4gICAgICAgIGlmIChpc05vbkxvY2FsUmVjb3JkQ2hhbmdlZCkge1xuICAgICAgICAgIGNvbnN0IGN1c3RvbVJlcXVlc3RJZCA9IGN1c3RvbVJlcXVlc3RJZHMgaW5zdGFuY2VvZiBBcnJheSA/IGN1c3RvbVJlcXVlc3RJZHNbaW5kZXhdIDogY3VzdG9tUmVxdWVzdElkcztcbiAgICAgICAgICBjb25zdCBldmVudE9wZXJhdGlvbiA9IHRoaXMuY3JlYXRlRXZlbnRPcGVyYXRpb24ocmVjb3JkLCB1cGRhdGVkUmVjb3JkLCBjdXN0b21SZXF1ZXN0SWQpO1xuICAgICAgICAgIGJhdGNoRXZlbnRzLnB1c2goZXZlbnRPcGVyYXRpb24pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuZXZlbnRTb3VyY2luZy5jcmVhdGVCYXRjaEV2ZW50cyh0aGlzLnNjaGVtYS5uYW1lLCBiYXRjaEV2ZW50cyk7XG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnBvU2NoZW1hU2VydmljZS5saW1pdGVkQ2FsbFdyYXAoc2F2ZUFsbCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZShuZXdSZWNvcmQ6IGFueSwgc2VuZFRvRXZlbnRTb3VyY2luZzogYm9vbGVhbiwgY3VzdG9tUmVxdWVzdElkPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB0aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgICBjb25zdCBzeW5jUHJvcGVydGllcyA9IHtcbiAgICAgIFtQb1NjaGVtYVV0aWwuc3luY0ludGVybmFsSWRGaWVsZE5hbWVdOiB0aW1lLFxuICAgICAgU3luY0luc2VydGVkRGF0ZVRpbWU6IHRpbWUsXG4gICAgICBTeW5jVXBkYXRlZERhdGVUaW1lOiBudWxsLFxuICAgICAgU3luY0V4Y2x1c2lvbkRhdGVUaW1lOiBudWxsLFxuICAgICAgU3luY0RlbGV0ZWQ6IGZhbHNlLFxuICAgICAgU3luY1N0YXR1czogMFxuICAgIH07XG4gICAgY29uc3QgcmVjb3JkV2l0aFN5bmNQcm9wZXJ0aWVzID0geyAuLi5uZXdSZWNvcmQsIC4uLnN5bmNQcm9wZXJ0aWVzIH07XG5cbiAgICBjb25zdCByZWNvcmRlZERhdGEgPSBhd2FpdCB0aGlzLnBvU2NoZW1hU2VydmljZS5jcmVhdGUodGhpcy5zY2hlbWEsIHJlY29yZFdpdGhTeW5jUHJvcGVydGllcyk7XG5cbiAgICBpZiAoc2VuZFRvRXZlbnRTb3VyY2luZykge1xuICAgICAgYXdhaXQgdGhpcy5ldmVudFNvdXJjaW5nLmNyZWF0ZSh0aGlzLnNjaGVtYS5uYW1lLCByZWNvcmRXaXRoU3luY1Byb3BlcnRpZXMsIGN1c3RvbVJlcXVlc3RJZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlY29yZGVkRGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRXZlbnRPcGVyYXRpb24oXG4gICAgcmVjb3JkOiBvYmplY3QsXG4gICAgdXBkYXRlZFJlY29yZDogb2JqZWN0LFxuICAgIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZ1xuICApOiBQb0V2ZW50U291cmNpbmdTdW1tYXJ5SXRlbSB7XG4gICAgY29uc3Qgb3BlcmF0aW9uID0gUG9TY2hlbWFVdGlsLmdldFJlY29yZElkKHJlY29yZCwgdGhpcy5zY2hlbWEpXG4gICAgICA/IFBvRXZlbnRTb3VyY2luZ09wZXJhdGlvbi5VcGRhdGVcbiAgICAgIDogUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkluc2VydDtcblxuICAgIGNvbnN0IHNlcnZlclJlY29yZCA9IFBvU2NoZW1hVXRpbC5zZXBhcmF0ZVNjaGVtYUZpZWxkcyh0aGlzLnNjaGVtYSwgdXBkYXRlZFJlY29yZClbJ3NlcnZlclJlY29yZCddO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJlY29yZDogc2VydmVyUmVjb3JkLFxuICAgICAgY3VzdG9tUmVxdWVzdElkOiBjdXN0b21SZXF1ZXN0SWQsXG4gICAgICBvcGVyYXRpb246IG9wZXJhdGlvblxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGlzTm9uTG9jYWxSZWNvcmRDaGFuZ2VkKHVwZGF0ZWRSZWNvcmQ6IG9iamVjdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IG5vbkxvY2FsRmllbGROYW1lcyA9IFBvU2NoZW1hVXRpbC5nZXROb25Mb2NhbEZpZWxkTmFtZXModGhpcy5zY2hlbWEpO1xuICAgIGNvbnN0IHJlY29yZCA9IGF3YWl0IHRoaXMucG9TY2hlbWFTZXJ2aWNlLmdldCh0aGlzLnNjaGVtYS5uYW1lLCB1cGRhdGVkUmVjb3JkW3RoaXMuc2NoZW1hLmlkRmllbGRdKTtcblxuICAgIHJldHVybiAhUG9TY2hlbWFVdGlsLmlzTW9kZWxzRXF1YWwobm9uTG9jYWxGaWVsZE5hbWVzLCByZWNvcmQsIHVwZGF0ZWRSZWNvcmQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZWxlY3RTYXZlVHlwZShcbiAgICByZWNvcmQ6IG9iamVjdCxcbiAgICBzZW5kVG9FdmVudFNvdXJjaW5nOiBib29sZWFuLFxuICAgIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZ1xuICApOiBQcm9taXNlPG9iamVjdD4ge1xuICAgIGNvbnN0IGhhc0lkID0gUG9TY2hlbWFVdGlsLmdldFJlY29yZElkKHJlY29yZCwgdGhpcy5zY2hlbWEpO1xuXG4gICAgcmV0dXJuIGhhc0lkXG4gICAgICA/IGF3YWl0IHRoaXMudXBkYXRlKHJlY29yZCwgc2VuZFRvRXZlbnRTb3VyY2luZywgY3VzdG9tUmVxdWVzdElkKVxuICAgICAgOiBhd2FpdCB0aGlzLmNyZWF0ZShyZWNvcmQsIHNlbmRUb0V2ZW50U291cmNpbmcsIGN1c3RvbVJlcXVlc3RJZCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZSh1cGRhdGVkUmVjb3JkOiBhbnksIHNlbmRUb0V2ZW50U291cmNpbmc6IGJvb2xlYW4sIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZyk6IFByb21pc2U8b2JqZWN0PiB7XG4gICAgdXBkYXRlZFJlY29yZC5TeW5jVXBkYXRlZERhdGVUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgdXBkYXRlZFJlY29yZC5TeW5jU3RhdHVzID0gMDtcblxuICAgIGNvbnN0IGlzTm9uTG9jYWxSZWNvcmRDaGFuZ2VkID0gYXdhaXQgdGhpcy5pc05vbkxvY2FsUmVjb3JkQ2hhbmdlZCh1cGRhdGVkUmVjb3JkKTtcbiAgICBjb25zdCByZWNvcmRlZERhdGEgPSBhd2FpdCB0aGlzLnBvU2NoZW1hU2VydmljZS51cGRhdGUodGhpcy5zY2hlbWEsIHVwZGF0ZWRSZWNvcmQpO1xuXG4gICAgaWYgKGlzTm9uTG9jYWxSZWNvcmRDaGFuZ2VkICYmIHNlbmRUb0V2ZW50U291cmNpbmcpIHtcbiAgICAgIGNvbnN0IHNlcnZlclJlY29yZCA9IFBvU2NoZW1hVXRpbC5zZXBhcmF0ZVNjaGVtYUZpZWxkcyh0aGlzLnNjaGVtYSwgdXBkYXRlZFJlY29yZClbJ3NlcnZlclJlY29yZCddO1xuICAgICAgYXdhaXQgdGhpcy5ldmVudFNvdXJjaW5nLnVwZGF0ZSh0aGlzLnNjaGVtYS5uYW1lLCBzZXJ2ZXJSZWNvcmQsIGN1c3RvbVJlcXVlc3RJZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlY29yZGVkRGF0YTtcbiAgfVxufVxuIl19
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZW50aXR5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3luYy9zcmMvbGliL21vZGVscy9wby1lbnRpdHkvcG8tZW50aXR5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXRELE9BQU8sRUFDTCx3QkFBd0IsRUFHekIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFtQixZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd6RTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFFVDtJQUNBO0lBQ0E7SUFIVixZQUNVLGFBQXFDLEVBQ3JDLE1BQW9CLEVBQ3BCLGVBQWdDO1FBRmhDLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQUNyQyxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ3BCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUN2QyxDQUFDO0lBRUo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXFCRztJQUNILElBQUksQ0FBQyxNQUFlLEVBQUUsTUFBZTtRQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBRUQsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW9CRztJQUNILFFBQVEsQ0FB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LENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsQ0FBQztZQUNqRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFrQixFQUFFLG1CQUE0QixFQUFFLGVBQXdCO1FBQzdGLGFBQWEsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pELGFBQWEsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBRTdCLE1BQU0sdUJBQXVCLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEYsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRW5GLElBQUksdUJBQXVCLElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUNuRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNuRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNuRixDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdmFsaWRhdGVQYXJhbWV0ZXIgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XG5cbmltcG9ydCB7XG4gIFBvRXZlbnRTb3VyY2luZ09wZXJhdGlvbixcbiAgUG9FdmVudFNvdXJjaW5nU2VydmljZSxcbiAgUG9FdmVudFNvdXJjaW5nU3VtbWFyeUl0ZW1cbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tZXZlbnQtc291cmNpbmcnO1xuaW1wb3J0IHsgUG9RdWVyeUJ1aWxkZXIgfSBmcm9tICcuLy4uL3BvLXF1ZXJ5LWJ1aWxkZXIvcG8tcXVlcnktYnVpbGRlci5tb2RlbCc7XG5pbXBvcnQgeyBQb1NjaGVtYVNlcnZpY2UsIFBvU2NoZW1hVXRpbCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLXNjaGVtYSc7XG5pbXBvcnQgeyBQb1N5bmNTY2hlbWEgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1zeW5jL2ludGVyZmFjZXMvcG8tc3luYy1zY2hlbWEuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBVbWEgaW5zdMOibmNpYSBgUG9FbnRpdHlgIHJlcHJlc2VudGEgdW0gKnNjaGVtYSogZSBlbGEgY29udMOpbSBtw6l0b2RvcyBxdWUgcG9zc2liaWxpdGFtIG1hbmlwdWxhciBzZXVzIHJlZ2lzdHJvcyxcbiAqIGNvbW8gcG9yIGV4ZW1wbG86IGJ1c2NhciwgY3JpYXIgZSByZW1vdmVyLlxuICpcbiAqIEVzdGEgaW5zdMOibmNpYSBwb2RlIHNlciBvYnRpZGEgYSBwYXJ0aXIgZG8gcmV0b3JubyBkbyBtw6l0b2RvIGBQb1N5bmNTZXJ2aWNlLmdldE1vZGVsKCdzY2hlbWEgbmFtZScpYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFBvRW50aXR5IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBldmVudFNvdXJjaW5nOiBQb0V2ZW50U291cmNpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2NoZW1hOiBQb1N5bmNTY2hlbWEsXG4gICAgcHJpdmF0ZSBwb1NjaGVtYVNlcnZpY2U6IFBvU2NoZW1hU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIEJ1c2NhIG9zIHJlZ2lzdHJvcyBkbyAqc2NoZW1hKiwgcG9kZW5kbyBmaWx0cmFyIG8gcmVzdWx0YWRvIGEgcGFydGlyIGRvIGZpbHRybyBwYXNzYWRvIGUgcmV0b3JuYW5kbyBhcGVuYXNcbiAgICogb3MgY2FtcG9zIGRlZmluaWRvcy5cbiAgICpcbiAgICogUGFyYSBxdWUgZXN0YSBidXNjYSBzZWphIGNvbmNsdcOtZGEgw6kgbmVjZXNzw6FyaW8gdXRpbGl6YXIgbyBtw6l0b2RvIGBQb1F1ZXJ5QnVpbGRlci5leGVjKClgLlxuICAgKiBWZWphIG1haXMgZW06IFtQb1F1ZXJ5QnVpbGRlcl0oL2RvY3VtZW50YXRpb24vcG8tcXVlcnktYnVpbGRlcikuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBmaWx0ZXIgT2JqZXRvIHF1ZSBjb250w6ltIG9zIGNhbXBvcyBlIHZhbG9yZXMgYSBzZXJlbSBmaWx0cmFkb3Mgbm8gKnNjaGVtYSouXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZHMgQ2FtcG9zIHF1ZSBzZXLDo28gcmV0b3JuYWRvcyBub3MgcmVnaXN0cm9zLiBFc3RlIGNhbXBvcyBkZXZlbSBlc3RhciBkZW50cm8gZGVcbiAgICogdW1hICpzdHJpbmcqIHNlcGFyYWRvcyBwb3IgZXNwYcOnbyBwb2RlbmRvIHVzYXIgbyBjYXJhY3RlcmUgYC1gIHBhcmEgZXhjbHVpciBjYW1wb3MuXG4gICAqIFBvciBleGVtcGxvLCBhIGRlZmluacOnw6NvIGFiYWl4bzpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnbmFtZSBhZ2UgYWRkcmVzcycpO1xuICAgKiBgYGBcbiAgICogSXLDoSByZXRvcm5hciBhcGVuYXMgb3MgY2FtcG9zIGBuYW1lYCwgYGFnZWAgZSBgYWRkcmVzc2AuIEUgcGFyYSBuw6NvIG1vc3RyYXIgdW0gY2FtcG8gb3UgbWFpcyBiYXN0YSBmYXplcjpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnLW5hbWUgLWFnZScpO1xuICAgKiBgYGBcbiAgICogQHJldHVybnMge1BvUXVlcnlCdWlsZGVyfSBPYmpldG8gcXVlIHBvc3NpYmlsaXRhIGVuY2FkZWFyIHVtIG3DqXRvZG8gZG8gYFBvUXVlcnlCdWlsZGVyYC5cbiAgICovXG4gIGZpbmQoZmlsdGVyPzogb2JqZWN0LCBmaWVsZHM/OiBzdHJpbmcpOiBQb1F1ZXJ5QnVpbGRlciB7XG4gICAgY29uc3QgcXVlcnkgPSBuZXcgUG9RdWVyeUJ1aWxkZXIodGhpcy5wb1NjaGVtYVNlcnZpY2UsIHRoaXMuc2NoZW1hKTtcblxuICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgIHF1ZXJ5LmZpbHRlcihmaWx0ZXIpO1xuICAgIH1cblxuICAgIGlmIChmaWVsZHMpIHtcbiAgICAgIHF1ZXJ5LnNlbGVjdChmaWVsZHMpO1xuICAgIH1cblxuICAgIHJldHVybiBxdWVyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdXNjYSB1bSByZWdpc3RybyBwZWxvIHNldSAqaWQqLlxuICAgKlxuICAgKiBQYXJhIHF1ZSBlc3RhIGJ1c2NhIHNlamEgY29uY2x1w61kYSDDqSBuZWNlc3PDoXJpbyB1dGlsaXphciBvIG3DqXRvZG8gYFBvUXVlcnlCdWlsZGVyLmV4ZWMoKWAuXG4gICAqIFZlamEgbWFpcyBlbTogW1BvUXVlcnlCdWlsZGVyXSgvZG9jdW1lbnRhdGlvbi9wby1xdWVyeS1idWlsZGVyKS5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IGlkIElkZW50aWZpY2Fkb3IgZG8gcmVnaXN0cm8uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZHMgQ2FtcG9zIHF1ZSBzZXLDo28gcmV0b3JuYWRvcyBub3MgcmVnaXN0cm9zLiBFc3RlIGNhbXBvcyBkZXZlbSBlc3RhciBkZW50cm8gZGVcbiAgICogdW1hICpzdHJpbmcqIHNlcGFyYWRvcyBwb3IgZXNwYcOnbyBwb2RlbmRvIHVzYXIgbyBjYXJhY3RlcmUgYC1gIHBhcmEgZXhjbHVpciBjYW1wb3MuXG4gICAqIFBvciBleGVtcGxvLCBhIGRlZmluacOnw6NvIGFiYWl4bzpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnbmFtZSBhZ2UgYWRkcmVzcycpO1xuICAgKiBgYGBcbiAgICogSXLDoSByZXRvcm5hciBhcGVuYXMgb3MgY2FtcG9zIGBuYW1lYCwgYGFnZWAgZSBgYWRkcmVzc2AuIEUgcGFyYSBuw6NvIG1vc3RyYXIgdW0gY2FtcG8gb3UgbWFpcyBiYXN0YSBmYXplcjpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnLW5hbWUgLWFnZScpO1xuICAgKiBgYGBcbiAgICogQHJldHVybnMge1BvUXVlcnlCdWlsZGVyfSBPYmpldG8gcXVlIHBvc3NpYmlsaXRhIGVuY2FkZWFyIHVtIG3DqXRvZG8gZG8gYFBvUXVlcnlCdWlsZGVyYC5cbiAgICovXG4gIGZpbmRCeUlkKGlkOiBhbnksIGZpZWxkcz86IHN0cmluZyk6IFBvUXVlcnlCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5maW5kT25lKHsgW3RoaXMuc2NoZW1hLmlkRmllbGRdOiBpZCB9LCBmaWVsZHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbWVsaGFudGUgYW8gbcOpdG9kbyBgUG9FbnRpdHkuZmluZCgpYCwgcG9yw6ltIHJldG9ybmEgYXBlbmFzIG8gcHJpbWVpcm8gcmVnaXN0cm8gZW5jb250cmFkbyBuYSBidXNjYS5cbiAgICpcbiAgICogUGFyYSBxdWUgZXN0YSBidXNjYSBzZWphIGNvbmNsdcOtZGEgw6kgbmVjZXNzw6FyaW8gdXRpbGl6YXIgbyBtw6l0b2RvIGBQb1F1ZXJ5QnVpbGRlci5leGVjKClgLlxuICAgKiBWZWphIG1haXMgZW06IFtQb1F1ZXJ5QnVpbGRlcl0oL2RvY3VtZW50YXRpb24vcG8tcXVlcnktYnVpbGRlcikuXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSBmaWx0ZXIgT2JqZXRvIHF1ZSBjb250w6ltIG9zIGNhbXBvcyBlIHZhbG9yZXMgYSBzZXJlbSBmaWx0cmFkb3Mgbm8gKnNjaGVtYSouXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZHMgQ2FtcG9zIHF1ZSBzZXLDo28gcmV0b3JuYWRvcyBub3MgcmVnaXN0cm9zLiBFc3RlIGNhbXBvcyBkZXZlbSBlc3RhciBkZW50cm8gZGVcbiAgICogdW1hICpzdHJpbmcqIHNlcGFyYWRvcyBwb3IgZXNwYcOnbyBwb2RlbmRvIHVzYXIgbyBjYXJhY3RlcmUgYC1gIHBhcmEgZXhjbHVpciBjYW1wb3MuXG4gICAqIFBvciBleGVtcGxvLCBhIGRlZmluacOnw6NvIGFiYWl4bzpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnbmFtZSBhZ2UgYWRkcmVzcycpO1xuICAgKiBgYGBcbiAgICogSXLDoSByZXRvcm5hciBhcGVuYXMgb3MgY2FtcG9zIGBuYW1lYCwgYGFnZWAgZSBgYWRkcmVzc2AuIEUgcGFyYSBuw6NvIG1vc3RyYXIgdW0gY2FtcG8gb3UgbWFpcyBiYXN0YSBmYXplcjpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnLW5hbWUgLWFnZScpO1xuICAgKiBgYGBcbiAgICogQHJldHVybnMge1BvUXVlcnlCdWlsZGVyfSBPYmpldG8gcXVlIHBvc3NpYmlsaXRhIGVuY2FkZWFyIHVtIG3DqXRvZG8gZG8gYFBvUXVlcnlCdWlsZGVyYC5cbiAgICovXG4gIGZpbmRPbmUoZmlsdGVyPzogYW55LCBmaWVsZHM/OiBzdHJpbmcpOiBQb1F1ZXJ5QnVpbGRlciB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmZpbmQoZmlsdGVyLCBmaWVsZHMpO1xuICAgIHF1ZXJ5LmxpbWl0KDEpO1xuICAgIHJldHVybiBxdWVyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdW0gcmVnaXN0cm8uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSByZWNvcmQgUmVnaXN0cm8gcXVlIHNlcsOhIHJlbW92aWRvLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3VzdG9tUmVxdWVzdElkIElkZW50aWZpY2Fkb3IgY3VzdG9taXphZG8gZG8gY29tYW5kby5cbiAgICogQHJldHVybnMge1Byb21pc2V9IFByb21lc3NhIHF1ZSDDqSBjb25jbHXDrWRhIGFww7NzIG8gcmVnaXN0cm8gc2VyIHJlbW92aWRvLlxuICAgKi9cbiAgYXN5bmMgcmVtb3ZlKHJlY29yZDogb2JqZWN0LCBjdXN0b21SZXF1ZXN0SWQ/OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHZhbGlkYXRlUGFyYW1ldGVyKHsgcmVjb3JkIH0pO1xuXG4gICAgY29uc3QgcmVtb3ZlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaWRGaWVsZCA9IHJlY29yZFt0aGlzLnNjaGVtYS5pZEZpZWxkXSA/IHRoaXMuc2NoZW1hLmlkRmllbGQgOiBQb1NjaGVtYVV0aWwuc3luY0ludGVybmFsSWRGaWVsZE5hbWU7XG4gICAgICBjb25zdCBzZXJ2ZXJSZWNvcmQgPSBQb1NjaGVtYVV0aWwuc2VwYXJhdGVTY2hlbWFGaWVsZHModGhpcy5zY2hlbWEsIHJlY29yZClbJ3NlcnZlclJlY29yZCddO1xuXG4gICAgICBhd2FpdCB0aGlzLnBvU2NoZW1hU2VydmljZS5yZW1vdmUodGhpcy5zY2hlbWEubmFtZSwgcmVjb3JkW2lkRmllbGRdKTtcbiAgICAgIGF3YWl0IHRoaXMuZXZlbnRTb3VyY2luZy5yZW1vdmUodGhpcy5zY2hlbWEubmFtZSwgc2VydmVyUmVjb3JkLCBjdXN0b21SZXF1ZXN0SWQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5wb1NjaGVtYVNlcnZpY2UubGltaXRlZENhbGxXcmFwKHJlbW92ZSk7XG4gIH1cblxuICAvKipcbiAgICogQWx0ZXJhIG91IGluY2x1aSB1bSByZWdpc3Ryby5cbiAgICpcbiAgICogPiBPIHJlZ2lzdHJvIHNlcsOhIGFsdGVyYWRvIHNlIGVsZSBwb3NzdWlyIHVtICppZCosIGNhc28gY29udHLDoXJpbyB1bSBub3ZvIHJlZ2lzdHJvIHNlcsOhIGNyaWFkby5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IHJlY29yZCBSZWdpc3RybyBxdWUgc2Vyw6EgcGVyc2lzdGlkby5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGN1c3RvbVJlcXVlc3RJZCBJZGVudGlmaWNhZG9yIGN1c3RvbWl6YWRvIGRvIGNvbWFuZG8uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9tZXNzYSBxdWUgw6kgY29uY2x1w61kYSBhcMOzcyBvIHJlZ2lzdHJvIHNlciBhbHRlcmFkbyBvdSBpbmNsdcOtZG8uXG4gICAqL1xuICBhc3luYyBzYXZlKHJlY29yZDogb2JqZWN0LCBjdXN0b21SZXF1ZXN0SWQ/OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHZhbGlkYXRlUGFyYW1ldGVyKHsgcmVjb3JkIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMucG9TY2hlbWFTZXJ2aWNlLmxpbWl0ZWRDYWxsV3JhcCh0aGlzLnNlbGVjdFNhdmVUeXBlLmJpbmQodGhpcywgcmVjb3JkLCB0cnVlLCBjdXN0b21SZXF1ZXN0SWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYWx2YSB1bWEgbGlzdGEgZGUgcmVnaXN0cm9zIGVtIGxvdGUuXG4gICAqXG4gICAqID4gUGFyYSBjYWRhIHJlZ2lzdHJvIGRhIGxpc3RhLCBzZXLDoSBpbnNlcmlkbyB1bSBub3ZvIHJlZ2lzdHJvIHNlIG8gbWVzbW8gbsOjbyB0aXZlciAqaWQqLCBjYXNvIGNvbnRyw6FyaW9cbiAgICogc2Vyw6EgY29udGFkbyBjb21vIHVtYSBhdHVhbGl6YcOnw6NvIGRlIHVtIHJlZ2lzdHJvIGV4aXN0ZW50ZS5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxvYmplY3Q+fSByZWNvcmRzIExpc3RhIGRlIHJlZ2lzdHJvcyBxdWUgc2Vyw6NvIHBlcnNpc3RpZG9zLlxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz4gfCBzdHJpbmd9IGN1c3RvbVJlcXVlc3RJZHMgSWRlbnRpZmljYWRvciBjdXN0b21pemFkbyBkbyBjb21hbmRvLlxuICAgKlxuICAgKiBBbyBwYXNzYXIgdW1hIGxpc3RhIGRlIGlkZW50aWZpY2Fkb3JlcywgY2FkYSDDrW5kaWNlIGRhIGxpc3RhIGRlIGlkZW50aWZpY2Fkb3JlcyBkZXZlcsOhXG4gICAqIGNvcnJlc3BvbmRlciBhbyDDrW5kaWNlIGRvIHJlZ2lzdHJvIG5hIGxpc3RhIGRlIHJlZ2lzdHJvcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn0gUHJvbWVzc2EgcXVlIMOpIGNvbmNsdcOtZGEgYXDDs3Mgb3MgcmVnaXN0cm9zIHNlcmVtIGFsdGVyYWRvcyBvdSBpbmNsdcOtZG9zLlxuICAgKi9cbiAgYXN5bmMgc2F2ZUFsbChyZWNvcmRzOiBBcnJheTxvYmplY3Q+LCBjdXN0b21SZXF1ZXN0SWRzPzogQXJyYXk8c3RyaW5nPiB8IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgdmFsaWRhdGVQYXJhbWV0ZXIoeyByZWNvcmRzIH0pO1xuXG4gICAgY29uc3Qgc2F2ZUFsbCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJhdGNoRXZlbnRzID0gW107XG5cbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCByZWNvcmRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb25zdCByZWNvcmQgPSByZWNvcmRzW2luZGV4XTtcbiAgICAgICAgY29uc3Qgc2VuZFRvRXZlbnRTb3VyY2luZyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IGlzTm9uTG9jYWxSZWNvcmRDaGFuZ2VkID0gYXdhaXQgdGhpcy5pc05vbkxvY2FsUmVjb3JkQ2hhbmdlZChyZWNvcmQpO1xuICAgICAgICBjb25zdCB1cGRhdGVkUmVjb3JkID0gYXdhaXQgdGhpcy5zZWxlY3RTYXZlVHlwZShyZWNvcmQsIHNlbmRUb0V2ZW50U291cmNpbmcpO1xuXG4gICAgICAgIGlmIChpc05vbkxvY2FsUmVjb3JkQ2hhbmdlZCkge1xuICAgICAgICAgIGNvbnN0IGN1c3RvbVJlcXVlc3RJZCA9IGN1c3RvbVJlcXVlc3RJZHMgaW5zdGFuY2VvZiBBcnJheSA/IGN1c3RvbVJlcXVlc3RJZHNbaW5kZXhdIDogY3VzdG9tUmVxdWVzdElkcztcbiAgICAgICAgICBjb25zdCBldmVudE9wZXJhdGlvbiA9IHRoaXMuY3JlYXRlRXZlbnRPcGVyYXRpb24ocmVjb3JkLCB1cGRhdGVkUmVjb3JkLCBjdXN0b21SZXF1ZXN0SWQpO1xuICAgICAgICAgIGJhdGNoRXZlbnRzLnB1c2goZXZlbnRPcGVyYXRpb24pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuZXZlbnRTb3VyY2luZy5jcmVhdGVCYXRjaEV2ZW50cyh0aGlzLnNjaGVtYS5uYW1lLCBiYXRjaEV2ZW50cyk7XG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnBvU2NoZW1hU2VydmljZS5saW1pdGVkQ2FsbFdyYXAoc2F2ZUFsbCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZShuZXdSZWNvcmQ6IGFueSwgc2VuZFRvRXZlbnRTb3VyY2luZzogYm9vbGVhbiwgY3VzdG9tUmVxdWVzdElkPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB0aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgICBjb25zdCBzeW5jUHJvcGVydGllcyA9IHtcbiAgICAgIFtQb1NjaGVtYVV0aWwuc3luY0ludGVybmFsSWRGaWVsZE5hbWVdOiB0aW1lLFxuICAgICAgU3luY0luc2VydGVkRGF0ZVRpbWU6IHRpbWUsXG4gICAgICBTeW5jVXBkYXRlZERhdGVUaW1lOiBudWxsLFxuICAgICAgU3luY0V4Y2x1c2lvbkRhdGVUaW1lOiBudWxsLFxuICAgICAgU3luY0RlbGV0ZWQ6IGZhbHNlLFxuICAgICAgU3luY1N0YXR1czogMFxuICAgIH07XG4gICAgY29uc3QgcmVjb3JkV2l0aFN5bmNQcm9wZXJ0aWVzID0geyAuLi5uZXdSZWNvcmQsIC4uLnN5bmNQcm9wZXJ0aWVzIH07XG5cbiAgICBjb25zdCByZWNvcmRlZERhdGEgPSBhd2FpdCB0aGlzLnBvU2NoZW1hU2VydmljZS5jcmVhdGUodGhpcy5zY2hlbWEsIHJlY29yZFdpdGhTeW5jUHJvcGVydGllcyk7XG5cbiAgICBpZiAoc2VuZFRvRXZlbnRTb3VyY2luZykge1xuICAgICAgYXdhaXQgdGhpcy5ldmVudFNvdXJjaW5nLmNyZWF0ZSh0aGlzLnNjaGVtYS5uYW1lLCByZWNvcmRXaXRoU3luY1Byb3BlcnRpZXMsIGN1c3RvbVJlcXVlc3RJZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlY29yZGVkRGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRXZlbnRPcGVyYXRpb24oXG4gICAgcmVjb3JkOiBvYmplY3QsXG4gICAgdXBkYXRlZFJlY29yZDogb2JqZWN0LFxuICAgIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZ1xuICApOiBQb0V2ZW50U291cmNpbmdTdW1tYXJ5SXRlbSB7XG4gICAgY29uc3Qgb3BlcmF0aW9uID0gUG9TY2hlbWFVdGlsLmdldFJlY29yZElkKHJlY29yZCwgdGhpcy5zY2hlbWEpXG4gICAgICA/IFBvRXZlbnRTb3VyY2luZ09wZXJhdGlvbi5VcGRhdGVcbiAgICAgIDogUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkluc2VydDtcblxuICAgIGNvbnN0IHNlcnZlclJlY29yZCA9IFBvU2NoZW1hVXRpbC5zZXBhcmF0ZVNjaGVtYUZpZWxkcyh0aGlzLnNjaGVtYSwgdXBkYXRlZFJlY29yZClbJ3NlcnZlclJlY29yZCddO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJlY29yZDogc2VydmVyUmVjb3JkLFxuICAgICAgY3VzdG9tUmVxdWVzdElkOiBjdXN0b21SZXF1ZXN0SWQsXG4gICAgICBvcGVyYXRpb246IG9wZXJhdGlvblxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGlzTm9uTG9jYWxSZWNvcmRDaGFuZ2VkKHVwZGF0ZWRSZWNvcmQ6IG9iamVjdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IG5vbkxvY2FsRmllbGROYW1lcyA9IFBvU2NoZW1hVXRpbC5nZXROb25Mb2NhbEZpZWxkTmFtZXModGhpcy5zY2hlbWEpO1xuICAgIGNvbnN0IHJlY29yZCA9IGF3YWl0IHRoaXMucG9TY2hlbWFTZXJ2aWNlLmdldCh0aGlzLnNjaGVtYS5uYW1lLCB1cGRhdGVkUmVjb3JkW3RoaXMuc2NoZW1hLmlkRmllbGRdKTtcblxuICAgIHJldHVybiAhUG9TY2hlbWFVdGlsLmlzTW9kZWxzRXF1YWwobm9uTG9jYWxGaWVsZE5hbWVzLCByZWNvcmQsIHVwZGF0ZWRSZWNvcmQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZWxlY3RTYXZlVHlwZShcbiAgICByZWNvcmQ6IG9iamVjdCxcbiAgICBzZW5kVG9FdmVudFNvdXJjaW5nOiBib29sZWFuLFxuICAgIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZ1xuICApOiBQcm9taXNlPG9iamVjdD4ge1xuICAgIGNvbnN0IGhhc0lkID0gUG9TY2hlbWFVdGlsLmdldFJlY29yZElkKHJlY29yZCwgdGhpcy5zY2hlbWEpO1xuXG4gICAgcmV0dXJuIGhhc0lkXG4gICAgICA/IGF3YWl0IHRoaXMudXBkYXRlKHJlY29yZCwgc2VuZFRvRXZlbnRTb3VyY2luZywgY3VzdG9tUmVxdWVzdElkKVxuICAgICAgOiBhd2FpdCB0aGlzLmNyZWF0ZShyZWNvcmQsIHNlbmRUb0V2ZW50U291cmNpbmcsIGN1c3RvbVJlcXVlc3RJZCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZSh1cGRhdGVkUmVjb3JkOiBhbnksIHNlbmRUb0V2ZW50U291cmNpbmc6IGJvb2xlYW4sIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZyk6IFByb21pc2U8b2JqZWN0PiB7XG4gICAgdXBkYXRlZFJlY29yZC5TeW5jVXBkYXRlZERhdGVUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgdXBkYXRlZFJlY29yZC5TeW5jU3RhdHVzID0gMDtcblxuICAgIGNvbnN0IGlzTm9uTG9jYWxSZWNvcmRDaGFuZ2VkID0gYXdhaXQgdGhpcy5pc05vbkxvY2FsUmVjb3JkQ2hhbmdlZCh1cGRhdGVkUmVjb3JkKTtcbiAgICBjb25zdCByZWNvcmRlZERhdGEgPSBhd2FpdCB0aGlzLnBvU2NoZW1hU2VydmljZS51cGRhdGUodGhpcy5zY2hlbWEsIHVwZGF0ZWRSZWNvcmQpO1xuXG4gICAgaWYgKGlzTm9uTG9jYWxSZWNvcmRDaGFuZ2VkICYmIHNlbmRUb0V2ZW50U291cmNpbmcpIHtcbiAgICAgIGNvbnN0IHNlcnZlclJlY29yZCA9IFBvU2NoZW1hVXRpbC5zZXBhcmF0ZVNjaGVtYUZpZWxkcyh0aGlzLnNjaGVtYSwgdXBkYXRlZFJlY29yZClbJ3NlcnZlclJlY29yZCddO1xuICAgICAgYXdhaXQgdGhpcy5ldmVudFNvdXJjaW5nLnVwZGF0ZSh0aGlzLnNjaGVtYS5uYW1lLCBzZXJ2ZXJSZWNvcmQsIGN1c3RvbVJlcXVlc3RJZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlY29yZGVkRGF0YTtcbiAgfVxufVxuIl19
|
|
@@ -42,4 +42,4 @@ export class PoNetworkStatus {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbmV0d29yay1zdGF0dXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zeW5jL3NyYy9saWIvbW9kZWxzL3BvLW5ldHdvcmstc3RhdHVzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDbEIsS0FBSyxDQUFnQjtJQUU3QixZQUFZLFlBQVk7UUFDdEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLElBQW1CO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCwwQkFBMEI7SUFDbEIsd0JBQXdCO1FBQzlCLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQzNFLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxZQUFZO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzlDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRXJFLElBQUksQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUMzRyxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9OZXR3b3JrVHlwZSB9IGZyb20gJy4vcG8tbmV0d29yay10eXBlLmVudW0nO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIENsYXNzZSByZXNwb25zw6F2ZWwgcG9yIGlkZW50aWZpY2FyIGEgY29uZXjDo28gZGUgcmVkZSBkaXNwb27DrXZlbCBubyBkaXNwb3NpdGl2by5cbiAqL1xuZXhwb3J0IGNsYXNzIFBvTmV0d29ya1N0YXR1cyB7XG4gIHByaXZhdGUgX3R5cGU6IFBvTmV0d29ya1R5cGU7XG5cbiAgY29uc3RydWN0b3IobmV0d29ydGtUeXBlKSB7XG4gICAgdGhpcy5zZXROZXR3b3JrQ29ubmVjdGlvbihuZXR3b3J0a1R5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgc2UgbyBkaXNwb3NpdGl2byBlc3TDoSBjb25lY3RhZG8gbmEgcmVkZS5cbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59IFN0YXR1cyBkYSBjb25leMOjbyBjb20gYSByZWRlLlxuICAgKi9cbiAgZ2V0IHN0YXR1cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlICE9PSBQb05ldHdvcmtUeXBlLm5vbmU7XG4gIH1cblxuICAvKipcbiAgICogUmV0b3JuYSBvIHRpcG8gZGUgY29uZXjDo28gZG8gZGlzcG9zaXRpdm8uXG4gICAqXG4gICAqIEByZXR1cm5zIHtQb05ldHdvcmtUeXBlfSBUaXBvIGRhIGNvbmV4w6NvIGNvbSBhIHJlZGUuXG4gICAqL1xuICBnZXQgdHlwZSgpOiBQb05ldHdvcmtUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgfVxuXG4gIHNldCB0eXBlKHR5cGU6IFBvTmV0d29ya1R5cGUpIHtcbiAgICB0aGlzLl90eXBlID0gdHlwZTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHByaXZhdGUgc2V0RGVmYXVsdFR5cGVOYXZpZ2F0aW9uKCkge1xuICAgIHJldHVybiBuYXZpZ2F0b3Iub25MaW5lID8gUG9OZXR3b3JrVHlwZVsnZXRoZXJuZXQnXSA6IFBvTmV0d29ya1R5cGUubm9uZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TmV0d29ya0Nvbm5lY3Rpb24obmV0d29ydGtUeXBlKTogdm9pZCB7XG4gICAgaWYgKCFuZXR3b3J0a1R5cGUpIHtcbiAgICAgIHRoaXMudHlwZSA9IHRoaXMuc2V0RGVmYXVsdFR5cGVOYXZpZ2F0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGlzR2VuZXJhdGlvbk1vYmlsZSA9IFsnMmcnLCAnM2cnLCAnNGcnXS5pbmNsdWRlcyhuZXR3b3J0a1R5cGUpO1xuXG4gICAgICB0aGlzLnR5cGUgPSBpc0dlbmVyYXRpb25Nb2JpbGUgPyBQb05ldHdvcmtUeXBlWydfJyArIG5ldHdvcnRrVHlwZV0gOiBQb05ldHdvcmtUeXBlW1N0cmluZyhuZXR3b3J0a1R5cGUpXTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -243,4 +243,4 @@ export class PoQueryBuilder {
|
|
|
243
243
|
return fields.filter(field => !restrictedFields.includes(field));
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcXVlcnktYnVpbGRlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5bmMvc3JjL2xpYi9tb2RlbHMvcG8tcXVlcnktYnVpbGRlci9wby1xdWVyeS1idWlsZGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBTXREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFVZjtJQUNBO0lBVkYsTUFBTSxDQUFTO0lBQ2YsT0FBTyxDQUFNO0lBRWIsTUFBTSxDQUFTO0lBQ2YsS0FBSyxDQUFTO0lBQ2QsU0FBUyxDQUFTO0lBQ2xCLEtBQUssQ0FBUztJQUV0QixZQUNVLGVBQWdDLEVBQ2hDLE1BQW9CO1FBRHBCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBRTVCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RSxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3JDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUNwQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUM5QztZQUNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDZixXQUFXLEdBQUcsSUFBSSxDQUFD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QztJQUVPLGVBQWUsQ0FBQyxNQUFNO1FBQzVCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQW1CLEVBQUUsWUFBMkI7UUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUN0QjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxnQkFBNEIsRUFBRSxNQUFrQjtRQUM3RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZhbGlkYXRlUGFyYW1ldGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xuXG5pbXBvcnQgeyBQb1Jlc3BvbnNlQXBpIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9wby1odHRwLWNsaWVudC9pbnRlcmZhY2VzL3BvLXJlc3BvbnNlLWFwaS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9TY2hlbWFTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9wby1zY2hlbWEnO1xuaW1wb3J0IHsgUG9TeW5jU2NoZW1hIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tc3luYy9pbnRlcmZhY2VzL3BvLXN5bmMtc2NoZW1hLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogQ2xhc3NlIHV0aWxpdMOhcmlhIHBhcmEgY29uc3RydWlyIGNvbnN1bHRhcyBzb2JyZSBvcyByZWdpc3Ryb3MgZGUgdW0gKnNjaGVtYSouXG4gKlxuICogQSB1dGlsaXphw6fDo28gZG9zIG3DqXRvZG9zIGRlc3RhIGNsYXNzZSDDqSBmZWl0YSBhIHBhcnRpciBkbyByZXRvcm5vIGRvIG3DqXRvZG8gYFBvRW50aXR5LmZpbmQoKWAuIFBvciBleGVtcGxvLFxuICogcGFyYSB1dGlsaXphciBvIG3DqXRvZG8gYFBvUXVlcnlCdWlsZGVyLnBhZ2UoKWAsIMOpIG5lY2Vzc8OhcmlvOlxuICpcbiAqIGBgYCB0eXBlc2NyaXB0XG4gKiBQb1N5bmNTZXJ2aWNlLmdldE1vZGVsKCdzY2hlbWEgbmFtZScpLmZpbmQoKS5wYWdlKDIpLmV4ZWMoKTtcbiAqIGBgYFxuICpcbiAqIE8gYFBvUXVlcnlCdWlsZGVyYCBmb2kgcHJvamV0YWRvIHBhcmEgcXVlIG9zIHNldXMgbcOpdG9kb3Mgc2VqYW1cbiAqIGNoYW1hZG9zIGVtIGNhc2NhdGEgZSBhbyBmaW5hbCBkZXNzZSBlbmNhZGVhbWVudG8gaW52b2NhciBvIG3DqXRvZG9cbiAqIGBQb1F1ZXJ5QnVpbGRlci5leGVjKClgIHBhcmEgcXVlIGEgYnVzY2Egc2VqYSBjb25jbHXDrWRhLiBQb3IgZXhlbXBsbzpcbiAqXG4gKiBgYGAgdHlwZXNjcmlwdFxuICogUG9TeW5jU2VydmljZVxuICogICAuZ2V0TW9kZWwoJ3NjaGVtYSBuYW1lJylcbiAqICAgLmZpbmQoKVxuICogICAucGFnZSgyKVxuICogICAucGFnZVNpemUoNSlcbiAqICAgLnNvcnQoKVxuICogICAuZXhlYygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBQb1F1ZXJ5QnVpbGRlciB7XG4gIHByaXZhdGUgZmllbGRzOiBzdHJpbmc7XG4gIHByaXZhdGUgZmlsdGVyczogYW55O1xuXG4gIHByaXZhdGUgX2xpbWl0OiBudW1iZXI7XG4gIHByaXZhdGUgX3BhZ2U6IG51bWJlcjtcbiAgcHJpdmF0ZSBfcGFnZVNpemU6IG51bWJlcjtcbiAgcHJpdmF0ZSBfc29ydDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcG9TY2hlbWFTZXJ2aWNlOiBQb1NjaGVtYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzY2hlbWE6IFBvU3luY1NjaGVtYVxuICApIHtcbiAgICB0aGlzLl9wYWdlID0gMTtcbiAgICB0aGlzLmZpbHRlcnMgPSB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbyBmaW5hbCBkYSBjaGFtYWRhIGRvcyBtw6l0b2RvcyBkbyBgUG9RdWVyeUJ1aWxkZXJgIHV0aWxpemFkb3MsIGVzdGUgbcOpdG9kbyBkZXZlIHNlciBjaGFtYWRvIHBhcmEgcXVlIGEgYnVzY2Egc2VqYSBjb25jbHXDrWRhLlxuICAgKlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFBvUmVzcG9uc2VBcGkgfCBvYmplY3Q+fSBSZWdpc3Ryb3MgZG8gKnNjaGVtYSogbmEgcXVhbCBmb2kgYXBsaWNhZG8gYSBjb25zdWx0YS5cbiAgICovXG4gIGFzeW5jIGV4ZWMoKTogUHJvbWlzZTxQb1Jlc3BvbnNlQXBpIHwgb2JqZWN0PiB7XG4gICAgbGV0IHN0b3JhZ2VEYXRhID0gYXdhaXQgdGhpcy5wb1NjaGVtYVNlcnZpY2UuZ2V0QWxsKHRoaXMuc2NoZW1hLm5hbWUpO1xuXG4gICAgaWYgKHN0b3JhZ2VEYXRhICYmIHN0b3JhZ2VEYXRhLmxlbmd0aCkge1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuZmlsdGVycykubGVuZ3RoKSB7XG4gICAgICAgIHN0b3JhZ2VEYXRhID0gdGhpcy5hcHBseUZpbHRlcnMoc3RvcmFnZURhdGEpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZmllbGRzKSB7XG4gICAgICAgIHN0b3JhZ2VEYXRhID0gdGhpcy5hcHBseUZpZWxkcyh0aGlzLnNjaGVtYS5maWVsZHMsIHN0b3JhZ2VEYXRhKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9zb3J0KSB7XG4gICAgICAgIHN0b3JhZ2VEYXRhID0gdGhpcy5vcmRlcihzdG9yYWdlRGF0YSwgdGhpcy5fc29ydCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9saW1pdCkge1xuICAgICAgICByZXR1cm4gc3RvcmFnZURhdGFbMF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdpbmF0ZShzdG9yYWdlRGF0YSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhhc05leHQ6IGZhbHNlLFxuICAgICAgICBpdGVtczogW11cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFwbGljYSBmaWx0cm9zIHNvYnJlIG9zIHJlZ2lzdHJvcywgYmFzZWFkb3Mgbm9zIGNhbXBvcyBlIHZhbG9yZXMgZGVmaW5pZG9zIGNvbW8gZmlsdHJvLiBQb3IgZXhlbXBsbzpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLmZpbHRlcih7IG5hbWU6ICdNYXJpZScsIGFnZTogMjQgfSk7XG4gICAqIGBgYFxuICAgKiBSZXRvcm5hIHRvZG9zIG9zIHJlZ2lzdHJvcyBxdWUgY29udGVuaGFtIGEgcHJvcHJpZWRhZGUgYG5hbWVgIGlndWFsIGEgTWFyaWUgZSBgYWdlYCBpZ3VhbCBhIDI0LlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gZmlsdGVyIE9iamV0byBxdWUgY29udMOpbSBvcyBjYW1wb3MgZSB2YWxvcmVzIGEgc2VyZW0gZmlsdHJhZG9zIG5vICpzY2hlbWEqLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UG9RdWVyeUJ1aWxkZXJ9IE9iamV0byBxdWUgcG9zc2liaWxpdGEgZW5jYWRlYXIgdW0gbm92byBtw6l0b2RvIGRvIGBQb1F1ZXJ5QnVpbGRlcmAuXG4gICAqL1xuICBmaWx0ZXIoZmlsdGVyPzogb2JqZWN0KTogUG9RdWVyeUJ1aWxkZXIge1xuICAgIGlmIChmaWx0ZXIgJiYgdHlwZW9mIGZpbHRlciA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHRoaXMuZmlsdGVycyA9IHsgLi4udGhpcy5maWx0ZXJzLCAuLi5maWx0ZXIgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWx0ZXIgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1pdGEgbyBuw7ptZXJvIGRlIHJlZ2lzdHJvcyBxdWUgc2Vyw6NvIHJldG9ybmFkb3MuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaW1pdCBOw7ptZXJvIGRlIHJlZ2lzdHJvcyByZXRvcm5hZG9zLlxuICAgKiBAcmV0dXJucyB7UG9RdWVyeUJ1aWxkZXJ9IE9iamV0byBxdWUgcG9zc2liaWxpdGEgZW5jYWRlYXIgdW0gbm92byBtw6l0b2RvIGRvIGBQb1F1ZXJ5QnVpbGRlcmAuXG4gICAqL1xuICBsaW1pdChsaW1pdDogbnVtYmVyKTogUG9RdWVyeUJ1aWxkZXIge1xuICAgIHRoaXMuX2xpbWl0ID0gbGltaXQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRXNwZWNpZmljYSBhIHDDoWdpbmEgZGUgcmVnaXN0cm9zIHF1ZSBzZSBkZXNlamEgcmV0b3JuYXIuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBwYWdlIE7Dum1lcm8gZGEgcMOhZ2luYS5cbiAgICogQHJldHVybnMge1BvUXVlcnlCdWlsZGVyfSBPYmpldG8gcXVlIHBvc3NpYmlsaXRhIGVuY2FkZWFyIHVtIG5vdm8gbcOpdG9kbyBkbyBgUG9RdWVyeUJ1aWxkZXJgLlxuICAgKi9cbiAgcGFnZShwYWdlOiBudW1iZXIpOiBQb1F1ZXJ5QnVpbGRlciB7XG4gICAgdmFsaWRhdGVQYXJhbWV0ZXIoeyBwYWdlIH0pO1xuXG4gICAgdGhpcy5fcGFnZSA9IHBhZ2U7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIHF1YW50b3MgZWxlbWVudG9zIHNlcsOjbyByZXRvcm5hZG9zIHBvciBww6FnaW5hLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gcGFnZVNpemUgTsO6bWVybyBkZSByZWdpc3Ryb3MgcG9yIHDDoWdpbmEuXG4gICAqIEByZXR1cm5zIHtQb1F1ZXJ5QnVpbGRlcn0gT2JqZXRvIHF1ZSBwb3NzaWJpbGl0YSBlbmNhZGVhciB1bSBub3ZvIG3DqXRvZG8gZG8gYFBvUXVlcnlCdWlsZGVyYC5cbiAgICovXG4gIHBhZ2VTaXplKHBhZ2VTaXplOiBudW1iZXIpOiBQb1F1ZXJ5QnVpbGRlciB7XG4gICAgdmFsaWRhdGVQYXJhbWV0ZXIoeyBwYWdlU2l6ZSB9KTtcblxuICAgIHRoaXMuX3BhZ2VTaXplID0gcGFnZVNpemU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXRpbGl6YWRvIHBhcmEgZGVmaW5pciBxdWFpcyBjYW1wb3MgZG8gKnNjaGVtYSogc2Vyw6NvIHJldG9ybmFkb3MgbmEgY29uc3VsdGEuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZHMgQ2FtcG9zIHF1ZSBzZXLDo28gcmV0b3JuYWRvcyBub3MgcmVnaXN0cm9zLiBFc3RlIGNhbXBvcyBkZXZlbSBlc3RhciBkZW50cm8gZGVcbiAgICogdW1hICpzdHJpbmcqIHNlcGFyYWRvcyBwb3IgZXNwYcOnbyBwb2RlbmRvIHVzYXIgbyBjYXJhY3RlcmUgYC1gIHBhcmEgZXhjbHVpciBjYW1wb3MuXG4gICAqIFBvciBleGVtcGxvLCBhIGRlZmluacOnw6NvIGFiYWl4bzpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnbmFtZSBhZ2UgYWRkcmVzcycpO1xuICAgKiBgYGBcbiAgICogSXLDoSByZXRvcm5hciBhcGVuYXMgb3MgY2FtcG9zIGBuYW1lYCwgYGFnZWAgZSBgYWRkcmVzc2AuIFBhcmEgbsOjbyByZXRvcm5hciB1bSBjYW1wbyBvdSBtYWlzIGJhc3RhIGZhemVyOlxuICAgKlxuICAgKiBgYGBcbiAgICogUG9RdWVyeUJ1aWxkZXIuc2VsZWN0KCctbmFtZSAtYWdlJyk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcmV0dXJucyB7UG9RdWVyeUJ1aWxkZXJ9IE9iamV0byBxdWUgcG9zc2liaWxpdGEgZW5jYWRlYXIgdW0gbm92byBtw6l0b2RvIGRvIGBQb1F1ZXJ5QnVpbGRlcmAuXG4gICAqL1xuICBzZWxlY3QoZmllbGRzOiBzdHJpbmcpOiBQb1F1ZXJ5QnVpbGRlciB7XG4gICAgdmFsaWRhdGVQYXJhbWV0ZXIoeyBmaWVsZHMgfSk7XG5cbiAgICB0aGlzLmZpZWxkcyA9IGZpZWxkcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBPcmRlbmEgb3MgcmVnaXN0cm9zIHBvciB1bSBjYW1wby5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpZWxkIENhbXBvIGEgc2VyIG9yZGVuYWRvLiBQYXJhIG9yZGVuYXIgZGUgZm9ybWEgZGVjcmVzY2VudGUgYmFzdGEgY29sb2NhciBvIGNhcmFjdGVyZSBgLWBcbiAgICogbmEgZnJlbnRlIGRvIGNhbXBvLiBQb3IgZXhlbXBsbzpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNvcnQoJy1uYW1lJyk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcmV0dXJucyB7UG9RdWVyeUJ1aWxkZXJ9IE9iamV0byBxdWUgcG9zc2liaWxpdGEgZW5jYWRlYXIgdW0gbm92byBtw6l0b2RvIGRvIGBQb1F1ZXJ5QnVpbGRlcmAuXG4gICAqL1xuICBzb3J0KGZpZWxkOiBzdHJpbmcpOiBQb1F1ZXJ5QnVpbGRlciB7XG4gICAgdmFsaWRhdGVQYXJhbWV0ZXIoeyBmaWVsZCB9KTtcblxuICAgIHRoaXMuX3NvcnQgPSBmaWVsZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBFc3NhIGZ1bsOnw6NvIHNlcnZlIGNvbW8gYWxpYXMgcGFyYSBvIGBQb1F1ZXJ5QnVpbGRlci5maWx0ZXIoKWAuIMOJIHV0aWxpemFkYSBzb21lbnRlIHBhcmEgZGFyIG1haW9yIGxlZ2liaWxpZGFkZSBhbyBjw7NkaWdvLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gZmlsdGVyIE9iamV0byBxdWUgY29udMOpbSBvcyBjYW1wb3MgZSB2YWxvcmVzIGEgc2VyZW0gZmlsdHJhZG9zIG5vICpzY2hlbWEqLlxuICAgKiBAcmV0dXJucyB7UG9RdWVyeUJ1aWxkZXJ9IE9iamV0byBxdWUgcG9zc2liaWxpdGEgZW5jYWRlYXIgdW0gbm92byBtw6l0b2RvIGRvIGBQb1F1ZXJ5QnVpbGRlcmAuXG4gICAqL1xuICB3aGVyZShmaWx0ZXI6IG9iamVjdCk6IFBvUXVlcnlCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoZmlsdGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGaWVsZHMoc2NoZW1hRmllbGRzOiBBcnJheTxhbnk+LCBkYXRhOiBBcnJheTxvYmplY3Q+KTogQXJyYXk8b2JqZWN0PiB7XG4gICAgY29uc3QgcmVjZWl2ZWRGaWVsZHMgPSB0aGlzLmZpZWxkcy5zcGxpdCgnICcpO1xuICAgIGxldCByZXN0cmljdGVkRmllbGRzID0gW107XG4gICAgbGV0IHNlbGVjdGVkRmllbGRzID0gW107XG5cbiAgICBbc2VsZWN0ZWRGaWVsZHMsIHJlc3RyaWN0ZWRGaWVsZHNdID0gdGhpcy5ncm91cEZpZWxkcyhyZWNlaXZlZEZpZWxkcyk7XG5cbiAgICBpZiAoIXNlbGVjdGVkRmllbGRzLmxlbmd0aCAmJiByZXN0cmljdGVkRmllbGRzLmxlbmd0aCkge1xuICAgICAgc2VsZWN0ZWRGaWVsZHMgPSBbLi4uc2NoZW1hRmllbGRzXTtcbiAgICB9XG5cbiAgICBpZiAocmVzdHJpY3RlZEZpZWxkcy5sZW5ndGgpIHtcbiAgICAgIHNlbGVjdGVkRmllbGRzID0gdGhpcy5yZW1vdmVSZXN0cmljdGVkRmllbGRzKHJlc3RyaWN0ZWRGaWVsZHMsIHNlbGVjdGVkRmllbGRzKTtcbiAgICB9XG5cbiAgICBzZWxlY3RlZEZpZWxkcyA9IHRoaXMucmVtb3ZlRHVwbGljYXRlKHNlbGVjdGVkRmllbGRzKTtcblxuICAgIHJldHVybiB0aGlzLnJlbW92ZUZpZWxkc0RhdGEoZGF0YSwgc2VsZWN0ZWRGaWVsZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUZpbHRlcnMoZGF0YTogQXJyYXk8b2JqZWN0Pik6IEFycmF5PG9iamVjdD4ge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuZmlsdGVycykuZm9yRWFjaChmaWx0ZXJLZXkgPT4ge1xuICAgICAgZGF0YSA9IGRhdGEuZmlsdGVyKGl0ZW0gPT4gaXRlbVtmaWx0ZXJLZXldID09PSB0aGlzLmZpbHRlcnNbZmlsdGVyS2V5XSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgZ3JvdXBGaWVsZHMocmVjZWl2ZWRGaWVsZHM6IEFycmF5PHN0cmluZz4pOiBBcnJheTxBcnJheTxzdHJpbmc+PiB7XG4gICAgY29uc3QgcmVzdHJpY3RlZEZpZWxkcyA9IFtdO1xuICAgIGNvbnN0IHNlbGVjdGVkRmllbGRzID0gW107XG5cbiAgICByZWNlaXZlZEZpZWxkcy5mb3JFYWNoKGZpZWxkcyA9PiB7XG4gICAgICBpZiAoZmllbGRzLnN0YXJ0c1dpdGgoJy0nKSkge1xuICAgICAgICByZXN0cmljdGVkRmllbGRzLnB1c2goZmllbGRzLnN1YnN0cmluZygxKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxlY3RlZEZpZWxkcy5wdXNoKGZpZWxkcyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIFtzZWxlY3RlZEZpZWxkcywgcmVzdHJpY3RlZEZpZWxkc107XG4gIH1cblxuICBwcml2YXRlIHBhZ2luYXRlKGRhdGE6IEFycmF5PGFueT4pOiB7IGhhc05leHQ6IGJvb2xlYW47IGl0ZW1zOiBBcnJheTxhbnk+IH0ge1xuICAgIGNvbnN0IGRhdGFMZW5ndGggPSBkYXRhLmxlbmd0aDtcbiAgICBjb25zdCBwYWdlU2l6ZSA9IHRoaXMuX3BhZ2VTaXplIHx8IGRhdGFMZW5ndGg7XG5cbiAgICBjb25zdCBwYWdlcyA9IE1hdGguY2VpbChkYXRhTGVuZ3RoIC8gcGFnZVNpemUpO1xuICAgIGNvbnN0IGJlZ2luID0gdGhpcy5fcGFnZSAqIHBhZ2VTaXplIC0gcGFnZVNpemU7XG4gICAgY29uc3QgZW5kID0gYmVnaW4gKyBwYWdlU2l6ZTtcblxuICAgIHJldHVybiB7IGhhc05leHQ6IHRoaXMuX3BhZ2UgPCBwYWdlcywgaXRlbXM6IGRhdGEuc2xpY2UoYmVnaW4sIGVuZCkgfTtcbiAgfVxuXG4gIHByaXZhdGUgb3JkZXIoZGF0YTogQXJyYXk8YW55Piwgc29ydGluZ0ZpZWxkOiBzdHJpbmcpOiBBcnJheTxhbnk+IHtcbiAgICBjb25zdCBkZXNjZW5kaW5nT3JkZXIgPSBzb3J0aW5nRmllbGQuc3RhcnRzV2l0aCgnLScpO1xuICAgIHNvcnRpbmdGaWVsZCA9IGRlc2NlbmRpbmdPcmRlciA/IHNvcnRpbmdGaWVsZC5zdWJzdHIoMSkgOiBzb3J0aW5nRmllbGQ7XG5cbiAgICByZXR1cm4gZGF0YS5zb3J0KChvcHRpb25BLCBvcHRpb25CKSA9PiB7XG4gICAgICBpZiAob3B0aW9uQVtzb3J0aW5nRmllbGRdID4gb3B0aW9uQltzb3J0aW5nRmllbGRdKSB7XG4gICAgICAgIHJldHVybiAhZGVzY2VuZGluZ09yZGVyID8gMSA6IC0xO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9uQVtzb3J0aW5nRmllbGRdIDwgb3B0aW9uQltzb3J0aW5nRmllbGRdKSB7XG4gICAgICAgIHJldHVybiAhZGVzY2VuZGluZ09yZGVyID8gLTEgOiAxO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlKGZpZWxkcyk6IEFycmF5PGFueT4ge1xuICAgIHJldHVybiBmaWVsZHMuZmlsdGVyKChpdGVtLCBwb3NpdGlvbikgPT4gZmllbGRzLmluZGV4T2YoaXRlbSkgPT09IHBvc2l0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRmllbGRzRGF0YShkYXRhOiBBcnJheTxvYmplY3Q+LCBjaG9zZW5GaWVsZHM6IEFycmF5PHN0cmluZz4pOiBBcnJheTxvYmplY3Q+IHtcbiAgICBkYXRhLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBPYmplY3Qua2V5cyhpdGVtKS5mb3JFYWNoKGtleUl0ZW0gPT4ge1xuICAgICAgICBpZiAoIWNob3NlbkZpZWxkcy5pbmNsdWRlcyhrZXlJdGVtKSkge1xuICAgICAgICAgIGRlbGV0ZSBpdGVtW2tleUl0ZW1dO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUmVzdHJpY3RlZEZpZWxkcyhyZXN0cmljdGVkRmllbGRzOiBBcnJheTxhbnk+LCBmaWVsZHM6IEFycmF5PGFueT4pIHtcbiAgICByZXR1cm4gZmllbGRzLmZpbHRlcihmaWVsZCA9PiAhcmVzdHJpY3RlZEZpZWxkcy5pbmNsdWRlcyhmaWVsZCkpO1xuICB9XG59XG4iXX0=
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcXVlcnktYnVpbGRlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5bmMvc3JjL2xpYi9tb2RlbHMvcG8tcXVlcnktYnVpbGRlci9wby1xdWVyeS1idWlsZGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBTXREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFVZjtJQUNBO0lBVkYsTUFBTSxDQUFTO0lBQ2YsT0FBTyxDQUFNO0lBRWIsTUFBTSxDQUFTO0lBQ2YsS0FBSyxDQUFTO0lBQ2QsU0FBUyxDQUFTO0lBQ2xCLEtBQUssQ0FBUztJQUV0QixZQUNVLGVBQWdDLEVBQ2hDLE1BQW9CO1FBRHBCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBRTVCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RSxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDckMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNo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LFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUVELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZSxDQUFDLE1BQU07UUFDNUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBbUIsRUFBRSxZQUEyQjtRQUN2RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUNwQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdkIsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxnQkFBNEIsRUFBRSxNQUFrQjtRQUM3RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZhbGlkYXRlUGFyYW1ldGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xuXG5pbXBvcnQgeyBQb1Jlc3BvbnNlQXBpIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9wby1odHRwLWNsaWVudC9pbnRlcmZhY2VzL3BvLXJlc3BvbnNlLWFwaS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9TY2hlbWFTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9wby1zY2hlbWEnO1xuaW1wb3J0IHsgUG9TeW5jU2NoZW1hIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tc3luYy9pbnRlcmZhY2VzL3BvLXN5bmMtc2NoZW1hLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogQ2xhc3NlIHV0aWxpdMOhcmlhIHBhcmEgY29uc3RydWlyIGNvbnN1bHRhcyBzb2JyZSBvcyByZWdpc3Ryb3MgZGUgdW0gKnNjaGVtYSouXG4gKlxuICogQSB1dGlsaXphw6fDo28gZG9zIG3DqXRvZG9zIGRlc3RhIGNsYXNzZSDDqSBmZWl0YSBhIHBhcnRpciBkbyByZXRvcm5vIGRvIG3DqXRvZG8gYFBvRW50aXR5LmZpbmQoKWAuIFBvciBleGVtcGxvLFxuICogcGFyYSB1dGlsaXphciBvIG3DqXRvZG8gYFBvUXVlcnlCdWlsZGVyLnBhZ2UoKWAsIMOpIG5lY2Vzc8OhcmlvOlxuICpcbiAqIGBgYCB0eXBlc2NyaXB0XG4gKiBQb1N5bmNTZXJ2aWNlLmdldE1vZGVsKCdzY2hlbWEgbmFtZScpLmZpbmQoKS5wYWdlKDIpLmV4ZWMoKTtcbiAqIGBgYFxuICpcbiAqIE8gYFBvUXVlcnlCdWlsZGVyYCBmb2kgcHJvamV0YWRvIHBhcmEgcXVlIG9zIHNldXMgbcOpdG9kb3Mgc2VqYW1cbiAqIGNoYW1hZG9zIGVtIGNhc2NhdGEgZSBhbyBmaW5hbCBkZXNzZSBlbmNhZGVhbWVudG8gaW52b2NhciBvIG3DqXRvZG9cbiAqIGBQb1F1ZXJ5QnVpbGRlci5leGVjKClgIHBhcmEgcXVlIGEgYnVzY2Egc2VqYSBjb25jbHXDrWRhLiBQb3IgZXhlbXBsbzpcbiAqXG4gKiBgYGAgdHlwZXNjcmlwdFxuICogUG9TeW5jU2VydmljZVxuICogICAuZ2V0TW9kZWwoJ3NjaGVtYSBuYW1lJylcbiAqICAgLmZpbmQoKVxuICogICAucGFnZSgyKVxuICogICAucGFnZVNpemUoNSlcbiAqICAgLnNvcnQoKVxuICogICAuZXhlYygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBQb1F1ZXJ5QnVpbGRlciB7XG4gIHByaXZhdGUgZmllbGRzOiBzdHJpbmc7XG4gIHByaXZhdGUgZmlsdGVyczogYW55O1xuXG4gIHByaXZhdGUgX2xpbWl0OiBudW1iZXI7XG4gIHByaXZhdGUgX3BhZ2U6IG51bWJlcjtcbiAgcHJpdmF0ZSBfcGFnZVNpemU6IG51bWJlcjtcbiAgcHJpdmF0ZSBfc29ydDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcG9TY2hlbWFTZXJ2aWNlOiBQb1NjaGVtYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzY2hlbWE6IFBvU3luY1NjaGVtYVxuICApIHtcbiAgICB0aGlzLl9wYWdlID0gMTtcbiAgICB0aGlzLmZpbHRlcnMgPSB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbyBmaW5hbCBkYSBjaGFtYWRhIGRvcyBtw6l0b2RvcyBkbyBgUG9RdWVyeUJ1aWxkZXJgIHV0aWxpemFkb3MsIGVzdGUgbcOpdG9kbyBkZXZlIHNlciBjaGFtYWRvIHBhcmEgcXVlIGEgYnVzY2Egc2VqYSBjb25jbHXDrWRhLlxuICAgKlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFBvUmVzcG9uc2VBcGkgfCBvYmplY3Q+fSBSZWdpc3Ryb3MgZG8gKnNjaGVtYSogbmEgcXVhbCBmb2kgYXBsaWNhZG8gYSBjb25zdWx0YS5cbiAgICovXG4gIGFzeW5jIGV4ZWMoKTogUHJvbWlzZTxQb1Jlc3BvbnNlQXBpIHwgb2JqZWN0PiB7XG4gICAgbGV0IHN0b3JhZ2VEYXRhID0gYXdhaXQgdGhpcy5wb1NjaGVtYVNlcnZpY2UuZ2V0QWxsKHRoaXMuc2NoZW1hLm5hbWUpO1xuXG4gICAgaWYgKHN0b3JhZ2VEYXRhICYmIHN0b3JhZ2VEYXRhLmxlbmd0aCkge1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuZmlsdGVycykubGVuZ3RoKSB7XG4gICAgICAgIHN0b3JhZ2VEYXRhID0gdGhpcy5hcHBseUZpbHRlcnMoc3RvcmFnZURhdGEpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZmllbGRzKSB7XG4gICAgICAgIHN0b3JhZ2VEYXRhID0gdGhpcy5hcHBseUZpZWxkcyh0aGlzLnNjaGVtYS5maWVsZHMsIHN0b3JhZ2VEYXRhKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9zb3J0KSB7XG4gICAgICAgIHN0b3JhZ2VEYXRhID0gdGhpcy5vcmRlcihzdG9yYWdlRGF0YSwgdGhpcy5fc29ydCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9saW1pdCkge1xuICAgICAgICByZXR1cm4gc3RvcmFnZURhdGFbMF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdpbmF0ZShzdG9yYWdlRGF0YSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhhc05leHQ6IGZhbHNlLFxuICAgICAgICBpdGVtczogW11cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFwbGljYSBmaWx0cm9zIHNvYnJlIG9zIHJlZ2lzdHJvcywgYmFzZWFkb3Mgbm9zIGNhbXBvcyBlIHZhbG9yZXMgZGVmaW5pZG9zIGNvbW8gZmlsdHJvLiBQb3IgZXhlbXBsbzpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLmZpbHRlcih7IG5hbWU6ICdNYXJpZScsIGFnZTogMjQgfSk7XG4gICAqIGBgYFxuICAgKiBSZXRvcm5hIHRvZG9zIG9zIHJlZ2lzdHJvcyBxdWUgY29udGVuaGFtIGEgcHJvcHJpZWRhZGUgYG5hbWVgIGlndWFsIGEgTWFyaWUgZSBgYWdlYCBpZ3VhbCBhIDI0LlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gZmlsdGVyIE9iamV0byBxdWUgY29udMOpbSBvcyBjYW1wb3MgZSB2YWxvcmVzIGEgc2VyZW0gZmlsdHJhZG9zIG5vICpzY2hlbWEqLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UG9RdWVyeUJ1aWxkZXJ9IE9iamV0byBxdWUgcG9zc2liaWxpdGEgZW5jYWRlYXIgdW0gbm92byBtw6l0b2RvIGRvIGBQb1F1ZXJ5QnVpbGRlcmAuXG4gICAqL1xuICBmaWx0ZXIoZmlsdGVyPzogb2JqZWN0KTogUG9RdWVyeUJ1aWxkZXIge1xuICAgIGlmIChmaWx0ZXIgJiYgdHlwZW9mIGZpbHRlciA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHRoaXMuZmlsdGVycyA9IHsgLi4udGhpcy5maWx0ZXJzLCAuLi5maWx0ZXIgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWx0ZXIgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1pdGEgbyBuw7ptZXJvIGRlIHJlZ2lzdHJvcyBxdWUgc2Vyw6NvIHJldG9ybmFkb3MuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaW1pdCBOw7ptZXJvIGRlIHJlZ2lzdHJvcyByZXRvcm5hZG9zLlxuICAgKiBAcmV0dXJucyB7UG9RdWVyeUJ1aWxkZXJ9IE9iamV0byBxdWUgcG9zc2liaWxpdGEgZW5jYWRlYXIgdW0gbm92byBtw6l0b2RvIGRvIGBQb1F1ZXJ5QnVpbGRlcmAuXG4gICAqL1xuICBsaW1pdChsaW1pdDogbnVtYmVyKTogUG9RdWVyeUJ1aWxkZXIge1xuICAgIHRoaXMuX2xpbWl0ID0gbGltaXQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRXNwZWNpZmljYSBhIHDDoWdpbmEgZGUgcmVnaXN0cm9zIHF1ZSBzZSBkZXNlamEgcmV0b3JuYXIuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBwYWdlIE7Dum1lcm8gZGEgcMOhZ2luYS5cbiAgICogQHJldHVybnMge1BvUXVlcnlCdWlsZGVyfSBPYmpldG8gcXVlIHBvc3NpYmlsaXRhIGVuY2FkZWFyIHVtIG5vdm8gbcOpdG9kbyBkbyBgUG9RdWVyeUJ1aWxkZXJgLlxuICAgKi9cbiAgcGFnZShwYWdlOiBudW1iZXIpOiBQb1F1ZXJ5QnVpbGRlciB7XG4gICAgdmFsaWRhdGVQYXJhbWV0ZXIoeyBwYWdlIH0pO1xuXG4gICAgdGhpcy5fcGFnZSA9IHBhZ2U7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIHF1YW50b3MgZWxlbWVudG9zIHNlcsOjbyByZXRvcm5hZG9zIHBvciBww6FnaW5hLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gcGFnZVNpemUgTsO6bWVybyBkZSByZWdpc3Ryb3MgcG9yIHDDoWdpbmEuXG4gICAqIEByZXR1cm5zIHtQb1F1ZXJ5QnVpbGRlcn0gT2JqZXRvIHF1ZSBwb3NzaWJpbGl0YSBlbmNhZGVhciB1bSBub3ZvIG3DqXRvZG8gZG8gYFBvUXVlcnlCdWlsZGVyYC5cbiAgICovXG4gIHBhZ2VTaXplKHBhZ2VTaXplOiBudW1iZXIpOiBQb1F1ZXJ5QnVpbGRlciB7XG4gICAgdmFsaWRhdGVQYXJhbWV0ZXIoeyBwYWdlU2l6ZSB9KTtcblxuICAgIHRoaXMuX3BhZ2VTaXplID0gcGFnZVNpemU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXRpbGl6YWRvIHBhcmEgZGVmaW5pciBxdWFpcyBjYW1wb3MgZG8gKnNjaGVtYSogc2Vyw6NvIHJldG9ybmFkb3MgbmEgY29uc3VsdGEuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZHMgQ2FtcG9zIHF1ZSBzZXLDo28gcmV0b3JuYWRvcyBub3MgcmVnaXN0cm9zLiBFc3RlIGNhbXBvcyBkZXZlbSBlc3RhciBkZW50cm8gZGVcbiAgICogdW1hICpzdHJpbmcqIHNlcGFyYWRvcyBwb3IgZXNwYcOnbyBwb2RlbmRvIHVzYXIgbyBjYXJhY3RlcmUgYC1gIHBhcmEgZXhjbHVpciBjYW1wb3MuXG4gICAqIFBvciBleGVtcGxvLCBhIGRlZmluacOnw6NvIGFiYWl4bzpcbiAgICpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNlbGVjdCgnbmFtZSBhZ2UgYWRkcmVzcycpO1xuICAgKiBgYGBcbiAgICogSXLDoSByZXRvcm5hciBhcGVuYXMgb3MgY2FtcG9zIGBuYW1lYCwgYGFnZWAgZSBgYWRkcmVzc2AuIFBhcmEgbsOjbyByZXRvcm5hciB1bSBjYW1wbyBvdSBtYWlzIGJhc3RhIGZhemVyOlxuICAgKlxuICAgKiBgYGBcbiAgICogUG9RdWVyeUJ1aWxkZXIuc2VsZWN0KCctbmFtZSAtYWdlJyk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcmV0dXJucyB7UG9RdWVyeUJ1aWxkZXJ9IE9iamV0byBxdWUgcG9zc2liaWxpdGEgZW5jYWRlYXIgdW0gbm92byBtw6l0b2RvIGRvIGBQb1F1ZXJ5QnVpbGRlcmAuXG4gICAqL1xuICBzZWxlY3QoZmllbGRzOiBzdHJpbmcpOiBQb1F1ZXJ5QnVpbGRlciB7XG4gICAgdmFsaWRhdGVQYXJhbWV0ZXIoeyBmaWVsZHMgfSk7XG5cbiAgICB0aGlzLmZpZWxkcyA9IGZpZWxkcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBPcmRlbmEgb3MgcmVnaXN0cm9zIHBvciB1bSBjYW1wby5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpZWxkIENhbXBvIGEgc2VyIG9yZGVuYWRvLiBQYXJhIG9yZGVuYXIgZGUgZm9ybWEgZGVjcmVzY2VudGUgYmFzdGEgY29sb2NhciBvIGNhcmFjdGVyZSBgLWBcbiAgICogbmEgZnJlbnRlIGRvIGNhbXBvLiBQb3IgZXhlbXBsbzpcbiAgICogYGBgXG4gICAqIFBvUXVlcnlCdWlsZGVyLnNvcnQoJy1uYW1lJyk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcmV0dXJucyB7UG9RdWVyeUJ1aWxkZXJ9IE9iamV0byBxdWUgcG9zc2liaWxpdGEgZW5jYWRlYXIgdW0gbm92byBtw6l0b2RvIGRvIGBQb1F1ZXJ5QnVpbGRlcmAuXG4gICAqL1xuICBzb3J0KGZpZWxkOiBzdHJpbmcpOiBQb1F1ZXJ5QnVpbGRlciB7XG4gICAgdmFsaWRhdGVQYXJhbWV0ZXIoeyBmaWVsZCB9KTtcblxuICAgIHRoaXMuX3NvcnQgPSBmaWVsZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBFc3NhIGZ1bsOnw6NvIHNlcnZlIGNvbW8gYWxpYXMgcGFyYSBvIGBQb1F1ZXJ5QnVpbGRlci5maWx0ZXIoKWAuIMOJIHV0aWxpemFkYSBzb21lbnRlIHBhcmEgZGFyIG1haW9yIGxlZ2liaWxpZGFkZSBhbyBjw7NkaWdvLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gZmlsdGVyIE9iamV0byBxdWUgY29udMOpbSBvcyBjYW1wb3MgZSB2YWxvcmVzIGEgc2VyZW0gZmlsdHJhZG9zIG5vICpzY2hlbWEqLlxuICAgKiBAcmV0dXJucyB7UG9RdWVyeUJ1aWxkZXJ9IE9iamV0byBxdWUgcG9zc2liaWxpdGEgZW5jYWRlYXIgdW0gbm92byBtw6l0b2RvIGRvIGBQb1F1ZXJ5QnVpbGRlcmAuXG4gICAqL1xuICB3aGVyZShmaWx0ZXI6IG9iamVjdCk6IFBvUXVlcnlCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoZmlsdGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGaWVsZHMoc2NoZW1hRmllbGRzOiBBcnJheTxhbnk+LCBkYXRhOiBBcnJheTxvYmplY3Q+KTogQXJyYXk8b2JqZWN0PiB7XG4gICAgY29uc3QgcmVjZWl2ZWRGaWVsZHMgPSB0aGlzLmZpZWxkcy5zcGxpdCgnICcpO1xuICAgIGxldCByZXN0cmljdGVkRmllbGRzID0gW107XG4gICAgbGV0IHNlbGVjdGVkRmllbGRzID0gW107XG5cbiAgICBbc2VsZWN0ZWRGaWVsZHMsIHJlc3RyaWN0ZWRGaWVsZHNdID0gdGhpcy5ncm91cEZpZWxkcyhyZWNlaXZlZEZpZWxkcyk7XG5cbiAgICBpZiAoIXNlbGVjdGVkRmllbGRzLmxlbmd0aCAmJiByZXN0cmljdGVkRmllbGRzLmxlbmd0aCkge1xuICAgICAgc2VsZWN0ZWRGaWVsZHMgPSBbLi4uc2NoZW1hRmllbGRzXTtcbiAgICB9XG5cbiAgICBpZiAocmVzdHJpY3RlZEZpZWxkcy5sZW5ndGgpIHtcbiAgICAgIHNlbGVjdGVkRmllbGRzID0gdGhpcy5yZW1vdmVSZXN0cmljdGVkRmllbGRzKHJlc3RyaWN0ZWRGaWVsZHMsIHNlbGVjdGVkRmllbGRzKTtcbiAgICB9XG5cbiAgICBzZWxlY3RlZEZpZWxkcyA9IHRoaXMucmVtb3ZlRHVwbGljYXRlKHNlbGVjdGVkRmllbGRzKTtcblxuICAgIHJldHVybiB0aGlzLnJlbW92ZUZpZWxkc0RhdGEoZGF0YSwgc2VsZWN0ZWRGaWVsZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUZpbHRlcnMoZGF0YTogQXJyYXk8b2JqZWN0Pik6IEFycmF5PG9iamVjdD4ge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuZmlsdGVycykuZm9yRWFjaChmaWx0ZXJLZXkgPT4ge1xuICAgICAgZGF0YSA9IGRhdGEuZmlsdGVyKGl0ZW0gPT4gaXRlbVtmaWx0ZXJLZXldID09PSB0aGlzLmZpbHRlcnNbZmlsdGVyS2V5XSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgZ3JvdXBGaWVsZHMocmVjZWl2ZWRGaWVsZHM6IEFycmF5PHN0cmluZz4pOiBBcnJheTxBcnJheTxzdHJpbmc+PiB7XG4gICAgY29uc3QgcmVzdHJpY3RlZEZpZWxkcyA9IFtdO1xuICAgIGNvbnN0IHNlbGVjdGVkRmllbGRzID0gW107XG5cbiAgICByZWNlaXZlZEZpZWxkcy5mb3JFYWNoKGZpZWxkcyA9PiB7XG4gICAgICBpZiAoZmllbGRzLnN0YXJ0c1dpdGgoJy0nKSkge1xuICAgICAgICByZXN0cmljdGVkRmllbGRzLnB1c2goZmllbGRzLnN1YnN0cmluZygxKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxlY3RlZEZpZWxkcy5wdXNoKGZpZWxkcyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIFtzZWxlY3RlZEZpZWxkcywgcmVzdHJpY3RlZEZpZWxkc107XG4gIH1cblxuICBwcml2YXRlIHBhZ2luYXRlKGRhdGE6IEFycmF5PGFueT4pOiB7IGhhc05leHQ6IGJvb2xlYW47IGl0ZW1zOiBBcnJheTxhbnk+IH0ge1xuICAgIGNvbnN0IGRhdGFMZW5ndGggPSBkYXRhLmxlbmd0aDtcbiAgICBjb25zdCBwYWdlU2l6ZSA9IHRoaXMuX3BhZ2VTaXplIHx8IGRhdGFMZW5ndGg7XG5cbiAgICBjb25zdCBwYWdlcyA9IE1hdGguY2VpbChkYXRhTGVuZ3RoIC8gcGFnZVNpemUpO1xuICAgIGNvbnN0IGJlZ2luID0gdGhpcy5fcGFnZSAqIHBhZ2VTaXplIC0gcGFnZVNpemU7XG4gICAgY29uc3QgZW5kID0gYmVnaW4gKyBwYWdlU2l6ZTtcblxuICAgIHJldHVybiB7IGhhc05leHQ6IHRoaXMuX3BhZ2UgPCBwYWdlcywgaXRlbXM6IGRhdGEuc2xpY2UoYmVnaW4sIGVuZCkgfTtcbiAgfVxuXG4gIHByaXZhdGUgb3JkZXIoZGF0YTogQXJyYXk8YW55Piwgc29ydGluZ0ZpZWxkOiBzdHJpbmcpOiBBcnJheTxhbnk+IHtcbiAgICBjb25zdCBkZXNjZW5kaW5nT3JkZXIgPSBzb3J0aW5nRmllbGQuc3RhcnRzV2l0aCgnLScpO1xuICAgIHNvcnRpbmdGaWVsZCA9IGRlc2NlbmRpbmdPcmRlciA/IHNvcnRpbmdGaWVsZC5zdWJzdHIoMSkgOiBzb3J0aW5nRmllbGQ7XG5cbiAgICByZXR1cm4gZGF0YS5zb3J0KChvcHRpb25BLCBvcHRpb25CKSA9PiB7XG4gICAgICBpZiAob3B0aW9uQVtzb3J0aW5nRmllbGRdID4gb3B0aW9uQltzb3J0aW5nRmllbGRdKSB7XG4gICAgICAgIHJldHVybiAhZGVzY2VuZGluZ09yZGVyID8gMSA6IC0xO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9uQVtzb3J0aW5nRmllbGRdIDwgb3B0aW9uQltzb3J0aW5nRmllbGRdKSB7XG4gICAgICAgIHJldHVybiAhZGVzY2VuZGluZ09yZGVyID8gLTEgOiAxO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlKGZpZWxkcyk6IEFycmF5PGFueT4ge1xuICAgIHJldHVybiBmaWVsZHMuZmlsdGVyKChpdGVtLCBwb3NpdGlvbikgPT4gZmllbGRzLmluZGV4T2YoaXRlbSkgPT09IHBvc2l0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRmllbGRzRGF0YShkYXRhOiBBcnJheTxvYmplY3Q+LCBjaG9zZW5GaWVsZHM6IEFycmF5PHN0cmluZz4pOiBBcnJheTxvYmplY3Q+IHtcbiAgICBkYXRhLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBPYmplY3Qua2V5cyhpdGVtKS5mb3JFYWNoKGtleUl0ZW0gPT4ge1xuICAgICAgICBpZiAoIWNob3NlbkZpZWxkcy5pbmNsdWRlcyhrZXlJdGVtKSkge1xuICAgICAgICAgIGRlbGV0ZSBpdGVtW2tleUl0ZW1dO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUmVzdHJpY3RlZEZpZWxkcyhyZXN0cmljdGVkRmllbGRzOiBBcnJheTxhbnk+LCBmaWVsZHM6IEFycmF5PGFueT4pIHtcbiAgICByZXR1cm4gZmllbGRzLmZpbHRlcihmaWVsZCA9PiAhcmVzdHJpY3RlZEZpZWxkcy5pbmNsdWRlcyhmaWVsZCkpO1xuICB9XG59XG4iXX0=
|
|
@@ -20,13 +20,13 @@ export class PoEventSourcingService {
|
|
|
20
20
|
poHttpClient;
|
|
21
21
|
static event_sourcing_name = 'EventSourcing';
|
|
22
22
|
static VALID_HTTP_STATUS_CODES = [
|
|
23
|
-
StatusCodes.OK,
|
|
24
|
-
StatusCodes.CREATED,
|
|
25
|
-
StatusCodes.ACCEPTED,
|
|
26
|
-
StatusCodes.NON_AUTHORITATIVE_INFORMATION,
|
|
27
|
-
StatusCodes.NO_CONTENT,
|
|
28
|
-
StatusCodes.RESET_CONTENT,
|
|
29
|
-
StatusCodes.PARTIAL_CONTENT,
|
|
23
|
+
StatusCodes.OK, // 200
|
|
24
|
+
StatusCodes.CREATED, // 201
|
|
25
|
+
StatusCodes.ACCEPTED, // 202
|
|
26
|
+
StatusCodes.NON_AUTHORITATIVE_INFORMATION, // 203
|
|
27
|
+
StatusCodes.NO_CONTENT, // 204
|
|
28
|
+
StatusCodes.RESET_CONTENT, // 205
|
|
29
|
+
StatusCodes.PARTIAL_CONTENT, // 206
|
|
30
30
|
StatusCodes.MULTI_STATUS // 207
|
|
31
31
|
];
|
|
32
32
|
config;
|
|
@@ -376,4 +376,4 @@ export class PoEventSourcingService {
|
|
|
376
376
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoEventSourcingService, [{
|
|
377
377
|
type: Injectable
|
|
378
378
|
}], () => [{ type: i1.PoSchemaDefinitionService }, { type: i2.PoSchemaService }, { type: i3.PoStorageService }, { type: i4.PoHttpClientService }], null); })();
|
|
379
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZXZlbnQtc291cmNpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5bmMvc3JjL2xpYi9zZXJ2aWNlcy9wby1ldmVudC1zb3VyY2luZy9wby1ldmVudC1zb3VyY2luZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXJELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRW5HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBS3BGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUdsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7OztBQU1sRixNQUFNLE9BQU8sc0JBQXNCO0lBd0J2QjtJQUNBO0lBQ0E7SUFDQTtJQTFCVixNQUFNLENBQVUsbUJBQW1CLEdBQVcsZUFBZSxDQUFDO0lBRXRELE1BQU0sQ0FBVSx1QkFBdUIsR0FBRztRQUNoRCxXQUFXLENBQUMsRUFBRTtRQUNkLFdBQVcsQ0FBQyxPQUFPO1FBQ25CLFdBQVcsQ0FBQyxRQUFRO1FBQ3BCLFdBQVcsQ0FBQyw2QkFBNkI7UUFDekMsV0FBVyxDQUFDLFVB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LENBQUM7UUFFdkUsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVoRCxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEUsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxPQUFPO1FBQ2xDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQW9CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7Z0ZBL2hCVSxzQkFBc0I7Z0VBQXRCLHNCQUFzQixXQUF0QixzQkFBc0I7O2lGQUF0QixzQkFBc0I7Y0FEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXNwb25zZSwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN0YXR1c0NvZGVzIH0gZnJvbSAnaHR0cC1zdGF0dXMtY29kZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGV4cGFuZCwgbWFwLCByZWR1Y2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFBvU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAcG8tdWkvbmctc3RvcmFnZSc7XG5cbmltcG9ydCB7IHRvQmFzZTY0LCB0b0ZpbGUgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XG5cbmltcG9ydCB7IFBvRXZlbnRTb3VyY2luZ0Vycm9yUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvcG8tZXZlbnQtc291cmNpbmctZXJyb3ItcmVzcG9uc2UubW9kZWwnO1xuaW1wb3J0IHsgUG9FdmVudFNvdXJjaW5nSXRlbSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1ldmVudC1zb3VyY2luZy1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0V2ZW50U291cmNpbmdPcGVyYXRpb24gfSBmcm9tICcuL2VudW1zL3BvLWV2ZW50LXNvdXJjaW5nLW9wZXJhdGlvbi5lbnVtJztcbmltcG9ydCB7IFBvRXZlbnRTb3VyY2luZ1N1bW1hcnlJdGVtIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWV2ZW50LXNvdXJjaW5nLXN1bW1hcnktaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9IdHRwSGVhZGVyT3B0aW9uIH0gZnJvbSAnLi8uLi9wby1odHRwLWNsaWVudC9pbnRlcmZhY2VzL3BvLWh0dHAtaGVhZGVyLW9wdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9IdHRwQ2xpZW50U2VydmljZSB9IGZyb20gJy4vLi4vcG8taHR0cC1jbGllbnQvcG8taHR0cC1jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBQb0h0dHBSZXF1ZXN0RGF0YSB9IGZyb20gJy4uL3BvLWh0dHAtY2xpZW50L2ludGVyZmFjZXMvcG8taHR0cC1yZXF1ZXN0LWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvSHR0cFJlcXVlc3RUeXBlIH0gZnJvbSAnLi4vcG8taHR0cC1jbGllbnQvcG8taHR0cC1yZXF1ZXN0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBQb1JlcXVlc3RUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BvLXJlcXVlc3QtdHlwZS5lbnVtJztcbmltcG9ydCB7IFBvU2NoZW1hRGVmaW5pdGlvblNlcnZpY2UgfSBmcm9tICcuLy4uL3BvLXNjaGVtYS9wby1zY2hlbWEtZGVmaW5pdGlvbi9wby1zY2hlbWEtZGVmaW5pdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFBvU2NoZW1hU2VydmljZSB9IGZyb20gJy4vLi4vcG8tc2NoZW1hL3BvLXNjaGVtYS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvU2NoZW1hVXRpbCB9IGZyb20gJy4vLi4vcG8tc2NoZW1hL3BvLXNjaGVtYS11dGlsL3BvLXNjaGVtYS11dGlsLm1vZGVsJztcbmltcG9ydCB7IFBvU3luY0NvbmZpZyB9IGZyb20gJy4uL3BvLXN5bmMvaW50ZXJmYWNlcy9wby1zeW5jLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9TeW5jUmVzcG9uc2UgfSBmcm9tICcuLi9wby1zeW5jL2ludGVyZmFjZXMvcG8tc3luYy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9TeW5jU2NoZW1hIH0gZnJvbSAnLi8uLi9wby1zeW5jL2ludGVyZmFjZXMvcG8tc3luYy1zY2hlbWEuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBvRXZlbnRTb3VyY2luZ1NlcnZpY2Uge1xuICBzdGF0aWMgcmVhZG9ubHkgZXZlbnRfc291cmNpbmdfbmFtZTogc3RyaW5nID0gJ0V2ZW50U291cmNpbmcnO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFZBTElEX0hUVFBfU1RBVFVTX0NPREVTID0gW1xuICAgIFN0YXR1c0NvZGVzLk9LLCAvLyAyMDBcbiAgICBTdGF0dXNDb2Rlcy5DUkVBVEVELCAvLyAyMDFcbiAgICBTdGF0dXNDb2Rlcy5BQ0NFUFRFRCwgLy8gMjAyXG4gICAgU3RhdHVzQ29kZXMuTk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04sIC8vIDIwM1xuICAgIFN0YXR1c0NvZGVzLk5PX0NPTlRFTlQsIC8vIDIwNFxuICAgIFN0YXR1c0NvZGVzLlJFU0VUX0NPTlRFTlQsIC8vIDIwNVxuICAgIFN0YXR1c0NvZGVzLlBBUlRJQUxfQ09OVEVOVCwgLy8gMjA2XG4gICAgU3RhdHVzQ29kZXMuTVVMVElfU1RBVFVTIC8vIDIwN1xuICBdO1xuXG4gIGNvbmZpZzogUG9TeW5jQ29uZmlnO1xuICBzdG9wcGVkUXVldWVFdmVudFNvdXJjaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBlbWl0dGVyOiBhbnk7XG4gIHByaXZhdGUgZXZlbnRTdWI6IE9ic2VydmFibGU8bnVsbD47XG4gIHByaXZhdGUgcmVzcG9uc2VTdWJqZWN0ID0gbmV3IFN1YmplY3Q8UG9TeW5jUmVzcG9uc2U+KCk7XG5cbiAgcHJpdmF0ZSBzY2hlbWFzU3luY0NvbmZpZyA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcG9TY2hlbWFEZWZpbml0aW9uOiBQb1NjaGVtYURlZmluaXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9TY2hlbWFTZXJ2aWNlOiBQb1NjaGVtYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb1N0b3JhZ2U6IFBvU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb0h0dHBDbGllbnQ6IFBvSHR0cENsaWVudFNlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgc3RhdGljIGdldFVybChldmVudFNvdXJjaW5nSXRlbSwgc2NoZW1hLCByZXF1ZXN0VHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2NoZW1hVXJsID0gUG9TY2hlbWFVdGlsLmdldFVybChzY2hlbWEsIHJlcXVlc3RUeXBlKTtcbiAgICBjb25zdCBzY2hlbWFJZCA9IGV2ZW50U291cmNpbmdJdGVtLnJlY29yZFtzY2hlbWEuaWRGaWVsZF07XG5cbiAgICBpZiAocmVxdWVzdFR5cGUgPT09IFBvUmVxdWVzdFR5cGUuR0VUKSB7XG4gICAgICByZXR1cm4gc2NoZW1hVXJsO1xuICAgIH1cblxuICAgIGlmIChbUG9SZXF1ZXN0VHlwZS5ERUxFVEUsIFBvUmVxdWVzdFR5cGUuUEFUQ0hdLmluY2x1ZGVzKHJlcXVlc3RUeXBlKSkge1xuICAgICAgcmV0dXJuIHNjaGVtYVVybCA/IGAke3NjaGVtYVVybH0vJHtzY2hlbWFJZH1gIDogYCR7UG9TY2hlbWFVdGlsLmdldFVybChzY2hlbWEsIFBvUmVxdWVzdFR5cGUuR0VUKX0vJHtzY2hlbWFJZH1gO1xuICAgIH1cblxuICAgIGlmIChyZXF1ZXN0VHlwZSA9PT0gUG9SZXF1ZXN0VHlwZS5QT1NUKSB7XG4gICAgICByZXR1cm4gc2NoZW1hVXJsID8gc2NoZW1hVXJsIDogUG9TY2hlbWFVdGlsLmdldFVybChzY2hlbWEsIFBvUmVxdWVzdFR5cGUuR0VUKTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGUoc2NoZW1hTmFtZTogc3RyaW5nLCBuZXdJdGVtOiBhbnksIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZXZlbnRTb3VyY2luZ0l0ZW0gPSB0aGlzLmNyZWF0ZUV2ZW50U291cmNpbmdJdGVtKFxuICAgICAgUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkluc2VydCxcbiAgICAgIG5ld0l0ZW0sXG4gICAgICBzY2hlbWFOYW1lLFxuICAgICAgY3VzdG9tUmVxdWVzdElkXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5pbnNlcnRFdmVudFNvdXJjaW5nUXVldWUoZXZlbnRTb3VyY2luZ0l0ZW0pO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQmF0Y2hFdmVudHMoc2NoZW1hTmFtZTogc3RyaW5nLCBldmVudExpc3Q6IEFycmF5PFBvRXZlbnRTb3VyY2luZ1N1bW1hcnlJdGVtPikge1xuICAgIGNvbnN0IGV2ZW50U291cmNpbmdMaXN0ID0gdGhpcy5jcmVhdGVFdmVudFNvdXJjaW5nTGlzdChzY2hlbWFOYW1lLCBldmVudExpc3QpO1xuXG4gICAgYXdhaXQgdGhpcy5wb1N0b3JhZ2UuYXBwZW5kQXJyYXlUb0FycmF5KFBvRXZlbnRTb3VyY2luZ1NlcnZpY2UuZXZlbnRfc291cmNpbmdfbmFtZSwgZXZlbnRTb3VyY2luZ0xpc3QpO1xuXG4gICAgdGhpcy5ub3RpZnlFdmVudENyZWF0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHLDs2kgYSBjaGF2ZSBkbyAqc3RvcmFnZSogcXVlIGNvbnTDqW0gYSBmaWxhIGRlIGRhZG9zIHF1ZSBlc3TDo28gZXNwZXJhbmRvIHBhcmEgc2VyZW0gZW52aWFkb3MgYW9cbiAgICogc2Vydmlkb3IgKihFdmVudFNvdXJjaW5nKSouXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBQcm9tZXNzYSBxdWUgw6kgcmVzb2x2aWRhIHF1YW5kbyBhIGNoYXZlIHJlZmVyZW50ZSBhIGZpbGEgZGUgKkV2ZW50U291cmNpbmcqIGZvciBkZXN0cnXDrWRhLlxuICAgKi9cbiAgZGVzdHJveUV2ZW50U291cmNpbmdRdWV1ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5wb1N0b3JhZ2UucmVtb3ZlKFBvRXZlbnRTb3VyY2luZ1NlcnZpY2UuZXZlbnRfc291cmNpbmdfbmFtZSk7XG4gIH1cblxuICBhc3luYyBodHRwQ29tbWFuZChodHRwT3BlcmF0aW9uRGF0YTogUG9IdHRwUmVxdWVzdERhdGEsIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgaHR0cE9wZXJhdGlvbkRhdGEgPSBhd2FpdCB0aGlzLnNlcmlhbGl6ZUJvZHkoaHR0cE9wZXJhdGlvbkRhdGEpO1xuXG4gICAgY29uc3QgZXZlbnRTb3VyY2luZ0l0ZW0gPSB0aGlzLmNyZWF0ZUV2ZW50U291cmNpbmdJdGVtKFxuICAgICAgUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkh0dHAsXG4gICAgICBodHRwT3BlcmF0aW9uRGF0YSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGN1c3RvbVJlcXVlc3RJZFxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLmluc2VydEV2ZW50U291cmNpbmdRdWV1ZShldmVudFNvdXJjaW5nSXRlbSk7XG4gICAgcmV0dXJuIGV2ZW50U291cmNpbmdJdGVtLmlkO1xuICB9XG5cbiAgcmVzcG9uc2VzU3ViamVjdCgpOiBPYnNlcnZhYmxlPFBvU3luY1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMucmVzcG9uc2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgb25TYXZlRGF0YSgpOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICBpZiAoIXRoaXMuZXZlbnRTdWIpIHtcbiAgICAgIHRoaXMuZXZlbnRTdWIgPSBPYnNlcnZhYmxlLmNyZWF0ZShzdWJzY3JpYmVyID0+ICh0aGlzLmVtaXR0ZXIgPSBzdWJzY3JpYmVyKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmV2ZW50U3ViO1xuICB9XG5cbiAgcmVtb3ZlKHNjaGVtYU5hbWU6IHN0cmluZywgaXRlbVRvRGVsZXRlOiBhbnksIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZXZlbnRTb3VyY2luZ0l0ZW0gPSB0aGlzLmNyZWF0ZUV2ZW50U291cmNpbmdJdGVtKFxuICAgICAgUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkRlbGV0ZSxcbiAgICAgIGl0ZW1Ub0RlbGV0ZSxcbiAgICAgIHNjaGVtYU5hbWUsXG4gICAgICBjdXN0b21SZXF1ZXN0SWRcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmluc2VydEV2ZW50U291cmNpbmdRdWV1ZShldmVudFNvdXJjaW5nSXRlbSk7XG4gIH1cblxuICByZW1vdmVFdmVudFNvdXJjaW5nSXRlbShpZEV2ZW50U291cmNpbmdJdGVtKSB7XG4gICAgcmV0dXJuIHRoaXMucG9TdG9yYWdlLnJlbW92ZUl0ZW1Gcm9tQXJyYXkoUG9FdmVudFNvdXJjaW5nU2VydmljZS5ldmVudF9zb3VyY2luZ19uYW1lLCAnaWQnLCBpZEV2ZW50U291cmNpbmdJdGVtKTtcbiAgfVxuXG4gIHN5bmNHZXQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzeW5jR2V0RnVuY3Rpb24gPSBhc3luYyAoKSA9PlxuICAgICAgdGhpcy5wb1NjaGVtYURlZmluaXRpb24uZ2V0QWxsKCkudGhlbihzY2hlbWFzID0+IHtcbiAgICAgICAgY29uc3Qgc2NoZW1hUHJvbWlzZXMgPSB0aGlzLnVwZGF0ZVN0b3JhZ2VTY2hlbWFzKHNjaGVtYXMpO1xuXG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChzY2hlbWFQcm9taXNlcyk7XG4gICAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLnBvU2NoZW1hU2VydmljZS5saW1pdGVkQ2FsbFdyYXAoc3luY0dldEZ1bmN0aW9uKTtcbiAgfVxuXG4gIGFzeW5jIHN5bmNTZW5kKCk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgc3luY1NlbmRGdW5jdGlvbiA9IGFzeW5jICgpOiBQcm9taXNlPGFueT4gPT4ge1xuICAgICAgY29uc3QgaXRlbU9mUXVldWUgPSBhd2FpdCB0aGlzLnBvU3RvcmFnZS5nZXRGaXJzdEl0ZW0oUG9FdmVudFNvdXJjaW5nU2VydmljZS5ldmVudF9zb3VyY2luZ19uYW1lKTtcblxuICAgICAgaWYgKGl0ZW1PZlF1ZXVlKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VsZWN0T3BlcmF0aW9uKGl0ZW1PZlF1ZXVlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc3RvcHBlZFF1ZXVlRXZlbnRTb3VyY2luZyB8fCAhaXRlbU9mUXVldWUpIHtcbiAgICAgICAgdGhpcy5zdG9wcGVkUXVldWVFdmVudFNvdXJjaW5nID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHN5bmNTZW5kRnVuY3Rpb24oKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucG9TY2hlbWFTZXJ2aWNlLmxpbWl0ZWRDYWxsV3JhcChzeW5jU2VuZEZ1bmN0aW9uKTtcbiAgfVxuXG4gIHVwZGF0ZShzY2hlbWFOYW1lOiBzdHJpbmcsIGl0ZW1VcGRhdGVkOiBhbnksIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZXZlbnRTb3VyY2luZ0l0ZW0gPSB0aGlzLmNyZWF0ZUV2ZW50U291cmNpbmdJdGVtKFxuICAgICAgUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLlVwZGF0ZSxcbiAgICAgIGl0ZW1VcGRhdGVkLFxuICAgICAgc2NoZW1hTmFtZSxcbiAgICAgIGN1c3RvbVJlcXVlc3RJZFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaW5zZXJ0RXZlbnRTb3VyY2luZ1F1ZXVlKGV2ZW50U291cmNpbmdJdGVtKTtcbiAgfVxuXG4gIC8qIEF2YWxpYSBzZSBvIGJvZHkgw6kgZG8gdGlwbyBGaWxlIGUgc2UgZm9yIGNvbnZlcnRlIHBhcmEgYmFzZTY0ICovXG4gIHByaXZhdGUgYXN5bmMgc2VyaWFsaXplQm9keShyZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEpOiBQcm9taXNlPFBvSHR0cFJlcXVlc3REYXRhPiB7XG4gICAgbGV0IHsgYm9keSwgbWltZVR5cGUsIGJvZHlUeXBlLCBmaWxlTmFtZSB9ID0gcmVxdWVzdERhdGE7XG5cbiAgICBpZiAoYm9keSBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgIGJvZHlUeXBlID0gJ0ZpbGUnO1xuICAgICAgbWltZVR5cGUgPSBib2R5LnR5cGU7XG4gICAgICBmaWxlTmFtZSA9IGJvZHkubmFtZTtcbiAgICAgIGJvZHkgPSBhd2FpdCB0b0Jhc2U2NChib2R5KTtcbiAgICB9XG5cbiAgICByZXR1cm4geyAuLi5yZXF1ZXN0RGF0YSwgYm9keSwgbWltZVR5cGUsIGJvZHlUeXBlLCBmaWxlTmFtZSB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFVybFBhcmFtcyhzY2hlbWE6IFBvU3luY1NjaGVtYSwgYmFzZVVybDogc3RyaW5nLCBwYWdlTnVtYmVyOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcmFtcyA9IFtdO1xuICAgIHBhcmFtcy5wdXNoKGAke3RoaXMuY29uZmlnLmRhdGFUcmFuc2Zvcm0uZ2V0UGFnZVNpemVQYXJhbU5hbWUoKX09JHtzY2hlbWEucGFnZVNpemV9YCk7XG4gICAgcGFyYW1zLnB1c2goYCR7dGhpcy5jb25maWcuZGF0YVRyYW5zZm9ybS5nZXRQYWdlUGFyYW1OYW1lKCl9PSR7cGFnZU51bWJlcn1gKTtcbiAgICByZXR1cm4gYCR7YmFzZVVybH0/JHtwYXJhbXMuam9pbignJicpfWA7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrUmVjb3JkSWRFeGlzdHMocmVjb3JkSWQsIG9wZXJhdGlvbikge1xuICAgIGlmICghcmVjb3JkSWQpIHtcbiAgICAgIGNvbnN0IGVycm9yID0ge1xuICAgICAgICBtZXNzYWdlOiAnSWRlbnRpZmllciBub3QgZGVmaW5lZCcsXG4gICAgICAgIG9wZXJhdGlvbjogb3BlcmF0aW9uXG4gICAgICB9O1xuXG4gICAgICB0aHJvdyBuZXcgUG9FdmVudFNvdXJjaW5nRXJyb3JSZXNwb25zZShlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb25jYXRQYWdlSXRlbXMocGFnZUFjdW11bGF0b3IsIHJlcXVlc3RCb2R5KTogeyBlbnRpdHk6IHN0cmluZzsgZGF0YTogQXJyYXk8YW55PiB9IHtcbiAgICBpZiAocmVxdWVzdEJvZHlbdGhpcy5jb25maWcuZGF0YVRyYW5zZm9ybS5nZXRJdGVtc0ZpZWxkTmFtZSgpXSkge1xuICAgICAgcGFnZUFjdW11bGF0b3IuZGF0YSA9IFsuLi5wYWdlQWN1bXVsYXRvci5kYXRhLCAuLi5yZXF1ZXN0Qm9keVt0aGlzLmNvbmZpZy5kYXRhVHJhbnNmb3JtLmdldEl0ZW1zRmllbGROYW1lKCldXTtcbiAgICB9XG4gICAgcmV0dXJuIHBhZ2VBY3VtdWxhdG9yO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVFdmVudFNvdXJjaW5nSXRlbShcbiAgICBvcGVyYXRpb246IFBvRXZlbnRTb3VyY2luZ09wZXJhdGlvbixcbiAgICBuZXdJdGVtOiBhbnkgfCBQb0h0dHBSZXF1ZXN0RGF0YSxcbiAgICBzY2hlbWFOYW1lPzogc3RyaW5nLFxuICAgIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZyxcbiAgICBpZD86IG51bWJlclxuICApOiBQb0V2ZW50U291cmNpbmdJdGVtIHtcbiAgICBpZiAoIXNjaGVtYU5hbWUgJiYgb3BlcmF0aW9uICE9PSBQb0V2ZW50U291cmNpbmdPcGVyYXRpb24uSHR0cCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQb1N5bmNTY2hlbWEgaXMgbm90IGRlZmluZWQuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBpZCA/IGlkIDogbmV3IERhdGUoKS5nZXRUaW1lKCksXG4gICAgICBkYXRlVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKCksXG4gICAgICBzY2hlbWE6IHNjaGVtYU5hbWUsXG4gICAgICBvcGVyYXRpb246IG9wZXJhdGlvbixcbiAgICAgIHJlY29yZDogbmV3SXRlbSxcbiAgICAgIGN1c3RvbVJlcXVlc3RJZDogY3VzdG9tUmVxdWVzdElkXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRXZlbnRTb3VyY2luZ0xpc3QoXG4gICAgc2NoZW1hTmFtZTogc3RyaW5nLFxuICAgIGV2ZW50TGlzdDogQXJyYXk8UG9FdmVudFNvdXJjaW5nU3VtbWFyeUl0ZW0+XG4gICk6IEFycmF5PFBvRXZlbnRTb3VyY2luZ0l0ZW0+IHtcbiAgICByZXR1cm4gZXZlbnRMaXN0Lm1hcCgoZXZlbnRJdGVtLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgaWQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIGluZGV4O1xuXG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVFdmVudFNvdXJjaW5nSXRlbShcbiAgICAgICAgZXZlbnRJdGVtLm9wZXJhdGlvbixcbiAgICAgICAgZXZlbnRJdGVtLnJlY29yZCxcbiAgICAgICAgc2NoZW1hTmFtZSxcbiAgICAgICAgZXZlbnRJdGVtLmN1c3RvbVJlcXVlc3RJZCxcbiAgICAgICAgaWRcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVNjaGVtYVN5bmNDb25maWcoc2NoZW1hTmFtZSkge1xuICAgIHRoaXMuc2NoZW1hc1N5bmNDb25maWdbc2NoZW1hTmFtZV0gPSB7XG4gICAgICBwYWdlOiB1bmRlZmluZWQsXG4gICAgICBjdXJyZW50VXJsRGlmZjogdW5kZWZpbmVkLFxuICAgICAgcmVzcG9uc2VEYXRlOiB1bmRlZmluZWRcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkZWxldGVPcGVyYXRpb24oZXZlbnRTb3VyY2luZ0l0ZW06IFBvRXZlbnRTb3VyY2luZ0l0ZW0pOiBQcm9taXNlPGFueT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzY2hlbWEgPSBhd2FpdCB0aGlzLnBvU2NoZW1hRGVmaW5pdGlvbi5nZXQoZXZlbnRTb3VyY2luZ0l0ZW0uc2NoZW1hKTtcblxuICAgICAgY29uc3QgcmVjb3JkSWQgPSBldmVudFNvdXJjaW5nSXRlbS5yZWNvcmRbc2NoZW1hLmlkRmllbGRdO1xuICAgICAgdGhpcy5jaGVja1JlY29yZElkRXhpc3RzKHJlY29yZElkLCBQb0V2ZW50U291cmNpbmdPcGVyYXRpb24uRGVsZXRlKTtcblxuICAgICAgY29uc3QgdXJsID0gUG9FdmVudFNvdXJjaW5nU2VydmljZS5nZXRVcmwoZXZlbnRTb3VyY2luZ0l0ZW0sIHNjaGVtYSwgUG9SZXF1ZXN0VHlwZS5ERUxFVEUpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlbmRTZXJ2ZXJJdGVtKHVybCwgUG9IdHRwUmVxdWVzdFR5cGUuREVMRVRFKTtcblxuICAgICAgYXdhaXQgdGhpcy5yZW1vdmVFdmVudFNvdXJjaW5nVmFsaWRJdGVtKHJlc3BvbnNlLnN0YXR1cywgZXZlbnRTb3VyY2luZ0l0ZW0pO1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZW5kUmVzcG9uc2VTdWJqZWN0KGV2ZW50U291cmNpbmdJdGVtLCByZXNwb25zZSk7XG4gICAgfSBjYXRjaCAoZXJyb3JSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VuZFJlc3BvbnNlU3ViamVjdChldmVudFNvdXJjaW5nSXRlbSwgZXJyb3JSZXNwb25zZSwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkaWZmU2VydmVySXRlbXMoY3VycmVudFVybERpZmYpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxPYmplY3Q+PiB7XG4gICAgcmV0dXJuIHRoaXMucG9IdHRwQ2xpZW50LmdldChjdXJyZW50VXJsRGlmZik7XG4gIH1cblxuICBwcml2YXRlIGdldEJvZHlBbmREYXRlKHNjaGVtYU5hbWUsIHJlc3BvbnNlKTogYW55IHtcbiAgICBjb25zdCBnZXREYXRlRmllbGROYW1lID0gdGhpcy5jb25maWcuZGF0YVRyYW5zZm9ybS5nZXREYXRlRmllbGROYW1lKCk7XG5cbiAgICBjb25zdCByZXNwb25zZVN5bmNEYXRlID0gcmVzcG9uc2UuYm9keVtnZXREYXRlRmllbGROYW1lXTtcblxuICAgIHRoaXMuc2NoZW1hc1N5bmNDb25maWdbc2NoZW1hTmFtZV1bJ3Jlc3BvbnNlRGF0ZSddID0gcmVzcG9uc2VTeW5jRGF0ZTtcbiAgICByZXR1cm4gcmVzcG9uc2UuYm9keTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0U2VydmVyRGlmZlJlY29yZHMoc2NoZW1hOiBQb1N5bmNTY2hlbWEsIGJhc2VVcmw6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgaW5pdGlhbEFjdW11bGF0b3JQYWdlID0geyBlbnRpdHk6IHNjaGVtYS5uYW1lLCBkYXRhOiBbXSB9O1xuICAgIGNvbnN0IGRpZmZVcmwgPSB0aGlzLnNjaGVtYXNTeW5jQ29uZmlnW3NjaGVtYS5uYW1lXVsnY3VycmVudFVybERpZmYnXTtcblxuICAgIGNvbnN0IHNlcnZlclJlc3BvbnNlID0gYXdhaXQgdGhpcy5kaWZmU2VydmVySXRlbXMoZGlmZlVybClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzcG9uc2UgPT4gdGhpcy5nZXRCb2R5QW5kRGF0ZShzY2hlbWEubmFtZSwgcmVzcG9uc2UpKSxcbiAgICAgICAgZXhwYW5kKGRhdGEgPT4gdGhpcy5wYWdpbmF0ZVNjaGVtYURhdGEoZGF0YSwgc2NoZW1hLCBiYXNlVXJsKSksXG4gICAgICAgIHJlZHVjZShcbiAgICAgICAgICAocGFnZUFjdW11bGF0b3IsIHJlcXVlc3RCb2R5KSA9PiB0aGlzLmNvbmNhdFBhZ2VJdGVtcyhwYWdlQWN1bXVsYXRvciwgcmVxdWVzdEJvZHkpLFxuICAgICAgICAgIGluaXRpYWxBY3VtdWxhdG9yUGFnZVxuICAgICAgICApXG4gICAgICApXG4gICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICByZXR1cm4gc2VydmVyUmVzcG9uc2UuZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaHR0cE9wZXJhdGlvbihldmVudFNvdXJjaW5nSXRlbTogUG9FdmVudFNvdXJjaW5nSXRlbSk6IFByb21pc2U8QXJyYXk8UG9FdmVudFNvdXJjaW5nSXRlbT4gfCBudW1iZXI+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVxdWVzdERhdGE6IFBvSHR0cFJlcXVlc3REYXRhID0gYXdhaXQgdGhpcy5jcmVhdGVQb0h0dHBSZXF1ZXN0RGF0YShcbiAgICAgICAgZXZlbnRTb3VyY2luZ0l0ZW0ucmVjb3JkLnVybCxcbiAgICAgICAgZXZlbnRTb3VyY2luZ0l0ZW0ucmVjb3JkLm1ldGhvZCxcbiAgICAgICAgZXZlbnRTb3VyY2luZ0l0ZW0ucmVjb3JkLFxuICAgICAgICBldmVudFNvdXJjaW5nSXRlbS5yZWNvcmQuaGVhZGVyc1xuICAgICAgKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5wb0h0dHBDbGllbnQuY3JlYXRlUmVxdWVzdChyZXF1ZXN0RGF0YSkudG9Qcm9taXNlKCk7XG4gICAgICBjb25zdCBwb0h0dHBDb21tYW5kUmVzcG9uc2U6IFBvU3luY1Jlc3BvbnNlID0ge1xuICAgICAgICBpZDogZXZlbnRTb3VyY2luZ0l0ZW0uaWQsXG4gICAgICAgIGN1c3RvbVJlcXVlc3RJZDogZXZlbnRTb3VyY2luZ0l0ZW0uY3VzdG9tUmVxdWVzdElkLFxuICAgICAgICByZXF1ZXN0OiBldmVudFNvdXJjaW5nSXRlbS5yZWNvcmQsXG4gICAgICAgIHJlc3BvbnNlOiByZXNwb25zZVxuICAgICAgfTtcblxuICAgICAgdGhpcy5yZXNwb25zZVN1YmplY3QubmV4dChwb0h0dHBDb21tYW5kUmVzcG9uc2UpO1xuXG4gICAgICByZXR1cm4gdGhpcy5yZW1vdmVFdmVudFNvdXJjaW5nVmFsaWRJdGVtKHJlc3BvbnNlLnN0YXR1cywgZXZlbnRTb3VyY2luZ0l0ZW0pO1xuICAgIH0gY2F0Y2ggKGVycm9ySHR0cENsaWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VuZFJlc3BvbnNlU3ViamVjdChldmVudFNvdXJjaW5nSXRlbSwgZXJyb3JIdHRwQ2xpZW50LCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluc2VydEV2ZW50U291cmNpbmdRdWV1ZShldmVudFNvdXJjaW5nSXRlbSk6IFByb21pc2U8QXJyYXk8UG9FdmVudFNvdXJjaW5nSXRlbT4+IHtcbiAgICBjb25zdCBldmVudFNvdXJjaW5nVXBkYXRlZFF1ZXVlID0gYXdhaXQgdGhpcy5wb1N0b3JhZ2UuYXBwZW5kSXRlbVRvQXJyYXkoXG4gICAgICBQb0V2ZW50U291cmNpbmdTZXJ2aWNlLmV2ZW50X3NvdXJjaW5nX25hbWUsXG4gICAgICBldmVudFNvdXJjaW5nSXRlbVxuICAgICk7XG5cbiAgICB0aGlzLm5vdGlmeUV2ZW50Q3JlYXRpb24oKTtcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZXZlbnRTb3VyY2luZ1VwZGF0ZWRRdWV1ZSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluc2VydE9wZXJhdGlvbihjdXJyZW50RXZlbnRTb3VyY2luZ0l0ZW06IFBvRXZlbnRTb3VyY2luZ0l0ZW0pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IGF3YWl0IHRoaXMucG9TY2hlbWFEZWZpbml0aW9uLmdldChjdXJyZW50RXZlbnRTb3VyY2luZ0l0ZW0uc2NoZW1hKTtcbiAgICBjb25zdCB1cmwgPSBQb0V2ZW50U291cmNpbmdTZXJ2aWNlLmdldFVybChjdXJyZW50RXZlbnRTb3VyY2luZ0l0ZW0sIHNjaGVtYSwgUG9SZXF1ZXN0VHlwZS5QT1NUKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VuZFNlcnZlckl0ZW0odXJsLCBQb0h0dHBSZXF1ZXN0VHlwZS5QT1NULCBjdXJyZW50RXZlbnRTb3VyY2luZ0l0ZW0ucmVjb3JkKTtcbiAgICAgIGNvbnN0IHJlY29yZFVwZGF0ZWRCeVNlcnZlciA9IHJlc3BvbnNlLmJvZHk7XG5cbiAgICAgIGF3YWl0IHRoaXMucmVtb3ZlRXZlbnRTb3VyY2luZ1ZhbGlkSXRlbShyZXNwb25zZS5zdGF0dXMsIGN1cnJlbnRFdmVudFNvdXJjaW5nSXRlbSk7XG5cbiAgICAgIGNvbnN0IGlkID0gY3VycmVudEV2ZW50U291cmNpbmdJdGVtLnJlY29yZFtQb1NjaGVtYVV0aWwuc3luY0ludGVybmFsSWRGaWVsZE5hbWVdO1xuICAgICAgYXdhaXQgdGhpcy5wb1NjaGVtYVNlcnZpY2UudXBkYXRlKHNjaGVtYSwgcmVjb3JkVXBkYXRlZEJ5U2VydmVyLCBpZCk7XG5cbiAgICAgIGNvbnN0IGV2ZW50U291cmNpbmdJdGVtczogQXJyYXk8UG9FdmVudFNvdXJjaW5nSXRlbT4gPSBhd2FpdCB0aGlzLnBvU3RvcmFnZS5nZXQoXG4gICAgICAgIFBvRXZlbnRTb3VyY2luZ1NlcnZpY2UuZXZlbnRfc291cmNpbmdfbmFtZVxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlUGVuZGluZ0V2ZW50U291cmNpbmcoXG4gICAgICAgIGN1cnJlbnRFdmVudFNvdXJjaW5nSXRlbSxcbiAgICAgICAgc2NoZW1hLmlkRmllbGQsXG4gICAgICAgIHJlY29yZFVwZGF0ZWRCeVNlcnZlcixcbiAgICAgICAgZXZlbnRTb3VyY2luZ0l0ZW1zXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gdGhpcy5zZW5kUmVzcG9uc2VTdWJqZWN0KGN1cnJlbnRFdmVudFNvdXJjaW5nSXRlbSwgcmVzcG9uc2UpO1xuICAgIH0gY2F0Y2ggKGVycm9ySHR0cENsaWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VuZFJlc3BvbnNlU3ViamVjdChjdXJyZW50RXZlbnRTb3VyY2luZ0l0ZW0sIGVycm9ySHR0cENsaWVudCwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkU3RhdHVzKHN0YXR1czogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFBvRXZlbnRTb3VyY2luZ1NlcnZpY2UuVkFMSURfSFRUUF9TVEFUVVNfQ09ERVMuaW5jbHVkZXMoc3RhdHVzKTtcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZ5RXZlbnRDcmVhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbWl0dGVyKSB7XG4gICAgICB0aGlzLmVtaXR0ZXIubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFnaW5hdGVTY2hlbWFEYXRhKGRhdGEsIHNjaGVtYSwgYmFzZVVybCk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgIHRoaXMuY29uZmlnLmRhdGFUcmFuc2Zvcm0udHJhbnNmb3JtKGRhdGEpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGFUcmFuc2Zvcm0uaGFzTmV4dCgpKSB7XG4gICAgICB0aGlzLnNjaGVtYXNTeW5jQ29uZmlnW3NjaGVtYS5uYW1lXVsnY3VycmVudFVybERpZmYnXSA9IHRoaXMuYnVpbGRVcmxQYXJhbXMoXG4gICAgICAgIHNjaGVtYSxcbiAgICAgICAgYmFzZVVybCxcbiAgICAgICAgKyt0aGlzLnNjaGVtYXNTeW5jQ29uZmlnW3NjaGVtYS5uYW1lXVsncGFnZSddXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gdGhpcy5kaWZmU2VydmVySXRlbXModGhpcy5zY2hlbWFzU3luY0NvbmZpZ1tzY2hlbWEubmFtZV1bJ2N1cnJlbnRVcmxEaWZmJ10pLnBpcGUoXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiB0aGlzLmdldEJvZHlBbmREYXRlKHNjaGVtYS5uYW1lLCByZXNwb25zZSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBvZigpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVFdmVudFNvdXJjaW5nVmFsaWRJdGVtKFxuICAgIHN0YXR1cyxcbiAgICBldmVudFNvdXJjaW5nSXRlbTogUG9FdmVudFNvdXJjaW5nSXRlbVxuICApOiBQcm9taXNlPEFycmF5PFBvRXZlbnRTb3VyY2luZ0l0ZW0+PiB7XG4gICAgaWYgKHRoaXMuaXNWYWxpZFN0YXR1cyhzdGF0dXMpIHx8IGV2ZW50U291cmNpbmdJdGVtLm9wZXJhdGlvbiA9PT0gUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkh0dHApIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbW92ZUV2ZW50U291cmNpbmdJdGVtKGV2ZW50U291cmNpbmdJdGVtLmlkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdE9wZXJhdGlvbihldmVudFNvdXJjaW5nSXRlbTogUG9FdmVudFNvdXJjaW5nSXRlbSk6IFByb21pc2U8YW55PiB7XG4gICAgc3dpdGNoIChldmVudFNvdXJjaW5nSXRlbS5vcGVyYXRpb24pIHtcbiAgICAgIGNhc2UgUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkluc2VydDpcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5zZXJ0T3BlcmF0aW9uKGV2ZW50U291cmNpbmdJdGVtKTtcblxuICAgICAgY2FzZSBQb0V2ZW50U291cmNpbmdPcGVyYXRpb24uVXBkYXRlOlxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVPcGVyYXRpb24oZXZlbnRTb3VyY2luZ0l0ZW0pO1xuXG4gICAgICBjYXNlIFBvRXZlbnRTb3VyY2luZ09wZXJhdGlvbi5EZWxldGU6XG4gICAgICAgIHJldHVybiB0aGlzLmRlbGV0ZU9wZXJhdGlvbihldmVudFNvdXJjaW5nSXRlbSk7XG5cbiAgICAgIGNhc2UgUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkh0dHA6XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBPcGVyYXRpb24oZXZlbnRTb3VyY2luZ0l0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VuZFJlc3BvbnNlU3ViamVjdChcbiAgICBldmVudFNvdXJjaW5nSXRlbTogUG9FdmVudFNvdXJjaW5nSXRlbSxcbiAgICByZXNwb25zZTogSHR0cFJlc3BvbnNlPE9iamVjdD4gfCBIdHRwRXJyb3JSZXNwb25zZSB8IFBvRXZlbnRTb3VyY2luZ0Vycm9yUmVzcG9uc2UsXG4gICAgaXNTdWJqZWN0RXJyb3I6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHBvU3luY1Jlc3BvbnNlOiBQb1N5bmNSZXNwb25zZSA9IHtcbiAgICAgIGlkOiBldmVudFNvdXJjaW5nSXRlbS5pZCxcbiAgICAgIGN1c3RvbVJlcXVlc3RJZDogZXZlbnRTb3VyY2luZ0l0ZW0uY3VzdG9tUmVxdWVzdElkLFxuICAgICAgcmVxdWVzdDogZXZlbnRTb3VyY2luZ0l0ZW0ucmVjb3JkLFxuICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlXG4gICAgfTtcblxuICAgIHRoaXMuc3RvcHBlZFF1ZXVlRXZlbnRTb3VyY2luZyA9IGlzU3ViamVjdEVycm9yO1xuICAgIHRoaXMucmVzcG9uc2VTdWJqZWN0Lm5leHQocG9TeW5jUmVzcG9uc2UpO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZW5kU2VydmVySXRlbSh1cmw6IHN0cmluZywgbWV0aG9kOiBQb0h0dHBSZXF1ZXN0VHlwZSwgYm9keT86IFBvRXZlbnRTb3VyY2luZ0l0ZW1bJ3JlY29yZCddKSB7XG4gICAgY29uc3QgcmVxdWVzdERhdGE6IFBvSHR0cFJlcXVlc3REYXRhID0gYXdhaXQgdGhpcy5jcmVhdGVQb0h0dHBSZXF1ZXN0RGF0YSh1cmwsIG1ldGhvZCwgYm9keSk7XG5cbiAgICByZXR1cm4gdGhpcy5wb0h0dHBDbGllbnQuY3JlYXRlUmVxdWVzdChyZXF1ZXN0RGF0YSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZVBvSHR0cFJlcXVlc3REYXRhKFxuICAgIHVybDogc3RyaW5nLFxuICAgIG1ldGhvZDogUG9IdHRwUmVxdWVzdFR5cGUsXG4gICAgcmVjb3JkPzogUG9FdmVudFNvdXJjaW5nSXRlbVsncmVjb3JkJ10sXG4gICAgaGVhZGVycz86IEFycmF5PFBvSHR0cEhlYWRlck9wdGlvbj5cbiAgKTogUHJvbWlzZTxQb0h0dHBSZXF1ZXN0RGF0YT4ge1xuICAgIGxldCBib2R5ID0gcmVjb3JkLmJvZHkgPz8gcmVjb3JkO1xuXG4gICAgaWYgKHJlY29yZC5ib2R5VHlwZSA9PT0gJ0ZpbGUnKSB7XG4gICAgICBib2R5ID0gYXdhaXQgdGhpcy5jcmVhdGVGb3JtRGF0YShib2R5LCByZWNvcmQuZmlsZU5hbWUsIHJlY29yZC5taW1lVHlwZSwgcmVjb3JkLmZvcm1GaWVsZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgdXJsLCBtZXRob2QsIGJvZHksIGhlYWRlcnMgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlRm9ybURhdGEoXG4gICAgYm9keTogc3RyaW5nLFxuICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgbWltZVR5cGU6IHN0cmluZyxcbiAgICBmb3JtRmllbGQ6IHN0cmluZyA9ICdmaWxlJ1xuICApOiBQcm9taXNlPEZvcm1EYXRhPiB7XG4gICAgY29uc3QgZmlsZSA9IGF3YWl0IHRvRmlsZShib2R5LCBmaWxlTmFtZSwgbWltZVR5cGUpO1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgZm9ybURhdGEuYXBwZW5kKGZvcm1GaWVsZCwgZmlsZSwgZmlsZU5hbWUpO1xuICAgIHJldHVybiBmb3JtRGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlT3BlcmF0aW9uKGV2ZW50U291cmNpbmdJdGVtOiBQb0V2ZW50U291cmNpbmdJdGVtKTogUHJvbWlzZTxBcnJheTxhbnk+IHwgbnVtYmVyPiB7XG4gICAgY29uc3Qgc2NoZW1hID0gYXdhaXQgdGhpcy5wb1NjaGVtYURlZmluaXRpb24uZ2V0KGV2ZW50U291cmNpbmdJdGVtLnNjaGVtYSk7XG4gICAgY29uc3QgdXJsID0gUG9FdmVudFNvdXJjaW5nU2VydmljZS5nZXRVcmwoZXZlbnRTb3VyY2luZ0l0ZW0sIHNjaGVtYSwgUG9SZXF1ZXN0VHlwZS5QQVRDSCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVjb3JkSWQgPSBldmVudFNvdXJjaW5nSXRlbS5yZWNvcmRbc2NoZW1hLmlkRmllbGRdO1xuICAgICAgdGhpcy5jaGVja1JlY29yZElkRXhpc3RzKHJlY29yZElkLCBQb0V2ZW50U291cmNpbmdPcGVyYXRpb24uVXBkYXRlKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlbmRTZXJ2ZXJJdGVtKHVybCwgUG9IdHRwUmVxdWVzdFR5cGUuUFVULCBldmVudFNvdXJjaW5nSXRlbS5yZWNvcmQpO1xuICAgICAgYXdhaXQgdGhpcy5yZW1vdmVFdmVudFNvdXJjaW5nVmFsaWRJdGVtKHJlc3BvbnNlLnN0YXR1cywgZXZlbnRTb3VyY2luZ0l0ZW0pO1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZW5kUmVzcG9uc2VTdWJqZWN0KGV2ZW50U291cmNpbmdJdGVtLCByZXNwb25zZSk7XG4gICAgfSBjYXRjaCAoZXJyb3JIdHRwQ2xpZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5zZW5kUmVzcG9uc2VTdWJqZWN0KGV2ZW50U291cmNpbmdJdGVtLCBlcnJvckh0dHBDbGllbnQsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGVuZGluZ0V2ZW50U291cmNpbmcoXG4gICAgY3VycmVudEV2ZW50U291cmNpbmdJdGVtOiBQb0V2ZW50U291cmNpbmdJdGVtLFxuICAgIGlkRmllbGRTY2hlbWE6IHN0cmluZyxcbiAgICBpbnNlcnRlZDogb2JqZWN0LFxuICAgIGV2ZW50U291cmNpbmdJdGVtczogQXJyYXk8UG9FdmVudFNvdXJjaW5nSXRlbT5cbiAgKSB7XG4gICAgaWYgKGN1cnJlbnRFdmVudFNvdXJjaW5nSXRlbS5yZWNvcmRbUG9TY2hlbWFVdGlsLnN5bmNJbnRlcm5hbElkRmllbGROYW1lXSkge1xuICAgICAgZXZlbnRTb3VyY2luZ0l0ZW1zLmZvckVhY2goKGV2ZW50U291cmNpbmdJdGVtLCBwb3NpdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBpc0N1cnJlbnRFdmVudFNvdXJjaW5nSXRlbSA9XG4gICAgICAgICAgIWV2ZW50U291cmNpbmdJdGVtLnJlY29yZFtpZEZpZWxkU2NoZW1hXSAmJlxuICAgICAgICAgIGV2ZW50U291cmNpbmdJdGVtLnJlY29yZFtQb1NjaGVtYVV0aWwuc3luY0ludGVybmFsSWRGaWVsZE5hbWVdID09PVxuICAgICAgICAgICAgY3VycmVudEV2ZW50U291cmNpbmdJdGVtLnJlY29yZFtQb1NjaGVtYVV0aWwuc3luY0ludGVybmFsSWRGaWVsZE5hbWVdO1xuXG4gICAgICAgIGlmIChpc0N1cnJlbnRFdmVudFNvdXJjaW5nSXRlbSkge1xuICAgICAgICAgIGV2ZW50U291cmNpbmdJdGVtc1twb3NpdGlvbl0ucmVjb3JkW2lkRmllbGRTY2hlbWFdID0gaW5zZXJ0ZWRbaWRGaWVsZFNjaGVtYV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdGhpcy5wb1N0b3JhZ2Uuc2V0KFBvRXZlbnRTb3VyY2luZ1NlcnZpY2UuZXZlbnRfc291cmNpbmdfbmFtZSwgZXZlbnRTb3VyY2luZ0l0ZW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlUmVjb3JkcyhzZXJ2ZXJSZWNvcmRzOiBBcnJheTxhbnk+LCBzY2hlbWE6IFBvU3luY1NjaGVtYSkge1xuICAgIGZvciAoY29uc3Qgc2VydmVyUmVjb3JkIG9mIHNlcnZlclJlY29yZHMpIHtcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlUmVjb3JkQnlTZXJ2ZXJSZWNvcmQoc2VydmVyUmVjb3JkLCBzY2hlbWEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlUmVjb3JkQnlTZXJ2ZXJSZWNvcmQoc2VydmVyUmVjb3JkLCBzY2hlbWEpIHtcbiAgICBjb25zdCByZWNvcmRJZCA9IHNlcnZlclJlY29yZFtzY2hlbWEuaWRGaWVsZF07XG4gICAgY29uc3Qgc3RvcmFnZVJlY29yZCA9IGF3YWl0IHRoaXMucG9TY2hlbWFTZXJ2aWNlLmdldChzY2hlbWEubmFtZSwgcmVjb3JkSWQpO1xuICAgIGNvbnN0IGV4aXN0c1N0b3JhZ2VSZWNvcmQgPSAhIU9iamVjdC5rZXlzKHN0b3JhZ2VSZWNvcmQpLmxlbmd0aDtcblxuICAgIGlmIChleGlzdHNTdG9yYWdlUmVjb3JkICYmIHNlcnZlclJlY29yZFtzY2hlbWEuZGVsZXRlZEZpZWxkXSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucG9TY2hlbWFTZXJ2aWNlLnJlbW92ZShzY2hlbWEubmFtZSwgc2VydmVyUmVjb3JkW3NjaGVtYS5pZEZpZWxkXSk7XG4gICAgfVxuXG4gICAgaWYgKGV4aXN0c1N0b3JhZ2VSZWNvcmQgJiYgIXNlcnZlclJlY29yZFtzY2hlbWEuZGVsZXRlZEZpZWxkXSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucG9TY2hlbWFTZXJ2aWNlLnVwZGF0ZShzY2hlbWEsIHNlcnZlclJlY29yZCk7XG4gICAgfVxuXG4gICAgaWYgKCFleGlzdHNTdG9yYWdlUmVjb3JkICYmICFzZXJ2ZXJSZWNvcmRbc2NoZW1hLmRlbGV0ZWRGaWVsZF0pIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnBvU2NoZW1hU2VydmljZS5jcmVhdGUoc2NoZW1hLCBzZXJ2ZXJSZWNvcmQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlU3RvcmFnZUJ5U2NoZW1hKHNjaGVtYTogUG9TeW5jU2NoZW1hKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0aGlzLmNyZWF0ZVNjaGVtYVN5bmNDb25maWcoc2NoZW1hLm5hbWUpO1xuXG4gICAgdGhpcy5zY2hlbWFzU3luY0NvbmZpZ1tzY2hlbWEubmFtZV1bJ3BhZ2UnXSA9IDE7XG4gICAgY29uc3QgYmFzZVVybCA9IGAke1BvU2NoZW1hVXRpbC5nZXRVcmwoc2NoZW1hLCBQb1JlcXVlc3RUeXBlLkRJRkYpfS8ke3NjaGVtYS5sYXN0U3luY31gO1xuICAgIHRoaXMuc2NoZW1hc1N5bmNDb25maWdbc2NoZW1hLm5hbWVdWydjdXJyZW50VXJsRGlmZiddID0gdGhpcy5idWlsZFVybFBhcmFtcyhcbiAgICAgIHNjaGVtYSxcbiAgICAgIGJhc2VVcmwsXG4gICAgICB0aGlzLnNjaGVtYXNTeW5jQ29uZmlnW3NjaGVtYS5uYW1lXVsncGFnZSddXG4gICAgKTtcblxuICAgIGNvbnN0IHNlcnZlclJlY29yZHMgPSBhd2FpdCB0aGlzLmdldFNlcnZlckRpZmZSZWNvcmRzKHNjaGVtYSwgYmFzZVVybCk7XG5cbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVJlY29yZHMoc2VydmVyUmVjb3Jkcywgc2NoZW1hKTtcblxuICAgIHNjaGVtYS5sYXN0U3luYyA9IHRoaXMuc2NoZW1hc1N5bmNDb25maWdbc2NoZW1hLm5hbWVdWydyZXNwb25zZURhdGUnXTtcbiAgICBhd2FpdCB0aGlzLnBvU2NoZW1hRGVmaW5pdGlvbi51cGRhdGUoc2NoZW1hKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RvcmFnZVNjaGVtYXMoc2NoZW1hcyk6IEFycmF5PFByb21pc2U8QXJyYXk8YW55Pj4+IHtcbiAgICByZXR1cm4gc2NoZW1hcy5tYXAoKHNjaGVtYTogUG9TeW5jU2NoZW1hKSA9PiB0aGlzLnVwZGF0ZVN0b3JhZ2VCeVNjaGVtYShzY2hlbWEpKTtcbiAgfVxufVxuIl19
|
|
379
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZXZlbnQtc291cmNpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5bmMvc3JjL2xpYi9zZXJ2aWNlcy9wby1ldmVudC1zb3VyY2luZy9wby1ldmVudC1zb3VyY2luZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXJELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRW5HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBS3BGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUdsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7OztBQU1sRixNQUFNLE9BQU8sc0JBQXNCO0lBd0J2QjtJQUNBO0lBQ0E7SUFDQTtJQTFCVixNQUFNLENBQVUsbUJBQW1CLEdBQVcsZUFBZSxDQUFDO0lBRXRELE1BQU0sQ0FBVSx1QkFBdUIsR0FBRztRQUNoRCxXQUFXLENBQUMsRUFBRSxFQUFFLE1BQU07UUFDdEIsV0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNO1FBQzNCLFdBQVcsQ0FBQyxRQUFRLEVBQUUsTUFBTTtRQUM1QixXQUFX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LENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsTUFBTSxPQUFPLEdBQUcsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUN6RSxNQUFNLEVBQ04sT0FBTyxFQUNQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQzVDLENBQUM7UUFFRixNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFdkUsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVoRCxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEUsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxPQUFPO1FBQ2xDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQW9CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7Z0ZBL2hCVSxzQkFBc0I7Z0VBQXRCLHNCQUFzQixXQUF0QixzQkFBc0I7O2lGQUF0QixzQkFBc0I7Y0FEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXNwb25zZSwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN0YXR1c0NvZGVzIH0gZnJvbSAnaHR0cC1zdGF0dXMtY29kZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGV4cGFuZCwgbWFwLCByZWR1Y2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFBvU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAcG8tdWkvbmctc3RvcmFnZSc7XG5cbmltcG9ydCB7IHRvQmFzZTY0LCB0b0ZpbGUgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XG5cbmltcG9ydCB7IFBvRXZlbnRTb3VyY2luZ0Vycm9yUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvcG8tZXZlbnQtc291cmNpbmctZXJyb3ItcmVzcG9uc2UubW9kZWwnO1xuaW1wb3J0IHsgUG9FdmVudFNvdXJjaW5nSXRlbSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1ldmVudC1zb3VyY2luZy1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0V2ZW50U291cmNpbmdPcGVyYXRpb24gfSBmcm9tICcuL2VudW1zL3BvLWV2ZW50LXNvdXJjaW5nLW9wZXJhdGlvbi5lbnVtJztcbmltcG9ydCB7IFBvRXZlbnRTb3VyY2luZ1N1bW1hcnlJdGVtIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWV2ZW50LXNvdXJjaW5nLXN1bW1hcnktaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9IdHRwSGVhZGVyT3B0aW9uIH0gZnJvbSAnLi8uLi9wby1odHRwLWNsaWVudC9pbnRlcmZhY2VzL3BvLWh0dHAtaGVhZGVyLW9wdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9IdHRwQ2xpZW50U2VydmljZSB9IGZyb20gJy4vLi4vcG8taHR0cC1jbGllbnQvcG8taHR0cC1jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBQb0h0dHBSZXF1ZXN0RGF0YSB9IGZyb20gJy4uL3BvLWh0dHAtY2xpZW50L2ludGVyZmFjZXMvcG8taHR0cC1yZXF1ZXN0LWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvSHR0cFJlcXVlc3RUeXBlIH0gZnJvbSAnLi4vcG8taHR0cC1jbGllbnQvcG8taHR0cC1yZXF1ZXN0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBQb1JlcXVlc3RUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BvLXJlcXVlc3QtdHlwZS5lbnVtJztcbmltcG9ydCB7IFBvU2NoZW1hRGVmaW5pdGlvblNlcnZpY2UgfSBmcm9tICcuLy4uL3BvLXNjaGVtYS9wby1zY2hlbWEtZGVmaW5pdGlvbi9wby1zY2hlbWEtZGVmaW5pdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFBvU2NoZW1hU2VydmljZSB9IGZyb20gJy4vLi4vcG8tc2NoZW1hL3BvLXNjaGVtYS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvU2NoZW1hVXRpbCB9IGZyb20gJy4vLi4vcG8tc2NoZW1hL3BvLXNjaGVtYS11dGlsL3BvLXNjaGVtYS11dGlsLm1vZGVsJztcbmltcG9ydCB7IFBvU3luY0NvbmZpZyB9IGZyb20gJy4uL3BvLXN5bmMvaW50ZXJmYWNlcy9wby1zeW5jLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9TeW5jUmVzcG9uc2UgfSBmcm9tICcuLi9wby1zeW5jL2ludGVyZmFjZXMvcG8tc3luYy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9TeW5jU2NoZW1hIH0gZnJvbSAnLi8uLi9wby1zeW5jL2ludGVyZmFjZXMvcG8tc3luYy1zY2hlbWEuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBvRXZlbnRTb3VyY2luZ1NlcnZpY2Uge1xuICBzdGF0aWMgcmVhZG9ubHkgZXZlbnRfc291cmNpbmdfbmFtZTogc3RyaW5nID0gJ0V2ZW50U291cmNpbmcnO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFZBTElEX0hUVFBfU1RBVFVTX0NPREVTID0gW1xuICAgIFN0YXR1c0NvZGVzLk9LLCAvLyAyMDBcbiAgICBTdGF0dXNDb2Rlcy5DUkVBVEVELCAvLyAyMDFcbiAgICBTdGF0dXNDb2Rlcy5BQ0NFUFRFRCwgLy8gMjAyXG4gICAgU3RhdHVzQ29kZXMuTk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04sIC8vIDIwM1xuICAgIFN0YXR1c0NvZGVzLk5PX0NPTlRFTlQsIC8vIDIwNFxuICAgIFN0YXR1c0NvZGVzLlJFU0VUX0NPTlRFTlQsIC8vIDIwNVxuICAgIFN0YXR1c0NvZGVzLlBBUlRJQUxfQ09OVEVOVCwgLy8gMjA2XG4gICAgU3RhdHVzQ29kZXMuTVVMVElfU1RBVFVTIC8vIDIwN1xuICBdO1xuXG4gIGNvbmZpZzogUG9TeW5jQ29uZmlnO1xuICBzdG9wcGVkUXVldWVFdmVudFNvdXJjaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBlbWl0dGVyOiBhbnk7XG4gIHByaXZhdGUgZXZlbnRTdWI6IE9ic2VydmFibGU8bnVsbD47XG4gIHByaXZhdGUgcmVzcG9uc2VTdWJqZWN0ID0gbmV3IFN1YmplY3Q8UG9TeW5jUmVzcG9uc2U+KCk7XG5cbiAgcHJpdmF0ZSBzY2hlbWFzU3luY0NvbmZpZyA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcG9TY2hlbWFEZWZpbml0aW9uOiBQb1NjaGVtYURlZmluaXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9TY2hlbWFTZXJ2aWNlOiBQb1NjaGVtYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb1N0b3JhZ2U6IFBvU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb0h0dHBDbGllbnQ6IFBvSHR0cENsaWVudFNlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgc3RhdGljIGdldFVybChldmVudFNvdXJjaW5nSXRlbSwgc2NoZW1hLCByZXF1ZXN0VHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2NoZW1hVXJsID0gUG9TY2hlbWFVdGlsLmdldFVybChzY2hlbWEsIHJlcXVlc3RUeXBlKTtcbiAgICBjb25zdCBzY2hlbWFJZCA9IGV2ZW50U291cmNpbmdJdGVtLnJlY29yZFtzY2hlbWEuaWRGaWVsZF07XG5cbiAgICBpZiAocmVxdWVzdFR5cGUgPT09IFBvUmVxdWVzdFR5cGUuR0VUKSB7XG4gICAgICByZXR1cm4gc2NoZW1hVXJsO1xuICAgIH1cblxuICAgIGlmIChbUG9SZXF1ZXN0VHlwZS5ERUxFVEUsIFBvUmVxdWVzdFR5cGUuUEFUQ0hdLmluY2x1ZGVzKHJlcXVlc3RUeXBlKSkge1xuICAgICAgcmV0dXJuIHNjaGVtYVVybCA/IGAke3NjaGVtYVVybH0vJHtzY2hlbWFJZH1gIDogYCR7UG9TY2hlbWFVdGlsLmdldFVybChzY2hlbWEsIFBvUmVxdWVzdFR5cGUuR0VUKX0vJHtzY2hlbWFJZH1gO1xuICAgIH1cblxuICAgIGlmIChyZXF1ZXN0VHlwZSA9PT0gUG9SZXF1ZXN0VHlwZS5QT1NUKSB7XG4gICAgICByZXR1cm4gc2NoZW1hVXJsID8gc2NoZW1hVXJsIDogUG9TY2hlbWFVdGlsLmdldFVybChzY2hlbWEsIFBvUmVxdWVzdFR5cGUuR0VUKTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGUoc2NoZW1hTmFtZTogc3RyaW5nLCBuZXdJdGVtOiBhbnksIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZXZlbnRTb3VyY2luZ0l0ZW0gPSB0aGlzLmNyZWF0ZUV2ZW50U291cmNpbmdJdGVtKFxuICAgICAgUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkluc2VydCxcbiAgICAgIG5ld0l0ZW0sXG4gICAgICBzY2hlbWFOYW1lLFxuICAgICAgY3VzdG9tUmVxdWVzdElkXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5pbnNlcnRFdmVudFNvdXJjaW5nUXVldWUoZXZlbnRTb3VyY2luZ0l0ZW0pO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQmF0Y2hFdmVudHMoc2NoZW1hTmFtZTogc3RyaW5nLCBldmVudExpc3Q6IEFycmF5PFBvRXZlbnRTb3VyY2luZ1N1bW1hcnlJdGVtPikge1xuICAgIGNvbnN0IGV2ZW50U291cmNpbmdMaXN0ID0gdGhpcy5jcmVhdGVFdmVudFNvdXJjaW5nTGlzdChzY2hlbWFOYW1lLCBldmVudExpc3QpO1xuXG4gICAgYXdhaXQgdGhpcy5wb1N0b3JhZ2UuYXBwZW5kQXJyYXlUb0FycmF5KFBvRXZlbnRTb3VyY2luZ1NlcnZpY2UuZXZlbnRfc291cmNpbmdfbmFtZSwgZXZlbnRTb3VyY2luZ0xpc3QpO1xuXG4gICAgdGhpcy5ub3RpZnlFdmVudENyZWF0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHLDs2kgYSBjaGF2ZSBkbyAqc3RvcmFnZSogcXVlIGNvbnTDqW0gYSBmaWxhIGRlIGRhZG9zIHF1ZSBlc3TDo28gZXNwZXJhbmRvIHBhcmEgc2VyZW0gZW52aWFkb3MgYW9cbiAgICogc2Vydmlkb3IgKihFdmVudFNvdXJjaW5nKSouXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBQcm9tZXNzYSBxdWUgw6kgcmVzb2x2aWRhIHF1YW5kbyBhIGNoYXZlIHJlZmVyZW50ZSBhIGZpbGEgZGUgKkV2ZW50U291cmNpbmcqIGZvciBkZXN0cnXDrWRhLlxuICAgKi9cbiAgZGVzdHJveUV2ZW50U291cmNpbmdRdWV1ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5wb1N0b3JhZ2UucmVtb3ZlKFBvRXZlbnRTb3VyY2luZ1NlcnZpY2UuZXZlbnRfc291cmNpbmdfbmFtZSk7XG4gIH1cblxuICBhc3luYyBodHRwQ29tbWFuZChodHRwT3BlcmF0aW9uRGF0YTogUG9IdHRwUmVxdWVzdERhdGEsIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgaHR0cE9wZXJhdGlvbkRhdGEgPSBhd2FpdCB0aGlzLnNlcmlhbGl6ZUJvZHkoaHR0cE9wZXJhdGlvbkRhdGEpO1xuXG4gICAgY29uc3QgZXZlbnRTb3VyY2luZ0l0ZW0gPSB0aGlzLmNyZWF0ZUV2ZW50U291cmNpbmdJdGVtKFxuICAgICAgUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkh0dHAsXG4gICAgICBodHRwT3BlcmF0aW9uRGF0YSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGN1c3RvbVJlcXVlc3RJZFxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLmluc2VydEV2ZW50U291cmNpbmdRdWV1ZShldmVudFNvdXJjaW5nSXRlbSk7XG4gICAgcmV0dXJuIGV2ZW50U291cmNpbmdJdGVtLmlkO1xuICB9XG5cbiAgcmVzcG9uc2VzU3ViamVjdCgpOiBPYnNlcnZhYmxlPFBvU3luY1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMucmVzcG9uc2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgb25TYXZlRGF0YSgpOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICBpZiAoIXRoaXMuZXZlbnRTdWIpIHtcbiAgICAgIHRoaXMuZXZlbnRTdWIgPSBPYnNlcnZhYmxlLmNyZWF0ZShzdWJzY3JpYmVyID0+ICh0aGlzLmVtaXR0ZXIgPSBzdWJzY3JpYmVyKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmV2ZW50U3ViO1xuICB9XG5cbiAgcmVtb3ZlKHNjaGVtYU5hbWU6IHN0cmluZywgaXRlbVRvRGVsZXRlOiBhbnksIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZXZlbnRTb3VyY2luZ0l0ZW0gPSB0aGlzLmNyZWF0ZUV2ZW50U291cmNpbmdJdGVtKFxuICAgICAgUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkRlbGV0ZSxcbiAgICAgIGl0ZW1Ub0RlbGV0ZSxcbiAgICAgIHNjaGVtYU5hbWUsXG4gICAgICBjdXN0b21SZXF1ZXN0SWRcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmluc2VydEV2ZW50U291cmNpbmdRdWV1ZShldmVudFNvdXJjaW5nSXRlbSk7XG4gIH1cblxuICByZW1vdmVFdmVudFNvdXJjaW5nSXRlbShpZEV2ZW50U291cmNpbmdJdGVtKSB7XG4gICAgcmV0dXJuIHRoaXMucG9TdG9yYWdlLnJlbW92ZUl0ZW1Gcm9tQXJyYXkoUG9FdmVudFNvdXJjaW5nU2VydmljZS5ldmVudF9zb3VyY2luZ19uYW1lLCAnaWQnLCBpZEV2ZW50U291cmNpbmdJdGVtKTtcbiAgfVxuXG4gIHN5bmNHZXQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzeW5jR2V0RnVuY3Rpb24gPSBhc3luYyAoKSA9PlxuICAgICAgdGhpcy5wb1NjaGVtYURlZmluaXRpb24uZ2V0QWxsKCkudGhlbihzY2hlbWFzID0+IHtcbiAgICAgICAgY29uc3Qgc2NoZW1hUHJvbWlzZXMgPSB0aGlzLnVwZGF0ZVN0b3JhZ2VTY2hlbWFzKHNjaGVtYXMpO1xuXG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChzY2hlbWFQcm9taXNlcyk7XG4gICAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLnBvU2NoZW1hU2VydmljZS5saW1pdGVkQ2FsbFdyYXAoc3luY0dldEZ1bmN0aW9uKTtcbiAgfVxuXG4gIGFzeW5jIHN5bmNTZW5kKCk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgc3luY1NlbmRGdW5jdGlvbiA9IGFzeW5jICgpOiBQcm9taXNlPGFueT4gPT4ge1xuICAgICAgY29uc3QgaXRlbU9mUXVldWUgPSBhd2FpdCB0aGlzLnBvU3RvcmFnZS5nZXRGaXJzdEl0ZW0oUG9FdmVudFNvdXJjaW5nU2VydmljZS5ldmVudF9zb3VyY2luZ19uYW1lKTtcblxuICAgICAgaWYgKGl0ZW1PZlF1ZXVlKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VsZWN0T3BlcmF0aW9uKGl0ZW1PZlF1ZXVlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc3RvcHBlZFF1ZXVlRXZlbnRTb3VyY2luZyB8fCAhaXRlbU9mUXVldWUpIHtcbiAgICAgICAgdGhpcy5zdG9wcGVkUXVldWVFdmVudFNvdXJjaW5nID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHN5bmNTZW5kRnVuY3Rpb24oKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucG9TY2hlbWFTZXJ2aWNlLmxpbWl0ZWRDYWxsV3JhcChzeW5jU2VuZEZ1bmN0aW9uKTtcbiAgfVxuXG4gIHVwZGF0ZShzY2hlbWFOYW1lOiBzdHJpbmcsIGl0ZW1VcGRhdGVkOiBhbnksIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZXZlbnRTb3VyY2luZ0l0ZW0gPSB0aGlzLmNyZWF0ZUV2ZW50U291cmNpbmdJdGVtKFxuICAgICAgUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLlVwZGF0ZSxcbiAgICAgIGl0ZW1VcGRhdGVkLFxuICAgICAgc2NoZW1hTmFtZSxcbiAgICAgIGN1c3RvbVJlcXVlc3RJZFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaW5zZXJ0RXZlbnRTb3VyY2luZ1F1ZXVlKGV2ZW50U291cmNpbmdJdGVtKTtcbiAgfVxuXG4gIC8qIEF2YWxpYSBzZSBvIGJvZHkgw6kgZG8gdGlwbyBGaWxlIGUgc2UgZm9yIGNvbnZlcnRlIHBhcmEgYmFzZTY0ICovXG4gIHByaXZhdGUgYXN5bmMgc2VyaWFsaXplQm9keShyZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEpOiBQcm9taXNlPFBvSHR0cFJlcXVlc3REYXRhPiB7XG4gICAgbGV0IHsgYm9keSwgbWltZVR5cGUsIGJvZHlUeXBlLCBmaWxlTmFtZSB9ID0gcmVxdWVzdERhdGE7XG5cbiAgICBpZiAoYm9keSBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgIGJvZHlUeXBlID0gJ0ZpbGUnO1xuICAgICAgbWltZVR5cGUgPSBib2R5LnR5cGU7XG4gICAgICBmaWxlTmFtZSA9IGJvZHkubmFtZTtcbiAgICAgIGJvZHkgPSBhd2FpdCB0b0Jhc2U2NChib2R5KTtcbiAgICB9XG5cbiAgICByZXR1cm4geyAuLi5yZXF1ZXN0RGF0YSwgYm9keSwgbWltZVR5cGUsIGJvZHlUeXBlLCBmaWxlTmFtZSB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFVybFBhcmFtcyhzY2hlbWE6IFBvU3luY1NjaGVtYSwgYmFzZVVybDogc3RyaW5nLCBwYWdlTnVtYmVyOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcmFtcyA9IFtdO1xuICAgIHBhcmFtcy5wdXNoKGAke3RoaXMuY29uZmlnLmRhdGFUcmFuc2Zvcm0uZ2V0UGFnZVNpemVQYXJhbU5hbWUoKX09JHtzY2hlbWEucGFnZVNpemV9YCk7XG4gICAgcGFyYW1zLnB1c2goYCR7dGhpcy5jb25maWcuZGF0YVRyYW5zZm9ybS5nZXRQYWdlUGFyYW1OYW1lKCl9PSR7cGFnZU51bWJlcn1gKTtcbiAgICByZXR1cm4gYCR7YmFzZVVybH0/JHtwYXJhbXMuam9pbignJicpfWA7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrUmVjb3JkSWRFeGlzdHMocmVjb3JkSWQsIG9wZXJhdGlvbikge1xuICAgIGlmICghcmVjb3JkSWQpIHtcbiAgICAgIGNvbnN0IGVycm9yID0ge1xuICAgICAgICBtZXNzYWdlOiAnSWRlbnRpZmllciBub3QgZGVmaW5lZCcsXG4gICAgICAgIG9wZXJhdGlvbjogb3BlcmF0aW9uXG4gICAgICB9O1xuXG4gICAgICB0aHJvdyBuZXcgUG9FdmVudFNvdXJjaW5nRXJyb3JSZXNwb25zZShlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb25jYXRQYWdlSXRlbXMocGFnZUFjdW11bGF0b3IsIHJlcXVlc3RCb2R5KTogeyBlbnRpdHk6IHN0cmluZzsgZGF0YTogQXJyYXk8YW55PiB9IHtcbiAgICBpZiAocmVxdWVzdEJvZHlbdGhpcy5jb25maWcuZGF0YVRyYW5zZm9ybS5nZXRJdGVtc0ZpZWxkTmFtZSgpXSkge1xuICAgICAgcGFnZUFjdW11bGF0b3IuZGF0YSA9IFsuLi5wYWdlQWN1bXVsYXRvci5kYXRhLCAuLi5yZXF1ZXN0Qm9keVt0aGlzLmNvbmZpZy5kYXRhVHJhbnNmb3JtLmdldEl0ZW1zRmllbGROYW1lKCldXTtcbiAgICB9XG4gICAgcmV0dXJuIHBhZ2VBY3VtdWxhdG9yO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVFdmVudFNvdXJjaW5nSXRlbShcbiAgICBvcGVyYXRpb246IFBvRXZlbnRTb3VyY2luZ09wZXJhdGlvbixcbiAgICBuZXdJdGVtOiBhbnkgfCBQb0h0dHBSZXF1ZXN0RGF0YSxcbiAgICBzY2hlbWFOYW1lPzogc3RyaW5nLFxuICAgIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZyxcbiAgICBpZD86IG51bWJlclxuICApOiBQb0V2ZW50U291cmNpbmdJdGVtIHtcbiAgICBpZiAoIXNjaGVtYU5hbWUgJiYgb3BlcmF0aW9uICE9PSBQb0V2ZW50U291cmNpbmdPcGVyYXRpb24uSHR0cCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQb1N5bmNTY2hlbWEgaXMgbm90IGRlZmluZWQuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBpZCA/IGlkIDogbmV3IERhdGUoKS5nZXRUaW1lKCksXG4gICAgICBkYXRlVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKCksXG4gICAgICBzY2hlbWE6IHNjaGVtYU5hbWUsXG4gICAgICBvcGVyYXRpb246IG9wZXJhdGlvbixcbiAgICAgIHJlY29yZDogbmV3SXRlbSxcbiAgICAgIGN1c3RvbVJlcXVlc3RJZDogY3VzdG9tUmVxdWVzdElkXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRXZlbnRTb3VyY2luZ0xpc3QoXG4gICAgc2NoZW1hTmFtZTogc3RyaW5nLFxuICAgIGV2ZW50TGlzdDogQXJyYXk8UG9FdmVudFNvdXJjaW5nU3VtbWFyeUl0ZW0+XG4gICk6IEFycmF5PFBvRXZlbnRTb3VyY2luZ0l0ZW0+IHtcbiAgICByZXR1cm4gZXZlbnRMaXN0Lm1hcCgoZXZlbnRJdGVtLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgaWQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIGluZGV4O1xuXG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVFdmVudFNvdXJjaW5nSXRlbShcbiAgICAgICAgZXZlbnRJdGVtLm9wZXJhdGlvbixcbiAgICAgICAgZXZlbnRJdGVtLnJlY29yZCxcbiAgICAgICAgc2NoZW1hTmFtZSxcbiAgICAgICAgZXZlbnRJdGVtLmN1c3RvbVJlcXVlc3RJZCxcbiAgICAgICAgaWRcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVNjaGVtYVN5bmNDb25maWcoc2NoZW1hTmFtZSkge1xuICAgIHRoaXMuc2NoZW1hc1N5bmNDb25maWdbc2NoZW1hTmFtZV0gPSB7XG4gICAgICBwYWdlOiB1bmRlZmluZWQsXG4gICAgICBjdXJyZW50VXJsRGlmZjogdW5kZWZpbmVkLFxuICAgICAgcmVzcG9uc2VEYXRlOiB1bmRlZmluZWRcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkZWxldGVPcGVyYXRpb24oZXZlbnRTb3VyY2luZ0l0ZW06IFBvRXZlbnRTb3VyY2luZ0l0ZW0pOiBQcm9taXNlPGFueT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzY2hlbWEgPSBhd2FpdCB0aGlzLnBvU2NoZW1hRGVmaW5pdGlvbi5nZXQoZXZlbnRTb3VyY2luZ0l0ZW0uc2NoZW1hKTtcblxuICAgICAgY29uc3QgcmVjb3JkSWQgPSBldmVudFNvdXJjaW5nSXRlbS5yZWNvcmRbc2NoZW1hLmlkRmllbGRdO1xuICAgICAgdGhpcy5jaGVja1JlY29yZElkRXhpc3RzKHJlY29yZElkLCBQb0V2ZW50U291cmNpbmdPcGVyYXRpb24uRGVsZXRlKTtcblxuICAgICAgY29uc3QgdXJsID0gUG9FdmVudFNvdXJjaW5nU2VydmljZS5nZXRVcmwoZXZlbnRTb3VyY2luZ0l0ZW0sIHNjaGVtYSwgUG9SZXF1ZXN0VHlwZS5ERUxFVEUpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlbmRTZXJ2ZXJJdGVtKHVybCwgUG9IdHRwUmVxdWVzdFR5cGUuREVMRVRFKTtcblxuICAgICAgYXdhaXQgdGhpcy5yZW1vdmVFdmVudFNvdXJjaW5nVmFsaWRJdGVtKHJlc3BvbnNlLnN0YXR1cywgZXZlbnRTb3VyY2luZ0l0ZW0pO1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZW5kUmVzcG9uc2VTdWJqZWN0KGV2ZW50U291cmNpbmdJdGVtLCByZXNwb25zZSk7XG4gICAgfSBjYXRjaCAoZXJyb3JSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VuZFJlc3BvbnNlU3ViamVjdChldmVudFNvdXJjaW5nSXRlbSwgZXJyb3JSZXNwb25zZSwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkaWZmU2VydmVySXRlbXMoY3VycmVudFVybERpZmYpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxPYmplY3Q+PiB7XG4gICAgcmV0dXJuIHRoaXMucG9IdHRwQ2xpZW50LmdldChjdXJyZW50VXJsRGlmZik7XG4gIH1cblxuICBwcml2YXRlIGdldEJvZHlBbmREYXRlKHNjaGVtYU5hbWUsIHJlc3BvbnNlKTogYW55IHtcbiAgICBjb25zdCBnZXREYXRlRmllbGROYW1lID0gdGhpcy5jb25maWcuZGF0YVRyYW5zZm9ybS5nZXREYXRlRmllbGROYW1lKCk7XG5cbiAgICBjb25zdCByZXNwb25zZVN5bmNEYXRlID0gcmVzcG9uc2UuYm9keVtnZXREYXRlRmllbGROYW1lXTtcblxuICAgIHRoaXMuc2NoZW1hc1N5bmNDb25maWdbc2NoZW1hTmFtZV1bJ3Jlc3BvbnNlRGF0ZSddID0gcmVzcG9uc2VTeW5jRGF0ZTtcbiAgICByZXR1cm4gcmVzcG9uc2UuYm9keTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0U2VydmVyRGlmZlJlY29yZHMoc2NoZW1hOiBQb1N5bmNTY2hlbWEsIGJhc2VVcmw6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgaW5pdGlhbEFjdW11bGF0b3JQYWdlID0geyBlbnRpdHk6IHNjaGVtYS5uYW1lLCBkYXRhOiBbXSB9O1xuICAgIGNvbnN0IGRpZmZVcmwgPSB0aGlzLnNjaGVtYXNTeW5jQ29uZmlnW3NjaGVtYS5uYW1lXVsnY3VycmVudFVybERpZmYnXTtcblxuICAgIGNvbnN0IHNlcnZlclJlc3BvbnNlID0gYXdhaXQgdGhpcy5kaWZmU2VydmVySXRlbXMoZGlmZlVybClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzcG9uc2UgPT4gdGhpcy5nZXRCb2R5QW5kRGF0ZShzY2hlbWEubmFtZSwgcmVzcG9uc2UpKSxcbiAgICAgICAgZXhwYW5kKGRhdGEgPT4gdGhpcy5wYWdpbmF0ZVNjaGVtYURhdGEoZGF0YSwgc2NoZW1hLCBiYXNlVXJsKSksXG4gICAgICAgIHJlZHVjZShcbiAgICAgICAgICAocGFnZUFjdW11bGF0b3IsIHJlcXVlc3RCb2R5KSA9PiB0aGlzLmNvbmNhdFBhZ2VJdGVtcyhwYWdlQWN1bXVsYXRvciwgcmVxdWVzdEJvZHkpLFxuICAgICAgICAgIGluaXRpYWxBY3VtdWxhdG9yUGFnZVxuICAgICAgICApXG4gICAgICApXG4gICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICByZXR1cm4gc2VydmVyUmVzcG9uc2UuZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaHR0cE9wZXJhdGlvbihldmVudFNvdXJjaW5nSXRlbTogUG9FdmVudFNvdXJjaW5nSXRlbSk6IFByb21pc2U8QXJyYXk8UG9FdmVudFNvdXJjaW5nSXRlbT4gfCBudW1iZXI+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVxdWVzdERhdGE6IFBvSHR0cFJlcXVlc3REYXRhID0gYXdhaXQgdGhpcy5jcmVhdGVQb0h0dHBSZXF1ZXN0RGF0YShcbiAgICAgICAgZXZlbnRTb3VyY2luZ0l0ZW0ucmVjb3JkLnVybCxcbiAgICAgICAgZXZlbnRTb3VyY2luZ0l0ZW0ucmVjb3JkLm1ldGhvZCxcbiAgICAgICAgZXZlbnRTb3VyY2luZ0l0ZW0ucmVjb3JkLFxuICAgICAgICBldmVudFNvdXJjaW5nSXRlbS5yZWNvcmQuaGVhZGVyc1xuICAgICAgKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5wb0h0dHBDbGllbnQuY3JlYXRlUmVxdWVzdChyZXF1ZXN0RGF0YSkudG9Qcm9taXNlKCk7XG4gICAgICBjb25zdCBwb0h0dHBDb21tYW5kUmVzcG9uc2U6IFBvU3luY1Jlc3BvbnNlID0ge1xuICAgICAgICBpZDogZXZlbnRTb3VyY2luZ0l0ZW0uaWQsXG4gICAgICAgIGN1c3RvbVJlcXVlc3RJZDogZXZlbnRTb3VyY2luZ0l0ZW0uY3VzdG9tUmVxdWVzdElkLFxuICAgICAgICByZXF1ZXN0OiBldmVudFNvdXJjaW5nSXRlbS5yZWNvcmQsXG4gICAgICAgIHJlc3BvbnNlOiByZXNwb25zZVxuICAgICAgfTtcblxuICAgICAgdGhpcy5yZXNwb25zZVN1YmplY3QubmV4dChwb0h0dHBDb21tYW5kUmVzcG9uc2UpO1xuXG4gICAgICByZXR1cm4gdGhpcy5yZW1vdmVFdmVudFNvdXJjaW5nVmFsaWRJdGVtKHJlc3BvbnNlLnN0YXR1cywgZXZlbnRTb3VyY2luZ0l0ZW0pO1xuICAgIH0gY2F0Y2ggKGVycm9ySHR0cENsaWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VuZFJlc3BvbnNlU3ViamVjdChldmVudFNvdXJjaW5nSXRlbSwgZXJyb3JIdHRwQ2xpZW50LCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluc2VydEV2ZW50U291cmNpbmdRdWV1ZShldmVudFNvdXJjaW5nSXRlbSk6IFByb21pc2U8QXJyYXk8UG9FdmVudFNvdXJjaW5nSXRlbT4+IHtcbiAgICBjb25zdCBldmVudFNvdXJjaW5nVXBkYXRlZFF1ZXVlID0gYXdhaXQgdGhpcy5wb1N0b3JhZ2UuYXBwZW5kSXRlbVRvQXJyYXkoXG4gICAgICBQb0V2ZW50U291cmNpbmdTZXJ2aWNlLmV2ZW50X3NvdXJjaW5nX25hbWUsXG4gICAgICBldmVudFNvdXJjaW5nSXRlbVxuICAgICk7XG5cbiAgICB0aGlzLm5vdGlmeUV2ZW50Q3JlYXRpb24oKTtcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZXZlbnRTb3VyY2luZ1VwZGF0ZWRRdWV1ZSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluc2VydE9wZXJhdGlvbihjdXJyZW50RXZlbnRTb3VyY2luZ0l0ZW06IFBvRXZlbnRTb3VyY2luZ0l0ZW0pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IGF3YWl0IHRoaXMucG9TY2hlbWFEZWZpbml0aW9uLmdldChjdXJyZW50RXZlbnRTb3VyY2luZ0l0ZW0uc2NoZW1hKTtcbiAgICBjb25zdCB1cmwgPSBQb0V2ZW50U291cmNpbmdTZXJ2aWNlLmdldFVybChjdXJyZW50RXZlbnRTb3VyY2luZ0l0ZW0sIHNjaGVtYSwgUG9SZXF1ZXN0VHlwZS5QT1NUKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VuZFNlcnZlckl0ZW0odXJsLCBQb0h0dHBSZXF1ZXN0VHlwZS5QT1NULCBjdXJyZW50RXZlbnRTb3VyY2luZ0l0ZW0ucmVjb3JkKTtcbiAgICAgIGNvbnN0IHJlY29yZFVwZGF0ZWRCeVNlcnZlciA9IHJlc3BvbnNlLmJvZHk7XG5cbiAgICAgIGF3YWl0IHRoaXMucmVtb3ZlRXZlbnRTb3VyY2luZ1ZhbGlkSXRlbShyZXNwb25zZS5zdGF0dXMsIGN1cnJlbnRFdmVudFNvdXJjaW5nSXRlbSk7XG5cbiAgICAgIGNvbnN0IGlkID0gY3VycmVudEV2ZW50U291cmNpbmdJdGVtLnJlY29yZFtQb1NjaGVtYVV0aWwuc3luY0ludGVybmFsSWRGaWVsZE5hbWVdO1xuICAgICAgYXdhaXQgdGhpcy5wb1NjaGVtYVNlcnZpY2UudXBkYXRlKHNjaGVtYSwgcmVjb3JkVXBkYXRlZEJ5U2VydmVyLCBpZCk7XG5cbiAgICAgIGNvbnN0IGV2ZW50U291cmNpbmdJdGVtczogQXJyYXk8UG9FdmVudFNvdXJjaW5nSXRlbT4gPSBhd2FpdCB0aGlzLnBvU3RvcmFnZS5nZXQoXG4gICAgICAgIFBvRXZlbnRTb3VyY2luZ1NlcnZpY2UuZXZlbnRfc291cmNpbmdfbmFtZVxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlUGVuZGluZ0V2ZW50U291cmNpbmcoXG4gICAgICAgIGN1cnJlbnRFdmVudFNvdXJjaW5nSXRlbSxcbiAgICAgICAgc2NoZW1hLmlkRmllbGQsXG4gICAgICAgIHJlY29yZFVwZGF0ZWRCeVNlcnZlcixcbiAgICAgICAgZXZlbnRTb3VyY2luZ0l0ZW1zXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gdGhpcy5zZW5kUmVzcG9uc2VTdWJqZWN0KGN1cnJlbnRFdmVudFNvdXJjaW5nSXRlbSwgcmVzcG9uc2UpO1xuICAgIH0gY2F0Y2ggKGVycm9ySHR0cENsaWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VuZFJlc3BvbnNlU3ViamVjdChjdXJyZW50RXZlbnRTb3VyY2luZ0l0ZW0sIGVycm9ySHR0cENsaWVudCwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkU3RhdHVzKHN0YXR1czogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFBvRXZlbnRTb3VyY2luZ1NlcnZpY2UuVkFMSURfSFRUUF9TVEFUVVNfQ09ERVMuaW5jbHVkZXMoc3RhdHVzKTtcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZ5RXZlbnRDcmVhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbWl0dGVyKSB7XG4gICAgICB0aGlzLmVtaXR0ZXIubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFnaW5hdGVTY2hlbWFEYXRhKGRhdGEsIHNjaGVtYSwgYmFzZVVybCk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgIHRoaXMuY29uZmlnLmRhdGFUcmFuc2Zvcm0udHJhbnNmb3JtKGRhdGEpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGFUcmFuc2Zvcm0uaGFzTmV4dCgpKSB7XG4gICAgICB0aGlzLnNjaGVtYXNTeW5jQ29uZmlnW3NjaGVtYS5uYW1lXVsnY3VycmVudFVybERpZmYnXSA9IHRoaXMuYnVpbGRVcmxQYXJhbXMoXG4gICAgICAgIHNjaGVtYSxcbiAgICAgICAgYmFzZVVybCxcbiAgICAgICAgKyt0aGlzLnNjaGVtYXNTeW5jQ29uZmlnW3NjaGVtYS5uYW1lXVsncGFnZSddXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gdGhpcy5kaWZmU2VydmVySXRlbXModGhpcy5zY2hlbWFzU3luY0NvbmZpZ1tzY2hlbWEubmFtZV1bJ2N1cnJlbnRVcmxEaWZmJ10pLnBpcGUoXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiB0aGlzLmdldEJvZHlBbmREYXRlKHNjaGVtYS5uYW1lLCByZXNwb25zZSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBvZigpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVFdmVudFNvdXJjaW5nVmFsaWRJdGVtKFxuICAgIHN0YXR1cyxcbiAgICBldmVudFNvdXJjaW5nSXRlbTogUG9FdmVudFNvdXJjaW5nSXRlbVxuICApOiBQcm9taXNlPEFycmF5PFBvRXZlbnRTb3VyY2luZ0l0ZW0+PiB7XG4gICAgaWYgKHRoaXMuaXNWYWxpZFN0YXR1cyhzdGF0dXMpIHx8IGV2ZW50U291cmNpbmdJdGVtLm9wZXJhdGlvbiA9PT0gUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkh0dHApIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbW92ZUV2ZW50U291cmNpbmdJdGVtKGV2ZW50U291cmNpbmdJdGVtLmlkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdE9wZXJhdGlvbihldmVudFNvdXJjaW5nSXRlbTogUG9FdmVudFNvdXJjaW5nSXRlbSk6IFByb21pc2U8YW55PiB7XG4gICAgc3dpdGNoIChldmVudFNvdXJjaW5nSXRlbS5vcGVyYXRpb24pIHtcbiAgICAgIGNhc2UgUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkluc2VydDpcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5zZXJ0T3BlcmF0aW9uKGV2ZW50U291cmNpbmdJdGVtKTtcblxuICAgICAgY2FzZSBQb0V2ZW50U291cmNpbmdPcGVyYXRpb24uVXBkYXRlOlxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVPcGVyYXRpb24oZXZlbnRTb3VyY2luZ0l0ZW0pO1xuXG4gICAgICBjYXNlIFBvRXZlbnRTb3VyY2luZ09wZXJhdGlvbi5EZWxldGU6XG4gICAgICAgIHJldHVybiB0aGlzLmRlbGV0ZU9wZXJhdGlvbihldmVudFNvdXJjaW5nSXRlbSk7XG5cbiAgICAgIGNhc2UgUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uLkh0dHA6XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBPcGVyYXRpb24oZXZlbnRTb3VyY2luZ0l0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VuZFJlc3BvbnNlU3ViamVjdChcbiAgICBldmVudFNvdXJjaW5nSXRlbTogUG9FdmVudFNvdXJjaW5nSXRlbSxcbiAgICByZXNwb25zZTogSHR0cFJlc3BvbnNlPE9iamVjdD4gfCBIdHRwRXJyb3JSZXNwb25zZSB8IFBvRXZlbnRTb3VyY2luZ0Vycm9yUmVzcG9uc2UsXG4gICAgaXNTdWJqZWN0RXJyb3I6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHBvU3luY1Jlc3BvbnNlOiBQb1N5bmNSZXNwb25zZSA9IHtcbiAgICAgIGlkOiBldmVudFNvdXJjaW5nSXRlbS5pZCxcbiAgICAgIGN1c3RvbVJlcXVlc3RJZDogZXZlbnRTb3VyY2luZ0l0ZW0uY3VzdG9tUmVxdWVzdElkLFxuICAgICAgcmVxdWVzdDogZXZlbnRTb3VyY2luZ0l0ZW0ucmVjb3JkLFxuICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlXG4gICAgfTtcblxuICAgIHRoaXMuc3RvcHBlZFF1ZXVlRXZlbnRTb3VyY2luZyA9IGlzU3ViamVjdEVycm9yO1xuICAgIHRoaXMucmVzcG9uc2VTdWJqZWN0Lm5leHQocG9TeW5jUmVzcG9uc2UpO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZW5kU2VydmVySXRlbSh1cmw6IHN0cmluZywgbWV0aG9kOiBQb0h0dHBSZXF1ZXN0VHlwZSwgYm9keT86IFBvRXZlbnRTb3VyY2luZ0l0ZW1bJ3JlY29yZCddKSB7XG4gICAgY29uc3QgcmVxdWVzdERhdGE6IFBvSHR0cFJlcXVlc3REYXRhID0gYXdhaXQgdGhpcy5jcmVhdGVQb0h0dHBSZXF1ZXN0RGF0YSh1cmwsIG1ldGhvZCwgYm9keSk7XG5cbiAgICByZXR1cm4gdGhpcy5wb0h0dHBDbGllbnQuY3JlYXRlUmVxdWVzdChyZXF1ZXN0RGF0YSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZVBvSHR0cFJlcXVlc3REYXRhKFxuICAgIHVybDogc3RyaW5nLFxuICAgIG1ldGhvZDogUG9IdHRwUmVxdWVzdFR5cGUsXG4gICAgcmVjb3JkPzogUG9FdmVudFNvdXJjaW5nSXRlbVsncmVjb3JkJ10sXG4gICAgaGVhZGVycz86IEFycmF5PFBvSHR0cEhlYWRlck9wdGlvbj5cbiAgKTogUHJvbWlzZTxQb0h0dHBSZXF1ZXN0RGF0YT4ge1xuICAgIGxldCBib2R5ID0gcmVjb3JkLmJvZHkgPz8gcmVjb3JkO1xuXG4gICAgaWYgKHJlY29yZC5ib2R5VHlwZSA9PT0gJ0ZpbGUnKSB7XG4gICAgICBib2R5ID0gYXdhaXQgdGhpcy5jcmVhdGVGb3JtRGF0YShib2R5LCByZWNvcmQuZmlsZU5hbWUsIHJlY29yZC5taW1lVHlwZSwgcmVjb3JkLmZvcm1GaWVsZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgdXJsLCBtZXRob2QsIGJvZHksIGhlYWRlcnMgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlRm9ybURhdGEoXG4gICAgYm9keTogc3RyaW5nLFxuICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgbWltZVR5cGU6IHN0cmluZyxcbiAgICBmb3JtRmllbGQ6IHN0cmluZyA9ICdmaWxlJ1xuICApOiBQcm9taXNlPEZvcm1EYXRhPiB7XG4gICAgY29uc3QgZmlsZSA9IGF3YWl0IHRvRmlsZShib2R5LCBmaWxlTmFtZSwgbWltZVR5cGUpO1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgZm9ybURhdGEuYXBwZW5kKGZvcm1GaWVsZCwgZmlsZSwgZmlsZU5hbWUpO1xuICAgIHJldHVybiBmb3JtRGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlT3BlcmF0aW9uKGV2ZW50U291cmNpbmdJdGVtOiBQb0V2ZW50U291cmNpbmdJdGVtKTogUHJvbWlzZTxBcnJheTxhbnk+IHwgbnVtYmVyPiB7XG4gICAgY29uc3Qgc2NoZW1hID0gYXdhaXQgdGhpcy5wb1NjaGVtYURlZmluaXRpb24uZ2V0KGV2ZW50U291cmNpbmdJdGVtLnNjaGVtYSk7XG4gICAgY29uc3QgdXJsID0gUG9FdmVudFNvdXJjaW5nU2VydmljZS5nZXRVcmwoZXZlbnRTb3VyY2luZ0l0ZW0sIHNjaGVtYSwgUG9SZXF1ZXN0VHlwZS5QQVRDSCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVjb3JkSWQgPSBldmVudFNvdXJjaW5nSXRlbS5yZWNvcmRbc2NoZW1hLmlkRmllbGRdO1xuICAgICAgdGhpcy5jaGVja1JlY29yZElkRXhpc3RzKHJlY29yZElkLCBQb0V2ZW50U291cmNpbmdPcGVyYXRpb24uVXBkYXRlKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlbmRTZXJ2ZXJJdGVtKHVybCwgUG9IdHRwUmVxdWVzdFR5cGUuUFVULCBldmVudFNvdXJjaW5nSXRlbS5yZWNvcmQpO1xuICAgICAgYXdhaXQgdGhpcy5yZW1vdmVFdmVudFNvdXJjaW5nVmFsaWRJdGVtKHJlc3BvbnNlLnN0YXR1cywgZXZlbnRTb3VyY2luZ0l0ZW0pO1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZW5kUmVzcG9uc2VTdWJqZWN0KGV2ZW50U291cmNpbmdJdGVtLCByZXNwb25zZSk7XG4gICAgfSBjYXRjaCAoZXJyb3JIdHRwQ2xpZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5zZW5kUmVzcG9uc2VTdWJqZWN0KGV2ZW50U291cmNpbmdJdGVtLCBlcnJvckh0dHBDbGllbnQsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGVuZGluZ0V2ZW50U291cmNpbmcoXG4gICAgY3VycmVudEV2ZW50U291cmNpbmdJdGVtOiBQb0V2ZW50U291cmNpbmdJdGVtLFxuICAgIGlkRmllbGRTY2hlbWE6IHN0cmluZyxcbiAgICBpbnNlcnRlZDogb2JqZWN0LFxuICAgIGV2ZW50U291cmNpbmdJdGVtczogQXJyYXk8UG9FdmVudFNvdXJjaW5nSXRlbT5cbiAgKSB7XG4gICAgaWYgKGN1cnJlbnRFdmVudFNvdXJjaW5nSXRlbS5yZWNvcmRbUG9TY2hlbWFVdGlsLnN5bmNJbnRlcm5hbElkRmllbGROYW1lXSkge1xuICAgICAgZXZlbnRTb3VyY2luZ0l0ZW1zLmZvckVhY2goKGV2ZW50U291cmNpbmdJdGVtLCBwb3NpdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBpc0N1cnJlbnRFdmVudFNvdXJjaW5nSXRlbSA9XG4gICAgICAgICAgIWV2ZW50U291cmNpbmdJdGVtLnJlY29yZFtpZEZpZWxkU2NoZW1hXSAmJlxuICAgICAgICAgIGV2ZW50U291cmNpbmdJdGVtLnJlY29yZFtQb1NjaGVtYVV0aWwuc3luY0ludGVybmFsSWRGaWVsZE5hbWVdID09PVxuICAgICAgICAgICAgY3VycmVudEV2ZW50U291cmNpbmdJdGVtLnJlY29yZFtQb1NjaGVtYVV0aWwuc3luY0ludGVybmFsSWRGaWVsZE5hbWVdO1xuXG4gICAgICAgIGlmIChpc0N1cnJlbnRFdmVudFNvdXJjaW5nSXRlbSkge1xuICAgICAgICAgIGV2ZW50U291cmNpbmdJdGVtc1twb3NpdGlvbl0ucmVjb3JkW2lkRmllbGRTY2hlbWFdID0gaW5zZXJ0ZWRbaWRGaWVsZFNjaGVtYV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdGhpcy5wb1N0b3JhZ2Uuc2V0KFBvRXZlbnRTb3VyY2luZ1NlcnZpY2UuZXZlbnRfc291cmNpbmdfbmFtZSwgZXZlbnRTb3VyY2luZ0l0ZW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlUmVjb3JkcyhzZXJ2ZXJSZWNvcmRzOiBBcnJheTxhbnk+LCBzY2hlbWE6IFBvU3luY1NjaGVtYSkge1xuICAgIGZvciAoY29uc3Qgc2VydmVyUmVjb3JkIG9mIHNlcnZlclJlY29yZHMpIHtcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlUmVjb3JkQnlTZXJ2ZXJSZWNvcmQoc2VydmVyUmVjb3JkLCBzY2hlbWEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlUmVjb3JkQnlTZXJ2ZXJSZWNvcmQoc2VydmVyUmVjb3JkLCBzY2hlbWEpIHtcbiAgICBjb25zdCByZWNvcmRJZCA9IHNlcnZlclJlY29yZFtzY2hlbWEuaWRGaWVsZF07XG4gICAgY29uc3Qgc3RvcmFnZVJlY29yZCA9IGF3YWl0IHRoaXMucG9TY2hlbWFTZXJ2aWNlLmdldChzY2hlbWEubmFtZSwgcmVjb3JkSWQpO1xuICAgIGNvbnN0IGV4aXN0c1N0b3JhZ2VSZWNvcmQgPSAhIU9iamVjdC5rZXlzKHN0b3JhZ2VSZWNvcmQpLmxlbmd0aDtcblxuICAgIGlmIChleGlzdHNTdG9yYWdlUmVjb3JkICYmIHNlcnZlclJlY29yZFtzY2hlbWEuZGVsZXRlZEZpZWxkXSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucG9TY2hlbWFTZXJ2aWNlLnJlbW92ZShzY2hlbWEubmFtZSwgc2VydmVyUmVjb3JkW3NjaGVtYS5pZEZpZWxkXSk7XG4gICAgfVxuXG4gICAgaWYgKGV4aXN0c1N0b3JhZ2VSZWNvcmQgJiYgIXNlcnZlclJlY29yZFtzY2hlbWEuZGVsZXRlZEZpZWxkXSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucG9TY2hlbWFTZXJ2aWNlLnVwZGF0ZShzY2hlbWEsIHNlcnZlclJlY29yZCk7XG4gICAgfVxuXG4gICAgaWYgKCFleGlzdHNTdG9yYWdlUmVjb3JkICYmICFzZXJ2ZXJSZWNvcmRbc2NoZW1hLmRlbGV0ZWRGaWVsZF0pIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnBvU2NoZW1hU2VydmljZS5jcmVhdGUoc2NoZW1hLCBzZXJ2ZXJSZWNvcmQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlU3RvcmFnZUJ5U2NoZW1hKHNjaGVtYTogUG9TeW5jU2NoZW1hKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0aGlzLmNyZWF0ZVNjaGVtYVN5bmNDb25maWcoc2NoZW1hLm5hbWUpO1xuXG4gICAgdGhpcy5zY2hlbWFzU3luY0NvbmZpZ1tzY2hlbWEubmFtZV1bJ3BhZ2UnXSA9IDE7XG4gICAgY29uc3QgYmFzZVVybCA9IGAke1BvU2NoZW1hVXRpbC5nZXRVcmwoc2NoZW1hLCBQb1JlcXVlc3RUeXBlLkRJRkYpfS8ke3NjaGVtYS5sYXN0U3luY31gO1xuICAgIHRoaXMuc2NoZW1hc1N5bmNDb25maWdbc2NoZW1hLm5hbWVdWydjdXJyZW50VXJsRGlmZiddID0gdGhpcy5idWlsZFVybFBhcmFtcyhcbiAgICAgIHNjaGVtYSxcbiAgICAgIGJhc2VVcmwsXG4gICAgICB0aGlzLnNjaGVtYXNTeW5jQ29uZmlnW3NjaGVtYS5uYW1lXVsncGFnZSddXG4gICAgKTtcblxuICAgIGNvbnN0IHNlcnZlclJlY29yZHMgPSBhd2FpdCB0aGlzLmdldFNlcnZlckRpZmZSZWNvcmRzKHNjaGVtYSwgYmFzZVVybCk7XG5cbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVJlY29yZHMoc2VydmVyUmVjb3Jkcywgc2NoZW1hKTtcblxuICAgIHNjaGVtYS5sYXN0U3luYyA9IHRoaXMuc2NoZW1hc1N5bmNDb25maWdbc2NoZW1hLm5hbWVdWydyZXNwb25zZURhdGUnXTtcbiAgICBhd2FpdCB0aGlzLnBvU2NoZW1hRGVmaW5pdGlvbi51cGRhdGUoc2NoZW1hKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RvcmFnZVNjaGVtYXMoc2NoZW1hcyk6IEFycmF5PFByb21pc2U8QXJyYXk8YW55Pj4+IHtcbiAgICByZXR1cm4gc2NoZW1hcy5tYXAoKHNjaGVtYTogUG9TeW5jU2NoZW1hKSA9PiB0aGlzLnVwZGF0ZVN0b3JhZ2VCeVNjaGVtYShzY2hlbWEpKTtcbiAgfVxufVxuIl19
|
|
@@ -146,4 +146,4 @@ export class PoHttpClientService {
|
|
|
146
146
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoHttpClientService, [{
|
|
147
147
|
type: Injectable
|
|
148
148
|
}], () => [{ type: i1.HttpClient }], null); })();
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taHR0cC1jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5bmMvc3JjL2xpYi9zZXJ2aWNlcy9wby1odHRwLWNsaWVudC9wby1odHRwLWNsaWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0zQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRWhFOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7SUFDVjtJQUFwQixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQztJQUU5Qzs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxtQkFBc0M7UUFDbEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLEdBQUcsRUFBRTtZQUNsRixPQUFPLEVBQUUsVUFBVTtZQUNuQixPQUFPLEVBQUUsV0FBVztZQUNwQixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsR0FBVyxFQUFFLFdBQXVDO1FBQ3pELE1BQU0sV0FBVyxHQUFzQjtZQUNyQyxHQUFHLEVBQUUsR0FBRztZQUNSLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO1lBQ2hDLE9BQU8sRUFBRSxXQUFXO1NBQ3JCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsR0FBRyxDQUFDLEdBQVcsRUFBRSxXQUF1QztRQUN0RCxNQUFNLFdBQVcsR0FBc0I7WUFDckMsR0FBRyxFQUFFLEdBQUc7WUFDUixNQUFNLEVBQUUsaUJBQWlCLENBQUMsR0FBRztZQUM3QixPQUFPLEVBQUUsV0FBVztTQUNyQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxHQUFXLEVBQUUsV0FBdUM7UUFDdkQsTUFBTSxXQUFXLEdBQXNCO1lBQ3JDLEdBQUcsRUFBRSxHQUFHO1lBQ1IsTUFBTSxFQUFFLGlCQUFpQixDQUFDLElBQUk7WUFDOUIsT0FBTyxFQUFFLFdBQVc7U0FDckIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsR0FBVyxFQUFFLFdBQXVDO1FBQzFELE1BQU0sV0FBVyxHQUFzQjtZQUNyQyxHQUFHLEVBQUUsR0FBRztZQUNSLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPO1lBQ2pDLE9BQU8sRUFBRSxXQUFXO1NBQ3JCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxHQUFXLEVBQUUsSUFBVSxFQUFFLFdBQXVDO1FBQ3BFLE1BQU0sV0FBVyxHQUFzQjtZQUNyQyxHQUFHLEVBQUUsR0FBRztZQUNSLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO1lBQy9CLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLEdBQVcsRUFBRSxJQUFVLEVBQUUsV0FBdUM7UUFDbkUsTUFBTSxXQUFXLEdBQXNCO1lBQ3JDLEdBQUcsRUFBRSxHQUFHO1lBQ1IsTUFBTSxFQUFFLGlCQUFpQixDQUFDLElBQUk7WUFDOUIsT0FBTyxFQUFFLFdBQVc7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxHQUFHLENBQUMsR0FBVyxFQUFFLElBQVUsRUFBRSxXQUF1QztRQUNsRSxNQUFNLFdBQVcsR0FBc0I7WUFDckMsR0FBRyxFQUFFLEdBQUc7WUFDUixNQUFNLEVBQUUsaUJBQWlCLENBQUMsR0FBRztZQUM3QixPQUFPLEVBQUUsV0FBVztZQUNwQixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLGlCQUFpQixDQUFDLHNCQUFzQjtRQUM5QyxJQUFJLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRXBDLElBQUksc0JBQXNCLElBQUksc0JBQXNCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvRCxzQkFBc0IsQ0FBQyxPQUFPLENBQzVCLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUMxRixDQUFDO1NBQ0g7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzZFQTdJVSxtQkFBbUI7Z0VBQW5CLG1CQUFtQixXQUFuQixtQkFBbUI7O2lGQUFuQixtQkFBbUI7Y0FEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUG9IdHRwSGVhZGVyT3B0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWh0dHAtaGVhZGVyLW9wdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9IdHRwUmVxdWVzdERhdGEgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8taHR0cC1yZXF1ZXN0LWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvSHR0cFJlcXVlc3RUeXBlIH0gZnJvbSAnLi9wby1odHRwLXJlcXVlc3QtdHlwZS5lbnVtJztcblxuLyoqXG4gKiBAZG9jc1ByaXZhdGVcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBTZXJ2acOnbyBwYXJhIGV4ZWN1w6fDo28gZGUgcmVxdWlzacOnw7VlcyBIVFRQLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUG9IdHRwQ2xpZW50U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkge31cblxuICAvKipcbiAgICogQ29uc3Ryw7NpIHVtYSByZXF1aXNpw6fDo28gSFRUUCBwZXJzb25hbGl6YWRhLlxuICAgKlxuICAgKiBAcGFyYW0ge1BvSHR0cFJlcXVlc3REYXRhfSBwb0h0dHBPcGVyYXRpb25EYXRhIFBhcsOibWV0cm9zIHBhcmEgYSBjb25zdHJ1w6fDo29cbiAgICogZGEgcmVxdWlzacOnw6NvLlxuICAgKi9cbiAgY3JlYXRlUmVxdWVzdChwb0h0dHBPcGVyYXRpb25EYXRhOiBQb0h0dHBSZXF1ZXN0RGF0YSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPE9iamVjdD4+IHtcbiAgICBjb25zdCBodHRwSGVhZGVycyA9IHRoaXMuY3JlYXRlSHR0cEhlYWRlcnMocG9IdHRwT3BlcmF0aW9uRGF0YS5oZWFkZXJzKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdChwb0h0dHBPcGVyYXRpb25EYXRhLm1ldGhvZCwgcG9IdHRwT3BlcmF0aW9uRGF0YS51cmwsIHtcbiAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXG4gICAgICBoZWFkZXJzOiBodHRwSGVhZGVycyxcbiAgICAgIGJvZHk6IHBvSHR0cE9wZXJhdGlvbkRhdGEuYm9keVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0csOzaSB1bWEgcmVxdWlzacOnw6NvIGNvbSBvIG3DqXRvZG8gYGRlbGV0ZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVVJMIGRhIHJlcXVpc2nDp8Ojby5cbiAgICogQHBhcmFtIHtBcnJheTxQb0hlYWRlck9wdGlvbj59IGh0dHBIZWFkZXJzIENhYmXDp2FsaG9zIGRhIHJlcXVpc2nDp8Ojby5cbiAgICovXG4gIGRlbGV0ZSh1cmw6IHN0cmluZywgaHR0cEhlYWRlcnM/OiBBcnJheTxQb0h0dHBIZWFkZXJPcHRpb24+KSB7XG4gICAgY29uc3QgcmVxdWVzdERhdGE6IFBvSHR0cFJlcXVlc3REYXRhID0ge1xuICAgICAgdXJsOiB1cmwsXG4gICAgICBtZXRob2Q6IFBvSHR0cFJlcXVlc3RUeXBlLkRFTEVURSxcbiAgICAgIGhlYWRlcnM6IGh0dHBIZWFkZXJzXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXF1ZXN0KHJlcXVlc3REYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHLDs2kgdW1hIHJlcXVpc2nDp8OjbyBjb20gbyBtw6l0b2RvIGBnZXRgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXG4gICAqIEBwYXJhbSB7QXJyYXk8UG9IZWFkZXJPcHRpb24+fSBodHRwSGVhZGVycyBDYWJlw6dhbGhvcyBkYSByZXF1aXNpw6fDo28uXG4gICAqL1xuICBnZXQodXJsOiBzdHJpbmcsIGh0dHBIZWFkZXJzPzogQXJyYXk8UG9IdHRwSGVhZGVyT3B0aW9uPikge1xuICAgIGNvbnN0IHJlcXVlc3REYXRhOiBQb0h0dHBSZXF1ZXN0RGF0YSA9IHtcbiAgICAgIHVybDogdXJsLFxuICAgICAgbWV0aG9kOiBQb0h0dHBSZXF1ZXN0VHlwZS5HRVQsXG4gICAgICBoZWFkZXJzOiBodHRwSGVhZGVyc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVxdWVzdChyZXF1ZXN0RGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3Ryw7NpIHVtYSByZXF1aXNpw6fDo28gY29tIG8gbcOpdG9kbyBgaGVhZGAuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVVJMIGRhIHJlcXVpc2nDp8Ojby5cbiAgICogQHBhcmFtIHtBcnJheTxQb0hlYWRlck9wdGlvbj59IGh0dHBIZWFkZXJzIENhYmXDp2FsaG9zIGRhIHJlcXVpc2nDp8Ojby5cbiAgICovXG4gIGhlYWQodXJsOiBzdHJpbmcsIGh0dHBIZWFkZXJzPzogQXJyYXk8UG9IdHRwSGVhZGVyT3B0aW9uPikge1xuICAgIGNvbnN0IHJlcXVlc3REYXRhOiBQb0h0dHBSZXF1ZXN0RGF0YSA9IHtcbiAgICAgIHVybDogdXJsLFxuICAgICAgbWV0aG9kOiBQb0h0dHBSZXF1ZXN0VHlwZS5IRUFELFxuICAgICAgaGVhZGVyczogaHR0cEhlYWRlcnNcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlcXVlc3QocmVxdWVzdERhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0csOzaSB1bWEgcmVxdWlzacOnw6NvIGNvbSBvIG3DqXRvZG8gYG9wdGlvbnNgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXG4gICAqIEBwYXJhbSB7QXJyYXk8UG9IZWFkZXJPcHRpb24+fSBodHRwSGVhZGVycyBDYWJlw6dhbGhvcyBkYSByZXF1aXNpw6fDo28uXG4gICAqL1xuICBvcHRpb25zKHVybDogc3RyaW5nLCBodHRwSGVhZGVycz86IEFycmF5PFBvSHR0cEhlYWRlck9wdGlvbj4pIHtcbiAgICBjb25zdCByZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEgPSB7XG4gICAgICB1cmw6IHVybCxcbiAgICAgIG1ldGhvZDogUG9IdHRwUmVxdWVzdFR5cGUuT1BUSU9OUyxcbiAgICAgIGhlYWRlcnM6IGh0dHBIZWFkZXJzXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXF1ZXN0KHJlcXVlc3REYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHLDs2kgdW1hIHJlcXVpc2nDp8OjbyBjb20gbyBtw6l0b2RvIGBwYXRjaGAuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVVJMIGRhIHJlcXVpc2nDp8Ojby5cbiAgICogQHBhcmFtIHthbnl9IGJvZHkgQ29ycG8gZGEgcmVxdWlzacOnw6NvLlxuICAgKiBAcGFyYW0ge0FycmF5PFBvSGVhZGVyT3B0aW9uPn0gaHR0cEhlYWRlcnMgQ2FiZcOnYWxob3MgZGEgcmVxdWlzacOnw6NvLlxuICAgKi9cbiAgcGF0Y2godXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIGh0dHBIZWFkZXJzPzogQXJyYXk8UG9IdHRwSGVhZGVyT3B0aW9uPikge1xuICAgIGNvbnN0IHJlcXVlc3REYXRhOiBQb0h0dHBSZXF1ZXN0RGF0YSA9IHtcbiAgICAgIHVybDogdXJsLFxuICAgICAgbWV0aG9kOiBQb0h0dHBSZXF1ZXN0VHlwZS5QQVRDSCxcbiAgICAgIGhlYWRlcnM6IGh0dHBIZWFkZXJzLFxuICAgICAgYm9keTogYm9keVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVxdWVzdChyZXF1ZXN0RGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3Ryw7NpIHVtYSByZXF1aXNpw6fDo28gY29tIG8gbcOpdG9kbyBgcG9zdGAuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVVJMIGRhIHJlcXVpc2nDp8Ojby5cbiAgICogQHBhcmFtIHthbnl9IGJvZHkgQ29ycG8gZGEgcmVxdWlzacOnw6NvLlxuICAgKiBAcGFyYW0ge0FycmF5PFBvSGVhZGVyT3B0aW9uPn0gaHR0cEhlYWRlcnMgQ2FiZcOnYWxob3MgZGEgcmVxdWlzacOnw6NvLlxuICAgKi9cbiAgcG9zdCh1cmw6IHN0cmluZywgYm9keT86IGFueSwgaHR0cEhlYWRlcnM/OiBBcnJheTxQb0h0dHBIZWFkZXJPcHRpb24+KSB7XG4gICAgY29uc3QgcmVxdWVzdERhdGE6IFBvSHR0cFJlcXVlc3REYXRhID0ge1xuICAgICAgdXJsOiB1cmwsXG4gICAgICBtZXRob2Q6IFBvSHR0cFJlcXVlc3RUeXBlLlBPU1QsXG4gICAgICBoZWFkZXJzOiBodHRwSGVhZGVycyxcbiAgICAgIGJvZHk6IGJvZHlcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlcXVlc3QocmVxdWVzdERhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0csOzaSB1bWEgcmVxdWlzacOnw6NvIGNvbSBvIG3DqXRvZG8gYHB1dGAuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVVJMIGRhIHJlcXVpc2nDp8Ojby5cbiAgICogQHBhcmFtIHthbnl9IGJvZHkgQ29ycG8gZGEgcmVxdWlzacOnw6NvLlxuICAgKiBAcGFyYW0ge0FycmF5PFBvSGVhZGVyT3B0aW9uPn0gaHR0cEhlYWRlcnMgQ2FiZcOnYWxob3MgZGEgcmVxdWlzacOnw6NvLlxuICAgKi9cbiAgcHV0KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBodHRwSGVhZGVycz86IEFycmF5PFBvSHR0cEhlYWRlck9wdGlvbj4pIHtcbiAgICBjb25zdCByZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEgPSB7XG4gICAgICB1cmw6IHVybCxcbiAgICAgIG1ldGhvZDogUG9IdHRwUmVxdWVzdFR5cGUuUFVULFxuICAgICAgaGVhZGVyczogaHR0cEhlYWRlcnMsXG4gICAgICBib2R5OiBib2R5XG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlcXVlc3QocmVxdWVzdERhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIdHRwSGVhZGVycyhwb0h0dHBPcGVyYXRpb25IZWFkZXJzKSB7XG4gICAgbGV0IGh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG5cbiAgICBpZiAocG9IdHRwT3BlcmF0aW9uSGVhZGVycyAmJiBwb0h0dHBPcGVyYXRpb25IZWFkZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHBvSHR0cE9wZXJhdGlvbkhlYWRlcnMuZm9yRWFjaChcbiAgICAgICAgcG9IdHRwSGVhZGVyID0+IChodHRwSGVhZGVycyA9IGh0dHBIZWFkZXJzLmFwcGVuZChwb0h0dHBIZWFkZXIubmFtZSwgcG9IdHRwSGVhZGVyLnZhbHVlKSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0dHBIZWFkZXJzO1xuICB9XG59XG4iXX0=
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taHR0cC1jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5bmMvc3JjL2xpYi9zZXJ2aWNlcy9wby1odHRwLWNsaWVudC9wby1odHRwLWNsaWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0zQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRWhFOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7SUFDVjtJQUFwQixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQztJQUU5Qzs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxtQkFBc0M7UUFDbEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLEdBQUcsRUFBRTtZQUNsRixPQUFPLEVBQUUsVUFBVTtZQUNuQixPQUFPLEVBQUUsV0FBVztZQUNwQixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsR0FBVyxFQUFFLFdBQXVDO1FBQ3pELE1BQU0sV0FBVyxHQUFzQjtZQUNyQyxHQUFHLEVBQUUsR0FBRztZQUNSLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO1lBQ2hDLE9BQU8sRUFBRSxXQUFXO1NBQ3JCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxD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IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFBvSHR0cEhlYWRlck9wdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1odHRwLWhlYWRlci1vcHRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvSHR0cFJlcXVlc3REYXRhIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWh0dHAtcmVxdWVzdC1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0h0dHBSZXF1ZXN0VHlwZSB9IGZyb20gJy4vcG8taHR0cC1yZXF1ZXN0LXR5cGUuZW51bSc7XG5cbi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogU2VydmnDp28gcGFyYSBleGVjdcOnw6NvIGRlIHJlcXVpc2nDp8O1ZXMgSFRUUC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBvSHR0cENsaWVudFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XG5cbiAgLyoqXG4gICAqIENvbnN0csOzaSB1bWEgcmVxdWlzacOnw6NvIEhUVFAgcGVyc29uYWxpemFkYS5cbiAgICpcbiAgICogQHBhcmFtIHtQb0h0dHBSZXF1ZXN0RGF0YX0gcG9IdHRwT3BlcmF0aW9uRGF0YSBQYXLDom1ldHJvcyBwYXJhIGEgY29uc3RydcOnw6NvXG4gICAqIGRhIHJlcXVpc2nDp8Ojby5cbiAgICovXG4gIGNyZWF0ZVJlcXVlc3QocG9IdHRwT3BlcmF0aW9uRGF0YTogUG9IdHRwUmVxdWVzdERhdGEpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxPYmplY3Q+PiB7XG4gICAgY29uc3QgaHR0cEhlYWRlcnMgPSB0aGlzLmNyZWF0ZUh0dHBIZWFkZXJzKHBvSHR0cE9wZXJhdGlvbkRhdGEuaGVhZGVycyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3QocG9IdHRwT3BlcmF0aW9uRGF0YS5tZXRob2QsIHBvSHR0cE9wZXJhdGlvbkRhdGEudXJsLCB7XG4gICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxuICAgICAgaGVhZGVyczogaHR0cEhlYWRlcnMsXG4gICAgICBib2R5OiBwb0h0dHBPcGVyYXRpb25EYXRhLmJvZHlcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHLDs2kgdW1hIHJlcXVpc2nDp8OjbyBjb20gbyBtw6l0b2RvIGBkZWxldGVgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXG4gICAqIEBwYXJhbSB7QXJyYXk8UG9IZWFkZXJPcHRpb24+fSBodHRwSGVhZGVycyBDYWJlw6dhbGhvcyBkYSByZXF1aXNpw6fDo28uXG4gICAqL1xuICBkZWxldGUodXJsOiBzdHJpbmcsIGh0dHBIZWFkZXJzPzogQXJyYXk8UG9IdHRwSGVhZGVyT3B0aW9uPikge1xuICAgIGNvbnN0IHJlcXVlc3REYXRhOiBQb0h0dHBSZXF1ZXN0RGF0YSA9IHtcbiAgICAgIHVybDogdXJsLFxuICAgICAgbWV0aG9kOiBQb0h0dHBSZXF1ZXN0VHlwZS5ERUxFVEUsXG4gICAgICBoZWFkZXJzOiBodHRwSGVhZGVyc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVxdWVzdChyZXF1ZXN0RGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3Ryw7NpIHVtYSByZXF1aXNpw6fDo28gY29tIG8gbcOpdG9kbyBgZ2V0YC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCBVUkwgZGEgcmVxdWlzacOnw6NvLlxuICAgKiBAcGFyYW0ge0FycmF5PFBvSGVhZGVyT3B0aW9uPn0gaHR0cEhlYWRlcnMgQ2FiZcOnYWxob3MgZGEgcmVxdWlzacOnw6NvLlxuICAgKi9cbiAgZ2V0KHVybDogc3RyaW5nLCBodHRwSGVhZGVycz86IEFycmF5PFBvSHR0cEhlYWRlck9wdGlvbj4pIHtcbiAgICBjb25zdCByZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEgPSB7XG4gICAgICB1cmw6IHVybCxcbiAgICAgIG1ldGhvZDogUG9IdHRwUmVxdWVzdFR5cGUuR0VULFxuICAgICAgaGVhZGVyczogaHR0cEhlYWRlcnNcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlcXVlc3QocmVxdWVzdERhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0csOzaSB1bWEgcmVxdWlzacOnw6NvIGNvbSBvIG3DqXRvZG8gYGhlYWRgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXG4gICAqIEBwYXJhbSB7QXJyYXk8UG9IZWFkZXJPcHRpb24+fSBodHRwSGVhZGVycyBDYWJlw6dhbGhvcyBkYSByZXF1aXNpw6fDo28uXG4gICAqL1xuICBoZWFkKHVybDogc3RyaW5nLCBodHRwSGVhZGVycz86IEFycmF5PFBvSHR0cEhlYWRlck9wdGlvbj4pIHtcbiAgICBjb25zdCByZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEgPSB7XG4gICAgICB1cmw6IHVybCxcbiAgICAgIG1ldGhvZDogUG9IdHRwUmVxdWVzdFR5cGUuSEVBRCxcbiAgICAgIGhlYWRlcnM6IGh0dHBIZWFkZXJzXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXF1ZXN0KHJlcXVlc3REYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHLDs2kgdW1hIHJlcXVpc2nDp8OjbyBjb20gbyBtw6l0b2RvIGBvcHRpb25zYC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCBVUkwgZGEgcmVxdWlzacOnw6NvLlxuICAgKiBAcGFyYW0ge0FycmF5PFBvSGVhZGVyT3B0aW9uPn0gaHR0cEhlYWRlcnMgQ2FiZcOnYWxob3MgZGEgcmVxdWlzacOnw6NvLlxuICAgKi9cbiAgb3B0aW9ucyh1cmw6IHN0cmluZywgaHR0cEhlYWRlcnM/OiBBcnJheTxQb0h0dHBIZWFkZXJPcHRpb24+KSB7XG4gICAgY29uc3QgcmVxdWVzdERhdGE6IFBvSHR0cFJlcXVlc3REYXRhID0ge1xuICAgICAgdXJsOiB1cmwsXG4gICAgICBtZXRob2Q6IFBvSHR0cFJlcXVlc3RUeXBlLk9QVElPTlMsXG4gICAgICBoZWFkZXJzOiBodHRwSGVhZGVyc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVxdWVzdChyZXF1ZXN0RGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3Ryw7NpIHVtYSByZXF1aXNpw6fDo28gY29tIG8gbcOpdG9kbyBgcGF0Y2hgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXG4gICAqIEBwYXJhbSB7YW55fSBib2R5IENvcnBvIGRhIHJlcXVpc2nDp8Ojby5cbiAgICogQHBhcmFtIHtBcnJheTxQb0hlYWRlck9wdGlvbj59IGh0dHBIZWFkZXJzIENhYmXDp2FsaG9zIGRhIHJlcXVpc2nDp8Ojby5cbiAgICovXG4gIHBhdGNoKHVybDogc3RyaW5nLCBib2R5PzogYW55LCBodHRwSGVhZGVycz86IEFycmF5PFBvSHR0cEhlYWRlck9wdGlvbj4pIHtcbiAgICBjb25zdCByZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEgPSB7XG4gICAgICB1cmw6IHVybCxcbiAgICAgIG1ldGhvZDogUG9IdHRwUmVxdWVzdFR5cGUuUEFUQ0gsXG4gICAgICBoZWFkZXJzOiBodHRwSGVhZGVycyxcbiAgICAgIGJvZHk6IGJvZHlcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlcXVlc3QocmVxdWVzdERhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0csOzaSB1bWEgcmVxdWlzacOnw6NvIGNvbSBvIG3DqXRvZG8gYHBvc3RgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXG4gICAqIEBwYXJhbSB7YW55fSBib2R5IENvcnBvIGRhIHJlcXVpc2nDp8Ojby5cbiAgICogQHBhcmFtIHtBcnJheTxQb0hlYWRlck9wdGlvbj59IGh0dHBIZWFkZXJzIENhYmXDp2FsaG9zIGRhIHJlcXVpc2nDp8Ojby5cbiAgICovXG4gIHBvc3QodXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIGh0dHBIZWFkZXJzPzogQXJyYXk8UG9IdHRwSGVhZGVyT3B0aW9uPikge1xuICAgIGNvbnN0IHJlcXVlc3REYXRhOiBQb0h0dHBSZXF1ZXN0RGF0YSA9IHtcbiAgICAgIHVybDogdXJsLFxuICAgICAgbWV0aG9kOiBQb0h0dHBSZXF1ZXN0VHlwZS5QT1NULFxuICAgICAgaGVhZGVyczogaHR0cEhlYWRlcnMsXG4gICAgICBib2R5OiBib2R5XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXF1ZXN0KHJlcXVlc3REYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHLDs2kgdW1hIHJlcXVpc2nDp8OjbyBjb20gbyBtw6l0b2RvIGBwdXRgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXG4gICAqIEBwYXJhbSB7YW55fSBib2R5IENvcnBvIGRhIHJlcXVpc2nDp8Ojby5cbiAgICogQHBhcmFtIHtBcnJheTxQb0hlYWRlck9wdGlvbj59IGh0dHBIZWFkZXJzIENhYmXDp2FsaG9zIGRhIHJlcXVpc2nDp8Ojby5cbiAgICovXG4gIHB1dCh1cmw6IHN0cmluZywgYm9keT86IGFueSwgaHR0cEhlYWRlcnM/OiBBcnJheTxQb0h0dHBIZWFkZXJPcHRpb24+KSB7XG4gICAgY29uc3QgcmVxdWVzdERhdGE6IFBvSHR0cFJlcXVlc3REYXRhID0ge1xuICAgICAgdXJsOiB1cmwsXG4gICAgICBtZXRob2Q6IFBvSHR0cFJlcXVlc3RUeXBlLlBVVCxcbiAgICAgIGhlYWRlcnM6IGh0dHBIZWFkZXJzLFxuICAgICAgYm9keTogYm9keVxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXF1ZXN0KHJlcXVlc3REYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSHR0cEhlYWRlcnMocG9IdHRwT3BlcmF0aW9uSGVhZGVycykge1xuICAgIGxldCBodHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuXG4gICAgaWYgKHBvSHR0cE9wZXJhdGlvbkhlYWRlcnMgJiYgcG9IdHRwT3BlcmF0aW9uSGVhZGVycy5sZW5ndGggPiAwKSB7XG4gICAgICBwb0h0dHBPcGVyYXRpb25IZWFkZXJzLmZvckVhY2goXG4gICAgICAgIHBvSHR0cEhlYWRlciA9PiAoaHR0cEhlYWRlcnMgPSBodHRwSGVhZGVycy5hcHBlbmQocG9IdHRwSGVhZGVyLm5hbWUsIHBvSHR0cEhlYWRlci52YWx1ZSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBodHRwSGVhZGVycztcbiAgfVxufVxuIl19
|
package/esm2022/lib/services/po-schema/po-schema-definition/po-schema-definition.service.mjs
CHANGED
|
@@ -75,4 +75,4 @@ export class PoSchemaDefinitionService {
|
|
|
75
75
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoSchemaDefinitionService, [{
|
|
76
76
|
type: Injectable
|
|
77
77
|
}], () => [{ type: i1.PoStorageService }], null); })();
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc2NoZW1hLWRlZmluaXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5bmMvc3JjL2xpYi9zZXJ2aWNlcy9wby1zY2hlbWEvcG8tc2NoZW1hLWRlZmluaXRpb24vcG8tc2NoZW1hLWRlZmluaXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7O0FBR3hFOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyx5QkFBeUI7SUFDaEI7SUFBcEIsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRW5EOzs7Ozs7O09BT0c7SUFDSCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsR0FBRyxDQUFDLFVBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLE9BQTRCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBMkI7UUFDdEMsSUFBSSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFbEMsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsRUFBRTtZQUNwQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN2QyxPQUFPLGFBQWEsQ0FBQztZQUN2QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUMsQ0FBQztRQUVGLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7bUZBOURVLHlCQUF5QjtnRUFBekIseUJBQXlCLFdBQXpCLHlCQUF5Qjs7aUZBQXpCLHlCQUF5QjtjQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQb1N0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQHBvLXVpL25nLXN0b3JhZ2UnO1xuXG5pbXBvcnQgeyBQb1NjaGVtYVV0aWwgfSBmcm9tICcuLy4uL3BvLXNjaGVtYS11dGlsL3BvLXNjaGVtYS11dGlsLm1vZGVsJztcbmltcG9ydCB7IFBvU3luY1NjaGVtYSB9IGZyb20gJy4vLi4vLi4vcG8tc3luYy9pbnRlcmZhY2VzL3BvLXN5bmMtc2NoZW1hLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogU2VydmnDp28gcXVlIGRpc3BvbmliaWxpemEgbcOpdG9kb3MgcXVlIHBlcm1pdGUgb3BlcmFyIHNvYnJlIGFzIGRlZmluacOnw7VlcyBkb3MgKnNjaGVtYXMqLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUG9TY2hlbWFEZWZpbml0aW9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9TdG9yYWdlOiBQb1N0b3JhZ2VTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBEZXN0csOzaSBhIGNoYXZlIGRvICpzdG9yYWdlKiBxdWUgY29udMOpbSBhcyBkZWZpbmnDp8O1ZXMgZG9zICpzY2hlbWFzKi5cbiAgICpcbiAgICogPiBQYXJhIHF1ZSBuw6NvIHZlbmhhbSBvY29ycmVyIGVycm9zIGVtIGHDp8O1ZXMgcXVlIGRlcGVuZGFtIGRhcyBkZWZpbmnDp8O1ZXMgZG9zICpzY2hlbWFzKixcbiAgICogcmVjb21lbmRhLXNlIHV0aWxpemFyIG8gbcOpdG9kbyBgcHJlcGFyZSgpYCBlbSBzZWd1aWRhLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gUHJvbWVzc2EgcXVlIMOpIHJlc29sdmlkYSBxdWFuZG8gYSBjaGF2ZSByZWZlcmVudGUgYXMgZGVmaW5pw6fDtWVzIGRvcyAqc2NoZW1hcyogZm9yIGRlc3RydcOtZGEuXG4gICAqL1xuICBkZXN0cm95KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnBvU3RvcmFnZS5yZW1vdmUoUG9TY2hlbWFVdGlsLnN5bmNTY2hlbWFzTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQnVzY2EgdW0gKnNjaGVtYSogYSBwYXJ0aXIgZG8gbm9tZSBpbmZvcm1hZG8uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY2hlbWFOYW1lIE5vbWUgZG8gKnNjaGVtYSouXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFBvU3luY1NjaGVtYT59IFByb21lc3NhIHF1ZSDDqSByZXNvbHZpZGEgcXVhbmRvIG8gKnNjaGVtYSogZm9yIHJldG9ybmFkby5cbiAgICovXG4gIGdldChzY2hlbWFOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFBvU3luY1NjaGVtYT4ge1xuICAgIHJldHVybiB0aGlzLnBvU3RvcmFnZS5nZXRJdGVtQnlGaWVsZChQb1NjaGVtYVV0aWwuc3luY1NjaGVtYXNOYW1lLCAnbmFtZScsIHNjaGVtYU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgdW1hIHByb21lc3NhIGNvbSBhIGxpc3RhIGRvcyAqc2NoZW1hcyogZGVmaW5pZG9zLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTxQb1N5bmNTY2hlbWE+Pn0gUHJvbWVzc2EgcXVlIMOpIHJlc29sdmlkYSBxdWFuZG8gYSBsaXN0YSBkb3MgKnNjaGVtYXMqIGRlZmluaWRvcyBmb3IgcmV0b3JuYWRhLlxuICAgKi9cbiAgZ2V0QWxsKCk6IFByb21pc2U8QXJyYXk8UG9TeW5jU2NoZW1hPj4ge1xuICAgIHJldHVybiB0aGlzLnBvU3RvcmFnZS5nZXQoUG9TY2hlbWFVdGlsLnN5bmNTY2hlbWFzTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogU2FsdmEgdW1hIGxpc3RhIGRlICpzY2hlbWFzKi5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxQb1N5bmNTY2hlbWE+fSBzY2hlbWFzIExpc3RhIGRlIHNjaGVtYXMgcXVlIHNlcsOjbyBzYWx2b3MuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5PFBvU3luY1NjaGVtYT4+fSBQcm9tZXNzYSBxdWUgw6kgcmVzb2x2aWRhIHF1YW5kbyBhIGxpc3RhIGRlICpzY2hlbWFzKiBmb3Igc2FsdmEuXG4gICAqL1xuICBzYXZlQWxsKHNjaGVtYXM6IEFycmF5PFBvU3luY1NjaGVtYT4pOiBQcm9taXNlPEFycmF5PFBvU3luY1NjaGVtYT4+IHtcbiAgICByZXR1cm4gdGhpcy5wb1N0b3JhZ2Uuc2V0KFBvU2NoZW1hVXRpbC5zeW5jU2NoZW1hc05hbWUsIHNjaGVtYXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dWFsaXphIHVtICpzY2hlbWEqIGEgcGFydGlyIGRvICpzY2hlbWEgbmFtZSouXG4gICAqXG4gICAqIEBwYXJhbSB7UG9TeW5jU2NoZW1hfSB1cGRhdGVkU2NoZW1hICoqU2NoZW1hKiBxdWUgc2Vyw6EgYXR1YWxpemFkby5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZSh1cGRhdGVkU2NoZW1hOiBQb1N5bmNTY2hlbWEpIHtcbiAgICBsZXQgc2NoZW1hcyA9IGF3YWl0IHRoaXMuZ2V0QWxsKCk7XG5cbiAgICBjb25zdCByZXBsYWNlVXBkYXRlZFNjaGVtYSA9IHNjaGVtYSA9PiB7XG4gICAgICBpZiAoc2NoZW1hLm5hbWUgPT09IHVwZGF0ZWRTY2hlbWEubmFtZSkge1xuICAgICAgICByZXR1cm4gdXBkYXRlZFNjaGVtYTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHNjaGVtYXMgPSBzY2hlbWFzLm1hcChyZXBsYWNlVXBkYXRlZFNjaGVtYSk7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZUFsbChzY2hlbWFzKTtcbiAgfVxufVxuIl19
|