@tiba-spark/client-shared-lib 25.2.2-5 → 25.2.2-561
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/libraries/enums/aggregated-status.enum.mjs +1 -1
- package/esm2022/libraries/services/signalr.service.mjs +4 -4
- package/fesm2022/tiba-spark-client-shared-lib.mjs +3 -3
- package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
- package/libraries/enums/aggregated-status.enum.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -29,4 +29,4 @@ export var AggregatedStatusText;
|
|
|
29
29
|
AggregatedStatusText["PROGRESS_ON"] = "progress_on";
|
|
30
30
|
AggregatedStatusText["PROGRESS_OFF"] = "progress_off";
|
|
31
31
|
})(AggregatedStatusText || (AggregatedStatusText = {}));
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRlZC1zdGF0dXMuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvZW51bXMvYWdncmVnYXRlZC1zdGF0dXMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQU4sSUFBWSxtQkFLWDtBQUxELFdBQVksbUJBQW1CO0lBQzdCLHlEQUFNLENBQUE7SUFDTixtRUFBVyxDQUFBO0lBQ1gsK0RBQVMsQ0FBQTtJQUNULHFFQUFZLENBQUE7QUFDZCxDQUFDLEVBTFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUs5QjtBQUVELE1BQU0sQ0FBTixJQUFZLHVCQUEwQjtBQUF0QyxXQUFZLHVCQUF1QjtBQUFFLENBQUMsRUFBMUIsdUJBQXVCLEtBQXZCLHVCQUF1QixRQUFHO0FBRXRDLE1BQU0sQ0FBTixJQUFZLHNCQU1YO0FBTkQsV0FBWSxzQkFBc0I7SUFDaEMscUVBQVMsQ0FBQTtJQUNULHVFQUFVLENBQUE7SUFDViwyRUFBWSxDQUFBO0lBQ1osK0VBQWMsQ0FBQTtJQUNkLGlGQUFlLENBQUE7QUFDakIsQ0FBQyxFQU5XLHNCQUFzQixLQUF0QixzQkFBc0IsUUFNakM7QUFFRCxNQUFNLENBQU4sSUFBWSwwQkFBNkI7QUFBekMsV0FBWSwwQkFBMEI7QUFBRSxDQUFDLEVBQTdCLDBCQUEwQixLQUExQiwwQkFBMEIsUUFBRztBQUV6QyxNQUFNLENBQU4sSUFBWSxvQkFRWDtBQVJELFdBQVksb0JBQW9CO0lBQzlCLGlDQUFTLENBQUE7SUFDVCwyQ0FBbUIsQ0FBQTtJQUNuQix1Q0FBZSxDQUFBO0lBQ2YsMkNBQW1CLENBQUE7SUFDbkIsK0NBQXVCLENBQUE7SUFDdkIsbURBQTJCLENBQUE7SUFDM0IscURBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQVJXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFRL0IiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBlbnVtIENvbUFnZ3JlZ2F0ZWRTdGF0dXMge1xuICBPayA9IDEsXG4gIFdhcm5pbmcgPSAyLFxuICBFcnJvciA9IDMsXG4gIENvbUVycm9yID0gNCxcbn1cblxuZXhwb3J0IGVudW0gQ29tQWdncmVnYXRlZFN0YXR1c1RleHQge31cblxuZXhwb3J0IGVudW0gRGV2aWNlQWdncmVnYXRlZFN0YXR1cyB7XG4gIEVycm9yID0gMSxcbiAgR2F0ZVVwID0gMixcbiAgR2F0ZURvd24gPSAzLFxuICBQcm9ncmVzc09uID0gNCxcbiAgUHJvZ3Jlc3NPZmYgPSA1LFxufVxuXG5leHBvcnQgZW51bSBEZXZpY2VBZ2dyZWdhdGVkU3RhdHVzVGV4dCB7fVxuXG5leHBvcnQgZW51bSBBZ2dyZWdhdGVkU3RhdHVzVGV4dCB7XG4gIE9LID0gJ29rJyxcbiAgV0FSTklORyA9ICd3YXJuaW5nJyxcbiAgRVJST1IgPSAnZXJyb3InLFxuICBHQVRFX1VQID0gJ2dhdGVfdXAnLFxuICBHQVRFX0RPV04gPSAnZ2F0ZV9kb3duJyxcbiAgUFJPR1JFU1NfT04gPSAncHJvZ3Jlc3Nfb24nLFxuICBQUk9HUkVTU19PRkYgPSAncHJvZ3Jlc3Nfb2ZmJyxcbn1cbiJdfQ==
|
|
@@ -263,17 +263,17 @@ export class SignalR {
|
|
|
263
263
|
this.devicesStatusChanged(DeviceStatusDto.fromJS(data));
|
|
264
264
|
break;
|
|
265
265
|
case RtEventType.DynamicPricingCondition:
|
|
266
|
-
datadogLogs.logger.
|
|
266
|
+
datadogLogs.logger.debug(`RT - Got ${JSON.stringify(data)} event`);
|
|
267
267
|
this.notificationChanged(NotificationDto.fromJS(data), obj.guid);
|
|
268
268
|
break;
|
|
269
269
|
case RtEventType.Alert:
|
|
270
270
|
case RtEventType.LostTicket:
|
|
271
271
|
case RtEventType.LPRmismatch:
|
|
272
|
-
datadogLogs.logger.
|
|
272
|
+
datadogLogs.logger.debug(`RT - Got ${JSON.stringify(data)} event`);
|
|
273
273
|
this.alertChanged(AlertDto.fromJS(data), obj.guid);
|
|
274
274
|
break;
|
|
275
275
|
case RtEventType.ParkState:
|
|
276
|
-
datadogLogs.logger.
|
|
276
|
+
datadogLogs.logger.debug(`RT - Got ${JSON.stringify(data)} event`);
|
|
277
277
|
this.deviceActivityChanged(data);
|
|
278
278
|
this.parkActivityChanged(data);
|
|
279
279
|
break;
|
|
@@ -439,4 +439,4 @@ export function getSecondsBackoff(retryCount) {
|
|
|
439
439
|
const [minSeconds, maxSeconds] = delaysTableInSeconds[retryCount] || [0, 0];
|
|
440
440
|
return (Math.floor(Math.random() * (maxSeconds - minSeconds + 1)) + minSeconds) * ONE_SECOND_IN_MILLISECONDS;
|
|
441
441
|
}
|
|
442
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9zaWduYWxyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWlCLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBNEIsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDOU0sT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1DQUFtQyxFQUFFLGtDQUFrQyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekssT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFB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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBTdGF0dXNDb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRhdGFkb2dMb2dzIH0gZnJvbSAnQGRhdGFkb2cvYnJvd3Nlci1sb2dzJztcbmltcG9ydCB7IEh0dHBUcmFuc3BvcnRUeXBlLCBIdWJDb25uZWN0aW9uLCBIdWJDb25uZWN0aW9uQnVpbGRlciwgSHViQ29ubmVjdGlvblN0YXRlIH0gZnJvbSAnQG1pY3Jvc29mdC9zaWduYWxyJztcbmltcG9ydCB7IERpc3BhdGNoIH0gZnJvbSAnQG5neHMtbGFicy9kaXNwYXRjaC1kZWNvcmF0b3InO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25FdmVudFNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBPTkVfU0VDT05EX0lOX01JTExJU0VDT05EUyB9IGZyb20gJy4uL2NvbnN0YW50cy9nbG9iYWwtY29uc3RhbnRzJztcbmltcG9ydCB7IEFwcFR5cGUgfSBmcm9tICcuLi9lbnVtcy9hcHAtdHlwZS5lbnVtJztcbmltcG9ydCB7IEFsZXJ0Q2hhbmdlZEFjdGlvbiwgSGFuZGxlQWxlcnRzQWN0aW9uLCBIYW5kbGVkTm90aWZpY2F0aW9uQWN0aW9uLCBIYW5kbGVOb3RpZmljYXRpb25BY3Rpb24sIE5vdGlmaWNhdGlvbkNoYW5nZWRBY3Rpb24gfSBmcm9tICcuLi9tb2R1bGVzL2FsZXJ0cy1hbmQtbm90aWZpY2F0aW9ucy9hbGVydHMtYW5kLW5vdGlmaWNhdGlvbnMuYWN0aW9ucyc7XG5pbXBvcnQgeyBTaWduYWxSUmVmcmVzaFRva2VuQWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9hdXRoL3JlZnJlc2gtdG9rZW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBGYWNpbGl0eUNoYW5nZWRBY3Rpb24sIEZhY2lsaXR5UmVtb3RlQ29tbWFuZEV4ZWN1dGVkQWN0aW9uLCBTZXJ2aWNlc1J1bm5pbmdTdGF0dXNDaGFuZ2VkQWN0aW9uLCBab25lQ2hhbmdlZEFjdGlvbiB9IGZyb20gJy4uL21vZHVsZXMvZmFjaWxpdHkvZmFjaWxpdHkuYWN0aW9ucyc7XG5pbXBvcnQgeyBGYWNpbGl0eVN0YXRlIH0gZnJvbSAnLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS5zdGF0ZSc7XG5pbXBvcnQgeyBQYXJrQWN0aXZpdHlDaGFuZ2VkQWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9wYXJrLWFjdGl2aXRpZXMvcGFyay1hY3Rpdml0aWVzLmFjdGlvbnMnO1xuaW1wb3J0IHsgRGV2aWNlQWN0aXZpdHlDaGFuZ2VkQWN0aW9uLCBEZXZpY2VFdmVudENoYW5nZWRBY3Rpb24sIERldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24sIExwclRyYW5zYWN0aW9uc0NoYW5nZWRBY3Rpb24gfSBmcm9tICcuLi9tb2R1bGVzL3BhcmstbWFuYWdlci9wYXJrLW1hbmFnZXIuYWN0aW9ucyc7XG5pbXBvcnQgeyBTaWRlbmF2U3RhdGUgfSBmcm9tICcuLi9tb2R1bGVzL3NpZGVuYXYvc2lkZW5hdi5zdGF0ZSc7XG5pbXBvcnQgeyBBZGRTbWFydHBhcmtBY3Rpb24gfSBmcm9tICcuLi9tb2R1bGVzL3NtYXJ0cGFya3Mvc21hcnRwYXJrLWRpYWxvZy5hY3Rpb25zJztcbmltcG9ydCB7IEFsZXJ0RHRvLCBOb3RpZmljYXRpb25EdG8sIFNtYXJ0cGFya0R0byB9IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7XG4gIERldmljZUV2ZW50RHRvLCBEZXZpY2VTdGF0dXNEdG8sIEV2ZW50QWN0aXZpdHlEdG8sIEZhY2lsaXR5RHRvLCBGYWNpbGl0eVJlbW90ZUNvbW1hbmRFdmVudCxcbiAgRmFjaWxpdHlSZW1vdGVDb21tYW5kVHlwZXMsIExwclRyYW5zYWN0aW9uRHRvLCBOb3RpZmljYXRpb25FdmVudFR5cGUsIE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0byxcbiAgUlRFdmVudFN1YnNjcmlwdGlvbkR0bywgUnRFdmVudFR5cGUsIFNlcnZpY2VzUnVubmluZ1N0YXR1c0R0bywgWm9uZUR0b1xufSBmcm9tICcuLi9zZXJ2aWNlLXByb3h5L2VkZ2Utc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2FwcC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBHZW5lcmFsQWN0aW9uU2VydmljZSB9IGZyb20gJy4vZ2VuZXJhbC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBSZWFsdGltZUV2ZW50U2VydmljZSB9IGZyb20gJy4vcmVhbHRpbWUtZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIFNpZ25hbFJPYmplY3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMganNvblBheWxvYWQ6IHN0cmluZykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSVE9iamVjdE9iamVjdCBleHRlbmRzIFNpZ25hbFJPYmplY3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcnRFdmVudFR5cGU6IFJ0RXZlbnRUeXBlLCBwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBqc29uUGF5bG9hZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoZ3VpZCwganNvblBheWxvYWQpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTcGFya05vdGlmaWNhdGlvbiBleHRlbmRzIFNpZ25hbFJPYmplY3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbm90aWZpY2F0aW9uVHlwZTogTm90aWZpY2F0aW9uRXZlbnRUeXBlLCBwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMgaWRlbnRpZmllcjogc3RyaW5nLCBwdWJsaWMganNvblBheWxvYWQ6IHN0cmluZykge1xuICAgIHN1cGVyKGd1aWQsIGpzb25QYXlsb2FkKTtcbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2lnbmFsUiB7XG5cbiAgcHVibGljIGNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb247XG4gIHB1YmxpYyBzdWJzY3JpcHRpb25RdWV1ZTogYW55W10gPSBbXTtcbiAgcHVibGljIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvblF1ZXVlOiBhbnlbXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBzdG9yZTogU3RvcmU7XG4gIHByb3RlY3RlZCByZWFsdGltZUV2ZW50U2VydmljZTogUmVhbHRpbWVFdmVudFNlcnZpY2U7XG4gIHByb3RlY3RlZCBub3RpZmljYXRpb25FdmVudFNlcnZpY2U6IE5vdGlmaWNhdGlvbkV2ZW50U2VydmljZTtcbiAgcHJvdGVjdGVkIHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgZ2VuZXJhbEFjdGlvblNlcnZpY2U6IEdlbmVyYWxBY3Rpb25TZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLnN0b3JlID0gaW5qZWN0b3IuZ2V0KFN0b3JlKTtcbiAgICB0aGlzLnJlYWx0aW1lRXZlbnRTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFJlYWx0aW1lRXZlbnRTZXJ2aWNlKTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbkV2ZW50U2VydmljZSA9IGluamVjdG9yLmdldChOb3RpZmljYXRpb25FdmVudFNlcnZpY2UpO1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gICAgdGhpcy5hcHBDb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnU2VydmljZSk7XG4gICAgdGhpcy5nZW5lcmFsQWN0aW9uU2VydmljZSA9IGluamVjdG9yLmdldChHZW5lcmFsQWN0aW9uU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgaW5pdFJlYWx0aW1lRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlnKCk7XG4gICAgY29uc3QgYmFzZVVybCA9IGNvbmZpZy5hcHBUeXBlID09PSBBcHBUeXBlLk1vYmlsZSA/IGNvbmZpZy5hcGlCYXNlVVJMIDogJyc7XG4gICAgY29uc3QgdXJsID0gYCR7YmFzZVVybH0vcmVhbHRpbWVgO1xuXG4gICAgZGF0YWRvZ0xvZ3MubG9nZ2VyLmluZm8oYFJUIEFQSSBCYXNlIFVybCAtICR7dXJsfWApO1xuXG4gICAgY29uc3QgbWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50ID0gY29uZmlnLnNpZ25hbFIubWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50O1xuXG4gICAgdGhpcy5jb25uZWN0aW9uID0gbmV3IEh1YkNvbm5lY3Rpb25CdWlsZGVyKClcbiAgICAgIC53aXRoVXJsKHVybCwge1xuICAgICAgICBhY2Nlc3NUb2tlbkZhY3Rvcnk6ICgpID0+IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmFjY2Vzc1Rva2VuLFxuICAgICAgICBza2lwTmVnb3RpYXRpb246IHRydWUsICAvLyBTa2lwIHRoZSBuZWdvdGlhdGlvbiBzdGVwXG4gICAgICAgIHRyYW5zcG9ydDogSHR0cFRyYW5zcG9ydFR5cGUuV2ViU29ja2V0cyAgLy8gVXNlIFdlYlNvY2tldHMgZGlyZWN0bHlcbiAgICAgIH0pXG4gICAgICAud2l0aEF1dG9tYXRpY1JlY29ubmVjdChuZXcgVGliYVJldHJ5UG9saWN5KG1heENvbnNlY3V0aXZlRmFpbGVkUmV0cnlDb3VudCkpXG4gICAgICAuYnVpbGQoKTtcblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbnJlY29ubmVjdGluZygoZXJyb3IpID0+IHtcbiAgICAgIGRhdGFkb2dMb2dzLmxvZ2dlci5pbmZvKCdBdHRlbXB0aW5nIHRvIHJlY29ubmVjdDonLCBlcnJvcik7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24ub25jbG9zZSgoZXJyb3IpID0+IHtcbiAgICAgIGRhdGFkb2dMb2dzLmxvZ2dlci5pbmZvKCdDb25uZWN0aW9uIGNsb3NlZCBhZnRlciBhbGwgcmV0cnkgYXR0ZW1wdHM6JywgZXJyb3IpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb25uZWN0aW9uLm9ucmVjb25uZWN0ZWQoKGNvbm5lY3Rpb25JZCkgPT4ge1xuICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyLmluZm8oYFN1Y2Nlc3NmdWxseSByZWNvbm5lY3RlZCBTSUdOQUxSIS4gQ29ubmVjdGlvbklkOiAke2Nvbm5lY3Rpb25JZH1gKTtcblxuICAgICAgdGhpcy5jaGVja0ZvclVwZGF0ZSgpO1xuICAgICAgY29uc3QgZ3VpZCA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5ndWlkKTtcbiAgICAgIGlmICghIWd1aWQpIHtcbiAgICAgICAgdGhpcy5zZXRTcGFya0NvcmVDb25uZWN0aW9uKHRydWUsIGd1aWQpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVjb25uZWN0UnRFdmVudHNTdWJzY3JpcHRpb25zID0gdGhpcy5yZWFsdGltZUV2ZW50U2VydmljZS5nZXRTdWJzY3JpcHRpb25Gb3JSZWNvbm5lY3QoKTtcbiAgICAgIHRoaXMuaW52b2tlUmVhbHRpbWVSZWdpc3RyYXRpb24ocmVjb25uZWN0UnRFdmVudHNTdWJzY3JpcHRpb25zLCB0aGlzLmhhbmRsZVJlYWxUaW1lQXdhaXRpbmdTdWJzY3JpcHRpb25zLmJpbmQodGhpcykpO1xuXG4gICAgICBjb25zdCBub3RpZmljYXRpb25TdWJzY3JpcHRpb25zID0gdGhpcy5ub3RpZmljYXRpb25FdmVudFNlcnZpY2UuZ2V0U3Vic2NyaXB0aW9uRm9yUmVjb25uZWN0KCk7XG4gICAgICBub3RpZmljYXRpb25TdWJzY3JpcHRpb25zLmZvckVhY2gobm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uID0+IHtcbiAgICAgICAgdGhpcy5pbnZva2VOb3RpZmljYXRpb25SZWdpc3RyYXRpb24obm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmhhbmRsZU5vdGlmaWNhdGlvbkF3YWl0aW5nU3Vic2NyaXB0aW9uKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24ub24oJ1J0RXZlbnQnLCAocnRFdmVudFR5cGU6IFJ0RXZlbnRUeXBlLCBwYXJrSWQ6IG51bWJlciwgZ3VpZDogc3RyaW5nLCBqc29uUGF5bG9hZDogc3RyaW5nKSA9PiB7XG4gICAgICBvZihuZXcgUlRPYmplY3RPYmplY3QocnRFdmVudFR5cGUsIHBhcmtJZCwgZ3VpZCwganNvblBheWxvYWQpKVxuICAgICAgICAucGlwZSh0aGlzLmhhbmRsZUpzb25QYXlsb2FkVG9Mb3dlcigpKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLl9kaXNwYXRjaFJ0RXZlbnQocmVzIGFzIFJUT2JqZWN0T2JqZWN0KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24ub24oJ05vdGlmaWNhdGlvbicsICh0eXBlOiBOb3RpZmljYXRpb25FdmVudFR5cGUsIGd1aWQ6IHN0cmluZywgaWRlbnRpZmllcjogc3RyaW5nLCBqc29uUGF5bG9hZDogc3RyaW5nKSA9PiB7XG4gICAgICBvZihuZXcgU3BhcmtOb3RpZmljYXRpb24odHlwZSwgZ3VpZCwgaWRlbnRpZmllciwganNvblBheWxvYWQpKVxuICAgICAgICAucGlwZSh0aGlzLmhhbmRsZUpzb25QYXlsb2FkVG9Mb3dlcigpKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLl9kaXNwYXRjaE5vdGlmaWNhdGlvbihyZXMgYXMgU3BhcmtOb3RpZmljYXRpb24pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjaGVja0ZvclVwZGF0ZSgpOiB2b2lkO1xuXG4gIHB1YmxpYyBjb25uZWN0KCkge1xuICAgIHRoaXMuX2Nvbm5lY3QodGhpcy5jb25uZWN0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjb25uZWN0KCkge1xuICAgIHRoaXMuX2Rpc2Nvbm5lY3QodGhpcy5jb25uZWN0aW9uKTtcbiAgfVxuXG4gIHN1YnNjcmliZUZvclJlYWx0aW1lKHJ0RXZlbnRTdWJzY3JpcHRpb25zOiBSVEV2ZW50U3Vic2NyaXB0aW9uRHRvLCB0cmlnZ2VyRnVuY3Rpb24/OiAoKSA9PiB2b2lkKSB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbikge1xuICAgICAgaWYgKHRoaXMuY29ubmVjdGlvbi5zdGF0ZSAhPT0gSHViQ29ubmVjdGlvblN0YXRlLkNvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvblF1ZXVlLnB1c2goKCkgPT4gdGhpcy5zdWJzY3JpYmVGb3JSZWFsdGltZShydEV2ZW50U3Vic2NyaXB0aW9ucywgdHJpZ2dlckZ1bmN0aW9uKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBydEV2ZW50U3Vic2NyaXB0aW9uRGVsdGEgPSB0aGlzLnJlYWx0aW1lRXZlbnRTZXJ2aWNlLmhhbmRsZVJlYWx0aW1lRXZlbnRzU3Vic2NyaXB0aW9ucyhydEV2ZW50U3Vic2NyaXB0aW9ucyk7XG4gICAgICAgIGlmIChydEV2ZW50U3Vic2NyaXB0aW9uRGVsdGEuc3Vic2NyaWJlLmxlbmd0aCB8fCBydEV2ZW50U3Vic2NyaXB0aW9uRGVsdGEudW5TdWJzY3JpYmUubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5pbnZva2VSZWFsdGltZVJlZ2lzdHJhdGlvbihydEV2ZW50U3Vic2NyaXB0aW9uRGVsdGEsIHRyaWdnZXJGdW5jdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdWJzY3JpYmVGb3JOb3RpZmljYXRpb25zKG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbjogTm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvLCB0cmlnZ2VyRnVuY3Rpb24/OiAoKSA9PiB2b2lkKSB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbikge1xuICAgICAgaWYgKHRoaXMuY29ubmVjdGlvbi5zdGF0ZSAhPT0gSHViQ29ubmVjdGlvblN0YXRlLkNvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblN1YnNjcmlwdGlvblF1ZXVlLnB1c2goKCkgPT4gdGhpcy5zdWJzY3JpYmVGb3JOb3RpZmljYXRpb25zKG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbiwgdHJpZ2dlckZ1bmN0aW9uKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBub3RpZmljYXRpb25TdWJzY3JpcHRpb25EZWx0YSA9IHRoaXMubm90aWZpY2F0aW9uRXZlbnRTZXJ2aWNlLmhhbmRsZU5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbnMobm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uKTtcbiAgICAgICAgaWYgKCEhbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRGVsdGEpIHtcbiAgICAgICAgICB0aGlzLmludm9rZU5vdGlmaWNhdGlvblJlZ2lzdHJhdGlvbihub3RpZmljYXRpb25TdWJzY3JpcHRpb25EZWx0YSwgdHJpZ2dlckZ1bmN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW52b2tlUmVhbHRpbWVSZWdpc3RyYXRpb24ocnRFdmVudFN1YnNjcmlwdGlvbnM6IFJURXZlbnRTdWJzY3JpcHRpb25EdG8sIHRyaWdnZXJGdW5jdGlvbj86ICgpID0+IHZvaWQpIHtcbiAgICBjb25zdCBhcHBNb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNpZGVuYXZTdGF0ZS5hcHBNb2R1bGUpO1xuICAgIGlmIChydEV2ZW50U3Vic2NyaXB0aW9ucy51c2VySWQpIHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbi5pbnZva2U8UlRFdmVudFN1YnNjcmlwdGlvbkR0bz4oJ1JlZ2lzdGVyUGFyaycsIHJ0RXZlbnRTdWJzY3JpcHRpb25zLCBhcHBNb2R1bGUpLnRoZW4oKHN1YlRvKSA9PiB7XG4gICAgICAgIGlmICh0cmlnZ2VyRnVuY3Rpb24pIHtcbiAgICAgICAgICB0cmlnZ2VyRnVuY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbnZva2VOb3RpZmljYXRpb25SZWdpc3RyYXRpb24obm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uOiBOb3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8sIHRyaWdnZXJGdW5jdGlvbj86ICgpID0+IHZvaWQpIHtcbiAgICBpZiAobm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uICYmIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbi51c2VySWQpIHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbi5pbnZva2U8Tm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvPignUmVnaXN0ZXJOb3RpZmljYXRpb25zJywgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uKS50aGVuKChzdWJUbykgPT4ge1xuICAgICAgICBpZiAodHJpZ2dlckZ1bmN0aW9uKSB7XG4gICAgICAgICAgdHJpZ2dlckZ1bmN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRTcGFya0NvcmVDb25uZWN0aW9uKGlzQ29ubmVjdGVkOiBib29sZWFuLCBndWlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZXJ2aWNlc1J1bm5pbmdTdGF0dXMgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KEZhY2lsaXR5U3RhdGUuc2VydmljZXNSdW5uaW5nU3RhdHVzRGljdGlvbmFyeSlbZ3VpZF07XG4gICAgc2VydmljZXNSdW5uaW5nU3RhdHVzLmlzU3BhcmtDb3JlQ29ubmVjdGVkID0gaXNDb25uZWN0ZWQ7XG4gICAgaWYgKCFpc0Nvbm5lY3RlZCkge1xuICAgICAgY29uc3QgZmFjaWxpdHlHdWlkID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmd1aWQpO1xuICAgICAgY29uc3Qgc2VydmVyQ2xpZW50VGltZVNwYW4gPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KEZhY2lsaXR5U3RhdGUuY2xpZW50U2VydmVyRGlmZkRpY3Rpb25hcnkpW2ZhY2lsaXR5R3VpZF0gfHwgMDtcbiAgICAgIHNlcnZpY2VzUnVubmluZ1N0YXR1cy5zcGFya0NvcmVEaXNjb25uZWN0ZWRUaW1lc3RhbXAgPSBtb21lbnQoKS5zdWJ0cmFjdChzZXJ2ZXJDbGllbnRUaW1lU3BhbiwgJ21pbGxpc2Vjb25kcycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXJ2aWNlc1J1bm5pbmdTdGF0dXMuc3BhcmtDb3JlRGlzY29ubmVjdGVkVGltZXN0YW1wID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5zZXJ2aWNlc1J1bm5pbmdTdGF0dXNDaGFuZ2VkKHNlcnZpY2VzUnVubmluZ1N0YXR1cywgZ3VpZCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUpzb25QYXlsb2FkVG9Mb3dlcigpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248U2lnbmFsUk9iamVjdD4ge1xuICAgIHJldHVybiAkaW5wdXQgPT4gJGlucHV0LnBpcGUobWFwKHJlcyA9PiB7XG4gICAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKHJlcy5qc29uUGF5bG9hZCk7XG4gICAgICByZXMuanNvblBheWxvYWQgPSBKU09OLnN0cmluZ2lmeShvYmosIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0ge307XG4gICAgICAgICAgZm9yIChjb25zdCBrIGluIHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGspKSB7XG4gICAgICAgICAgICAgIGlmIChrLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50W2sgJiYgay50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlW2tdO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50W2sgJiYgay5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSArIGsuc3Vic3RyaW5nKDEpXSA9IHZhbHVlW2tdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGRpc3BhdGNoTm90aWZpY2F0aW9uKG9iajogU3BhcmtOb3RpZmljYXRpb24pOiB2b2lkO1xuXG4gIHByaXZhdGUgX2Rpc3BhdGNoTm90aWZpY2F0aW9uKG9iajogU3BhcmtOb3RpZmljYXRpb24pIHtcbiAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShvYmouanNvblBheWxvYWQpO1xuICAgIGNvbnNvbGUuZGVidWcoYFJlY2VpdmVkIE5vdGlmaWNhdGlvbiB0eXBlID09PT4gJHtvYmoubm90aWZpY2F0aW9uVHlwZX1gKTtcbiAgICBzd2l0Y2ggKG9iai5ub3RpZmljYXRpb25UeXBlKSB7XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5Jbml0aWFsQ2xvdWRDb25uZWN0OlxuICAgICAgICB0aGlzLmluaXRpYWxpemVTbWFydFBhcmtDb25uZWN0aW9uKGRhdGEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLkZhY2lsaXR5UmVtb3RlQ29tbWFuZEV4ZWN1dGVkOlxuICAgICAgICAvLyBUT0RPOiB0aGlzIGNvbmRpdGlvbiB3aWxsIGJlIHJlbW92ZWQgd2hlbiBhbGwgXCJGYWNpbGl0eVJlbW90ZUNvbW1hbmRFeGVjdXRlZFwiIG5vdGlmaWNhdGlvblxuICAgICAgICAvLyB3aWxsIGJlIHJlbW92ZWQgdXBvbiBiZWluZyBleGVjdXRlZCBpbiB0aGUgc2VydmVyXG4gICAgICAgIC8vIEZvciBtb3JlIGV4cGxhbmF0aW9uIHNlZTogU1BSSzMtNjcwNFxuICAgICAgICBpZiAoZGF0YS50eXBlID09PSBGYWNpbGl0eVJlbW90ZUNvbW1hbmRUeXBlcy5UcmFuc21pdFNwZWNpYWxEYXlzKSB7XG4gICAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uID0gdGhpcy5ub3RpZmljYXRpb25FdmVudFNlcnZpY2UuZ2V0Tm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uc0VudGl0eSgpO1xuICAgICAgICAgIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbi50eXBlID0gb2JqLm5vdGlmaWNhdGlvblR5cGU7XG4gICAgICAgICAgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlID0gdHJ1ZTtcbiAgICAgICAgICBub3RpZmljYXRpb25TdWJzY3JpcHRpb24uaWRlbnRpZmllciA9IHRoaXMubm90aWZpY2F0aW9uRXZlbnRTZXJ2aWNlLmdldE5vdGlmaWNhdGlvbklkZW50aWZpZXIoZGF0YS5ndWlkLCBkYXRhLnBhcmtJZCxcbiAgICAgICAgICAgIG9iai5ub3RpZmljYXRpb25UeXBlLCBub3RpZmljYXRpb25TdWJzY3JpcHRpb24udXNlcklkKTtcbiAgICAgICAgICB0aGlzLnN1YnNjcmliZUZvck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmFjaWxpdHlSZW1vdGVDb21tYW5kRXhlY3V0ZWQoZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuR2VuZXJhbEFjdGlvbnM6XG4gICAgICAgIHRoaXMuZ2VuZXJhbEFjdGlvblNlcnZpY2UuZGlzcGF0Y2hHZW5lcmFsQWN0aW9ucyhkYXRhKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5IYW5kbGVBbGVydDpcbiAgICAgICAgdGhpcy5oYW5kbGVBbGVydHMoQWxlcnREdG8uZnJvbUpTKGRhdGEpLCBvYmouZ3VpZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuSGFuZGxlZE5vdGlmaWNhdGlvbjpcbiAgICAgICAgdGhpcy5oYW5kbGVkTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbkR0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5IYW5kbGVOb3RpZmljYXRpb246XG4gICAgICAgIHRoaXMuaGFuZGxlTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbkR0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLlJlcG9ydEdlbmVyYXRlZDpcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLlJlY2VpcHRHZW5lcmF0ZWQ6XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5TdGlja2VyR2VuZXJhdGVkOlxuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuQXBwbGljYXRpb25VcGRhdGU6XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5DcmVhdGVSb2xlOlxuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuVXBkYXRlUm9sZTpcbiAgICAgICAgdGhpcy5kaXNwYXRjaE5vdGlmaWNhdGlvbihvYmopO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUuZGVidWcoYFVua25vd24gbm90aWZpY2F0aW9uIHR5cGUgPT09PiAke29iai5ub3RpZmljYXRpb25UeXBlfWApO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZGlzcGF0Y2hSdEV2ZW50KG9iajogUlRPYmplY3RPYmplY3QpOiB2b2lkO1xuXG4gIHByaXZhdGUgX2Rpc3BhdGNoUnRFdmVudChvYmo6IFJUT2JqZWN0T2JqZWN0KSB7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2Uob2JqLmpzb25QYXlsb2FkKTtcbiAgICBzd2l0Y2ggKG9iai5ydEV2ZW50VHlwZSkge1xuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5EZXZpY2VTdGF0dXM6XG4gICAgICAgIHRoaXMuZGV2aWNlc1N0YXR1c0NoYW5nZWQoRGV2aWNlU3RhdHVzRHRvLmZyb21KUyhkYXRhKSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkR5bmFtaWNQcmljaW5nQ29uZGl0aW9uOlxuICAgICAgICBkYXRhZG9nTG9ncy5sb2dnZXIuaW5mbyhgUlQgLSBHb3QgJHtKU09OLnN0cmluZ2lmeShkYXRhKX0gZXZlbnRgKTtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25DaGFuZ2VkKE5vdGlmaWNhdGlvbkR0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuQWxlcnQ6XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkxvc3RUaWNrZXQ6XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkxQUm1pc21hdGNoOlxuICAgICAgICBkYXRhZG9nTG9ncy5sb2dnZXIuaW5mbyhgUlQgLSBHb3QgJHtKU09OLnN0cmluZ2lmeShkYXRhKX0gZXZlbnRgKTtcbiAgICAgICAgdGhpcy5hbGVydENoYW5nZWQoQWxlcnREdG8uZnJvbUpTKGRhdGEpLCBvYmouZ3VpZCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLlBhcmtTdGF0ZTpcbiAgICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyLmluZm8oYFJUIC0gR290ICR7SlNPTi5zdHJpbmdpZnkoZGF0YSl9IGV2ZW50YCk7XG4gICAgICAgIHRoaXMuZGV2aWNlQWN0aXZpdHlDaGFuZ2VkKGRhdGEpO1xuICAgICAgICB0aGlzLnBhcmtBY3Rpdml0eUNoYW5nZWQoZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkRldmljZUV2ZW50OlxuICAgICAgICB0aGlzLmRldmljZUV2ZW50Q2hhbmdlZChkYXRhKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuU2VydmljZXNTdGF0dXM6XG4gICAgICAgIHRoaXMuc2VydmljZXNSdW5uaW5nU3RhdHVzQ2hhbmdlZChTZXJ2aWNlc1J1bm5pbmdTdGF0dXNEdG8uZnJvbUpTKGRhdGEpLCBvYmouZ3VpZCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLlpvbmU6XG4gICAgICAgIHRoaXMuem9uZUNoYW5nZWQoWm9uZUR0by5mcm9tSlMoZGF0YSksIG9iai5wYXJrSWQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5GYWNpbGl0eTpcbiAgICAgICAgdGhpcy5mYWNpbGl0eUNoYW5nZWQoRmFjaWxpdHlEdG8uZnJvbUpTKGRhdGEpLCBvYmouZ3VpZCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLk9jY3VwYW5jeTpcbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuUmV2ZW51ZTpcbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuT3BlblRpY2tldFRyYW5zYWN0aW9uOlxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5DbG9zZVRpY2tldFRyYW5zYWN0aW9uOlxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5Nb250aGx5VHJhbnNhY3Rpb246XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkd1ZXN0VHJhbnNhY3Rpb246XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLlBheW1lbnRUcmFuc2FjdGlvbjpcbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuTFBSVHJhbnNhY3Rpb246XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hSdEV2ZW50KG9iaik7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLmRlYnVnKGBVbmtub3duIGV2ZW50IHR5cGUgPT09PiAke29iai5ydEV2ZW50VHlwZX1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY29ubmVjdChjb25uZWN0aW9uOiBIdWJDb25uZWN0aW9uKSB7XG4gICAgY29uc29sZS5kZWJ1ZygnU2lnbmFsUiBFc3RhYmxpc2hpbmcgQ29ubmVjdGlvbi4uLicpO1xuICAgIGNvbm5lY3Rpb24uc3RhcnQoKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmRlYnVnKGBTaWduYWxSIENvbm5lY3Rpb24gRXN0YWJsaXNoZWQhYCk7XG4gICAgICAgIHRoaXMuaGFuZGxlUmVhbFRpbWVBd2FpdGluZ1N1YnNjcmlwdGlvbnMoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVOb3RpZmljYXRpb25Bd2FpdGluZ1N1YnNjcmlwdGlvbigpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChhc3luYyAoZSkgPT4ge1xuICAgICAgICB0aGlzLnJldHJ5Q29ubmVjdGlvbihjb25uZWN0aW9uLCAxKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzY29ubmVjdChjb25uZWN0aW9uOiBIdWJDb25uZWN0aW9uKSB7XG4gICAgY29uc29sZS5kZWJ1ZygnU2lnbmFsUiBTdG9wcGluZyBDb25uZWN0aW9uLi4uJyk7XG4gICAgY29ubmVjdGlvbj8uc3RvcCgpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoYFNpZ25hbFIgQ29ubmVjdGlvbiBTdG9wcGVkIWApO1xuICAgICAgICB0aGlzLmhhbmRsZURpc2Nvbm5lY3QoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goYXN5bmMgKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciA9PiAke2Vycn0sIFRpbWVzdGFtcDogJHtuZXcgRGF0ZSgpfWApO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJldHJ5Q29ubmVjdGlvbihjb25uZWN0aW9uOiBIdWJDb25uZWN0aW9uLCByZXRyeUNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYFNpZ25hbFIgRXN0YWJsaXNoaW5nIENvbm5lY3Rpb24uIFJldHJ5ICMke3JldHJ5Q291bnR9LiBUaW1lc3RhbXA6ICR7bmV3IERhdGUoKX1gKTtcbiAgICAgIGNvbm5lY3Rpb24uc3RhcnQoKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5kZWJ1ZyhgU2lnbmFsUiBDb25uZWN0aW9uIEVzdGFibGlzaGVkISBSZXRyeSAjJHtyZXRyeUNvdW50fWApO1xuICAgICAgICAgIHRoaXMuaGFuZGxlUmVhbFRpbWVBd2FpdGluZ1N1YnNjcmlwdGlvbnMoKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZU5vdGlmaWNhdGlvbkF3YWl0aW5nU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlnKCk7XG5cbiAgICAgICAgICBpZiAocmV0cnlDb3VudCA8PSBjb25maWcuc2lnbmFsUi5tYXhDb25zZWN1dGl2ZUZhaWxlZFJldHJ5Q291bnQpIHtcbiAgICAgICAgICAgIHRoaXMucmV0cnlDb25uZWN0aW9uKGNvbm5lY3Rpb24sIHJldHJ5Q291bnQgKyAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIGdldFNlY29uZHNCYWNrb2ZmKHJldHJ5Q291bnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUmVhbFRpbWVBd2FpdGluZ1N1YnNjcmlwdGlvbnMoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25RdWV1ZS5mb3JFYWNoKGF3YWl0aW5nU3Vic2NyaXB0aW9uID0+IGF3YWl0aW5nU3Vic2NyaXB0aW9uKCkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uUXVldWUuc3BsaWNlKDApO1xuICB9XG4gIHByaXZhdGUgaGFuZGxlTm90aWZpY2F0aW9uQXdhaXRpbmdTdWJzY3JpcHRpb24oKSB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25TdWJzY3JpcHRpb25RdWV1ZS5mb3JFYWNoKGF3YWl0aW5nU3Vic2NyaXB0aW9uID0+IGF3YWl0aW5nU3Vic2NyaXB0aW9uKCkpO1xuICAgIHRoaXMubm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uUXVldWUuc3BsaWNlKDApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEaXNjb25uZWN0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uUXVldWUgPSBbXTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblN1YnNjcmlwdGlvblF1ZXVlID0gW107XG4gICAgdGhpcy5yZWFsdGltZUV2ZW50U2VydmljZS5yZXNldEFsbFN1YnNjcmlwdGlvbnMoKTtcbiAgfVxuXG4gIEBEaXNwYXRjaCgpIGRldmljZXNTdGF0dXNDaGFuZ2VkID0gKGRldmljZVN0YXR1czogRGV2aWNlU3RhdHVzRHRvKSA9PlxuICAgIG5ldyBEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uKGRldmljZVN0YXR1cyk7XG4gIEBEaXNwYXRjaCgpIGZhY2lsaXR5Q2hhbmdlZCA9IChkYXRhOiBGYWNpbGl0eUR0bywgZ3VpZDogc3RyaW5nKSA9PlxuICAgIG5ldyBGYWNpbGl0eUNoYW5nZWRBY3Rpb24oZGF0YSwgZ3VpZCk7XG4gIEBEaXNwYXRjaCgpIHNlcnZpY2VzUnVubmluZ1N0YXR1c0NoYW5nZWQgPSAoc2VydmljZXNSdW5uaW5nU3RhdHVzOiBTZXJ2aWNlc1J1bm5pbmdTdGF0dXNEdG8sIGd1aWQ6IHN0cmluZykgPT5cbiAgICBuZXcgU2VydmljZXNSdW5uaW5nU3RhdHVzQ2hhbmdlZEFjdGlvbihzZXJ2aWNlc1J1bm5pbmdTdGF0dXMsIGd1aWQpO1xuICBARGlzcGF0Y2goKSBwYXJrQWN0aXZpdHlDaGFuZ2VkID0gKGFjdGl2aXR5OiBFdmVudEFjdGl2aXR5RHRvKSA9PlxuICAgIG5ldyBQYXJrQWN0aXZpdHlDaGFuZ2VkQWN0aW9uKGFjdGl2aXR5KTtcbiAgQERpc3BhdGNoKCkgZGV2aWNlRXZlbnRDaGFuZ2VkID0gKGRldkV2ZW50OiBEZXZpY2VFdmVudER0bykgPT5cbiAgICBuZXcgRGV2aWNlRXZlbnRDaGFuZ2VkQWN0aW9uKGRldkV2ZW50KTtcbiAgQERpc3BhdGNoKCkgZGV2aWNlQWN0aXZpdHlDaGFuZ2VkID0gKGV2ZW50QWN0aXZpdHk6IEV2ZW50QWN0aXZpdHlEdG8pID0+XG4gICAgbmV3IERldmljZUFjdGl2aXR5Q2hhbmdlZEFjdGlvbihldmVudEFjdGl2aXR5KTtcbiAgQERpc3BhdGNoKCkgbHByVHJhbnNhY3Rpb25zQ2hhbmdlZCA9IChscHJUcmFuczogTHByVHJhbnNhY3Rpb25EdG8pID0+XG4gICAgbmV3IExwclRyYW5zYWN0aW9uc0NoYW5nZWRBY3Rpb24obHByVHJhbnMpO1xuICBARGlzcGF0Y2goKSBhbGVydENoYW5nZWQgPSAoYWxlcnREdG86IEFsZXJ0RHRvLCBndWlkOiBzdHJpbmcpID0+XG4gICAgbmV3IEFsZXJ0Q2hhbmdlZEFjdGlvbihhbGVydER0bywgZ3VpZCk7XG4gIEBEaXNwYXRjaCgpIG5vdGlmaWNhdGlvbkNoYW5nZWQgPSAobm90aWZpY2F0aW9uRHRvOiBOb3RpZmljYXRpb25EdG8sIGd1aWQ6IHN0cmluZykgPT5cbiAgICBuZXcgTm90aWZpY2F0aW9uQ2hhbmdlZEFjdGlvbihub3RpZmljYXRpb25EdG8sIGd1aWQpO1xuICBARGlzcGF0Y2goKSBoYW5kbGVkTm90aWZpY2F0aW9uID0gKG5vdGlmaWNhdGlvbkR0bzogTm90aWZpY2F0aW9uRHRvLCBndWlkOiBzdHJpbmcpID0+XG4gICAgbmV3IEhhbmRsZWROb3RpZmljYXRpb25BY3Rpb24obm90aWZpY2F0aW9uRHRvLCBndWlkKTtcbiAgQERpc3BhdGNoKCkgaGFuZGxlQWxlcnRzID0gKGFsZXJ0RHRvOiBBbGVydER0bywgZ3VpZDogc3RyaW5nKSA9PlxuICAgIG5ldyBIYW5kbGVBbGVydHNBY3Rpb24oYWxlcnREdG8sIGd1aWQpO1xuICBARGlzcGF0Y2goKSBoYW5kbGVOb3RpZmljYXRpb24gPSAobm90aWZpY2F0aW9uRHRvOiBOb3RpZmljYXRpb25EdG8sIGd1aWQ6IHN0cmluZykgPT5cbiAgICBuZXcgSGFuZGxlTm90aWZpY2F0aW9uQWN0aW9uKG5vdGlmaWNhdGlvbkR0bywgZ3VpZCk7XG4gIEBEaXNwYXRjaCgpIHpvbmVDaGFuZ2VkID0gKHpvbmVEdG86IFpvbmVEdG8sIHBhcmtJZDogbnVtYmVyKSA9PlxuICAgIG5ldyBab25lQ2hhbmdlZEFjdGlvbih6b25lRHRvLCBwYXJrSWQpO1xuICBARGlzcGF0Y2goKSBpbml0aWFsaXplU21hcnRQYXJrQ29ubmVjdGlvbiA9IChzbWFydHBhcms6IFNtYXJ0cGFya0R0bykgPT5cbiAgICBuZXcgQWRkU21hcnRwYXJrQWN0aW9uKHNtYXJ0cGFyayk7XG4gIEBEaXNwYXRjaCgpIGZhY2lsaXR5UmVtb3RlQ29tbWFuZEV4ZWN1dGVkID0gKGZhY2lsaXR5UmVtb3RlQ29tbWFuZEV2ZW50OiBGYWNpbGl0eVJlbW90ZUNvbW1hbmRFdmVudCkgPT5cbiAgICBuZXcgRmFjaWxpdHlSZW1vdGVDb21tYW5kRXhlY3V0ZWRBY3Rpb24oZmFjaWxpdHlSZW1vdGVDb21tYW5kRXZlbnQpO1xufVxuXG5leHBvcnQgY2xhc3MgVGliYVJldHJ5UG9saWN5IGltcGxlbWVudHMgc2lnbmFsUi5JUmV0cnlQb2xpY3kge1xuXG4gIHByaXZhdGUgbWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50OiBudW1iZXIpIHtcbiAgICB0aGlzLm1heENvbnNlY3V0aXZlRmFpbGVkUmV0cnlDb3VudCA9IG1heENvbnNlY3V0aXZlRmFpbGVkUmV0cnlDb3VudDtcbiAgfVxuXG4gIG5leHRSZXRyeURlbGF5SW5NaWxsaXNlY29uZHMocmV0cnlDb250ZXh0OiBzaWduYWxSLlJldHJ5Q29udGV4dCk6IG51bWJlciB7XG4gICAgbGV0IG1pbGxpc2Vjb25kczogbnVtYmVyID0gbnVsbDtcbiAgICBjb25zdCBjdXJyZW50UmV0cnlDb3VudCA9IHJldHJ5Q29udGV4dC5wcmV2aW91c1JldHJ5Q291bnQgKyAxO1xuXG4gICAgaWYgKGN1cnJlbnRSZXRyeUNvdW50IDwgdGhpcy5tYXhDb25zZWN1dGl2ZUZhaWxlZFJldHJ5Q291bnQpIHtcbiAgICAgIGNvbnN0IHVuYXV0aG9yaXplZCA9IHJldHJ5Q29udGV4dC5yZXRyeVJlYXNvbi5tZXNzYWdlLmluY2x1ZGVzKGBTdGF0dXMgY29kZSAnJHtIdHRwU3RhdHVzQ29kZS5VbmF1dGhvcml6ZWR9J2ApO1xuXG4gICAgICBpZiAodW5hdXRob3JpemVkKSB7XG4gICAgICAgIGRhdGFkb2dMb2dzLmxvZ2dlci5pbmZvKGBUaWJhUmV0cnlQb2xpY3kgLT4gdW5hdXRob3JpemVkIHRva2VuLiBNZXNzYWdlOiAgJHtyZXRyeUNvbnRleHQucmV0cnlSZWFzb24ubWVzc2FnZX1gKTtcbiAgICAgICAgdGhpcy5zaWduYWxSUmVmcmVzaFRva2VuKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhZG9nTG9ncy5sb2dnZXIuaW5mbyhgVGliYVJldHJ5UG9saWN5IC0+IGZhaWxlZCBuZWdvdGlhdGlvbiAjJHtjdXJyZW50UmV0cnlDb3VudH0uIE1lc3NhZ2U6ICR7cmV0cnlDb250ZXh0LnJldHJ5UmVhc29uLm1lc3NhZ2V9YCk7XG5cbiAgICAgICAgbWlsbGlzZWNvbmRzID0gZ2V0U2Vjb25kc0JhY2tvZmYoY3VycmVudFJldHJ5Q291bnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtaWxsaXNlY29uZHM7XG4gIH1cblxuICBARGlzcGF0Y2goKSBzaWduYWxSUmVmcmVzaFRva2VuID0gKCkgPT4gbmV3IFNpZ25hbFJSZWZyZXNoVG9rZW5BY3Rpb24oKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlY29uZHNCYWNrb2ZmKHJldHJ5Q291bnQ6IG51bWJlcik6IG51bWJlciB7XG4gIGNvbnN0IGRlbGF5c1RhYmxlSW5TZWNvbmRzOiB7IFtrZXk6IG51bWJlcl06IG51bWJlcltdOyB9ID0ge1xuICAgIDE6IFs1LCAyMF0sIC8vNXMgLSAyMHNcbiAgICAyOiBbMjUsIDQwXSwgLy8gMjVzIC0gNDBzXG4gICAgMzogWzQ1LCA2MF0sIC8vIDQ1cyAtIDYwc1xuICAgIDQ6IFs2NSwgODBdLCAvLyA2NXMgLSA4MHNcbiAgICA1OiBbNjAwLCA5MDBdLCAgLy8gMTBtIC0gMTVtXG4gIH07XG4gIGNvbnN0IFttaW5TZWNvbmRzLCBtYXhTZWNvbmRzXSA9IGRlbGF5c1RhYmxlSW5TZWNvbmRzW3JldHJ5Q291bnRdIHx8IFswLCAwXTtcbiAgcmV0dXJuIChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4U2Vjb25kcyAtIG1pblNlY29uZHMgKyAxKSkgKyBtaW5TZWNvbmRzKSAqIE9ORV9TRUNPTkRfSU5fTUlMTElTRUNPTkRTO1xufVxuIl19
|
|
442
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9zaWduYWxyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWlCLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBNEIsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDOU0sT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1DQUFtQyxFQUFFLGtDQUFrQyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekssT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFB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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBTdGF0dXNDb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRhdGFkb2dMb2dzIH0gZnJvbSAnQGRhdGFkb2cvYnJvd3Nlci1sb2dzJztcbmltcG9ydCB7IEh0dHBUcmFuc3BvcnRUeXBlLCBIdWJDb25uZWN0aW9uLCBIdWJDb25uZWN0aW9uQnVpbGRlciwgSHViQ29ubmVjdGlvblN0YXRlIH0gZnJvbSAnQG1pY3Jvc29mdC9zaWduYWxyJztcbmltcG9ydCB7IERpc3BhdGNoIH0gZnJvbSAnQG5neHMtbGFicy9kaXNwYXRjaC1kZWNvcmF0b3InO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25FdmVudFNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBPTkVfU0VDT05EX0lOX01JTExJU0VDT05EUyB9IGZyb20gJy4uL2NvbnN0YW50cy9nbG9iYWwtY29uc3RhbnRzJztcbmltcG9ydCB7IEFwcFR5cGUgfSBmcm9tICcuLi9lbnVtcy9hcHAtdHlwZS5lbnVtJztcbmltcG9ydCB7IEFsZXJ0Q2hhbmdlZEFjdGlvbiwgSGFuZGxlQWxlcnRzQWN0aW9uLCBIYW5kbGVkTm90aWZpY2F0aW9uQWN0aW9uLCBIYW5kbGVOb3RpZmljYXRpb25BY3Rpb24sIE5vdGlmaWNhdGlvbkNoYW5nZWRBY3Rpb24gfSBmcm9tICcuLi9tb2R1bGVzL2FsZXJ0cy1hbmQtbm90aWZpY2F0aW9ucy9hbGVydHMtYW5kLW5vdGlmaWNhdGlvbnMuYWN0aW9ucyc7XG5pbXBvcnQgeyBTaWduYWxSUmVmcmVzaFRva2VuQWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9hdXRoL3JlZnJlc2gtdG9rZW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBGYWNpbGl0eUNoYW5nZWRBY3Rpb24sIEZhY2lsaXR5UmVtb3RlQ29tbWFuZEV4ZWN1dGVkQWN0aW9uLCBTZXJ2aWNlc1J1bm5pbmdTdGF0dXNDaGFuZ2VkQWN0aW9uLCBab25lQ2hhbmdlZEFjdGlvbiB9IGZyb20gJy4uL21vZHVsZXMvZmFjaWxpdHkvZmFjaWxpdHkuYWN0aW9ucyc7XG5pbXBvcnQgeyBGYWNpbGl0eVN0YXRlIH0gZnJvbSAnLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS5zdGF0ZSc7XG5pbXBvcnQgeyBQYXJrQWN0aXZpdHlDaGFuZ2VkQWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9wYXJrLWFjdGl2aXRpZXMvcGFyay1hY3Rpdml0aWVzLmFjdGlvbnMnO1xuaW1wb3J0IHsgRGV2aWNlQWN0aXZpdHlDaGFuZ2VkQWN0aW9uLCBEZXZpY2VFdmVudENoYW5nZWRBY3Rpb24sIERldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24sIExwclRyYW5zYWN0aW9uc0NoYW5nZWRBY3Rpb24gfSBmcm9tICcuLi9tb2R1bGVzL3BhcmstbWFuYWdlci9wYXJrLW1hbmFnZXIuYWN0aW9ucyc7XG5pbXBvcnQgeyBTaWRlbmF2U3RhdGUgfSBmcm9tICcuLi9tb2R1bGVzL3NpZGVuYXYvc2lkZW5hdi5zdGF0ZSc7XG5pbXBvcnQgeyBBZGRTbWFydHBhcmtBY3Rpb24gfSBmcm9tICcuLi9tb2R1bGVzL3NtYXJ0cGFya3Mvc21hcnRwYXJrLWRpYWxvZy5hY3Rpb25zJztcbmltcG9ydCB7IEFsZXJ0RHRvLCBOb3RpZmljYXRpb25EdG8sIFNtYXJ0cGFya0R0byB9IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7XG4gIERldmljZUV2ZW50RHRvLCBEZXZpY2VTdGF0dXNEdG8sIEV2ZW50QWN0aXZpdHlEdG8sIEZhY2lsaXR5RHRvLCBGYWNpbGl0eVJlbW90ZUNvbW1hbmRFdmVudCxcbiAgRmFjaWxpdHlSZW1vdGVDb21tYW5kVHlwZXMsIExwclRyYW5zYWN0aW9uRHRvLCBOb3RpZmljYXRpb25FdmVudFR5cGUsIE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0byxcbiAgUlRFdmVudFN1YnNjcmlwdGlvbkR0bywgUnRFdmVudFR5cGUsIFNlcnZpY2VzUnVubmluZ1N0YXR1c0R0bywgWm9uZUR0b1xufSBmcm9tICcuLi9zZXJ2aWNlLXByb3h5L2VkZ2Utc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2FwcC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBHZW5lcmFsQWN0aW9uU2VydmljZSB9IGZyb20gJy4vZ2VuZXJhbC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBSZWFsdGltZUV2ZW50U2VydmljZSB9IGZyb20gJy4vcmVhbHRpbWUtZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIFNpZ25hbFJPYmplY3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMganNvblBheWxvYWQ6IHN0cmluZykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSVE9iamVjdE9iamVjdCBleHRlbmRzIFNpZ25hbFJPYmplY3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcnRFdmVudFR5cGU6IFJ0RXZlbnRUeXBlLCBwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBqc29uUGF5bG9hZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoZ3VpZCwganNvblBheWxvYWQpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTcGFya05vdGlmaWNhdGlvbiBleHRlbmRzIFNpZ25hbFJPYmplY3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbm90aWZpY2F0aW9uVHlwZTogTm90aWZpY2F0aW9uRXZlbnRUeXBlLCBwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMgaWRlbnRpZmllcjogc3RyaW5nLCBwdWJsaWMganNvblBheWxvYWQ6IHN0cmluZykge1xuICAgIHN1cGVyKGd1aWQsIGpzb25QYXlsb2FkKTtcbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2lnbmFsUiB7XG5cbiAgcHVibGljIGNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb247XG4gIHB1YmxpYyBzdWJzY3JpcHRpb25RdWV1ZTogYW55W10gPSBbXTtcbiAgcHVibGljIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvblF1ZXVlOiBhbnlbXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBzdG9yZTogU3RvcmU7XG4gIHByb3RlY3RlZCByZWFsdGltZUV2ZW50U2VydmljZTogUmVhbHRpbWVFdmVudFNlcnZpY2U7XG4gIHByb3RlY3RlZCBub3RpZmljYXRpb25FdmVudFNlcnZpY2U6IE5vdGlmaWNhdGlvbkV2ZW50U2VydmljZTtcbiAgcHJvdGVjdGVkIHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgZ2VuZXJhbEFjdGlvblNlcnZpY2U6IEdlbmVyYWxBY3Rpb25TZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLnN0b3JlID0gaW5qZWN0b3IuZ2V0KFN0b3JlKTtcbiAgICB0aGlzLnJlYWx0aW1lRXZlbnRTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFJlYWx0aW1lRXZlbnRTZXJ2aWNlKTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbkV2ZW50U2VydmljZSA9IGluamVjdG9yLmdldChOb3RpZmljYXRpb25FdmVudFNlcnZpY2UpO1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gICAgdGhpcy5hcHBDb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnU2VydmljZSk7XG4gICAgdGhpcy5nZW5lcmFsQWN0aW9uU2VydmljZSA9IGluamVjdG9yLmdldChHZW5lcmFsQWN0aW9uU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgaW5pdFJlYWx0aW1lRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlnKCk7XG4gICAgY29uc3QgYmFzZVVybCA9IGNvbmZpZy5hcHBUeXBlID09PSBBcHBUeXBlLk1vYmlsZSA/IGNvbmZpZy5hcGlCYXNlVVJMIDogJyc7XG4gICAgY29uc3QgdXJsID0gYCR7YmFzZVVybH0vcmVhbHRpbWVgO1xuXG4gICAgZGF0YWRvZ0xvZ3MubG9nZ2VyLmluZm8oYFJUIEFQSSBCYXNlIFVybCAtICR7dXJsfWApO1xuXG4gICAgY29uc3QgbWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50ID0gY29uZmlnLnNpZ25hbFIubWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50O1xuXG4gICAgdGhpcy5jb25uZWN0aW9uID0gbmV3IEh1YkNvbm5lY3Rpb25CdWlsZGVyKClcbiAgICAgIC53aXRoVXJsKHVybCwge1xuICAgICAgICBhY2Nlc3NUb2tlbkZhY3Rvcnk6ICgpID0+IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmFjY2Vzc1Rva2VuLFxuICAgICAgICBza2lwTmVnb3RpYXRpb246IHRydWUsICAvLyBTa2lwIHRoZSBuZWdvdGlhdGlvbiBzdGVwXG4gICAgICAgIHRyYW5zcG9ydDogSHR0cFRyYW5zcG9ydFR5cGUuV2ViU29ja2V0cyAgLy8gVXNlIFdlYlNvY2tldHMgZGlyZWN0bHlcbiAgICAgIH0pXG4gICAgICAud2l0aEF1dG9tYXRpY1JlY29ubmVjdChuZXcgVGliYVJldHJ5UG9saWN5KG1heENvbnNlY3V0aXZlRmFpbGVkUmV0cnlDb3VudCkpXG4gICAgICAuYnVpbGQoKTtcblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbnJlY29ubmVjdGluZygoZXJyb3IpID0+IHtcbiAgICAgIGRhdGFkb2dMb2dzLmxvZ2dlci5pbmZvKCdBdHRlbXB0aW5nIHRvIHJlY29ubmVjdDonLCBlcnJvcik7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24ub25jbG9zZSgoZXJyb3IpID0+IHtcbiAgICAgIGRhdGFkb2dMb2dzLmxvZ2dlci5pbmZvKCdDb25uZWN0aW9uIGNsb3NlZCBhZnRlciBhbGwgcmV0cnkgYXR0ZW1wdHM6JywgZXJyb3IpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb25uZWN0aW9uLm9ucmVjb25uZWN0ZWQoKGNvbm5lY3Rpb25JZCkgPT4ge1xuICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyLmluZm8oYFN1Y2Nlc3NmdWxseSByZWNvbm5lY3RlZCBTSUdOQUxSIS4gQ29ubmVjdGlvbklkOiAke2Nvbm5lY3Rpb25JZH1gKTtcblxuICAgICAgdGhpcy5jaGVja0ZvclVwZGF0ZSgpO1xuICAgICAgY29uc3QgZ3VpZCA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5ndWlkKTtcbiAgICAgIGlmICghIWd1aWQpIHtcbiAgICAgICAgdGhpcy5zZXRTcGFya0NvcmVDb25uZWN0aW9uKHRydWUsIGd1aWQpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVjb25uZWN0UnRFdmVudHNTdWJzY3JpcHRpb25zID0gdGhpcy5yZWFsdGltZUV2ZW50U2VydmljZS5nZXRTdWJzY3JpcHRpb25Gb3JSZWNvbm5lY3QoKTtcbiAgICAgIHRoaXMuaW52b2tlUmVhbHRpbWVSZWdpc3RyYXRpb24ocmVjb25uZWN0UnRFdmVudHNTdWJzY3JpcHRpb25zLCB0aGlzLmhhbmRsZVJlYWxUaW1lQXdhaXRpbmdTdWJzY3JpcHRpb25zLmJpbmQodGhpcykpO1xuXG4gICAgICBjb25zdCBub3RpZmljYXRpb25TdWJzY3JpcHRpb25zID0gdGhpcy5ub3RpZmljYXRpb25FdmVudFNlcnZpY2UuZ2V0U3Vic2NyaXB0aW9uRm9yUmVjb25uZWN0KCk7XG4gICAgICBub3RpZmljYXRpb25TdWJzY3JpcHRpb25zLmZvckVhY2gobm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uID0+IHtcbiAgICAgICAgdGhpcy5pbnZva2VOb3RpZmljYXRpb25SZWdpc3RyYXRpb24obm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmhhbmRsZU5vdGlmaWNhdGlvbkF3YWl0aW5nU3Vic2NyaXB0aW9uKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24ub24oJ1J0RXZlbnQnLCAocnRFdmVudFR5cGU6IFJ0RXZlbnRUeXBlLCBwYXJrSWQ6IG51bWJlciwgZ3VpZDogc3RyaW5nLCBqc29uUGF5bG9hZDogc3RyaW5nKSA9PiB7XG4gICAgICBvZihuZXcgUlRPYmplY3RPYmplY3QocnRFdmVudFR5cGUsIHBhcmtJZCwgZ3VpZCwganNvblBheWxvYWQpKVxuICAgICAgICAucGlwZSh0aGlzLmhhbmRsZUpzb25QYXlsb2FkVG9Mb3dlcigpKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLl9kaXNwYXRjaFJ0RXZlbnQocmVzIGFzIFJUT2JqZWN0T2JqZWN0KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24ub24oJ05vdGlmaWNhdGlvbicsICh0eXBlOiBOb3RpZmljYXRpb25FdmVudFR5cGUsIGd1aWQ6IHN0cmluZywgaWRlbnRpZmllcjogc3RyaW5nLCBqc29uUGF5bG9hZDogc3RyaW5nKSA9PiB7XG4gICAgICBvZihuZXcgU3BhcmtOb3RpZmljYXRpb24odHlwZSwgZ3VpZCwgaWRlbnRpZmllciwganNvblBheWxvYWQpKVxuICAgICAgICAucGlwZSh0aGlzLmhhbmRsZUpzb25QYXlsb2FkVG9Mb3dlcigpKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLl9kaXNwYXRjaE5vdGlmaWNhdGlvbihyZXMgYXMgU3BhcmtOb3RpZmljYXRpb24pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjaGVja0ZvclVwZGF0ZSgpOiB2b2lkO1xuXG4gIHB1YmxpYyBjb25uZWN0KCkge1xuICAgIHRoaXMuX2Nvbm5lY3QodGhpcy5jb25uZWN0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjb25uZWN0KCkge1xuICAgIHRoaXMuX2Rpc2Nvbm5lY3QodGhpcy5jb25uZWN0aW9uKTtcbiAgfVxuXG4gIHN1YnNjcmliZUZvclJlYWx0aW1lKHJ0RXZlbnRTdWJzY3JpcHRpb25zOiBSVEV2ZW50U3Vic2NyaXB0aW9uRHRvLCB0cmlnZ2VyRnVuY3Rpb24/OiAoKSA9PiB2b2lkKSB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbikge1xuICAgICAgaWYgKHRoaXMuY29ubmVjdGlvbi5zdGF0ZSAhPT0gSHViQ29ubmVjdGlvblN0YXRlLkNvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvblF1ZXVlLnB1c2goKCkgPT4gdGhpcy5zdWJzY3JpYmVGb3JSZWFsdGltZShydEV2ZW50U3Vic2NyaXB0aW9ucywgdHJpZ2dlckZ1bmN0aW9uKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBydEV2ZW50U3Vic2NyaXB0aW9uRGVsdGEgPSB0aGlzLnJlYWx0aW1lRXZlbnRTZXJ2aWNlLmhhbmRsZVJlYWx0aW1lRXZlbnRzU3Vic2NyaXB0aW9ucyhydEV2ZW50U3Vic2NyaXB0aW9ucyk7XG4gICAgICAgIGlmIChydEV2ZW50U3Vic2NyaXB0aW9uRGVsdGEuc3Vic2NyaWJlLmxlbmd0aCB8fCBydEV2ZW50U3Vic2NyaXB0aW9uRGVsdGEudW5TdWJzY3JpYmUubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5pbnZva2VSZWFsdGltZVJlZ2lzdHJhdGlvbihydEV2ZW50U3Vic2NyaXB0aW9uRGVsdGEsIHRyaWdnZXJGdW5jdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdWJzY3JpYmVGb3JOb3RpZmljYXRpb25zKG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbjogTm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvLCB0cmlnZ2VyRnVuY3Rpb24/OiAoKSA9PiB2b2lkKSB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbikge1xuICAgICAgaWYgKHRoaXMuY29ubmVjdGlvbi5zdGF0ZSAhPT0gSHViQ29ubmVjdGlvblN0YXRlLkNvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblN1YnNjcmlwdGlvblF1ZXVlLnB1c2goKCkgPT4gdGhpcy5zdWJzY3JpYmVGb3JOb3RpZmljYXRpb25zKG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbiwgdHJpZ2dlckZ1bmN0aW9uKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBub3RpZmljYXRpb25TdWJzY3JpcHRpb25EZWx0YSA9IHRoaXMubm90aWZpY2F0aW9uRXZlbnRTZXJ2aWNlLmhhbmRsZU5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbnMobm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uKTtcbiAgICAgICAgaWYgKCEhbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRGVsdGEpIHtcbiAgICAgICAgICB0aGlzLmludm9rZU5vdGlmaWNhdGlvblJlZ2lzdHJhdGlvbihub3RpZmljYXRpb25TdWJzY3JpcHRpb25EZWx0YSwgdHJpZ2dlckZ1bmN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW52b2tlUmVhbHRpbWVSZWdpc3RyYXRpb24ocnRFdmVudFN1YnNjcmlwdGlvbnM6IFJURXZlbnRTdWJzY3JpcHRpb25EdG8sIHRyaWdnZXJGdW5jdGlvbj86ICgpID0+IHZvaWQpIHtcbiAgICBjb25zdCBhcHBNb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNpZGVuYXZTdGF0ZS5hcHBNb2R1bGUpO1xuICAgIGlmIChydEV2ZW50U3Vic2NyaXB0aW9ucy51c2VySWQpIHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbi5pbnZva2U8UlRFdmVudFN1YnNjcmlwdGlvbkR0bz4oJ1JlZ2lzdGVyUGFyaycsIHJ0RXZlbnRTdWJzY3JpcHRpb25zLCBhcHBNb2R1bGUpLnRoZW4oKHN1YlRvKSA9PiB7XG4gICAgICAgIGlmICh0cmlnZ2VyRnVuY3Rpb24pIHtcbiAgICAgICAgICB0cmlnZ2VyRnVuY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbnZva2VOb3RpZmljYXRpb25SZWdpc3RyYXRpb24obm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uOiBOb3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8sIHRyaWdnZXJGdW5jdGlvbj86ICgpID0+IHZvaWQpIHtcbiAgICBpZiAobm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uICYmIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbi51c2VySWQpIHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbi5pbnZva2U8Tm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvPignUmVnaXN0ZXJOb3RpZmljYXRpb25zJywgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uKS50aGVuKChzdWJUbykgPT4ge1xuICAgICAgICBpZiAodHJpZ2dlckZ1bmN0aW9uKSB7XG4gICAgICAgICAgdHJpZ2dlckZ1bmN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRTcGFya0NvcmVDb25uZWN0aW9uKGlzQ29ubmVjdGVkOiBib29sZWFuLCBndWlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZXJ2aWNlc1J1bm5pbmdTdGF0dXMgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KEZhY2lsaXR5U3RhdGUuc2VydmljZXNSdW5uaW5nU3RhdHVzRGljdGlvbmFyeSlbZ3VpZF07XG4gICAgc2VydmljZXNSdW5uaW5nU3RhdHVzLmlzU3BhcmtDb3JlQ29ubmVjdGVkID0gaXNDb25uZWN0ZWQ7XG4gICAgaWYgKCFpc0Nvbm5lY3RlZCkge1xuICAgICAgY29uc3QgZmFjaWxpdHlHdWlkID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmd1aWQpO1xuICAgICAgY29uc3Qgc2VydmVyQ2xpZW50VGltZVNwYW4gPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KEZhY2lsaXR5U3RhdGUuY2xpZW50U2VydmVyRGlmZkRpY3Rpb25hcnkpW2ZhY2lsaXR5R3VpZF0gfHwgMDtcbiAgICAgIHNlcnZpY2VzUnVubmluZ1N0YXR1cy5zcGFya0NvcmVEaXNjb25uZWN0ZWRUaW1lc3RhbXAgPSBtb21lbnQoKS5zdWJ0cmFjdChzZXJ2ZXJDbGllbnRUaW1lU3BhbiwgJ21pbGxpc2Vjb25kcycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXJ2aWNlc1J1bm5pbmdTdGF0dXMuc3BhcmtDb3JlRGlzY29ubmVjdGVkVGltZXN0YW1wID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5zZXJ2aWNlc1J1bm5pbmdTdGF0dXNDaGFuZ2VkKHNlcnZpY2VzUnVubmluZ1N0YXR1cywgZ3VpZCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUpzb25QYXlsb2FkVG9Mb3dlcigpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248U2lnbmFsUk9iamVjdD4ge1xuICAgIHJldHVybiAkaW5wdXQgPT4gJGlucHV0LnBpcGUobWFwKHJlcyA9PiB7XG4gICAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKHJlcy5qc29uUGF5bG9hZCk7XG4gICAgICByZXMuanNvblBheWxvYWQgPSBKU09OLnN0cmluZ2lmeShvYmosIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0ge307XG4gICAgICAgICAgZm9yIChjb25zdCBrIGluIHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGspKSB7XG4gICAgICAgICAgICAgIGlmIChrLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50W2sgJiYgay50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlW2tdO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50W2sgJiYgay5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSArIGsuc3Vic3RyaW5nKDEpXSA9IHZhbHVlW2tdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGRpc3BhdGNoTm90aWZpY2F0aW9uKG9iajogU3BhcmtOb3RpZmljYXRpb24pOiB2b2lkO1xuXG4gIHByaXZhdGUgX2Rpc3BhdGNoTm90aWZpY2F0aW9uKG9iajogU3BhcmtOb3RpZmljYXRpb24pIHtcbiAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShvYmouanNvblBheWxvYWQpO1xuICAgIGNvbnNvbGUuZGVidWcoYFJlY2VpdmVkIE5vdGlmaWNhdGlvbiB0eXBlID09PT4gJHtvYmoubm90aWZpY2F0aW9uVHlwZX1gKTtcbiAgICBzd2l0Y2ggKG9iai5ub3RpZmljYXRpb25UeXBlKSB7XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5Jbml0aWFsQ2xvdWRDb25uZWN0OlxuICAgICAgICB0aGlzLmluaXRpYWxpemVTbWFydFBhcmtDb25uZWN0aW9uKGRhdGEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLkZhY2lsaXR5UmVtb3RlQ29tbWFuZEV4ZWN1dGVkOlxuICAgICAgICAvLyBUT0RPOiB0aGlzIGNvbmRpdGlvbiB3aWxsIGJlIHJlbW92ZWQgd2hlbiBhbGwgXCJGYWNpbGl0eVJlbW90ZUNvbW1hbmRFeGVjdXRlZFwiIG5vdGlmaWNhdGlvblxuICAgICAgICAvLyB3aWxsIGJlIHJlbW92ZWQgdXBvbiBiZWluZyBleGVjdXRlZCBpbiB0aGUgc2VydmVyXG4gICAgICAgIC8vIEZvciBtb3JlIGV4cGxhbmF0aW9uIHNlZTogU1BSSzMtNjcwNFxuICAgICAgICBpZiAoZGF0YS50eXBlID09PSBGYWNpbGl0eVJlbW90ZUNvbW1hbmRUeXBlcy5UcmFuc21pdFNwZWNpYWxEYXlzKSB7XG4gICAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uID0gdGhpcy5ub3RpZmljYXRpb25FdmVudFNlcnZpY2UuZ2V0Tm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uc0VudGl0eSgpO1xuICAgICAgICAgIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbi50eXBlID0gb2JqLm5vdGlmaWNhdGlvblR5cGU7XG4gICAgICAgICAgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlID0gdHJ1ZTtcbiAgICAgICAgICBub3RpZmljYXRpb25TdWJzY3JpcHRpb24uaWRlbnRpZmllciA9IHRoaXMubm90aWZpY2F0aW9uRXZlbnRTZXJ2aWNlLmdldE5vdGlmaWNhdGlvbklkZW50aWZpZXIoZGF0YS5ndWlkLCBkYXRhLnBhcmtJZCxcbiAgICAgICAgICAgIG9iai5ub3RpZmljYXRpb25UeXBlLCBub3RpZmljYXRpb25TdWJzY3JpcHRpb24udXNlcklkKTtcbiAgICAgICAgICB0aGlzLnN1YnNjcmliZUZvck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmFjaWxpdHlSZW1vdGVDb21tYW5kRXhlY3V0ZWQoZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuR2VuZXJhbEFjdGlvbnM6XG4gICAgICAgIHRoaXMuZ2VuZXJhbEFjdGlvblNlcnZpY2UuZGlzcGF0Y2hHZW5lcmFsQWN0aW9ucyhkYXRhKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5IYW5kbGVBbGVydDpcbiAgICAgICAgdGhpcy5oYW5kbGVBbGVydHMoQWxlcnREdG8uZnJvbUpTKGRhdGEpLCBvYmouZ3VpZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuSGFuZGxlZE5vdGlmaWNhdGlvbjpcbiAgICAgICAgdGhpcy5oYW5kbGVkTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbkR0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5IYW5kbGVOb3RpZmljYXRpb246XG4gICAgICAgIHRoaXMuaGFuZGxlTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbkR0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLlJlcG9ydEdlbmVyYXRlZDpcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLlJlY2VpcHRHZW5lcmF0ZWQ6XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5TdGlja2VyR2VuZXJhdGVkOlxuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuQXBwbGljYXRpb25VcGRhdGU6XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5DcmVhdGVSb2xlOlxuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuVXBkYXRlUm9sZTpcbiAgICAgICAgdGhpcy5kaXNwYXRjaE5vdGlmaWNhdGlvbihvYmopO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUuZGVidWcoYFVua25vd24gbm90aWZpY2F0aW9uIHR5cGUgPT09PiAke29iai5ub3RpZmljYXRpb25UeXBlfWApO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZGlzcGF0Y2hSdEV2ZW50KG9iajogUlRPYmplY3RPYmplY3QpOiB2b2lkO1xuXG4gIHByaXZhdGUgX2Rpc3BhdGNoUnRFdmVudChvYmo6IFJUT2JqZWN0T2JqZWN0KSB7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2Uob2JqLmpzb25QYXlsb2FkKTtcbiAgICBzd2l0Y2ggKG9iai5ydEV2ZW50VHlwZSkge1xuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5EZXZpY2VTdGF0dXM6XG4gICAgICAgIHRoaXMuZGV2aWNlc1N0YXR1c0NoYW5nZWQoRGV2aWNlU3RhdHVzRHRvLmZyb21KUyhkYXRhKSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkR5bmFtaWNQcmljaW5nQ29uZGl0aW9uOlxuICAgICAgICBkYXRhZG9nTG9ncy5sb2dnZXIuZGVidWcoYFJUIC0gR290ICR7SlNPTi5zdHJpbmdpZnkoZGF0YSl9IGV2ZW50YCk7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uQ2hhbmdlZChOb3RpZmljYXRpb25EdG8uZnJvbUpTKGRhdGEpLCBvYmouZ3VpZCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkFsZXJ0OlxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5Mb3N0VGlja2V0OlxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5MUFJtaXNtYXRjaDpcbiAgICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyLmRlYnVnKGBSVCAtIEdvdCAke0pTT04uc3RyaW5naWZ5KGRhdGEpfSBldmVudGApO1xuICAgICAgICB0aGlzLmFsZXJ0Q2hhbmdlZChBbGVydER0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuUGFya1N0YXRlOlxuICAgICAgICBkYXRhZG9nTG9ncy5sb2dnZXIuZGVidWcoYFJUIC0gR290ICR7SlNPTi5zdHJpbmdpZnkoZGF0YSl9IGV2ZW50YCk7XG4gICAgICAgIHRoaXMuZGV2aWNlQWN0aXZpdHlDaGFuZ2VkKGRhdGEpO1xuICAgICAgICB0aGlzLnBhcmtBY3Rpdml0eUNoYW5nZWQoZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkRldmljZUV2ZW50OlxuICAgICAgICB0aGlzLmRldmljZUV2ZW50Q2hhbmdlZChkYXRhKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuU2VydmljZXNTdGF0dXM6XG4gICAgICAgIHRoaXMuc2VydmljZXNSdW5uaW5nU3RhdHVzQ2hhbmdlZChTZXJ2aWNlc1J1bm5pbmdTdGF0dXNEdG8uZnJvbUpTKGRhdGEpLCBvYmouZ3VpZCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLlpvbmU6XG4gICAgICAgIHRoaXMuem9uZUNoYW5nZWQoWm9uZUR0by5mcm9tSlMoZGF0YSksIG9iai5wYXJrSWQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5GYWNpbGl0eTpcbiAgICAgICAgdGhpcy5mYWNpbGl0eUNoYW5nZWQoRmFjaWxpdHlEdG8uZnJvbUpTKGRhdGEpLCBvYmouZ3VpZCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLk9jY3VwYW5jeTpcbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuUmV2ZW51ZTpcbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuT3BlblRpY2tldFRyYW5zYWN0aW9uOlxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5DbG9zZVRpY2tldFRyYW5zYWN0aW9uOlxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5Nb250aGx5VHJhbnNhY3Rpb246XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkd1ZXN0VHJhbnNhY3Rpb246XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLlBheW1lbnRUcmFuc2FjdGlvbjpcbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuTFBSVHJhbnNhY3Rpb246XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hSdEV2ZW50KG9iaik7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLmRlYnVnKGBVbmtub3duIGV2ZW50IHR5cGUgPT09PiAke29iai5ydEV2ZW50VHlwZX1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY29ubmVjdChjb25uZWN0aW9uOiBIdWJDb25uZWN0aW9uKSB7XG4gICAgY29uc29sZS5kZWJ1ZygnU2lnbmFsUiBFc3RhYmxpc2hpbmcgQ29ubmVjdGlvbi4uLicpO1xuICAgIGNvbm5lY3Rpb24uc3RhcnQoKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmRlYnVnKGBTaWduYWxSIENvbm5lY3Rpb24gRXN0YWJsaXNoZWQhYCk7XG4gICAgICAgIHRoaXMuaGFuZGxlUmVhbFRpbWVBd2FpdGluZ1N1YnNjcmlwdGlvbnMoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVOb3RpZmljYXRpb25Bd2FpdGluZ1N1YnNjcmlwdGlvbigpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChhc3luYyAoZSkgPT4ge1xuICAgICAgICB0aGlzLnJldHJ5Q29ubmVjdGlvbihjb25uZWN0aW9uLCAxKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzY29ubmVjdChjb25uZWN0aW9uOiBIdWJDb25uZWN0aW9uKSB7XG4gICAgY29uc29sZS5kZWJ1ZygnU2lnbmFsUiBTdG9wcGluZyBDb25uZWN0aW9uLi4uJyk7XG4gICAgY29ubmVjdGlvbj8uc3RvcCgpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoYFNpZ25hbFIgQ29ubmVjdGlvbiBTdG9wcGVkIWApO1xuICAgICAgICB0aGlzLmhhbmRsZURpc2Nvbm5lY3QoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goYXN5bmMgKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciA9PiAke2Vycn0sIFRpbWVzdGFtcDogJHtuZXcgRGF0ZSgpfWApO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJldHJ5Q29ubmVjdGlvbihjb25uZWN0aW9uOiBIdWJDb25uZWN0aW9uLCByZXRyeUNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYFNpZ25hbFIgRXN0YWJsaXNoaW5nIENvbm5lY3Rpb24uIFJldHJ5ICMke3JldHJ5Q291bnR9LiBUaW1lc3RhbXA6ICR7bmV3IERhdGUoKX1gKTtcbiAgICAgIGNvbm5lY3Rpb24uc3RhcnQoKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5kZWJ1ZyhgU2lnbmFsUiBDb25uZWN0aW9uIEVzdGFibGlzaGVkISBSZXRyeSAjJHtyZXRyeUNvdW50fWApO1xuICAgICAgICAgIHRoaXMuaGFuZGxlUmVhbFRpbWVBd2FpdGluZ1N1YnNjcmlwdGlvbnMoKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZU5vdGlmaWNhdGlvbkF3YWl0aW5nU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlnKCk7XG5cbiAgICAgICAgICBpZiAocmV0cnlDb3VudCA8PSBjb25maWcuc2lnbmFsUi5tYXhDb25zZWN1dGl2ZUZhaWxlZFJldHJ5Q291bnQpIHtcbiAgICAgICAgICAgIHRoaXMucmV0cnlDb25uZWN0aW9uKGNvbm5lY3Rpb24sIHJldHJ5Q291bnQgKyAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIGdldFNlY29uZHNCYWNrb2ZmKHJldHJ5Q291bnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUmVhbFRpbWVBd2FpdGluZ1N1YnNjcmlwdGlvbnMoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25RdWV1ZS5mb3JFYWNoKGF3YWl0aW5nU3Vic2NyaXB0aW9uID0+IGF3YWl0aW5nU3Vic2NyaXB0aW9uKCkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uUXVldWUuc3BsaWNlKDApO1xuICB9XG4gIHByaXZhdGUgaGFuZGxlTm90aWZpY2F0aW9uQXdhaXRpbmdTdWJzY3JpcHRpb24oKSB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25TdWJzY3JpcHRpb25RdWV1ZS5mb3JFYWNoKGF3YWl0aW5nU3Vic2NyaXB0aW9uID0+IGF3YWl0aW5nU3Vic2NyaXB0aW9uKCkpO1xuICAgIHRoaXMubm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uUXVldWUuc3BsaWNlKDApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEaXNjb25uZWN0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uUXVldWUgPSBbXTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblN1YnNjcmlwdGlvblF1ZXVlID0gW107XG4gICAgdGhpcy5yZWFsdGltZUV2ZW50U2VydmljZS5yZXNldEFsbFN1YnNjcmlwdGlvbnMoKTtcbiAgfVxuXG4gIEBEaXNwYXRjaCgpIGRldmljZXNTdGF0dXNDaGFuZ2VkID0gKGRldmljZVN0YXR1czogRGV2aWNlU3RhdHVzRHRvKSA9PlxuICAgIG5ldyBEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uKGRldmljZVN0YXR1cyk7XG4gIEBEaXNwYXRjaCgpIGZhY2lsaXR5Q2hhbmdlZCA9IChkYXRhOiBGYWNpbGl0eUR0bywgZ3VpZDogc3RyaW5nKSA9PlxuICAgIG5ldyBGYWNpbGl0eUNoYW5nZWRBY3Rpb24oZGF0YSwgZ3VpZCk7XG4gIEBEaXNwYXRjaCgpIHNlcnZpY2VzUnVubmluZ1N0YXR1c0NoYW5nZWQgPSAoc2VydmljZXNSdW5uaW5nU3RhdHVzOiBTZXJ2aWNlc1J1bm5pbmdTdGF0dXNEdG8sIGd1aWQ6IHN0cmluZykgPT5cbiAgICBuZXcgU2VydmljZXNSdW5uaW5nU3RhdHVzQ2hhbmdlZEFjdGlvbihzZXJ2aWNlc1J1bm5pbmdTdGF0dXMsIGd1aWQpO1xuICBARGlzcGF0Y2goKSBwYXJrQWN0aXZpdHlDaGFuZ2VkID0gKGFjdGl2aXR5OiBFdmVudEFjdGl2aXR5RHRvKSA9PlxuICAgIG5ldyBQYXJrQWN0aXZpdHlDaGFuZ2VkQWN0aW9uKGFjdGl2aXR5KTtcbiAgQERpc3BhdGNoKCkgZGV2aWNlRXZlbnRDaGFuZ2VkID0gKGRldkV2ZW50OiBEZXZpY2VFdmVudER0bykgPT5cbiAgICBuZXcgRGV2aWNlRXZlbnRDaGFuZ2VkQWN0aW9uKGRldkV2ZW50KTtcbiAgQERpc3BhdGNoKCkgZGV2aWNlQWN0aXZpdHlDaGFuZ2VkID0gKGV2ZW50QWN0aXZpdHk6IEV2ZW50QWN0aXZpdHlEdG8pID0+XG4gICAgbmV3IERldmljZUFjdGl2aXR5Q2hhbmdlZEFjdGlvbihldmVudEFjdGl2aXR5KTtcbiAgQERpc3BhdGNoKCkgbHByVHJhbnNhY3Rpb25zQ2hhbmdlZCA9IChscHJUcmFuczogTHByVHJhbnNhY3Rpb25EdG8pID0+XG4gICAgbmV3IExwclRyYW5zYWN0aW9uc0NoYW5nZWRBY3Rpb24obHByVHJhbnMpO1xuICBARGlzcGF0Y2goKSBhbGVydENoYW5nZWQgPSAoYWxlcnREdG86IEFsZXJ0RHRvLCBndWlkOiBzdHJpbmcpID0+XG4gICAgbmV3IEFsZXJ0Q2hhbmdlZEFjdGlvbihhbGVydER0bywgZ3VpZCk7XG4gIEBEaXNwYXRjaCgpIG5vdGlmaWNhdGlvbkNoYW5nZWQgPSAobm90aWZpY2F0aW9uRHRvOiBOb3RpZmljYXRpb25EdG8sIGd1aWQ6IHN0cmluZykgPT5cbiAgICBuZXcgTm90aWZpY2F0aW9uQ2hhbmdlZEFjdGlvbihub3RpZmljYXRpb25EdG8sIGd1aWQpO1xuICBARGlzcGF0Y2goKSBoYW5kbGVkTm90aWZpY2F0aW9uID0gKG5vdGlmaWNhdGlvbkR0bzogTm90aWZpY2F0aW9uRHRvLCBndWlkOiBzdHJpbmcpID0+XG4gICAgbmV3IEhhbmRsZWROb3RpZmljYXRpb25BY3Rpb24obm90aWZpY2F0aW9uRHRvLCBndWlkKTtcbiAgQERpc3BhdGNoKCkgaGFuZGxlQWxlcnRzID0gKGFsZXJ0RHRvOiBBbGVydER0bywgZ3VpZDogc3RyaW5nKSA9PlxuICAgIG5ldyBIYW5kbGVBbGVydHNBY3Rpb24oYWxlcnREdG8sIGd1aWQpO1xuICBARGlzcGF0Y2goKSBoYW5kbGVOb3RpZmljYXRpb24gPSAobm90aWZpY2F0aW9uRHRvOiBOb3RpZmljYXRpb25EdG8sIGd1aWQ6IHN0cmluZykgPT5cbiAgICBuZXcgSGFuZGxlTm90aWZpY2F0aW9uQWN0aW9uKG5vdGlmaWNhdGlvbkR0bywgZ3VpZCk7XG4gIEBEaXNwYXRjaCgpIHpvbmVDaGFuZ2VkID0gKHpvbmVEdG86IFpvbmVEdG8sIHBhcmtJZDogbnVtYmVyKSA9PlxuICAgIG5ldyBab25lQ2hhbmdlZEFjdGlvbih6b25lRHRvLCBwYXJrSWQpO1xuICBARGlzcGF0Y2goKSBpbml0aWFsaXplU21hcnRQYXJrQ29ubmVjdGlvbiA9IChzbWFydHBhcms6IFNtYXJ0cGFya0R0bykgPT5cbiAgICBuZXcgQWRkU21hcnRwYXJrQWN0aW9uKHNtYXJ0cGFyayk7XG4gIEBEaXNwYXRjaCgpIGZhY2lsaXR5UmVtb3RlQ29tbWFuZEV4ZWN1dGVkID0gKGZhY2lsaXR5UmVtb3RlQ29tbWFuZEV2ZW50OiBGYWNpbGl0eVJlbW90ZUNvbW1hbmRFdmVudCkgPT5cbiAgICBuZXcgRmFjaWxpdHlSZW1vdGVDb21tYW5kRXhlY3V0ZWRBY3Rpb24oZmFjaWxpdHlSZW1vdGVDb21tYW5kRXZlbnQpO1xufVxuXG5leHBvcnQgY2xhc3MgVGliYVJldHJ5UG9saWN5IGltcGxlbWVudHMgc2lnbmFsUi5JUmV0cnlQb2xpY3kge1xuXG4gIHByaXZhdGUgbWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50OiBudW1iZXIpIHtcbiAgICB0aGlzLm1heENvbnNlY3V0aXZlRmFpbGVkUmV0cnlDb3VudCA9IG1heENvbnNlY3V0aXZlRmFpbGVkUmV0cnlDb3VudDtcbiAgfVxuXG4gIG5leHRSZXRyeURlbGF5SW5NaWxsaXNlY29uZHMocmV0cnlDb250ZXh0OiBzaWduYWxSLlJldHJ5Q29udGV4dCk6IG51bWJlciB7XG4gICAgbGV0IG1pbGxpc2Vjb25kczogbnVtYmVyID0gbnVsbDtcbiAgICBjb25zdCBjdXJyZW50UmV0cnlDb3VudCA9IHJldHJ5Q29udGV4dC5wcmV2aW91c1JldHJ5Q291bnQgKyAxO1xuXG4gICAgaWYgKGN1cnJlbnRSZXRyeUNvdW50IDwgdGhpcy5tYXhDb25zZWN1dGl2ZUZhaWxlZFJldHJ5Q291bnQpIHtcbiAgICAgIGNvbnN0IHVuYXV0aG9yaXplZCA9IHJldHJ5Q29udGV4dC5yZXRyeVJlYXNvbi5tZXNzYWdlLmluY2x1ZGVzKGBTdGF0dXMgY29kZSAnJHtIdHRwU3RhdHVzQ29kZS5VbmF1dGhvcml6ZWR9J2ApO1xuXG4gICAgICBpZiAodW5hdXRob3JpemVkKSB7XG4gICAgICAgIGRhdGFkb2dMb2dzLmxvZ2dlci5pbmZvKGBUaWJhUmV0cnlQb2xpY3kgLT4gdW5hdXRob3JpemVkIHRva2VuLiBNZXNzYWdlOiAgJHtyZXRyeUNvbnRleHQucmV0cnlSZWFzb24ubWVzc2FnZX1gKTtcbiAgICAgICAgdGhpcy5zaWduYWxSUmVmcmVzaFRva2VuKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhZG9nTG9ncy5sb2dnZXIuaW5mbyhgVGliYVJldHJ5UG9saWN5IC0+IGZhaWxlZCBuZWdvdGlhdGlvbiAjJHtjdXJyZW50UmV0cnlDb3VudH0uIE1lc3NhZ2U6ICR7cmV0cnlDb250ZXh0LnJldHJ5UmVhc29uLm1lc3NhZ2V9YCk7XG5cbiAgICAgICAgbWlsbGlzZWNvbmRzID0gZ2V0U2Vjb25kc0JhY2tvZmYoY3VycmVudFJldHJ5Q291bnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtaWxsaXNlY29uZHM7XG4gIH1cblxuICBARGlzcGF0Y2goKSBzaWduYWxSUmVmcmVzaFRva2VuID0gKCkgPT4gbmV3IFNpZ25hbFJSZWZyZXNoVG9rZW5BY3Rpb24oKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlY29uZHNCYWNrb2ZmKHJldHJ5Q291bnQ6IG51bWJlcik6IG51bWJlciB7XG4gIGNvbnN0IGRlbGF5c1RhYmxlSW5TZWNvbmRzOiB7IFtrZXk6IG51bWJlcl06IG51bWJlcltdOyB9ID0ge1xuICAgIDE6IFs1LCAyMF0sIC8vNXMgLSAyMHNcbiAgICAyOiBbMjUsIDQwXSwgLy8gMjVzIC0gNDBzXG4gICAgMzogWzQ1LCA2MF0sIC8vIDQ1cyAtIDYwc1xuICAgIDQ6IFs2NSwgODBdLCAvLyA2NXMgLSA4MHNcbiAgICA1OiBbNjAwLCA5MDBdLCAgLy8gMTBtIC0gMTVtXG4gIH07XG4gIGNvbnN0IFttaW5TZWNvbmRzLCBtYXhTZWNvbmRzXSA9IGRlbGF5c1RhYmxlSW5TZWNvbmRzW3JldHJ5Q291bnRdIHx8IFswLCAwXTtcbiAgcmV0dXJuIChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4U2Vjb25kcyAtIG1pblNlY29uZHMgKyAxKSkgKyBtaW5TZWNvbmRzKSAqIE9ORV9TRUNPTkRfSU5fTUlMTElTRUNPTkRTO1xufVxuIl19
|
|
@@ -92816,17 +92816,17 @@ class SignalR {
|
|
|
92816
92816
|
this.devicesStatusChanged(DeviceStatusDto.fromJS(data));
|
|
92817
92817
|
break;
|
|
92818
92818
|
case RtEventType.DynamicPricingCondition:
|
|
92819
|
-
datadogLogs.logger.
|
|
92819
|
+
datadogLogs.logger.debug(`RT - Got ${JSON.stringify(data)} event`);
|
|
92820
92820
|
this.notificationChanged(NotificationDto.fromJS(data), obj.guid);
|
|
92821
92821
|
break;
|
|
92822
92822
|
case RtEventType.Alert:
|
|
92823
92823
|
case RtEventType.LostTicket:
|
|
92824
92824
|
case RtEventType.LPRmismatch:
|
|
92825
|
-
datadogLogs.logger.
|
|
92825
|
+
datadogLogs.logger.debug(`RT - Got ${JSON.stringify(data)} event`);
|
|
92826
92826
|
this.alertChanged(AlertDto$1.fromJS(data), obj.guid);
|
|
92827
92827
|
break;
|
|
92828
92828
|
case RtEventType.ParkState:
|
|
92829
|
-
datadogLogs.logger.
|
|
92829
|
+
datadogLogs.logger.debug(`RT - Got ${JSON.stringify(data)} event`);
|
|
92830
92830
|
this.deviceActivityChanged(data);
|
|
92831
92831
|
this.parkActivityChanged(data);
|
|
92832
92832
|
break;
|