@bcrumbs.net/inbox 0.0.70 → 0.0.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs.js +34 -22
- package/index.esm.js +34 -22
- package/package.json +1 -1
- package/src/app/auth/utils/setSessionUserInfo.d.ts +12 -0
package/index.cjs.js
CHANGED
|
@@ -120193,7 +120193,7 @@ const Container = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "producti
|
|
|
120193
120193
|
} : {
|
|
120194
120194
|
name: "84oqz2",
|
|
120195
120195
|
styles: "display:flex;flex-direction:column;gap:16px;width:100%",
|
|
120196
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRhY3RJbmZvLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQjZCIiwiZmlsZSI6IkNvbnRhY3RJbmZvLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXdhaXRlciB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgeyBCdXR0b24sIEJDVmFsaWRhdGlvblR5cGVzLCB1c2VCQ0Zvcm0sIHRyaWdnZXJFcnJvclRvYXN0LCBOZXdUZXh0V2VpZ2h0LCBUZXh0U2l6ZVJlbSwgTmV3Q29sb3JzLCB9IGZyb20gJ0BiY3J1bWJzLm5ldC9iYy11aSc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjb250YWN0RGVmaW5pdGlvbiBmcm9tICcuLi9jb25maWcvY29udGFjdERlZmluaXRpb24nO1xuaW1wb3J0IHsgTW9kYWxUaXRsZSB9IGZyb20gJy4uLy4uL2dlbmVyaWMvY29tcG9uZW50cy9Db250YWluZXJzJztcbmltcG9ydCB7IHVzZVRhZ0NsaWVudE11dGF0aW9uLCB1c2VVbnRhZ0NsaWVudE11dGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vZ3JhcGhxbC5hdXRvZ2VuZXJhdGVkJztcbmltcG9ydCB7IEZPUk1fSU5JVCwgRm9ybUZpZWxkcyB9IGZyb20gJy4uL2NvbmZpZy9jb250YWN0Rm9ybSc7XG5pbXBvcnQgQ29udGFjdEZvcm1GaWVsZHMgZnJvbSAnLi9Db250YWN0Rm9ybUZpZWxkcyc7XG5pbXBvcnQgVGFnc1NlbGVjdG9yIGZyb20gJy4uLy4uL2luYm94L2NvbXBvbmVudHMvTmV3RGV0YWlscy9UYWdzU2VsZWN0b3InO1xuaW1wb3J0IHVzZVRhZ3MgZnJvbSAnLi4vLi4vaW5ib3gvaG9va3MvdXNlVGFncyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgQ2xpZW50SW5mb0xvYWRlciBmcm9tICcuLi8uLi9pbmJveC9jb21wb25lbnRzL05ld0RldGFpbHMvQ29tcG9uZW50TG9hZGVycy9DbGllbnRJbmZvTG9hZGVyJztcbmltcG9ydCB7IHVzZVRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvdGhlbWVDb250ZXh0JztcbmltcG9ydCB7IGNvcmVDbGllbnQgfSBmcm9tICdAYmNydW1icy5uZXQvYmMtYXBpJztcbmltcG9ydCB7IGF1dGggfSBmcm9tICdAYmNydW1icy5uZXQvYmMtc2hhcmVkJztcbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC5kaXYgYFxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBnYXA6IDE2cHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbmA7XG5jb25zdCB1c2VDb250YWN0TXV0YXRpb25zID0gKCkgPT4ge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICBjb25zdCBbdGFnQ2xpZW50XSA9IHVzZVRhZ0NsaWVudE11dGF0aW9uKHsgY2xpZW50OiBjb3JlQ2xpZW50IH0pO1xuICAgIGNvbnN0IFt1bnRhZ0NsaWVudF0gPSB1c2VVbnRhZ0NsaWVudE11dGF0aW9uKHsgY2xpZW50OiBjb3JlQ2xpZW50IH0pO1xuICAgIGNvbnN0IFtjcmVhdGVBY3Rpb25dID0gKChfYSA9IGNvbnRhY3REZWZpbml0aW9uLmNyZWF0ZU11dGF0aW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVhY3RIb29rKHtcbiAgICAgICAgZmV0Y2hQb2xpY3k6ICduby1jYWNoZScsXG4gICAgICAgIGNsaWVudDogKF9iID0gY29udGFjdERlZmluaXRpb24uY2xpZW50KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBjb3JlQ2xpZW50LFxuICAgIH0pKSB8fCBbXTtcbiAgICBjb25zdCBbcGF0Y2hBY3Rpb25dID0gKChfYyA9IGNvbnRhY3REZWZpbml0aW9uLnBhdGNoTXV0YXRpb24pID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5yZWFjdEhvb2soe1xuICAgICAgICBmZXRjaFBvbGljeTogJ25vLWNhY2hlJyxcbiAgICAgICAgY2xpZW50OiAoX2QgPSBjb250YWN0RGVmaW5pdGlvbi5jbGllbnQpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IGNvcmVDbGllbnQsXG4gICAgfSkpIHx8IFtdO1xuICAgIHJldHVybiB7IHRhZ0NsaWVudCwgdW50YWdDbGllbnQsIGNyZWF0ZUFjdGlvbiwgcGF0Y2hBY3Rpb24gfTtcbn07XG5jb25zdCBDb250YWN0SW5mbyA9ICh7IHNldENvbnRhY3RJbmZvSXNPcGVuLCBjb250YWN0SW5mb0lzT3Blbiwgb25Db250YWN0Q3JlYXRlZCwgY29udGFjdERhdGEsIGluaXRpYWxDb250YWN0RGF0YSB9KSA9PiB7XG4gICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICAgIGNvbnN0IHsgcnRsIH0gPSB1c2VUaGVtZUNvbnRleHQoKTtcbiAgICBjb25zdCBpc0VkaXRNb2RlID0gQm9vbGVhbihjb250YWN0RGF0YSk7XG4gICAgY29uc3QgW2N1cnJlbnRDb250YWN0SWQsIHNldEN1cnJlbnRDb250YWN0SWRdID0gdXNlU3RhdGUoKF9hID0gY29udGFjdERhdGEgPT09IG51bGwgfHwgY29udGFjdERhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhY3REYXRhLmlkKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsKTtcbiAgICBjb25zdCBbYWRkZWRUYWdzLCBzZXRBZGRlZFRhZ3NdID0gdXNlU3RhdGUoKGNvbnRhY3REYXRhID09PSBudWxsIHx8IGNvbnRhY3REYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250YWN0RGF0YS50YWdzKSB8fCBbXSk7XG4gICAgY29uc3QgeyBjbGllbnRUYWdzLCBjbGllbnRTdGFnZXMsIHJlZmV0Y2hUYWdzLCBsb2FkaW5nVGFncyB9ID0gdXNlVGFncygpO1xuICAgIGNvbnN0IHsgdGFnQ2xpZW50LCB1bnRhZ0NsaWVudCwgY3JlYXRlQWN0aW9uLCBwYXRjaEFjdGlvbiB9ID0gdXNlQ29udGFjdE11dGF0aW9ucygpO1xuICAgIGNvbnN0IFtmb3JtRGF0YSwgYmNGb3JtQWN0aW9uc10gPSB1c2VCQ0Zvcm0oRk9STV9JTklULCB0KTtcbiAgICBjb25zdCB7IHZhbGlkYXRlRmllbGQsIHJlbmRlckZpZWxkLCByZW5kZXJEcm9wbGlzdEZpZWxkLCByZXNldFZhbGlkYXRpb25TdGF0ZXMsIHNldEZpZWxkVmFsdWUgfSA9IGJjRm9ybUFjdGlvbnM7XG4gICAgLy8gUHJlLWZpbGwgZm9ybSBpbiBlZGl0IG1vZGUgb3Igd2l0aCBpbml0aWFsIGNvbnRhY3QgZGF0YVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaywgX2wsIF9tLCBfbywgX3AsIF9xLCBfciwgX3M7XG4gICAgICAgIGlmICghY29udGFjdEluZm9Jc09wZW4pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHJlc2V0VmFsaWRhdGlvblN0YXRlcygpO1xuICAgICAgICBpZiAoaXNFZGl0TW9kZSAmJiBjb250YWN0RGF0YSkge1xuICAgICAgICAgICAgY29uc3Qgc3RhZ2VOYW1lID0gKF9iID0gKF9hID0gY2xpZW50U3RhZ2VzID09PSBudWxsIHx8IGNsaWVudFN0YWdlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xpZW50U3RhZ2VzLmZpbmQoKHN0YWdlKSA9PiBzdGFnZS5pZCA9PT0gY29udGFjdERhdGEuc3RhZ2VJZCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50YWcpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcnO1xuICAgICAgICAgICAgY29uc3QgY29udGFjdEZvcm1NYXBwaW5nID0ge1xuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLm5hbWVdOiAoX2MgPSBjb250YWN0RGF0YS5uYW1lKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5zdXJuYW1lXTogKF9kID0gY29udGFjdERhdGEuc3VybmFtZSkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuZW1haWxdOiAoX2UgPSBjb250YWN0RGF0YS5lbWFpbCkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMucGhvbmVdOiAoX2YgPSBjb250YWN0RGF0YS5waG9uZSkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuYWRkcmVzc106IChfZyA9IGNvbnRhY3REYXRhLmFkZHJlc3MpICE9PSBudWxsICYmIF9nICE9PSB2b2lkIDAgPyBfZyA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmNvdW50cnldOiAoX2ggPSBjb250YWN0RGF0YS5jb3VudHJ5KSAhPT0gbnVsbCAmJiBfaCAhPT0gdm9pZCAwID8gX2ggOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5jaXR5XTogKF9qID0gY29udGFjdERhdGEuY2l0eSkgIT09IG51bGwgJiYgX2ogIT09IHZvaWQgMCA/IF9qIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuZGVmYXVsdEFnZW50SWRdOiAoX2sgPSBjb250YWN0RGF0YS5kZWZhdWx0QWdlbnRJZCkgIT09IG51bGwgJiYgX2sgIT09IHZvaWQgMCA/IF9rIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuc3RhZ2VdOiBzdGFnZU5hbWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoY29udGFjdEZvcm1NYXBwaW5nKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHNldEZpZWxkVmFsdWUoa2V5LCB2YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGluaXRpYWxDb250YWN0RGF0YSkge1xuICAgICAgICAgICAgLy8gUHJlLWZpbGwgd2l0aCBpbml0aWFsIGNvbnRhY3QgZGF0YSBmcm9tIGNvbnRhY3QgbWVzc2FnZVxuICAgICAgICAgICAgY29uc3QgY29udGFjdEZvcm1NYXBwaW5nID0ge1xuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLm5hbWVdOiAoX2wgPSBpbml0aWFsQ29udGFjdERhdGEuZmlyc3ROYW1lKSAhPT0gbnVsbCAmJiBfbCAhPT0gdm9pZCAwID8gX2wgOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5zdXJuYW1lXTogKF9tID0gaW5pdGlhbENvbnRhY3REYXRhLmxhc3ROYW1lKSAhPT0gbnVsbCAmJiBfbSAhPT0gdm9pZCAwID8gX20gOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5lbWFpbF06IChfbyA9IGluaXRpYWxDb250YWN0RGF0YS5lbWFpbCkgIT09IG51bGwgJiYgX28gIT09IHZvaWQgMCA/IF9vIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMucGhvbmVdOiAoX3AgPSBpbml0aWFsQ29udGFjdERhdGEucGhvbmUpICE9PSBudWxsICYmIF9wICE9PSB2b2lkIDAgPyBfcCA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmFkZHJlc3NdOiAoX3EgPSBpbml0aWFsQ29udGFjdERhdGEuYWRkcmVzcykgIT09IG51bGwgJiYgX3EgIT09IHZvaWQgMCA/IF9xIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuY291bnRyeV06IChfciA9IGluaXRpYWxDb250YWN0RGF0YS5jb3VudHJ5X2NvZGUpICE9PSBudWxsICYmIF9yICE9PSB2b2lkIDAgPyBfciA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmNpdHldOiAoX3MgPSBpbml0aWFsQ29udGFjdERhdGEuY2l0eSkgIT09IG51bGwgJiYgX3MgIT09IHZvaWQgMCA/IF9zIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuZGVmYXVsdEFnZW50SWRdOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5zdGFnZV06ICcnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbnRhY3RGb3JtTWFwcGluZykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiBzZXRGaWVsZFZhbHVlKGtleSwgdmFsdWUpKTtcbiAgICAgICAgICAgIHNldEN1cnJlbnRDb250YWN0SWQobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhGT1JNX0lOSVQpLmZvckVhY2goKGZpZWxkKSA9PiBzZXRGaWVsZFZhbHVlKGZpZWxkLCAnJykpO1xuICAgICAgICAgICAgc2V0Q3VycmVudENvbnRhY3RJZChudWxsKTtcbiAgICAgICAgfVxuICAgIH0sIFtjb250YWN0SW5mb0lzT3BlbiwgaXNFZGl0TW9kZSwgY29udGFjdERhdGEsIGluaXRpYWxDb250YWN0RGF0YSwgY2xpZW50U3RhZ2VzLCByZXNldFZhbGlkYXRpb25TdGF0ZXMsIHNldEZpZWxkVmFsdWVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFjdERhdGEpIHtcbiAgICAgICAgICAgIHNldEFkZGVkVGFncygoY29udGFjdERhdGEgPT09IG51bGwgfHwgY29udGFjdERhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhY3REYXRhLnRhZ3MpIHx8IFtdKTtcbiAgICAgICAgfVxuICAgIH0sIFtjb250YWN0RGF0YV0pO1xuICAgIGNvbnN0IGF2YWlsYWJsZVRhZ3MgPSB1c2VNZW1vKCgpID0+IChjbGllbnRUYWdzICE9PSBudWxsICYmIGNsaWVudFRhZ3MgIT09IHZvaWQgMCA/IGNsaWVudFRhZ3MgOiBbXSlcbiAgICAgICAgLm1hcCgodGFnKSA9PiAoeyB0ZXh0OiB0YWcudGFnLCB2YWx1ZTogdGFnLnRhZyB9KSlcbiAgICAgICAgLmZpbHRlcigodGFnKSA9PiAhYWRkZWRUYWdzLmluY2x1ZGVzKHRhZy52YWx1ZSkpLCBbY2xpZW50VGFncywgYWRkZWRUYWdzXSk7XG4gICAgY29uc3QgaGFuZGxlVGFnU2VsZWN0ID0gKHRhZ1ZhbHVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgaWYgKCF0YWdWYWx1ZSB8fCBhZGRlZFRhZ3MuaW5jbHVkZXModGFnVmFsdWUpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzZXRBZGRlZFRhZ3MoKHByZXYpID0+IFsuLi5wcmV2LCB0YWdWYWx1ZV0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZSA9ICh0YWdWYWx1ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghY3VycmVudENvbnRhY3RJZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHlpZWxkIHVudGFnQ2xpZW50KHtcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiBjdXJyZW50Q29udGFjdElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFnOiB0YWdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtzcGFjZUlkOiBhdXRoLmdldENvbnRleHQoKSB8fCAwLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNldEFkZGVkVGFncygocHJldikgPT4gcHJldi5maWx0ZXIoKHRhZykgPT4gdGFnICE9PSB0YWdWYWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RhZyByZW1vdmUgZXJyb3I6JywgZXJyKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uU3VibWl0ID0gdXNlQ2FsbGJhY2soKGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2QsIF9lLCBfZiwgX2csIF9oLCBfajtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXNldFZhbGlkYXRpb25TdGF0ZXMoKTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRGaWVsZHMgPSBpc0VkaXRNb2RlID8gW10gOiBbRm9ybUZpZWxkcy5waG9uZV07XG4gICAgICAgIGNvbnN0IGlzVmFsaWQgPSByZXF1aXJlZEZpZWxkcy5ldmVyeSgoZmllbGQpID0+IHZhbGlkYXRlRmllbGQoZmllbGQsIEJDVmFsaWRhdGlvblR5cGVzLk5PVF9FTVBUWSkpO1xuICAgICAgICBjb25zdCBlbWFpbFZhbGlkID0gKChfZCA9IGZvcm1EYXRhW1wiZW1haWxcIl0pID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC52YWx1ZSkgPyB2YWxpZGF0ZUZpZWxkKEZvcm1GaWVsZHMuZW1haWwsIEJDVmFsaWRhdGlvblR5cGVzLkVNQUlMKSA6IHRydWU7XG4gICAgICAgIGlmICghaXNWYWxpZCB8fCAhZW1haWxWYWxpZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGZvcm1EYXRhKS5tYXAoKFtrZXksIGZpZWxkXSkgPT4gW1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgZmllbGQudmFsdWUsXG4gICAgICAgIF0pKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBjbGllbnRJZCA9IChfZSA9IGNvbnRhY3REYXRhID09PSBudWxsIHx8IGNvbnRhY3REYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250YWN0RGF0YS5pZCkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogbnVsbDtcbiAgICAgICAgICAgIC8vIDHvuI/ig6MgVXBkYXRlIG9yIGNyZWF0ZSBjbGllbnRcbiAgICAgICAgICAgIGlmIChpc0VkaXRNb2RlICYmIGNsaWVudElkKSB7XG4gICAgICAgICAgICAgICAgeWllbGQgKHBhdGNoQWN0aW9uID09PSBudWxsIHx8IHBhdGNoQWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXRjaEFjdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogY2xpZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEFnZW50SWQ6IHZhbHVlc1snZGVmYXVsdEFnZW50SWQnXSA9PT0gJ3VubGlua0FnZW50JyA/IG51bGwgOiB2YWx1ZXNbJ2RlZmF1bHRBZ2VudElkJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdmFsdWVzWyduYW1lJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VybmFtZTogdmFsdWVzWydzdXJuYW1lJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw6IHZhbHVlc1snZW1haWwnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5OiB2YWx1ZXNbJ2NvdW50cnknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXR5OiB2YWx1ZXNbJ2NpdHknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzOiB2YWx1ZXNbJ2FkZHJlc3MnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFnZTogdmFsdWVzWydzdGFnZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtzcGFjZUlkOiBhdXRoLmdldENvbnRleHQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgKGNyZWF0ZUFjdGlvbiA9PT0gbnVsbCB8fCBjcmVhdGVBY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNyZWF0ZUFjdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB2YWx1ZXNbJ25hbWUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXJuYW1lOiB2YWx1ZXNbJ3N1cm5hbWUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWFpbDogdmFsdWVzWydlbWFpbCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsQ2xpZW50SWQ6IHZhbHVlc1sncGhvbmUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZTogdmFsdWVzWydwaG9uZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IHZhbHVlc1snYWRkcmVzcyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnk6IHZhbHVlc1snY291bnRyeSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpdHk6IHZhbHVlc1snY2l0eSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWdlOiB2YWx1ZXNbJ3N0YWdlJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEFnZW50SWQ6IHZhbHVlc1snZGVmYXVsdEFnZW50SWQnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3Jrc3BhY2VJZDogYXV0aC5nZXRDb250ZXh0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICBjbGllbnRJZCA9IChfaCA9IChfZyA9IChfZiA9IHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3VsdC5kYXRhKSA9PT0gbnVsbCB8fCBfZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2YuY3JlYXRlQ2xpZW50KSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cuaWQpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IG51bGw7XG4gICAgICAgICAgICAgICAgc2V0Q3VycmVudENvbnRhY3RJZChjbGllbnRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNsaWVudElkKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vIDLvuI/ig6MgU3luYyB0YWdzXG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ1RhZ3MgPSAoX2ogPSBjb250YWN0RGF0YSA9PT0gbnVsbCB8fCBjb250YWN0RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29udGFjdERhdGEudGFncykgIT09IG51bGwgJiYgX2ogIT09IHZvaWQgMCA/IF9qIDogW107XG4gICAgICAgICAgICBjb25zdCB0YWdzVG9BZGQgPSBpc0VkaXRNb2RlXG4gICAgICAgICAgICAgICAgPyBhZGRlZFRhZ3MuZmlsdGVyKCh0YWcpID0+ICFleGlzdGluZ1RhZ3MuaW5jbHVkZXModGFnKSlcbiAgICAgICAgICAgICAgICA6IGFkZGVkVGFncztcbiAgICAgICAgICAgIHlpZWxkIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAvLyBBZGQgbmV3IHRhZ3NcbiAgICAgICAgICAgICAgICAuLi50YWdzVG9BZGQubWFwKCh0YWcpID0+IHRhZ0NsaWVudCh7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya3NwYWNlSWQ6IGF1dGguZ2V0Q29udGV4dCgpIHx8IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgb25Db250YWN0Q3JlYXRlZCA9PT0gbnVsbCB8fCBvbkNvbnRhY3RDcmVhdGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbnRhY3RDcmVhdGVkKCk7XG4gICAgICAgICAgICBzZXRDb250YWN0SW5mb0lzT3BlbihmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0cmlnZ2VyRXJyb3JUb2FzdCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHQoJ2Vycm9yJyksXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KSwgW3ZhbGlkYXRlRmllbGQsIHJlc2V0VmFsaWRhdGlvblN0YXRlcywgZm9ybURhdGEsIGFkZGVkVGFncywgY29udGFjdERhdGEgPT09IG51bGwgfHwgY29udGFjdERhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhY3REYXRhLmlkLCBjb250YWN0RGF0YSA9PT0gbnVsbCB8fCBjb250YWN0RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29udGFjdERhdGEudGFncywgdGFnQ2xpZW50LCBzZXRDb250YWN0SW5mb0lzT3BlbiwgaXNFZGl0TW9kZSwgY3JlYXRlQWN0aW9uLCBwYXRjaEFjdGlvbiwgdCwgb25Db250YWN0Q3JlYXRlZF0pO1xuICAgIGlmIChsb2FkaW5nVGFncylcbiAgICAgICAgcmV0dXJuIF9qc3goQ2xpZW50SW5mb0xvYWRlciwge30pO1xuICAgIHJldHVybiAoX2pzeHMoQ29udGFpbmVyLCB7IGNoaWxkcmVuOiBbX2pzeChNb2RhbFRpdGxlLCB7IGNoaWxkcmVuOiBpc0VkaXRNb2RlID8gdCgnY29udGFjdC5lZGl0Q29udGFjdCcpIDogdCgnY29udGFjdC5hZGROZXdDb250YWN0JykgfSksIF9qc3goQ29udGFjdEZvcm1GaWVsZHMsIHsgcmVuZGVyRmllbGQ6IHJlbmRlckZpZWxkLCBjbGllbnRTdGFnZXM6IGNsaWVudFN0YWdlcywgcmVuZGVyRHJvcGxpc3RGaWVsZDogcmVuZGVyRHJvcGxpc3RGaWVsZCwgaXNFZGl0TW9kZTogaXNFZGl0TW9kZSwgcGhvbmVWYWx1ZTogKF9jID0gKF9iID0gZm9ybURhdGFbRm9ybUZpZWxkcy5waG9uZV0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi52YWx1ZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogJycsIG9uUGhvbmVDaGFuZ2U6ICh2YWx1ZSkgPT4gc2V0RmllbGRWYWx1ZShGb3JtRmllbGRzLnBob25lLCB2YWx1ZSksIHBob25lRmllbGRFcnJvcjogZm9ybURhdGFbRm9ybUZpZWxkcy5waG9uZV0gJiYgIWZvcm1EYXRhW0Zvcm1GaWVsZHMucGhvbmVdLmlzVmFsaWRcbiAgICAgICAgICAgICAgICAgICAgPyB0KGZvcm1EYXRhW0Zvcm1GaWVsZHMucGhvbmVdLm1lc3NhZ2UpXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkIH0pLCBfanN4KFwiZGl2XCIsIHsgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IFRleHRTaXplUmVtLlMsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IE5ld1RleHRXZWlnaHQuTk9STUFMLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogTmV3Q29sb3JzLkZPUkVHUk9VTkQsXG4gICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6ICdub3JtYWwnLFxuICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiB0KCdjb250YWN0LnRhZ3MnKSB9KSwgX2pzeChUYWdzU2VsZWN0b3IsIHsgaGFuZGxlVGFnU2VsZWN0OiBoYW5kbGVUYWdTZWxlY3QsIGF2YWlsYWJsZVRhZ3M6IGF2YWlsYWJsZVRhZ3MsIHJ0bDogcnRsLCBjb250YWN0c1RhZ3NMb2FkaW5nOiBsb2FkaW5nVGFncywgYWRkZWRUYWdzOiBhZGRlZFRhZ3MsIGhhbmRsZVRhZ1JlbW92ZTogaGFuZGxlVGFnUmVtb3ZlLCB0eXBlOiBcImNsaWVudFwiLCByZWZldGNoVGFnczogcmVmZXRjaFRhZ3MgfSksIF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IHsgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJywgZ2FwOiAnOHB4JywgbWFyZ2luVG9wOiAnMTZweCcgfSwgY2hpbGRyZW46IFtfanN4KEJ1dHRvbiwgeyB2YXJpYW50OiBcInNlY29uZGFyeVwiLCBvbkNsaWNrOiAoKSA9PiBzZXRDb250YWN0SW5mb0lzT3BlbihmYWxzZSksIGNoaWxkcmVuOiB0KCdjb250YWN0LmNhbmNlbCcpIH0pLCBfanN4KEJ1dHRvbiwgeyBvbkNsaWNrOiBvblN1Ym1pdCwgY2hpbGRyZW46IGlzRWRpdE1vZGUgPyB0KCdjb250YWN0LnNhdmUnKSA6IHQoJ2NvbnRhY3QuY3JlYXRlJykgfSldIH0pXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgQ29udGFjdEluZm87XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Db250YWN0SW5mby5qcy5tYXAiXX0= */",
|
|
120196
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRhY3RJbmZvLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQjZCIiwiZmlsZSI6IkNvbnRhY3RJbmZvLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXdhaXRlciB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgeyBCdXR0b24sIEJDVmFsaWRhdGlvblR5cGVzLCB1c2VCQ0Zvcm0sIHRyaWdnZXJFcnJvclRvYXN0LCBOZXdUZXh0V2VpZ2h0LCBUZXh0U2l6ZVJlbSwgTmV3Q29sb3JzLCB9IGZyb20gJ0BiY3J1bWJzLm5ldC9iYy11aSc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNvbnRhY3REZWZpbml0aW9uIGZyb20gJy4uL2NvbmZpZy9jb250YWN0RGVmaW5pdGlvbic7XG5pbXBvcnQgeyBNb2RhbFRpdGxlIH0gZnJvbSAnLi4vLi4vZ2VuZXJpYy9jb21wb25lbnRzL0NvbnRhaW5lcnMnO1xuaW1wb3J0IHsgdXNlVGFnQ2xpZW50TXV0YXRpb24sIHVzZVVudGFnQ2xpZW50TXV0YXRpb24gfSBmcm9tICcuLi8uLi8uLi9ncmFwaHFsLmF1dG9nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgRk9STV9JTklULCBGb3JtRmllbGRzIH0gZnJvbSAnLi4vY29uZmlnL2NvbnRhY3RGb3JtJztcbmltcG9ydCBDb250YWN0Rm9ybUZpZWxkcyBmcm9tICcuL0NvbnRhY3RGb3JtRmllbGRzJztcbmltcG9ydCBUYWdzU2VsZWN0b3IgZnJvbSAnLi4vLi4vaW5ib3gvY29tcG9uZW50cy9OZXdEZXRhaWxzL1RhZ3NTZWxlY3Rvcic7XG5pbXBvcnQgdXNlVGFncyBmcm9tICcuLi8uLi9pbmJveC9ob29rcy91c2VUYWdzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBDbGllbnRJbmZvTG9hZGVyIGZyb20gJy4uLy4uL2luYm94L2NvbXBvbmVudHMvTmV3RGV0YWlscy9Db21wb25lbnRMb2FkZXJzL0NsaWVudEluZm9Mb2FkZXInO1xuaW1wb3J0IHsgdXNlVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC90aGVtZUNvbnRleHQnO1xuaW1wb3J0IHsgY29yZUNsaWVudCB9IGZyb20gJ0BiY3J1bWJzLm5ldC9iYy1hcGknO1xuaW1wb3J0IHsgYXV0aCB9IGZyb20gJ0BiY3J1bWJzLm5ldC9iYy1zaGFyZWQnO1xuY29uc3QgQ29udGFpbmVyID0gc3R5bGVkLmRpdiBgXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGdhcDogMTZweDtcclxuICB3aWR0aDogMTAwJTtcclxuYDtcbmNvbnN0IHVzZUNvbnRhY3RNdXRhdGlvbnMgPSAoKSA9PiB7XG4gICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgIGNvbnN0IFt0YWdDbGllbnRdID0gdXNlVGFnQ2xpZW50TXV0YXRpb24oeyBjbGllbnQ6IGNvcmVDbGllbnQgfSk7XG4gICAgY29uc3QgW3VudGFnQ2xpZW50XSA9IHVzZVVudGFnQ2xpZW50TXV0YXRpb24oeyBjbGllbnQ6IGNvcmVDbGllbnQgfSk7XG4gICAgY29uc3QgW2NyZWF0ZUFjdGlvbl0gPSAoKF9hID0gY29udGFjdERlZmluaXRpb24uY3JlYXRlTXV0YXRpb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZWFjdEhvb2soe1xuICAgICAgICBmZXRjaFBvbGljeTogJ25vLWNhY2hlJyxcbiAgICAgICAgY2xpZW50OiAoX2IgPSBjb250YWN0RGVmaW5pdGlvbi5jbGllbnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGNvcmVDbGllbnQsXG4gICAgfSkpIHx8IFtdO1xuICAgIGNvbnN0IFtwYXRjaEFjdGlvbl0gPSAoKF9jID0gY29udGFjdERlZmluaXRpb24ucGF0Y2hNdXRhdGlvbikgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnJlYWN0SG9vayh7XG4gICAgICAgIGZldGNoUG9saWN5OiAnbm8tY2FjaGUnLFxuICAgICAgICBjbGllbnQ6IChfZCA9IGNvbnRhY3REZWZpbml0aW9uLmNsaWVudCkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogY29yZUNsaWVudCxcbiAgICB9KSkgfHwgW107XG4gICAgcmV0dXJuIHsgdGFnQ2xpZW50LCB1bnRhZ0NsaWVudCwgY3JlYXRlQWN0aW9uLCBwYXRjaEFjdGlvbiB9O1xufTtcbmNvbnN0IENvbnRhY3RJbmZvID0gKHsgc2V0Q29udGFjdEluZm9Jc09wZW4sIGNvbnRhY3RJbmZvSXNPcGVuLCBvbkNvbnRhY3RDcmVhdGVkLCBjb250YWN0RGF0YSwgaW5pdGlhbENvbnRhY3REYXRhIH0pID0+IHtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gICAgY29uc3QgeyBydGwgfSA9IHVzZVRoZW1lQ29udGV4dCgpO1xuICAgIGNvbnN0IGlzRWRpdE1vZGUgPSBCb29sZWFuKGNvbnRhY3REYXRhKTtcbiAgICBjb25zdCBbY3VycmVudENvbnRhY3RJZCwgc2V0Q3VycmVudENvbnRhY3RJZF0gPSB1c2VTdGF0ZSgoX2EgPSBjb250YWN0RGF0YSA9PT0gbnVsbCB8fCBjb250YWN0RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29udGFjdERhdGEuaWQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG51bGwpO1xuICAgIGNvbnN0IFthZGRlZFRhZ3MsIHNldEFkZGVkVGFnc10gPSB1c2VTdGF0ZSgoY29udGFjdERhdGEgPT09IG51bGwgfHwgY29udGFjdERhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhY3REYXRhLnRhZ3MpIHx8IFtdKTtcbiAgICBjb25zdCB7IGNsaWVudFRhZ3MsIGNsaWVudFN0YWdlcywgcmVmZXRjaFRhZ3MsIGxvYWRpbmdUYWdzIH0gPSB1c2VUYWdzKCk7XG4gICAgY29uc3QgeyB0YWdDbGllbnQsIHVudGFnQ2xpZW50LCBjcmVhdGVBY3Rpb24sIHBhdGNoQWN0aW9uIH0gPSB1c2VDb250YWN0TXV0YXRpb25zKCk7XG4gICAgY29uc3QgW2Zvcm1EYXRhLCBiY0Zvcm1BY3Rpb25zXSA9IHVzZUJDRm9ybShGT1JNX0lOSVQsIHQpO1xuICAgIGNvbnN0IHsgdmFsaWRhdGVGaWVsZCwgcmVuZGVyRmllbGQsIHJlbmRlckRyb3BsaXN0RmllbGQsIHJlc2V0VmFsaWRhdGlvblN0YXRlcywgc2V0RmllbGRWYWx1ZSB9ID0gYmNGb3JtQWN0aW9ucztcbiAgICBjb25zdCBzdGFnZVByZWZpbGxlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgLy8gUHJlLWZpbGwgZm9ybSBpbiBlZGl0IG1vZGUgb3Igd2l0aCBpbml0aWFsIGNvbnRhY3QgZGF0YS5cbiAgICAvLyBjbGllbnRTdGFnZXMgaXMgaW50ZW50aW9uYWxseSBub3QgYSBkZXBlbmRlbmN5OiB0YWcgcmVmZXRjaGVzIChlLmcuIGNyZWF0aW5nIGEgbmV3IHRhZylcbiAgICAvLyB3b3VsZCBvdGhlcndpc2UgcmUtcnVuIHRoaXMgZWZmZWN0IGFuZCB3aXBlIHdoYXQgdGhlIHVzZXIgYWxyZWFkeSB0eXBlZC5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaiwgX2ssIF9sLCBfbSwgX28sIF9wLCBfcTtcbiAgICAgICAgaWYgKCFjb250YWN0SW5mb0lzT3BlbilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgcmVzZXRWYWxpZGF0aW9uU3RhdGVzKCk7XG4gICAgICAgIHN0YWdlUHJlZmlsbGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGlzRWRpdE1vZGUgJiYgY29udGFjdERhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhY3RGb3JtTWFwcGluZyA9IHtcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5uYW1lXTogKF9hID0gY29udGFjdERhdGEubmFtZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuc3VybmFtZV06IChfYiA9IGNvbnRhY3REYXRhLnN1cm5hbWUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmVtYWlsXTogKF9jID0gY29udGFjdERhdGEuZW1haWwpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLnBob25lXTogKF9kID0gY29udGFjdERhdGEucGhvbmUpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmFkZHJlc3NdOiAoX2UgPSBjb250YWN0RGF0YS5hZGRyZXNzKSAhPT0gbnVsbCAmJiBfZSAhPT0gdm9pZCAwID8gX2UgOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5jb3VudHJ5XTogKF9mID0gY29udGFjdERhdGEuY291bnRyeSkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuY2l0eV06IChfZyA9IGNvbnRhY3REYXRhLmNpdHkpICE9PSBudWxsICYmIF9nICE9PSB2b2lkIDAgPyBfZyA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmRlZmF1bHRBZ2VudElkXTogKF9oID0gY29udGFjdERhdGEuZGVmYXVsdEFnZW50SWQpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6ICcnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbnRhY3RGb3JtTWFwcGluZykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiBzZXRGaWVsZFZhbHVlKGtleSwgdmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpbml0aWFsQ29udGFjdERhdGEpIHtcbiAgICAgICAgICAgIC8vIFByZS1maWxsIHdpdGggaW5pdGlhbCBjb250YWN0IGRhdGEgZnJvbSBjb250YWN0IG1lc3NhZ2VcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhY3RGb3JtTWFwcGluZyA9IHtcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5uYW1lXTogKF9qID0gaW5pdGlhbENvbnRhY3REYXRhLmZpcnN0TmFtZSkgIT09IG51bGwgJiYgX2ogIT09IHZvaWQgMCA/IF9qIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuc3VybmFtZV06IChfayA9IGluaXRpYWxDb250YWN0RGF0YS5sYXN0TmFtZSkgIT09IG51bGwgJiYgX2sgIT09IHZvaWQgMCA/IF9rIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuZW1haWxdOiAoX2wgPSBpbml0aWFsQ29udGFjdERhdGEuZW1haWwpICE9PSBudWxsICYmIF9sICE9PSB2b2lkIDAgPyBfbCA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLnBob25lXTogKF9tID0gaW5pdGlhbENvbnRhY3REYXRhLnBob25lKSAhPT0gbnVsbCAmJiBfbSAhPT0gdm9pZCAwID8gX20gOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5hZGRyZXNzXTogKF9vID0gaW5pdGlhbENvbnRhY3REYXRhLmFkZHJlc3MpICE9PSBudWxsICYmIF9vICE9PSB2b2lkIDAgPyBfbyA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmNvdW50cnldOiAoX3AgPSBpbml0aWFsQ29udGFjdERhdGEuY291bnRyeV9jb2RlKSAhPT0gbnVsbCAmJiBfcCAhPT0gdm9pZCAwID8gX3AgOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5jaXR5XTogKF9xID0gaW5pdGlhbENvbnRhY3REYXRhLmNpdHkpICE9PSBudWxsICYmIF9xICE9PSB2b2lkIDAgPyBfcSA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmRlZmF1bHRBZ2VudElkXTogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuc3RhZ2VdOiAnJyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhjb250YWN0Rm9ybU1hcHBpbmcpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4gc2V0RmllbGRWYWx1ZShrZXksIHZhbHVlKSk7XG4gICAgICAgICAgICBzZXRDdXJyZW50Q29udGFjdElkKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoRk9STV9JTklUKS5mb3JFYWNoKChmaWVsZCkgPT4gc2V0RmllbGRWYWx1ZShmaWVsZCwgJycpKTtcbiAgICAgICAgICAgIHNldEN1cnJlbnRDb250YWN0SWQobnVsbCk7XG4gICAgICAgIH1cbiAgICB9LCBbY29udGFjdEluZm9Jc09wZW4sIGlzRWRpdE1vZGUsIGNvbnRhY3REYXRhLCBpbml0aWFsQ29udGFjdERhdGEsIHJlc2V0VmFsaWRhdGlvblN0YXRlcywgc2V0RmllbGRWYWx1ZV0pO1xuICAgIC8vIFN0YWdlcyBsb2FkIGFzeW5jaHJvbm91c2x5OyBwcmUtZmlsbCB0aGUgZWRpdGVkIGNvbnRhY3QncyBzdGFnZSBvbmNlIHBlciBvcGVuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCFjb250YWN0SW5mb0lzT3BlbiB8fCAhaXNFZGl0TW9kZSB8fCAhY29udGFjdERhdGEgfHwgc3RhZ2VQcmVmaWxsZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKCEoY2xpZW50U3RhZ2VzID09PSBudWxsIHx8IGNsaWVudFN0YWdlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xpZW50U3RhZ2VzLmxlbmd0aCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHN0YWdlTmFtZSA9IChfYiA9IChfYSA9IGNsaWVudFN0YWdlcy5maW5kKChzdGFnZSkgPT4gc3RhZ2UuaWQgPT09IGNvbnRhY3REYXRhLnN0YWdlSWQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGFnKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAnJztcbiAgICAgICAgc2V0RmllbGRWYWx1ZShGb3JtRmllbGRzLnN0YWdlLCBzdGFnZU5hbWUpO1xuICAgICAgICBzdGFnZVByZWZpbGxlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9LCBbY29udGFjdEluZm9Jc09wZW4sIGlzRWRpdE1vZGUsIGNvbnRhY3REYXRhLCBjbGllbnRTdGFnZXMsIHNldEZpZWxkVmFsdWVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFjdERhdGEpIHtcbiAgICAgICAgICAgIHNldEFkZGVkVGFncygoY29udGFjdERhdGEgPT09IG51bGwgfHwgY29udGFjdERhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhY3REYXRhLnRhZ3MpIHx8IFtdKTtcbiAgICAgICAgfVxuICAgIH0sIFtjb250YWN0RGF0YV0pO1xuICAgIGNvbnN0IGF2YWlsYWJsZVRhZ3MgPSB1c2VNZW1vKCgpID0+IChjbGllbnRUYWdzICE9PSBudWxsICYmIGNsaWVudFRhZ3MgIT09IHZvaWQgMCA/IGNsaWVudFRhZ3MgOiBbXSlcbiAgICAgICAgLm1hcCgodGFnKSA9PiAoeyB0ZXh0OiB0YWcudGFnLCB2YWx1ZTogdGFnLnRhZyB9KSlcbiAgICAgICAgLmZpbHRlcigodGFnKSA9PiAhYWRkZWRUYWdzLmluY2x1ZGVzKHRhZy52YWx1ZSkpLCBbY2xpZW50VGFncywgYWRkZWRUYWdzXSk7XG4gICAgY29uc3QgaGFuZGxlVGFnU2VsZWN0ID0gKHRhZ1ZhbHVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgaWYgKCF0YWdWYWx1ZSB8fCBhZGRlZFRhZ3MuaW5jbHVkZXModGFnVmFsdWUpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzZXRBZGRlZFRhZ3MoKHByZXYpID0+IFsuLi5wcmV2LCB0YWdWYWx1ZV0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZSA9ICh0YWdWYWx1ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghY3VycmVudENvbnRhY3RJZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHlpZWxkIHVudGFnQ2xpZW50KHtcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiBjdXJyZW50Q29udGFjdElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFnOiB0YWdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtzcGFjZUlkOiBhdXRoLmdldENvbnRleHQoKSB8fCAwLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNldEFkZGVkVGFncygocHJldikgPT4gcHJldi5maWx0ZXIoKHRhZykgPT4gdGFnICE9PSB0YWdWYWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RhZyByZW1vdmUgZXJyb3I6JywgZXJyKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uU3VibWl0ID0gdXNlQ2FsbGJhY2soKGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2QsIF9lLCBfZiwgX2csIF9oLCBfajtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXNldFZhbGlkYXRpb25TdGF0ZXMoKTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRGaWVsZHMgPSBpc0VkaXRNb2RlID8gW10gOiBbRm9ybUZpZWxkcy5waG9uZV07XG4gICAgICAgIGNvbnN0IGlzVmFsaWQgPSByZXF1aXJlZEZpZWxkcy5ldmVyeSgoZmllbGQpID0+IHZhbGlkYXRlRmllbGQoZmllbGQsIEJDVmFsaWRhdGlvblR5cGVzLk5PVF9FTVBUWSkpO1xuICAgICAgICBjb25zdCBlbWFpbFZhbGlkID0gKChfZCA9IGZvcm1EYXRhW1wiZW1haWxcIl0pID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC52YWx1ZSkgPyB2YWxpZGF0ZUZpZWxkKEZvcm1GaWVsZHMuZW1haWwsIEJDVmFsaWRhdGlvblR5cGVzLkVNQUlMKSA6IHRydWU7XG4gICAgICAgIGlmICghaXNWYWxpZCB8fCAhZW1haWxWYWxpZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGZvcm1EYXRhKS5tYXAoKFtrZXksIGZpZWxkXSkgPT4gW1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgZmllbGQudmFsdWUsXG4gICAgICAgIF0pKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBjbGllbnRJZCA9IChfZSA9IGNvbnRhY3REYXRhID09PSBudWxsIHx8IGNvbnRhY3REYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250YWN0RGF0YS5pZCkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogbnVsbDtcbiAgICAgICAgICAgIC8vIDHvuI/ig6MgVXBkYXRlIG9yIGNyZWF0ZSBjbGllbnRcbiAgICAgICAgICAgIGlmIChpc0VkaXRNb2RlICYmIGNsaWVudElkKSB7XG4gICAgICAgICAgICAgICAgeWllbGQgKHBhdGNoQWN0aW9uID09PSBudWxsIHx8IHBhdGNoQWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXRjaEFjdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogY2xpZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEFnZW50SWQ6IHZhbHVlc1snZGVmYXVsdEFnZW50SWQnXSA9PT0gJ3VubGlua0FnZW50JyA/IG51bGwgOiB2YWx1ZXNbJ2RlZmF1bHRBZ2VudElkJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdmFsdWVzWyduYW1lJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VybmFtZTogdmFsdWVzWydzdXJuYW1lJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw6IHZhbHVlc1snZW1haWwnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5OiB2YWx1ZXNbJ2NvdW50cnknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXR5OiB2YWx1ZXNbJ2NpdHknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzOiB2YWx1ZXNbJ2FkZHJlc3MnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFnZTogdmFsdWVzWydzdGFnZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtzcGFjZUlkOiBhdXRoLmdldENvbnRleHQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgKGNyZWF0ZUFjdGlvbiA9PT0gbnVsbCB8fCBjcmVhdGVBY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNyZWF0ZUFjdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB2YWx1ZXNbJ25hbWUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXJuYW1lOiB2YWx1ZXNbJ3N1cm5hbWUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWFpbDogdmFsdWVzWydlbWFpbCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsQ2xpZW50SWQ6IHZhbHVlc1sncGhvbmUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZTogdmFsdWVzWydwaG9uZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IHZhbHVlc1snYWRkcmVzcyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnk6IHZhbHVlc1snY291bnRyeSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpdHk6IHZhbHVlc1snY2l0eSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWdlOiB2YWx1ZXNbJ3N0YWdlJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEFnZW50SWQ6IHZhbHVlc1snZGVmYXVsdEFnZW50SWQnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3Jrc3BhY2VJZDogYXV0aC5nZXRDb250ZXh0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICBjbGllbnRJZCA9IChfaCA9IChfZyA9IChfZiA9IHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3VsdC5kYXRhKSA9PT0gbnVsbCB8fCBfZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2YuY3JlYXRlQ2xpZW50KSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cuaWQpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IG51bGw7XG4gICAgICAgICAgICAgICAgc2V0Q3VycmVudENvbnRhY3RJZChjbGllbnRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNsaWVudElkKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vIDLvuI/ig6MgU3luYyB0YWdzXG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ1RhZ3MgPSAoX2ogPSBjb250YWN0RGF0YSA9PT0gbnVsbCB8fCBjb250YWN0RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29udGFjdERhdGEudGFncykgIT09IG51bGwgJiYgX2ogIT09IHZvaWQgMCA/IF9qIDogW107XG4gICAgICAgICAgICBjb25zdCB0YWdzVG9BZGQgPSBpc0VkaXRNb2RlXG4gICAgICAgICAgICAgICAgPyBhZGRlZFRhZ3MuZmlsdGVyKCh0YWcpID0+ICFleGlzdGluZ1RhZ3MuaW5jbHVkZXModGFnKSlcbiAgICAgICAgICAgICAgICA6IGFkZGVkVGFncztcbiAgICAgICAgICAgIHlpZWxkIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAvLyBBZGQgbmV3IHRhZ3NcbiAgICAgICAgICAgICAgICAuLi50YWdzVG9BZGQubWFwKCh0YWcpID0+IHRhZ0NsaWVudCh7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya3NwYWNlSWQ6IGF1dGguZ2V0Q29udGV4dCgpIHx8IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgb25Db250YWN0Q3JlYXRlZCA9PT0gbnVsbCB8fCBvbkNvbnRhY3RDcmVhdGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbnRhY3RDcmVhdGVkKCk7XG4gICAgICAgICAgICBzZXRDb250YWN0SW5mb0lzT3BlbihmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0cmlnZ2VyRXJyb3JUb2FzdCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHQoJ2Vycm9yJyksXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KSwgW3ZhbGlkYXRlRmllbGQsIHJlc2V0VmFsaWRhdGlvblN0YXRlcywgZm9ybURhdGEsIGFkZGVkVGFncywgY29udGFjdERhdGEgPT09IG51bGwgfHwgY29udGFjdERhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhY3REYXRhLmlkLCBjb250YWN0RGF0YSA9PT0gbnVsbCB8fCBjb250YWN0RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29udGFjdERhdGEudGFncywgdGFnQ2xpZW50LCBzZXRDb250YWN0SW5mb0lzT3BlbiwgaXNFZGl0TW9kZSwgY3JlYXRlQWN0aW9uLCBwYXRjaEFjdGlvbiwgdCwgb25Db250YWN0Q3JlYXRlZF0pO1xuICAgIC8vIE9ubHkgYmxvY2sgb24gdGhlIGluaXRpYWwgbG9hZDsgcmVmZXRjaGVzIG11c3Qgbm90IHVubW91bnQgdGhlIGZvcm1cbiAgICBpZiAobG9hZGluZ1RhZ3MgJiYgIWNsaWVudFRhZ3MubGVuZ3RoICYmICFjbGllbnRTdGFnZXMubGVuZ3RoKVxuICAgICAgICByZXR1cm4gX2pzeChDbGllbnRJbmZvTG9hZGVyLCB7fSk7XG4gICAgcmV0dXJuIChfanN4cyhDb250YWluZXIsIHsgY2hpbGRyZW46IFtfanN4KE1vZGFsVGl0bGUsIHsgY2hpbGRyZW46IGlzRWRpdE1vZGUgPyB0KCdjb250YWN0LmVkaXRDb250YWN0JykgOiB0KCdjb250YWN0LmFkZE5ld0NvbnRhY3QnKSB9KSwgX2pzeChDb250YWN0Rm9ybUZpZWxkcywgeyByZW5kZXJGaWVsZDogcmVuZGVyRmllbGQsIGNsaWVudFN0YWdlczogY2xpZW50U3RhZ2VzLCByZW5kZXJEcm9wbGlzdEZpZWxkOiByZW5kZXJEcm9wbGlzdEZpZWxkLCBpc0VkaXRNb2RlOiBpc0VkaXRNb2RlLCBwaG9uZVZhbHVlOiAoX2MgPSAoX2IgPSBmb3JtRGF0YVtGb3JtRmllbGRzLnBob25lXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnZhbHVlKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAnJywgb25QaG9uZUNoYW5nZTogKHZhbHVlKSA9PiBzZXRGaWVsZFZhbHVlKEZvcm1GaWVsZHMucGhvbmUsIHZhbHVlKSwgcGhvbmVGaWVsZEVycm9yOiBmb3JtRGF0YVtGb3JtRmllbGRzLnBob25lXSAmJiAhZm9ybURhdGFbRm9ybUZpZWxkcy5waG9uZV0uaXNWYWxpZFxuICAgICAgICAgICAgICAgICAgICA/IHQoZm9ybURhdGFbRm9ybUZpZWxkcy5waG9uZV0ubWVzc2FnZSlcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQgfSksIF9qc3goXCJkaXZcIiwgeyBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogVGV4dFNpemVSZW0uUyxcbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogTmV3VGV4dFdlaWdodC5OT1JNQUwsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBOZXdDb2xvcnMuRk9SRUdST1VORCxcbiAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogJ25vcm1hbCcsXG4gICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IHQoJ2NvbnRhY3QudGFncycpIH0pLCBfanN4KFRhZ3NTZWxlY3RvciwgeyBoYW5kbGVUYWdTZWxlY3Q6IGhhbmRsZVRhZ1NlbGVjdCwgYXZhaWxhYmxlVGFnczogYXZhaWxhYmxlVGFncywgcnRsOiBydGwsIGNvbnRhY3RzVGFnc0xvYWRpbmc6IGxvYWRpbmdUYWdzLCBhZGRlZFRhZ3M6IGFkZGVkVGFncywgaGFuZGxlVGFnUmVtb3ZlOiBoYW5kbGVUYWdSZW1vdmUsIHR5cGU6IFwiY2xpZW50XCIsIHJlZmV0Y2hUYWdzOiByZWZldGNoVGFncyB9KSwgX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogeyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnZmxleC1lbmQnLCBnYXA6ICc4cHgnLCBtYXJnaW5Ub3A6ICcxNnB4JyB9LCBjaGlsZHJlbjogW19qc3goQnV0dG9uLCB7IHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsIG9uQ2xpY2s6ICgpID0+IHNldENvbnRhY3RJbmZvSXNPcGVuKGZhbHNlKSwgY2hpbGRyZW46IHQoJ2NvbnRhY3QuY2FuY2VsJykgfSksIF9qc3goQnV0dG9uLCB7IG9uQ2xpY2s6IG9uU3VibWl0LCBjaGlsZHJlbjogaXNFZGl0TW9kZSA/IHQoJ2NvbnRhY3Quc2F2ZScpIDogdCgnY29udGFjdC5jcmVhdGUnKSB9KV0gfSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBDb250YWN0SW5mbztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvbnRhY3RJbmZvLmpzLm1hcCJdfQ== */",
|
|
120197
120197
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$2
|
|
120198
120198
|
});
|
|
120199
120199
|
const useContactMutations = () => {
|
|
@@ -120256,35 +120256,37 @@ const ContactInfo = ({
|
|
|
120256
120256
|
resetValidationStates,
|
|
120257
120257
|
setFieldValue
|
|
120258
120258
|
} = bcFormActions;
|
|
120259
|
-
|
|
120259
|
+
const stagePrefilledRef = React.useRef(false);
|
|
120260
|
+
// Pre-fill form in edit mode or with initial contact data.
|
|
120261
|
+
// clientStages is intentionally not a dependency: tag refetches (e.g. creating a new tag)
|
|
120262
|
+
// would otherwise re-run this effect and wipe what the user already typed.
|
|
120260
120263
|
React.useEffect(() => {
|
|
120261
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q
|
|
120264
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
120262
120265
|
if (!contactInfoIsOpen) return;
|
|
120263
120266
|
resetValidationStates();
|
|
120267
|
+
stagePrefilledRef.current = false;
|
|
120264
120268
|
if (isEditMode && contactData) {
|
|
120265
|
-
const stageName = (_b = (_a = clientStages === null || clientStages === void 0 ? void 0 : clientStages.find(stage => stage.id === contactData.stageId)) === null || _a === void 0 ? void 0 : _a.tag) !== null && _b !== void 0 ? _b : '';
|
|
120266
120269
|
const contactFormMapping = {
|
|
120267
|
-
[FormFields.name]: (
|
|
120268
|
-
[FormFields.surname]: (
|
|
120269
|
-
[FormFields.email]: (
|
|
120270
|
-
[FormFields.phone]: (
|
|
120271
|
-
[FormFields.address]: (
|
|
120272
|
-
[FormFields.country]: (
|
|
120273
|
-
[FormFields.city]: (
|
|
120274
|
-
[FormFields.defaultAgentId]: (
|
|
120275
|
-
[FormFields.stage]: stageName
|
|
120270
|
+
[FormFields.name]: (_a = contactData.name) !== null && _a !== void 0 ? _a : '',
|
|
120271
|
+
[FormFields.surname]: (_b = contactData.surname) !== null && _b !== void 0 ? _b : '',
|
|
120272
|
+
[FormFields.email]: (_c = contactData.email) !== null && _c !== void 0 ? _c : '',
|
|
120273
|
+
[FormFields.phone]: (_d = contactData.phone) !== null && _d !== void 0 ? _d : '',
|
|
120274
|
+
[FormFields.address]: (_e = contactData.address) !== null && _e !== void 0 ? _e : '',
|
|
120275
|
+
[FormFields.country]: (_f = contactData.country) !== null && _f !== void 0 ? _f : '',
|
|
120276
|
+
[FormFields.city]: (_g = contactData.city) !== null && _g !== void 0 ? _g : '',
|
|
120277
|
+
[FormFields.defaultAgentId]: (_h = contactData.defaultAgentId) !== null && _h !== void 0 ? _h : ''
|
|
120276
120278
|
};
|
|
120277
120279
|
Object.entries(contactFormMapping).forEach(([key, value]) => setFieldValue(key, value));
|
|
120278
120280
|
} else if (initialContactData) {
|
|
120279
120281
|
// Pre-fill with initial contact data from contact message
|
|
120280
120282
|
const contactFormMapping = {
|
|
120281
|
-
[FormFields.name]: (
|
|
120282
|
-
[FormFields.surname]: (
|
|
120283
|
-
[FormFields.email]: (
|
|
120284
|
-
[FormFields.phone]: (
|
|
120285
|
-
[FormFields.address]: (
|
|
120286
|
-
[FormFields.country]: (
|
|
120287
|
-
[FormFields.city]: (
|
|
120283
|
+
[FormFields.name]: (_j = initialContactData.firstName) !== null && _j !== void 0 ? _j : '',
|
|
120284
|
+
[FormFields.surname]: (_k = initialContactData.lastName) !== null && _k !== void 0 ? _k : '',
|
|
120285
|
+
[FormFields.email]: (_l = initialContactData.email) !== null && _l !== void 0 ? _l : '',
|
|
120286
|
+
[FormFields.phone]: (_m = initialContactData.phone) !== null && _m !== void 0 ? _m : '',
|
|
120287
|
+
[FormFields.address]: (_o = initialContactData.address) !== null && _o !== void 0 ? _o : '',
|
|
120288
|
+
[FormFields.country]: (_p = initialContactData.country_code) !== null && _p !== void 0 ? _p : '',
|
|
120289
|
+
[FormFields.city]: (_q = initialContactData.city) !== null && _q !== void 0 ? _q : '',
|
|
120288
120290
|
[FormFields.defaultAgentId]: '',
|
|
120289
120291
|
[FormFields.stage]: ''
|
|
120290
120292
|
};
|
|
@@ -120294,7 +120296,16 @@ const ContactInfo = ({
|
|
|
120294
120296
|
Object.keys(FORM_INIT).forEach(field => setFieldValue(field, ''));
|
|
120295
120297
|
setCurrentContactId(null);
|
|
120296
120298
|
}
|
|
120297
|
-
}, [contactInfoIsOpen, isEditMode, contactData, initialContactData,
|
|
120299
|
+
}, [contactInfoIsOpen, isEditMode, contactData, initialContactData, resetValidationStates, setFieldValue]);
|
|
120300
|
+
// Stages load asynchronously; pre-fill the edited contact's stage once per open
|
|
120301
|
+
React.useEffect(() => {
|
|
120302
|
+
var _a, _b;
|
|
120303
|
+
if (!contactInfoIsOpen || !isEditMode || !contactData || stagePrefilledRef.current) return;
|
|
120304
|
+
if (!(clientStages === null || clientStages === void 0 ? void 0 : clientStages.length)) return;
|
|
120305
|
+
const stageName = (_b = (_a = clientStages.find(stage => stage.id === contactData.stageId)) === null || _a === void 0 ? void 0 : _a.tag) !== null && _b !== void 0 ? _b : '';
|
|
120306
|
+
setFieldValue(FormFields.stage, stageName);
|
|
120307
|
+
stagePrefilledRef.current = true;
|
|
120308
|
+
}, [contactInfoIsOpen, isEditMode, contactData, clientStages, setFieldValue]);
|
|
120298
120309
|
React.useEffect(() => {
|
|
120299
120310
|
if (contactData) {
|
|
120300
120311
|
setAddedTags((contactData === null || contactData === void 0 ? void 0 : contactData.tags) || []);
|
|
@@ -120399,7 +120410,8 @@ const ContactInfo = ({
|
|
|
120399
120410
|
});
|
|
120400
120411
|
}
|
|
120401
120412
|
}), [validateField, resetValidationStates, formData, addedTags, contactData === null || contactData === void 0 ? void 0 : contactData.id, contactData === null || contactData === void 0 ? void 0 : contactData.tags, tagClient, setContactInfoIsOpen, isEditMode, createAction, patchAction, t, onContactCreated]);
|
|
120402
|
-
|
|
120413
|
+
// Only block on the initial load; refetches must not unmount the form
|
|
120414
|
+
if (loadingTags && !clientTags.length && !clientStages.length) return jsx$1(ClientInfoLoader, {});
|
|
120403
120415
|
return jsxs(Container, {
|
|
120404
120416
|
children: [jsx$1(ModalTitle, {
|
|
120405
120417
|
children: isEditMode ? t('contact.editContact') : t('contact.addNewContact')
|
package/index.esm.js
CHANGED
|
@@ -120175,7 +120175,7 @@ const Container = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "producti
|
|
|
120175
120175
|
} : {
|
|
120176
120176
|
name: "84oqz2",
|
|
120177
120177
|
styles: "display:flex;flex-direction:column;gap:16px;width:100%",
|
|
120178
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRhY3RJbmZvLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQjZCIiwiZmlsZSI6IkNvbnRhY3RJbmZvLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXdhaXRlciB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgeyBCdXR0b24sIEJDVmFsaWRhdGlvblR5cGVzLCB1c2VCQ0Zvcm0sIHRyaWdnZXJFcnJvclRvYXN0LCBOZXdUZXh0V2VpZ2h0LCBUZXh0U2l6ZVJlbSwgTmV3Q29sb3JzLCB9IGZyb20gJ0BiY3J1bWJzLm5ldC9iYy11aSc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjb250YWN0RGVmaW5pdGlvbiBmcm9tICcuLi9jb25maWcvY29udGFjdERlZmluaXRpb24nO1xuaW1wb3J0IHsgTW9kYWxUaXRsZSB9IGZyb20gJy4uLy4uL2dlbmVyaWMvY29tcG9uZW50cy9Db250YWluZXJzJztcbmltcG9ydCB7IHVzZVRhZ0NsaWVudE11dGF0aW9uLCB1c2VVbnRhZ0NsaWVudE11dGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vZ3JhcGhxbC5hdXRvZ2VuZXJhdGVkJztcbmltcG9ydCB7IEZPUk1fSU5JVCwgRm9ybUZpZWxkcyB9IGZyb20gJy4uL2NvbmZpZy9jb250YWN0Rm9ybSc7XG5pbXBvcnQgQ29udGFjdEZvcm1GaWVsZHMgZnJvbSAnLi9Db250YWN0Rm9ybUZpZWxkcyc7XG5pbXBvcnQgVGFnc1NlbGVjdG9yIGZyb20gJy4uLy4uL2luYm94L2NvbXBvbmVudHMvTmV3RGV0YWlscy9UYWdzU2VsZWN0b3InO1xuaW1wb3J0IHVzZVRhZ3MgZnJvbSAnLi4vLi4vaW5ib3gvaG9va3MvdXNlVGFncyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgQ2xpZW50SW5mb0xvYWRlciBmcm9tICcuLi8uLi9pbmJveC9jb21wb25lbnRzL05ld0RldGFpbHMvQ29tcG9uZW50TG9hZGVycy9DbGllbnRJbmZvTG9hZGVyJztcbmltcG9ydCB7IHVzZVRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvdGhlbWVDb250ZXh0JztcbmltcG9ydCB7IGNvcmVDbGllbnQgfSBmcm9tICdAYmNydW1icy5uZXQvYmMtYXBpJztcbmltcG9ydCB7IGF1dGggfSBmcm9tICdAYmNydW1icy5uZXQvYmMtc2hhcmVkJztcbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC5kaXYgYFxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBnYXA6IDE2cHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbmA7XG5jb25zdCB1c2VDb250YWN0TXV0YXRpb25zID0gKCkgPT4ge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICBjb25zdCBbdGFnQ2xpZW50XSA9IHVzZVRhZ0NsaWVudE11dGF0aW9uKHsgY2xpZW50OiBjb3JlQ2xpZW50IH0pO1xuICAgIGNvbnN0IFt1bnRhZ0NsaWVudF0gPSB1c2VVbnRhZ0NsaWVudE11dGF0aW9uKHsgY2xpZW50OiBjb3JlQ2xpZW50IH0pO1xuICAgIGNvbnN0IFtjcmVhdGVBY3Rpb25dID0gKChfYSA9IGNvbnRhY3REZWZpbml0aW9uLmNyZWF0ZU11dGF0aW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVhY3RIb29rKHtcbiAgICAgICAgZmV0Y2hQb2xpY3k6ICduby1jYWNoZScsXG4gICAgICAgIGNsaWVudDogKF9iID0gY29udGFjdERlZmluaXRpb24uY2xpZW50KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBjb3JlQ2xpZW50LFxuICAgIH0pKSB8fCBbXTtcbiAgICBjb25zdCBbcGF0Y2hBY3Rpb25dID0gKChfYyA9IGNvbnRhY3REZWZpbml0aW9uLnBhdGNoTXV0YXRpb24pID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5yZWFjdEhvb2soe1xuICAgICAgICBmZXRjaFBvbGljeTogJ25vLWNhY2hlJyxcbiAgICAgICAgY2xpZW50OiAoX2QgPSBjb250YWN0RGVmaW5pdGlvbi5jbGllbnQpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IGNvcmVDbGllbnQsXG4gICAgfSkpIHx8IFtdO1xuICAgIHJldHVybiB7IHRhZ0NsaWVudCwgdW50YWdDbGllbnQsIGNyZWF0ZUFjdGlvbiwgcGF0Y2hBY3Rpb24gfTtcbn07XG5jb25zdCBDb250YWN0SW5mbyA9ICh7IHNldENvbnRhY3RJbmZvSXNPcGVuLCBjb250YWN0SW5mb0lzT3Blbiwgb25Db250YWN0Q3JlYXRlZCwgY29udGFjdERhdGEsIGluaXRpYWxDb250YWN0RGF0YSB9KSA9PiB7XG4gICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICAgIGNvbnN0IHsgcnRsIH0gPSB1c2VUaGVtZUNvbnRleHQoKTtcbiAgICBjb25zdCBpc0VkaXRNb2RlID0gQm9vbGVhbihjb250YWN0RGF0YSk7XG4gICAgY29uc3QgW2N1cnJlbnRDb250YWN0SWQsIHNldEN1cnJlbnRDb250YWN0SWRdID0gdXNlU3RhdGUoKF9hID0gY29udGFjdERhdGEgPT09IG51bGwgfHwgY29udGFjdERhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhY3REYXRhLmlkKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsKTtcbiAgICBjb25zdCBbYWRkZWRUYWdzLCBzZXRBZGRlZFRhZ3NdID0gdXNlU3RhdGUoKGNvbnRhY3REYXRhID09PSBudWxsIHx8IGNvbnRhY3REYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250YWN0RGF0YS50YWdzKSB8fCBbXSk7XG4gICAgY29uc3QgeyBjbGllbnRUYWdzLCBjbGllbnRTdGFnZXMsIHJlZmV0Y2hUYWdzLCBsb2FkaW5nVGFncyB9ID0gdXNlVGFncygpO1xuICAgIGNvbnN0IHsgdGFnQ2xpZW50LCB1bnRhZ0NsaWVudCwgY3JlYXRlQWN0aW9uLCBwYXRjaEFjdGlvbiB9ID0gdXNlQ29udGFjdE11dGF0aW9ucygpO1xuICAgIGNvbnN0IFtmb3JtRGF0YSwgYmNGb3JtQWN0aW9uc10gPSB1c2VCQ0Zvcm0oRk9STV9JTklULCB0KTtcbiAgICBjb25zdCB7IHZhbGlkYXRlRmllbGQsIHJlbmRlckZpZWxkLCByZW5kZXJEcm9wbGlzdEZpZWxkLCByZXNldFZhbGlkYXRpb25TdGF0ZXMsIHNldEZpZWxkVmFsdWUgfSA9IGJjRm9ybUFjdGlvbnM7XG4gICAgLy8gUHJlLWZpbGwgZm9ybSBpbiBlZGl0IG1vZGUgb3Igd2l0aCBpbml0aWFsIGNvbnRhY3QgZGF0YVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaywgX2wsIF9tLCBfbywgX3AsIF9xLCBfciwgX3M7XG4gICAgICAgIGlmICghY29udGFjdEluZm9Jc09wZW4pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHJlc2V0VmFsaWRhdGlvblN0YXRlcygpO1xuICAgICAgICBpZiAoaXNFZGl0TW9kZSAmJiBjb250YWN0RGF0YSkge1xuICAgICAgICAgICAgY29uc3Qgc3RhZ2VOYW1lID0gKF9iID0gKF9hID0gY2xpZW50U3RhZ2VzID09PSBudWxsIHx8IGNsaWVudFN0YWdlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xpZW50U3RhZ2VzLmZpbmQoKHN0YWdlKSA9PiBzdGFnZS5pZCA9PT0gY29udGFjdERhdGEuc3RhZ2VJZCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50YWcpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcnO1xuICAgICAgICAgICAgY29uc3QgY29udGFjdEZvcm1NYXBwaW5nID0ge1xuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLm5hbWVdOiAoX2MgPSBjb250YWN0RGF0YS5uYW1lKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5zdXJuYW1lXTogKF9kID0gY29udGFjdERhdGEuc3VybmFtZSkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuZW1haWxdOiAoX2UgPSBjb250YWN0RGF0YS5lbWFpbCkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMucGhvbmVdOiAoX2YgPSBjb250YWN0RGF0YS5waG9uZSkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuYWRkcmVzc106IChfZyA9IGNvbnRhY3REYXRhLmFkZHJlc3MpICE9PSBudWxsICYmIF9nICE9PSB2b2lkIDAgPyBfZyA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmNvdW50cnldOiAoX2ggPSBjb250YWN0RGF0YS5jb3VudHJ5KSAhPT0gbnVsbCAmJiBfaCAhPT0gdm9pZCAwID8gX2ggOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5jaXR5XTogKF9qID0gY29udGFjdERhdGEuY2l0eSkgIT09IG51bGwgJiYgX2ogIT09IHZvaWQgMCA/IF9qIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuZGVmYXVsdEFnZW50SWRdOiAoX2sgPSBjb250YWN0RGF0YS5kZWZhdWx0QWdlbnRJZCkgIT09IG51bGwgJiYgX2sgIT09IHZvaWQgMCA/IF9rIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuc3RhZ2VdOiBzdGFnZU5hbWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoY29udGFjdEZvcm1NYXBwaW5nKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHNldEZpZWxkVmFsdWUoa2V5LCB2YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGluaXRpYWxDb250YWN0RGF0YSkge1xuICAgICAgICAgICAgLy8gUHJlLWZpbGwgd2l0aCBpbml0aWFsIGNvbnRhY3QgZGF0YSBmcm9tIGNvbnRhY3QgbWVzc2FnZVxuICAgICAgICAgICAgY29uc3QgY29udGFjdEZvcm1NYXBwaW5nID0ge1xuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLm5hbWVdOiAoX2wgPSBpbml0aWFsQ29udGFjdERhdGEuZmlyc3ROYW1lKSAhPT0gbnVsbCAmJiBfbCAhPT0gdm9pZCAwID8gX2wgOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5zdXJuYW1lXTogKF9tID0gaW5pdGlhbENvbnRhY3REYXRhLmxhc3ROYW1lKSAhPT0gbnVsbCAmJiBfbSAhPT0gdm9pZCAwID8gX20gOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5lbWFpbF06IChfbyA9IGluaXRpYWxDb250YWN0RGF0YS5lbWFpbCkgIT09IG51bGwgJiYgX28gIT09IHZvaWQgMCA/IF9vIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMucGhvbmVdOiAoX3AgPSBpbml0aWFsQ29udGFjdERhdGEucGhvbmUpICE9PSBudWxsICYmIF9wICE9PSB2b2lkIDAgPyBfcCA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmFkZHJlc3NdOiAoX3EgPSBpbml0aWFsQ29udGFjdERhdGEuYWRkcmVzcykgIT09IG51bGwgJiYgX3EgIT09IHZvaWQgMCA/IF9xIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuY291bnRyeV06IChfciA9IGluaXRpYWxDb250YWN0RGF0YS5jb3VudHJ5X2NvZGUpICE9PSBudWxsICYmIF9yICE9PSB2b2lkIDAgPyBfciA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmNpdHldOiAoX3MgPSBpbml0aWFsQ29udGFjdERhdGEuY2l0eSkgIT09IG51bGwgJiYgX3MgIT09IHZvaWQgMCA/IF9zIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuZGVmYXVsdEFnZW50SWRdOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5zdGFnZV06ICcnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbnRhY3RGb3JtTWFwcGluZykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiBzZXRGaWVsZFZhbHVlKGtleSwgdmFsdWUpKTtcbiAgICAgICAgICAgIHNldEN1cnJlbnRDb250YWN0SWQobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhGT1JNX0lOSVQpLmZvckVhY2goKGZpZWxkKSA9PiBzZXRGaWVsZFZhbHVlKGZpZWxkLCAnJykpO1xuICAgICAgICAgICAgc2V0Q3VycmVudENvbnRhY3RJZChudWxsKTtcbiAgICAgICAgfVxuICAgIH0sIFtjb250YWN0SW5mb0lzT3BlbiwgaXNFZGl0TW9kZSwgY29udGFjdERhdGEsIGluaXRpYWxDb250YWN0RGF0YSwgY2xpZW50U3RhZ2VzLCByZXNldFZhbGlkYXRpb25TdGF0ZXMsIHNldEZpZWxkVmFsdWVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFjdERhdGEpIHtcbiAgICAgICAgICAgIHNldEFkZGVkVGFncygoY29udGFjdERhdGEgPT09IG51bGwgfHwgY29udGFjdERhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhY3REYXRhLnRhZ3MpIHx8IFtdKTtcbiAgICAgICAgfVxuICAgIH0sIFtjb250YWN0RGF0YV0pO1xuICAgIGNvbnN0IGF2YWlsYWJsZVRhZ3MgPSB1c2VNZW1vKCgpID0+IChjbGllbnRUYWdzICE9PSBudWxsICYmIGNsaWVudFRhZ3MgIT09IHZvaWQgMCA/IGNsaWVudFRhZ3MgOiBbXSlcbiAgICAgICAgLm1hcCgodGFnKSA9PiAoeyB0ZXh0OiB0YWcudGFnLCB2YWx1ZTogdGFnLnRhZyB9KSlcbiAgICAgICAgLmZpbHRlcigodGFnKSA9PiAhYWRkZWRUYWdzLmluY2x1ZGVzKHRhZy52YWx1ZSkpLCBbY2xpZW50VGFncywgYWRkZWRUYWdzXSk7XG4gICAgY29uc3QgaGFuZGxlVGFnU2VsZWN0ID0gKHRhZ1ZhbHVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgaWYgKCF0YWdWYWx1ZSB8fCBhZGRlZFRhZ3MuaW5jbHVkZXModGFnVmFsdWUpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzZXRBZGRlZFRhZ3MoKHByZXYpID0+IFsuLi5wcmV2LCB0YWdWYWx1ZV0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZSA9ICh0YWdWYWx1ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghY3VycmVudENvbnRhY3RJZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHlpZWxkIHVudGFnQ2xpZW50KHtcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiBjdXJyZW50Q29udGFjdElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFnOiB0YWdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtzcGFjZUlkOiBhdXRoLmdldENvbnRleHQoKSB8fCAwLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNldEFkZGVkVGFncygocHJldikgPT4gcHJldi5maWx0ZXIoKHRhZykgPT4gdGFnICE9PSB0YWdWYWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RhZyByZW1vdmUgZXJyb3I6JywgZXJyKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uU3VibWl0ID0gdXNlQ2FsbGJhY2soKGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2QsIF9lLCBfZiwgX2csIF9oLCBfajtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXNldFZhbGlkYXRpb25TdGF0ZXMoKTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRGaWVsZHMgPSBpc0VkaXRNb2RlID8gW10gOiBbRm9ybUZpZWxkcy5waG9uZV07XG4gICAgICAgIGNvbnN0IGlzVmFsaWQgPSByZXF1aXJlZEZpZWxkcy5ldmVyeSgoZmllbGQpID0+IHZhbGlkYXRlRmllbGQoZmllbGQsIEJDVmFsaWRhdGlvblR5cGVzLk5PVF9FTVBUWSkpO1xuICAgICAgICBjb25zdCBlbWFpbFZhbGlkID0gKChfZCA9IGZvcm1EYXRhW1wiZW1haWxcIl0pID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC52YWx1ZSkgPyB2YWxpZGF0ZUZpZWxkKEZvcm1GaWVsZHMuZW1haWwsIEJDVmFsaWRhdGlvblR5cGVzLkVNQUlMKSA6IHRydWU7XG4gICAgICAgIGlmICghaXNWYWxpZCB8fCAhZW1haWxWYWxpZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGZvcm1EYXRhKS5tYXAoKFtrZXksIGZpZWxkXSkgPT4gW1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgZmllbGQudmFsdWUsXG4gICAgICAgIF0pKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBjbGllbnRJZCA9IChfZSA9IGNvbnRhY3REYXRhID09PSBudWxsIHx8IGNvbnRhY3REYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250YWN0RGF0YS5pZCkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogbnVsbDtcbiAgICAgICAgICAgIC8vIDHvuI/ig6MgVXBkYXRlIG9yIGNyZWF0ZSBjbGllbnRcbiAgICAgICAgICAgIGlmIChpc0VkaXRNb2RlICYmIGNsaWVudElkKSB7XG4gICAgICAgICAgICAgICAgeWllbGQgKHBhdGNoQWN0aW9uID09PSBudWxsIHx8IHBhdGNoQWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXRjaEFjdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogY2xpZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEFnZW50SWQ6IHZhbHVlc1snZGVmYXVsdEFnZW50SWQnXSA9PT0gJ3VubGlua0FnZW50JyA/IG51bGwgOiB2YWx1ZXNbJ2RlZmF1bHRBZ2VudElkJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdmFsdWVzWyduYW1lJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VybmFtZTogdmFsdWVzWydzdXJuYW1lJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw6IHZhbHVlc1snZW1haWwnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5OiB2YWx1ZXNbJ2NvdW50cnknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXR5OiB2YWx1ZXNbJ2NpdHknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzOiB2YWx1ZXNbJ2FkZHJlc3MnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFnZTogdmFsdWVzWydzdGFnZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtzcGFjZUlkOiBhdXRoLmdldENvbnRleHQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgKGNyZWF0ZUFjdGlvbiA9PT0gbnVsbCB8fCBjcmVhdGVBY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNyZWF0ZUFjdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB2YWx1ZXNbJ25hbWUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXJuYW1lOiB2YWx1ZXNbJ3N1cm5hbWUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWFpbDogdmFsdWVzWydlbWFpbCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsQ2xpZW50SWQ6IHZhbHVlc1sncGhvbmUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZTogdmFsdWVzWydwaG9uZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IHZhbHVlc1snYWRkcmVzcyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnk6IHZhbHVlc1snY291bnRyeSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpdHk6IHZhbHVlc1snY2l0eSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWdlOiB2YWx1ZXNbJ3N0YWdlJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEFnZW50SWQ6IHZhbHVlc1snZGVmYXVsdEFnZW50SWQnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3Jrc3BhY2VJZDogYXV0aC5nZXRDb250ZXh0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICBjbGllbnRJZCA9IChfaCA9IChfZyA9IChfZiA9IHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3VsdC5kYXRhKSA9PT0gbnVsbCB8fCBfZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2YuY3JlYXRlQ2xpZW50KSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cuaWQpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IG51bGw7XG4gICAgICAgICAgICAgICAgc2V0Q3VycmVudENvbnRhY3RJZChjbGllbnRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNsaWVudElkKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vIDLvuI/ig6MgU3luYyB0YWdzXG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ1RhZ3MgPSAoX2ogPSBjb250YWN0RGF0YSA9PT0gbnVsbCB8fCBjb250YWN0RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29udGFjdERhdGEudGFncykgIT09IG51bGwgJiYgX2ogIT09IHZvaWQgMCA/IF9qIDogW107XG4gICAgICAgICAgICBjb25zdCB0YWdzVG9BZGQgPSBpc0VkaXRNb2RlXG4gICAgICAgICAgICAgICAgPyBhZGRlZFRhZ3MuZmlsdGVyKCh0YWcpID0+ICFleGlzdGluZ1RhZ3MuaW5jbHVkZXModGFnKSlcbiAgICAgICAgICAgICAgICA6IGFkZGVkVGFncztcbiAgICAgICAgICAgIHlpZWxkIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAvLyBBZGQgbmV3IHRhZ3NcbiAgICAgICAgICAgICAgICAuLi50YWdzVG9BZGQubWFwKCh0YWcpID0+IHRhZ0NsaWVudCh7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya3NwYWNlSWQ6IGF1dGguZ2V0Q29udGV4dCgpIHx8IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgb25Db250YWN0Q3JlYXRlZCA9PT0gbnVsbCB8fCBvbkNvbnRhY3RDcmVhdGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbnRhY3RDcmVhdGVkKCk7XG4gICAgICAgICAgICBzZXRDb250YWN0SW5mb0lzT3BlbihmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0cmlnZ2VyRXJyb3JUb2FzdCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHQoJ2Vycm9yJyksXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KSwgW3ZhbGlkYXRlRmllbGQsIHJlc2V0VmFsaWRhdGlvblN0YXRlcywgZm9ybURhdGEsIGFkZGVkVGFncywgY29udGFjdERhdGEgPT09IG51bGwgfHwgY29udGFjdERhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhY3REYXRhLmlkLCBjb250YWN0RGF0YSA9PT0gbnVsbCB8fCBjb250YWN0RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29udGFjdERhdGEudGFncywgdGFnQ2xpZW50LCBzZXRDb250YWN0SW5mb0lzT3BlbiwgaXNFZGl0TW9kZSwgY3JlYXRlQWN0aW9uLCBwYXRjaEFjdGlvbiwgdCwgb25Db250YWN0Q3JlYXRlZF0pO1xuICAgIGlmIChsb2FkaW5nVGFncylcbiAgICAgICAgcmV0dXJuIF9qc3goQ2xpZW50SW5mb0xvYWRlciwge30pO1xuICAgIHJldHVybiAoX2pzeHMoQ29udGFpbmVyLCB7IGNoaWxkcmVuOiBbX2pzeChNb2RhbFRpdGxlLCB7IGNoaWxkcmVuOiBpc0VkaXRNb2RlID8gdCgnY29udGFjdC5lZGl0Q29udGFjdCcpIDogdCgnY29udGFjdC5hZGROZXdDb250YWN0JykgfSksIF9qc3goQ29udGFjdEZvcm1GaWVsZHMsIHsgcmVuZGVyRmllbGQ6IHJlbmRlckZpZWxkLCBjbGllbnRTdGFnZXM6IGNsaWVudFN0YWdlcywgcmVuZGVyRHJvcGxpc3RGaWVsZDogcmVuZGVyRHJvcGxpc3RGaWVsZCwgaXNFZGl0TW9kZTogaXNFZGl0TW9kZSwgcGhvbmVWYWx1ZTogKF9jID0gKF9iID0gZm9ybURhdGFbRm9ybUZpZWxkcy5waG9uZV0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi52YWx1ZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogJycsIG9uUGhvbmVDaGFuZ2U6ICh2YWx1ZSkgPT4gc2V0RmllbGRWYWx1ZShGb3JtRmllbGRzLnBob25lLCB2YWx1ZSksIHBob25lRmllbGRFcnJvcjogZm9ybURhdGFbRm9ybUZpZWxkcy5waG9uZV0gJiYgIWZvcm1EYXRhW0Zvcm1GaWVsZHMucGhvbmVdLmlzVmFsaWRcbiAgICAgICAgICAgICAgICAgICAgPyB0KGZvcm1EYXRhW0Zvcm1GaWVsZHMucGhvbmVdLm1lc3NhZ2UpXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkIH0pLCBfanN4KFwiZGl2XCIsIHsgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IFRleHRTaXplUmVtLlMsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IE5ld1RleHRXZWlnaHQuTk9STUFMLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogTmV3Q29sb3JzLkZPUkVHUk9VTkQsXG4gICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6ICdub3JtYWwnLFxuICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiB0KCdjb250YWN0LnRhZ3MnKSB9KSwgX2pzeChUYWdzU2VsZWN0b3IsIHsgaGFuZGxlVGFnU2VsZWN0OiBoYW5kbGVUYWdTZWxlY3QsIGF2YWlsYWJsZVRhZ3M6IGF2YWlsYWJsZVRhZ3MsIHJ0bDogcnRsLCBjb250YWN0c1RhZ3NMb2FkaW5nOiBsb2FkaW5nVGFncywgYWRkZWRUYWdzOiBhZGRlZFRhZ3MsIGhhbmRsZVRhZ1JlbW92ZTogaGFuZGxlVGFnUmVtb3ZlLCB0eXBlOiBcImNsaWVudFwiLCByZWZldGNoVGFnczogcmVmZXRjaFRhZ3MgfSksIF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IHsgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJywgZ2FwOiAnOHB4JywgbWFyZ2luVG9wOiAnMTZweCcgfSwgY2hpbGRyZW46IFtfanN4KEJ1dHRvbiwgeyB2YXJpYW50OiBcInNlY29uZGFyeVwiLCBvbkNsaWNrOiAoKSA9PiBzZXRDb250YWN0SW5mb0lzT3BlbihmYWxzZSksIGNoaWxkcmVuOiB0KCdjb250YWN0LmNhbmNlbCcpIH0pLCBfanN4KEJ1dHRvbiwgeyBvbkNsaWNrOiBvblN1Ym1pdCwgY2hpbGRyZW46IGlzRWRpdE1vZGUgPyB0KCdjb250YWN0LnNhdmUnKSA6IHQoJ2NvbnRhY3QuY3JlYXRlJykgfSldIH0pXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgQ29udGFjdEluZm87XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Db250YWN0SW5mby5qcy5tYXAiXX0= */",
|
|
120178
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRhY3RJbmZvLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQjZCIiwiZmlsZSI6IkNvbnRhY3RJbmZvLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXdhaXRlciB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgeyBCdXR0b24sIEJDVmFsaWRhdGlvblR5cGVzLCB1c2VCQ0Zvcm0sIHRyaWdnZXJFcnJvclRvYXN0LCBOZXdUZXh0V2VpZ2h0LCBUZXh0U2l6ZVJlbSwgTmV3Q29sb3JzLCB9IGZyb20gJ0BiY3J1bWJzLm5ldC9iYy11aSc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNvbnRhY3REZWZpbml0aW9uIGZyb20gJy4uL2NvbmZpZy9jb250YWN0RGVmaW5pdGlvbic7XG5pbXBvcnQgeyBNb2RhbFRpdGxlIH0gZnJvbSAnLi4vLi4vZ2VuZXJpYy9jb21wb25lbnRzL0NvbnRhaW5lcnMnO1xuaW1wb3J0IHsgdXNlVGFnQ2xpZW50TXV0YXRpb24sIHVzZVVudGFnQ2xpZW50TXV0YXRpb24gfSBmcm9tICcuLi8uLi8uLi9ncmFwaHFsLmF1dG9nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgRk9STV9JTklULCBGb3JtRmllbGRzIH0gZnJvbSAnLi4vY29uZmlnL2NvbnRhY3RGb3JtJztcbmltcG9ydCBDb250YWN0Rm9ybUZpZWxkcyBmcm9tICcuL0NvbnRhY3RGb3JtRmllbGRzJztcbmltcG9ydCBUYWdzU2VsZWN0b3IgZnJvbSAnLi4vLi4vaW5ib3gvY29tcG9uZW50cy9OZXdEZXRhaWxzL1RhZ3NTZWxlY3Rvcic7XG5pbXBvcnQgdXNlVGFncyBmcm9tICcuLi8uLi9pbmJveC9ob29rcy91c2VUYWdzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBDbGllbnRJbmZvTG9hZGVyIGZyb20gJy4uLy4uL2luYm94L2NvbXBvbmVudHMvTmV3RGV0YWlscy9Db21wb25lbnRMb2FkZXJzL0NsaWVudEluZm9Mb2FkZXInO1xuaW1wb3J0IHsgdXNlVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC90aGVtZUNvbnRleHQnO1xuaW1wb3J0IHsgY29yZUNsaWVudCB9IGZyb20gJ0BiY3J1bWJzLm5ldC9iYy1hcGknO1xuaW1wb3J0IHsgYXV0aCB9IGZyb20gJ0BiY3J1bWJzLm5ldC9iYy1zaGFyZWQnO1xuY29uc3QgQ29udGFpbmVyID0gc3R5bGVkLmRpdiBgXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGdhcDogMTZweDtcclxuICB3aWR0aDogMTAwJTtcclxuYDtcbmNvbnN0IHVzZUNvbnRhY3RNdXRhdGlvbnMgPSAoKSA9PiB7XG4gICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgIGNvbnN0IFt0YWdDbGllbnRdID0gdXNlVGFnQ2xpZW50TXV0YXRpb24oeyBjbGllbnQ6IGNvcmVDbGllbnQgfSk7XG4gICAgY29uc3QgW3VudGFnQ2xpZW50XSA9IHVzZVVudGFnQ2xpZW50TXV0YXRpb24oeyBjbGllbnQ6IGNvcmVDbGllbnQgfSk7XG4gICAgY29uc3QgW2NyZWF0ZUFjdGlvbl0gPSAoKF9hID0gY29udGFjdERlZmluaXRpb24uY3JlYXRlTXV0YXRpb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZWFjdEhvb2soe1xuICAgICAgICBmZXRjaFBvbGljeTogJ25vLWNhY2hlJyxcbiAgICAgICAgY2xpZW50OiAoX2IgPSBjb250YWN0RGVmaW5pdGlvbi5jbGllbnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGNvcmVDbGllbnQsXG4gICAgfSkpIHx8IFtdO1xuICAgIGNvbnN0IFtwYXRjaEFjdGlvbl0gPSAoKF9jID0gY29udGFjdERlZmluaXRpb24ucGF0Y2hNdXRhdGlvbikgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnJlYWN0SG9vayh7XG4gICAgICAgIGZldGNoUG9saWN5OiAnbm8tY2FjaGUnLFxuICAgICAgICBjbGllbnQ6IChfZCA9IGNvbnRhY3REZWZpbml0aW9uLmNsaWVudCkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogY29yZUNsaWVudCxcbiAgICB9KSkgfHwgW107XG4gICAgcmV0dXJuIHsgdGFnQ2xpZW50LCB1bnRhZ0NsaWVudCwgY3JlYXRlQWN0aW9uLCBwYXRjaEFjdGlvbiB9O1xufTtcbmNvbnN0IENvbnRhY3RJbmZvID0gKHsgc2V0Q29udGFjdEluZm9Jc09wZW4sIGNvbnRhY3RJbmZvSXNPcGVuLCBvbkNvbnRhY3RDcmVhdGVkLCBjb250YWN0RGF0YSwgaW5pdGlhbENvbnRhY3REYXRhIH0pID0+IHtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gICAgY29uc3QgeyBydGwgfSA9IHVzZVRoZW1lQ29udGV4dCgpO1xuICAgIGNvbnN0IGlzRWRpdE1vZGUgPSBCb29sZWFuKGNvbnRhY3REYXRhKTtcbiAgICBjb25zdCBbY3VycmVudENvbnRhY3RJZCwgc2V0Q3VycmVudENvbnRhY3RJZF0gPSB1c2VTdGF0ZSgoX2EgPSBjb250YWN0RGF0YSA9PT0gbnVsbCB8fCBjb250YWN0RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29udGFjdERhdGEuaWQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG51bGwpO1xuICAgIGNvbnN0IFthZGRlZFRhZ3MsIHNldEFkZGVkVGFnc10gPSB1c2VTdGF0ZSgoY29udGFjdERhdGEgPT09IG51bGwgfHwgY29udGFjdERhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhY3REYXRhLnRhZ3MpIHx8IFtdKTtcbiAgICBjb25zdCB7IGNsaWVudFRhZ3MsIGNsaWVudFN0YWdlcywgcmVmZXRjaFRhZ3MsIGxvYWRpbmdUYWdzIH0gPSB1c2VUYWdzKCk7XG4gICAgY29uc3QgeyB0YWdDbGllbnQsIHVudGFnQ2xpZW50LCBjcmVhdGVBY3Rpb24sIHBhdGNoQWN0aW9uIH0gPSB1c2VDb250YWN0TXV0YXRpb25zKCk7XG4gICAgY29uc3QgW2Zvcm1EYXRhLCBiY0Zvcm1BY3Rpb25zXSA9IHVzZUJDRm9ybShGT1JNX0lOSVQsIHQpO1xuICAgIGNvbnN0IHsgdmFsaWRhdGVGaWVsZCwgcmVuZGVyRmllbGQsIHJlbmRlckRyb3BsaXN0RmllbGQsIHJlc2V0VmFsaWRhdGlvblN0YXRlcywgc2V0RmllbGRWYWx1ZSB9ID0gYmNGb3JtQWN0aW9ucztcbiAgICBjb25zdCBzdGFnZVByZWZpbGxlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgLy8gUHJlLWZpbGwgZm9ybSBpbiBlZGl0IG1vZGUgb3Igd2l0aCBpbml0aWFsIGNvbnRhY3QgZGF0YS5cbiAgICAvLyBjbGllbnRTdGFnZXMgaXMgaW50ZW50aW9uYWxseSBub3QgYSBkZXBlbmRlbmN5OiB0YWcgcmVmZXRjaGVzIChlLmcuIGNyZWF0aW5nIGEgbmV3IHRhZylcbiAgICAvLyB3b3VsZCBvdGhlcndpc2UgcmUtcnVuIHRoaXMgZWZmZWN0IGFuZCB3aXBlIHdoYXQgdGhlIHVzZXIgYWxyZWFkeSB0eXBlZC5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaiwgX2ssIF9sLCBfbSwgX28sIF9wLCBfcTtcbiAgICAgICAgaWYgKCFjb250YWN0SW5mb0lzT3BlbilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgcmVzZXRWYWxpZGF0aW9uU3RhdGVzKCk7XG4gICAgICAgIHN0YWdlUHJlZmlsbGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGlzRWRpdE1vZGUgJiYgY29udGFjdERhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhY3RGb3JtTWFwcGluZyA9IHtcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5uYW1lXTogKF9hID0gY29udGFjdERhdGEubmFtZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuc3VybmFtZV06IChfYiA9IGNvbnRhY3REYXRhLnN1cm5hbWUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmVtYWlsXTogKF9jID0gY29udGFjdERhdGEuZW1haWwpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLnBob25lXTogKF9kID0gY29udGFjdERhdGEucGhvbmUpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmFkZHJlc3NdOiAoX2UgPSBjb250YWN0RGF0YS5hZGRyZXNzKSAhPT0gbnVsbCAmJiBfZSAhPT0gdm9pZCAwID8gX2UgOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5jb3VudHJ5XTogKF9mID0gY29udGFjdERhdGEuY291bnRyeSkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuY2l0eV06IChfZyA9IGNvbnRhY3REYXRhLmNpdHkpICE9PSBudWxsICYmIF9nICE9PSB2b2lkIDAgPyBfZyA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmRlZmF1bHRBZ2VudElkXTogKF9oID0gY29udGFjdERhdGEuZGVmYXVsdEFnZW50SWQpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6ICcnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbnRhY3RGb3JtTWFwcGluZykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiBzZXRGaWVsZFZhbHVlKGtleSwgdmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpbml0aWFsQ29udGFjdERhdGEpIHtcbiAgICAgICAgICAgIC8vIFByZS1maWxsIHdpdGggaW5pdGlhbCBjb250YWN0IGRhdGEgZnJvbSBjb250YWN0IG1lc3NhZ2VcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhY3RGb3JtTWFwcGluZyA9IHtcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5uYW1lXTogKF9qID0gaW5pdGlhbENvbnRhY3REYXRhLmZpcnN0TmFtZSkgIT09IG51bGwgJiYgX2ogIT09IHZvaWQgMCA/IF9qIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuc3VybmFtZV06IChfayA9IGluaXRpYWxDb250YWN0RGF0YS5sYXN0TmFtZSkgIT09IG51bGwgJiYgX2sgIT09IHZvaWQgMCA/IF9rIDogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuZW1haWxdOiAoX2wgPSBpbml0aWFsQ29udGFjdERhdGEuZW1haWwpICE9PSBudWxsICYmIF9sICE9PSB2b2lkIDAgPyBfbCA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLnBob25lXTogKF9tID0gaW5pdGlhbENvbnRhY3REYXRhLnBob25lKSAhPT0gbnVsbCAmJiBfbSAhPT0gdm9pZCAwID8gX20gOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5hZGRyZXNzXTogKF9vID0gaW5pdGlhbENvbnRhY3REYXRhLmFkZHJlc3MpICE9PSBudWxsICYmIF9vICE9PSB2b2lkIDAgPyBfbyA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmNvdW50cnldOiAoX3AgPSBpbml0aWFsQ29udGFjdERhdGEuY291bnRyeV9jb2RlKSAhPT0gbnVsbCAmJiBfcCAhPT0gdm9pZCAwID8gX3AgOiAnJyxcbiAgICAgICAgICAgICAgICBbRm9ybUZpZWxkcy5jaXR5XTogKF9xID0gaW5pdGlhbENvbnRhY3REYXRhLmNpdHkpICE9PSBudWxsICYmIF9xICE9PSB2b2lkIDAgPyBfcSA6ICcnLFxuICAgICAgICAgICAgICAgIFtGb3JtRmllbGRzLmRlZmF1bHRBZ2VudElkXTogJycsXG4gICAgICAgICAgICAgICAgW0Zvcm1GaWVsZHMuc3RhZ2VdOiAnJyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhjb250YWN0Rm9ybU1hcHBpbmcpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4gc2V0RmllbGRWYWx1ZShrZXksIHZhbHVlKSk7XG4gICAgICAgICAgICBzZXRDdXJyZW50Q29udGFjdElkKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoRk9STV9JTklUKS5mb3JFYWNoKChmaWVsZCkgPT4gc2V0RmllbGRWYWx1ZShmaWVsZCwgJycpKTtcbiAgICAgICAgICAgIHNldEN1cnJlbnRDb250YWN0SWQobnVsbCk7XG4gICAgICAgIH1cbiAgICB9LCBbY29udGFjdEluZm9Jc09wZW4sIGlzRWRpdE1vZGUsIGNvbnRhY3REYXRhLCBpbml0aWFsQ29udGFjdERhdGEsIHJlc2V0VmFsaWRhdGlvblN0YXRlcywgc2V0RmllbGRWYWx1ZV0pO1xuICAgIC8vIFN0YWdlcyBsb2FkIGFzeW5jaHJvbm91c2x5OyBwcmUtZmlsbCB0aGUgZWRpdGVkIGNvbnRhY3QncyBzdGFnZSBvbmNlIHBlciBvcGVuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCFjb250YWN0SW5mb0lzT3BlbiB8fCAhaXNFZGl0TW9kZSB8fCAhY29udGFjdERhdGEgfHwgc3RhZ2VQcmVmaWxsZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKCEoY2xpZW50U3RhZ2VzID09PSBudWxsIHx8IGNsaWVudFN0YWdlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xpZW50U3RhZ2VzLmxlbmd0aCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHN0YWdlTmFtZSA9IChfYiA9IChfYSA9IGNsaWVudFN0YWdlcy5maW5kKChzdGFnZSkgPT4gc3RhZ2UuaWQgPT09IGNvbnRhY3REYXRhLnN0YWdlSWQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGFnKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAnJztcbiAgICAgICAgc2V0RmllbGRWYWx1ZShGb3JtRmllbGRzLnN0YWdlLCBzdGFnZU5hbWUpO1xuICAgICAgICBzdGFnZVByZWZpbGxlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9LCBbY29udGFjdEluZm9Jc09wZW4sIGlzRWRpdE1vZGUsIGNvbnRhY3REYXRhLCBjbGllbnRTdGFnZXMsIHNldEZpZWxkVmFsdWVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFjdERhdGEpIHtcbiAgICAgICAgICAgIHNldEFkZGVkVGFncygoY29udGFjdERhdGEgPT09IG51bGwgfHwgY29udGFjdERhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhY3REYXRhLnRhZ3MpIHx8IFtdKTtcbiAgICAgICAgfVxuICAgIH0sIFtjb250YWN0RGF0YV0pO1xuICAgIGNvbnN0IGF2YWlsYWJsZVRhZ3MgPSB1c2VNZW1vKCgpID0+IChjbGllbnRUYWdzICE9PSBudWxsICYmIGNsaWVudFRhZ3MgIT09IHZvaWQgMCA/IGNsaWVudFRhZ3MgOiBbXSlcbiAgICAgICAgLm1hcCgodGFnKSA9PiAoeyB0ZXh0OiB0YWcudGFnLCB2YWx1ZTogdGFnLnRhZyB9KSlcbiAgICAgICAgLmZpbHRlcigodGFnKSA9PiAhYWRkZWRUYWdzLmluY2x1ZGVzKHRhZy52YWx1ZSkpLCBbY2xpZW50VGFncywgYWRkZWRUYWdzXSk7XG4gICAgY29uc3QgaGFuZGxlVGFnU2VsZWN0ID0gKHRhZ1ZhbHVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgaWYgKCF0YWdWYWx1ZSB8fCBhZGRlZFRhZ3MuaW5jbHVkZXModGFnVmFsdWUpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzZXRBZGRlZFRhZ3MoKHByZXYpID0+IFsuLi5wcmV2LCB0YWdWYWx1ZV0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZSA9ICh0YWdWYWx1ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghY3VycmVudENvbnRhY3RJZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHlpZWxkIHVudGFnQ2xpZW50KHtcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiBjdXJyZW50Q29udGFjdElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFnOiB0YWdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtzcGFjZUlkOiBhdXRoLmdldENvbnRleHQoKSB8fCAwLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNldEFkZGVkVGFncygocHJldikgPT4gcHJldi5maWx0ZXIoKHRhZykgPT4gdGFnICE9PSB0YWdWYWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RhZyByZW1vdmUgZXJyb3I6JywgZXJyKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uU3VibWl0ID0gdXNlQ2FsbGJhY2soKGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2QsIF9lLCBfZiwgX2csIF9oLCBfajtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXNldFZhbGlkYXRpb25TdGF0ZXMoKTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRGaWVsZHMgPSBpc0VkaXRNb2RlID8gW10gOiBbRm9ybUZpZWxkcy5waG9uZV07XG4gICAgICAgIGNvbnN0IGlzVmFsaWQgPSByZXF1aXJlZEZpZWxkcy5ldmVyeSgoZmllbGQpID0+IHZhbGlkYXRlRmllbGQoZmllbGQsIEJDVmFsaWRhdGlvblR5cGVzLk5PVF9FTVBUWSkpO1xuICAgICAgICBjb25zdCBlbWFpbFZhbGlkID0gKChfZCA9IGZvcm1EYXRhW1wiZW1haWxcIl0pID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC52YWx1ZSkgPyB2YWxpZGF0ZUZpZWxkKEZvcm1GaWVsZHMuZW1haWwsIEJDVmFsaWRhdGlvblR5cGVzLkVNQUlMKSA6IHRydWU7XG4gICAgICAgIGlmICghaXNWYWxpZCB8fCAhZW1haWxWYWxpZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGZvcm1EYXRhKS5tYXAoKFtrZXksIGZpZWxkXSkgPT4gW1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgZmllbGQudmFsdWUsXG4gICAgICAgIF0pKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBjbGllbnRJZCA9IChfZSA9IGNvbnRhY3REYXRhID09PSBudWxsIHx8IGNvbnRhY3REYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250YWN0RGF0YS5pZCkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogbnVsbDtcbiAgICAgICAgICAgIC8vIDHvuI/ig6MgVXBkYXRlIG9yIGNyZWF0ZSBjbGllbnRcbiAgICAgICAgICAgIGlmIChpc0VkaXRNb2RlICYmIGNsaWVudElkKSB7XG4gICAgICAgICAgICAgICAgeWllbGQgKHBhdGNoQWN0aW9uID09PSBudWxsIHx8IHBhdGNoQWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXRjaEFjdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogY2xpZW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEFnZW50SWQ6IHZhbHVlc1snZGVmYXVsdEFnZW50SWQnXSA9PT0gJ3VubGlua0FnZW50JyA/IG51bGwgOiB2YWx1ZXNbJ2RlZmF1bHRBZ2VudElkJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdmFsdWVzWyduYW1lJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VybmFtZTogdmFsdWVzWydzdXJuYW1lJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw6IHZhbHVlc1snZW1haWwnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5OiB2YWx1ZXNbJ2NvdW50cnknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXR5OiB2YWx1ZXNbJ2NpdHknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzOiB2YWx1ZXNbJ2FkZHJlc3MnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFnZTogdmFsdWVzWydzdGFnZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtzcGFjZUlkOiBhdXRoLmdldENvbnRleHQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgKGNyZWF0ZUFjdGlvbiA9PT0gbnVsbCB8fCBjcmVhdGVBY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNyZWF0ZUFjdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB2YWx1ZXNbJ25hbWUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXJuYW1lOiB2YWx1ZXNbJ3N1cm5hbWUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWFpbDogdmFsdWVzWydlbWFpbCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsQ2xpZW50SWQ6IHZhbHVlc1sncGhvbmUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZTogdmFsdWVzWydwaG9uZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IHZhbHVlc1snYWRkcmVzcyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnk6IHZhbHVlc1snY291bnRyeSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpdHk6IHZhbHVlc1snY2l0eSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWdlOiB2YWx1ZXNbJ3N0YWdlJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEFnZW50SWQ6IHZhbHVlc1snZGVmYXVsdEFnZW50SWQnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3Jrc3BhY2VJZDogYXV0aC5nZXRDb250ZXh0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICBjbGllbnRJZCA9IChfaCA9IChfZyA9IChfZiA9IHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3VsdC5kYXRhKSA9PT0gbnVsbCB8fCBfZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2YuY3JlYXRlQ2xpZW50KSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cuaWQpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IG51bGw7XG4gICAgICAgICAgICAgICAgc2V0Q3VycmVudENvbnRhY3RJZChjbGllbnRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNsaWVudElkKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vIDLvuI/ig6MgU3luYyB0YWdzXG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ1RhZ3MgPSAoX2ogPSBjb250YWN0RGF0YSA9PT0gbnVsbCB8fCBjb250YWN0RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29udGFjdERhdGEudGFncykgIT09IG51bGwgJiYgX2ogIT09IHZvaWQgMCA/IF9qIDogW107XG4gICAgICAgICAgICBjb25zdCB0YWdzVG9BZGQgPSBpc0VkaXRNb2RlXG4gICAgICAgICAgICAgICAgPyBhZGRlZFRhZ3MuZmlsdGVyKCh0YWcpID0+ICFleGlzdGluZ1RhZ3MuaW5jbHVkZXModGFnKSlcbiAgICAgICAgICAgICAgICA6IGFkZGVkVGFncztcbiAgICAgICAgICAgIHlpZWxkIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAvLyBBZGQgbmV3IHRhZ3NcbiAgICAgICAgICAgICAgICAuLi50YWdzVG9BZGQubWFwKCh0YWcpID0+IHRhZ0NsaWVudCh7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya3NwYWNlSWQ6IGF1dGguZ2V0Q29udGV4dCgpIHx8IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgb25Db250YWN0Q3JlYXRlZCA9PT0gbnVsbCB8fCBvbkNvbnRhY3RDcmVhdGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbnRhY3RDcmVhdGVkKCk7XG4gICAgICAgICAgICBzZXRDb250YWN0SW5mb0lzT3BlbihmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0cmlnZ2VyRXJyb3JUb2FzdCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHQoJ2Vycm9yJyksXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KSwgW3ZhbGlkYXRlRmllbGQsIHJlc2V0VmFsaWRhdGlvblN0YXRlcywgZm9ybURhdGEsIGFkZGVkVGFncywgY29udGFjdERhdGEgPT09IG51bGwgfHwgY29udGFjdERhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhY3REYXRhLmlkLCBjb250YWN0RGF0YSA9PT0gbnVsbCB8fCBjb250YWN0RGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29udGFjdERhdGEudGFncywgdGFnQ2xpZW50LCBzZXRDb250YWN0SW5mb0lzT3BlbiwgaXNFZGl0TW9kZSwgY3JlYXRlQWN0aW9uLCBwYXRjaEFjdGlvbiwgdCwgb25Db250YWN0Q3JlYXRlZF0pO1xuICAgIC8vIE9ubHkgYmxvY2sgb24gdGhlIGluaXRpYWwgbG9hZDsgcmVmZXRjaGVzIG11c3Qgbm90IHVubW91bnQgdGhlIGZvcm1cbiAgICBpZiAobG9hZGluZ1RhZ3MgJiYgIWNsaWVudFRhZ3MubGVuZ3RoICYmICFjbGllbnRTdGFnZXMubGVuZ3RoKVxuICAgICAgICByZXR1cm4gX2pzeChDbGllbnRJbmZvTG9hZGVyLCB7fSk7XG4gICAgcmV0dXJuIChfanN4cyhDb250YWluZXIsIHsgY2hpbGRyZW46IFtfanN4KE1vZGFsVGl0bGUsIHsgY2hpbGRyZW46IGlzRWRpdE1vZGUgPyB0KCdjb250YWN0LmVkaXRDb250YWN0JykgOiB0KCdjb250YWN0LmFkZE5ld0NvbnRhY3QnKSB9KSwgX2pzeChDb250YWN0Rm9ybUZpZWxkcywgeyByZW5kZXJGaWVsZDogcmVuZGVyRmllbGQsIGNsaWVudFN0YWdlczogY2xpZW50U3RhZ2VzLCByZW5kZXJEcm9wbGlzdEZpZWxkOiByZW5kZXJEcm9wbGlzdEZpZWxkLCBpc0VkaXRNb2RlOiBpc0VkaXRNb2RlLCBwaG9uZVZhbHVlOiAoX2MgPSAoX2IgPSBmb3JtRGF0YVtGb3JtRmllbGRzLnBob25lXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnZhbHVlKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAnJywgb25QaG9uZUNoYW5nZTogKHZhbHVlKSA9PiBzZXRGaWVsZFZhbHVlKEZvcm1GaWVsZHMucGhvbmUsIHZhbHVlKSwgcGhvbmVGaWVsZEVycm9yOiBmb3JtRGF0YVtGb3JtRmllbGRzLnBob25lXSAmJiAhZm9ybURhdGFbRm9ybUZpZWxkcy5waG9uZV0uaXNWYWxpZFxuICAgICAgICAgICAgICAgICAgICA/IHQoZm9ybURhdGFbRm9ybUZpZWxkcy5waG9uZV0ubWVzc2FnZSlcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQgfSksIF9qc3goXCJkaXZcIiwgeyBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogVGV4dFNpemVSZW0uUyxcbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogTmV3VGV4dFdlaWdodC5OT1JNQUwsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBOZXdDb2xvcnMuRk9SRUdST1VORCxcbiAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogJ25vcm1hbCcsXG4gICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IHQoJ2NvbnRhY3QudGFncycpIH0pLCBfanN4KFRhZ3NTZWxlY3RvciwgeyBoYW5kbGVUYWdTZWxlY3Q6IGhhbmRsZVRhZ1NlbGVjdCwgYXZhaWxhYmxlVGFnczogYXZhaWxhYmxlVGFncywgcnRsOiBydGwsIGNvbnRhY3RzVGFnc0xvYWRpbmc6IGxvYWRpbmdUYWdzLCBhZGRlZFRhZ3M6IGFkZGVkVGFncywgaGFuZGxlVGFnUmVtb3ZlOiBoYW5kbGVUYWdSZW1vdmUsIHR5cGU6IFwiY2xpZW50XCIsIHJlZmV0Y2hUYWdzOiByZWZldGNoVGFncyB9KSwgX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogeyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnZmxleC1lbmQnLCBnYXA6ICc4cHgnLCBtYXJnaW5Ub3A6ICcxNnB4JyB9LCBjaGlsZHJlbjogW19qc3goQnV0dG9uLCB7IHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsIG9uQ2xpY2s6ICgpID0+IHNldENvbnRhY3RJbmZvSXNPcGVuKGZhbHNlKSwgY2hpbGRyZW46IHQoJ2NvbnRhY3QuY2FuY2VsJykgfSksIF9qc3goQnV0dG9uLCB7IG9uQ2xpY2s6IG9uU3VibWl0LCBjaGlsZHJlbjogaXNFZGl0TW9kZSA/IHQoJ2NvbnRhY3Quc2F2ZScpIDogdCgnY29udGFjdC5jcmVhdGUnKSB9KV0gfSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBDb250YWN0SW5mbztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvbnRhY3RJbmZvLmpzLm1hcCJdfQ== */",
|
|
120179
120179
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$2
|
|
120180
120180
|
});
|
|
120181
120181
|
const useContactMutations = () => {
|
|
@@ -120238,35 +120238,37 @@ const ContactInfo = ({
|
|
|
120238
120238
|
resetValidationStates,
|
|
120239
120239
|
setFieldValue
|
|
120240
120240
|
} = bcFormActions;
|
|
120241
|
-
|
|
120241
|
+
const stagePrefilledRef = useRef(false);
|
|
120242
|
+
// Pre-fill form in edit mode or with initial contact data.
|
|
120243
|
+
// clientStages is intentionally not a dependency: tag refetches (e.g. creating a new tag)
|
|
120244
|
+
// would otherwise re-run this effect and wipe what the user already typed.
|
|
120242
120245
|
useEffect(() => {
|
|
120243
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q
|
|
120246
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
120244
120247
|
if (!contactInfoIsOpen) return;
|
|
120245
120248
|
resetValidationStates();
|
|
120249
|
+
stagePrefilledRef.current = false;
|
|
120246
120250
|
if (isEditMode && contactData) {
|
|
120247
|
-
const stageName = (_b = (_a = clientStages === null || clientStages === void 0 ? void 0 : clientStages.find(stage => stage.id === contactData.stageId)) === null || _a === void 0 ? void 0 : _a.tag) !== null && _b !== void 0 ? _b : '';
|
|
120248
120251
|
const contactFormMapping = {
|
|
120249
|
-
[FormFields.name]: (
|
|
120250
|
-
[FormFields.surname]: (
|
|
120251
|
-
[FormFields.email]: (
|
|
120252
|
-
[FormFields.phone]: (
|
|
120253
|
-
[FormFields.address]: (
|
|
120254
|
-
[FormFields.country]: (
|
|
120255
|
-
[FormFields.city]: (
|
|
120256
|
-
[FormFields.defaultAgentId]: (
|
|
120257
|
-
[FormFields.stage]: stageName
|
|
120252
|
+
[FormFields.name]: (_a = contactData.name) !== null && _a !== void 0 ? _a : '',
|
|
120253
|
+
[FormFields.surname]: (_b = contactData.surname) !== null && _b !== void 0 ? _b : '',
|
|
120254
|
+
[FormFields.email]: (_c = contactData.email) !== null && _c !== void 0 ? _c : '',
|
|
120255
|
+
[FormFields.phone]: (_d = contactData.phone) !== null && _d !== void 0 ? _d : '',
|
|
120256
|
+
[FormFields.address]: (_e = contactData.address) !== null && _e !== void 0 ? _e : '',
|
|
120257
|
+
[FormFields.country]: (_f = contactData.country) !== null && _f !== void 0 ? _f : '',
|
|
120258
|
+
[FormFields.city]: (_g = contactData.city) !== null && _g !== void 0 ? _g : '',
|
|
120259
|
+
[FormFields.defaultAgentId]: (_h = contactData.defaultAgentId) !== null && _h !== void 0 ? _h : ''
|
|
120258
120260
|
};
|
|
120259
120261
|
Object.entries(contactFormMapping).forEach(([key, value]) => setFieldValue(key, value));
|
|
120260
120262
|
} else if (initialContactData) {
|
|
120261
120263
|
// Pre-fill with initial contact data from contact message
|
|
120262
120264
|
const contactFormMapping = {
|
|
120263
|
-
[FormFields.name]: (
|
|
120264
|
-
[FormFields.surname]: (
|
|
120265
|
-
[FormFields.email]: (
|
|
120266
|
-
[FormFields.phone]: (
|
|
120267
|
-
[FormFields.address]: (
|
|
120268
|
-
[FormFields.country]: (
|
|
120269
|
-
[FormFields.city]: (
|
|
120265
|
+
[FormFields.name]: (_j = initialContactData.firstName) !== null && _j !== void 0 ? _j : '',
|
|
120266
|
+
[FormFields.surname]: (_k = initialContactData.lastName) !== null && _k !== void 0 ? _k : '',
|
|
120267
|
+
[FormFields.email]: (_l = initialContactData.email) !== null && _l !== void 0 ? _l : '',
|
|
120268
|
+
[FormFields.phone]: (_m = initialContactData.phone) !== null && _m !== void 0 ? _m : '',
|
|
120269
|
+
[FormFields.address]: (_o = initialContactData.address) !== null && _o !== void 0 ? _o : '',
|
|
120270
|
+
[FormFields.country]: (_p = initialContactData.country_code) !== null && _p !== void 0 ? _p : '',
|
|
120271
|
+
[FormFields.city]: (_q = initialContactData.city) !== null && _q !== void 0 ? _q : '',
|
|
120270
120272
|
[FormFields.defaultAgentId]: '',
|
|
120271
120273
|
[FormFields.stage]: ''
|
|
120272
120274
|
};
|
|
@@ -120276,7 +120278,16 @@ const ContactInfo = ({
|
|
|
120276
120278
|
Object.keys(FORM_INIT).forEach(field => setFieldValue(field, ''));
|
|
120277
120279
|
setCurrentContactId(null);
|
|
120278
120280
|
}
|
|
120279
|
-
}, [contactInfoIsOpen, isEditMode, contactData, initialContactData,
|
|
120281
|
+
}, [contactInfoIsOpen, isEditMode, contactData, initialContactData, resetValidationStates, setFieldValue]);
|
|
120282
|
+
// Stages load asynchronously; pre-fill the edited contact's stage once per open
|
|
120283
|
+
useEffect(() => {
|
|
120284
|
+
var _a, _b;
|
|
120285
|
+
if (!contactInfoIsOpen || !isEditMode || !contactData || stagePrefilledRef.current) return;
|
|
120286
|
+
if (!(clientStages === null || clientStages === void 0 ? void 0 : clientStages.length)) return;
|
|
120287
|
+
const stageName = (_b = (_a = clientStages.find(stage => stage.id === contactData.stageId)) === null || _a === void 0 ? void 0 : _a.tag) !== null && _b !== void 0 ? _b : '';
|
|
120288
|
+
setFieldValue(FormFields.stage, stageName);
|
|
120289
|
+
stagePrefilledRef.current = true;
|
|
120290
|
+
}, [contactInfoIsOpen, isEditMode, contactData, clientStages, setFieldValue]);
|
|
120280
120291
|
useEffect(() => {
|
|
120281
120292
|
if (contactData) {
|
|
120282
120293
|
setAddedTags((contactData === null || contactData === void 0 ? void 0 : contactData.tags) || []);
|
|
@@ -120381,7 +120392,8 @@ const ContactInfo = ({
|
|
|
120381
120392
|
});
|
|
120382
120393
|
}
|
|
120383
120394
|
}), [validateField, resetValidationStates, formData, addedTags, contactData === null || contactData === void 0 ? void 0 : contactData.id, contactData === null || contactData === void 0 ? void 0 : contactData.tags, tagClient, setContactInfoIsOpen, isEditMode, createAction, patchAction, t, onContactCreated]);
|
|
120384
|
-
|
|
120395
|
+
// Only block on the initial load; refetches must not unmount the form
|
|
120396
|
+
if (loadingTags && !clientTags.length && !clientStages.length) return jsx$1(ClientInfoLoader, {});
|
|
120385
120397
|
return jsxs(Container, {
|
|
120386
120398
|
children: [jsx$1(ModalTitle, {
|
|
120387
120399
|
children: isEditMode ? t('contact.editContact') : t('contact.addNewContact')
|
package/package.json
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type SessionUser = {
|
|
2
|
+
id: string;
|
|
3
|
+
username: string;
|
|
4
|
+
email: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Store the session user without dropping fields cached for the same user, such as the
|
|
8
|
+
* workspace role withMe persists. The Clerk bridge re-syncs on load and on navigation;
|
|
9
|
+
* wiping the role there hides permission-gated nav items until a full refresh.
|
|
10
|
+
*/
|
|
11
|
+
export declare function setSessionUserInfo(user: SessionUser): void;
|
|
12
|
+
export {};
|