@alauda-fe/storage 0.0.8 → 0.0.9

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.
@@ -370,7 +370,14 @@ export class PVCUtilService {
370
370
  }), () => ({
371
371
  disabled: pvc?.spec?.dataSource?.name && !snapshot,
372
372
  tooltip: 'pvc_data_source_not_operate',
373
- }))), publishRef());
373
+ }), () => {
374
+ const ownerReference = pvc?.metadata?.ownerReferences?.[0];
375
+ // 由 Pod (通用临时卷模版)创建的 pvc 不支持重建
376
+ return {
377
+ disabled: ownerReference?.kind === 'Pod',
378
+ tooltip: 'pvc_created_by_pod_can_not_rebuild',
379
+ };
380
+ })), publishRef());
374
381
  }
375
382
  getPvcDeleteDisabledState(pvc) {
376
383
  return getDisabledState(() => getPvcRebuildingDisabledState(pvc));
@@ -424,4 +431,4 @@ __decorate([
424
431
  providedIn: 'root',
425
432
  }]
426
433
  }], () => [{ type: i1.DialogService }, { type: i2.K8sApiService }, { type: i2.AcpCommonApiService }, { type: i3.StorageCommonUtilService }, { type: i4.HttpClient }], { getSource$: [], getPvcRebuildDisabledState$: [] }); })();
