tin-spa 2.3.5 → 2.3.7

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.
Files changed (55) hide show
  1. package/esm2020/lib/classes/Classes.mjs +2 -1
  2. package/esm2020/lib/classes/TinCore.mjs +3 -2
  3. package/esm2020/lib/components/accounts/accountDialog.component.mjs +1 -1
  4. package/esm2020/lib/components/change-password/change-password.component.mjs +1 -1
  5. package/esm2020/lib/components/create-account/create-account.component.mjs +2 -4
  6. package/esm2020/lib/components/date/date.component.mjs +18 -6
  7. package/esm2020/lib/components/datetime/datetime.component.mjs +19 -6
  8. package/esm2020/lib/components/filter/filter.component.mjs +1 -2
  9. package/esm2020/lib/components/form/form.component.mjs +17 -21
  10. package/esm2020/lib/components/inventory/inventory.component.mjs +1 -2
  11. package/esm2020/lib/components/inventory/quantityDialog.component.mjs +1 -1
  12. package/esm2020/lib/components/label/label.component.mjs +3 -3
  13. package/esm2020/lib/components/login/login.component.mjs +1 -1
  14. package/esm2020/lib/components/message/messageDialog.component.mjs +3 -3
  15. package/esm2020/lib/components/money/money.component.mjs +18 -6
  16. package/esm2020/lib/components/number/number.component.mjs +19 -5
  17. package/esm2020/lib/components/option/option.component.mjs +1 -1
  18. package/esm2020/lib/components/profile/profile.component.mjs +2 -4
  19. package/esm2020/lib/components/recover-account/recover-account.component.mjs +1 -1
  20. package/esm2020/lib/components/select/select.component.mjs +60 -12
  21. package/esm2020/lib/components/signup/signup.component.mjs +1 -1
  22. package/esm2020/lib/components/table/detailsDialog.component.mjs +24 -7
  23. package/esm2020/lib/components/table/table.component.mjs +25 -14
  24. package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +24 -7
  25. package/esm2020/lib/components/table-internal/table-internal.component.mjs +30 -14
  26. package/esm2020/lib/components/table-row/table-row.component.mjs +1 -1
  27. package/esm2020/lib/components/tenant-settings/inviteDialog.component.mjs +1 -1
  28. package/esm2020/lib/components/tenant-settings/tenant-settings.component.mjs +2 -3
  29. package/esm2020/lib/components/text/text.component.mjs +15 -3
  30. package/esm2020/lib/components/tiles/tiles.component.mjs +1 -2
  31. package/esm2020/lib/components/transactions/transactDialog.component.mjs +1 -1
  32. package/esm2020/lib/components/users/users.component.mjs +1 -2
  33. package/esm2020/lib/components/viewer/viewer.component.mjs +1 -3
  34. package/esm2020/lib/components/welcome/welcome.component.mjs +1 -1
  35. package/esm2020/lib/services/dialog.service.mjs +44 -1
  36. package/esm2020/lib/services/table-config.service.mjs +7 -3
  37. package/fesm2015/tin-spa.mjs +315 -130
  38. package/fesm2015/tin-spa.mjs.map +1 -1
  39. package/fesm2020/tin-spa.mjs +314 -130
  40. package/fesm2020/tin-spa.mjs.map +1 -1
  41. package/lib/classes/Classes.d.ts +13 -3
  42. package/lib/components/date/date.component.d.ts +4 -1
  43. package/lib/components/datetime/datetime.component.d.ts +4 -1
  44. package/lib/components/form/form.component.d.ts +1 -0
  45. package/lib/components/money/money.component.d.ts +4 -1
  46. package/lib/components/number/number.component.d.ts +5 -1
  47. package/lib/components/select/select.component.d.ts +16 -2
  48. package/lib/components/table/detailsDialog.component.d.ts +4 -2
  49. package/lib/components/table/table.component.d.ts +1 -0
  50. package/lib/components/table-internal/detailsDialog-internal.component.d.ts +4 -2
  51. package/lib/components/table-internal/table-internal.component.d.ts +1 -0
  52. package/lib/components/text/text.component.d.ts +5 -1
  53. package/lib/services/dialog.service.d.ts +2 -1
  54. package/lib/services/table-config.service.d.ts +2 -1
  55. package/package.json +1 -1
@@ -51,6 +51,7 @@ export class AppConfig {
51
51
  this.selfService = false;
52
52
  this.multitenant = false;
53
53
  this.navigation = 'top';
54
+ this.progressLine = false;
54
55
  }
55
56
  }