427
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHZjLXV0aWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc3RvcmFnZS9zcmMvbGliL3NlcnZpY2VzL3B2Yy11dGlsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZELE9BQU8sRUFDTCxhQUFhLEVBQ2IsZ0JBQWdCLEVBR2hCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixJQUFJLEVBQ0osbUJBQW1CLEVBR25CLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLGNBQWMsRUFDZCwyQkFBMkIsR0FDNUIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBRUwsVUFBVSxFQUNWLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxFQUFFLEVBQ0YsV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM3RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixhQUFhLEdBQ2QsTUFBTSxrQkFBa0IsQ0FBQztBQU0xQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0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IjpbImltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIERpYWxvZ1NpemUgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIEs4c0FwaVNlcnZpY2UsXG4gIGdldERpc2FibGVkU3RhdGUsXG4gIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSxcbiAgV29ya3NwYWNlLFxuICBza2lwRXJyb3IsXG4gIFN0cmluZ01hcCxcbiAgcHVibGlzaFJlZixcbiAgQ2FjaGVTdG9yZSxcbiAgQWNwQ29tbW9uQXBpU2VydmljZSxcbiAgYmluZCxcbiAgZ2V0RG9tYWluQW5ub3RhdGlvbixcbiAgUG9kLFxuICBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIEFQSV9HQVRFV0FZLFxuICBnZXRTdWJkb21haW5MYWJlbCxcbiAgdG9Vbml0R2ksXG4gIFJFU09VUkNFX1RZUEVTLFxuICBDT01NT05fUkVTT1VSQ0VfREVGSU5JVElPTlMsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBjYXRjaEVycm9yLFxuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIG9mLFxuICBzaGFyZVJlcGxheSxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEZWxldGVQdmNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3B2Yy1kZWxldGUtZGlhbG9nL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBQdmNFeHBhbmRDYXBhY2l0eURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcHZjLWV4cGFuZC1jYXBhY2l0eS1kaWFsb2cvY29tcG9uZW50JztcbmltcG9ydCB7IFJlYnVpbGRWb2x1bWVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3JlYnVpbGQtdm9sdW1lLWRpYWxvZy9jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RvcmFnZUNvbW1vblV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29tbW9uLXV0aWwuc2VydmljZSc7XG5pbXBvcnQge1xuICBTdG9yYWdlY2xhc3NGZWF0dXJlLFxuICBTdG9yYWdlUHJvdmlzaW9uZXIsXG4gIFB2Y1N0YXR1c0VudW0sXG59IGZyb20gJy4uL3R5cGVzL2NvbW1vbnMnO1xuaW1wb3J0IHtcbiAgU3RvcmFnZUNsYXNzLFxuICBWb2x1bWVTbmFwc2hvdENsYXNzLFxuICBWb2x1bWVTbmFwc2hvdCxcbn0gZnJvbSAnLi4vdHlwZXMvazhzJztcbmltcG9ydCB7IFNUT1JBR0VfUkVTT1VSQ0VfVFlQRVMgfSBmcm9tICcuLi90eXBlcy9yZXNvdXJjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7IGdldFB2Y1N0YXR1cywgaXNTdG9yYWdlQ2xhc3NTdXBwb3J0U25hcHNob3QgfSBmcm9tICcuLi91dGlscy91dGlsJztcblxuZXhwb3J0IGNvbnN0IFBWQ19TTkFQU0hPVF9GRUFUVVJFX0dBVEUgPSAndm9sdW1lLXNuYXBzaG90JztcblxuZXhwb3J0IGZ1bmN0aW9uIHB2Y1VwZGF0ZUVuYWJsZWQocmVzb3VyY2U6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkge1xuICBpZiAoIXJlc291cmNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBnZXRQdmNTdGF0dXMocmVzb3VyY2Uuc3RhdHVzKSA9PT0gUHZjU3RhdHVzRW51bS5ib3VuZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFB2Y0RlbGV0aW5nRGlzYWJsZWRTdGF0ZShwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkge1xuICByZXR1cm4ge1xuICAgIHRvb2x0aXA6ICdwdmNfZGVsZXRpbmdfY2FuX25vdF9vcGVyYXRlJyxcbiAgICBkaXNhYmxlZDogISFwdmM/Lm1ldGFkYXRhPy5kZWxldGlvblRpbWVzdGFtcCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFB2Y1JlYnVpbGRpbmdEaXNhYmxlZFN0YXRlKHB2YzogUGVyc2lzdGVudFZvbHVtZUNsYWltKSB7XG4gIHJldHVybiB7XG4gICAgdG9vbHRpcDogJ3B2Y19yZWJ1aWxkaW5nX2Nhbl9ub3Rfb3BlcmF0ZScsXG4gICAgZGlzYWJsZWQ6ICEhZ2V0RG9tYWluQW5ub3RhdGlvbigncmVidWlsZCcsIHB2YyksXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBTVE9SQUdFQ0xBU1NfRkVBVFVSRV9GRUFUVVJFX0dBVEVfTUFQOiBQYXJ0aWFsPFxuICBSZWNvcmQ8U3RvcmFnZWNsYXNzRmVhdHVyZSwgUGFydGlhbDxSZWNvcmQ8U3RvcmFnZVByb3Zpc2lvbmVyLCBzdHJpbmc+Pj5cbj4gPSB7XG4gIFtTdG9yYWdlY2xhc3NGZWF0dXJlLlNOQVBTSE9UXToge1xuICAgIFtTdG9yYWdlUHJvdmlzaW9uZXIuVE9QT0xWTV06IFBWQ19TTkFQU0hPVF9GRUFUVVJFX0dBVEUsXG4gIH0sXG59O1xuXG5leHBvcnQgZW51bSBQVkNFeHBhbmREaXNhYmxlZFJlYXNvbiB7XG4gIFBWQ19TVEFUVVNfRk9SQklEID0gJ2V4cGFuZF9wdmNfc3RhdHVzX2ZvcmJpZCcsXG4gIFdJVEhPVVRfU1RPUkFHRV9DTEFTUyA9ICdleHBhbmRfd2l0aG91dF9zdG9yYWdlX2NsYXNzJyxcbiAgU1RPUkFHRV9DTEFTU19GT1JCSUQgPSAnZXhwYW5kX3N0b3JhZ2VfY2xhc3NfZm9yYmlkJyxcbiAgU1RPUkFHRV9DTEFTU19OT1RGT1VORCA9ICdwdmNfc3RvcmFnZV9jbGFzc19ub3RfZm91bmQnLFxuICBQVkNfUkVCVUlMRElORyA9ICdwdmNfcmVidWlsZGluZycsXG4gIFBWQ19ERUxFVElORyA9ICdwdmNfZGVsZXRpbmcnLFxuICBUT1BPTFZNX1BWQ19FWElTVEVEX1NOQVBTSE9UID0gJ3B2Y19leGlzdGVkX3NuYXBzaG90Jyxcbn1cblxuZXhwb3J0IGVudW0gUFZDU25hcHNob3REaXNhYmxlZFJlYXNvbiB7XG4gIFBWQ19TVEFUVVNfRk9SQklEID0gJ3NuYXBzaG90X3B2Y19zdGF0dXNfZm9yYmlkJyxcbiAgV0lUSE9VVF9TVE9SQUdFX0NMQVNTID0gJ3NuYXBzaG90X3dpdGhvdXRfc3RvcmFnZV9jbGFzcycsXG4gIFNUT1JBR0VfQ0xBU1NfRk9SQklEID0gJ3NuYXBzaG90X3N0b3JhZ2VfY2xhc3NfZm9yYmlkJyxcbiAgU05BUFNIT1RfUExVR0lOX05PVF9JTlNUQUxMRUQgPSAnc25hcHNob3RfcGx1Z2luX25vdF9pbnN0YWxsZWQnLFxuICBTVE9SQUdFX0NMQVNTX05PVEZPVU5EID0gJ3B2Y19zdG9yYWdlX2NsYXNzX25vdF9mb3VuZCcsXG4gIFNOQVBTSE9UX1VOU1VQUE9SVEVEID0gJ3NuYXBzaG90X3Vuc3VwcG9ydGVkJyxcbiAgUFZDX1JFQlVJTERJTkcgPSAncHZjX3JlYnVpbGRpbmcnLFxuICBQVkNfREVMRVRJTkcgPSAncHZjX2RlbGV0aW5nJyxcbiAgUFZDX0VYUEFORElORyA9ICdwdmNfZXhwYW5kaW5nJyxcbn1cblxuZXhwb3J0IHR5cGUgUFZDQWN0aW9uU3RhdGVGbiA9IChcbiAgcHZjOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0sXG4gIG1hcHBlcj86IFBWQ0FjdGlvblRvb2x0aXBNYXBwZXIsXG4pID0+IFBWQ0FjdGlvblN0YXRlO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBWQ0FjdGlvblN0YXRlIHtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHJlYXNvbj86IFBWQ0V4cGFuZERpc2FibGVkUmVhc29uIHwgUFZDU25hcHNob3REaXNhYmxlZFJlYXNvbjtcbiAgdG9vbHRpcD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUFZDQWN0aW9uVG9vbHRpcE1hcHBlciA9IChcbiAgcmVhc29uOiBQVkNFeHBhbmREaXNhYmxlZFJlYXNvbiB8IFBWQ1NuYXBzaG90RGlzYWJsZWRSZWFzb24sXG4pID0+IHN0cmluZztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRQVkNFeHBhbmRUb29sdGlwTWFwcGVyKHJlYXNvbjogUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24pIHtcbiAgc3dpdGNoIChyZWFzb24pIHtcbiAgICBjYXNlIFBWQ0V4cGFuZERpc2FibGVkUmVhc29uLlBWQ19TVEFUVVNfRk9SQklEOiB7XG4gICAgICByZXR1cm4gJ3B2Y19zdGF0dXNfZm9yYmlkX2V4cGFuc2lvbic7XG4gICAgfVxuICAgIGNhc2UgUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24uV0lUSE9VVF9TVE9SQUdFX0NMQVNTOiB7XG4gICAgICByZXR1cm4gJ3B2Y19zdGF0aWNfZm9yYmlkX2V4cGFuc2lvbic7XG4gICAgfVxuICAgIGNhc2UgUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24uU1RPUkFHRV9DTEFTU19GT1JCSUQ6IHtcbiAgICAgIHJldHVybiAncHZjX3N0b3JhZ2VjbGFzc19mb3JiaWRfZXhwYW5zaW9uJztcbiAgICB9XG4gICAgY2FzZSBQVkNFeHBhbmREaXNhYmxlZFJlYXNvbi5TVE9SQUdFX0NMQVNTX05PVEZPVU5EOiB7XG4gICAgICByZXR1cm4gJ3B2Y19zdG9yYWdlX2NsYXNzX25vdF9mb3VuZCc7XG4gICAgfVxuICAgIGNhc2UgUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24uUFZDX1JFQlVJTERJTkc6IHtcbiAgICAgIHJldHVybiAncHZjX3JlYnVpbGRpbmdfY2FuX25vdF9vcGVyYXRlJztcbiAgICB9XG4gICAgY2FzZSBQVkNFeHBhbmREaXNhYmxlZFJlYXNvbi5QVkNfREVMRVRJTkc6IHtcbiAgICAgIHJldHVybiAncHZjX2RlbGV0aW5nX2Nhbl9ub3Rfb3BlcmF0ZSc7XG4gICAgfVxuICAgIGNhc2UgUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24uVE9QT0xWTV9QVkNfRVhJU1RFRF9TTkFQU0hPVDoge1xuICAgICAgcmV0dXJuICdwdmNfZXhpc3RlZF9zbmFwc2hvdF9mb3JiaWRfZXhwYW5zaW9uJztcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFBWQ1NuYXBzaG90VG9vbHRpcE1hcHBlcihcbiAgcmVhc29uOiBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLFxuKSB7XG4gIHN3aXRjaCAocmVhc29uKSB7XG4gICAgY2FzZSBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlBWQ19TVEFUVVNfRk9SQklEOiB7XG4gICAgICByZXR1cm4gJ3B2Y19zdGF0dXNfZm9yYmlkX3NuYXBzaG90JztcbiAgICB9XG4gICAgY2FzZSBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLldJVEhPVVRfU1RPUkFHRV9DTEFTUzpcbiAgICBjYXNlIFBWQ1NuYXBzaG90RGlzYWJsZWRSZWFzb24uU05BUFNIT1RfVU5TVVBQT1JURUQ6IHtcbiAgICAgIHJldHVybiAndW5zdXBwb3J0ZWRfdm9sdW1lX3NuYXBzaG90JztcbiAgICB9XG4gICAgY2FzZSBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlNUT1JBR0VfQ0xBU1NfTk9URk9VTkQ6IHtcbiAgICAgIHJldHVybiAncHZjX3N0b3JhZ2VfY2xhc3Nfbm90X2ZvdW5kJztcbiAgICB9XG4gICAgY2FzZSBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlNUT1JBR0VfQ0xBU1NfRk9SQklEOiB7XG4gICAgICByZXR1cm4gJ3NuYXBzaG90X2Rpc2FibGVkX3RpcCc7XG4gICAgfVxuICAgIGNhc2UgUFZDU25hcHNob3REaXNhYmxlZFJlYXNvbi5TTkFQU0hPVF9QTFVHSU5fTk9UX0lOU1RBTExFRDoge1xuICAgICAgcmV0dXJuICdzbmFwc2hvdF9wbHVnaW5fZGlzYWJsZWRfdGlwJztcbiAgICB9XG4gICAgY2FzZSBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlBWQ19ERUxFVElORzoge1xuICAgICAgcmV0dXJuICdwdmNfZGVsZXRpbmdfY2FuX25vdF9vcGVyYXRlJztcbiAgICB9XG4gICAgY2FzZSBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlBWQ19FWFBBTkRJTkc6IHtcbiAgICAgIHJldHVybiAncHZjX2V4cGFuc2lvbl9mb3JiaWRfc25hcHNob3QnO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQVkNVdGlsU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzQXBpOiBLOHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNwQXBpOiBBY3BDb21tb25BcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZUNvbW1vblV0aWw6IFN0b3JhZ2VDb21tb25VdGlsU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICkge1xuICAgIHRoaXMuZ2V0UHZjRXhwYW5kU3RhdGUgPSB0aGlzLmdldFB2Y0V4cGFuZFN0YXRlLmJpbmQodGhpcyk7XG4gIH1cblxuICBnZXRSZWxhdGVkUG9kcyhjbHVzdGVyOiBzdHJpbmcsIG5hbWVzcGFjZTogc3RyaW5nLCBwdmNOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PFxuICAgICAgICBQb2RbXVxuICAgICAgPihgJHtBUElfR0FURVdBWX0vYWNwL3YxL2t1YmVybmV0ZXMvJHtjbHVzdGVyfS9uYW1lc3BhY2VzLyR7bmFtZXNwYWNlfS9wZXJzaXN0ZW50dm9sdW1lY2xhaW1zLyR7cHZjTmFtZX0vcmVsYXRlZHBvZHNgKVxuICAgICAgLnBpcGUoc2tpcEVycm9yKFtdIGFzIFBvZFtdKSk7XG4gIH1cblxuICBzdG9yYWdlQ2xhc3NMaXN0Q2FjaGUgPSBuZXcgQ2FjaGVTdG9yZSh7XG4gICAgZmV0Y2hlcjogKHdvcmtzcGFjZTogV29ya3NwYWNlKSA9PiB0aGlzLmdldFN0b3JhZ2VDbGFzc0xpc3QkKHdvcmtzcGFjZSksXG4gICAgc2hhcmU6ICgpID0+IHNoYXJlUmVwbGF5KDEpLFxuICB9KTtcblxuICB2b2x1bWVTbmFwc2hvdExpc3RDYXRjaCA9IG5ldyBDYWNoZVN0b3JlKHtcbiAgICBmZXRjaGVyOiAod29ya3NwYWNlOiBXb3Jrc3BhY2UpID0+IHRoaXMuZ2V0Vm9sdW1lU25hcHNob3RMaXN0JCh3b3Jrc3BhY2UpLFxuICAgIHNoYXJlOiAoKSA9PiBzaGFyZVJlcGxheSgxKSxcbiAgfSk7XG5cbiAgdm9sdW1lU25hcHNob3RDbGFzc0xpc3RDYWNoZSA9IG5ldyBDYWNoZVN0b3JlKHtcbiAgICBmZXRjaGVyOiAod29ya3NwYWNlOiBXb3Jrc3BhY2UpID0+XG4gICAgICB0aGlzLmdldFZvbHVtZVNuYXBzaG90Q2xhc3NMaXN0JCh3b3Jrc3BhY2UpLFxuICAgIHNoYXJlOiAoKSA9PiBzaGFyZVJlcGxheSgxKSxcbiAgfSk7XG5cbiAgc25hcHNob3RQbHVnaW5DYWNoZSA9IG5ldyBDYWNoZVN0b3JlKHtcbiAgICBmZXRjaGVyOiAod29ya3NwYWNlOiBXb3Jrc3BhY2UpID0+XG4gICAgICB0aGlzLmdldFZvbHVtZVNuYXBzaG90RW5hYmxlZCQod29ya3NwYWNlKSxcbiAgICBzaGFyZTogKCkgPT4gc2hhcmVSZXBsYXkoMSksXG4gIH0pO1xuXG4gIEBiaW5kXG4gIGdldFNvdXJjZSQocG9kOiBQb2QsIGNsdXN0ZXI6IHN0cmluZywgbmFtZXNwYWNlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gb2YocG9kKS5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQodGhpcy5zYW1lT3duZXJSZWZlcmVuY2UpLFxuICAgICAgZmlsdGVyKGkgPT4gISFpKSxcbiAgICAgIHN3aXRjaE1hcChkYXRhID0+IHRoaXMuZ2V0U291cmNlSW5mbyQoZGF0YSwgY2x1c3RlciwgbmFtZXNwYWNlKSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U291cmNlSW5mbyQoXG4gICAgcmVzb3VyY2U6IEt1YmVybmV0ZXNSZXNvdXJjZSxcbiAgICBjbHVzdGVyOiBzdHJpbmcsXG4gICAgbmFtZXNwYWNlOiBzdHJpbmcsXG4gICk6IE9ic2VydmFibGU8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBraW5kOiBzdHJpbmc7XG4gIH0+IHtcbiAgICBjb25zdCBvd25lclJlZiA9IHJlc291cmNlLm1ldGFkYXRhLm93bmVyUmVmZXJlbmNlcz8uWzBdO1xuICAgIC8vIOaXoCBvd25lclJlZu+8jOS4jeaYvuekulxuICAgIGlmICghb3duZXJSZWYpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICBpZiAob3duZXJSZWYua2luZCAhPT0gJ1JlcGxpY2FTZXQnKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICBuYW1lOiBvd25lclJlZi5uYW1lLFxuICAgICAgICBraW5kOiBvd25lclJlZi5raW5kLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAuZ2V0UmVzb3VyY2U8S3ViZXJuZXRlc1Jlc291cmNlPih7XG4gICAgICAgIHR5cGU6IFJFU09VUkNFX1RZUEVTLlJFUExJQ0FfU0VULFxuICAgICAgICBuYW1lOiBvd25lclJlZi5uYW1lLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIGNsdXN0ZXIsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChyZXNvdXJjZSA9PlxuICAgICAgICAgIHRoaXMuZ2V0U291cmNlSW5mbyQocmVzb3VyY2UsIGNsdXN0ZXIsIG5hbWVzcGFjZSksXG4gICAgICAgICksXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzYW1lT3duZXJSZWZlcmVuY2UoYTogUG9kLCBiOiBQb2QpIHtcbiAgICBjb25zdCBhUmVmID0gYS5tZXRhZGF0YS5vd25lclJlZmVyZW5jZXM/LlswXTtcbiAgICBjb25zdCBiUmVmID0gYi5tZXRhZGF0YS5vd25lclJlZmVyZW5jZXM/LlswXTtcbiAgICByZXR1cm4gYVJlZiAmJiBiUmVmICYmIGFSZWYubmFtZSA9PT0gYlJlZi5uYW1lICYmIGFSZWYua2luZCA9PT0gYlJlZi5raW5kO1xuICB9XG5cbiAgZGVsZXRlKHB2YzogUGVyc2lzdGVudFZvbHVtZUNsYWltLCBjbHVzdGVyOiBzdHJpbmcsIG5hbWVzcGFjZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nLm9wZW4oRGVsZXRlUHZjRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBzaXplOiBEaWFsb2dTaXplLkJpZyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgcHZjLFxuICAgICAgICBjbHVzdGVyLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcmVidWlsZChwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSwgY2x1c3Rlcjogc3RyaW5nLCBuYW1lc3BhY2U6IHN0cmluZykge1xuICAgIHRoaXMuZGlhbG9nLm9wZW4oUmVidWlsZFZvbHVtZURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgc2l6ZTogRGlhbG9nU2l6ZS5CaWcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHB2YyxcbiAgICAgICAgY2x1c3RlcixcbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGV4dGVuZENhcGFjaXR5KFxuICAgIHJlc291cmNlOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0sXG4gICAgY2x1c3Rlcjogc3RyaW5nLFxuICAgIG5hbWVzcGFjZTogc3RyaW5nLFxuICAgIGlzVk0/OiBib29sZWFuLFxuICApIHtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2cub3BlbihQdmNFeHBhbmRDYXBhY2l0eURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgICAgY2x1c3RlcixcbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgICBpc1ZNLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldFZvbHVtZVNuYXBzaG90RW5hYmxlZCQoeyBuYW1lc3BhY2UsIGNsdXN0ZXIgfTogV29ya3NwYWNlKSB7XG4gICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAuZ2V0UmVzb3VyY2VMaXN0KHtcbiAgICAgICAgdHlwZTogU1RPUkFHRV9SRVNPVVJDRV9UWVBFUy5WT0xVTUVfU05BUFNIT1QsXG4gICAgICAgIGNsdXN0ZXIsXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihmYWxzZSkpLFxuICAgICAgICBtYXAocmVzID0+ICEhcmVzKSxcbiAgICAgICAgcHVibGlzaFJlZigpLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RvcmFnZUNsYXNzTGlzdCQoeyBwcm9qZWN0LCBjbHVzdGVyIH06IFdvcmtzcGFjZSkge1xuICAgIHJldHVybiB0aGlzLmFjcEFwaVxuICAgICAgLmdldFJlc291cmNlc0J5UHJvamVjdDxTdG9yYWdlQ2xhc3M+KHByb2plY3QsIHtcbiAgICAgICAgY2x1c3RlcixcbiAgICAgICAgLi4uQ09NTU9OX1JFU09VUkNFX0RFRklOSVRJT05TLlNUT1JBR0VfQ0xBU1MsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXMgPT4gcmVzLml0ZW1zKSxcbiAgICAgICAgc2tpcEVycm9yKFtdIGFzIFN0b3JhZ2VDbGFzc1tdKSxcbiAgICAgICAgcHVibGlzaFJlZigpLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Vm9sdW1lU25hcHNob3RMaXN0JCh7IGNsdXN0ZXIsIG5hbWVzcGFjZSB9OiBXb3Jrc3BhY2UpIHtcbiAgICByZXR1cm4gdGhpcy5rOHNBcGlcbiAgICAgIC5nZXRSZXNvdXJjZUxpc3Q8Vm9sdW1lU25hcHNob3Q+KHtcbiAgICAgICAgdHlwZTogU1RPUkFHRV9SRVNPVVJDRV9UWVBFUy5WT0xVTUVfU05BUFNIT1QsXG4gICAgICAgIGNsdXN0ZXIsXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHIgPT4gci5pdGVtcyksXG4gICAgICAgIHNraXBFcnJvcihbXSBhcyBWb2x1bWVTbmFwc2hvdFtdKSxcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFZvbHVtZVNuYXBzaG90Q2xhc3NMaXN0JCh7IGNsdXN0ZXIgfTogV29ya3NwYWNlKSB7XG4gICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAuZ2V0UmVzb3VyY2VMaXN0PFZvbHVtZVNuYXBzaG90Q2xhc3M+KHtcbiAgICAgICAgdHlwZTogUkVTT1VSQ0VfVFlQRVMuVk9MVU1FX1NOQVBTSE9UX0NMQVNTLFxuICAgICAgICBjbHVzdGVyLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAociA9PiByLml0ZW1zKSxcbiAgICAgICAgc2tpcEVycm9yKFtdIGFzIFZvbHVtZVNuYXBzaG90Q2xhc3NbXSksXG4gICAgICApO1xuICB9XG5cbiAgZ2V0UHZjRXhwYW5kU3RhdGVGbiQod29ya3NwYWNlOiBXb3Jrc3BhY2UpOiBPYnNlcnZhYmxlPFBWQ0FjdGlvblN0YXRlRm4+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN0b3JhZ2VDbGFzc0xpc3RDYWNoZS5mZXRjaCh3b3Jrc3BhY2UpLFxuICAgICAgdGhpcy52b2x1bWVTbmFwc2hvdExpc3RDYXRjaC5mZXRjaCh3b3Jrc3BhY2UpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbc2NMaXN0LCB2c0xpc3RdKSA9PlxuICAgICAgICAgIChwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSwgbWFwcGVyPzogUFZDQWN0aW9uVG9vbHRpcE1hcHBlcikgPT5cbiAgICAgICAgICAgIHRoaXMuZ2V0UHZjRXhwYW5kU3RhdGUoe1xuICAgICAgICAgICAgICBwdmMsXG4gICAgICAgICAgICAgIHNjTGlzdCxcbiAgICAgICAgICAgICAgdnNMaXN0LFxuICAgICAgICAgICAgICBtYXBwZXIsXG4gICAgICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBzdGFydFdpdGgoKCkgPT4gbnVsbCksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgfVxuXG4gIGdldFB2Y1NuYXBzaG90U3RhdGVGbiQod29ya3NwYWNlOiBXb3Jrc3BhY2UpOiBPYnNlcnZhYmxlPFBWQ0FjdGlvblN0YXRlRm4+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnNuYXBzaG90UGx1Z2luQ2FjaGUuZmV0Y2god29ya3NwYWNlKSxcbiAgICAgIHRoaXMuc3RvcmFnZUNsYXNzTGlzdENhY2hlLmZldGNoKHdvcmtzcGFjZSksXG4gICAgICB0aGlzLnZvbHVtZVNuYXBzaG90Q2xhc3NMaXN0Q2FjaGUuZmV0Y2god29ya3NwYWNlKSxcbiAgICAgIHRoaXMuc3RvcmFnZUNvbW1vblV0aWwuc3RvcmFnZURlc2NyaXB0aW9uTWFwQ2FjaGUuZmV0Y2gobnVsbCksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFtwbHVnaW5FbmFibGVkLCBzY0xpc3QsIHZzY0xpc3QsIHN0b3JhZ2VEZXNjcmlwdGlvbkxpc3RdKSA9PlxuICAgICAgICAgIChwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSwgbWFwcGVyPzogUFZDQWN0aW9uVG9vbHRpcE1hcHBlcikgPT5cbiAgICAgICAgICAgIHRoaXMuZ2V0UHZjU25hcHNob3RTdGF0ZSh7XG4gICAgICAgICAgICAgIHB2YyxcbiAgICAgICAgICAgICAgc2NMaXN0LFxuICAgICAgICAgICAgICB2c2NMaXN0LFxuICAgICAgICAgICAgICBwbHVnaW5FbmFibGVkLFxuICAgICAgICAgICAgICBzdG9yYWdlRGVzY3JpcHRpb25MaXN0LFxuICAgICAgICAgICAgICBtYXBwZXIsXG4gICAgICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBzdGFydFdpdGgoKCkgPT4gbnVsbCksIC8vIHVzaW5nIGFzeW5jIHdpbGwgZW1pdCAnbnVsbCcgYW5kIHJlc3VsdCBpbiBlcnJvciBpbiBwdXJlIHBpcGVcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0UHZjRXhwYW5kU3RhdGUoe1xuICAgIHB2YyxcbiAgICBzY0xpc3QgPSBbXSxcbiAgICB2c0xpc3QgPSBbXSxcbiAgICBtYXBwZXIgPSBkZWZhdWx0UFZDRXhwYW5kVG9vbHRpcE1hcHBlcixcbiAgfToge1xuICAgIHB2YzogUGVyc2lzdGVudFZvbHVtZUNsYWltO1xuICAgIHNjTGlzdDogU3RvcmFnZUNsYXNzW107XG4gICAgdnNMaXN0OiBWb2x1bWVTbmFwc2hvdFtdO1xuICAgIG1hcHBlcj86IFBWQ0FjdGlvblRvb2x0aXBNYXBwZXI7XG4gIH0pIHtcbiAgICBjb25zdCBjYW5VcGRhdGUgPSBwdmNVcGRhdGVFbmFibGVkKHB2Yyk7XG5cbiAgICBjb25zdCBpc1N0YXRpY1B2YyA9IHB2Yy5zcGVjLnN0b3JhZ2VDbGFzc05hbWUgPT09ICcnO1xuXG4gICAgY29uc3Qgc2MgPSBzY0xpc3QuZmluZChcbiAgICAgIGl0ZW0gPT4gaXRlbS5tZXRhZGF0YS5uYW1lID09PSBwdmMuc3BlYy5zdG9yYWdlQ2xhc3NOYW1lLFxuICAgICk7XG5cbiAgICBsZXQgc3VwcG9ydEV4cGFuc2lvbiA9IGZhbHNlO1xuICAgIGxldCBpc1RvcG9MVk1QdmNXaXRoU25hcHNob3QgPSBmYWxzZTtcbiAgICBpZiAoc2MpIHtcbiAgICAgIHN1cHBvcnRFeHBhbnNpb24gPSB0aGlzLnN0b3JhZ2VDb21tb25VdGlsLmlzU3RvcmFnZUNsYXNzRmVhdHVyZVN1cHBvcnRlZChcbiAgICAgICAgc2MsXG4gICAgICAgIFN0b3JhZ2VjbGFzc0ZlYXR1cmUuRVhQQU5TSU9OLFxuICAgICAgKTtcbiAgICAgIGlzVG9wb0xWTVB2Y1dpdGhTbmFwc2hvdCA9XG4gICAgICAgIHNjLnByb3Zpc2lvbmVyID09PSBTdG9yYWdlUHJvdmlzaW9uZXIuVE9QT0xWTSAmJlxuICAgICAgICB2c0xpc3Quc29tZShcbiAgICAgICAgICBzbmFwc2hvdCA9PlxuICAgICAgICAgICAgZ2V0U3ViZG9tYWluTGFiZWwoJ3NuYXBzaG90JywgJ3NvdXJjZXB2YycsIHNuYXBzaG90KSA9PT1cbiAgICAgICAgICAgIHB2Yy5tZXRhZGF0YS5uYW1lLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHB2Y1JlYnVpbGRpbmcgPSAhIWdldERvbWFpbkFubm90YXRpb24oJ3JlYnVpbGQnLCBwdmMpO1xuXG4gICAgY29uc3QgcHZjRGVsZXRpbmcgPSAhIXB2Yz8ubWV0YWRhdGE/LmRlbGV0aW9uVGltZXN0YW1wO1xuXG4gICAgY29uc3QgcmVhc29uID0gdGhpcy5nZXRQdmNFeHBhbmREaXNhYmxlZFJlYXNvbihcbiAgICAgIGNhblVwZGF0ZSxcbiAgICAgIHNjLFxuICAgICAgc3VwcG9ydEV4cGFuc2lvbixcbiAgICAgIHB2Y1JlYnVpbGRpbmcsXG4gICAgICBwdmNEZWxldGluZyxcbiAgICAgIGlzU3RhdGljUHZjLFxuICAgICAgaXNUb3BvTFZNUHZjV2l0aFNuYXBzaG90LFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGlzYWJsZWQ6XG4gICAgICAgIHB2Y1JlYnVpbGRpbmcgfHxcbiAgICAgICAgcHZjRGVsZXRpbmcgfHxcbiAgICAgICAgIWNhblVwZGF0ZSB8fFxuICAgICAgICBpc1N0YXRpY1B2YyB8fFxuICAgICAgICBpc1RvcG9MVk1QdmNXaXRoU25hcHNob3QgfHxcbiAgICAgICAgIXN1cHBvcnRFeHBhbnNpb24sXG4gICAgICByZWFzb24sXG4gICAgICB0b29sdGlwOiBtYXBwZXIocmVhc29uKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQdmNFeHBhbmREaXNhYmxlZFJlYXNvbihcbiAgICBjYW5VcGRhdGU6IGJvb2xlYW4sXG4gICAgc2M6IFN0b3JhZ2VDbGFzcyxcbiAgICBzdXBwb3J0RXhwYW5kOiBib29sZWFuLFxuICAgIGlzUHZjUmVidWlsZGluZzogYm9vbGVhbixcbiAgICBpc1B2Y0RlbGV0aW5nOiBib29sZWFuLFxuICAgIGlzU3RhdGljUHZjOiBib29sZWFuLFxuICAgIGlzVG9wb0xWTVB2Y1dpdGhTbmFwc2hvdDogYm9vbGVhbixcbiAgKSB7XG4gICAgaWYgKGlzUHZjUmVidWlsZGluZykge1xuICAgICAgcmV0dXJuIFBWQ0V4cGFuZERpc2FibGVkUmVhc29uLlBWQ19SRUJVSUxESU5HO1xuICAgIH1cblxuICAgIGlmIChpc1B2Y0RlbGV0aW5nKSB7XG4gICAgICByZXR1cm4gUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24uUFZDX0RFTEVUSU5HO1xuICAgIH1cblxuICAgIGlmICghc2MpIHtcbiAgICAgIHJldHVybiBpc1N0YXRpY1B2Y1xuICAgICAgICA/IFBWQ0V4cGFuZERpc2FibGVkUmVhc29uLldJVEhPVVRfU1RPUkFHRV9DTEFTU1xuICAgICAgICA6IFBWQ0V4cGFuZERpc2FibGVkUmVhc29uLlNUT1JBR0VfQ0xBU1NfTk9URk9VTkQ7XG4gICAgfVxuXG4gICAgaWYgKGlzVG9wb0xWTVB2Y1dpdGhTbmFwc2hvdCkge1xuICAgICAgcmV0dXJuIFBWQ0V4cGFuZERpc2FibGVkUmVhc29uLlRPUE9MVk1fUFZDX0VYSVNURURfU05BUFNIT1Q7XG4gICAgfVxuXG4gICAgaWYgKCFzdXBwb3J0RXhwYW5kKSB7XG4gICAgICByZXR1cm4gUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24uU1RPUkFHRV9DTEFTU19GT1JCSUQ7XG4gICAgfVxuXG4gICAgaWYgKCFjYW5VcGRhdGUpIHtcbiAgICAgIHJldHVybiBQVkNFeHBhbmREaXNhYmxlZFJlYXNvbi5QVkNfU1RBVFVTX0ZPUkJJRDtcbiAgICB9XG4gIH1cblxuICBnZXRQdmNTbmFwc2hvdFN0YXRlKHtcbiAgICBwdmMsXG4gICAgc2NMaXN0ID0gW10sXG4gICAgdnNjTGlzdCA9IFtdLFxuICAgIHBsdWdpbkVuYWJsZWQgPSBmYWxzZSxcbiAgICBzdG9yYWdlRGVzY3JpcHRpb25MaXN0LFxuICAgIG1hcHBlciA9IGRlZmF1bHRQVkNTbmFwc2hvdFRvb2x0aXBNYXBwZXIsXG4gIH06IHtcbiAgICBwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbTtcbiAgICBzY0xpc3Q6IFN0b3JhZ2VDbGFzc1tdO1xuICAgIHZzY0xpc3Q6IFZvbHVtZVNuYXBzaG90Q2xhc3NbXTtcbiAgICBwbHVnaW5FbmFibGVkOiBib29sZWFuO1xuICAgIHN0b3JhZ2VEZXNjcmlwdGlvbkxpc3Q6IFN0cmluZ01hcFtdO1xuICAgIG1hcHBlcj86IFBWQ0FjdGlvblRvb2x0aXBNYXBwZXI7XG4gIH0pIHtcbiAgICBjb25zdCBjYW5VcGRhdGUgPSBwdmNVcGRhdGVFbmFibGVkKHB2Yyk7XG5cbiAgICBjb25zdCBpc1N0YXRpY1B2YyA9IHB2Yz8uc3BlYz8uc3RvcmFnZUNsYXNzTmFtZSA9PT0gJyc7XG5cbiAgICBjb25zdCBzYyA9IHNjTGlzdC5maW5kKFxuICAgICAgaXRlbSA9PiBpdGVtLm1ldGFkYXRhLm5hbWUgPT09IHB2Yz8uc3BlYz8uc3RvcmFnZUNsYXNzTmFtZSxcbiAgICApO1xuXG4gICAgbGV0IHN1cHBvcnRTbmFwc2hvdCA9IGZhbHNlO1xuXG4gICAgaWYgKHNjKSB7XG4gICAgICBjb25zdCB0aGlyZFBhcnR5U25hcHNob3QgPVxuICAgICAgICB0aGlzLnN0b3JhZ2VDb21tb25VdGlsLmdldFRoaXJkUGFydHlTbmFwc2hvdFN1cHBvcnRlZChcbiAgICAgICAgICBzYyxcbiAgICAgICAgICBzdG9yYWdlRGVzY3JpcHRpb25MaXN0LFxuICAgICAgICApO1xuICAgICAgLy8gbnVsbCDooajnpLrmnKrljLnphY3liLDnrKzkuInmlrnnsbvlnovlrZjlgqhcbiAgICAgIHN1cHBvcnRTbmFwc2hvdCA9XG4gICAgICAgIHRoaXJkUGFydHlTbmFwc2hvdCA9PT0gbnVsbFxuICAgICAgICAgID8gaXNTdG9yYWdlQ2xhc3NTdXBwb3J0U25hcHNob3Qoc2MsIHZzY0xpc3QpXG4gICAgICAgICAgOiB0aGlyZFBhcnR5U25hcHNob3Q7XG4gICAgfVxuXG4gICAgY29uc3QgcHZjRGVsZXRpbmcgPSAhIXB2Yz8ubWV0YWRhdGE/LmRlbGV0aW9uVGltZXN0YW1wO1xuICAgIGNvbnN0IHB2Y0V4cGFuZGluZyA9XG4gICAgICB0b1VuaXRHaShwdmM/LnNwZWM/LnJlc291cmNlcz8ucmVxdWVzdHM/LnN0b3JhZ2UpID5cbiAgICAgIHRvVW5pdEdpKHB2Yz8uc3RhdHVzPy5jYXBhY2l0eT8uc3RvcmFnZSk7XG5cbiAgICBjb25zdCByZWFzb24gPSB0aGlzLmdldFB2Y1NuYXBzaG90RGlzYWJsZWRSZWFzb24oXG4gICAgICBjYW5VcGRhdGUsXG4gICAgICBzYyxcbiAgICAgIHBsdWdpbkVuYWJsZWQsXG4gICAgICBzdXBwb3J0U25hcHNob3QsXG4gICAgICBpc1N0YXRpY1B2YyxcbiAgICAgIHB2Y0RlbGV0aW5nLFxuICAgICAgcHZjRXhwYW5kaW5nLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGlzYWJsZWQ6XG4gICAgICAgIHB2Y0RlbGV0aW5nIHx8XG4gICAgICAgICFwbHVnaW5FbmFibGVkIHx8XG4gICAgICAgICFjYW5VcGRhdGUgfHxcbiAgICAgICAgcHZjRXhwYW5kaW5nIHx8XG4gICAgICAgIGlzU3RhdGljUHZjIHx8XG4gICAgICAgICFzdXBwb3J0U25hcHNob3QsXG4gICAgICByZWFzb24sXG4gICAgICB0b29sdGlwOiBtYXBwZXIocmVhc29uKSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0UHZjVXBkYXRlRGlzYWJsZWRTdGF0ZShwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkge1xuICAgIHJldHVybiBnZXREaXNhYmxlZFN0YXRlKFxuICAgICAgKCkgPT4gZ2V0UHZjUmVidWlsZGluZ0Rpc2FibGVkU3RhdGUocHZjKSxcbiAgICAgICgpID0+IGdldFB2Y0RlbGV0aW5nRGlzYWJsZWRTdGF0ZShwdmMpLFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgdG9vbHRpcDogJ3B2Y19zdGF0dXNfZm9yYmlkX3VwZGF0ZScsXG4gICAgICAgIGRpc2FibGVkOiAhcHZjVXBkYXRlRW5hYmxlZChwdmMpLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIEBiaW5kXG4gIGdldFB2Y1JlYnVpbGREaXNhYmxlZFN0YXRlJChcbiAgICBwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSxcbiAgICBjbHVzdGVyOiBzdHJpbmcsXG4gICAgbmFtZXNwYWNlOiBzdHJpbmcsXG4gICkge1xuICAgIGNvbnN0IGRhdGFTb3VyY2VOYW1lID0gcHZjPy5zcGVjPy5kYXRhU291cmNlPy5uYW1lO1xuICAgIGNvbnN0IHJlc291cmNlJCA9IGRhdGFTb3VyY2VOYW1lXG4gICAgICA/IHRoaXMuazhzQXBpXG4gICAgICAgICAgLmdldFJlc291cmNlKHtcbiAgICAgICAgICAgIHR5cGU6IFNUT1JBR0VfUkVTT1VSQ0VfVFlQRVMuVk9MVU1FX1NOQVBTSE9ULFxuICAgICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgICAgIG5hbWU6IGRhdGFTb3VyY2VOYW1lLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnBpcGUoc2tpcEVycm9yKG51bGwpKVxuICAgICAgOiBvZihudWxsKTtcblxuICAgIHJldHVybiByZXNvdXJjZSQucGlwZShcbiAgICAgIG1hcChzbmFwc2hvdCA9PlxuICAgICAgICBnZXREaXNhYmxlZFN0YXRlKFxuICAgICAgICAgICgpID0+IGdldFB2Y1JlYnVpbGRpbmdEaXNhYmxlZFN0YXRlKHB2YyksXG4gICAgICAgICAgKCkgPT4gZ2V0UHZjRGVsZXRpbmdEaXNhYmxlZFN0YXRlKHB2YyksXG4gICAgICAgICAgKCkgPT4gKHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBwdmM/LnNwZWM/LnN0b3JhZ2VDbGFzc05hbWUgPT09ICcnLFxuICAgICAgICAgICAgdG9vbHRpcDogJ29ubHlfc3VwcG9ydGVkX3JlYnVpbGRfZHluYW1pY19wdmMnLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgICgpID0+ICh7XG4gICAgICAgICAgICBkaXNhYmxlZDogcHZjPy5zcGVjPy5kYXRhU291cmNlPy5uYW1lICYmICFzbmFwc2hvdCxcbiAgICAgICAgICAgIHRvb2x0aXA6ICdwdmNfZGF0YV9zb3VyY2Vfbm90X29wZXJhdGUnLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0UHZjRGVsZXRlRGlzYWJsZWRTdGF0ZShwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkge1xuICAgIHJldHVybiBnZXREaXNhYmxlZFN0YXRlKCgpID0+IGdldFB2Y1JlYnVpbGRpbmdEaXNhYmxlZFN0YXRlKHB2YykpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQdmNTbmFwc2hvdERpc2FibGVkUmVhc29uKFxuICAgIGNhblVwZGF0ZTogYm9vbGVhbixcbiAgICBzYzogU3RvcmFnZUNsYXNzLFxuICAgIHBsdWdpbkVuYWJsZWQ6IGJvb2xlYW4sXG4gICAgc3VwcG9ydFNuYXBzaG90OiBib29sZWFuLFxuICAgIGlzU3RhdGljUHZjOiBib29sZWFuLFxuICAgIGlzUHZjRGVsZXRpbmc6IGJvb2xlYW4sXG4gICAgaXNQdmNFeHBhbmRpbmc6IGJvb2xlYW4sXG4gICkge1xuICAgIGlmIChpc1B2Y0RlbGV0aW5nKSB7XG4gICAgICByZXR1cm4gUFZDU25hcHNob3REaXNhYmxlZFJlYXNvbi5QVkNfREVMRVRJTkc7XG4gICAgfVxuXG4gICAgaWYgKCFwbHVnaW5FbmFibGVkKSB7XG4gICAgICByZXR1cm4gUFZDU25hcHNob3REaXNhYmxlZFJlYXNvbi5TTkFQU0hPVF9QTFVHSU5fTk9UX0lOU1RBTExFRDtcbiAgICB9XG5cbiAgICBpZiAoIXNjKSB7XG4gICAgICByZXR1cm4gaXNTdGF0aWNQdmNcbiAgICAgICAgPyBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLldJVEhPVVRfU1RPUkFHRV9DTEFTU1xuICAgICAgICA6IFBWQ1NuYXBzaG90RGlzYWJsZWRSZWFzb24uU1RPUkFHRV9DTEFTU19OT1RGT1VORDtcbiAgICB9XG5cbiAgICBpZiAoIXN1cHBvcnRTbmFwc2hvdCkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgU3RvcmFnZVByb3Zpc2lvbmVyLkNFUEhfRlNfSU5URVJOQUwsXG4gICAgICAgIFN0b3JhZ2VQcm92aXNpb25lci5DRVBIX0ZTX1JCRCxcbiAgICAgICAgU3RvcmFnZVByb3Zpc2lvbmVyLlRPUE9MVk0sXG4gICAgICBdLmluY2x1ZGVzKHNjLnByb3Zpc2lvbmVyKVxuICAgICAgICA/IFBWQ1NuYXBzaG90RGlzYWJsZWRSZWFzb24uU1RPUkFHRV9DTEFTU19GT1JCSURcbiAgICAgICAgOiBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlNOQVBTSE9UX1VOU1VQUE9SVEVEO1xuICAgIH1cblxuICAgIGlmICghY2FuVXBkYXRlKSB7XG4gICAgICByZXR1cm4gUFZDU25hcHNob3REaXNhYmxlZFJlYXNvbi5QVkNfU1RBVFVTX0ZPUkJJRDtcbiAgICB9XG5cbiAgICBpZiAoaXNQdmNFeHBhbmRpbmcpIHtcbiAgICAgIHJldHVybiBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlBWQ19FWFBBTkRJTkc7XG4gICAgfVxuICB9XG59XG4iXX0=
434
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHZjLXV0aWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc3RvcmFnZS9zcmMvbGliL3NlcnZpY2VzL3B2Yy11dGlsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZELE9BQU8sRUFDTCxhQUFhLEVBQ2IsZ0JBQWdCLEVBR2hCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixJQUFJLEVBQ0osbUJBQW1CLEVBR25CLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLGNBQWMsRUFDZCwyQkFBMkIsR0FDNUIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBRUwsVUFBVSxFQUNWLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxFQUFFLEVBQ0YsV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM3RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixhQUFhLEdBQ2QsTUFBTSxrQkFBa0IsQ0FBQztBQU0xQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFFNUUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsaUJBQWlCLENBQUM7QUFFM0QsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFFBQStCO0lBQzlELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxhQUFhLENBQUMsS0FBSyxDQUFDO0FBQy9ELENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsR0FBMEI7SUFDcEUsT0FBTztRQUNMLE9BQU8sRUFBRSw4QkFBOEI7UUFDdkMsUUFBUSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLGlCQUFpQjtLQUM3QyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxHQUEwQjtJQUN0RSxPQUFPO1FBQ0wsT0FBTyxFQUFFLGdDQUFnQztRQUN6QyxRQUFRLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7S0FDaEQsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FFOUM7SUFDRixDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQzlCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUseUJBQXlCO0tBQ3hEO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBTixJQUFZLHVCQVFYO0FBUkQsV0FBWSx1QkFBdUI7SUFDakMseUVBQThDLENBQUE7SUFDOUMsaUZBQXNELENBQUE7SUFDdEQsK0VBQW9ELENBQUE7SUFDcEQsaUZBQXNELENBQUE7SUFDdEQsNERBQWlDLENBQUE7SUFDakMsd0RBQTZCLENBQUE7SUFDN0IsZ0ZBQXFELENBQUE7QUFDdkQsQ0FBQyxFQVJXLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFRbEM7QUFFRCxNQUFNLENBQU4sSUFBWSx5QkFVWDtBQVZELFdBQVkseUJBQXlCO0lBQ25DLDZFQUFnRCxDQUFBO0lBQ2hELHFGQUF3RCxDQUFBO0lBQ3hELG1GQUFzRCxDQUFBO0lBQ3RELDRGQUErRCxDQUFBO0lBQy9ELG1GQUFzRCxDQUFBO0lBQ3RELDBFQUE2QyxDQUFBO0lBQzdDLDhEQUFpQyxDQUFBO0lBQ2pDLDBEQUE2QixDQUFBO0lBQzdCLDREQUErQixDQUFBO0FBQ2pDLENBQUMsRUFWVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBVXBDO0FBaUJELE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxNQUErQjtJQUMzRSxRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQ2YsS0FBSyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7WUFDL0MsT0FBTyw2QkFBNkIsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyx1QkFBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7WUFDbkQsT0FBTyw2QkFBNkIsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7WUFDbEQsT0FBTyxtQ0FBbUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsS0FBSyx1QkFBdUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7WUFDcEQsT0FBTyw2QkFBNkIsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sZ0NBQWdDLENBQUM7UUFDMUMsQ0FBQztRQUNELEtBQUssdUJBQXVCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUMxQyxPQUFPLDhCQUE4QixDQUFDO1FBQ3hDLENBQUM7UUFDRCxLQUFLLHVCQUF1QixDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQztZQUMxRCxPQUFPLHVDQUF1QyxDQUFDO1FBQ2pELENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1IsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsK0JBQStCLENBQzdDLE1BQWlDO0lBRWpDLFFBQVEsTUFBTSxFQUFFLENBQUM7UUFDZixLQUFLLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztZQUNqRCxPQUFPLDRCQUE0QixDQUFDO1FBQ3RDLENBQUM7UUFDRCxLQUFLLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDO1FBQ3JELEtBQUsseUJBQXlCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sNkJBQTZCLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUsseUJBQXlCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sNkJBQTZCLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUsseUJBQXlCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sdUJBQXVCLENBQUM7UUFDakMsQ0FBQztRQUNELEtBQUsseUJBQXlCLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDO1lBQzdELE9BQU8sOEJBQThCLENBQUM7UUFDeEMsQ0FBQztRQUNELEtBQUsseUJBQXlCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUM1QyxPQUFPLDhCQUE4QixDQUFDO1FBQ3hDLENBQUM7UUFDRCxLQUFLLHlCQUF5QixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDN0MsT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNSLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBS0QsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFDbUIsTUFBcUIsRUFDckIsTUFBcUIsRUFDckIsTUFBMkIsRUFDM0IsaUJBQTJDLEVBQzNDLElBQWdCO1FBSmhCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMzQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQzNDLFNBQUksR0FBSixJQUFJLENBQVk7UUFhbkMsMEJBQXFCLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDckMsT0FBTyxFQUFFLENBQUMsU0FBb0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQztZQUN2RSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztTQUM1QixDQUFDLENBQUM7UUFFSCw0QkFBdUIsR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUN2QyxPQUFPLEVBQUUsQ0FBQyxTQUFvQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDO1lBQ3pFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1NBQzVCLENBQUMsQ0FBQztRQUVILGlDQUE0QixHQUFHLElBQUksVUFBVSxDQUFDO1lBQzVDLE9BQU8sRUFBRSxDQUFDLFNBQW9CLEVBQUUsRUFBRSxDQUNoQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDO1lBQzdDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1NBQzVCLENBQUMsQ0FBQztRQUVILHdCQUFtQixHQUFHLElBQUksVUFBVSxDQUFDO1lBQ25DLE9BQU8sRUFBRSxDQUFDLFNBQW9CLEVBQUUsRUFBRSxDQUNoQyxJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBUyxDQUFDO1lBQzNDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1NBQzVCLENBQUMsQ0FBQztRQS9CRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQWUsRUFBRSxTQUFpQixFQUFFLE9BQWU7UUFDaEUsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FFRixHQUFHLFdBQVcsc0JBQXNCLE9BQU8sZUFBZSxTQUFTLDJCQUEyQixPQUFPLGNBQWMsQ0FBQzthQUNySCxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQVcsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQXlCRCxVQUFVLENBQUMsR0FBUSxFQUFFLE9BQWUsRUFBRSxTQUFpQjtRQUNyRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ2pCLG9CQUFvQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUM3QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUNoRSxVQUFVLEVBQUUsQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FDcEIsUUFBNEIsRUFDNUIsT0FBZSxFQUNmLFNBQWlCO1FBS2pCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDbkMsT0FBTyxFQUFFLENBQUM7Z0JBQ1IsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJO2dCQUNuQixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7YUFDcEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU07YUFDZixXQUFXLENBQXFCO1lBQy9CLElBQUksRUFBRSxjQUFjLENBQUMsV0FBVztZQUNoQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7WUFDbkIsU0FBUztZQUNULE9BQU87U0FDUixDQUFDO2FBQ0QsSUFBSSxDQUNILFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQ2xELENBQ0YsQ0FBQztJQUNOLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxDQUFNLEVBQUUsQ0FBTTtRQUN2QyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDNUUsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUEwQixFQUFFLE9BQWUsRUFBRSxTQUFpQjtRQUNuRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQ2hELElBQUksRUFBRSxVQUFVLENBQUMsR0FBRztZQUNwQixJQUFJLEVBQUU7Z0JBQ0osR0FBRztnQkFDSCxPQUFPO2dCQUNQLFNBQVM7YUFDVjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBMEIsRUFBRSxPQUFlLEVBQUUsU0FBaUI7UUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQUU7WUFDN0MsSUFBSSxFQUFFLFVBQVUsQ0FBQyxHQUFHO1lBQ3BCLElBQUksRUFBRTtnQkFDSixHQUFHO2dCQUNILE9BQU87Z0JBQ1AsU0FBUzthQUNWO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FDWixRQUErQixFQUMvQixPQUFlLEVBQ2YsU0FBaUIsRUFDakIsSUFBYztRQUVkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLEVBQUU7WUFDeEQsSUFBSSxFQUFFO2dCQUNKLFFBQVE7Z0JBQ1IsT0FBTztnQkFDUCxTQUFTO2dCQUNULElBQUk7YUFDTDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQWE7UUFDekQsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNmLGVBQWUsQ0FBQztZQUNmLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxlQUFlO1lBQzVDLE9BQU87WUFDUCxTQUFTO1NBQ1YsQ0FBQzthQUNELElBQUksQ0FDSCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQzNCLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDakIsVUFBVSxFQUFFLENBQ2IsQ0FBQztJQUNOLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQWE7UUFDMUQsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNmLHFCQUFxQixDQUFlLE9BQU8sRUFBRTtZQUM1QyxPQUFPO1lBQ1AsR0FBRywyQkFBMkIsQ0FBQyxhQUFhO1NBQzdDLENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUNyQixTQUFTLENBQUMsRUFBb0IsQ0FBQyxFQUMvQixVQUFVLEVBQUUsQ0FDYixDQUFDO0lBQ04sQ0FBQztJQUVPLHNCQUFzQixDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBYTtRQUM5RCxPQUFPLElBQUksQ0FBQyxNQUFNO2FBQ2YsZUFBZSxDQUFpQjtZQUMvQixJQUFJLEVBQUUsc0JBQXNCLENBQUMsZUFBZTtZQUM1QyxPQUFPO1lBQ1AsU0FBUztTQUNWLENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUNqQixTQUFTLENBQUMsRUFBc0IsQ0FBQyxDQUNsQyxDQUFDO0lBQ04sQ0FBQztJQUVPLDJCQUEyQixDQUFDLEVBQUUsT0FBTyxFQUFhO1FBQ3hELE9BQU8sSUFBSSxDQUFDLE1BQU07YUFDZixlQUFlLENBQXNCO1lBQ3BDLElBQUksRUFBRSxjQUFjLENBQUMscUJBQXFCO1lBQzFDLE9BQU87U0FDUixDQUFDO2FBQ0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDakIsU0FBUyxDQUFDLEVBQTJCLENBQUMsQ0FDdkMsQ0FBQztJQUNOLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxTQUFvQjtRQUN2QyxPQUFPLGFBQWEsQ0FBQztZQUNuQixJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUMzQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztTQUM5QyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FDRCxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FDbkIsQ0FBQyxHQUEwQixFQUFFLE1BQStCLEVBQUUsRUFBRSxDQUM5RCxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDckIsR0FBRztZQUNILE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtTQUNQLENBQUMsQ0FDUCxFQUNELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDckIsVUFBVSxFQUFFLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxTQUFvQjtRQUN6QyxPQUFPLGFBQWEsQ0FBQztZQUNuQixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUN6QyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUMzQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUNsRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztTQUM5RCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FDRCxDQUFDLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxFQUFFLENBQzNELENBQUMsR0FBMEIsRUFBRSxNQUErQixFQUFFLEVBQUUsQ0FDOUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQ3ZCLEdBQUc7WUFDSCxNQUFNO1lBQ04sT0FBTztZQUNQLGFBQWE7WUFDYixzQkFBc0I7WUFDdEIsTUFBTTtTQUNQLENBQUMsQ0FDUCxFQUNELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxnRUFBZ0U7UUFDdkYsVUFBVSxFQUFFLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUNoQixHQUFHLEVBQ0gsTUFBTSxHQUFHLEVBQUUsRUFDWCxNQUFNLEdBQUcsRUFBRSxFQUNYLE1BQU0sR0FBRyw2QkFBNkIsR0FNdkM7UUFDQyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV4QyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixLQUFLLEVBQUUsQ0FBQztRQUVyRCxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUNwQixJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQ3pELENBQUM7UUFFRixJQUFJLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLHdCQUF3QixHQUFHLEtBQUssQ0FBQztRQUNyQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLDhCQUE4QixDQUN0RSxFQUFFLEVBQ0YsbUJBQW1CLENBQUMsU0FBUyxDQUM5QixDQUFDO1lBQ0Ysd0JBQXdCO2dCQUN0QixFQUFFLENBQUMsV0FBVyxLQUFLLGtCQUFrQixDQUFDLE9BQU87b0JBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQ1QsUUFBUSxDQUFDLEVBQUUsQ0FDVCxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQzt3QkFDcEQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3BCLENBQUM7UUFDTixDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUU1RCxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQztRQUV2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQzVDLFNBQVMsRUFDVCxFQUFFLEVBQ0YsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixXQUFXLEVBQ1gsV0FBVyxFQUNYLHdCQUF3QixDQUN6QixDQUFDO1FBRUYsT0FBTztZQUNMLFFBQVEsRUFDTixhQUFhO2dCQUNiLFdBQVc7Z0JBQ1gsQ0FBQyxTQUFTO2dCQUNWLFdBQVc7Z0JBQ1gsd0JBQXdCO2dCQUN4QixDQUFDLGdCQUFnQjtZQUNuQixNQUFNO1lBQ04sT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDeEIsQ0FBQztJQUNKLENBQUM7SUFFTywwQkFBMEIsQ0FDaEMsU0FBa0IsRUFDbEIsRUFBZ0IsRUFDaEIsYUFBc0IsRUFDdEIsZUFBd0IsRUFDeEIsYUFBc0IsRUFDdEIsV0FBb0IsRUFDcEIsd0JBQWlDO1FBRWpDLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsT0FBTyx1QkFBdUIsQ0FBQyxjQUFjLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsT0FBTyx1QkFBdUIsQ0FBQyxZQUFZLENBQUM7UUFDOUMsQ0FBQztRQUVELElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU8sV0FBVztnQkFDaEIsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLHFCQUFxQjtnQkFDL0MsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLHNCQUFzQixDQUFDO1FBQ3JELENBQUM7UUFFRCxJQUFJLHdCQUF3QixFQUFFLENBQUM7WUFDN0IsT0FBTyx1QkFBdUIsQ0FBQyw0QkFBNEIsQ0FBQztRQUM5RCxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25CLE9BQU8sdUJBQXVCLENBQUMsb0JBQW9CLENBQUM7UUFDdEQsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLE9BQU8sdUJBQXVCLENBQUMsaUJBQWlCLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxFQUNsQixHQUFHLEVBQ0gsTUFBTSxHQUFHLEVBQUUsRUFDWCxPQUFPLEdBQUcsRUFBRSxFQUNaLGFBQWEsR0FBRyxLQUFLLEVBQ3JCLHNCQUFzQixFQUN0QixNQUFNLEdBQUcsK0JBQStCLEdBUXpDO1FBQ0MsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFeEMsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsS0FBSyxFQUFFLENBQUM7UUFFdkQsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixDQUMzRCxDQUFDO1FBRUYsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBRTVCLElBQUksRUFBRSxFQUFFLENBQUM7WUFDUCxNQUFNLGtCQUFrQixHQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsOEJBQThCLENBQ25ELEVBQUUsRUFDRixzQkFBc0IsQ0FDdkIsQ0FBQztZQUNKLHFCQUFxQjtZQUNyQixlQUFlO2dCQUNiLGtCQUFrQixLQUFLLElBQUk7b0JBQ3pCLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDO29CQUM1QyxDQUFDLENBQUMsa0JBQWtCLENBQUM7UUFDM0IsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixDQUFDO1FBQ3ZELE1BQU0sWUFBWSxHQUNoQixRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQztZQUNqRCxRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFM0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUM5QyxTQUFTLEVBQ1QsRUFBRSxFQUNGLGFBQWEsRUFDYixlQUFlLEVBQ2YsV0FBVyxFQUNYLFdBQVcsRUFDWCxZQUFZLENBQ2IsQ0FBQztRQUVGLE9BQU87WUFDTCxRQUFRLEVBQ04sV0FBVztnQkFDWCxDQUFDLGFBQWE7Z0JBQ2QsQ0FBQyxTQUFTO2dCQUNWLFlBQVk7Z0JBQ1osV0FBVztnQkFDWCxDQUFDLGVBQWU7WUFDbEIsTUFBTTtZQUNOLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDO1NBQ3hCLENBQUM7SUFDSixDQUFDO0lBRUQseUJBQXlCLENBQUMsR0FBMEI7UUFDbEQsT0FBTyxnQkFBZ0IsQ0FDckIsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLEVBQ3hDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxFQUN0QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ0wsT0FBTyxFQUFFLDBCQUEwQjtZQUNuQyxRQUFRLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUM7U0FDakMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBR0QsMkJBQTJCLENBQ3pCLEdBQTBCLEVBQzFCLE9BQWUsRUFDZixTQUFpQjtRQUVqQixNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUM7UUFDbkQsTUFBTSxTQUFTLEdBQUcsY0FBYztZQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU07aUJBQ1IsV0FBVyxDQUFDO2dCQUNYLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxlQUFlO2dCQUM1QyxPQUFPO2dCQUNQLFNBQVM7Z0JBQ1QsSUFBSSxFQUFFLGNBQWM7YUFDckIsQ0FBQztpQkFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFYixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQ25CLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUNiLGdCQUFnQixDQUNkLEdBQUcsRUFBRSxDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxFQUN4QyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsRUFDdEMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNMLFFBQVEsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixLQUFLLEVBQUU7WUFDNUMsT0FBTyxFQUFFLG9DQUFvQztTQUM5QyxDQUFDLEVBQ0YsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNMLFFBQVEsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQ2xELE9BQU8sRUFBRSw2QkFBNkI7U0FDdkMsQ0FBQyxFQUNGLEdBQUcsRUFBRTtZQUNILE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0QsK0JBQStCO1lBQy9CLE9BQU87Z0JBQ0wsUUFBUSxFQUFFLGNBQWMsRUFBRSxJQUFJLEtBQUssS0FBSztnQkFDeEMsT0FBTyxFQUFFLG9DQUFvQzthQUM5QyxDQUFDO1FBQ0osQ0FBQyxDQUNGLENBQ0YsRUFDRCxVQUFVLEVBQUUsQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELHlCQUF5QixDQUFDLEdBQTBCO1FBQ2xELE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU8sNEJBQTRCLENBQ2xDLFNBQWtCLEVBQ2xCLEVBQWdCLEVBQ2hCLGFBQXNCLEVBQ3RCLGVBQXdCLEVBQ3hCLFdBQW9CLEVBQ3BCLGFBQXNCLEVBQ3RCLGNBQXVCO1FBRXZCLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsT0FBTyx5QkFBeUIsQ0FBQyxZQUFZLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQixPQUFPLHlCQUF5QixDQUFDLDZCQUE2QixDQUFDO1FBQ2pFLENBQUM7UUFFRCxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixPQUFPLFdBQVc7Z0JBQ2hCLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUI7Z0JBQ2pELENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxzQkFBc0IsQ0FBQztRQUN2RCxDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLE9BQU87Z0JBQ0wsa0JBQWtCLENBQUMsZ0JBQWdCO2dCQUNuQyxrQkFBa0IsQ0FBQyxXQUFXO2dCQUM5QixrQkFBa0IsQ0FBQyxPQUFPO2FBQzNCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxvQkFBb0I7Z0JBQ2hELENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxvQkFBb0IsQ0FBQztRQUNyRCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQztRQUNyRCxDQUFDO1FBRUQsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixPQUFPLHlCQUF5QixDQUFDLGFBQWEsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQzsrRUExZVUsY0FBYzt1RUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNOztBQTRDbEI7SUFEQyxJQUFJOzs7O2dEQVFKO0FBaVdEO0lBREMsSUFBSTs7OztpRUEyQ0o7aUZBNWJVLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzRLQTJDQyxVQUFVLE1Bd1dWLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIERpYWxvZ1NpemUgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIEs4c0FwaVNlcnZpY2UsXG4gIGdldERpc2FibGVkU3RhdGUsXG4gIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSxcbiAgV29ya3NwYWNlLFxuICBza2lwRXJyb3IsXG4gIFN0cmluZ01hcCxcbiAgcHVibGlzaFJlZixcbiAgQ2FjaGVTdG9yZSxcbiAgQWNwQ29tbW9uQXBpU2VydmljZSxcbiAgYmluZCxcbiAgZ2V0RG9tYWluQW5ub3RhdGlvbixcbiAgUG9kLFxuICBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIEFQSV9HQVRFV0FZLFxuICBnZXRTdWJkb21haW5MYWJlbCxcbiAgdG9Vbml0R2ksXG4gIFJFU09VUkNFX1RZUEVTLFxuICBDT01NT05fUkVTT1VSQ0VfREVGSU5JVElPTlMsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBjYXRjaEVycm9yLFxuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIG9mLFxuICBzaGFyZVJlcGxheSxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEZWxldGVQdmNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3B2Yy1kZWxldGUtZGlhbG9nL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBQdmNFeHBhbmRDYXBhY2l0eURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcHZjLWV4cGFuZC1jYXBhY2l0eS1kaWFsb2cvY29tcG9uZW50JztcbmltcG9ydCB7IFJlYnVpbGRWb2x1bWVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3JlYnVpbGQtdm9sdW1lLWRpYWxvZy9jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RvcmFnZUNvbW1vblV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29tbW9uLXV0aWwuc2VydmljZSc7XG5pbXBvcnQge1xuICBTdG9yYWdlY2xhc3NGZWF0dXJlLFxuICBTdG9yYWdlUHJvdmlzaW9uZXIsXG4gIFB2Y1N0YXR1c0VudW0sXG59IGZyb20gJy4uL3R5cGVzL2NvbW1vbnMnO1xuaW1wb3J0IHtcbiAgU3RvcmFnZUNsYXNzLFxuICBWb2x1bWVTbmFwc2hvdENsYXNzLFxuICBWb2x1bWVTbmFwc2hvdCxcbn0gZnJvbSAnLi4vdHlwZXMvazhzJztcbmltcG9ydCB7IFNUT1JBR0VfUkVTT1VSQ0VfVFlQRVMgfSBmcm9tICcuLi90eXBlcy9yZXNvdXJjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7IGdldFB2Y1N0YXR1cywgaXNTdG9yYWdlQ2xhc3NTdXBwb3J0U25hcHNob3QgfSBmcm9tICcuLi91dGlscy91dGlsJztcblxuZXhwb3J0IGNvbnN0IFBWQ19TTkFQU0hPVF9GRUFUVVJFX0dBVEUgPSAndm9sdW1lLXNuYXBzaG90JztcblxuZXhwb3J0IGZ1bmN0aW9uIHB2Y1VwZGF0ZUVuYWJsZWQocmVzb3VyY2U6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkge1xuICBpZiAoIXJlc291cmNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBnZXRQdmNTdGF0dXMocmVzb3VyY2Uuc3RhdHVzKSA9PT0gUHZjU3RhdHVzRW51bS5ib3VuZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFB2Y0RlbGV0aW5nRGlzYWJsZWRTdGF0ZShwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkge1xuICByZXR1cm4ge1xuICAgIHRvb2x0aXA6ICdwdmNfZGVsZXRpbmdfY2FuX25vdF9vcGVyYXRlJyxcbiAgICBkaXNhYmxlZDogISFwdmM/Lm1ldGFkYXRhPy5kZWxldGlvblRpbWVzdGFtcCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFB2Y1JlYnVpbGRpbmdEaXNhYmxlZFN0YXRlKHB2YzogUGVyc2lzdGVudFZvbHVtZUNsYWltKSB7XG4gIHJldHVybiB7XG4gICAgdG9vbHRpcDogJ3B2Y19yZWJ1aWxkaW5nX2Nhbl9ub3Rfb3BlcmF0ZScsXG4gICAgZGlzYWJsZWQ6ICEhZ2V0RG9tYWluQW5ub3RhdGlvbigncmVidWlsZCcsIHB2YyksXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBTVE9SQUdFQ0xBU1NfRkVBVFVSRV9GRUFUVVJFX0dBVEVfTUFQOiBQYXJ0aWFsPFxuICBSZWNvcmQ8U3RvcmFnZWNsYXNzRmVhdHVyZSwgUGFydGlhbDxSZWNvcmQ8U3RvcmFnZVByb3Zpc2lvbmVyLCBzdHJpbmc+Pj5cbj4gPSB7XG4gIFtTdG9yYWdlY2xhc3NGZWF0dXJlLlNOQVBTSE9UXToge1xuICAgIFtTdG9yYWdlUHJvdmlzaW9uZXIuVE9QT0xWTV06IFBWQ19TTkFQU0hPVF9GRUFUVVJFX0dBVEUsXG4gIH0sXG59O1xuXG5leHBvcnQgZW51bSBQVkNFeHBhbmREaXNhYmxlZFJlYXNvbiB7XG4gIFBWQ19TVEFUVVNfRk9SQklEID0gJ2V4cGFuZF9wdmNfc3RhdHVzX2ZvcmJpZCcsXG4gIFdJVEhPVVRfU1RPUkFHRV9DTEFTUyA9ICdleHBhbmRfd2l0aG91dF9zdG9yYWdlX2NsYXNzJyxcbiAgU1RPUkFHRV9DTEFTU19GT1JCSUQgPSAnZXhwYW5kX3N0b3JhZ2VfY2xhc3NfZm9yYmlkJyxcbiAgU1RPUkFHRV9DTEFTU19OT1RGT1VORCA9ICdwdmNfc3RvcmFnZV9jbGFzc19ub3RfZm91bmQnLFxuICBQVkNfUkVCVUlMRElORyA9ICdwdmNfcmVidWlsZGluZycsXG4gIFBWQ19ERUxFVElORyA9ICdwdmNfZGVsZXRpbmcnLFxuICBUT1BPTFZNX1BWQ19FWElTVEVEX1NOQVBTSE9UID0gJ3B2Y19leGlzdGVkX3NuYXBzaG90Jyxcbn1cblxuZXhwb3J0IGVudW0gUFZDU25hcHNob3REaXNhYmxlZFJlYXNvbiB7XG4gIFBWQ19TVEFUVVNfRk9SQklEID0gJ3NuYXBzaG90X3B2Y19zdGF0dXNfZm9yYmlkJyxcbiAgV0lUSE9VVF9TVE9SQUdFX0NMQVNTID0gJ3NuYXBzaG90X3dpdGhvdXRfc3RvcmFnZV9jbGFzcycsXG4gIFNUT1JBR0VfQ0xBU1NfRk9SQklEID0gJ3NuYXBzaG90X3N0b3JhZ2VfY2xhc3NfZm9yYmlkJyxcbiAgU05BUFNIT1RfUExVR0lOX05PVF9JTlNUQUxMRUQgPSAnc25hcHNob3RfcGx1Z2luX25vdF9pbnN0YWxsZWQnLFxuICBTVE9SQUdFX0NMQVNTX05PVEZPVU5EID0gJ3B2Y19zdG9yYWdlX2NsYXNzX25vdF9mb3VuZCcsXG4gIFNOQVBTSE9UX1VOU1VQUE9SVEVEID0gJ3NuYXBzaG90X3Vuc3VwcG9ydGVkJyxcbiAgUFZDX1JFQlVJTERJTkcgPSAncHZjX3JlYnVpbGRpbmcnLFxuICBQVkNfREVMRVRJTkcgPSAncHZjX2RlbGV0aW5nJyxcbiAgUFZDX0VYUEFORElORyA9ICdwdmNfZXhwYW5kaW5nJyxcbn1cblxuZXhwb3J0IHR5cGUgUFZDQWN0aW9uU3RhdGVGbiA9IChcbiAgcHZjOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0sXG4gIG1hcHBlcj86IFBWQ0FjdGlvblRvb2x0aXBNYXBwZXIsXG4pID0+IFBWQ0FjdGlvblN0YXRlO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBWQ0FjdGlvblN0YXRlIHtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHJlYXNvbj86IFBWQ0V4cGFuZERpc2FibGVkUmVhc29uIHwgUFZDU25hcHNob3REaXNhYmxlZFJlYXNvbjtcbiAgdG9vbHRpcD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUFZDQWN0aW9uVG9vbHRpcE1hcHBlciA9IChcbiAgcmVhc29uOiBQVkNFeHBhbmREaXNhYmxlZFJlYXNvbiB8IFBWQ1NuYXBzaG90RGlzYWJsZWRSZWFzb24sXG4pID0+IHN0cmluZztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRQVkNFeHBhbmRUb29sdGlwTWFwcGVyKHJlYXNvbjogUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24pIHtcbiAgc3dpdGNoIChyZWFzb24pIHtcbiAgICBjYXNlIFBWQ0V4cGFuZERpc2FibGVkUmVhc29uLlBWQ19TVEFUVVNfRk9SQklEOiB7XG4gICAgICByZXR1cm4gJ3B2Y19zdGF0dXNfZm9yYmlkX2V4cGFuc2lvbic7XG4gICAgfVxuICAgIGNhc2UgUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24uV0lUSE9VVF9TVE9SQUdFX0NMQVNTOiB7XG4gICAgICByZXR1cm4gJ3B2Y19zdGF0aWNfZm9yYmlkX2V4cGFuc2lvbic7XG4gICAgfVxuICAgIGNhc2UgUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24uU1RPUkFHRV9DTEFTU19GT1JCSUQ6IHtcbiAgICAgIHJldHVybiAncHZjX3N0b3JhZ2VjbGFzc19mb3JiaWRfZXhwYW5zaW9uJztcbiAgICB9XG4gICAgY2FzZSBQVkNFeHBhbmREaXNhYmxlZFJlYXNvbi5TVE9SQUdFX0NMQVNTX05PVEZPVU5EOiB7XG4gICAgICByZXR1cm4gJ3B2Y19zdG9yYWdlX2NsYXNzX25vdF9mb3VuZCc7XG4gICAgfVxuICAgIGNhc2UgUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24uUFZDX1JFQlVJTERJTkc6IHtcbiAgICAgIHJldHVybiAncHZjX3JlYnVpbGRpbmdfY2FuX25vdF9vcGVyYXRlJztcbiAgICB9XG4gICAgY2FzZSBQVkNFeHBhbmREaXNhYmxlZFJlYXNvbi5QVkNfREVMRVRJTkc6IHtcbiAgICAgIHJldHVybiAncHZjX2RlbGV0aW5nX2Nhbl9ub3Rfb3BlcmF0ZSc7XG4gICAgfVxuICAgIGNhc2UgUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24uVE9QT0xWTV9QVkNfRVhJU1RFRF9TTkFQU0hPVDoge1xuICAgICAgcmV0dXJuICdwdmNfZXhpc3RlZF9zbmFwc2hvdF9mb3JiaWRfZXhwYW5zaW9uJztcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFBWQ1NuYXBzaG90VG9vbHRpcE1hcHBlcihcbiAgcmVhc29uOiBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLFxuKSB7XG4gIHN3aXRjaCAocmVhc29uKSB7XG4gICAgY2FzZSBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlBWQ19TVEFUVVNfRk9SQklEOiB7XG4gICAgICByZXR1cm4gJ3B2Y19zdGF0dXNfZm9yYmlkX3NuYXBzaG90JztcbiAgICB9XG4gICAgY2FzZSBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLldJVEhPVVRfU1RPUkFHRV9DTEFTUzpcbiAgICBjYXNlIFBWQ1NuYXBzaG90RGlzYWJsZWRSZWFzb24uU05BUFNIT1RfVU5TVVBQT1JURUQ6IHtcbiAgICAgIHJldHVybiAndW5zdXBwb3J0ZWRfdm9sdW1lX3NuYXBzaG90JztcbiAgICB9XG4gICAgY2FzZSBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlNUT1JBR0VfQ0xBU1NfTk9URk9VTkQ6IHtcbiAgICAgIHJldHVybiAncHZjX3N0b3JhZ2VfY2xhc3Nfbm90X2ZvdW5kJztcbiAgICB9XG4gICAgY2FzZSBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlNUT1JBR0VfQ0xBU1NfRk9SQklEOiB7XG4gICAgICByZXR1cm4gJ3NuYXBzaG90X2Rpc2FibGVkX3RpcCc7XG4gICAgfVxuICAgIGNhc2UgUFZDU25hcHNob3REaXNhYmxlZFJlYXNvbi5TTkFQU0hPVF9QTFVHSU5fTk9UX0lOU1RBTExFRDoge1xuICAgICAgcmV0dXJuICdzbmFwc2hvdF9wbHVnaW5fZGlzYWJsZWRfdGlwJztcbiAgICB9XG4gICAgY2FzZSBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlBWQ19ERUxFVElORzoge1xuICAgICAgcmV0dXJuICdwdmNfZGVsZXRpbmdfY2FuX25vdF9vcGVyYXRlJztcbiAgICB9XG4gICAgY2FzZSBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlBWQ19FWFBBTkRJTkc6IHtcbiAgICAgIHJldHVybiAncHZjX2V4cGFuc2lvbl9mb3JiaWRfc25hcHNob3QnO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQVkNVdGlsU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzQXBpOiBLOHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNwQXBpOiBBY3BDb21tb25BcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZUNvbW1vblV0aWw6IFN0b3JhZ2VDb21tb25VdGlsU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICkge1xuICAgIHRoaXMuZ2V0UHZjRXhwYW5kU3RhdGUgPSB0aGlzLmdldFB2Y0V4cGFuZFN0YXRlLmJpbmQodGhpcyk7XG4gIH1cblxuICBnZXRSZWxhdGVkUG9kcyhjbHVzdGVyOiBzdHJpbmcsIG5hbWVzcGFjZTogc3RyaW5nLCBwdmNOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PFxuICAgICAgICBQb2RbXVxuICAgICAgPihgJHtBUElfR0FURVdBWX0vYWNwL3YxL2t1YmVybmV0ZXMvJHtjbHVzdGVyfS9uYW1lc3BhY2VzLyR7bmFtZXNwYWNlfS9wZXJzaXN0ZW50dm9sdW1lY2xhaW1zLyR7cHZjTmFtZX0vcmVsYXRlZHBvZHNgKVxuICAgICAgLnBpcGUoc2tpcEVycm9yKFtdIGFzIFBvZFtdKSk7XG4gIH1cblxuICBzdG9yYWdlQ2xhc3NMaXN0Q2FjaGUgPSBuZXcgQ2FjaGVTdG9yZSh7XG4gICAgZmV0Y2hlcjogKHdvcmtzcGFjZTogV29ya3NwYWNlKSA9PiB0aGlzLmdldFN0b3JhZ2VDbGFzc0xpc3QkKHdvcmtzcGFjZSksXG4gICAgc2hhcmU6ICgpID0+IHNoYXJlUmVwbGF5KDEpLFxuICB9KTtcblxuICB2b2x1bWVTbmFwc2hvdExpc3RDYXRjaCA9IG5ldyBDYWNoZVN0b3JlKHtcbiAgICBmZXRjaGVyOiAod29ya3NwYWNlOiBXb3Jrc3BhY2UpID0+IHRoaXMuZ2V0Vm9sdW1lU25hcHNob3RMaXN0JCh3b3Jrc3BhY2UpLFxuICAgIHNoYXJlOiAoKSA9PiBzaGFyZVJlcGxheSgxKSxcbiAgfSk7XG5cbiAgdm9sdW1lU25hcHNob3RDbGFzc0xpc3RDYWNoZSA9IG5ldyBDYWNoZVN0b3JlKHtcbiAgICBmZXRjaGVyOiAod29ya3NwYWNlOiBXb3Jrc3BhY2UpID0+XG4gICAgICB0aGlzLmdldFZvbHVtZVNuYXBzaG90Q2xhc3NMaXN0JCh3b3Jrc3BhY2UpLFxuICAgIHNoYXJlOiAoKSA9PiBzaGFyZVJlcGxheSgxKSxcbiAgfSk7XG5cbiAgc25hcHNob3RQbHVnaW5DYWNoZSA9IG5ldyBDYWNoZVN0b3JlKHtcbiAgICBmZXRjaGVyOiAod29ya3NwYWNlOiBXb3Jrc3BhY2UpID0+XG4gICAgICB0aGlzLmdldFZvbHVtZVNuYXBzaG90RW5hYmxlZCQod29ya3NwYWNlKSxcbiAgICBzaGFyZTogKCkgPT4gc2hhcmVSZXBsYXkoMSksXG4gIH0pO1xuXG4gIEBiaW5kXG4gIGdldFNvdXJjZSQocG9kOiBQb2QsIGNsdXN0ZXI6IHN0cmluZywgbmFtZXNwYWNlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gb2YocG9kKS5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQodGhpcy5zYW1lT3duZXJSZWZlcmVuY2UpLFxuICAgICAgZmlsdGVyKGkgPT4gISFpKSxcbiAgICAgIHN3aXRjaE1hcChkYXRhID0+IHRoaXMuZ2V0U291cmNlSW5mbyQoZGF0YSwgY2x1c3RlciwgbmFtZXNwYWNlKSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U291cmNlSW5mbyQoXG4gICAgcmVzb3VyY2U6IEt1YmVybmV0ZXNSZXNvdXJjZSxcbiAgICBjbHVzdGVyOiBzdHJpbmcsXG4gICAgbmFtZXNwYWNlOiBzdHJpbmcsXG4gICk6IE9ic2VydmFibGU8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBraW5kOiBzdHJpbmc7XG4gIH0+IHtcbiAgICBjb25zdCBvd25lclJlZiA9IHJlc291cmNlLm1ldGFkYXRhLm93bmVyUmVmZXJlbmNlcz8uWzBdO1xuICAgIC8vIOaXoCBvd25lclJlZu+8jOS4jeaYvuekulxuICAgIGlmICghb3duZXJSZWYpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICBpZiAob3duZXJSZWYua2luZCAhPT0gJ1JlcGxpY2FTZXQnKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICBuYW1lOiBvd25lclJlZi5uYW1lLFxuICAgICAgICBraW5kOiBvd25lclJlZi5raW5kLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAuZ2V0UmVzb3VyY2U8S3ViZXJuZXRlc1Jlc291cmNlPih7XG4gICAgICAgIHR5cGU6IFJFU09VUkNFX1RZUEVTLlJFUExJQ0FfU0VULFxuICAgICAgICBuYW1lOiBvd25lclJlZi5uYW1lLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIGNsdXN0ZXIsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChyZXNvdXJjZSA9PlxuICAgICAgICAgIHRoaXMuZ2V0U291cmNlSW5mbyQocmVzb3VyY2UsIGNsdXN0ZXIsIG5hbWVzcGFjZSksXG4gICAgICAgICksXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzYW1lT3duZXJSZWZlcmVuY2UoYTogUG9kLCBiOiBQb2QpIHtcbiAgICBjb25zdCBhUmVmID0gYS5tZXRhZGF0YS5vd25lclJlZmVyZW5jZXM/LlswXTtcbiAgICBjb25zdCBiUmVmID0gYi5tZXRhZGF0YS5vd25lclJlZmVyZW5jZXM/LlswXTtcbiAgICByZXR1cm4gYVJlZiAmJiBiUmVmICYmIGFSZWYubmFtZSA9PT0gYlJlZi5uYW1lICYmIGFSZWYua2luZCA9PT0gYlJlZi5raW5kO1xuICB9XG5cbiAgZGVsZXRlKHB2YzogUGVyc2lzdGVudFZvbHVtZUNsYWltLCBjbHVzdGVyOiBzdHJpbmcsIG5hbWVzcGFjZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nLm9wZW4oRGVsZXRlUHZjRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBzaXplOiBEaWFsb2dTaXplLkJpZyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgcHZjLFxuICAgICAgICBjbHVzdGVyLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcmVidWlsZChwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSwgY2x1c3Rlcjogc3RyaW5nLCBuYW1lc3BhY2U6IHN0cmluZykge1xuICAgIHRoaXMuZGlhbG9nLm9wZW4oUmVidWlsZFZvbHVtZURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgc2l6ZTogRGlhbG9nU2l6ZS5CaWcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHB2YyxcbiAgICAgICAgY2x1c3RlcixcbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGV4dGVuZENhcGFjaXR5KFxuICAgIHJlc291cmNlOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0sXG4gICAgY2x1c3Rlcjogc3RyaW5nLFxuICAgIG5hbWVzcGFjZTogc3RyaW5nLFxuICAgIGlzVk0/OiBib29sZWFuLFxuICApIHtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2cub3BlbihQdmNFeHBhbmRDYXBhY2l0eURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgICAgY2x1c3RlcixcbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgICBpc1ZNLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldFZvbHVtZVNuYXBzaG90RW5hYmxlZCQoeyBuYW1lc3BhY2UsIGNsdXN0ZXIgfTogV29ya3NwYWNlKSB7XG4gICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAuZ2V0UmVzb3VyY2VMaXN0KHtcbiAgICAgICAgdHlwZTogU1RPUkFHRV9SRVNPVVJDRV9UWVBFUy5WT0xVTUVfU05BUFNIT1QsXG4gICAgICAgIGNsdXN0ZXIsXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihmYWxzZSkpLFxuICAgICAgICBtYXAocmVzID0+ICEhcmVzKSxcbiAgICAgICAgcHVibGlzaFJlZigpLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RvcmFnZUNsYXNzTGlzdCQoeyBwcm9qZWN0LCBjbHVzdGVyIH06IFdvcmtzcGFjZSkge1xuICAgIHJldHVybiB0aGlzLmFjcEFwaVxuICAgICAgLmdldFJlc291cmNlc0J5UHJvamVjdDxTdG9yYWdlQ2xhc3M+KHByb2plY3QsIHtcbiAgICAgICAgY2x1c3RlcixcbiAgICAgICAgLi4uQ09NTU9OX1JFU09VUkNFX0RFRklOSVRJT05TLlNUT1JBR0VfQ0xBU1MsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXMgPT4gcmVzLml0ZW1zKSxcbiAgICAgICAgc2tpcEVycm9yKFtdIGFzIFN0b3JhZ2VDbGFzc1tdKSxcbiAgICAgICAgcHVibGlzaFJlZigpLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Vm9sdW1lU25hcHNob3RMaXN0JCh7IGNsdXN0ZXIsIG5hbWVzcGFjZSB9OiBXb3Jrc3BhY2UpIHtcbiAgICByZXR1cm4gdGhpcy5rOHNBcGlcbiAgICAgIC5nZXRSZXNvdXJjZUxpc3Q8Vm9sdW1lU25hcHNob3Q+KHtcbiAgICAgICAgdHlwZTogU1RPUkFHRV9SRVNPVVJDRV9UWVBFUy5WT0xVTUVfU05BUFNIT1QsXG4gICAgICAgIGNsdXN0ZXIsXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHIgPT4gci5pdGVtcyksXG4gICAgICAgIHNraXBFcnJvcihbXSBhcyBWb2x1bWVTbmFwc2hvdFtdKSxcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFZvbHVtZVNuYXBzaG90Q2xhc3NMaXN0JCh7IGNsdXN0ZXIgfTogV29ya3NwYWNlKSB7XG4gICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAuZ2V0UmVzb3VyY2VMaXN0PFZvbHVtZVNuYXBzaG90Q2xhc3M+KHtcbiAgICAgICAgdHlwZTogUkVTT1VSQ0VfVFlQRVMuVk9MVU1FX1NOQVBTSE9UX0NMQVNTLFxuICAgICAgICBjbHVzdGVyLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAociA9PiByLml0ZW1zKSxcbiAgICAgICAgc2tpcEVycm9yKFtdIGFzIFZvbHVtZVNuYXBzaG90Q2xhc3NbXSksXG4gICAgICApO1xuICB9XG5cbiAgZ2V0UHZjRXhwYW5kU3RhdGVGbiQod29ya3NwYWNlOiBXb3Jrc3BhY2UpOiBPYnNlcnZhYmxlPFBWQ0FjdGlvblN0YXRlRm4+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN0b3JhZ2VDbGFzc0xpc3RDYWNoZS5mZXRjaCh3b3Jrc3BhY2UpLFxuICAgICAgdGhpcy52b2x1bWVTbmFwc2hvdExpc3RDYXRjaC5mZXRjaCh3b3Jrc3BhY2UpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbc2NMaXN0LCB2c0xpc3RdKSA9PlxuICAgICAgICAgIChwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSwgbWFwcGVyPzogUFZDQWN0aW9uVG9vbHRpcE1hcHBlcikgPT5cbiAgICAgICAgICAgIHRoaXMuZ2V0UHZjRXhwYW5kU3RhdGUoe1xuICAgICAgICAgICAgICBwdmMsXG4gICAgICAgICAgICAgIHNjTGlzdCxcbiAgICAgICAgICAgICAgdnNMaXN0LFxuICAgICAgICAgICAgICBtYXBwZXIsXG4gICAgICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBzdGFydFdpdGgoKCkgPT4gbnVsbCksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgfVxuXG4gIGdldFB2Y1NuYXBzaG90U3RhdGVGbiQod29ya3NwYWNlOiBXb3Jrc3BhY2UpOiBPYnNlcnZhYmxlPFBWQ0FjdGlvblN0YXRlRm4+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnNuYXBzaG90UGx1Z2luQ2FjaGUuZmV0Y2god29ya3NwYWNlKSxcbiAgICAgIHRoaXMuc3RvcmFnZUNsYXNzTGlzdENhY2hlLmZldGNoKHdvcmtzcGFjZSksXG4gICAgICB0aGlzLnZvbHVtZVNuYXBzaG90Q2xhc3NMaXN0Q2FjaGUuZmV0Y2god29ya3NwYWNlKSxcbiAgICAgIHRoaXMuc3RvcmFnZUNvbW1vblV0aWwuc3RvcmFnZURlc2NyaXB0aW9uTWFwQ2FjaGUuZmV0Y2gobnVsbCksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFtwbHVnaW5FbmFibGVkLCBzY0xpc3QsIHZzY0xpc3QsIHN0b3JhZ2VEZXNjcmlwdGlvbkxpc3RdKSA9PlxuICAgICAgICAgIChwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSwgbWFwcGVyPzogUFZDQWN0aW9uVG9vbHRpcE1hcHBlcikgPT5cbiAgICAgICAgICAgIHRoaXMuZ2V0UHZjU25hcHNob3RTdGF0ZSh7XG4gICAgICAgICAgICAgIHB2YyxcbiAgICAgICAgICAgICAgc2NMaXN0LFxuICAgICAgICAgICAgICB2c2NMaXN0LFxuICAgICAgICAgICAgICBwbHVnaW5FbmFibGVkLFxuICAgICAgICAgICAgICBzdG9yYWdlRGVzY3JpcHRpb25MaXN0LFxuICAgICAgICAgICAgICBtYXBwZXIsXG4gICAgICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBzdGFydFdpdGgoKCkgPT4gbnVsbCksIC8vIHVzaW5nIGFzeW5jIHdpbGwgZW1pdCAnbnVsbCcgYW5kIHJlc3VsdCBpbiBlcnJvciBpbiBwdXJlIHBpcGVcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0UHZjRXhwYW5kU3RhdGUoe1xuICAgIHB2YyxcbiAgICBzY0xpc3QgPSBbXSxcbiAgICB2c0xpc3QgPSBbXSxcbiAgICBtYXBwZXIgPSBkZWZhdWx0UFZDRXhwYW5kVG9vbHRpcE1hcHBlcixcbiAgfToge1xuICAgIHB2YzogUGVyc2lzdGVudFZvbHVtZUNsYWltO1xuICAgIHNjTGlzdDogU3RvcmFnZUNsYXNzW107XG4gICAgdnNMaXN0OiBWb2x1bWVTbmFwc2hvdFtdO1xuICAgIG1hcHBlcj86IFBWQ0FjdGlvblRvb2x0aXBNYXBwZXI7XG4gIH0pIHtcbiAgICBjb25zdCBjYW5VcGRhdGUgPSBwdmNVcGRhdGVFbmFibGVkKHB2Yyk7XG5cbiAgICBjb25zdCBpc1N0YXRpY1B2YyA9IHB2Yy5zcGVjLnN0b3JhZ2VDbGFzc05hbWUgPT09ICcnO1xuXG4gICAgY29uc3Qgc2MgPSBzY0xpc3QuZmluZChcbiAgICAgIGl0ZW0gPT4gaXRlbS5tZXRhZGF0YS5uYW1lID09PSBwdmMuc3BlYy5zdG9yYWdlQ2xhc3NOYW1lLFxuICAgICk7XG5cbiAgICBsZXQgc3VwcG9ydEV4cGFuc2lvbiA9IGZhbHNlO1xuICAgIGxldCBpc1RvcG9MVk1QdmNXaXRoU25hcHNob3QgPSBmYWxzZTtcbiAgICBpZiAoc2MpIHtcbiAgICAgIHN1cHBvcnRFeHBhbnNpb24gPSB0aGlzLnN0b3JhZ2VDb21tb25VdGlsLmlzU3RvcmFnZUNsYXNzRmVhdHVyZVN1cHBvcnRlZChcbiAgICAgICAgc2MsXG4gICAgICAgIFN0b3JhZ2VjbGFzc0ZlYXR1cmUuRVhQQU5TSU9OLFxuICAgICAgKTtcbiAgICAgIGlzVG9wb0xWTVB2Y1dpdGhTbmFwc2hvdCA9XG4gICAgICAgIHNjLnByb3Zpc2lvbmVyID09PSBTdG9yYWdlUHJvdmlzaW9uZXIuVE9QT0xWTSAmJlxuICAgICAgICB2c0xpc3Quc29tZShcbiAgICAgICAgICBzbmFwc2hvdCA9PlxuICAgICAgICAgICAgZ2V0U3ViZG9tYWluTGFiZWwoJ3NuYXBzaG90JywgJ3NvdXJjZXB2YycsIHNuYXBzaG90KSA9PT1cbiAgICAgICAgICAgIHB2Yy5tZXRhZGF0YS5uYW1lLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHB2Y1JlYnVpbGRpbmcgPSAhIWdldERvbWFpbkFubm90YXRpb24oJ3JlYnVpbGQnLCBwdmMpO1xuXG4gICAgY29uc3QgcHZjRGVsZXRpbmcgPSAhIXB2Yz8ubWV0YWRhdGE/LmRlbGV0aW9uVGltZXN0YW1wO1xuXG4gICAgY29uc3QgcmVhc29uID0gdGhpcy5nZXRQdmNFeHBhbmREaXNhYmxlZFJlYXNvbihcbiAgICAgIGNhblVwZGF0ZSxcbiAgICAgIHNjLFxuICAgICAgc3VwcG9ydEV4cGFuc2lvbixcbiAgICAgIHB2Y1JlYnVpbGRpbmcsXG4gICAgICBwdmNEZWxldGluZyxcbiAgICAgIGlzU3RhdGljUHZjLFxuICAgICAgaXNUb3BvTFZNUHZjV2l0aFNuYXBzaG90LFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGlzYWJsZWQ6XG4gICAgICAgIHB2Y1JlYnVpbGRpbmcgfHxcbiAgICAgICAgcHZjRGVsZXRpbmcgfHxcbiAgICAgICAgIWNhblVwZGF0ZSB8fFxuICAgICAgICBpc1N0YXRpY1B2YyB8fFxuICAgICAgICBpc1RvcG9MVk1QdmNXaXRoU25hcHNob3QgfHxcbiAgICAgICAgIXN1cHBvcnRFeHBhbnNpb24sXG4gICAgICByZWFzb24sXG4gICAgICB0b29sdGlwOiBtYXBwZXIocmVhc29uKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQdmNFeHBhbmREaXNhYmxlZFJlYXNvbihcbiAgICBjYW5VcGRhdGU6IGJvb2xlYW4sXG4gICAgc2M6IFN0b3JhZ2VDbGFzcyxcbiAgICBzdXBwb3J0RXhwYW5kOiBib29sZWFuLFxuICAgIGlzUHZjUmVidWlsZGluZzogYm9vbGVhbixcbiAgICBpc1B2Y0RlbGV0aW5nOiBib29sZWFuLFxuICAgIGlzU3RhdGljUHZjOiBib29sZWFuLFxuICAgIGlzVG9wb0xWTVB2Y1dpdGhTbmFwc2hvdDogYm9vbGVhbixcbiAgKSB7XG4gICAgaWYgKGlzUHZjUmVidWlsZGluZykge1xuICAgICAgcmV0dXJuIFBWQ0V4cGFuZERpc2FibGVkUmVhc29uLlBWQ19SRUJVSUxESU5HO1xuICAgIH1cblxuICAgIGlmIChpc1B2Y0RlbGV0aW5nKSB7XG4gICAgICByZXR1cm4gUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24uUFZDX0RFTEVUSU5HO1xuICAgIH1cblxuICAgIGlmICghc2MpIHtcbiAgICAgIHJldHVybiBpc1N0YXRpY1B2Y1xuICAgICAgICA/IFBWQ0V4cGFuZERpc2FibGVkUmVhc29uLldJVEhPVVRfU1RPUkFHRV9DTEFTU1xuICAgICAgICA6IFBWQ0V4cGFuZERpc2FibGVkUmVhc29uLlNUT1JBR0VfQ0xBU1NfTk9URk9VTkQ7XG4gICAgfVxuXG4gICAgaWYgKGlzVG9wb0xWTVB2Y1dpdGhTbmFwc2hvdCkge1xuICAgICAgcmV0dXJuIFBWQ0V4cGFuZERpc2FibGVkUmVhc29uLlRPUE9MVk1fUFZDX0VYSVNURURfU05BUFNIT1Q7XG4gICAgfVxuXG4gICAgaWYgKCFzdXBwb3J0RXhwYW5kKSB7XG4gICAgICByZXR1cm4gUFZDRXhwYW5kRGlzYWJsZWRSZWFzb24uU1RPUkFHRV9DTEFTU19GT1JCSUQ7XG4gICAgfVxuXG4gICAgaWYgKCFjYW5VcGRhdGUpIHtcbiAgICAgIHJldHVybiBQVkNFeHBhbmREaXNhYmxlZFJlYXNvbi5QVkNfU1RBVFVTX0ZPUkJJRDtcbiAgICB9XG4gIH1cblxuICBnZXRQdmNTbmFwc2hvdFN0YXRlKHtcbiAgICBwdmMsXG4gICAgc2NMaXN0ID0gW10sXG4gICAgdnNjTGlzdCA9IFtdLFxuICAgIHBsdWdpbkVuYWJsZWQgPSBmYWxzZSxcbiAgICBzdG9yYWdlRGVzY3JpcHRpb25MaXN0LFxuICAgIG1hcHBlciA9IGRlZmF1bHRQVkNTbmFwc2hvdFRvb2x0aXBNYXBwZXIsXG4gIH06IHtcbiAgICBwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbTtcbiAgICBzY0xpc3Q6IFN0b3JhZ2VDbGFzc1tdO1xuICAgIHZzY0xpc3Q6IFZvbHVtZVNuYXBzaG90Q2xhc3NbXTtcbiAgICBwbHVnaW5FbmFibGVkOiBib29sZWFuO1xuICAgIHN0b3JhZ2VEZXNjcmlwdGlvbkxpc3Q6IFN0cmluZ01hcFtdO1xuICAgIG1hcHBlcj86IFBWQ0FjdGlvblRvb2x0aXBNYXBwZXI7XG4gIH0pIHtcbiAgICBjb25zdCBjYW5VcGRhdGUgPSBwdmNVcGRhdGVFbmFibGVkKHB2Yyk7XG5cbiAgICBjb25zdCBpc1N0YXRpY1B2YyA9IHB2Yz8uc3BlYz8uc3RvcmFnZUNsYXNzTmFtZSA9PT0gJyc7XG5cbiAgICBjb25zdCBzYyA9IHNjTGlzdC5maW5kKFxuICAgICAgaXRlbSA9PiBpdGVtLm1ldGFkYXRhLm5hbWUgPT09IHB2Yz8uc3BlYz8uc3RvcmFnZUNsYXNzTmFtZSxcbiAgICApO1xuXG4gICAgbGV0IHN1cHBvcnRTbmFwc2hvdCA9IGZhbHNlO1xuXG4gICAgaWYgKHNjKSB7XG4gICAgICBjb25zdCB0aGlyZFBhcnR5U25hcHNob3QgPVxuICAgICAgICB0aGlzLnN0b3JhZ2VDb21tb25VdGlsLmdldFRoaXJkUGFydHlTbmFwc2hvdFN1cHBvcnRlZChcbiAgICAgICAgICBzYyxcbiAgICAgICAgICBzdG9yYWdlRGVzY3JpcHRpb25MaXN0LFxuICAgICAgICApO1xuICAgICAgLy8gbnVsbCDooajnpLrmnKrljLnphY3liLDnrKzkuInmlrnnsbvlnovlrZjlgqhcbiAgICAgIHN1cHBvcnRTbmFwc2hvdCA9XG4gICAgICAgIHRoaXJkUGFydHlTbmFwc2hvdCA9PT0gbnVsbFxuICAgICAgICAgID8gaXNTdG9yYWdlQ2xhc3NTdXBwb3J0U25hcHNob3Qoc2MsIHZzY0xpc3QpXG4gICAgICAgICAgOiB0aGlyZFBhcnR5U25hcHNob3Q7XG4gICAgfVxuXG4gICAgY29uc3QgcHZjRGVsZXRpbmcgPSAhIXB2Yz8ubWV0YWRhdGE/LmRlbGV0aW9uVGltZXN0YW1wO1xuICAgIGNvbnN0IHB2Y0V4cGFuZGluZyA9XG4gICAgICB0b1VuaXRHaShwdmM/LnNwZWM/LnJlc291cmNlcz8ucmVxdWVzdHM/LnN0b3JhZ2UpID5cbiAgICAgIHRvVW5pdEdpKHB2Yz8uc3RhdHVzPy5jYXBhY2l0eT8uc3RvcmFnZSk7XG5cbiAgICBjb25zdCByZWFzb24gPSB0aGlzLmdldFB2Y1NuYXBzaG90RGlzYWJsZWRSZWFzb24oXG4gICAgICBjYW5VcGRhdGUsXG4gICAgICBzYyxcbiAgICAgIHBsdWdpbkVuYWJsZWQsXG4gICAgICBzdXBwb3J0U25hcHNob3QsXG4gICAgICBpc1N0YXRpY1B2YyxcbiAgICAgIHB2Y0RlbGV0aW5nLFxuICAgICAgcHZjRXhwYW5kaW5nLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGlzYWJsZWQ6XG4gICAgICAgIHB2Y0RlbGV0aW5nIHx8XG4gICAgICAgICFwbHVnaW5FbmFibGVkIHx8XG4gICAgICAgICFjYW5VcGRhdGUgfHxcbiAgICAgICAgcHZjRXhwYW5kaW5nIHx8XG4gICAgICAgIGlzU3RhdGljUHZjIHx8XG4gICAgICAgICFzdXBwb3J0U25hcHNob3QsXG4gICAgICByZWFzb24sXG4gICAgICB0b29sdGlwOiBtYXBwZXIocmVhc29uKSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0UHZjVXBkYXRlRGlzYWJsZWRTdGF0ZShwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkge1xuICAgIHJldHVybiBnZXREaXNhYmxlZFN0YXRlKFxuICAgICAgKCkgPT4gZ2V0UHZjUmVidWlsZGluZ0Rpc2FibGVkU3RhdGUocHZjKSxcbiAgICAgICgpID0+IGdldFB2Y0RlbGV0aW5nRGlzYWJsZWRTdGF0ZShwdmMpLFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgdG9vbHRpcDogJ3B2Y19zdGF0dXNfZm9yYmlkX3VwZGF0ZScsXG4gICAgICAgIGRpc2FibGVkOiAhcHZjVXBkYXRlRW5hYmxlZChwdmMpLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIEBiaW5kXG4gIGdldFB2Y1JlYnVpbGREaXNhYmxlZFN0YXRlJChcbiAgICBwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSxcbiAgICBjbHVzdGVyOiBzdHJpbmcsXG4gICAgbmFtZXNwYWNlOiBzdHJpbmcsXG4gICkge1xuICAgIGNvbnN0IGRhdGFTb3VyY2VOYW1lID0gcHZjPy5zcGVjPy5kYXRhU291cmNlPy5uYW1lO1xuICAgIGNvbnN0IHJlc291cmNlJCA9IGRhdGFTb3VyY2VOYW1lXG4gICAgICA/IHRoaXMuazhzQXBpXG4gICAgICAgICAgLmdldFJlc291cmNlKHtcbiAgICAgICAgICAgIHR5cGU6IFNUT1JBR0VfUkVTT1VSQ0VfVFlQRVMuVk9MVU1FX1NOQVBTSE9ULFxuICAgICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgICAgIG5hbWU6IGRhdGFTb3VyY2VOYW1lLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnBpcGUoc2tpcEVycm9yKG51bGwpKVxuICAgICAgOiBvZihudWxsKTtcblxuICAgIHJldHVybiByZXNvdXJjZSQucGlwZShcbiAgICAgIG1hcChzbmFwc2hvdCA9PlxuICAgICAgICBnZXREaXNhYmxlZFN0YXRlKFxuICAgICAgICAgICgpID0+IGdldFB2Y1JlYnVpbGRpbmdEaXNhYmxlZFN0YXRlKHB2YyksXG4gICAgICAgICAgKCkgPT4gZ2V0UHZjRGVsZXRpbmdEaXNhYmxlZFN0YXRlKHB2YyksXG4gICAgICAgICAgKCkgPT4gKHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBwdmM/LnNwZWM/LnN0b3JhZ2VDbGFzc05hbWUgPT09ICcnLFxuICAgICAgICAgICAgdG9vbHRpcDogJ29ubHlfc3VwcG9ydGVkX3JlYnVpbGRfZHluYW1pY19wdmMnLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgICgpID0+ICh7XG4gICAgICAgICAgICBkaXNhYmxlZDogcHZjPy5zcGVjPy5kYXRhU291cmNlPy5uYW1lICYmICFzbmFwc2hvdCxcbiAgICAgICAgICAgIHRvb2x0aXA6ICdwdmNfZGF0YV9zb3VyY2Vfbm90X29wZXJhdGUnLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG93bmVyUmVmZXJlbmNlID0gcHZjPy5tZXRhZGF0YT8ub3duZXJSZWZlcmVuY2VzPy5bMF07XG4gICAgICAgICAgICAvLyDnlLEgUG9kIO+8iOmAmueUqOS4tOaXtuWNt+aooeeJiO+8ieWIm+W7uueahCBwdmMg5LiN5pSv5oyB6YeN5bu6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBkaXNhYmxlZDogb3duZXJSZWZlcmVuY2U/LmtpbmQgPT09ICdQb2QnLFxuICAgICAgICAgICAgICB0b29sdGlwOiAncHZjX2NyZWF0ZWRfYnlfcG9kX2Nhbl9ub3RfcmVidWlsZCcsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0sXG4gICAgICAgICksXG4gICAgICApLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG4gIH1cblxuICBnZXRQdmNEZWxldGVEaXNhYmxlZFN0YXRlKHB2YzogUGVyc2lzdGVudFZvbHVtZUNsYWltKSB7XG4gICAgcmV0dXJuIGdldERpc2FibGVkU3RhdGUoKCkgPT4gZ2V0UHZjUmVidWlsZGluZ0Rpc2FibGVkU3RhdGUocHZjKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFB2Y1NuYXBzaG90RGlzYWJsZWRSZWFzb24oXG4gICAgY2FuVXBkYXRlOiBib29sZWFuLFxuICAgIHNjOiBTdG9yYWdlQ2xhc3MsXG4gICAgcGx1Z2luRW5hYmxlZDogYm9vbGVhbixcbiAgICBzdXBwb3J0U25hcHNob3Q6IGJvb2xlYW4sXG4gICAgaXNTdGF0aWNQdmM6IGJvb2xlYW4sXG4gICAgaXNQdmNEZWxldGluZzogYm9vbGVhbixcbiAgICBpc1B2Y0V4cGFuZGluZzogYm9vbGVhbixcbiAgKSB7XG4gICAgaWYgKGlzUHZjRGVsZXRpbmcpIHtcbiAgICAgIHJldHVybiBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlBWQ19ERUxFVElORztcbiAgICB9XG5cbiAgICBpZiAoIXBsdWdpbkVuYWJsZWQpIHtcbiAgICAgIHJldHVybiBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlNOQVBTSE9UX1BMVUdJTl9OT1RfSU5TVEFMTEVEO1xuICAgIH1cblxuICAgIGlmICghc2MpIHtcbiAgICAgIHJldHVybiBpc1N0YXRpY1B2Y1xuICAgICAgICA/IFBWQ1NuYXBzaG90RGlzYWJsZWRSZWFzb24uV0lUSE9VVF9TVE9SQUdFX0NMQVNTXG4gICAgICAgIDogUFZDU25hcHNob3REaXNhYmxlZFJlYXNvbi5TVE9SQUdFX0NMQVNTX05PVEZPVU5EO1xuICAgIH1cblxuICAgIGlmICghc3VwcG9ydFNuYXBzaG90KSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBTdG9yYWdlUHJvdmlzaW9uZXIuQ0VQSF9GU19JTlRFUk5BTCxcbiAgICAgICAgU3RvcmFnZVByb3Zpc2lvbmVyLkNFUEhfRlNfUkJELFxuICAgICAgICBTdG9yYWdlUHJvdmlzaW9uZXIuVE9QT0xWTSxcbiAgICAgIF0uaW5jbHVkZXMoc2MucHJvdmlzaW9uZXIpXG4gICAgICAgID8gUFZDU25hcHNob3REaXNhYmxlZFJlYXNvbi5TVE9SQUdFX0NMQVNTX0ZPUkJJRFxuICAgICAgICA6IFBWQ1NuYXBzaG90RGlzYWJsZWRSZWFzb24uU05BUFNIT1RfVU5TVVBQT1JURUQ7XG4gICAgfVxuXG4gICAgaWYgKCFjYW5VcGRhdGUpIHtcbiAgICAgIHJldHVybiBQVkNTbmFwc2hvdERpc2FibGVkUmVhc29uLlBWQ19TVEFUVVNfRk9SQklEO1xuICAgIH1cblxuICAgIGlmIChpc1B2Y0V4cGFuZGluZykge1xuICAgICAgcmV0dXJuIFBWQ1NuYXBzaG90RGlzYWJsZWRSZWFzb24uUFZDX0VYUEFORElORztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { TRUE, VOLUME_SNAPSHOT_GROUP, } from '@alauda-fe/common';
1
+ import { TRUE, VOLUME_SNAPSHOT_API_GROUP, } from '@alauda-fe/common';
2
2
  import { PvcStatusEnum, PvStatusEnum, StorageProvisioner, VolumeBindingMode, } from '../types/commons';