56
57
  export class CapItem {
@@ -255,4 +256,4 @@ export var LogLevel;
255
256
  LogLevel[LogLevel["Fatal"] = 5] = "Fatal";
256
257
  LogLevel[LogLevel["Off"] = 6] = "Off";
257
258
  })(LogLevel || (LogLevel = {}));
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL0NsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxNQUFNLE9BQU8sV0FBVztDQUl2QjtBQUVELE1BQU0sT0FBTyxTQUFTOztBQUNHLG1CQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ2hCLG1CQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ2hCLG9CQUFVLEdBQUcsR0FBRyxDQUFDO0FBQ2pCLG9CQUFVLEdBQUcsR0FBRyxDQUFDO0FBQ2pCLDJCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUN4QiwwQkFBZ0IsR0FBRyxHQUFHLENBQUM7QUFHaEQsTUFBTSxPQUFPLGdCQUFnQjtDQUk1QjtBQUVELE1BQU0sQ0FBTixJQUFZLGFBQXdCO0FBQXBDLFdBQVksYUFBYTtJQUFFLCtDQUFHLENBQUE7SUFBRSwrQ0FBRyxDQUFBO0FBQUEsQ0FBQyxFQUF4QixhQUFhLEtBQWIsYUFBYSxRQUFXO0FBRXBDLE1BQU0sT0FBTyxtQkFBbUI7Q0FjL0I7QUFFRCxNQUFNLE9BQU8sTUFBTTtDQU1sQjtBQUlELE1BQU0sT0FBTyxZQUFZO0NBR3hCO0FBUUQsTUFBTSxPQUFPLFVBQVU7Q0FZdEI7QUErREQsTUFBTSxPQUFPLFdBQVc7Q0FzQnZCO0FBOEJELE1BQU0sT0FBTyxVQUFVO0NBTXRCO0FBY0QsTUFBTSxPQUFPLElBQUk7Q0FHaEI7QUFJRCxNQUFNLE9BQU8sY0FBYztDQUcxQjtBQUdELE1BQU0sT0FBTyxXQUFXO0lBRXRCO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsUUFB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S0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7Q0F3R0Y7QUFHRCxNQUFNLENBQU4sSUFBWSxRQVFYO0FBUkQsV0FBWSxRQUFRO0lBQ2xCLHFDQUFPLENBQUE7SUFDUCx5Q0FBUyxDQUFBO0lBQ1QsdUNBQVEsQ0FBQTtJQUNSLHVDQUFRLENBQUE7SUFDUix5Q0FBUyxDQUFBO0lBQ1QseUNBQVMsQ0FBQTtJQUNULHFDQUFPLENBQUE7QUFDVCxDQUFDLEVBUlcsUUFBUSxLQUFSLFFBQVEsUUFRbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlIH0gZnJvbSBcIi4vVGluQ29yZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFwaVJlc3BvbnNlIHtcclxuICBzdWNjZXNzOiBib29sZWFuO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBkYXRhO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uc3RhbnRzIHtcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfVVNFUiA9ICdhJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfTkFNRSA9ICdiJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfUk9MRVMgPSAnYyc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1RPS0VOID0gJ2QnO1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUSF9UT0tFTl9FWFBJUkUgPSAnZSc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1RFTkFOVF9OQU1FID0gJ2YnO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTGlzdERpYWxvZ0NvbmZpZ3tcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBsaXN0TmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEZXRhaWxzU291cmNlIHtSb3csIFVybH1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZXRhaWxzRGlhbG9nQ29uZmlnIHtcclxuXHJcbiAgZm9ybUNvbmZpZzogRm9ybUNvbmZpZztcclxuICB0YWJsZUNvbmZpZz86IFRhYmxlQ29uZmlnO1xyXG4gIHRhYmxlQ29uZmlncz86IFRhYmxlQ29uZmlnW107XHJcbiAgYnV0dG9ucz86IEJ1dHRvbltdO1xyXG4gIGRldGFpbHM/IDogYW55XHJcbiAgaGVyb0ZpZWxkPyA6IGFueVxyXG4gIGhlcm9WYWx1ZT86IGFueVxyXG4gIG1vZGUgPzogc3RyaW5nXHJcbiAgLy8gc2V0SGVybyA/OiBib29sZWFuXHJcbiAgZGV0YWlsc1NvdXJjZT86IERldGFpbHNTb3VyY2VcclxuICAvLyBzb3VyY2VNZXRob2QgOiAncm93JyB8ICdpZCcgfCAnaWRGaWVsZCdcclxuICAvLyByb3c/OiBhbnlcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFjdGlvbntcclxuICBtZXRob2Q/OiAnZ2V0JyB8ICdwb3N0J1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIHBhcmFtcz8gOiBhbnlbXVxyXG4gIHN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nXHJcbiAgaXNGb3JtRGF0YT86IGJvb2xlYW5cclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29uZmlnIHtcclxuICBmaWVsZHM6IFNlYXJjaEZpZWxkW11cclxuICBzZWFyY2hBY3Rpb24/OiBBY3Rpb25cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hGaWVsZCBleHRlbmRzIEZpZWxke1xyXG5cclxuICBzaG93PzogYm9vbGVhblxyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1Db25maWcge1xyXG4gIHRpdGxlPzogc3RyaW5nXHJcbiAgZmllbGRzOiBGaWVsZFtdXHJcbiAgbW9kZT86IHN0cmluZ1xyXG4gIGJ1dHRvbj8gOiBCdXR0b25cclxuICBtdWx0aUNvbHVtbj86IGJvb2xlYW5cclxuICByZXNldD86IGJvb2xlYW5cclxuICBmaWxlQWN0aW9uPzogQWN0aW9uXHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvblxyXG4gIGhlcm9GaWVsZD86IGFueVxyXG4gIGhlcm9WYWx1ZT86IGFueVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCdXR0b257XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgdmlzaWJsZT86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIGRpc3BsYXk/OiBzdHJpbmc7XHJcbiAgaWNvbj86IEljb247XHJcbiAgZGlzYWJsZWQ/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICBjb2xvcj86IHN0cmluZztcclxuICB0aXA/OiBzdHJpbmdcclxuICBkaWFsb2c/OiBib29sZWFuXHJcbiAgYWN0aW9uPzogQWN0aW9uXHJcbiAgY29uZmlybT86IENvbmZpcm1cclxuICBpbkRpYWxvZz86IGJvb2xlYW5cclxuICBkZXRhaWxzQ29uZmlnPzogRGV0YWlsc0RpYWxvZ0NvbmZpZ1xyXG4gIHNldEhlcm9GaWVsZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybSB7XHJcbiAgbWVzc2FnZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZGl0aW9ue1xyXG4gIGNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdHlwZTogJ3RleHQnIHwgJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICdjaGVja2JveCcgfCAnc2VsZWN0JyB8ICdtdWx0aS1zZWxlY3QnIHwgJ21vbmV5JyB8ICdudW1iZXInIHwgJ3NlY3Rpb24nIHwgJ2JsYW5rJyB8ICdjaGlwJyB8ICdmaWxlJyB8ICdmaWxlLXZpZXcnIHwgJ2ljb24nIHwgJ3NwaW5uZXInIHwgJ2J1dHRvbic7XHJcbiAgYWxpYXM/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueVtdO1xyXG4gIG9wdGlvbkRpc3BsYXk/OiBzdHJpbmdcclxuICBvcHRpb25WYWx1ZT86IHN0cmluZ1xyXG4gIGRlZmF1bHRWYWx1ZT86IGFueVxyXG4gIGRlZmF1bHRGaXJzdFZhbHVlPzogYm9vbGVhblxyXG4gIHJlcXVpcmVkPzogYm9vbGVhblxyXG4gIG1pbj86IGFueVxyXG4gIG1heD86IGFueVxyXG4gIHJvd3M/OiBudW1iZXJcclxuICBzcGFuPzogYm9vbGVhblxyXG4gIHJlYWRvbmx5PzogYm9vbGVhblxyXG4gIGhpZGRlbj86IGJvb2xlYW5cclxuICBwYXRoPzogc3RyaW5nXHJcbiAga2V5RmlsZWROYW1lPzogc3RyaW5nXHJcbiAgaGludD86IHN0cmluZ1xyXG4gIG1hc3RlckZpZWxkPzogc3RyaW5nXHJcbiAgY2hpbGQ/OiBDaGlsZEZpZWxkXHJcbiAgY2hpbGRyZW4/OiBDaGlsZEZpZWxkW11cclxuICBtYXN0ZXJPcHRpb25zPzogYW55W11cclxuICBudWxsYWJsZSA/OiBib29sZWFuXHJcblxyXG4gIGhpZGVPbkNyZWF0ZSA/OiBib29sZWFuXHJcbiAgaGlkZU9uRXhpc3RzID86IGJvb2xlYW5cclxuICBoaWRkZW5Db25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICByZWFkb25seUNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGlsZEZpZWxkIHtcclxuICBjaGlsZEZpZWxkPzogc3RyaW5nXHJcbiAgY2hpbGRWYWx1ZUZpZWxkPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbmZpZ3tcclxuICB0aXRsZT86IHN0cmluZ1xyXG4gIGNvbHVtbnM/IDogQ29sdW1uW11cclxuICBtaW5Db2x1bW5zPzogc3RyaW5nW11cclxuICBzaG93RmlsdGVyPzogYm9vbGVhblxyXG4gIGVsZXZhdGlvbj86ICdub25lJyB8ICdsb3cnIHwgJ21lZGl1bScgfCAnaGlnaCdcclxuICBmb3JtQ29uZmlnPzogRm9ybUNvbmZpZ1xyXG4gIHNlYXJjaENvbmZpZz86IFNlYXJjaENvbmZpZ1xyXG4gIHRpbGVDb25maWc/OiBUaWxlQ29uZmlnXHJcbiAgYnV0dG9ucz86IEJ1dHRvbltdXHJcbiAgbWluQnV0dG9ucz86IHN0cmluZ1tdXHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvblxyXG4gIGxvYWRJREZpZWxkID86IHN0cmluZ1xyXG4gIGxvYWRDcml0ZXJpYT86IHN0cmluZ1xyXG4gIGxvZ1Jlc3BvbnNlPzogYm9vbGVhblxyXG4gIGZsYXRCdXR0b25zPzogYm9vbGVhblxyXG4gIGdyZXlPdXQ/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICBoZXJvRmllbGQ/OiBhbnlcclxuICBoZXJvVmFsdWU/OiBhbnlcclxuICBjb2xsYXBzZUJ1dHRvbnM/OiBib29sZWFuXHJcbiAgcGFyZW50RGF0YSA/IDogYW55XHJcbiAgaGlkZVRhYkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbiB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHR5cGU/OiAndGV4dCcgfCAnZGF0ZScgfCAnZGF0ZXRpbWUnIHwgJ2NoZWNrYm94JyB8ICdzZWxlY3QnIHwgJ21vbmV5JyB8ICdudW1iZXInIHwgJ2NoaXAnIHwgJ2ljb24nIHwgJ3NwaW5uZXInIHwgJ2J1dHRvbic7XHJcbiAgYWxpYXM/OiBzdHJpbmc7XHJcbiAgaWNvbj86IEljb247XHJcbiAgY29sb3I/OiBDb2xvcjtcclxuICBpY29ucz86IEljb25bXTtcclxuICBvcHRpb25zPzogYW55W107XHJcbiAgb3B0aW9uRGlzcGxheT86IHN0cmluZ1xyXG4gIG9wdGlvblZhbHVlPzogc3RyaW5nXHJcbiAgZGV0YWlsc0NvbmZpZz86IERldGFpbHNEaWFsb2dDb25maWdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJY29ue1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGNvbG9yPzogc3RyaW5nXHJcbiAgdGlwPzogc3RyaW5nXHJcbiAgdGlwRmllbGQ/OiBzdHJpbmdcclxuICBiYW5uZXJGaWVsZD86IHN0cmluZ1xyXG4gIGNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbG9yIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBUaWxlQ29uZmlne1xyXG4gIHRpbGVzIDogVGlsZVtdXHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvblxyXG4gIGxvYWRJbml0PzogYm9vbGVhblxyXG4gIGNsaWNrYWJsZT86IGJvb2xlYW5cclxuICAvLyByZWxvYWQ/OiBib29sZWFuXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBUaWxlIHtcclxuXHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFsaWFzPzogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIHNlbGVjdGVkVGlsZT86IHN0cmluZztcclxuICBoaWRkZW4/OiBib29sZWFuO1xyXG4gIGluZm8/OiBzdHJpbmc7XHJcbiAgcHJlZml4Pzogc3RyaW5nO1xyXG4gIHN1ZmZpeD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFN0ZXAge1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGljb246IHN0cmluZztcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQWN0aW9uUmVzcG9uc2Uge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWx1ZTtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBsb2dpbkNvbmZpZyB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5hcHBOYW1lID0gXCJcIjtcclxuICAgIHRoaXMuc2VsZlNlcnZpY2UgPSBmYWxzZTtcclxuICAgIHRoaXMubG9nbyA9IFwiXCI7XHJcbiAgICB0aGlzLmxvZ29TaXplID0gXCJub3JtYWxcIjtcclxuICB9XHJcblxyXG4gIGFwcE5hbWU6IHN0cmluZztcclxuICBzZWxmU2VydmljZTogYm9vbGVhbjtcclxuICBsb2dvOiBzdHJpbmc7XHJcbiAgbG9nb1NpemU6IHN0cmluZztcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBcHBDb25maWcge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5hcHBOYW1lID0gXCJBcHAgTmFtZVwiO1xyXG4gICAgdGhpcy5sb2dvID0gXCJcIjtcclxuICAgIHRoaXMubG9nb1NpemUgPSBcIm5vcm1hbFwiO1xyXG4gICAgdGhpcy5BREF1dGggPSB0cnVlO1xyXG4gICAgdGhpcy5sb2NhbEF1dGggPSB0cnVlO1xyXG4gICAgdGhpcy5nb29nbGVBdXRoID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGZTZXJ2aWNlID0gZmFsc2U7XHJcbiAgICB0aGlzLm11bHRpdGVuYW50ID0gZmFsc2U7XHJcbiAgICB0aGlzLm5hdmlnYXRpb24gPSAndG9wJztcclxuICB9XHJcbiAgYXBwTmFtZTogc3RyaW5nO1xyXG4gIGxvZ286IHN0cmluZztcclxuICBsb2dvU2l6ZTogc3RyaW5nO1xyXG4gIEFEQXV0aDogYm9vbGVhbjtcclxuICBsb2NhbEF1dGg6IGJvb2xlYW47XHJcbiAgZ29vZ2xlQXV0aDogYm9vbGVhbjtcclxuICBzZWxmU2VydmljZTogYm9vbGVhbjtcclxuICBjYXBJdGVtczogQ2FwSXRlbVtdO1xyXG4gIG11bHRpdGVuYW50IDogYm9vbGVhbjtcclxuICBuYXZpZ2F0aW9uIDogJ3RvcCcgfCAnc2lkZSdcclxuXHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FwSXRlbSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5uYW1lID0gXCJcIjtcclxuICAgIHRoaXMuZGlzcGxheSA9IFwiTmV3IENhcCBJdGVtXCI7XHJcbiAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMudHlwZSA9IFwiXCI7XHJcbiAgICB0aGlzLm5ld0xpbmUgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd01lbnUgPSB0cnVlO1xyXG4gICAgdGhpcy5pZ25vcmVTdWJzRGlzcGxheSA9IGZhbHNlO1xyXG4gICAgdGhpcy5saW5rID0gXCJcIjtcclxuICAgIHRoaXMuaWNvbiA9IFwibmF2aWdhdGVfbmV4dFwiO1xyXG5cclxuICB9XHJcblxyXG4gIG5hbWU6IHN0cmluZztcclxuICBkaXNwbGF5OiBzdHJpbmc7XHJcbiAgZW5hYmxlZDogYm9vbGVhbjtcclxuICBzaG93TWVudTogYm9vbGVhbjtcclxuXHJcbiAgaWdub3JlU3Vic0Rpc3BsYXk6IGJvb2xlYW47XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIG5ld0xpbmU6IGJvb2xlYW47XHJcbiAgbGluazogc3RyaW5nO1xyXG4gIGljb246IHN0cmluZztcclxuICBjYXBTdWJJdGVtczogQ2FwSXRlbVtdO1xyXG5cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBY2NvdW50IHtcclxuICB1c2VyOiBVc2VyO1xyXG4gIHByb2ZpbGU6IFByb2ZpbGU7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBVc2VyIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcblxyXG5cclxuICAgIHRoaXMudXNlck5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5wYXNzd29yZCA9IFwiXCI7XHJcbiAgICB0aGlzLnRyaWVzID0gXCIwXCI7XHJcbiAgICB0aGlzLmxvY2tlZCA9IFwiMFwiO1xyXG4gICAgdGhpcy5sb2dnZWQgPSBcIjBcIjtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBcIjBcIjtcclxuICAgIHRoaXMuY2hhbmdlcGFzc3dvcmQgPSBcIjBcIjtcclxuICAgIHRoaXMuZGF0ZUNyZWF0ZWQgPSBDb3JlLm5vd0RhdGUoKTtcclxuICAgIHRoaXMuZGF0ZVVwZGF0ZWQgPSBDb3JlLm5vd0RhdGUoKTtcclxuICAgIHRoaXMudG9rZW4gPSBcIlwiO1xyXG4gICAgdGhpcy5kYXRlRXhwaXJlID0gQ29yZS5ub3dEYXRlKCk7XHJcbiAgICB0aGlzLnRva2VuRXhwaXJlID0gQ29yZS5ub3dEYXRlKCk7XHJcbiAgICB0aGlzLmF1dGhUeXBlID0gXCJcIjtcclxuICB9XHJcblxyXG4gIHVzZXJOYW1lOnN0cmluZztcclxuICBwYXNzd29yZDogc3RyaW5nO1xyXG4gIHRyaWVzOiBzdHJpbmc7XHJcbiAgbG9ja2VkOiBzdHJpbmc7XHJcbiAgbG9nZ2VkOiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ6IHN0cmluZztcclxuICBjaGFuZ2VwYXNzd29yZDogc3RyaW5nO1xyXG4gIGRhdGVDcmVhdGVkOiBzdHJpbmc7XHJcbiAgZGF0ZVVwZGF0ZWQ6IHN0cmluZztcclxuICBkYXRlRXhwaXJlOiBzdHJpbmc7XHJcbiAgdG9rZW46IHN0cmluZztcclxuICB0b2tlbkV4cGlyZTogc3RyaW5nO1xyXG5cclxuICBhdXRoVHlwZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2hhbmdlVXNlclBhc3N3b3JkIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnVzZXJOYW1lID0gXCJcIjtcclxuICAgIHRoaXMuY3VycmVudFBhc3N3b3JkID0gXCJcIjtcclxuICAgIHRoaXMubmV3UGFzc3dvcmQgPSBcIlwiO1xyXG4gICAgdGhpcy5jb25maXJtUGFzc3dvcmQgPSBcIlwiO1xyXG4gIH1cclxuICB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIGN1cnJlbnRQYXNzd29yZDogc3RyaW5nO1xyXG4gIG5ld1Bhc3N3b3JkOiBzdHJpbmc7XHJcbiAgY29uZmlybVBhc3N3b3JkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbklEID0gMDtcclxuICAgIHRoaXMubmFycmF0aW9uID0gXCJcIjtcclxuICAgIHRoaXMuYW1vdW50ID0gJzAnO1xyXG4gICAgdGhpcy50eXBlID0gMDtcclxuICAgIHRoaXMuZGF0ZSA9IFwiXCI7XHJcbiAgICB0aGlzLmFjY291bnRJRCA9IDA7XHJcbiAgICB0aGlzLmRlc3RpbmF0aW9uSUQgPSAwO1xyXG4gICAgdGhpcy5jYXRlZ29yeUlEID0gMDtcclxuICB9XHJcblxyXG4gIHRyYW5zYWN0aW9uSUQgOiBudW1iZXI7XHJcbiAgbmFycmF0aW9uIDogc3RyaW5nO1xyXG4gIGFtb3VudCA6IHN0cmluZztcclxuICB0eXBlOiBudW1iZXI7XHJcbiAgZGF0ZSA6IHN0cmluZztcclxuICBhY2NvdW50SUQgOiBudW1iZXI7XHJcbiAgZGVzdGluYXRpb25JRCA6IG51bWJlcjtcclxuICBjYXRlZ29yeUlEIDogbnVtYmVyO1xyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpbkFjY291bnQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcigpe1xyXG4gICAgdGhpcy5hY2NvdW50SUQgPSAwO1xyXG4gICAgdGhpcy5uYW1lID0gXCJcIjtcclxuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBcIlwiO1xyXG4gICAgdGhpcy5jdXJyZW5jeSA9IFwiXCI7XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGFjY291bnRJRDogbnVtYmVyXHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgY3VycmVuY3k6IHN0cmluZztcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZWdpc3RlciB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy51c2VyTmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLnJvbGVJRCA9IDE7XHJcbiAgICB0aGlzLmZpcnN0TmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLmxhc3ROYW1lID0gXCJcIjtcclxuICAgIHRoaXMuZW1haWwgPSBcIlwiO1xyXG4gICAgdGhpcy5hdXRoVHlwZSA9IFwibG9jYWxcIjtcclxuICAgIHRoaXMucGFzc3dvcmQgPSBcIlwiO1xyXG4gIH1cclxuXHJcbiAgdXNlck5hbWU6IHN0cmluZztcclxuICByb2xlSUQ6IG51bWJlcjtcclxuICBmaXJzdE5hbWU6IHN0cmluZztcclxuICBsYXN0TmFtZTogc3RyaW5nO1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgYXV0aFR5cGU6IHN0cmluZztcclxuICBwYXNzd29yZDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUHJvZmlsZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5wcm9maWxlSUQgPSBcIlwiO1xyXG4gICAgdGhpcy51c2VyTmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLnJvbGVJRCA9IDE7XHJcbiAgICB0aGlzLmZpcnN0TmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLmxhc3ROYW1lID0gXCJcIjtcclxuICAgIHRoaXMuZW1haWwgPSBcIlwiO1xyXG4gICAgdGhpcy5lbXBJRCA9IFwiXCI7XHJcbiAgICB0aGlzLmFySUQgPSBcIjBcIjtcclxuICAgIHRoaXMuYXV0aFR5cGUgPSBcIlwiO1xyXG4gICAgdGhpcy5wYXNzd29yZCA9IFwiXCI7XHJcbiAgICB0aGlzLnJvbGUgPSBuZXcgUm9sZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJvZmlsZUlEOiBzdHJpbmc7XHJcbiAgdXNlck5hbWU6IHN0cmluZztcclxuICByb2xlSUQ6IG51bWJlcjtcclxuICBmaXJzdE5hbWU6IHN0cmluZztcclxuICBsYXN0TmFtZTogc3RyaW5nO1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgZW1wSUQ6IHN0cmluZztcclxuICBhcklEOiBzdHJpbmc7XHJcbiAgYXV0aFR5cGU6IHN0cmluZztcclxuICBwYXNzd29yZDogc3RyaW5nO1xyXG4gIHJvbGU6IFJvbGVcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBSb2xlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnJvbGVJRCA9IDA7XHJcbiAgICB0aGlzLnJvbGVOYW1lID0gXCJOZXcgUm9sZVwiO1xyXG4gICAgdGhpcy5jYXAxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDIgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FwMyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDUgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FwNiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDggPSBmYWxzZTtcclxuICAgIHRoaXMuY2FwOSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAxMCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAxMSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAxMiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAxMyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAxNCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAxNSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAxNiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAxNyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAxOCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAxOSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAyMCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAyMSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAyMiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAyMyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAyNCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAyNSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAyNiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAyNyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAyOCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAyOSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAzMCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAzMSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAzMiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAzMyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAzNCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAzNSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAzNiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAzNyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAzOCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAzOSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA0MCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA0MSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA0MiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA0MyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA0NCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA0NSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA0NiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA0NyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA0OCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA0OSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA1MCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA1MSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA1MiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA1MyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA1NCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA1NSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA1NiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA1NyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA1OCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA1OSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA2MCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA2MSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA2MiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA2MyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA2NCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA2NSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA2NiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA2NyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA2OCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA2OSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA3MCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA3MSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA3MiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA3MyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA3NCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA3NSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA3NiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA3NyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA3OCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA3OSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA4MCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA4MSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA4MiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA4MyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA4NCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA4NSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA4NiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA4NyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA4OCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA4OSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA5MCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA5MSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA5MiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA5MyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA5NCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA5NSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA5NiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA5NyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA5OCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA5OSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAxMDAgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJvbGVJRDogbnVtYmVyO1xyXG4gIHJvbGVOYW1lOiBzdHJpbmc7XHJcbiAgY2FwMTogYm9vbGVhbjtcclxuICBjYXAyOiBib29sZWFuO1xyXG4gIGNhcDM6IGJvb2xlYW47XHJcbiAgY2FwNDogYm9vbGVhbjtcclxuICBjYXA1OiBib29sZWFuO1xyXG4gIGNhcDY6IGJvb2xlYW47XHJcbiAgY2FwNzogYm9vbGVhbjtcclxuICBjYXA4OiBib29sZWFuO1xyXG4gIGNhcDk6IGJvb2xlYW47XHJcbiAgY2FwMTA6IGJvb2xlYW47XHJcbiAgY2FwMTE6IGJvb2xlYW47XHJcbiAgY2FwMTI6IGJvb2xlYW47XHJcbiAgY2FwMTM6IGJvb2xlYW47XHJcbiAgY2FwMTQ6IGJvb2xlYW47XHJcbiAgY2FwMTU6IGJvb2xlYW47XHJcbiAgY2FwMTY6IGJvb2xlYW47XHJcbiAgY2FwMTc6IGJvb2xlYW47XHJcbiAgY2FwMTg6IGJvb2xlYW47XHJcbiAgY2FwMTk6IGJvb2xlYW47XHJcbiAgY2FwMjA6IGJvb2xlYW47XHJcbiAgY2FwMjE6IGJvb2xlYW47XHJcbiAgY2FwMjI6IGJvb2xlYW47XHJcbiAgY2FwMjM6IGJvb2xlYW47XHJcbiAgY2FwMjQ6IGJvb2xlYW47XHJcbiAgY2FwMjU6IGJvb2xlYW47XHJcbiAgY2FwMjY6IGJvb2xlYW47XHJcbiAgY2FwMjc6IGJvb2xlYW47XHJcbiAgY2FwMjg6IGJvb2xlYW47XHJcbiAgY2FwMjk6IGJvb2xlYW47XHJcbiAgY2FwMzA6IGJvb2xlYW47XHJcbiAgY2FwMzE6IGJvb2xlYW47XHJcbiAgY2FwMzI6IGJvb2xlYW47XHJcbiAgY2FwMzM6IGJvb2xlYW47XHJcbiAgY2FwMzQ6IGJvb2xlYW47XHJcbiAgY2FwMzU6IGJvb2xlYW47XHJcbiAgY2FwMzY6IGJvb2xlYW47XHJcbiAgY2FwMzc6IGJvb2xlYW47XHJcbiAgY2FwMzg6IGJvb2xlYW47XHJcbiAgY2FwMzk6IGJvb2xlYW47XHJcbiAgY2FwNDA6IGJvb2xlYW47XHJcbiAgY2FwNDE6IGJvb2xlYW47XHJcbiAgY2FwNDI6IGJvb2xlYW47XHJcbiAgY2FwNDM6IGJvb2xlYW47XHJcbiAgY2FwNDQ6IGJvb2xlYW47XHJcbiAgY2FwNDU6IGJvb2xlYW47XHJcbiAgY2FwNDY6IGJvb2xlYW47XHJcbiAgY2FwNDc6IGJvb2xlYW47XHJcbiAgY2FwNDg6IGJvb2xlYW47XHJcbiAgY2FwNDk6IGJvb2xlYW47XHJcbiAgY2FwNTA6IGJvb2xlYW47XHJcbiAgY2FwNTE6IGJvb2xlYW47XHJcbiAgY2FwNTI6IGJvb2xlYW47XHJcbiAgY2FwNTM6IGJvb2xlYW47XHJcbiAgY2FwNTQ6IGJvb2xlYW47XHJcbiAgY2FwNTU6IGJvb2xlYW47XHJcbiAgY2FwNTY6IGJvb2xlYW47XHJcbiAgY2FwNTc6IGJvb2xlYW47XHJcbiAgY2FwNTg6IGJvb2xlYW47XHJcbiAgY2FwNTk6IGJvb2xlYW47XHJcbiAgY2FwNjA6IGJvb2xlYW47XHJcbiAgY2FwNjE6IGJvb2xlYW47XHJcbiAgY2FwNjI6IGJvb2xlYW47XHJcbiAgY2FwNjM6IGJvb2xlYW47XHJcbiAgY2FwNjQ6IGJvb2xlYW47XHJcbiAgY2FwNjU6IGJvb2xlYW47XHJcbiAgY2FwNjY6IGJvb2xlYW47XHJcbiAgY2FwNjc6IGJvb2xlYW47XHJcbiAgY2FwNjg6IGJvb2xlYW47XHJcbiAgY2FwNjk6IGJvb2xlYW47XHJcbiAgY2FwNzA6IGJvb2xlYW47XHJcbiAgY2FwNzE6IGJvb2xlYW47XHJcbiAgY2FwNzI6IGJvb2xlYW47XHJcbiAgY2FwNzM6IGJvb2xlYW47XHJcbiAgY2FwNzQ6IGJvb2xlYW47XHJcbiAgY2FwNzU6IGJvb2xlYW47XHJcbiAgY2FwNzY6IGJvb2xlYW47XHJcbiAgY2FwNzc6IGJvb2xlYW47XHJcbiAgY2FwNzg6IGJvb2xlYW47XHJcbiAgY2FwNzk6IGJvb2xlYW47XHJcbiAgY2FwODA6IGJvb2xlYW47XHJcbiAgY2FwODE6IGJvb2xlYW47XHJcbiAgY2FwODI6IGJvb2xlYW47XHJcbiAgY2FwODM6IGJvb2xlYW47XHJcbiAgY2FwODQ6IGJvb2xlYW47XHJcbiAgY2FwODU6IGJvb2xlYW47XHJcbiAgY2FwODY6IGJvb2xlYW47XHJcbiAgY2FwODc6IGJvb2xlYW47XHJcbiAgY2FwODg6IGJvb2xlYW47XHJcbiAgY2FwODk6IGJvb2xlYW47XHJcbiAgY2FwOTA6IGJvb2xlYW47XHJcbiAgY2FwOTE6IGJvb2xlYW47XHJcbiAgY2FwOTI6IGJvb2xlYW47XHJcbiAgY2FwOTM6IGJvb2xlYW47XHJcbiAgY2FwOTQ6IGJvb2xlYW47XHJcbiAgY2FwOTU6IGJvb2xlYW47XHJcbiAgY2FwOTY6IGJvb2xlYW47XHJcbiAgY2FwOTc6IGJvb2xlYW47XHJcbiAgY2FwOTg6IGJvb2xlYW47XHJcbiAgY2FwOTk6IGJvb2xlYW47XHJcbiAgY2FwMTAwOiBib29sZWFuO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGVudW0gTG9nTGV2ZWwge1xyXG4gIEFsbCA9IDAsXHJcbiAgRGVidWcgPSAxLFxyXG4gIEluZm8gPSAyLFxyXG4gIFdhcm4gPSAzLFxyXG4gIEVycm9yID0gNCxcclxuICBGYXRhbCA9IDUsXHJcbiAgT2ZmID0gNixcclxufVxyXG4iXX0=
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL0NsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxNQUFNLE9BQU8sV0FBVztDQUl2QjtBQUVELE1BQU0sT0FBTyxTQUFTOztBQUNHLG1CQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ2hCLG1CQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ2hCLG9CQUFVLEdBQUcsR0FBRyxDQUFDO0FBQ2pCLG9CQUFVLEdBQUcsR0FBRyxDQUFDO0FBQ2pCLDJCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUN4QiwwQkFBZ0IsR0FBRyxHQUFHLENBQUM7QUFHaEQsTUFBTSxPQUFPLGdCQUFnQjtDQUk1QjtBQUVELE1BQU0sQ0FBTixJQUFZLGFBQXdCO0FBQXBDLFdBQVksYUFBYTtJQUFFLCtDQUFHLENBQUE7SUFBRSwrQ0FBRyxDQUFBO0FBQUEsQ0FBQyxFQUF4QixhQUFhLEtBQWIsYUFBYSxRQUFXO0FBRXBDLE1BQU0sT0FBTyxtQkFBbUI7Q0FjL0I7QUFFRCxNQUFNLE9BQU8sTUFBTTtDQU1sQjtBQUlELE1BQU0sT0FBTyxZQUFZO0NBR3hCO0FBUUQsTUFBTSxPQUFPLFVBQVU7Q0FZdEI7QUEwRUQsTUFBTSxPQUFPLFdBQVc7Q0FzQnZCO0FBK0JELE1BQU0sT0FBTyxVQUFVO0NBTXRCO0FBY0QsTUFBTSxPQUFPLElBQUk7Q0FHaEI7QUFJRCxNQUFNLE9BQU8sY0FBYztDQUcxQjtBQUdELE1BQU0sT0FBTyxXQUFXO0lBRXRCO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsUUFB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S0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7Q0F3R0Y7QUFHRCxNQUFNLENBQU4sSUFBWSxRQVFYO0FBUkQsV0FBWSxRQUFRO0lBQ2xCLHFDQUFPLENBQUE7SUFDUCx5Q0FBUyxDQUFBO0lBQ1QsdUNBQVEsQ0FBQTtJQUNSLHVDQUFRLENBQUE7SUFDUix5Q0FBUyxDQUFBO0lBQ1QseUNBQVMsQ0FBQTtJQUNULHFDQUFPLENBQUE7QUFDVCxDQUFDLEVBUlcsUUFBUSxLQUFSLFFBQVEsUUFRbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlIH0gZnJvbSBcIi4vVGluQ29yZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFwaVJlc3BvbnNlIHtcclxuICBzdWNjZXNzOiBib29sZWFuO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBkYXRhO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uc3RhbnRzIHtcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfVVNFUiA9ICdhJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfTkFNRSA9ICdiJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfUk9MRVMgPSAnYyc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1RPS0VOID0gJ2QnO1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUSF9UT0tFTl9FWFBJUkUgPSAnZSc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1RFTkFOVF9OQU1FID0gJ2YnO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTGlzdERpYWxvZ0NvbmZpZ3tcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBsaXN0TmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEZXRhaWxzU291cmNlIHtSb3csIFVybH1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZXRhaWxzRGlhbG9nQ29uZmlnIHtcclxuXHJcbiAgZm9ybUNvbmZpZzogRm9ybUNvbmZpZztcclxuICB0YWJsZUNvbmZpZz86IFRhYmxlQ29uZmlnO1xyXG4gIHRhYmxlQ29uZmlncz86IFRhYmxlQ29uZmlnW107XHJcbiAgYnV0dG9ucz86IEJ1dHRvbltdO1xyXG4gIGRldGFpbHM/IDogYW55XHJcbiAgaGVyb0ZpZWxkPyA6IGFueVxyXG4gIGhlcm9WYWx1ZT86IGFueVxyXG4gIG1vZGU/OiAnY3JlYXRlJyB8ICdlZGl0JyB8ICd2aWV3J1xyXG4gIC8vIHNldEhlcm8gPzogYm9vbGVhblxyXG4gIGRldGFpbHNTb3VyY2U/OiBEZXRhaWxzU291cmNlXHJcbiAgLy8gc291cmNlTWV0aG9kIDogJ3JvdycgfCAnaWQnIHwgJ2lkRmllbGQnXHJcbiAgLy8gcm93PzogYW55XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb257XHJcbiAgbWV0aG9kPzogJ2dldCcgfCAncG9zdCdcclxuICB1cmw6IHN0cmluZztcclxuICBwYXJhbXM/IDogYW55W11cclxuICBzdWNjZXNzTWVzc2FnZT86IHN0cmluZ1xyXG4gIGlzRm9ybURhdGE/OiBib29sZWFuXHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFNlYXJjaENvbmZpZyB7XHJcbiAgZmllbGRzOiBTZWFyY2hGaWVsZFtdXHJcbiAgc2VhcmNoQWN0aW9uPzogQWN0aW9uXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoRmllbGQgZXh0ZW5kcyBGaWVsZHtcclxuXHJcbiAgc2hvdz86IGJvb2xlYW5cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ29uZmlnIHtcclxuICB0aXRsZT86IHN0cmluZ1xyXG4gIGZpZWxkczogRmllbGRbXVxyXG4gIG1vZGU/OiAnY3JlYXRlJyB8ICdlZGl0JyB8ICd2aWV3J1xyXG4gIGJ1dHRvbj8gOiBCdXR0b25cclxuICBtdWx0aUNvbHVtbj86IGJvb2xlYW5cclxuICByZXNldD86IGJvb2xlYW5cclxuICBmaWxlQWN0aW9uPzogQWN0aW9uXHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvblxyXG4gIGhlcm9GaWVsZD86IGFueVxyXG4gIGhlcm9WYWx1ZT86IGFueVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCdXR0b257XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgdmlzaWJsZT86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIGRpc3BsYXk/OiBzdHJpbmc7XHJcbiAgaWNvbj86IEljb247XHJcbiAgZGlzYWJsZWQ/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICBjb2xvcj86IHN0cmluZztcclxuICB0aXA/OiBzdHJpbmdcclxuICBkaWFsb2c/OiBib29sZWFuXHJcbiAgYWN0aW9uPzogQWN0aW9uXHJcbiAgY29uZmlybT86IENvbmZpcm1cclxuICBpbkRpYWxvZz86IGJvb2xlYW5cclxuICBkZXRhaWxzQ29uZmlnPzogRGV0YWlsc0RpYWxvZ0NvbmZpZ1xyXG4gIHNldEhlcm9GaWVsZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybSB7XHJcbiAgbWVzc2FnZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZGl0aW9ue1xyXG4gIGNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdHlwZTogJ3RleHQnIHwgJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICdjaGVja2JveCcgfCAnc2VsZWN0JyB8ICdtdWx0aS1zZWxlY3QnIHwgJ21vbmV5JyB8ICdudW1iZXInIHwgJ3NlY3Rpb24nIHwgJ2JsYW5rJyB8ICdjaGlwJyB8ICdmaWxlJyB8ICdmaWxlLXZpZXcnIHwgJ2ljb24nIHwgJ3NwaW5uZXInIHwgJ2J1dHRvbicgfCAnbGFiZWwnO1xyXG4gIGFsaWFzPzogc3RyaW5nO1xyXG4gIG9wdGlvbnM/OiBhbnlbXTtcclxuICBvcHRpb25EaXNwbGF5Pzogc3RyaW5nXHJcbiAgb3B0aW9uVmFsdWU/OiBzdHJpbmdcclxuICBkZWZhdWx0VmFsdWU/OiBhbnlcclxuICBkZWZhdWx0Rmlyc3RWYWx1ZT86IGJvb2xlYW5cclxuICByZXF1aXJlZD86IGJvb2xlYW5cclxuICBtaW4/OiBhbnlcclxuICBtYXg/OiBhbnlcclxuICByb3dzPzogbnVtYmVyXHJcbiAgc3Bhbj86IGJvb2xlYW5cclxuICByZWFkb25seT86IGJvb2xlYW5cclxuICBoaWRkZW4/OiBib29sZWFuXHJcbiAgcGF0aD86IHN0cmluZ1xyXG4gIGtleUZpbGVkTmFtZT86IHN0cmluZ1xyXG4gIGhpbnQ/OiBzdHJpbmdcclxuICBtYXN0ZXJGaWVsZD86IHN0cmluZ1xyXG4gIGNoaWxkPzogQ2hpbGRGaWVsZFxyXG4gIGNoaWxkcmVuPzogQ2hpbGRGaWVsZFtdXHJcbiAgbWFzdGVyT3B0aW9ucz86IGFueVtdXHJcbiAgbnVsbGFibGUgPzogYm9vbGVhblxyXG5cclxuICBoaWRlT25DcmVhdGUgPzogYm9vbGVhblxyXG4gIGhpZGVPbkV4aXN0cyA/OiBib29sZWFuXHJcbiAgaGlkZGVuQ29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgcmVhZG9ubHlDb25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuXHJcbiAgcGVla0NvbmZpZyA/OiBQZWVrRGlhbG9nQ29uZmlnO1xyXG5cclxuICBpbmZvTWVzc2FnZT86IHN0cmluZztcclxuICBzdWZmaXg/OiBzdHJpbmc7XHJcblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBlZWtEaWFsb2dDb25maWd7XHJcbiAgZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZ1xyXG4gIGNyZWF0ZT8gOiBib29sZWFuXHJcbiAgdmlldz8gOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hpbGRGaWVsZCB7XHJcbiAgY2hpbGRGaWVsZD86IHN0cmluZ1xyXG4gIGNoaWxkVmFsdWVGaWVsZD86IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVDb25maWd7XHJcbiAgdGl0bGU/OiBzdHJpbmdcclxuICBjb2x1bW5zPyA6IENvbHVtbltdXHJcbiAgbWluQ29sdW1ucz86IHN0cmluZ1tdXHJcbiAgc2hvd0ZpbHRlcj86IGJvb2xlYW5cclxuICBlbGV2YXRpb24/OiAnbm9uZScgfCAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnXHJcbiAgZm9ybUNvbmZpZz86IEZvcm1Db25maWdcclxuICBzZWFyY2hDb25maWc/OiBTZWFyY2hDb25maWdcclxuICB0aWxlQ29uZmlnPzogVGlsZUNvbmZpZ1xyXG4gIGJ1dHRvbnM/OiBCdXR0b25bXVxyXG4gIG1pbkJ1dHRvbnM/OiBzdHJpbmdbXVxyXG4gIGxvYWRBY3Rpb24/OiBBY3Rpb25cclxuICBsb2FkSURGaWVsZCA/OiBzdHJpbmdcclxuICBsb2FkQ3JpdGVyaWE/OiBzdHJpbmdcclxuICBsb2dSZXNwb25zZT86IGJvb2xlYW5cclxuICBmbGF0QnV0dG9ucz86IGJvb2xlYW5cclxuICBncmV5T3V0PzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgaGVyb0ZpZWxkPzogYW55XHJcbiAgaGVyb1ZhbHVlPzogYW55XHJcbiAgY29sbGFwc2VCdXR0b25zPzogYm9vbGVhblxyXG4gIHBhcmVudERhdGEgPyA6IGFueVxyXG4gIGhpZGVUYWJDb25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW4ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0eXBlPzogJ3RleHQnIHwgJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICdjaGVja2JveCcgfCAnc2VsZWN0JyB8ICdtb25leScgfCAnbnVtYmVyJyB8ICdjaGlwJyB8ICdpY29uJyB8ICdzcGlubmVyJyB8ICdidXR0b24nIDtcclxuICBhbGlhcz86IHN0cmluZztcclxuICBpY29uPzogSWNvbjtcclxuICBjb2xvcj86IENvbG9yO1xyXG4gIGljb25zPzogSWNvbltdO1xyXG4gIG9wdGlvbnM/OiBhbnlbXTtcclxuICBvcHRpb25EaXNwbGF5Pzogc3RyaW5nXHJcbiAgb3B0aW9uVmFsdWU/OiBzdHJpbmdcclxuICBkZXRhaWxzQ29uZmlnPzogRGV0YWlsc0RpYWxvZ0NvbmZpZ1xyXG4gIGhpZGRlbkNvbmRpdGlvbj86IChwYXJlbnREYXRhOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSWNvbntcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb2xvcj86IHN0cmluZ1xyXG4gIHRpcD86IHN0cmluZ1xyXG4gIHRpcEZpZWxkPzogc3RyaW5nXHJcbiAgYmFubmVyRmllbGQ/OiBzdHJpbmdcclxuICBjb25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2xvciB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgVGlsZUNvbmZpZ3tcclxuICB0aWxlcyA6IFRpbGVbXVxyXG4gIGxvYWRBY3Rpb24/OiBBY3Rpb25cclxuICBsb2FkSW5pdD86IGJvb2xlYW5cclxuICBjbGlja2FibGU/OiBib29sZWFuXHJcbiAgLy8gcmVsb2FkPzogYm9vbGVhblxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVGlsZSB7XHJcblxyXG4gIG5hbWU6IHN0cmluZztcclxuICBhbGlhcz86IHN0cmluZztcclxuICB2YWx1ZT86IHN0cmluZztcclxuICBjb2xvcj86IHN0cmluZztcclxuICBzZWxlY3RlZFRpbGU/OiBzdHJpbmc7XHJcbiAgaGlkZGVuPzogYm9vbGVhbjtcclxuICBpbmZvPzogc3RyaW5nO1xyXG4gIHByZWZpeD86IHN0cmluZztcclxuICBzdWZmaXg/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTdGVwIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBpY29uOiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFjdGlvblJlc3BvbnNlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdmFsdWU7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgbG9naW5Db25maWcge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuYXBwTmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLnNlbGZTZXJ2aWNlID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ28gPSBcIlwiO1xyXG4gICAgdGhpcy5sb2dvU2l6ZSA9IFwibm9ybWFsXCI7XHJcbiAgfVxyXG5cclxuICBhcHBOYW1lOiBzdHJpbmc7XHJcbiAgc2VsZlNlcnZpY2U6IGJvb2xlYW47XHJcbiAgbG9nbzogc3RyaW5nO1xyXG4gIGxvZ29TaXplOiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQXBwQ29uZmlnIHtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuYXBwTmFtZSA9IFwiQXBwIE5hbWVcIjtcclxuICAgIHRoaXMubG9nbyA9IFwiXCI7XHJcbiAgICB0aGlzLmxvZ29TaXplID0gXCJub3JtYWxcIjtcclxuICAgIHRoaXMuQURBdXRoID0gdHJ1ZTtcclxuICAgIHRoaXMubG9jYWxBdXRoID0gdHJ1ZTtcclxuICAgIHRoaXMuZ29vZ2xlQXV0aCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxmU2VydmljZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5tdWx0aXRlbmFudCA9IGZhbHNlO1xyXG4gICAgdGhpcy5uYXZpZ2F0aW9uID0gJ3RvcCc7XHJcbiAgICB0aGlzLnByb2dyZXNzTGluZSA9IGZhbHNlO1xyXG4gIH1cclxuICBhcHBOYW1lOiBzdHJpbmc7XHJcbiAgbG9nbzogc3RyaW5nO1xyXG4gIGxvZ29TaXplOiBzdHJpbmc7XHJcbiAgQURBdXRoOiBib29sZWFuO1xyXG4gIGxvY2FsQXV0aDogYm9vbGVhbjtcclxuICBnb29nbGVBdXRoOiBib29sZWFuO1xyXG4gIHNlbGZTZXJ2aWNlOiBib29sZWFuO1xyXG4gIGNhcEl0ZW1zOiBDYXBJdGVtW107XHJcbiAgbXVsdGl0ZW5hbnQgOiBib29sZWFuO1xyXG4gIG5hdmlnYXRpb24gOiAndG9wJyB8ICdzaWRlJ1xyXG4gIHByb2dyZXNzTGluZTogYm9vbGVhbjtcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDYXBJdGVtIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLm5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gXCJOZXcgQ2FwIEl0ZW1cIjtcclxuICAgIHRoaXMuZW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy50eXBlID0gXCJcIjtcclxuICAgIHRoaXMubmV3TGluZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93TWVudSA9IHRydWU7XHJcbiAgICB0aGlzLmlnbm9yZVN1YnNEaXNwbGF5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmxpbmsgPSBcIlwiO1xyXG4gICAgdGhpcy5pY29uID0gXCJuYXZpZ2F0ZV9uZXh0XCI7XHJcblxyXG4gIH1cclxuXHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGRpc3BsYXk6IHN0cmluZztcclxuICBlbmFibGVkOiBib29sZWFuO1xyXG4gIHNob3dNZW51OiBib29sZWFuO1xyXG5cclxuICBpZ25vcmVTdWJzRGlzcGxheTogYm9vbGVhbjtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbmV3TGluZTogYm9vbGVhbjtcclxuICBsaW5rOiBzdHJpbmc7XHJcbiAgaWNvbjogc3RyaW5nO1xyXG4gIGNhcFN1Ykl0ZW1zOiBDYXBJdGVtW107XHJcblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFjY291bnQge1xyXG4gIHVzZXI6IFVzZXI7XHJcbiAgcHJvZmlsZTogUHJvZmlsZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXIge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuXHJcblxyXG4gICAgdGhpcy51c2VyTmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLnBhc3N3b3JkID0gXCJcIjtcclxuICAgIHRoaXMudHJpZXMgPSBcIjBcIjtcclxuICAgIHRoaXMubG9ja2VkID0gXCIwXCI7XHJcbiAgICB0aGlzLmxvZ2dlZCA9IFwiMFwiO1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IFwiMFwiO1xyXG4gICAgdGhpcy5jaGFuZ2VwYXNzd29yZCA9IFwiMFwiO1xyXG4gICAgdGhpcy5kYXRlQ3JlYXRlZCA9IENvcmUubm93RGF0ZSgpO1xyXG4gICAgdGhpcy5kYXRlVXBkYXRlZCA9IENvcmUubm93RGF0ZSgpO1xyXG4gICAgdGhpcy50b2tlbiA9IFwiXCI7XHJcbiAgICB0aGlzLmRhdGVFeHBpcmUgPSBDb3JlLm5vd0RhdGUoKTtcclxuICAgIHRoaXMudG9rZW5FeHBpcmUgPSBDb3JlLm5vd0RhdGUoKTtcclxuICAgIHRoaXMuYXV0aFR5cGUgPSBcIlwiO1xyXG4gIH1cclxuXHJcbiAgdXNlck5hbWU6c3RyaW5nO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgdHJpZXM6IHN0cmluZztcclxuICBsb2NrZWQ6IHN0cmluZztcclxuICBsb2dnZWQ6IHN0cmluZztcclxuICBkaXNhYmxlZDogc3RyaW5nO1xyXG4gIGNoYW5nZXBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgZGF0ZUNyZWF0ZWQ6IHN0cmluZztcclxuICBkYXRlVXBkYXRlZDogc3RyaW5nO1xyXG4gIGRhdGVFeHBpcmU6IHN0cmluZztcclxuICB0b2tlbjogc3RyaW5nO1xyXG4gIHRva2VuRXhwaXJlOiBzdHJpbmc7XHJcblxyXG4gIGF1dGhUeXBlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDaGFuZ2VVc2VyUGFzc3dvcmQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMudXNlck5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5jdXJyZW50UGFzc3dvcmQgPSBcIlwiO1xyXG4gICAgdGhpcy5uZXdQYXNzd29yZCA9IFwiXCI7XHJcbiAgICB0aGlzLmNvbmZpcm1QYXNzd29yZCA9IFwiXCI7XHJcbiAgfVxyXG4gIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgY3VycmVudFBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgbmV3UGFzc3dvcmQ6IHN0cmluZztcclxuICBjb25maXJtUGFzc3dvcmQ6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uSUQgPSAwO1xyXG4gICAgdGhpcy5uYXJyYXRpb24gPSBcIlwiO1xyXG4gICAgdGhpcy5hbW91bnQgPSAnMCc7XHJcbiAgICB0aGlzLnR5cGUgPSAwO1xyXG4gICAgdGhpcy5kYXRlID0gXCJcIjtcclxuICAgIHRoaXMuYWNjb3VudElEID0gMDtcclxuICAgIHRoaXMuZGVzdGluYXRpb25JRCA9IDA7XHJcbiAgICB0aGlzLmNhdGVnb3J5SUQgPSAwO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNhY3Rpb25JRCA6IG51bWJlcjtcclxuICBuYXJyYXRpb24gOiBzdHJpbmc7XHJcbiAgYW1vdW50IDogc3RyaW5nO1xyXG4gIHR5cGU6IG51bWJlcjtcclxuICBkYXRlIDogc3RyaW5nO1xyXG4gIGFjY291bnRJRCA6IG51bWJlcjtcclxuICBkZXN0aW5hdGlvbklEIDogbnVtYmVyO1xyXG4gIGNhdGVnb3J5SUQgOiBudW1iZXI7XHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmluQWNjb3VudCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgICB0aGlzLmFjY291bnRJRCA9IDA7XHJcbiAgICB0aGlzLm5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IFwiXCI7XHJcbiAgICB0aGlzLmN1cnJlbmN5ID0gXCJcIjtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgYWNjb3VudElEOiBudW1iZXJcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICBjdXJyZW5jeTogc3RyaW5nO1xyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnVzZXJOYW1lID0gXCJcIjtcclxuICAgIHRoaXMucm9sZUlEID0gMTtcclxuICAgIHRoaXMuZmlyc3ROYW1lID0gXCJcIjtcclxuICAgIHRoaXMubGFzdE5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5lbWFpbCA9IFwiXCI7XHJcbiAgICB0aGlzLmF1dGhUeXBlID0gXCJsb2NhbFwiO1xyXG4gICAgdGhpcy5wYXNzd29yZCA9IFwiXCI7XHJcbiAgfVxyXG5cclxuICB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHJvbGVJRDogbnVtYmVyO1xyXG4gIGZpcnN0TmFtZTogc3RyaW5nO1xyXG4gIGxhc3ROYW1lOiBzdHJpbmc7XHJcbiAgZW1haWw6IHN0cmluZztcclxuICBhdXRoVHlwZTogc3RyaW5nO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9maWxlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnByb2ZpbGVJRCA9IFwiXCI7XHJcbiAgICB0aGlzLnVzZXJOYW1lID0gXCJcIjtcclxuICAgIHRoaXMucm9sZUlEID0gMTtcclxuICAgIHRoaXMuZmlyc3ROYW1lID0gXCJcIjtcclxuICAgIHRoaXMubGFzdE5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5lbWFpbCA9IFwiXCI7XHJcbiAgICB0aGlzLmVtcElEID0gXCJcIjtcclxuICAgIHRoaXMuYXJJRCA9IFwiMFwiO1xyXG4gICAgdGhpcy5hdXRoVHlwZSA9IFwiXCI7XHJcbiAgICB0aGlzLnBhc3N3b3JkID0gXCJcIjtcclxuICAgIHRoaXMucm9sZSA9IG5ldyBSb2xlKCk7XHJcbiAgfVxyXG5cclxuICBwcm9maWxlSUQ6IHN0cmluZztcclxuICB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHJvbGVJRDogbnVtYmVyO1xyXG4gIGZpcnN0TmFtZTogc3RyaW5nO1xyXG4gIGxhc3ROYW1lOiBzdHJpbmc7XHJcbiAgZW1haWw6IHN0cmluZztcclxuICBlbXBJRDogc3RyaW5nO1xyXG4gIGFySUQ6IHN0cmluZztcclxuICBhdXRoVHlwZTogc3RyaW5nO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgcm9sZTogUm9sZVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFJvbGUge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMucm9sZUlEID0gMDtcclxuICAgIHRoaXMucm9sZU5hbWUgPSBcIk5ldyBSb2xlXCI7XHJcbiAgICB0aGlzLmNhcDEgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FwMiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXAzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FwNSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDcgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FwOCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXA5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDEwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDExID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDEyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDEzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDE5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDIwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDIxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDIyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDIzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDI5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDMwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDMxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDMyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDMzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDM5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDQ5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDUwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDUxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDUyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDUzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDU5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDYwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDYxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDYyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDYzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDY5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDcwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDcxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDcyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDczID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDc5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDgwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDgxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDgyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDgzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDg5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDkwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDkxID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDkyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDkzID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk1ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk2ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk3ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk4ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDk5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhcDEwMCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcm9sZUlEOiBudW1iZXI7XHJcbiAgcm9sZU5hbWU6IHN0cmluZztcclxuICBjYXAxOiBib29sZWFuO1xyXG4gIGNhcDI6IGJvb2xlYW47XHJcbiAgY2FwMzogYm9vbGVhbjtcclxuICBjYXA0OiBib29sZWFuO1xyXG4gIGNhcDU6IGJvb2xlYW47XHJcbiAgY2FwNjogYm9vbGVhbjtcclxuICBjYXA3OiBib29sZWFuO1xyXG4gIGNhcDg6IGJvb2xlYW47XHJcbiAgY2FwOTogYm9vbGVhbjtcclxuICBjYXAxMDogYm9vbGVhbjtcclxuICBjYXAxMTogYm9vbGVhbjtcclxuICBjYXAxMjogYm9vbGVhbjtcclxuICBjYXAxMzogYm9vbGVhbjtcclxuICBjYXAxNDogYm9vbGVhbjtcclxuICBjYXAxNTogYm9vbGVhbjtcclxuICBjYXAxNjogYm9vbGVhbjtcclxuICBjYXAxNzogYm9vbGVhbjtcclxuICBjYXAxODogYm9vbGVhbjtcclxuICBjYXAxOTogYm9vbGVhbjtcclxuICBjYXAyMDogYm9vbGVhbjtcclxuICBjYXAyMTogYm9vbGVhbjtcclxuICBjYXAyMjogYm9vbGVhbjtcclxuICBjYXAyMzogYm9vbGVhbjtcclxuICBjYXAyNDogYm9vbGVhbjtcclxuICBjYXAyNTogYm9vbGVhbjtcclxuICBjYXAyNjogYm9vbGVhbjtcclxuICBjYXAyNzogYm9vbGVhbjtcclxuICBjYXAyODogYm9vbGVhbjtcclxuICBjYXAyOTogYm9vbGVhbjtcclxuICBjYXAzMDogYm9vbGVhbjtcclxuICBjYXAzMTogYm9vbGVhbjtcclxuICBjYXAzMjogYm9vbGVhbjtcclxuICBjYXAzMzogYm9vbGVhbjtcclxuICBjYXAzNDogYm9vbGVhbjtcclxuICBjYXAzNTogYm9vbGVhbjtcclxuICBjYXAzNjogYm9vbGVhbjtcclxuICBjYXAzNzogYm9vbGVhbjtcclxuICBjYXAzODogYm9vbGVhbjtcclxuICBjYXAzOTogYm9vbGVhbjtcclxuICBjYXA0MDogYm9vbGVhbjtcclxuICBjYXA0MTogYm9vbGVhbjtcclxuICBjYXA0MjogYm9vbGVhbjtcclxuICBjYXA0MzogYm9vbGVhbjtcclxuICBjYXA0NDogYm9vbGVhbjtcclxuICBjYXA0NTogYm9vbGVhbjtcclxuICBjYXA0NjogYm9vbGVhbjtcclxuICBjYXA0NzogYm9vbGVhbjtcclxuICBjYXA0ODogYm9vbGVhbjtcclxuICBjYXA0OTogYm9vbGVhbjtcclxuICBjYXA1MDogYm9vbGVhbjtcclxuICBjYXA1MTogYm9vbGVhbjtcclxuICBjYXA1MjogYm9vbGVhbjtcclxuICBjYXA1MzogYm9vbGVhbjtcclxuICBjYXA1NDogYm9vbGVhbjtcclxuICBjYXA1NTogYm9vbGVhbjtcclxuICBjYXA1NjogYm9vbGVhbjtcclxuICBjYXA1NzogYm9vbGVhbjtcclxuICBjYXA1ODogYm9vbGVhbjtcclxuICBjYXA1OTogYm9vbGVhbjtcclxuICBjYXA2MDogYm9vbGVhbjtcclxuICBjYXA2MTogYm9vbGVhbjtcclxuICBjYXA2MjogYm9vbGVhbjtcclxuICBjYXA2MzogYm9vbGVhbjtcclxuICBjYXA2NDogYm9vbGVhbjtcclxuICBjYXA2NTogYm9vbGVhbjtcclxuICBjYXA2NjogYm9vbGVhbjtcclxuICBjYXA2NzogYm9vbGVhbjtcclxuICBjYXA2ODogYm9vbGVhbjtcclxuICBjYXA2OTogYm9vbGVhbjtcclxuICBjYXA3MDogYm9vbGVhbjtcclxuICBjYXA3MTogYm9vbGVhbjtcclxuICBjYXA3MjogYm9vbGVhbjtcclxuICBjYXA3MzogYm9vbGVhbjtcclxuICBjYXA3NDogYm9vbGVhbjtcclxuICBjYXA3NTogYm9vbGVhbjtcclxuICBjYXA3NjogYm9vbGVhbjtcclxuICBjYXA3NzogYm9vbGVhbjtcclxuICBjYXA3ODogYm9vbGVhbjtcclxuICBjYXA3OTogYm9vbGVhbjtcclxuICBjYXA4MDogYm9vbGVhbjtcclxuICBjYXA4MTogYm9vbGVhbjtcclxuICBjYXA4MjogYm9vbGVhbjtcclxuICBjYXA4MzogYm9vbGVhbjtcclxuICBjYXA4NDogYm9vbGVhbjtcclxuICBjYXA4NTogYm9vbGVhbjtcclxuICBjYXA4NjogYm9vbGVhbjtcclxuICBjYXA4NzogYm9vbGVhbjtcclxuICBjYXA4ODogYm9vbGVhbjtcclxuICBjYXA4OTogYm9vbGVhbjtcclxuICBjYXA5MDogYm9vbGVhbjtcclxuICBjYXA5MTogYm9vbGVhbjtcclxuICBjYXA5MjogYm9vbGVhbjtcclxuICBjYXA5MzogYm9vbGVhbjtcclxuICBjYXA5NDogYm9vbGVhbjtcclxuICBjYXA5NTogYm9vbGVhbjtcclxuICBjYXA5NjogYm9vbGVhbjtcclxuICBjYXA5NzogYm9vbGVhbjtcclxuICBjYXA5ODogYm9vbGVhbjtcclxuICBjYXA5OTogYm9vbGVhbjtcclxuICBjYXAxMDA6IGJvb2xlYW47XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZW51bSBMb2dMZXZlbCB7XHJcbiAgQWxsID0gMCxcclxuICBEZWJ1ZyA9IDEsXHJcbiAgSW5mbyA9IDIsXHJcbiAgV2FybiA9IDMsXHJcbiAgRXJyb3IgPSA0LFxyXG4gIEZhdGFsID0gNSxcclxuICBPZmYgPSA2LFxyXG59XHJcbiJdfQ==
@@ -34,6 +34,7 @@ export class Core {
34
34
  data[field.name] = this.getInitialValue(field);
35
35
  }
36
36
  });
37
+ // console.log(data)
37
38
  return data;
38
39
  }
39
40
  static resetObject(fields, data) {
@@ -258,7 +259,7 @@ export class DetailsDialogProcessor {
258
259
  const updatedDetailsConfig = Core.getClone(detailsConfig);
259
260
  updatedDetailsConfig.details = row;
260
261
  updatedDetailsConfig.formConfig.mode = updatedDetailsConfig.mode ?? "view";
261
- if (updatedDetailsConfig.heroField) {
262
+ if (updatedDetailsConfig.heroField && row) {
262
263
  updatedDetailsConfig.heroValue = row[updatedDetailsConfig.heroField];
263
264
  function updateTableConfig(tableConfig) {
264
265
  tableConfig.heroField = updatedDetailsConfig.heroField;
@@ -397,4 +398,4 @@ export class DetailsDialogProcessor {
397
398
  return { extraButtons, createButton, editButton, deleteButton };
398
399
  }
399
400
  }
400
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGluQ29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL1RpbkNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixhQUFhLEVBQXFCLE1BQU0sV0FBVyxDQUFDO0FBRWxGLE1BQU0sT0FBTyxJQUFJO0lBR1IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHO1FBQ3pCLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0MsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDMUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUVELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFJTSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDdEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV6QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFB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Q0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7WUFDdEQsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ2xELFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztTQUN2RDtRQUNELE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXRhaWxzRGlhbG9nQ29uZmlnLCBEZXRhaWxzU291cmNlLCBGaWVsZCwgRm9ybUNvbmZpZyB9IGZyb20gXCIuL0NsYXNzZXNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBDb3JlIHtcclxuXHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZGVlcENsb25lKG9iaikge1xyXG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xyXG4gICAgICByZXR1cm4gb2JqO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcclxuICAgICAgY29uc3QgYXJyQ29weSA9IFtdO1xyXG4gICAgICBvYmouZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBhcnJDb3B5W2luZGV4XSA9IHRoaXMuZGVlcENsb25lKGl0ZW0pO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGFyckNvcHk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb2JqQ29weSA9IHt9O1xyXG4gICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIG9iakNvcHlba2V5XSA9IHRoaXMuZGVlcENsb25lKG9ialtrZXldKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG9iakNvcHk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY2FtZWxUb1dvcmRzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHZhbHVlO1xyXG5cclxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA9PSAwKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgbGV0IHYgPSB2YWx1ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbHVlLnN1YnN0cmluZygxKVxyXG4gICAgcmV0dXJuIHYucmVwbGFjZSgvKFtBLVpdKykqKFtBLVpdW2Etel0pL2csIFwiJDEgJDJcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdlbmVyYXRlT2JqZWN0KGZpZWxkczogRmllbGRbXSkge1xyXG5cclxuICAgIGxldCBkYXRhID0ge307XHJcbiAgICBmaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XHJcblxyXG4gICAgICBpZiAoZmllbGQudHlwZSAhPSAnc2VjdGlvbicgJiYgZmllbGQudHlwZSAhPSAnYmxhbmsnICl7XHJcbiAgICAgICAgZGF0YVtmaWVsZC5uYW1lXSA9IHRoaXMuZ2V0SW5pdGlhbFZhbHVlKGZpZWxkKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyByZXNldE9iamVjdChmaWVsZHM6IEZpZWxkW10sIGRhdGEpIHtcclxuXHJcbiAgICBmaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAgIGlmIChmaWVsZC50eXBlICE9ICdzZWN0aW9uJyAmJiBmaWVsZC50eXBlICE9ICdibGFuaycpIHtcclxuICAgICAgICBkYXRhW2ZpZWxkLm5hbWVdID0gdGhpcy5nZXRJbml0aWFsVmFsdWUoZmllbGQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHRlc3RWaXNpYmxlKGNvbmZpZyA6IEZvcm1Db25maWcsIGRhdGEsIGY6IEZpZWxkKTogYm9vbGVhbiB7XHJcblxyXG4gICAgaWYgKGYuaGlkZGVuKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgaWYgKGNvbmZpZy5tb2RlID09ICdjcmVhdGUnICYmIGYuaGlkZU9uQ3JlYXRlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKGNvbmZpZy5tb2RlICE9ICdjcmVhdGUnICYmIGYuaGlkZU9uRXhpc3RzKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZi5oaWRkZW5Db25kaXRpb24pIHtcclxuICAgICAgcmV0dXJuICFmLmhpZGRlbkNvbmRpdGlvbihkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGVPYmplY3QoZmllbGRzOiBGaWVsZFtdLCBkYXRhKTogc3RyaW5nIHtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIlZhbGlkYXRpb25zXCIpXHJcblxyXG4gICAgZm9yIChsZXQgZmllbGQgb2YgZmllbGRzKSB7XHJcblxyXG4gICAgICBpZiAoZmllbGQudHlwZSA9PSAnZmlsZScgfHwgZmllbGQudHlwZSA9PSAnZmlsZS12aWV3JyB8fCBmaWVsZC50eXBlID09ICdibGFuaycgfHwgZmllbGQudHlwZSA9PSAnc2VjdGlvbicgKSBjb250aW51ZVxyXG5cclxuXHJcblxyXG4gICAgICBsZXQgbmFtZSA9IGZpZWxkLmFsaWFzID8/IHRoaXMuY2FtZWxUb1dvcmRzKGZpZWxkLm5hbWUpO1xyXG4gICAgICBsZXQgZCA9IGRhdGFbZmllbGQubmFtZV07XHJcblxyXG5cclxuICAgICAgY29uc29sZS5sb2cobmFtZSArICcgJyArIGQpXHJcblxyXG4gICAgICBpZiAoZmllbGQucmVxdWlyZWQpe1xyXG5cclxuICAgICAgICBpZiAoZCA9PSB1bmRlZmluZWQgfHwgZCA9PSBudWxsKSByZXR1cm4gYCR7bmFtZX0gaXMgcmVxdWlyZWRgO1xyXG5cclxuICAgICAgICBpZiAoZmllbGQudHlwZSA9PSAndGV4dCcpe1xyXG5cclxuICAgICAgICAgIGlmIChkID09ICcnKSByZXR1cm4gYFBsZWFzZSBlbnRlciAke25hbWV9YDtcclxuXHJcbiAgICAgICAgICBpZiAoZmllbGQubWluICYmIGQubGVuZ3RoIDwgZmllbGQubWluKSByZXR1cm4gYE1pbmltdW0gICR7bmFtZX0gbGVuZ3RoIGlzICR7ZmllbGQubWlufWBcclxuXHJcbiAgICAgICAgICBpZiAoZmllbGQubWF4ICYmIGQubGVuZ3RoID4gZmllbGQubWF4KSByZXR1cm4gYE1heGltdW0gJHtuYW1lfSBsZW5ndGggaXMgJHtmaWVsZC5tYXh9YFxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZmllbGQudHlwZSA9PSAnbnVtYmVyJyB8fCBmaWVsZC50eXBlID09ICdtb25leScgfHwgZmllbGQudHlwZSA9PSAnZGF0ZScpe1xyXG5cclxuICAgICAgICAgIGlmIChmaWVsZC5taW4gJiYgZCA8IGZpZWxkLm1pbikgcmV0dXJuIGBNaW5pbXVtICAke25hbWV9IGlzICR7ZmllbGQubWlufWBcclxuXHJcbiAgICAgICAgICBpZiAoZmllbGQubWF4ICYmIGQgPiBmaWVsZC5tYXgpIHJldHVybiBgTWF4aW11bSAke25hbWV9IGlzICR7ZmllbGQubWF4fWBcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGZpZWxkLnR5cGUgPT0gJ3NlbGVjdCcpIHtcclxuXHJcbiAgICAgICAgICBpZiAodHlwZW9mKGQpID09ICdzdHJpbmcnICYmIGQgPT0gJycpIHJldHVybiBgUGxlYXNlIHNlbGVjdCAke25hbWV9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBnZXRJbml0aWFsVmFsdWUoZmllbGQ6IEZpZWxkKSB7XHJcblxyXG4gICAgaWYgKGZpZWxkLmRlZmF1bHRWYWx1ZSl7XHJcblxyXG4gICAgICBpZiAoZmllbGQudHlwZSA9PSAnZGF0ZScgfHwgZmllbGQudHlwZSA9PSAnZGF0ZXRpbWUnICYmIGZpZWxkLmRlZmF1bHRWYWx1ZSA9PSAnbm93JykgcmV0dXJuIHRoaXMubm93RGF0ZSh0cnVlKTtcclxuXHJcbiAgICAgIHJldHVybiBmaWVsZC5kZWZhdWx0VmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpZWxkLnR5cGUgPT0gJ3NlbGVjdCcgJiYgKGZpZWxkLmhpZGRlbiB8fCBmaWVsZC5oaWRlT25DcmVhdGUpKSByZXR1cm4gMDtcclxuXHJcbiAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcclxuICAgICAgY2FzZSAndGV4dCc6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICBjYXNlICdtb25leSc6XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgIHJldHVybiB0aGlzLm5vd0RhdGUodHJ1ZSk7XHJcbiAgICAgIGNhc2UgJ2NoZWNrYm94JzpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Q2xvbmUoeCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVlcENsb25lKHgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXROdW1iZXIodmFsdWU6IHN0cmluZykge1xyXG5cclxuICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09IFwiXCIpIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb25seU51bWJlcnMgPSB2YWx1ZS5yZXBsYWNlKC9bXlxcZC4tXS9nLCAnJyk7XHJcbiAgICByZXR1cm4gb25seU51bWJlcnNcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Rmlyc3REYXlPZk1vbnRoKCkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBlbWFpbElzVmFsaWQoZW1haWwpIHtcclxuICAgIC8vIHJldHVybiAvXFxTK0BcXFMrXFwuXFxTKy8udGVzdChlbWFpbClcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZFVOQ1BhdGgocGF0aDogc3RyaW5nKSB7XHJcbiAgICAvLyByZXR1cm4gL1xcXFxcXFxcKFthLXpBLVowLTlfLiTil48tXSspXFxcXChbYS16QS1aMC05Xy4k4pePLV0rKS4qLy50ZXN0KHBhdGgpXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWREYXRlKGRhdGUpIHtcclxuXHJcbiAgICB2YXIgcGFyc2VkRGF0ZSA9IERhdGUucGFyc2UoZGF0ZSk7XHJcblxyXG5cclxuICAgIGlmIChpc05hTihkYXRlKSAmJiAhaXNOYU4ocGFyc2VkRGF0ZSkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRW1haWxMaXN0KGxpc3Q6IHN0cmluZykge1xyXG5cclxuICAgIGlmIChsaXN0LmluY2x1ZGVzKFwiO1wiKSkge1xyXG5cclxuICAgICAgbGV0IGVtYWlscyA9IGxpc3Quc3BsaXQoXCI7XCIpXHJcblxyXG4gICAgICBmb3IgKHZhciBlbWFpbCBvZiBlbWFpbHMpIHtcclxuICAgICAgICBpZiAodGhpcy5lbWFpbElzVmFsaWQoZW1haWwpID09IGZhbHNlKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG5cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICBpZiAodGhpcy5lbWFpbElzVmFsaWQobGlzdCkgPT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBudWxsRGF0ZSA9IFwiMDEgSmFuIDE5NjlcIlxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoKHZhbHVlICE9IG51bGwpICYmXHJcbiAgICAgICh2YWx1ZSAhPT0gJycpICYmXHJcbiAgICAgICFpc05hTihOdW1iZXIodmFsdWUudG9TdHJpbmcoKSkpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGlmZihzdGFydERhdGUsIGVuZERhdGUgPSBEYXRlKCkpIHtcclxuXHJcbiAgICB2YXIgZXZlbnRTdGFydFRpbWUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG4gICAgdmFyIGV2ZW50RW5kVGltZSA9IG5ldyBEYXRlKGVuZERhdGUpO1xyXG4gICAgdmFyIG1pbGxpc2Vjb25kcyA9IGV2ZW50RW5kVGltZS52YWx1ZU9mKCkgLSBldmVudFN0YXJ0VGltZS52YWx1ZU9mKCk7XHJcblxyXG4gICAgZnVuY3Rpb24gbnVtYmVyRW5kaW5nKG51bWJlcjogbnVtYmVyKSB7XHJcblxyXG4gICAgICBpZiAobnVtYmVyLnRvRml4ZWQoKSA9PSAnMScpIHtcclxuICAgICAgICByZXR1cm4gJydcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gJ3MnO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHZhciBtaW51dGVzID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjApKTtcclxuXHJcbiAgICB2YXIgaG91cnM6IG51bWJlciA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwICogNjApKTtcclxuXHJcbiAgICB2YXIgZGF5cyA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xyXG5cclxuICAgIHZhciB3ZWVrczogbnVtYmVyID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjAgKiA2MCAqIDI0ICogNykpO1xyXG5cclxuICAgIHZhciBtb250aHMgPSAobWlsbGlzZWNvbmRzIC8gKDEwMDAgKiA2MCAqIDYwICogMjQgKiA3ICogNCkpO1xyXG5cclxuICAgIHZhciB5ZWFycyA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NSkpO1xyXG5cclxuXHJcbiAgICBpZiAoeWVhcnMgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIHllYXJzLnRvRml4ZWQoKSArICcgeWVhcicgKyBudW1iZXJFbmRpbmcoeWVhcnMpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAobW9udGhzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiBtb250aHMudG9GaXhlZCgpICsgJyBtb250aCcgKyBudW1iZXJFbmRpbmcobW9udGhzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKHdlZWtzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiB3ZWVrcy50b0ZpeGVkKCkgKyAnIHdlZWsnICsgbnVtYmVyRW5kaW5nKHdlZWtzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKGRheXMgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIGRheXMudG9GaXhlZCgpICsgJyBkYXknICsgbnVtYmVyRW5kaW5nKGRheXMpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoaG91cnMgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIGhvdXJzLnRvRml4ZWQoKSArICcgaG91cicgKyBudW1iZXJFbmRpbmcoaG91cnMpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAobWludXRlcyA+PSAxKSB7XHJcblxyXG4gICAgICByZXR1cm4gbWludXRlcy50b0ZpeGVkKCkgKyAnIG1pbnV0ZScgKyBudW1iZXJFbmRpbmcobWludXRlcyk7XHJcblxyXG4gICAgfSBlbHNlIGlmIChtaWxsaXNlY29uZHMgPj0gKC0xMDAwICogNjApKSB7XHJcblxyXG4gICAgICByZXR1cm4gJ2EgbWludXRlJztcclxuXHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgcmV0dXJuICdOL0EnO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc3RhdGljIG5vd0RhdGUoTm9UaW1lOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHJcbiAgICBpZiAoTm9UaW1lKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldEZvcm1hdGVkRGF0ZShEYXRlKCksIHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Rm9ybWF0ZWREYXRlKERhdGUoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldEZvcm1hdGVkRGF0ZShkYXRlU3RyaW5nOiBzdHJpbmcsIE5vVGltZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcblxyXG4gICAgbGV0IGQ6IERhdGUgPSBuZXcgRGF0ZShkYXRlU3RyaW5nKTtcclxuICAgIGQuc2V0SG91cnMoZC5nZXRIb3VycygpICsgMik7XHJcblxyXG4gICAgaWYgKE5vVGltZSA9PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiBkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJy4nKVswXTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldEZvcm1hdGVkRGF0ZTIoZCA6IERhdGUsIE5vVGltZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcblxyXG5cclxuICAgIGQuc2V0SG91cnMoZC5nZXRIb3VycygpICsgMik7XHJcblxyXG4gICAgaWYgKE5vVGltZSA9PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiBkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJy4nKVswXTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldEJ1c2luZXNzRGF0ZXNDb3VudChzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nKSB7XHJcbiAgICB2YXIgY291bnQgPSAwO1xyXG4gICAgdmFyIF9zdGFydERhdGUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG4gICAgdmFyIF9lbmREYXRlID0gbmV3IERhdGUoZW5kRGF0ZSk7XHJcblxyXG4gICAgdmFyIGN1ckRhdGUgPSBfc3RhcnREYXRlO1xyXG5cclxuICAgIHdoaWxlIChjdXJEYXRlIDwgX2VuZERhdGUpIHtcclxuICAgICAgdmFyIGRheU9mV2VlayA9IGN1ckRhdGUuZ2V0RGF5KCk7XHJcbiAgICAgIGlmICghKGRheU9mV2VlayA9PSA2IHx8IGRheU9mV2VlayA9PSAwKSkgY291bnQrKztcclxuICAgICAgY3VyRGF0ZS5zZXREYXRlKGN1ckRhdGUuZ2V0RGF0ZSgpICsgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvdW50O1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRGV0YWlsc0RpYWxvZ1Byb2Nlc3NvciB7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgcHJvY2Vzc0RldGFpbHNDb25maWcoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZywgcm93OiBhbnkpOiBEZXRhaWxzRGlhbG9nQ29uZmlnIHtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVkRGV0YWlsc0NvbmZpZyA6IERldGFpbHNEaWFsb2dDb25maWcgPSBDb3JlLmdldENsb25lKGRldGFpbHNDb25maWcpO1xyXG4gICAgdXBkYXRlZERldGFpbHNDb25maWcuZGV0YWlscyA9IHJvdztcclxuXHJcbiAgICB1cGRhdGVkRGV0YWlsc0NvbmZpZy5mb3JtQ29uZmlnLm1vZGUgPSB1cGRhdGVkRGV0YWlsc0NvbmZpZy5tb2RlID8/IFwidmlld1wiO1xyXG5cclxuICAgIGlmICh1cGRhdGVkRGV0YWlsc0NvbmZpZy5oZXJvRmllbGQpIHtcclxuICAgICAgdXBkYXRlZERldGFpbHNDb25maWcuaGVyb1ZhbHVlID0gcm93W3VwZGF0ZWREZXRhaWxzQ29uZmlnLmhlcm9GaWVsZF07XHJcblxyXG4gICAgICBmdW5jdGlvbiB1cGRhdGVUYWJsZUNvbmZpZyh0YWJsZUNvbmZpZykge1xyXG4gICAgICAgIHRhYmxlQ29uZmlnLmhlcm9GaWVsZCA9IHVwZGF0ZWREZXRhaWxzQ29uZmlnLmhlcm9GaWVsZDtcclxuICAgICAgICB0YWJsZUNvbmZpZy5oZXJvVmFsdWUgPSB1cGRhdGVkRGV0YWlsc0NvbmZpZy5oZXJvVmFsdWU7XHJcbiAgICAgICAgLy8gdGFibGVDb25maWcuc2V0SGVybyA9IHVwZGF0ZWREZXRhaWxzQ29uZmlnLnNldEhlcm87XHJcbiAgICAgICAgdGFibGVDb25maWcuc2VhcmNoQ29uZmlnID0gbnVsbDtcclxuICAgICAgICB0YWJsZUNvbmZpZy50aWxlQ29uZmlnID0gbnVsbDtcclxuICAgICAgICB0YWJsZUNvbmZpZy5wYXJlbnREYXRhID0gdXBkYXRlZERldGFpbHNDb25maWcuZGV0YWlscztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlnKSB7XHJcbiAgICAgICAgdXBkYXRlVGFibGVDb25maWcodXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWdzKSB7XHJcbiAgICAgICAgdXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWdzLmZvckVhY2godXBkYXRlVGFibGVDb25maWcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtTG9hZFVybCh0YWJsZUNvbmZpZykge1xyXG4gICAgICBpZiAodGFibGVDb25maWcubG9hZEFjdGlvbiAmJiB0YWJsZUNvbmZpZy5sb2FkQ3JpdGVyaWEgJiYgdGFibGVDb25maWcubG9hZElERmllbGQpIHtcclxuICAgICAgICB0YWJsZUNvbmZpZy5sb2FkQWN0aW9uLnVybCA9IGAke3RhYmxlQ29uZmlnLmxvYWRBY3Rpb24udXJsLnNwbGl0KCcvJylbMF19LyR7dGFibGVDb25maWcubG9hZENyaXRlcmlhfS8ke3VwZGF0ZWREZXRhaWxzQ29uZmlnLmRldGFpbHNbdGFibGVDb25maWcubG9hZElERmllbGRdfWA7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJUcmFuc2Zvcm1lZFwiKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk5PVCBUcmFuc2Zvcm1lZFwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZykge1xyXG4gICAgICB0cmFuc2Zvcm1Mb2FkVXJsKHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWdzKSB7XHJcbiAgICAgIHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlncy5mb3JFYWNoKHRyYW5zZm9ybUxvYWRVcmwpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB1cGRhdGVkRGV0YWlsc0NvbmZpZztcclxuICB9XHJcblxyXG5cclxuICBzdGF0aWMgaW5pdGlhbGl6ZUNvbmZpZ3MoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZykge1xyXG4gICAgY29uc3QgdGFibGVDb25maWcgPSBkZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlnO1xyXG4gICAgY29uc3QgdGFibGVDb25maWdzID0gZGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZ3M7XHJcbiAgICBjb25zdCBmb3JtQ29uZmlnID0gZGV0YWlsc0NvbmZpZy5mb3JtQ29uZmlnO1xyXG4gICAgY29uc3QgYnV0dG9ucyA9IGRldGFpbHNDb25maWcuYnV0dG9ucztcclxuICAgIGZvcm1Db25maWcubW9kZSA9IGZvcm1Db25maWcubW9kZSA/PyBcInZpZXdcIjtcclxuICAgIHJldHVybiB7IHRhYmxlQ29uZmlnLCB0YWJsZUNvbmZpZ3MsIGZvcm1Db25maWcsIGJ1dHRvbnMgfTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBzZXRIZXJvVmFsdWUoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZywgZGV0YWlsczogYW55KSB7XHJcblxyXG4gICAgY29uc29sZS5sb2coZGV0YWlsc0NvbmZpZylcclxuXHJcbiAgICBpZiAoKGRldGFpbHNDb25maWcuZm9ybUNvbmZpZy5tb2RlID09IFwiY3JlYXRlXCIgICkgJiYgZGV0YWlsc0NvbmZpZy5oZXJvRmllbGQgJiYgZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWUpIHtcclxuICAgICAgZGV0YWlsc1tkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZF0gPSBkZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmIChkZXRhaWxzQ29uZmlnLmNvbmZpZy5tb2RlICE9IFwiY3JlYXRlXCIgJiYgZGV0YWlsc0NvbmZpZy5oZXJvRmllbGQpIHtcclxuICAgIC8vICAgZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWUgPSBkZXRhaWxzW2RldGFpbHNDb25maWcuaGVyb0ZpZWxkXTtcclxuICAgIC8vIH1cclxuXHJcblxyXG4gICAgY29uc29sZS5sb2coZGV0YWlsc0NvbmZpZylcclxuICB9XHJcblxyXG4gIHN0YXRpYyBoYW5kbGVGb3JtTW9kZShkZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnLCBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnLCkge1xyXG4gICAgbGV0IGRldGFpbHM7XHJcbiAgICBsZXQgYWN0aW9uO1xyXG4gICAgbGV0IGxvYWRCeUFjdGlvbiA9IGZhbHNlO1xyXG5cclxuICAgIGlmIChmb3JtQ29uZmlnLm1vZGUgPT09IFwiY3JlYXRlXCIpIHtcclxuXHJcbiAgICAgIGRldGFpbHMgPSBDb3JlLmdlbmVyYXRlT2JqZWN0KGZvcm1Db25maWcuZmllbGRzKTtcclxuXHJcbiAgICAgIC8vIHRoaXMuc2V0SGVyb1ZhbHVlKGRldGFpbHNDb25maWcsIGRldGFpbHMpO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCByZXNwID0gdGhpcy5sb2FkRGV0YWlsc0RhdGEoZGV0YWlsc0NvbmZpZywgZm9ybUNvbmZpZyk7XHJcbiAgICAgIGRldGFpbHMgPSByZXNwLmRldGFpbHM7XHJcblxyXG4gICAgICBhY3Rpb24gPSByZXNwLmFjdGlvbjtcclxuICAgICAgbG9hZEJ5QWN0aW9uID0gcmVzcC5sb2FkQnlBY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHsgZGV0YWlscywgbG9hZEJ5QWN0aW9uLCBhY3Rpb24gfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGxvYWREZXRhaWxzRGF0YShkZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnLCBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnKSB7XHJcblxyXG4gICAgbGV0IGRldGFpbHM7XHJcbiAgICBsZXQgYWN0aW9uO1xyXG4gICAgbGV0IGxvYWRCeUFjdGlvbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiTG9hZGluZyBEZXRhaWxzIERhdGFcIiApXHJcbiAgICBjb25zb2xlLmxvZyhkZXRhaWxzQ29uZmlnKVxyXG4gICAgY29uc29sZS5sb2coZm9ybUNvbmZpZylcclxuXHJcblxyXG5cclxuICAgIC8vQ2hvb3NlIHNvdXJjZVxyXG4gICAgaWYgKGRldGFpbHNDb25maWcuZGV0YWlsc1NvdXJjZSA9PSBEZXRhaWxzU291cmNlLlJvdykge1xyXG5cclxuICAgICAgY29uc29sZS5sb2coXCJEZXRhaWxzIERhdGEgUm93IGNvbmZpZ1wiKVxyXG4gICAgICBkZXRhaWxzID0gZGV0YWlsc0NvbmZpZy5kZXRhaWxzO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoZGV0YWlsc0NvbmZpZy5kZXRhaWxzU291cmNlID09IERldGFpbHNTb3VyY2UuVXJsKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRGV0YWlscyBEYXRhIFVybCBjb25maWdcIilcclxuICAgICAgYWN0aW9uID0gdGhpcy5sb2FkRGV0YWlsc0Zyb21VcmwoZGV0YWlsc0NvbmZpZywgZm9ybUNvbmZpZyk7XHJcbiAgICAgIGxvYWRCeUFjdGlvbiA9IHRydWU7XHJcblxyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgY29uc29sZS5sb2coXCJEZXRhaWxzIERhdGEgRWxzZVwiKVxyXG4gICAgICBpZiAoZGV0YWlsc0NvbmZpZy5kZXRhaWxzICYmICFkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZCAmJiAhZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWUpIHtcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJ1c2luZyBmb3JtIGRhdGEgZnJvbSBkZXRhaWxzXCIpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGRldGFpbHNDb25maWcpO1xyXG4gICAgICAgIGRldGFpbHMgPSBkZXRhaWxzQ29uZmlnLmRldGFpbHM7XHJcblxyXG4gICAgICB9IGVsc2UgaWYgKGZvcm1Db25maWcubG9hZEFjdGlvbikge1xyXG5cclxuICAgICAgICBhY3Rpb24gPSB0aGlzLmxvYWREZXRhaWxzRnJvbVVybChkZXRhaWxzQ29uZmlnLCBmb3JtQ29uZmlnKTtcclxuICAgICAgICBsb2FkQnlBY3Rpb24gPSB0cnVlO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcImF1dG8gZGF0YSBzb3VyY2UgZmFpbGVkIHRvIHBpY2ssIHRyeWluZyBzb3VyY2UgY29uZmlnXCIpO1xyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgICByZXR1cm4geyBkZXRhaWxzLCBsb2FkQnlBY3Rpb24sIGFjdGlvbiB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgbG9hZERldGFpbHNGcm9tVXJsKGRldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcsIGZvcm1Db25maWc6IEZvcm1Db25maWcpIHtcclxuICAgIGxldCBhY3Rpb247XHJcblxyXG4gICAgaWYgKGZvcm1Db25maWcubG9hZEFjdGlvbikge1xyXG5cclxuICAgICAgaWYgKGRldGFpbHNDb25maWcuaGVyb0ZpZWxkICYmIGRldGFpbHNDb25maWcuZGV0YWlscykge1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcInVzaW5nIGZvcm0gZGF0YSBmcm9tIHVybCArIElEIEZpZWxkIFwiICsgZGV0YWlsc0NvbmZpZy5oZXJvRmllbGQpO1xyXG4gICAgICAgIGFjdGlvbiA9IHsgdXJsOiBgJHtmb3JtQ29uZmlnLmxvYWRBY3Rpb24udXJsfS8ke2RldGFpbHNDb25maWcuZGV0YWlsc1tkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZF19YCB9O1xyXG5cclxuICAgICAgfSBlbHNlIGlmIChkZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZSkge1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcInVzaW5nIGZvcm0gZGF0YSBmcm9tIHVybCArIFNvbGlkIElEXCIpO1xyXG4gICAgICAgIGFjdGlvbiA9IHsgdXJsOiBgJHtmb3JtQ29uZmlnLmxvYWRBY3Rpb24udXJsfS8ke2RldGFpbHNDb25maWcuaGVyb1ZhbHVlfWAgfTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInVybCBzb3VyY2UgZmFpbGVkIDogc2V0dXAgaGVybyBmaWVsZCBvciBoZXJvIHZhbHVlXCIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiTm8gbG9hZCBhY3Rpb24gc2V0XCIpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgcmV0dXJuIGFjdGlvbjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBzZXRGaWxlRmllbGQoZm9ybUNvbmZpZzogRm9ybUNvbmZpZykge1xyXG4gICAgcmV0dXJuIGZvcm1Db25maWcuZmllbGRzLmZpbmQoeCA9PiB4LnR5cGUgPT09ICdmaWxlJyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIHNldHVwQnV0dG9ucyhmb3JtQ29uZmlnOiBGb3JtQ29uZmlnLCBidXR0b25zOiBhbnkpIHtcclxuICAgIGxldCBleHRyYUJ1dHRvbnMsIGNyZWF0ZUJ1dHRvbiwgZWRpdEJ1dHRvbiwgZGVsZXRlQnV0dG9uO1xyXG5cclxuICAgIGlmIChidXR0b25zKSB7XHJcbiAgICAgIGlmIChmb3JtQ29uZmlnLm1vZGUgIT09IFwiY3JlYXRlXCIpIHtcclxuICAgICAgICBleHRyYUJ1dHRvbnMgPSBidXR0b25zLmZpbHRlcih4ID0+IHgubmFtZSAhPT0gXCJjcmVhdGVcIiAmJiB4Lm5hbWUgIT09IFwiZWRpdFwiICYmIHgubmFtZSAhPT0gXCJkZWxldGVcIiAmJiB4Lm5hbWUgIT09IFwidmlld1wiICYmIHguaW5EaWFsb2cpO1xyXG4gICAgICB9XHJcbiAgICAgIGNyZWF0ZUJ1dHRvbiA9IGJ1dHRvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gXCJjcmVhdGVcIik7XHJcbiAgICAgIGVkaXRCdXR0b24gPSBidXR0b25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IFwiZWRpdFwiKTtcclxuICAgICAgZGVsZXRlQnV0dG9uID0gYnV0dG9ucy5maW5kKHggPT4geC5uYW1lID09PSBcImRlbGV0ZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7IGV4dHJhQnV0dG9ucywgY3JlYXRlQnV0dG9uLCBlZGl0QnV0dG9uLCBkZWxldGVCdXR0b24gfTtcclxuICB9XHJcblxyXG5cclxufVxyXG5cclxuXHJcbiJdfQ==
401
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGluQ29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL1RpbkNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixhQUFhLEVBQXFCLE1BQU0sV0FBVyxDQUFDO0FBRWxGLE1BQU0sT0FBTyxJQUFJO0lBR1IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHO1FBQ3pCLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0MsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDMUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUVELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFJTSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDdEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV6QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFB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QUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztZQUN0RCxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDbEQsWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ2xFLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERldGFpbHNEaWFsb2dDb25maWcsIERldGFpbHNTb3VyY2UsIEZpZWxkLCBGb3JtQ29uZmlnIH0gZnJvbSBcIi4vQ2xhc3Nlc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvcmUge1xyXG5cclxuXHJcbiAgcHVibGljIHN0YXRpYyBkZWVwQ2xvbmUob2JqKSB7XHJcbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XHJcbiAgICAgIHJldHVybiBvYmo7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG4gICAgICBjb25zdCBhcnJDb3B5ID0gW107XHJcbiAgICAgIG9iai5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGFyckNvcHlbaW5kZXhdID0gdGhpcy5kZWVwQ2xvbmUoaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gYXJyQ29weTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvYmpDb3B5ID0ge307XHJcbiAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgb2JqQ29weVtrZXldID0gdGhpcy5kZWVwQ2xvbmUob2JqW2tleV0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gb2JqQ29weTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjYW1lbFRvV29yZHModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICBsZXQgdiA9IHZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdmFsdWUuc3Vic3RyaW5nKDEpXHJcbiAgICByZXR1cm4gdi5yZXBsYWNlKC8oW0EtWl0rKSooW0EtWl1bYS16XSkvZywgXCIkMSAkMlwiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2VuZXJhdGVPYmplY3QoZmllbGRzOiBGaWVsZFtdKSB7XHJcblxyXG4gICAgbGV0IGRhdGEgPSB7fTtcclxuICAgIGZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuXHJcbiAgICAgIGlmIChmaWVsZC50eXBlICE9ICdzZWN0aW9uJyAmJiBmaWVsZC50eXBlICE9ICdibGFuaycgKXtcclxuICAgICAgICBkYXRhW2ZpZWxkLm5hbWVdID0gdGhpcy5nZXRJbml0aWFsVmFsdWUoZmllbGQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gY29uc29sZS5sb2coZGF0YSlcclxuXHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgcmVzZXRPYmplY3QoZmllbGRzOiBGaWVsZFtdLCBkYXRhKSB7XHJcblxyXG4gICAgZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICBpZiAoZmllbGQudHlwZSAhPSAnc2VjdGlvbicgJiYgZmllbGQudHlwZSAhPSAnYmxhbmsnKSB7XHJcbiAgICAgICAgZGF0YVtmaWVsZC5uYW1lXSA9IHRoaXMuZ2V0SW5pdGlhbFZhbHVlKGZpZWxkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyB0ZXN0VmlzaWJsZShjb25maWcgOiBGb3JtQ29uZmlnLCBkYXRhLCBmOiBGaWVsZCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGlmIChmLmhpZGRlbikgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChjb25maWcubW9kZSA9PSAnY3JlYXRlJyAmJiBmLmhpZGVPbkNyZWF0ZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmIChjb25maWcubW9kZSAhPSAnY3JlYXRlJyAmJiBmLmhpZGVPbkV4aXN0cykge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGYuaGlkZGVuQ29uZGl0aW9uKSB7XHJcbiAgICAgIHJldHVybiAhZi5oaWRkZW5Db25kaXRpb24oZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHZhbGlkYXRlT2JqZWN0KGZpZWxkczogRmllbGRbXSwgZGF0YSk6IHN0cmluZyB7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJWYWxpZGF0aW9uc1wiKVxyXG5cclxuICAgIGZvciAobGV0IGZpZWxkIG9mIGZpZWxkcykge1xyXG5cclxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT0gJ2ZpbGUnIHx8IGZpZWxkLnR5cGUgPT0gJ2ZpbGUtdmlldycgfHwgZmllbGQudHlwZSA9PSAnYmxhbmsnIHx8IGZpZWxkLnR5cGUgPT0gJ3NlY3Rpb24nICkgY29udGludWVcclxuXHJcblxyXG5cclxuICAgICAgbGV0IG5hbWUgPSBmaWVsZC5hbGlhcyA/PyB0aGlzLmNhbWVsVG9Xb3JkcyhmaWVsZC5uYW1lKTtcclxuICAgICAgbGV0IGQgPSBkYXRhW2ZpZWxkLm5hbWVdO1xyXG5cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKG5hbWUgKyAnICcgKyBkKVxyXG5cclxuICAgICAgaWYgKGZpZWxkLnJlcXVpcmVkKXtcclxuXHJcbiAgICAgICAgaWYgKGQgPT0gdW5kZWZpbmVkIHx8IGQgPT0gbnVsbCkgcmV0dXJuIGAke25hbWV9IGlzIHJlcXVpcmVkYDtcclxuXHJcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT0gJ3RleHQnKXtcclxuXHJcbiAgICAgICAgICBpZiAoZCA9PSAnJykgcmV0dXJuIGBQbGVhc2UgZW50ZXIgJHtuYW1lfWA7XHJcblxyXG4gICAgICAgICAgaWYgKGZpZWxkLm1pbiAmJiBkLmxlbmd0aCA8IGZpZWxkLm1pbikgcmV0dXJuIGBNaW5pbXVtICAke25hbWV9IGxlbmd0aCBpcyAke2ZpZWxkLm1pbn1gXHJcblxyXG4gICAgICAgICAgaWYgKGZpZWxkLm1heCAmJiBkLmxlbmd0aCA+IGZpZWxkLm1heCkgcmV0dXJuIGBNYXhpbXVtICR7bmFtZX0gbGVuZ3RoIGlzICR7ZmllbGQubWF4fWBcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGZpZWxkLnR5cGUgPT0gJ251bWJlcicgfHwgZmllbGQudHlwZSA9PSAnbW9uZXknIHx8IGZpZWxkLnR5cGUgPT0gJ2RhdGUnKXtcclxuXHJcbiAgICAgICAgICBpZiAoZmllbGQubWluICYmIGQgPCBmaWVsZC5taW4pIHJldHVybiBgTWluaW11bSAgJHtuYW1lfSBpcyAke2ZpZWxkLm1pbn1gXHJcblxyXG4gICAgICAgICAgaWYgKGZpZWxkLm1heCAmJiBkID4gZmllbGQubWF4KSByZXR1cm4gYE1heGltdW0gJHtuYW1lfSBpcyAke2ZpZWxkLm1heH1gXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChmaWVsZC50eXBlID09ICdzZWxlY3QnKSB7XHJcblxyXG4gICAgICAgICAgaWYgKHR5cGVvZihkKSA9PSAnc3RyaW5nJyAmJiBkID09ICcnKSByZXR1cm4gYFBsZWFzZSBzZWxlY3QgJHtuYW1lfWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0SW5pdGlhbFZhbHVlKGZpZWxkOiBGaWVsZCkge1xyXG5cclxuICAgIGlmIChmaWVsZC5kZWZhdWx0VmFsdWUpe1xyXG5cclxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT0gJ2RhdGUnIHx8IGZpZWxkLnR5cGUgPT0gJ2RhdGV0aW1lJyAmJiBmaWVsZC5kZWZhdWx0VmFsdWUgPT0gJ25vdycpIHJldHVybiB0aGlzLm5vd0RhdGUodHJ1ZSk7XHJcblxyXG4gICAgICByZXR1cm4gZmllbGQuZGVmYXVsdFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWVsZC50eXBlID09ICdzZWxlY3QnICYmIChmaWVsZC5oaWRkZW4gfHwgZmllbGQuaGlkZU9uQ3JlYXRlKSkgcmV0dXJuIDA7XHJcblxyXG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ3RleHQnOlxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgY2FzZSAnbW9uZXknOlxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5ub3dEYXRlKHRydWUpO1xyXG4gICAgICBjYXNlICdjaGVja2JveCc6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBjYXNlICdzZWxlY3QnOlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldENsb25lKHgpIHtcclxuICAgIHJldHVybiB0aGlzLmRlZXBDbG9uZSh4KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TnVtYmVyKHZhbHVlOiBzdHJpbmcpIHtcclxuXHJcbiAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PSBcIlwiKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9ubHlOdW1iZXJzID0gdmFsdWUucmVwbGFjZSgvW15cXGQuLV0vZywgJycpO1xyXG4gICAgcmV0dXJuIG9ubHlOdW1iZXJzXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldEZpcnN0RGF5T2ZNb250aCgpIHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCAxKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZW1haWxJc1ZhbGlkKGVtYWlsKSB7XHJcbiAgICAvLyByZXR1cm4gL1xcUytAXFxTK1xcLlxcUysvLnRlc3QoZW1haWwpXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRVTkNQYXRoKHBhdGg6IHN0cmluZykge1xyXG4gICAgLy8gcmV0dXJuIC9cXFxcXFxcXChbYS16QS1aMC05Xy4k4pePLV0rKVxcXFwoW2EtekEtWjAtOV8uJOKXjy1dKykuKi8udGVzdChwYXRoKVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRGF0ZShkYXRlKSB7XHJcblxyXG4gICAgdmFyIHBhcnNlZERhdGUgPSBEYXRlLnBhcnNlKGRhdGUpO1xyXG5cclxuXHJcbiAgICBpZiAoaXNOYU4oZGF0ZSkgJiYgIWlzTmFOKHBhcnNlZERhdGUpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZEVtYWlsTGlzdChsaXN0OiBzdHJpbmcpIHtcclxuXHJcbiAgICBpZiAobGlzdC5pbmNsdWRlcyhcIjtcIikpIHtcclxuXHJcbiAgICAgIGxldCBlbWFpbHMgPSBsaXN0LnNwbGl0KFwiO1wiKVxyXG5cclxuICAgICAgZm9yICh2YXIgZW1haWwgb2YgZW1haWxzKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZW1haWxJc1ZhbGlkKGVtYWlsKSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgaWYgKHRoaXMuZW1haWxJc1ZhbGlkKGxpc3QpID09IGZhbHNlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgbnVsbERhdGUgPSBcIjAxIEphbiAxOTY5XCJcclxuXHJcbiAgcHVibGljIHN0YXRpYyBpc051bWJlcih2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKCh2YWx1ZSAhPSBudWxsKSAmJlxyXG4gICAgICAodmFsdWUgIT09ICcnKSAmJlxyXG4gICAgICAhaXNOYU4oTnVtYmVyKHZhbHVlLnRvU3RyaW5nKCkpKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldERpZmYoc3RhcnREYXRlLCBlbmREYXRlID0gRGF0ZSgpKSB7XHJcblxyXG4gICAgdmFyIGV2ZW50U3RhcnRUaW1lID0gbmV3IERhdGUoc3RhcnREYXRlKTtcclxuICAgIHZhciBldmVudEVuZFRpbWUgPSBuZXcgRGF0ZShlbmREYXRlKTtcclxuICAgIHZhciBtaWxsaXNlY29uZHMgPSBldmVudEVuZFRpbWUudmFsdWVPZigpIC0gZXZlbnRTdGFydFRpbWUudmFsdWVPZigpO1xyXG5cclxuICAgIGZ1bmN0aW9uIG51bWJlckVuZGluZyhudW1iZXI6IG51bWJlcikge1xyXG5cclxuICAgICAgaWYgKG51bWJlci50b0ZpeGVkKCkgPT0gJzEnKSB7XHJcbiAgICAgICAgcmV0dXJuICcnXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICdzJztcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICB2YXIgbWludXRlcyA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwKSk7XHJcblxyXG4gICAgdmFyIGhvdXJzOiBudW1iZXIgPSAobWlsbGlzZWNvbmRzIC8gKDEwMDAgKiA2MCAqIDYwKSk7XHJcblxyXG4gICAgdmFyIGRheXMgPSAobWlsbGlzZWNvbmRzIC8gKDEwMDAgKiA2MCAqIDYwICogMjQpKTtcclxuXHJcbiAgICB2YXIgd2Vla3M6IG51bWJlciA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwICogNjAgKiAyNCAqIDcpKTtcclxuXHJcbiAgICB2YXIgbW9udGhzID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjAgKiA2MCAqIDI0ICogNyAqIDQpKTtcclxuXHJcbiAgICB2YXIgeWVhcnMgPSAobWlsbGlzZWNvbmRzIC8gKDEwMDAgKiA2MCAqIDYwICogMjQgKiAzNjUpKTtcclxuXHJcblxyXG4gICAgaWYgKHllYXJzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiB5ZWFycy50b0ZpeGVkKCkgKyAnIHllYXInICsgbnVtYmVyRW5kaW5nKHllYXJzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKG1vbnRocyA+PSAxKSB7XHJcblxyXG4gICAgICByZXR1cm4gbW9udGhzLnRvRml4ZWQoKSArICcgbW9udGgnICsgbnVtYmVyRW5kaW5nKG1vbnRocyk7XHJcblxyXG4gICAgfSBlbHNlIGlmICh3ZWVrcyA+PSAxKSB7XHJcblxyXG4gICAgICByZXR1cm4gd2Vla3MudG9GaXhlZCgpICsgJyB3ZWVrJyArIG51bWJlckVuZGluZyh3ZWVrcyk7XHJcblxyXG4gICAgfSBlbHNlIGlmIChkYXlzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiBkYXlzLnRvRml4ZWQoKSArICcgZGF5JyArIG51bWJlckVuZGluZyhkYXlzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKGhvdXJzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiBob3Vycy50b0ZpeGVkKCkgKyAnIGhvdXInICsgbnVtYmVyRW5kaW5nKGhvdXJzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIG1pbnV0ZXMudG9GaXhlZCgpICsgJyBtaW51dGUnICsgbnVtYmVyRW5kaW5nKG1pbnV0ZXMpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAobWlsbGlzZWNvbmRzID49ICgtMTAwMCAqIDYwKSkge1xyXG5cclxuICAgICAgcmV0dXJuICdhIG1pbnV0ZSc7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIHJldHVybiAnTi9BJztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIHN0YXRpYyBub3dEYXRlKE5vVGltZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcblxyXG4gICAgaWYgKE5vVGltZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRGb3JtYXRlZERhdGUoRGF0ZSgpLCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldEZvcm1hdGVkRGF0ZShEYXRlKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRGb3JtYXRlZERhdGUoZGF0ZVN0cmluZzogc3RyaW5nLCBOb1RpbWU6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG5cclxuICAgIGxldCBkOiBEYXRlID0gbmV3IERhdGUoZGF0ZVN0cmluZyk7XHJcbiAgICBkLnNldEhvdXJzKGQuZ2V0SG91cnMoKSArIDIpO1xyXG5cclxuICAgIGlmIChOb1RpbWUgPT0gdHJ1ZSkge1xyXG4gICAgICByZXR1cm4gZC50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZC50b0lTT1N0cmluZygpLnNwbGl0KCcuJylbMF07XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRGb3JtYXRlZERhdGUyKGQgOiBEYXRlLCBOb1RpbWU6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG5cclxuXHJcbiAgICBkLnNldEhvdXJzKGQuZ2V0SG91cnMoKSArIDIpO1xyXG5cclxuICAgIGlmIChOb1RpbWUgPT0gdHJ1ZSkge1xyXG4gICAgICByZXR1cm4gZC50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZC50b0lTT1N0cmluZygpLnNwbGl0KCcuJylbMF07XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRCdXNpbmVzc0RhdGVzQ291bnQoc3RhcnREYXRlOiBzdHJpbmcsIGVuZERhdGU6IHN0cmluZykge1xyXG4gICAgdmFyIGNvdW50ID0gMDtcclxuICAgIHZhciBfc3RhcnREYXRlID0gbmV3IERhdGUoc3RhcnREYXRlKTtcclxuICAgIHZhciBfZW5kRGF0ZSA9IG5ldyBEYXRlKGVuZERhdGUpO1xyXG5cclxuICAgIHZhciBjdXJEYXRlID0gX3N0YXJ0RGF0ZTtcclxuXHJcbiAgICB3aGlsZSAoY3VyRGF0ZSA8IF9lbmREYXRlKSB7XHJcbiAgICAgIHZhciBkYXlPZldlZWsgPSBjdXJEYXRlLmdldERheSgpO1xyXG4gICAgICBpZiAoIShkYXlPZldlZWsgPT0gNiB8fCBkYXlPZldlZWsgPT0gMCkpIGNvdW50Kys7XHJcbiAgICAgIGN1ckRhdGUuc2V0RGF0ZShjdXJEYXRlLmdldERhdGUoKSArIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb3VudDtcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIERldGFpbHNEaWFsb2dQcm9jZXNzb3Ige1xyXG5cclxuICBwdWJsaWMgc3RhdGljIHByb2Nlc3NEZXRhaWxzQ29uZmlnKGRldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcsIHJvdzogYW55KTogRGV0YWlsc0RpYWxvZ0NvbmZpZyB7XHJcblxyXG4gICAgY29uc3QgdXBkYXRlZERldGFpbHNDb25maWcgOiBEZXRhaWxzRGlhbG9nQ29uZmlnID0gQ29yZS5nZXRDbG9uZShkZXRhaWxzQ29uZmlnKTtcclxuICAgIHVwZGF0ZWREZXRhaWxzQ29uZmlnLmRldGFpbHMgPSByb3c7XHJcblxyXG4gICAgdXBkYXRlZERldGFpbHNDb25maWcuZm9ybUNvbmZpZy5tb2RlID0gdXBkYXRlZERldGFpbHNDb25maWcubW9kZSA/PyBcInZpZXdcIjtcclxuXHJcbiAgICBpZiAodXBkYXRlZERldGFpbHNDb25maWcuaGVyb0ZpZWxkICYmIHJvdyApIHtcclxuXHJcbiAgICAgIHVwZGF0ZWREZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZSA9IHJvd1t1cGRhdGVkRGV0YWlsc0NvbmZpZy5oZXJvRmllbGRdO1xyXG5cclxuICAgICAgZnVuY3Rpb24gdXBkYXRlVGFibGVDb25maWcodGFibGVDb25maWcpIHtcclxuICAgICAgICB0YWJsZUNvbmZpZy5oZXJvRmllbGQgPSB1cGRhdGVkRGV0YWlsc0NvbmZpZy5oZXJvRmllbGQ7XHJcbiAgICAgICAgdGFibGVDb25maWcuaGVyb1ZhbHVlID0gdXBkYXRlZERldGFpbHNDb25maWcuaGVyb1ZhbHVlO1xyXG4gICAgICAgIC8vIHRhYmxlQ29uZmlnLnNldEhlcm8gPSB1cGRhdGVkRGV0YWlsc0NvbmZpZy5zZXRIZXJvO1xyXG4gICAgICAgIHRhYmxlQ29uZmlnLnNlYXJjaENvbmZpZyA9IG51bGw7XHJcbiAgICAgICAgdGFibGVDb25maWcudGlsZUNvbmZpZyA9IG51bGw7XHJcbiAgICAgICAgdGFibGVDb25maWcucGFyZW50RGF0YSA9IHVwZGF0ZWREZXRhaWxzQ29uZmlnLmRldGFpbHM7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZykge1xyXG4gICAgICAgIHVwZGF0ZVRhYmxlQ29uZmlnKHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlncykge1xyXG4gICAgICAgIHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlncy5mb3JFYWNoKHVwZGF0ZVRhYmxlQ29uZmlnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybUxvYWRVcmwodGFibGVDb25maWcpIHtcclxuICAgICAgaWYgKHRhYmxlQ29uZmlnLmxvYWRBY3Rpb24gJiYgdGFibGVDb25maWcubG9hZENyaXRlcmlhICYmIHRhYmxlQ29uZmlnLmxvYWRJREZpZWxkKSB7XHJcbiAgICAgICAgdGFibGVDb25maWcubG9hZEFjdGlvbi51cmwgPSBgJHt0YWJsZUNvbmZpZy5sb2FkQWN0aW9uLnVybC5zcGxpdCgnLycpWzBdfS8ke3RhYmxlQ29uZmlnLmxvYWRDcml0ZXJpYX0vJHt1cGRhdGVkRGV0YWlsc0NvbmZpZy5kZXRhaWxzW3RhYmxlQ29uZmlnLmxvYWRJREZpZWxkXX1gO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiVHJhbnNmb3JtZWRcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJOT1QgVHJhbnNmb3JtZWRcIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWcpIHtcclxuICAgICAgdHJhbnNmb3JtTG9hZFVybCh1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlncykge1xyXG4gICAgICB1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZ3MuZm9yRWFjaCh0cmFuc2Zvcm1Mb2FkVXJsKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdXBkYXRlZERldGFpbHNDb25maWc7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIGluaXRpYWxpemVDb25maWdzKGRldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcpIHtcclxuICAgIGNvbnN0IHRhYmxlQ29uZmlnID0gZGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZztcclxuICAgIGNvbnN0IHRhYmxlQ29uZmlncyA9IGRldGFpbHNDb25maWcudGFibGVDb25maWdzO1xyXG4gICAgY29uc3QgZm9ybUNvbmZpZyA9IGRldGFpbHNDb25maWcuZm9ybUNvbmZpZztcclxuICAgIGNvbnN0IGJ1dHRvbnMgPSBkZXRhaWxzQ29uZmlnLmJ1dHRvbnM7XHJcbiAgICBmb3JtQ29uZmlnLm1vZGUgPSBmb3JtQ29uZmlnLm1vZGUgPz8gXCJ2aWV3XCI7XHJcbiAgICByZXR1cm4geyB0YWJsZUNvbmZpZywgdGFibGVDb25maWdzLCBmb3JtQ29uZmlnLCBidXR0b25zIH07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgc2V0SGVyb1ZhbHVlKGRldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcsIGRldGFpbHM6IGFueSkge1xyXG5cclxuICAgIGNvbnNvbGUubG9nKGRldGFpbHNDb25maWcpXHJcblxyXG4gICAgaWYgKChkZXRhaWxzQ29uZmlnLmZvcm1Db25maWcubW9kZSA9PSBcImNyZWF0ZVwiICApICYmIGRldGFpbHNDb25maWcuaGVyb0ZpZWxkICYmIGRldGFpbHNDb25maWcuaGVyb1ZhbHVlKSB7XHJcbiAgICAgIGRldGFpbHNbZGV0YWlsc0NvbmZpZy5oZXJvRmllbGRdID0gZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiAoZGV0YWlsc0NvbmZpZy5jb25maWcubW9kZSAhPSBcImNyZWF0ZVwiICYmIGRldGFpbHNDb25maWcuaGVyb0ZpZWxkKSB7XHJcbiAgICAvLyAgIGRldGFpbHNDb25maWcuaGVyb1ZhbHVlID0gZGV0YWlsc1tkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZF07XHJcbiAgICAvLyB9XHJcblxyXG5cclxuICAgIGNvbnNvbGUubG9nKGRldGFpbHNDb25maWcpXHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaGFuZGxlRm9ybU1vZGUoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZywgZm9ybUNvbmZpZzogRm9ybUNvbmZpZywpIHtcclxuICAgIGxldCBkZXRhaWxzO1xyXG4gICAgbGV0IGFjdGlvbjtcclxuICAgIGxldCBsb2FkQnlBY3Rpb24gPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoZm9ybUNvbmZpZy5tb2RlID09PSBcImNyZWF0ZVwiKSB7XHJcblxyXG4gICAgICBkZXRhaWxzID0gQ29yZS5nZW5lcmF0ZU9iamVjdChmb3JtQ29uZmlnLmZpZWxkcyk7XHJcblxyXG4gICAgICAvLyB0aGlzLnNldEhlcm9WYWx1ZShkZXRhaWxzQ29uZmlnLCBkZXRhaWxzKTtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgcmVzcCA9IHRoaXMubG9hZERldGFpbHNEYXRhKGRldGFpbHNDb25maWcsIGZvcm1Db25maWcpO1xyXG4gICAgICBkZXRhaWxzID0gcmVzcC5kZXRhaWxzO1xyXG5cclxuICAgICAgYWN0aW9uID0gcmVzcC5hY3Rpb247XHJcbiAgICAgIGxvYWRCeUFjdGlvbiA9IHJlc3AubG9hZEJ5QWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7IGRldGFpbHMsIGxvYWRCeUFjdGlvbiwgYWN0aW9uIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBsb2FkRGV0YWlsc0RhdGEoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZywgZm9ybUNvbmZpZzogRm9ybUNvbmZpZykge1xyXG5cclxuICAgIGxldCBkZXRhaWxzO1xyXG4gICAgbGV0IGFjdGlvbjtcclxuICAgIGxldCBsb2FkQnlBY3Rpb24gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIkxvYWRpbmcgRGV0YWlscyBEYXRhXCIgKVxyXG4gICAgY29uc29sZS5sb2coZGV0YWlsc0NvbmZpZylcclxuICAgIGNvbnNvbGUubG9nKGZvcm1Db25maWcpXHJcblxyXG5cclxuXHJcbiAgICAvL0Nob29zZSBzb3VyY2VcclxuICAgIGlmIChkZXRhaWxzQ29uZmlnLmRldGFpbHNTb3VyY2UgPT0gRGV0YWlsc1NvdXJjZS5Sb3cpIHtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRGV0YWlscyBEYXRhIFJvdyBjb25maWdcIilcclxuICAgICAgZGV0YWlscyA9IGRldGFpbHNDb25maWcuZGV0YWlscztcclxuXHJcbiAgICB9IGVsc2UgaWYgKGRldGFpbHNDb25maWcuZGV0YWlsc1NvdXJjZSA9PSBEZXRhaWxzU291cmNlLlVybCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkRldGFpbHMgRGF0YSBVcmwgY29uZmlnXCIpXHJcbiAgICAgIGFjdGlvbiA9IHRoaXMubG9hZERldGFpbHNGcm9tVXJsKGRldGFpbHNDb25maWcsIGZvcm1Db25maWcpO1xyXG4gICAgICBsb2FkQnlBY3Rpb24gPSB0cnVlO1xyXG5cclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRGV0YWlscyBEYXRhIEVsc2VcIilcclxuICAgICAgaWYgKGRldGFpbHNDb25maWcuZGV0YWlscyAmJiAhZGV0YWlsc0NvbmZpZy5oZXJvRmllbGQgJiYgIWRldGFpbHNDb25maWcuaGVyb1ZhbHVlKSB7XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwidXNpbmcgZm9ybSBkYXRhIGZyb20gZGV0YWlsc1wiKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhkZXRhaWxzQ29uZmlnKTtcclxuICAgICAgICBkZXRhaWxzID0gZGV0YWlsc0NvbmZpZy5kZXRhaWxzO1xyXG5cclxuICAgICAgfSBlbHNlIGlmIChmb3JtQ29uZmlnLmxvYWRBY3Rpb24pIHtcclxuXHJcbiAgICAgICAgYWN0aW9uID0gdGhpcy5sb2FkRGV0YWlsc0Zyb21VcmwoZGV0YWlsc0NvbmZpZywgZm9ybUNvbmZpZyk7XHJcbiAgICAgICAgbG9hZEJ5QWN0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJhdXRvIGRhdGEgc291cmNlIGZhaWxlZCB0byBwaWNrLCB0cnlpbmcgc291cmNlIGNvbmZpZ1wiKTtcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgcmV0dXJuIHsgZGV0YWlscywgbG9hZEJ5QWN0aW9uLCBhY3Rpb24gfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGxvYWREZXRhaWxzRnJvbVVybChkZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnLCBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnKSB7XHJcbiAgICBsZXQgYWN0aW9uO1xyXG5cclxuICAgIGlmIChmb3JtQ29uZmlnLmxvYWRBY3Rpb24pIHtcclxuXHJcbiAgICAgIGlmIChkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZCAmJiBkZXRhaWxzQ29uZmlnLmRldGFpbHMpIHtcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJ1c2luZyBmb3JtIGRhdGEgZnJvbSB1cmwgKyBJRCBGaWVsZCBcIiArIGRldGFpbHNDb25maWcuaGVyb0ZpZWxkKTtcclxuICAgICAgICBhY3Rpb24gPSB7IHVybDogYCR7Zm9ybUNvbmZpZy5sb2FkQWN0aW9uLnVybH0vJHtkZXRhaWxzQ29uZmlnLmRldGFpbHNbZGV0YWlsc0NvbmZpZy5oZXJvRmllbGRdfWAgfTtcclxuXHJcbiAgICAgIH0gZWxzZSBpZiAoZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWUpIHtcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJ1c2luZyBmb3JtIGRhdGEgZnJvbSB1cmwgKyBTb2xpZCBJRFwiKTtcclxuICAgICAgICBhY3Rpb24gPSB7IHVybDogYCR7Zm9ybUNvbmZpZy5sb2FkQWN0aW9uLnVybH0vJHtkZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZX1gIH07XHJcblxyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJ1cmwgc291cmNlIGZhaWxlZCA6IHNldHVwIGhlcm8gZmllbGQgb3IgaGVybyB2YWx1ZVwiKTtcclxuICAgICAgfVxyXG5cclxuICAgIH1lbHNle1xyXG4gICAgICBjb25zb2xlLmxvZyhcIk5vIGxvYWQgYWN0aW9uIHNldFwiKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHJldHVybiBhY3Rpb247XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgc2V0RmlsZUZpZWxkKGZvcm1Db25maWc6IEZvcm1Db25maWcpIHtcclxuICAgIHJldHVybiBmb3JtQ29uZmlnLmZpZWxkcy5maW5kKHggPT4geC50eXBlID09PSAnZmlsZScpO1xyXG4gIH1cclxuXHJcblxyXG4gIHN0YXRpYyBzZXR1cEJ1dHRvbnMoZm9ybUNvbmZpZzogRm9ybUNvbmZpZywgYnV0dG9uczogYW55KSB7XHJcbiAgICBsZXQgZXh0cmFCdXR0b25zLCBjcmVhdGVCdXR0b24sIGVkaXRCdXR0b24sIGRlbGV0ZUJ1dHRvbjtcclxuXHJcbiAgICBpZiAoYnV0dG9ucykge1xyXG4gICAgICBpZiAoZm9ybUNvbmZpZy5tb2RlICE9PSBcImNyZWF0ZVwiKSB7XHJcbiAgICAgICAgZXh0cmFCdXR0b25zID0gYnV0dG9ucy5maWx0ZXIoeCA9PiB4Lm5hbWUgIT09IFwiY3JlYXRlXCIgJiYgeC5uYW1lICE9PSBcImVkaXRcIiAmJiB4Lm5hbWUgIT09IFwiZGVsZXRlXCIgJiYgeC5uYW1lICE9PSBcInZpZXdcIiAmJiB4LmluRGlhbG9nKTtcclxuICAgICAgfVxyXG4gICAgICBjcmVhdGVCdXR0b24gPSBidXR0b25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IFwiY3JlYXRlXCIpO1xyXG4gICAgICBlZGl0QnV0dG9uID0gYnV0dG9ucy5maW5kKHggPT4geC5uYW1lID09PSBcImVkaXRcIik7XHJcbiAgICAgIGRlbGV0ZUJ1dHRvbiA9IGJ1dHRvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gXCJkZWxldGVcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4geyBleHRyYUJ1dHRvbnMsIGNyZWF0ZUJ1dHRvbiwgZWRpdEJ1dHRvbiwgZGVsZXRlQnV0dG9uIH07XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuXHJcblxyXG4iXX0=
@@ -44,7 +44,7 @@ export class accountDialog {
44
44
  }
45
45
  }
46
46
  accountDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: accountDialog, deps: [{ token: i1.LoaderService }, { token: i2.MessageService }, { token: i3.DataServiceLib }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
47
- accountDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: accountDialog, selector: "app-quanityDiag", ngImport: i0, template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n<div class=\"tin-col\" style=\"font-size:14px\">\r\n\r\n <spa-text display=\"Name\" [(value)]=\"account.name\" ></spa-text>\r\n <spa-text display=\"Description\" [(value)]=\"account.description\" ></spa-text>\r\n <spa-select display=\"Currency\" [(value)]=\"account.currency\" [options]=\"currencies\" optionDisplay=\"name\" optionValue=\"value\"></spa-select>\r\n\r\n</div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n<button mat-stroked-button color=\"primary\" [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"], dependencies: [{ kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex"], outputs: ["valueChange", "leave", "enterPress"] }, { kind: "component", type: i7.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable"], outputs: ["valueChange"] }, { kind: "pipe", type: i8.TitleCasePipe, name: "titlecase" }] });
47
+ accountDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: accountDialog, selector: "app-quanityDiag", ngImport: i0, template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n<div class=\"tin-col\" style=\"font-size:14px\">\r\n\r\n <spa-text display=\"Name\" [(value)]=\"account.name\" ></spa-text>\r\n <spa-text display=\"Description\" [(value)]=\"account.description\" ></spa-text>\r\n <spa-select display=\"Currency\" [(value)]=\"account.currency\" [options]=\"currencies\" optionDisplay=\"name\" optionValue=\"value\"></spa-select>\r\n\r\n</div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n<button mat-stroked-button color=\"primary\" [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"], dependencies: [{ kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "component", type: i7.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable", "peekConfig", "infoMessage"], outputs: ["valueChange", "infoClick"] }, { kind: "pipe", type: i8.TitleCasePipe, name: "titlecase" }] });
48
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: accountDialog, decorators: [{
49
49
  type: Component,
50
50
  args: [{ selector: 'app-quanityDiag', template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n<div class=\"tin-col\" style=\"font-size:14px\">\r\n\r\n <spa-text display=\"Name\" [(value)]=\"account.name\" ></spa-text>\r\n <spa-text display=\"Description\" [(value)]=\"account.description\" ></spa-text>\r\n <spa-select display=\"Currency\" [(value)]=\"account.currency\" [options]=\"currencies\" optionDisplay=\"name\" optionValue=\"value\"></spa-select>\r\n\r\n</div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n<button mat-stroked-button color=\"primary\" [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"] }]
@@ -84,7 +84,7 @@ export class ChangePasswordComponent {
84
84
  }
85
85
  }
86
86
  ChangePasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ChangePasswordComponent, deps: [{ token: i1.Router }, { token: i2.Location }, { token: i3.HttpService }, { token: i4.MessageService }, { token: i5.DataServiceLib }, { token: i6.AuthService }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
87
- ChangePasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ChangePasswordComponent, selector: "spa-change-password", ngImport: i0, template: "<h4>Change Password</h4>\r\n<hr>\r\n\r\n\r\n<div class=\"container tin-grid\" style=\"font-size:14px;\">\r\n\r\n <div class=\"fill\">\r\n\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"changePassword.userName\" [readonly]=\"true\"></spa-text>\r\n <spa-text id=\"txtPassword\" display=\"Current Password\" [(value)]=\"changePassword.currentPassword\" type=\"password\"></spa-text>\r\n <spa-text id=\"txtNewPassword\" display=\"New Password\" [(value)]=\"changePassword.newPassword\" type=\"password\"></spa-text>\r\n <spa-text id=\"txtConfirmPassword\" display=\"Confirm Password\" [(value)]=\"changePassword.confirmPassword\" type=\"password\"></spa-text>\r\n <button id=\"btnChange\" mat-raised-button color=\"primary\" (click)=\"change()\" cdkFocusInitial>Change</button>\r\n\r\n </div>\r\n\r\n <div class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\r\n <b>*Please consider these requirements for your new password.</b> <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! \u2026)<br>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n<!-- <div class=\"container\">\r\n\r\n <div class=\"d-flex justify-content-center row align-items-center\" >\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"tin-input \" style=\"font-size:14px;\">\r\n\r\n <div class=\"col\" *ngIf=\"changePassword.userName!=''\">\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"changePassword.userName\" width=\"300px\" [readonly]=\"true\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\" *ngIf=\"!myRole[dataService.capUsers.name]\">\r\n <spa-text id=\"txtPassword\" display=\"Current Password\" [(value)]=\"changePassword.currentPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtNewPassword\" display=\"New Password\" [(value)]=\"changePassword.newPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtConfirmPassword\" display=\"Confirm Password\" [(value)]=\"changePassword.confirmPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col mt-3\">\r\n <button id=\"btnChange\" mat-raised-button color=\"primary\" (click)=\"change()\" cdkFocusInitial>Change</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\r\n <b>*Please consider these requirements for your new password.</b> <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! \u2026)<br>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n</div> -->\r\n\r\n", styles: [""], dependencies: [{ kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex"], outputs: ["valueChange", "leave", "enterPress"] }] });
87
+ ChangePasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ChangePasswordComponent, selector: "spa-change-password", ngImport: i0, template: "<h4>Change Password</h4>\r\n<hr>\r\n\r\n\r\n<div class=\"container tin-grid\" style=\"font-size:14px;\">\r\n\r\n <div class=\"fill\">\r\n\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"changePassword.userName\" [readonly]=\"true\"></spa-text>\r\n <spa-text id=\"txtPassword\" display=\"Current Password\" [(value)]=\"changePassword.currentPassword\" type=\"password\"></spa-text>\r\n <spa-text id=\"txtNewPassword\" display=\"New Password\" [(value)]=\"changePassword.newPassword\" type=\"password\"></spa-text>\r\n <spa-text id=\"txtConfirmPassword\" display=\"Confirm Password\" [(value)]=\"changePassword.confirmPassword\" type=\"password\"></spa-text>\r\n <button id=\"btnChange\" mat-raised-button color=\"primary\" (click)=\"change()\" cdkFocusInitial>Change</button>\r\n\r\n </div>\r\n\r\n <div class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\r\n <b>*Please consider these requirements for your new password.</b> <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! \u2026)<br>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n<!-- <div class=\"container\">\r\n\r\n <div class=\"d-flex justify-content-center row align-items-center\" >\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"tin-input \" style=\"font-size:14px;\">\r\n\r\n <div class=\"col\" *ngIf=\"changePassword.userName!=''\">\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"changePassword.userName\" width=\"300px\" [readonly]=\"true\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\" *ngIf=\"!myRole[dataService.capUsers.name]\">\r\n <spa-text id=\"txtPassword\" display=\"Current Password\" [(value)]=\"changePassword.currentPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtNewPassword\" display=\"New Password\" [(value)]=\"changePassword.newPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtConfirmPassword\" display=\"Confirm Password\" [(value)]=\"changePassword.confirmPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col mt-3\">\r\n <button id=\"btnChange\" mat-raised-button color=\"primary\" (click)=\"change()\" cdkFocusInitial>Change</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\r\n <b>*Please consider these requirements for your new password.</b> <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! \u2026)<br>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n</div> -->\r\n\r\n", styles: [""], dependencies: [{ kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }] });
88
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ChangePasswordComponent, decorators: [{
89
89
  type: Component,
90
90
  args: [{ selector: 'spa-change-password', template: "<h4>Change Password</h4>\r\n<hr>\r\n\r\n\r\n<div class=\"container tin-grid\" style=\"font-size:14px;\">\r\n\r\n <div class=\"fill\">\r\n\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"changePassword.userName\" [readonly]=\"true\"></spa-text>\r\n <spa-text id=\"txtPassword\" display=\"Current Password\" [(value)]=\"changePassword.currentPassword\" type=\"password\"></spa-text>\r\n <spa-text id=\"txtNewPassword\" display=\"New Password\" [(value)]=\"changePassword.newPassword\" type=\"password\"></spa-text>\r\n <spa-text id=\"txtConfirmPassword\" display=\"Confirm Password\" [(value)]=\"changePassword.confirmPassword\" type=\"password\"></spa-text>\r\n <button id=\"btnChange\" mat-raised-button color=\"primary\" (click)=\"change()\" cdkFocusInitial>Change</button>\r\n\r\n </div>\r\n\r\n <div class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\r\n <b>*Please consider these requirements for your new password.</b> <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! \u2026)<br>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n<!-- <div class=\"container\">\r\n\r\n <div class=\"d-flex justify-content-center row align-items-center\" >\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"tin-input \" style=\"font-size:14px;\">\r\n\r\n <div class=\"col\" *ngIf=\"changePassword.userName!=''\">\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"changePassword.userName\" width=\"300px\" [readonly]=\"true\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\" *ngIf=\"!myRole[dataService.capUsers.name]\">\r\n <spa-text id=\"txtPassword\" display=\"Current Password\" [(value)]=\"changePassword.currentPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtNewPassword\" display=\"New Password\" [(value)]=\"changePassword.newPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtConfirmPassword\" display=\"Confirm Password\" [(value)]=\"changePassword.confirmPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col mt-3\">\r\n <button id=\"btnChange\" mat-raised-button color=\"primary\" (click)=\"change()\" cdkFocusInitial>Change</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\r\n <b>*Please consider these requirements for your new password.</b> <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! \u2026)<br>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n</div> -->\r\n\r\n" }]
@@ -40,7 +40,6 @@ export class CreateAccountComponent {
40
40
  return;
41
41
  }
42
42
  this.dataService.CallApi({ url: 'User/ad/' + this.register.userName }, '').subscribe((apiResponse) => {
43
- // console.log(apiResponse)
44
43
  if (apiResponse.success) {
45
44
  this.register.firstName = apiResponse.data.firstName;
46
45
  this.register.lastName = apiResponse.data.surname;
@@ -54,7 +53,6 @@ export class CreateAccountComponent {
54
53
  loadRoles() {
55
54
  this.dataService.GetRole("all", "").subscribe((apiResponse) => {
56
55
  this.roles = apiResponse;
57
- // console.log(this.roles)
58
56
  }, (error) => {
59
57
  this.isProcessing = false;
60
58
  this.messageService.toast(this.httpService.Error(error));
@@ -101,11 +99,11 @@ export class CreateAccountComponent {
101
99
  }
102
100
  }
103
101
  CreateAccountComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CreateAccountComponent, deps: [{ token: i1.HttpService }, { token: i2.MessageService }, { token: i3.DataServiceLib }, { token: i4.AuthService }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Component });
104
- CreateAccountComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CreateAccountComponent, selector: "spa-create-account", inputs: { appConfig: "appConfig" }, ngImport: i0, template: "<h4>Create User</h4>\r\n\r\n<hr/>\r\n\r\n<div class=\"container tin-grid\" style=\"font-size:14px; max-width: 70%;\">\r\n\r\n <spa-text id=\"txtUserName\" display=\"Username\" [(value)]=\"register.userName\"></spa-text>\r\n\r\n &nbsp;\r\n\r\n <spa-select id=\"cboAuth\" display=\"Authentication Type\" [options]=\"authTypes\" optionDisplay=\"name\" optionValue=\"value\" [(value)]=\"register.authType\" (valueChange)=\"check()\" ></spa-select>\r\n\r\n &nbsp;\r\n\r\n <spa-text id=\"txtFirstName\" display=\"FirstName\" [(value)]=\"register.firstName\" [readonly]=\"register.authType =='AD'\"></spa-text>\r\n\r\n <spa-text id=\"txtLastName\" display=\"LastName\" [(value)]=\"register.lastName\" [readonly]=\"register.authType =='AD'\"></spa-text>\r\n\r\n\r\n <spa-text *ngIf=\"register.authType == 'local'\" id=\"txtPassword\" display=\"Password\" format=\"password\" [(value)]=\"register.password\" ></spa-text>\r\n\r\n <spa-text *ngIf=\"register.authType == 'local'\" id=\"txtConfirmPassword\" display=\"Confirm Password\" format=\"password\" [(value)]=\"confirmPassword\" ></spa-text>\r\n\r\n <spa-text id=\"txtEmail\" display=\"Email\" [(value)]=\"register.email\"></spa-text>\r\n\r\n &nbsp;\r\n\r\n <spa-select id=\"cboRole\" display=\"Role\" [options]=\"roles\" optionDisplay=\"roleName\" optionValue=\"roleID\" [(value)]=\"register.roleID\"></spa-select>\r\n\r\n &nbsp;\r\n\r\n <spa-check display=\"Open profile after creation\" [(value)]=\"openProfile\"></spa-check>\r\n\r\n <div class=\"span-col-center\">\r\n <button id=\"btnCreate\" [disabled]=\"register.authType ==''\" mat-raised-button color=\"primary\" (click)=\"create()\" cdkFocusInitial>Create</button>\r\n </div>\r\n\r\n\r\n\r\n</div>\r\n\r\n\r\n", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex"], outputs: ["valueChange", "leave", "enterPress"] }, { kind: "component", type: i9.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable"], outputs: ["valueChange"] }, { kind: "component", type: i10.CheckComponent, selector: "spa-check", inputs: ["readonly", "display", "value"], outputs: ["valueChange", "click", "check", "uncheck"] }] });
102
+ CreateAccountComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CreateAccountComponent, selector: "spa-create-account", inputs: { appConfig: "appConfig" }, ngImport: i0, template: "<h4>Create User</h4>\r\n\r\n<hr/>\r\n\r\n<div class=\"container tin-grid\" style=\"font-size:14px; max-width: 70%;\">\r\n\r\n <spa-text id=\"txtUserName\" display=\"Username\" [(value)]=\"register.userName\"></spa-text>\r\n\r\n &nbsp;\r\n\r\n <spa-select id=\"cboAuth\" display=\"Authentication Type\" [options]=\"authTypes\" optionDisplay=\"name\" optionValue=\"value\" [(value)]=\"register.authType\" (valueChange)=\"check()\" ></spa-select>\r\n\r\n &nbsp;\r\n\r\n <spa-text id=\"txtFirstName\" display=\"FirstName\" [(value)]=\"register.firstName\" [readonly]=\"register.authType =='AD'\"></spa-text>\r\n\r\n <spa-text id=\"txtLastName\" display=\"LastName\" [(value)]=\"register.lastName\" [readonly]=\"register.authType =='AD'\"></spa-text>\r\n\r\n\r\n <spa-text *ngIf=\"register.authType == 'local'\" id=\"txtPassword\" display=\"Password\" format=\"password\" [(value)]=\"register.password\" ></spa-text>\r\n\r\n <spa-text *ngIf=\"register.authType == 'local'\" id=\"txtConfirmPassword\" display=\"Confirm Password\" format=\"password\" [(value)]=\"confirmPassword\" ></spa-text>\r\n\r\n <spa-text id=\"txtEmail\" display=\"Email\" [(value)]=\"register.email\"></spa-text>\r\n\r\n &nbsp;\r\n\r\n <spa-select id=\"cboRole\" display=\"Role\" [options]=\"roles\" optionDisplay=\"roleName\" optionValue=\"roleID\" [(value)]=\"register.roleID\"></spa-select>\r\n\r\n &nbsp;\r\n\r\n <spa-check display=\"Open profile after creation\" [(value)]=\"openProfile\"></spa-check>\r\n\r\n <div class=\"span-col-center\">\r\n <button id=\"btnCreate\" [disabled]=\"register.authType ==''\" mat-raised-button color=\"primary\" (click)=\"create()\" cdkFocusInitial>Create</button>\r\n </div>\r\n\r\n\r\n\r\n</div>\r\n\r\n\r\n", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "component", type: i9.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable", "peekConfig", "infoMessage"], outputs: ["valueChange", "infoClick"] }, { kind: "component", type: i10.CheckComponent, selector: "spa-check", inputs: ["readonly", "display", "value"], outputs: ["valueChange", "click", "check", "uncheck"] }] });
105
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CreateAccountComponent, decorators: [{
106
104
  type: Component,
107
105
  args: [{ selector: 'spa-create-account', template: "<h4>Create User</h4>\r\n\r\n<hr/>\r\n\r\n<div class=\"container tin-grid\" style=\"font-size:14px; max-width: 70%;\">\r\n\r\n <spa-text id=\"txtUserName\" display=\"Username\" [(value)]=\"register.userName\"></spa-text>\r\n\r\n &nbsp;\r\n\r\n <spa-select id=\"cboAuth\" display=\"Authentication Type\" [options]=\"authTypes\" optionDisplay=\"name\" optionValue=\"value\" [(value)]=\"register.authType\" (valueChange)=\"check()\" ></spa-select>\r\n\r\n &nbsp;\r\n\r\n <spa-text id=\"txtFirstName\" display=\"FirstName\" [(value)]=\"register.firstName\" [readonly]=\"register.authType =='AD'\"></spa-text>\r\n\r\n <spa-text id=\"txtLastName\" display=\"LastName\" [(value)]=\"register.lastName\" [readonly]=\"register.authType =='AD'\"></spa-text>\r\n\r\n\r\n <spa-text *ngIf=\"register.authType == 'local'\" id=\"txtPassword\" display=\"Password\" format=\"password\" [(value)]=\"register.password\" ></spa-text>\r\n\r\n <spa-text *ngIf=\"register.authType == 'local'\" id=\"txtConfirmPassword\" display=\"Confirm Password\" format=\"password\" [(value)]=\"confirmPassword\" ></spa-text>\r\n\r\n <spa-text id=\"txtEmail\" display=\"Email\" [(value)]=\"register.email\"></spa-text>\r\n\r\n &nbsp;\r\n\r\n <spa-select id=\"cboRole\" display=\"Role\" [options]=\"roles\" optionDisplay=\"roleName\" optionValue=\"roleID\" [(value)]=\"register.roleID\"></spa-select>\r\n\r\n &nbsp;\r\n\r\n <spa-check display=\"Open profile after creation\" [(value)]=\"openProfile\"></spa-check>\r\n\r\n <div class=\"span-col-center\">\r\n <button id=\"btnCreate\" [disabled]=\"register.authType ==''\" mat-raised-button color=\"primary\" (click)=\"create()\" cdkFocusInitial>Create</button>\r\n </div>\r\n\r\n\r\n\r\n</div>\r\n\r\n\r\n" }]
108
106
  }], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.MessageService }, { type: i3.DataServiceLib }, { type: i4.AuthService }, { type: i5.Router }]; }, propDecorators: { appConfig: [{
109
107
  type: Input
110
108
  }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFjY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLWFjY291bnQvY3JlYXRlLWFjY291bnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLWFjY291bnQvY3JlYXRlLWFjY291bnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFXLFNBQVMsRUFBRSxRQUFRLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBU2xGLE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsWUFBb0IsV0FBd0IsRUFBVSxjQUE4QixFQUFVLFdBQTJCLEVBQVUsV0FBd0IsRUFBUyxNQUFjO1FBQTlKLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBU3pLLGNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBRXJDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBRTFCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBRTVCLGNBQVMsR0FBRztZQUNWLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDaEQsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtTQUMzQyxDQUFBO0lBbkJxTCxDQUFD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QUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzFDO3FCQUFNO29CQUNMLDBCQUEwQjtvQkFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztpQkFDM0I7YUFHRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzVEO1FBQ0gsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQjtRQUUxQixJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUU5QyxDQUFDOzttSEFySFUsc0JBQXNCO3VHQUF0QixzQkFBc0IsOEZDYm5DLHNzREEwQ0E7MkZEN0JhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7Mk1BZXJCLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvZmlsZSwgQXBwQ29uZmlnLCBSZWdpc3RlciwgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1jcmVhdGUtYWNjb3VudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1hY2NvdW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtYWNjb3VudC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZUFjY291bnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSwgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHVibGljIHJvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFwcENvbmZpZyA9IHRoaXMuZGF0YVNlcnZpY2UuYXBwQ29uZmlnO1xyXG4gICAgdGhpcy5sb2FkUm9sZXMoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgQElucHV0KCkgYXBwQ29uZmlnID0gbmV3IEFwcENvbmZpZygpO1xyXG5cclxuICBpc1Byb2Nlc3Npbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZWdpc3RlciA9IG5ldyBSZWdpc3RlcigpO1xyXG4gIGNvbmZpcm1QYXNzd29yZDogc3RyaW5nO1xyXG4gIG9wZW5Qcm9maWxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgYXV0aFR5cGVzID0gW1xyXG4gICAgeyBuYW1lOiBcIkxvY2FsIEF1dGhlbnRpY2F0aW9uXCIsIHZhbHVlOiBcImxvY2FsXCIgfSxcclxuICAgIHsgbmFtZTogXCJBRCBBdXRoZW50aWNhdGlvblwiLCB2YWx1ZTogXCJBRFwiIH1cclxuICBdXHJcblxyXG4gIHJvbGVzO1xyXG5cclxuICBjaGVjaygpe1xyXG5cclxuICAgIGlmICggdGhpcy5yZWdpc3Rlci5hdXRoVHlwZSAhPSBcIkFEXCIpIHtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5yZWdpc3Rlci51c2VyTmFtZSA9PSBcIlwiKXtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlBsZWFzZSBlbnRlciBVc2VyTmFtZVwiKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhU2VydmljZS5DYWxsQXBpKHt1cmw6ICdVc2VyL2FkLycgKyB0aGlzLnJlZ2lzdGVyLnVzZXJOYW1lfSwgJycpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2UgOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgLy8gY29uc29sZS5sb2coYXBpUmVzcG9uc2UpXHJcbiAgICAgIGlmIChhcGlSZXNwb25zZS5zdWNjZXNzKXtcclxuICAgICAgICB0aGlzLnJlZ2lzdGVyLmZpcnN0TmFtZSA9IGFwaVJlc3BvbnNlLmRhdGEuZmlyc3ROYW1lO1xyXG4gICAgICAgIHRoaXMucmVnaXN0ZXIubGFzdE5hbWUgPSBhcGlSZXNwb25zZS5kYXRhLnN1cm5hbWU7XHJcbiAgICAgICAgdGhpcy5yZWdpc3Rlci5lbWFpbCA9IGFwaVJlc3BvbnNlLmRhdGEuZW1haWxBZGRyZXNzO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChhcGlSZXNwb25zZS5tZXNzYWdlKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGxvYWRSb2xlcygpIHtcclxuXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkdldFJvbGUoXCJhbGxcIiwgXCJcIikuc3Vic2NyaWJlKFxyXG4gICAgICAoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yb2xlcyA9IGFwaVJlc3BvbnNlO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMucm9sZXMpXHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdCh0aGlzLmh0dHBTZXJ2aWNlLkVycm9yKGVycm9yKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gIH1cclxuXHJcbiAgY3JlYXRlKCkge1xyXG5cclxuICAgIGlmICh0aGlzLnJlZ2lzdGVyLmF1dGhUeXBlID09IFwiXCIpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkNob29zZSBBdXRoZW50aWNhdGlvbiBUeXBlXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucmVnaXN0ZXIuZmlyc3ROYW1lID09IFwiXCIpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkVudGVyIEZpcnN0IE5hbWVcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5yZWdpc3Rlci5sYXN0TmFtZSA9PSBcIlwiKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFbnRlciBMYXN0IE5hbWVcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5kYXRhU2VydmljZS5SZWdpc3RlckFjY291bnQodGhpcy5yZWdpc3Rlcikuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAoYXBpUmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkFjY291bnQgQ3JlYXRlZFwiKTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5vcGVuUHJvZmlsZSkge1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdQcm9maWxlKHRoaXMucmVnaXN0ZXIudXNlck5hbWUpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gdGhpcy51c2VyID0gbmV3IFVzZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5yZWdpc3RlciA9IG5ldyBSZWdpc3RlcigpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1QYXNzd29yZCA9IFwiXCI7XHJcbiAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkVycm9yOiBcIiArIGFwaVJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KHRoaXMuaHR0cFNlcnZpY2UuRXJyb3IoZXJyb3IpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHZpZXdQcm9maWxlKHVzZXJOYW1lOiBzdHJpbmcpIHtcclxuXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLnRtcFByb2ZpbGV1c2VyTmFtZSA9IHVzZXJOYW1lO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiaG9tZS91c2VyL3Byb2ZpbGVcIl0pO1xyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIjxoND5DcmVhdGUgVXNlcjwvaDQ+XHJcblxyXG48aHIvPlxyXG5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lciB0aW4tZ3JpZFwiIHN0eWxlPVwiZm9udC1zaXplOjE0cHg7IG1heC13aWR0aDogNzAlO1wiPlxyXG5cclxuICA8c3BhLXRleHQgaWQ9XCJ0eHRVc2VyTmFtZVwiIGRpc3BsYXk9XCJVc2VybmFtZVwiIFsodmFsdWUpXT1cInJlZ2lzdGVyLnVzZXJOYW1lXCI+PC9zcGEtdGV4dD5cclxuXHJcbiAgJm5ic3A7XHJcblxyXG4gIDxzcGEtc2VsZWN0IGlkPVwiY2JvQXV0aFwiIGRpc3BsYXk9XCJBdXRoZW50aWNhdGlvbiBUeXBlXCIgW29wdGlvbnNdPVwiYXV0aFR5cGVzXCIgb3B0aW9uRGlzcGxheT1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgWyh2YWx1ZSldPVwicmVnaXN0ZXIuYXV0aFR5cGVcIiAodmFsdWVDaGFuZ2UpPVwiY2hlY2soKVwiID48L3NwYS1zZWxlY3Q+XHJcblxyXG4gICZuYnNwO1xyXG5cclxuICA8c3BhLXRleHQgaWQ9XCJ0eHRGaXJzdE5hbWVcIiBkaXNwbGF5PVwiRmlyc3ROYW1lXCIgWyh2YWx1ZSldPVwicmVnaXN0ZXIuZmlyc3ROYW1lXCIgW3JlYWRvbmx5XT1cInJlZ2lzdGVyLmF1dGhUeXBlID09J0FEJ1wiPjwvc3BhLXRleHQ+XHJcblxyXG4gIDxzcGEtdGV4dCBpZD1cInR4dExhc3ROYW1lXCIgZGlzcGxheT1cIkxhc3ROYW1lXCIgWyh2YWx1ZSldPVwicmVnaXN0ZXIubGFzdE5hbWVcIiBbcmVhZG9ubHldPVwicmVnaXN0ZXIuYXV0aFR5cGUgPT0nQUQnXCI+PC9zcGEtdGV4dD5cclxuXHJcblxyXG4gIDxzcGEtdGV4dCAqbmdJZj1cInJlZ2lzdGVyLmF1dGhUeXBlID09ICdsb2NhbCdcIiBpZD1cInR4dFBhc3N3b3JkXCIgZGlzcGxheT1cIlBhc3N3b3JkXCIgZm9ybWF0PVwicGFzc3dvcmRcIiBbKHZhbHVlKV09XCJyZWdpc3Rlci5wYXNzd29yZFwiID48L3NwYS10ZXh0PlxyXG5cclxuICA8c3BhLXRleHQgKm5nSWY9XCJyZWdpc3Rlci5hdXRoVHlwZSA9PSAnbG9jYWwnXCIgaWQ9XCJ0eHRDb25maXJtUGFzc3dvcmRcIiBkaXNwbGF5PVwiQ29uZmlybSBQYXNzd29yZFwiIGZvcm1hdD1cInBhc3N3b3JkXCIgWyh2YWx1ZSldPVwiY29uZmlybVBhc3N3b3JkXCIgPjwvc3BhLXRleHQ+XHJcblxyXG4gIDxzcGEtdGV4dCBpZD1cInR4dEVtYWlsXCIgZGlzcGxheT1cIkVtYWlsXCIgWyh2YWx1ZSldPVwicmVnaXN0ZXIuZW1haWxcIj48L3NwYS10ZXh0PlxyXG5cclxuICAmbmJzcDtcclxuXHJcbiAgPHNwYS1zZWxlY3QgaWQ9XCJjYm9Sb2xlXCIgZGlzcGxheT1cIlJvbGVcIiBbb3B0aW9uc109XCJyb2xlc1wiIG9wdGlvbkRpc3BsYXk9XCJyb2xlTmFtZVwiIG9wdGlvblZhbHVlPVwicm9sZUlEXCIgWyh2YWx1ZSldPVwicmVnaXN0ZXIucm9sZUlEXCI+PC9zcGEtc2VsZWN0PlxyXG5cclxuICAmbmJzcDtcclxuXHJcbiAgPHNwYS1jaGVjayBkaXNwbGF5PVwiT3BlbiBwcm9maWxlIGFmdGVyIGNyZWF0aW9uXCIgWyh2YWx1ZSldPVwib3BlblByb2ZpbGVcIj48L3NwYS1jaGVjaz5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInNwYW4tY29sLWNlbnRlclwiPlxyXG4gICAgPGJ1dHRvbiBpZD1cImJ0bkNyZWF0ZVwiIFtkaXNhYmxlZF09XCJyZWdpc3Rlci5hdXRoVHlwZSA9PScnXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNyZWF0ZSgpXCIgY2RrRm9jdXNJbml0aWFsPkNyZWF0ZTwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuXHJcblxyXG48L2Rpdj5cclxuXHJcblxyXG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFjY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLWFjY291bnQvY3JlYXRlLWFjY291bnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLWFjY291bnQvY3JlYXRlLWFjY291bnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFXLFNBQVMsRUFBRSxRQUFRLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBU2xGLE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsWUFBb0IsV0FBd0IsRUFBVSxjQUE4QixFQUFVLFdBQTJCLEVBQVUsV0FBd0IsRUFBUyxNQUFjO1FBQTlKLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBU3pLLGNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBRXJDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBRTFCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBRTVCLGNBQVMsR0FBRztZQUNWLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDaEQsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtTQUMzQyxDQUFBO0lBbkJxTCxDQUFD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USxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUMxQztxQkFBTTtvQkFDTCwwQkFBMEI7b0JBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7aUJBQzNCO2FBR0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM1RDtRQUNILENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBZ0I7UUFFMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7SUFFOUMsQ0FBQzs7bUhBbkhVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDhGQ2JuQyxzc0RBMENBOzJGRDdCYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzJNQWVyQixTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhbGliLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2ZpbGUsIEFwcENvbmZpZywgUmVnaXN0ZXIsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtY3JlYXRlLWFjY291bnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtYWNjb3VudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLWFjY291bnQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVBY2NvdW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYiwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHB1YmxpYyByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5hcHBDb25maWcgPSB0aGlzLmRhdGFTZXJ2aWNlLmFwcENvbmZpZztcclxuICAgIHRoaXMubG9hZFJvbGVzKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIEBJbnB1dCgpIGFwcENvbmZpZyA9IG5ldyBBcHBDb25maWcoKTtcclxuXHJcbiAgaXNQcm9jZXNzaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVnaXN0ZXIgPSBuZXcgUmVnaXN0ZXIoKTtcclxuICBjb25maXJtUGFzc3dvcmQ6IHN0cmluZztcclxuICBvcGVuUHJvZmlsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGF1dGhUeXBlcyA9IFtcclxuICAgIHsgbmFtZTogXCJMb2NhbCBBdXRoZW50aWNhdGlvblwiLCB2YWx1ZTogXCJsb2NhbFwiIH0sXHJcbiAgICB7IG5hbWU6IFwiQUQgQXV0aGVudGljYXRpb25cIiwgdmFsdWU6IFwiQURcIiB9XHJcbiAgXVxyXG5cclxuICByb2xlcztcclxuXHJcbiAgY2hlY2soKXtcclxuXHJcbiAgICBpZiAoIHRoaXMucmVnaXN0ZXIuYXV0aFR5cGUgIT0gXCJBRFwiKSB7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucmVnaXN0ZXIudXNlck5hbWUgPT0gXCJcIil7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQbGVhc2UgZW50ZXIgVXNlck5hbWVcIilcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7dXJsOiAnVXNlci9hZC8nICsgdGhpcy5yZWdpc3Rlci51c2VyTmFtZX0sICcnKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlIDogQXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgIGlmIChhcGlSZXNwb25zZS5zdWNjZXNzKXtcclxuICAgICAgICB0aGlzLnJlZ2lzdGVyLmZpcnN0TmFtZSA9IGFwaVJlc3BvbnNlLmRhdGEuZmlyc3ROYW1lO1xyXG4gICAgICAgIHRoaXMucmVnaXN0ZXIubGFzdE5hbWUgPSBhcGlSZXNwb25zZS5kYXRhLnN1cm5hbWU7XHJcbiAgICAgICAgdGhpcy5yZWdpc3Rlci5lbWFpbCA9IGFwaVJlc3BvbnNlLmRhdGEuZW1haWxBZGRyZXNzO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChhcGlSZXNwb25zZS5tZXNzYWdlKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGxvYWRSb2xlcygpIHtcclxuXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkdldFJvbGUoXCJhbGxcIiwgXCJcIikuc3Vic2NyaWJlKFxyXG4gICAgICAoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yb2xlcyA9IGFwaVJlc3BvbnNlO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QodGhpcy5odHRwU2VydmljZS5FcnJvcihlcnJvcikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICB9XHJcblxyXG4gIGNyZWF0ZSgpIHtcclxuXHJcbiAgICBpZiAodGhpcy5yZWdpc3Rlci5hdXRoVHlwZSA9PSBcIlwiKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJDaG9vc2UgQXV0aGVudGljYXRpb24gVHlwZVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnJlZ2lzdGVyLmZpcnN0TmFtZSA9PSBcIlwiKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFbnRlciBGaXJzdCBOYW1lXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucmVnaXN0ZXIubGFzdE5hbWUgPT0gXCJcIikge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRW50ZXIgTGFzdCBOYW1lXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuUmVnaXN0ZXJBY2NvdW50KHRoaXMucmVnaXN0ZXIpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKGFwaVJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJBY2NvdW50IENyZWF0ZWRcIik7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMub3BlblByb2ZpbGUpIHtcclxuICAgICAgICAgICAgdGhpcy52aWV3UHJvZmlsZSh0aGlzLnJlZ2lzdGVyLnVzZXJOYW1lKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMudXNlciA9IG5ldyBVc2VyKCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXIgPSBuZXcgUmVnaXN0ZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5jb25maXJtUGFzc3dvcmQgPSBcIlwiO1xyXG4gICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdCh0aGlzLmh0dHBTZXJ2aWNlLkVycm9yKGVycm9yKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB2aWV3UHJvZmlsZSh1c2VyTmFtZTogc3RyaW5nKSB7XHJcblxyXG4gICAgdGhpcy5kYXRhU2VydmljZS50bXBQcm9maWxldXNlck5hbWUgPSB1c2VyTmFtZTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImhvbWUvdXNlci9wcm9maWxlXCJdKTtcclxuXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8aDQ+Q3JlYXRlIFVzZXI8L2g0PlxyXG5cclxuPGhyLz5cclxuXHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXIgdGluLWdyaWRcIiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4OyBtYXgtd2lkdGg6IDcwJTtcIj5cclxuXHJcbiAgPHNwYS10ZXh0IGlkPVwidHh0VXNlck5hbWVcIiBkaXNwbGF5PVwiVXNlcm5hbWVcIiBbKHZhbHVlKV09XCJyZWdpc3Rlci51c2VyTmFtZVwiPjwvc3BhLXRleHQ+XHJcblxyXG4gICZuYnNwO1xyXG5cclxuICA8c3BhLXNlbGVjdCBpZD1cImNib0F1dGhcIiBkaXNwbGF5PVwiQXV0aGVudGljYXRpb24gVHlwZVwiIFtvcHRpb25zXT1cImF1dGhUeXBlc1wiIG9wdGlvbkRpc3BsYXk9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFsodmFsdWUpXT1cInJlZ2lzdGVyLmF1dGhUeXBlXCIgKHZhbHVlQ2hhbmdlKT1cImNoZWNrKClcIiA+PC9zcGEtc2VsZWN0PlxyXG5cclxuICAmbmJzcDtcclxuXHJcbiAgPHNwYS10ZXh0IGlkPVwidHh0Rmlyc3ROYW1lXCIgZGlzcGxheT1cIkZpcnN0TmFtZVwiIFsodmFsdWUpXT1cInJlZ2lzdGVyLmZpcnN0TmFtZVwiIFtyZWFkb25seV09XCJyZWdpc3Rlci5hdXRoVHlwZSA9PSdBRCdcIj48L3NwYS10ZXh0PlxyXG5cclxuICA8c3BhLXRleHQgaWQ9XCJ0eHRMYXN0TmFtZVwiIGRpc3BsYXk9XCJMYXN0TmFtZVwiIFsodmFsdWUpXT1cInJlZ2lzdGVyLmxhc3ROYW1lXCIgW3JlYWRvbmx5XT1cInJlZ2lzdGVyLmF1dGhUeXBlID09J0FEJ1wiPjwvc3BhLXRleHQ+XHJcblxyXG5cclxuICA8c3BhLXRleHQgKm5nSWY9XCJyZWdpc3Rlci5hdXRoVHlwZSA9PSAnbG9jYWwnXCIgaWQ9XCJ0eHRQYXNzd29yZFwiIGRpc3BsYXk9XCJQYXNzd29yZFwiIGZvcm1hdD1cInBhc3N3b3JkXCIgWyh2YWx1ZSldPVwicmVnaXN0ZXIucGFzc3dvcmRcIiA+PC9zcGEtdGV4dD5cclxuXHJcbiAgPHNwYS10ZXh0ICpuZ0lmPVwicmVnaXN0ZXIuYXV0aFR5cGUgPT0gJ2xvY2FsJ1wiIGlkPVwidHh0Q29uZmlybVBhc3N3b3JkXCIgZGlzcGxheT1cIkNvbmZpcm0gUGFzc3dvcmRcIiBmb3JtYXQ9XCJwYXNzd29yZFwiIFsodmFsdWUpXT1cImNvbmZpcm1QYXNzd29yZFwiID48L3NwYS10ZXh0PlxyXG5cclxuICA8c3BhLXRleHQgaWQ9XCJ0eHRFbWFpbFwiIGRpc3BsYXk9XCJFbWFpbFwiIFsodmFsdWUpXT1cInJlZ2lzdGVyLmVtYWlsXCI+PC9zcGEtdGV4dD5cclxuXHJcbiAgJm5ic3A7XHJcblxyXG4gIDxzcGEtc2VsZWN0IGlkPVwiY2JvUm9sZVwiIGRpc3BsYXk9XCJSb2xlXCIgW29wdGlvbnNdPVwicm9sZXNcIiBvcHRpb25EaXNwbGF5PVwicm9sZU5hbWVcIiBvcHRpb25WYWx1ZT1cInJvbGVJRFwiIFsodmFsdWUpXT1cInJlZ2lzdGVyLnJvbGVJRFwiPjwvc3BhLXNlbGVjdD5cclxuXHJcbiAgJm5ic3A7XHJcblxyXG4gIDxzcGEtY2hlY2sgZGlzcGxheT1cIk9wZW4gcHJvZmlsZSBhZnRlciBjcmVhdGlvblwiIFsodmFsdWUpXT1cIm9wZW5Qcm9maWxlXCI+PC9zcGEtY2hlY2s+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJzcGFuLWNvbC1jZW50ZXJcIj5cclxuICAgIDxidXR0b24gaWQ9XCJidG5DcmVhdGVcIiBbZGlzYWJsZWRdPVwicmVnaXN0ZXIuYXV0aFR5cGUgPT0nJ1wiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjcmVhdGUoKVwiIGNka0ZvY3VzSW5pdGlhbD5DcmVhdGU8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcblxyXG5cclxuPC9kaXY+XHJcblxyXG5cclxuIl19