3
3
  import { IS_DEFAULT_STORAGECLASS_ANNOTATION, STORAGECLASS_UNKNOWN, STORAGE_OPTION_MAP, VolumeSnapshotStatus, } from './constants';
4
4
  export function getProvisioner(sc) {
@@ -67,7 +67,7 @@ export function buildPvcResource({ namespace, snapshot, volumeMode, }, pvc) {
67
67
  spec: {
68
68
  storageClassName: pvc?.spec?.storageClassName ?? null,
69
69
  accessModes: pvc?.spec?.accessModes ?? ['ReadWriteOnce'],
70
- volumeMode: volumeMode ?? 'Filesystem',
70
+ volumeMode: pvc?.spec?.volumeMode || (volumeMode ?? 'Filesystem'),
71
71
  resources: {
72
72
  requests: {
73
73
  storage: pvc?.spec?.resources.requests?.storage ?? null,
@@ -78,7 +78,7 @@ export function buildPvcResource({ namespace, snapshot, volumeMode, }, pvc) {
78
78
  dataSource: {
79
79
  name: snapshot,
80
80
  kind: 'VolumeSnapshot',
81
- apiGroup: VOLUME_SNAPSHOT_GROUP,
81
+ apiGroup: VOLUME_SNAPSHOT_API_GROUP,
82
82
  },
83
83
  }
84
84
  : {}),
@@ -129,4 +129,4 @@ export function getPvStatus(pv) {
129
129
  }
130
130
  }
131
131
  }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc3RvcmFnZS9zcmMvbGliL3V0aWxzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLElBQUksRUFDSixxQkFBcUIsR0FFdEIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQ0wsYUFBYSxFQUNiLFlBQVksRUFFWixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0sa0JBQWtCLENBQUM7QUFTMUIsT0FBTyxFQUNMLGtDQUFrQyxFQUNsQyxvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLFVBQVUsY0FBYyxDQUFDLEVBQXNDO0lBQ25FLE1BQU0sV0FBVyxHQUNmLEVBQUU7UUFDRixDQUFDLGFBQWEsSUFBSSxFQUFFO1lBQ2xCLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVztZQUNoQixDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUU7Z0JBQ2xCLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVTtnQkFDZixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFZCxtRUFBbUU7SUFDbkUsSUFBSSxXQUFXLEtBQU0seUJBQWdELEVBQUUsQ0FBQztRQUN0RSxPQUFRLEVBQW1CLEVBQUUsVUFBVSxDQUNyQyxvQ0FBb0MsQ0FDZixDQUFDO0lBQzFCLENBQUM7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxFQUFzQztJQUV0QyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFdkMsT0FBTyxDQUNMLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sSUFBSTtRQUMxQyxFQUFFLEVBQUUsV0FBVztRQUNmLEVBQUUsRUFBRSxXQUFXO0tBQ2hCLENBQ0YsQ0FBQztBQUNK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QUFVLENBQUM7UUFDL0IsQ0FBQztRQUNELEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNiLE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQztRQUM3QixDQUFDO1FBQ0QsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ1osT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsRUFBb0I7SUFDOUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ3RDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNqQixPQUFPLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDaEMsQ0FBQztRQUNELEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNiLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQztRQUM1QixDQUFDO1FBQ0QsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2QsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFjY2Vzc01vZGUsXG4gIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSxcbiAgUGVyc2lzdGVudFZvbHVtZUNsYWltU3RhdHVzLFxuICBUcmFuc2xhdGlvbixcbiAgVFJVRSxcbiAgVk9MVU1FX1NOQVBTSE9UX0dST1VQLFxuICBWb2x1bWVNb2RlLFxufSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5cbmltcG9ydCB7XG4gIFB2Y1N0YXR1c0VudW0sXG4gIFB2U3RhdHVzRW51bSxcbiAgU3RvcmFnZU9wdGlvbixcbiAgU3RvcmFnZVByb3Zpc2lvbmVyLFxuICBWb2x1bWVCaW5kaW5nTW9kZSxcbn0gZnJvbSAnLi4vdHlwZXMvY29tbW9ucyc7XG5pbXBvcnQge1xuICBDb21tb25TdG9yYWdlQ2xhc3MsXG4gIFBlcnNpc3RlbnRWb2x1bWUsXG4gIFN0b3JhZ2VDbGFzcyxcbiAgVm9sdW1lU25hcHNob3QsXG4gIFZvbHVtZVNuYXBzaG90Q2xhc3MsXG59IGZyb20gJy4uL3R5cGVzL2s4cyc7XG5cbmltcG9ydCB7XG4gIElTX0RFRkFVTFRfU1RPUkFHRUNMQVNTX0FOTk9UQVRJT04sXG4gIFNUT1JBR0VDTEFTU19VTktOT1dOLFxuICBTVE9SQUdFX09QVElPTl9NQVAsXG4gIFZvbHVtZVNuYXBzaG90U3RhdHVzLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm92aXNpb25lcihzYzogQ29tbW9uU3RvcmFnZUNsYXNzIHwgU3RvcmFnZU9wdGlvbikge1xuICBjb25zdCBwcm92aXNpb25lciA9XG4gICAgc2MgJiZcbiAgICAoJ3Byb3Zpc2lvbmVyJyBpbiBzY1xuICAgICAgPyBzYy5wcm92aXNpb25lclxuICAgICAgOiAnZHJpdmVyTmFtZScgaW4gc2NcbiAgICAgICAgPyBzYy5kcml2ZXJOYW1lXG4gICAgICAgIDogbnVsbCk7XG5cbiAgLy8gQ0NFIOmbhue+pOS4iu+8jOS4jeWQjOWtmOWCqOS9v+eUqOebuOWQjOeahCBwcm92aXNpb25lcihldmVyZXN0LWNzaS1wcm92aXNpb25lcikg5pe26ZyA6KaB6L+b6KGM6aKd5aSW5aSE55CGXG4gIGlmIChwcm92aXNpb25lciA9PT0gKCdldmVyZXN0LWNzaS1wcm92aXNpb25lcicgYXMgU3RvcmFnZVByb3Zpc2lvbmVyKSkge1xuICAgIHJldHVybiAoc2MgYXMgU3RvcmFnZUNsYXNzKT8ucGFyYW1ldGVyc1tcbiAgICAgICdjc2kuc3RvcmFnZS5rOHMuaW8vY3NpLWRyaXZlci1uYW1lJ1xuICAgIF0gYXMgU3RvcmFnZVByb3Zpc2lvbmVyO1xuICB9XG4gIHJldHVybiBwcm92aXNpb25lcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3Zpc2lvbmVyRGlzcGxheShcbiAgc2M6IENvbW1vblN0b3JhZ2VDbGFzcyB8IFN0b3JhZ2VPcHRpb24sXG4pOiBUcmFuc2xhdGlvbiB7XG4gIGNvbnN0IHByb3Zpc2lvbmVyID0gZ2V0UHJvdmlzaW9uZXIoc2MpO1xuXG4gIHJldHVybiAoXG4gICAgU1RPUkFHRV9PUFRJT05fTUFQW3Byb3Zpc2lvbmVyXT8uZGlzcGxheSB8fCB7XG4gICAgICBlbjogcHJvdmlzaW9uZXIsXG4gICAgICB6aDogcHJvdmlzaW9uZXIsXG4gICAgfVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvdmlzaW9uZXJUeXBlKHByb3Zpc2lvbmVyOiBTdG9yYWdlUHJvdmlzaW9uZXIpIHtcbiAgcmV0dXJuIFNUT1JBR0VfT1BUSU9OX01BUFtwcm92aXNpb25lcl0/LnR5cGUgfHwgJ3Vua25vd24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmFnZWNsYXNzVm9sdW1lTW9kZXMocHJvdmlzaW9uZXI6IFN0b3JhZ2VQcm92aXNpb25lcikge1xuICByZXR1cm4gcHJvdmlzaW9uZXJcbiAgICA/IChTVE9SQUdFX09QVElPTl9NQVBbcHJvdmlzaW9uZXJdIHx8IFNUT1JBR0VDTEFTU19VTktOT1dOKS52b2x1bWVNb2Rlc1xuICAgIDogKFsnRmlsZXN5c3RlbScsICdCbG9jayddIGFzIFZvbHVtZU1vZGVbXSk7IC8vIOmSiOWvueacquivhuWIq+eahCBzYyDlhajpg6jljbfmqKHlvI/lj6/nlKhcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0b3JhZ2VjbGFzc0FjY2Vzc01vZGVzKFxuICBwcm92aXNpb25lcjogU3RvcmFnZVByb3Zpc2lvbmVyLFxuICBpc0Zyb21TbmFwc2hvdCA9IGZhbHNlLFxuKSB7XG4gIHJldHVybiBwcm92aXNpb25lclxuICAgID8gKFNUT1JBR0VfT1BUSU9OX01BUFtwcm92aXNpb25lcl0gfHwgU1RPUkFHRUNMQVNTX1VOS05PV04pW1xuICAgICAgICBpc0Zyb21TbmFwc2hvdCA/ICdzbmFwc2hvdEFjY2Vzc01vZGVzJyA6ICdhY2Nlc3NNb2RlcydcbiAgICAgIF1cbiAgICA6IChbJ1JlYWRPbmx5TWFueScsICdSZWFkV3JpdGVNYW55JywgJ1JlYWRXcml0ZU9uY2UnXSBhcyBBY2Nlc3NNb2RlW10pOyAvLyDpkojlr7nmnKror4bliKvnmoQgc2Mg5YWo6YOo6K6/6Zeu5pa55byP5Y+v55SoXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RlZmF1bHRTdG9yYWdlY2xhc3MoZGF0YTogQ29tbW9uU3RvcmFnZUNsYXNzKSB7XG4gIHJldHVybiAoXG4gICAgZGF0YS5tZXRhZGF0YS5hbm5vdGF0aW9ucz8uW0lTX0RFRkFVTFRfU1RPUkFHRUNMQVNTX0FOTk9UQVRJT05dID09PSBUUlVFXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0b3JhZ2VDbGFzc1N1cHBvcnRTbmFwc2hvdChcbiAgc2M6IFN0b3JhZ2VDbGFzcyxcbiAgdnNjTGlzdDogVm9sdW1lU25hcHNob3RDbGFzc1tdLFxuKSB7XG4gIGNvbnN0IGxpc3QgPSB2c2NMaXN0LmZpbHRlcihcbiAgICBpdGVtID0+IGl0ZW0ucGFyYW1ldGVycz8uY2x1c3RlcklEID09PSBzYy5wYXJhbWV0ZXJzPy5jbHVzdGVySUQsXG4gICk7XG4gIHN3aXRjaCAoc2MucHJvdmlzaW9uZXIpIHtcbiAgICBjYXNlIFN0b3JhZ2VQcm92aXNpb25lci5DRVBIX0ZTX0lOVEVSTkFMOiB7XG4gICAgICByZXR1cm4gbGlzdC5zb21lKFxuICAgICAgICBpdGVtID0+IGl0ZW0uZHJpdmVyID09PSBTdG9yYWdlUHJvdmlzaW9uZXIuQ0VQSF9GU19JTlRFUk5BTCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNhc2UgU3RvcmFnZVByb3Zpc2lvbmVyLkNFUEhfRlNfUkJEOiB7XG4gICAgICByZXR1cm4gbGlzdC5zb21lKGl0ZW0gPT4gaXRlbS5kcml2ZXIgPT09IFN0b3JhZ2VQcm92aXNpb25lci5DRVBIX0ZTX1JCRCk7XG4gICAgfVxuICAgIGNhc2UgU3RvcmFnZVByb3Zpc2lvbmVyLlRPUE9MVk06IHtcbiAgICAgIHJldHVybiBsaXN0LnNvbWUoaXRlbSA9PiBpdGVtLmRyaXZlciA9PT0gU3RvcmFnZVByb3Zpc2lvbmVyLlRPUE9MVk0pO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFB2Y1Jlc291cmNlKFxuICB7XG4gICAgbmFtZXNwYWNlLFxuICAgIHNuYXBzaG90LFxuICAgIHZvbHVtZU1vZGUsXG4gIH06IHsgbmFtZXNwYWNlOiBzdHJpbmc7IHNuYXBzaG90Pzogc3RyaW5nOyB2b2x1bWVNb2RlPzogVm9sdW1lTW9kZSB9LFxuICBwdmM/OiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0sIC8vIOWIm+W7uuW/q+eFp+exuyBQdmMg5pe25Lyg5YWlXG4pOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0ge1xuICByZXR1cm4ge1xuICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAga2luZDogJ1BlcnNpc3RlbnRWb2x1bWVDbGFpbScsXG4gICAgbWV0YWRhdGE6IHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgbmFtZXNwYWNlLFxuICAgICAgYW5ub3RhdGlvbnM6IHt9LFxuICAgICAgbGFiZWxzOiB7fSxcbiAgICB9LFxuICAgIHNwZWM6IHtcbiAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IHB2Yz8uc3BlYz8uc3RvcmFnZUNsYXNzTmFtZSA/PyBudWxsLFxuICAgICAgYWNjZXNzTW9kZXM6IHB2Yz8uc3BlYz8uYWNjZXNzTW9kZXMgPz8gWydSZWFkV3JpdGVPbmNlJ10sXG4gICAgICB2b2x1bWVNb2RlOiB2b2x1bWVNb2RlID8/ICdGaWxlc3lzdGVtJyxcbiAgICAgIHJlc291cmNlczoge1xuICAgICAgICByZXF1ZXN0czoge1xuICAgICAgICAgIHN0b3JhZ2U6IHB2Yz8uc3BlYz8ucmVzb3VyY2VzLnJlcXVlc3RzPy5zdG9yYWdlID8/IG51bGwsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgLi4uKHB2Y1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IHtcbiAgICAgICAgICAgICAgbmFtZTogc25hcHNob3QsXG4gICAgICAgICAgICAgIGtpbmQ6ICdWb2x1bWVTbmFwc2hvdCcsXG4gICAgICAgICAgICAgIGFwaUdyb3VwOiBWT0xVTUVfU05BUFNIT1RfR1JPVVAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7fSksXG4gICAgICBzZWxlY3Rvcjoge1xuICAgICAgICBtYXRjaExhYmVsczoge30sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWb2x1bWVTbmFwc2hvdFN0YXR1cyhyZXNvdXJjZTogVm9sdW1lU25hcHNob3QpIHtcbiAgcmV0dXJuIHJlc291cmNlLm1ldGFkYXRhPy5kZWxldGlvblRpbWVzdGFtcFxuICAgID8gVm9sdW1lU25hcHNob3RTdGF0dXMuREVMRVRJTkdcbiAgICA6IHJlc291cmNlLnN0YXR1cz8uZXJyb3JcbiAgICAgID8gVm9sdW1lU25hcHNob3RTdGF0dXMuTUFMRlVOQ1RJT05cbiAgICAgIDogcmVzb3VyY2Uuc3RhdHVzPy5yZWFkeVRvVXNlXG4gICAgICAgID8gVm9sdW1lU25hcHNob3RTdGF0dXMuQVZBSUxBQkxFXG4gICAgICAgIDogVm9sdW1lU25hcHNob3RTdGF0dXMuQ1JFQVRJTkc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQdmNTdGF0dXMoXG4gIHN0YXR1czogUGVyc2lzdGVudFZvbHVtZUNsYWltU3RhdHVzLFxuICByZWZTdG9yYWdlY2xhc3M/OiBTdG9yYWdlQ2xhc3MsXG4pOiBQdmNTdGF0dXNFbnVtIHtcbiAgc3dpdGNoIChzdGF0dXMucGhhc2UudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgJ3BlbmRpbmcnOiB7XG4gICAgICByZXR1cm4gcmVmU3RvcmFnZWNsYXNzPy52b2x1bWVCaW5kaW5nTW9kZSA9PT1cbiAgICAgICAgVm9sdW1lQmluZGluZ01vZGUuV2FpdEZvckZpcnN0Q29uc3VtZXJcbiAgICAgICAgPyBQdmNTdGF0dXNFbnVtLndhaXRpbmdcbiAgICAgICAgOiBQdmNTdGF0dXNFbnVtLnByb2Nlc3Npbmc7XG4gICAgfVxuICAgIGNhc2UgJ2JvdW5kJzoge1xuICAgICAgcmV0dXJuIFB2Y1N0YXR1c0VudW0uYm91bmQ7XG4gICAgfVxuICAgIGNhc2UgJ2xvc3QnOiB7XG4gICAgICByZXR1cm4gUHZjU3RhdHVzRW51bS5pbnZhbGlkO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHZTdGF0dXMocHY6IFBlcnNpc3RlbnRWb2x1bWUpOiBQdlN0YXR1c0VudW0ge1xuICBzd2l0Y2ggKHB2LnN0YXR1cy5waGFzZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgY2FzZSAnYXZhaWxhYmxlJzoge1xuICAgICAgcmV0dXJuIFB2U3RhdHVzRW51bS5BVkFJTEFCTEU7XG4gICAgfVxuICAgIGNhc2UgJ2JvdW5kJzoge1xuICAgICAgcmV0dXJuIFB2U3RhdHVzRW51bS5CT1VORDtcbiAgICB9XG4gICAgY2FzZSAncmVsZWFzZWQnOiB7XG4gICAgICByZXR1cm4gUHZTdGF0dXNFbnVtLldBSVRJTkdfUkVDWUNMRTtcbiAgICB9XG4gICAgY2FzZSAnZmFpbGVkJzoge1xuICAgICAgcmV0dXJuIFB2U3RhdHVzRW51bS5SRUNZQ0xFX0ZBSUxFRDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc3RvcmFnZS9zcmMvbGliL3V0aWxzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLElBQUksRUFDSix5QkFBeUIsR0FFMUIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQ0wsYUFBYSxFQUNiLFlBQVksRUFFWixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0sa0JBQWtCLENBQUM7QUFTMUIsT0FBTyxFQUNMLGtDQUFrQyxFQUNsQyxvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLFVBQVUsY0FBYyxDQUFDLEVBQXNDO0lBQ25FLE1BQU0sV0FBVyxHQUNmLEVBQUU7UUFDRixDQUFDLGFBQWEsSUFBSSxFQUFFO1lBQ2xCLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVztZQUNoQixDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUU7Z0JBQ2xCLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVTtnQkFDZixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFZCxtRUFBbUU7SUFDbkUsSUFBSSxXQUFXLEtBQU0seUJBQWdELEVBQUUsQ0FBQztRQUN0RSxPQUFRLEVBQW1CLEVBQUUsVUFBVSxDQUNyQyxvQ0FBb0MsQ0FDZixDQUFDO0lBQzFCLENBQUM7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxFQUFzQztJQUV0QyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFdkMsT0FBTyxDQUNMLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sSUFBSTtRQUMxQyxFQUFFLEVBQUUsV0FBVztRQUNmLEVBQUUsRUFBRSxXQUFXO0tBQ2hCLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsV0FBK0I7SUFDaEUsT0FBTyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLElBQUksU0FBUyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsV0FBK0I7SUFDeEUsT0FBTyxXQUFXO1FBQ2hCLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLENBQUMsV0FBVztRQUN2RSxDQUFDLENBQUUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFrQixDQUFDLENBQUMsb0JBQW9CO0FBQ3JFLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLFdBQStCLEVBQy9CLGNBQWMsR0FBRyxLQUFLO0lBRXRCLE9BQU8sV0FBVztRQUNoQixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxDQUN2RCxjQUFjLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQ3ZEO1FBQ0gsQ0FBQyxDQUFFLENBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQWtCLENBQUMsQ0FBQyxxQkFBcUI7QUFDakcsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxJQUF3QjtJQUM1RCxPQUFPLENBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQyxLQUFLLElBQUksQ0FDekUsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsNkJBQTZCLENBQzNDLEVBQWdCLEVBQ2hCLE9BQThCO0lBRTlCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQ3pCLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQ2hFLENBQUM7SUFDRixRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QixLQUFLLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQ2QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLGtCQUFrQixDQUFDLGdCQUFnQixDQUM1RCxDQUFDO1FBQ0osQ0FBQztRQUNELEtBQUssa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFDRCxLQUFLLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNSLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixFQUNFLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxHQUN3RCxFQUNwRSxHQUEyQjtJQUUzQixPQUFPO1FBQ0wsVUFBVSxFQUFFLElBQUk7UUFDaEIsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVM7WUFDVCxXQUFXLEVBQUUsRUFBRTtZQUNmLE1BQU0sRUFBRSxFQUFFO1NBQ1g7UUFDRCxJQUFJLEVBQUU7WUFDSixnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixJQUFJLElBQUk7WUFDckQsV0FBVyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsV0FBVyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ3hELFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFVBQVUsSUFBSSxDQUFDLFVBQVUsSUFBSSxZQUFZLENBQUM7WUFDakUsU0FBUyxFQUFFO2dCQUNULFFBQVEsRUFBRTtvQkFDUixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLE9BQU8sSUFBSSxJQUFJO2lCQUN4RDthQUNGO1lBQ0QsR0FBRyxDQUFDLEdBQUc7Z0JBQ0wsQ0FBQyxDQUFDO29CQUNFLFVBQVUsRUFBRTt3QkFDVixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsZ0JBQWdCO3dCQUN0QixRQUFRLEVBQUUseUJBQXlCO3FCQUNwQztpQkFDRjtnQkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsUUFBUSxFQUFFO2dCQUNSLFdBQVcsRUFBRSxFQUFFO2FBQ2hCO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUF3QjtJQUM5RCxPQUFPLFFBQVEsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCO1FBQ3pDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRO1FBQy9CLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUs7WUFDdEIsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFdBQVc7WUFDbEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsVUFBVTtnQkFDM0IsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFNBQVM7Z0JBQ2hDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7QUFDeEMsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQzFCLE1BQW1DLEVBQ25DLGVBQThCO0lBRTlCLFFBQVEsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ25DLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNmLE9BQU8sZUFBZSxFQUFFLGlCQUFpQjtnQkFDdkMsaUJBQWlCLENBQUMsb0JBQW9CO2dCQUN0QyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU87Z0JBQ3ZCLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBQy9CLENBQUM7UUFDRCxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDYixPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDN0IsQ0FBQztRQUNELEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNaLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEVBQW9CO0lBQzlDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUN0QyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDakIsT0FBTyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDYixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDNUIsQ0FBQztRQUNELEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNoQixPQUFPLFlBQVksQ0FBQyxlQUFlLENBQUM7UUFDdEMsQ0FBQztRQUNELEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNkLE9BQU8sWUFBWSxDQUFDLGNBQWMsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBY2Nlc3NNb2RlLFxuICBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0sXG4gIFBlcnNpc3RlbnRWb2x1bWVDbGFpbVN0YXR1cyxcbiAgVHJhbnNsYXRpb24sXG4gIFRSVUUsXG4gIFZPTFVNRV9TTkFQU0hPVF9BUElfR1JPVVAsXG4gIFZvbHVtZU1vZGUsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcblxuaW1wb3J0IHtcbiAgUHZjU3RhdHVzRW51bSxcbiAgUHZTdGF0dXNFbnVtLFxuICBTdG9yYWdlT3B0aW9uLFxuICBTdG9yYWdlUHJvdmlzaW9uZXIsXG4gIFZvbHVtZUJpbmRpbmdNb2RlLFxufSBmcm9tICcuLi90eXBlcy9jb21tb25zJztcbmltcG9ydCB7XG4gIENvbW1vblN0b3JhZ2VDbGFzcyxcbiAgUGVyc2lzdGVudFZvbHVtZSxcbiAgU3RvcmFnZUNsYXNzLFxuICBWb2x1bWVTbmFwc2hvdCxcbiAgVm9sdW1lU25hcHNob3RDbGFzcyxcbn0gZnJvbSAnLi4vdHlwZXMvazhzJztcblxuaW1wb3J0IHtcbiAgSVNfREVGQVVMVF9TVE9SQUdFQ0xBU1NfQU5OT1RBVElPTixcbiAgU1RPUkFHRUNMQVNTX1VOS05PV04sXG4gIFNUT1JBR0VfT1BUSU9OX01BUCxcbiAgVm9sdW1lU25hcHNob3RTdGF0dXMsXG59IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3Zpc2lvbmVyKHNjOiBDb21tb25TdG9yYWdlQ2xhc3MgfCBTdG9yYWdlT3B0aW9uKSB7XG4gIGNvbnN0IHByb3Zpc2lvbmVyID1cbiAgICBzYyAmJlxuICAgICgncHJvdmlzaW9uZXInIGluIHNjXG4gICAgICA/IHNjLnByb3Zpc2lvbmVyXG4gICAgICA6ICdkcml2ZXJOYW1lJyBpbiBzY1xuICAgICAgICA/IHNjLmRyaXZlck5hbWVcbiAgICAgICAgOiBudWxsKTtcblxuICAvLyBDQ0Ug6ZuG576k5LiK77yM5LiN5ZCM5a2Y5YKo5L2/55So55u45ZCM55qEIHByb3Zpc2lvbmVyKGV2ZXJlc3QtY3NpLXByb3Zpc2lvbmVyKSDml7bpnIDopoHov5vooYzpop3lpJblpITnkIZcbiAgaWYgKHByb3Zpc2lvbmVyID09PSAoJ2V2ZXJlc3QtY3NpLXByb3Zpc2lvbmVyJyBhcyBTdG9yYWdlUHJvdmlzaW9uZXIpKSB7XG4gICAgcmV0dXJuIChzYyBhcyBTdG9yYWdlQ2xhc3MpPy5wYXJhbWV0ZXJzW1xuICAgICAgJ2NzaS5zdG9yYWdlLms4cy5pby9jc2ktZHJpdmVyLW5hbWUnXG4gICAgXSBhcyBTdG9yYWdlUHJvdmlzaW9uZXI7XG4gIH1cbiAgcmV0dXJuIHByb3Zpc2lvbmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvdmlzaW9uZXJEaXNwbGF5KFxuICBzYzogQ29tbW9uU3RvcmFnZUNsYXNzIHwgU3RvcmFnZU9wdGlvbixcbik6IFRyYW5zbGF0aW9uIHtcbiAgY29uc3QgcHJvdmlzaW9uZXIgPSBnZXRQcm92aXNpb25lcihzYyk7XG5cbiAgcmV0dXJuIChcbiAgICBTVE9SQUdFX09QVElPTl9NQVBbcHJvdmlzaW9uZXJdPy5kaXNwbGF5IHx8IHtcbiAgICAgIGVuOiBwcm92aXNpb25lcixcbiAgICAgIHpoOiBwcm92aXNpb25lcixcbiAgICB9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm92aXNpb25lclR5cGUocHJvdmlzaW9uZXI6IFN0b3JhZ2VQcm92aXNpb25lcikge1xuICByZXR1cm4gU1RPUkFHRV9PUFRJT05fTUFQW3Byb3Zpc2lvbmVyXT8udHlwZSB8fCAndW5rbm93bic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdG9yYWdlY2xhc3NWb2x1bWVNb2Rlcyhwcm92aXNpb25lcjogU3RvcmFnZVByb3Zpc2lvbmVyKSB7XG4gIHJldHVybiBwcm92aXNpb25lclxuICAgID8gKFNUT1JBR0VfT1BUSU9OX01BUFtwcm92aXNpb25lcl0gfHwgU1RPUkFHRUNMQVNTX1VOS05PV04pLnZvbHVtZU1vZGVzXG4gICAgOiAoWydGaWxlc3lzdGVtJywgJ0Jsb2NrJ10gYXMgVm9sdW1lTW9kZVtdKTsgLy8g6ZKI5a+55pyq6K+G5Yir55qEIHNjIOWFqOmDqOWNt+aooeW8j+WPr+eUqFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmFnZWNsYXNzQWNjZXNzTW9kZXMoXG4gIHByb3Zpc2lvbmVyOiBTdG9yYWdlUHJvdmlzaW9uZXIsXG4gIGlzRnJvbVNuYXBzaG90ID0gZmFsc2UsXG4pIHtcbiAgcmV0dXJuIHByb3Zpc2lvbmVyXG4gICAgPyAoU1RPUkFHRV9PUFRJT05fTUFQW3Byb3Zpc2lvbmVyXSB8fCBTVE9SQUdFQ0xBU1NfVU5LTk9XTilbXG4gICAgICAgIGlzRnJvbVNuYXBzaG90ID8gJ3NuYXBzaG90QWNjZXNzTW9kZXMnIDogJ2FjY2Vzc01vZGVzJ1xuICAgICAgXVxuICAgIDogKFsnUmVhZE9ubHlNYW55JywgJ1JlYWRXcml0ZU1hbnknLCAnUmVhZFdyaXRlT25jZSddIGFzIEFjY2Vzc01vZGVbXSk7IC8vIOmSiOWvueacquivhuWIq+eahCBzYyDlhajpg6jorr/pl67mlrnlvI/lj6/nlKhcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmYXVsdFN0b3JhZ2VjbGFzcyhkYXRhOiBDb21tb25TdG9yYWdlQ2xhc3MpIHtcbiAgcmV0dXJuIChcbiAgICBkYXRhLm1ldGFkYXRhLmFubm90YXRpb25zPy5bSVNfREVGQVVMVF9TVE9SQUdFQ0xBU1NfQU5OT1RBVElPTl0gPT09IFRSVUVcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RvcmFnZUNsYXNzU3VwcG9ydFNuYXBzaG90KFxuICBzYzogU3RvcmFnZUNsYXNzLFxuICB2c2NMaXN0OiBWb2x1bWVTbmFwc2hvdENsYXNzW10sXG4pIHtcbiAgY29uc3QgbGlzdCA9IHZzY0xpc3QuZmlsdGVyKFxuICAgIGl0ZW0gPT4gaXRlbS5wYXJhbWV0ZXJzPy5jbHVzdGVySUQgPT09IHNjLnBhcmFtZXRlcnM/LmNsdXN0ZXJJRCxcbiAgKTtcbiAgc3dpdGNoIChzYy5wcm92aXNpb25lcikge1xuICAgIGNhc2UgU3RvcmFnZVByb3Zpc2lvbmVyLkNFUEhfRlNfSU5URVJOQUw6IHtcbiAgICAgIHJldHVybiBsaXN0LnNvbWUoXG4gICAgICAgIGl0ZW0gPT4gaXRlbS5kcml2ZXIgPT09IFN0b3JhZ2VQcm92aXNpb25lci5DRVBIX0ZTX0lOVEVSTkFMLFxuICAgICAgKTtcbiAgICB9XG4gICAgY2FzZSBTdG9yYWdlUHJvdmlzaW9uZXIuQ0VQSF9GU19SQkQ6IHtcbiAgICAgIHJldHVybiBsaXN0LnNvbWUoaXRlbSA9PiBpdGVtLmRyaXZlciA9PT0gU3RvcmFnZVByb3Zpc2lvbmVyLkNFUEhfRlNfUkJEKTtcbiAgICB9XG4gICAgY2FzZSBTdG9yYWdlUHJvdmlzaW9uZXIuVE9QT0xWTToge1xuICAgICAgcmV0dXJuIGxpc3Quc29tZShpdGVtID0+IGl0ZW0uZHJpdmVyID09PSBTdG9yYWdlUHJvdmlzaW9uZXIuVE9QT0xWTSk7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUHZjUmVzb3VyY2UoXG4gIHtcbiAgICBuYW1lc3BhY2UsXG4gICAgc25hcHNob3QsXG4gICAgdm9sdW1lTW9kZSxcbiAgfTogeyBuYW1lc3BhY2U6IHN0cmluZzsgc25hcHNob3Q/OiBzdHJpbmc7IHZvbHVtZU1vZGU/OiBWb2x1bWVNb2RlIH0sXG4gIHB2Yz86IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSwgLy8g5Yib5bu65b+r54Wn57G7IFB2YyDml7bkvKDlhaVcbik6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSB7XG4gIHJldHVybiB7XG4gICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICBraW5kOiAnUGVyc2lzdGVudFZvbHVtZUNsYWltJyxcbiAgICBtZXRhZGF0YToge1xuICAgICAgbmFtZTogJycsXG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBhbm5vdGF0aW9uczoge30sXG4gICAgICBsYWJlbHM6IHt9LFxuICAgIH0sXG4gICAgc3BlYzoge1xuICAgICAgc3RvcmFnZUNsYXNzTmFtZTogcHZjPy5zcGVjPy5zdG9yYWdlQ2xhc3NOYW1lID8/IG51bGwsXG4gICAgICBhY2Nlc3NNb2RlczogcHZjPy5zcGVjPy5hY2Nlc3NNb2RlcyA/PyBbJ1JlYWRXcml0ZU9uY2UnXSxcbiAgICAgIHZvbHVtZU1vZGU6IHB2Yz8uc3BlYz8udm9sdW1lTW9kZSB8fCAodm9sdW1lTW9kZSA/PyAnRmlsZXN5c3RlbScpLFxuICAgICAgcmVzb3VyY2VzOiB7XG4gICAgICAgIHJlcXVlc3RzOiB7XG4gICAgICAgICAgc3RvcmFnZTogcHZjPy5zcGVjPy5yZXNvdXJjZXMucmVxdWVzdHM/LnN0b3JhZ2UgPz8gbnVsbCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAuLi4ocHZjXG4gICAgICAgID8ge1xuICAgICAgICAgICAgZGF0YVNvdXJjZToge1xuICAgICAgICAgICAgICBuYW1lOiBzbmFwc2hvdCxcbiAgICAgICAgICAgICAga2luZDogJ1ZvbHVtZVNuYXBzaG90JyxcbiAgICAgICAgICAgICAgYXBpR3JvdXA6IFZPTFVNRV9TTkFQU0hPVF9BUElfR1JPVVAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7fSksXG4gICAgICBzZWxlY3Rvcjoge1xuICAgICAgICBtYXRjaExhYmVsczoge30sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWb2x1bWVTbmFwc2hvdFN0YXR1cyhyZXNvdXJjZTogVm9sdW1lU25hcHNob3QpIHtcbiAgcmV0dXJuIHJlc291cmNlLm1ldGFkYXRhPy5kZWxldGlvblRpbWVzdGFtcFxuICAgID8gVm9sdW1lU25hcHNob3RTdGF0dXMuREVMRVRJTkdcbiAgICA6IHJlc291cmNlLnN0YXR1cz8uZXJyb3JcbiAgICAgID8gVm9sdW1lU25hcHNob3RTdGF0dXMuTUFMRlVOQ1RJT05cbiAgICAgIDogcmVzb3VyY2Uuc3RhdHVzPy5yZWFkeVRvVXNlXG4gICAgICAgID8gVm9sdW1lU25hcHNob3RTdGF0dXMuQVZBSUxBQkxFXG4gICAgICAgIDogVm9sdW1lU25hcHNob3RTdGF0dXMuQ1JFQVRJTkc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQdmNTdGF0dXMoXG4gIHN0YXR1czogUGVyc2lzdGVudFZvbHVtZUNsYWltU3RhdHVzLFxuICByZWZTdG9yYWdlY2xhc3M/OiBTdG9yYWdlQ2xhc3MsXG4pOiBQdmNTdGF0dXNFbnVtIHtcbiAgc3dpdGNoIChzdGF0dXMucGhhc2UudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgJ3BlbmRpbmcnOiB7XG4gICAgICByZXR1cm4gcmVmU3RvcmFnZWNsYXNzPy52b2x1bWVCaW5kaW5nTW9kZSA9PT1cbiAgICAgICAgVm9sdW1lQmluZGluZ01vZGUuV2FpdEZvckZpcnN0Q29uc3VtZXJcbiAgICAgICAgPyBQdmNTdGF0dXNFbnVtLndhaXRpbmdcbiAgICAgICAgOiBQdmNTdGF0dXNFbnVtLnByb2Nlc3Npbmc7XG4gICAgfVxuICAgIGNhc2UgJ2JvdW5kJzoge1xuICAgICAgcmV0dXJuIFB2Y1N0YXR1c0VudW0uYm91bmQ7XG4gICAgfVxuICAgIGNhc2UgJ2xvc3QnOiB7XG4gICAgICByZXR1cm4gUHZjU3RhdHVzRW51bS5pbnZhbGlkO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHZTdGF0dXMocHY6IFBlcnNpc3RlbnRWb2x1bWUpOiBQdlN0YXR1c0VudW0ge1xuICBzd2l0Y2ggKHB2LnN0YXR1cy5waGFzZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgY2FzZSAnYXZhaWxhYmxlJzoge1xuICAgICAgcmV0dXJuIFB2U3RhdHVzRW51bS5BVkFJTEFCTEU7XG4gICAgfVxuICAgIGNhc2UgJ2JvdW5kJzoge1xuICAgICAgcmV0dXJuIFB2U3RhdHVzRW51bS5CT1VORDtcbiAgICB9XG4gICAgY2FzZSAncmVsZWFzZWQnOiB7XG4gICAgICByZXR1cm4gUHZTdGF0dXNFbnVtLldBSVRJTkdfUkVDWUNMRTtcbiAgICB9XG4gICAgY2FzZSAnZmFpbGVkJzoge1xuICAgICAgcmV0dXJuIFB2U3RhdHVzRW51bS5SRUNZQ0xFX0ZBSUxFRDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alauda-fe/storage",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "peerDependencies": {
5
5
  "@alauda/ui": "^8.0.0",
6
6
  "@alauda-fe/i18n": "1.0.11",