@bizdoc/core 1.9.9 → 1.9.14

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 (74) hide show
  1. package/assets/themes/brown.min.css +1 -1
  2. package/assets/themes/dark.min.css +1 -1
  3. package/assets/themes/deep-purple-light-blue.min.css +3 -3
  4. package/assets/themes/default.min.css +1 -1
  5. package/assets/themes/green.min.css +1 -1
  6. package/assets/themes/indigo.min.css +1 -1
  7. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +3 -2
  8. package/esm2020/lib/admin/positions/positions.component.mjs +44 -5
  9. package/esm2020/lib/browse/browse-items.component.mjs +13 -4
  10. package/esm2020/lib/browse/browse.pane.component.mjs +3 -1
  11. package/esm2020/lib/browse/filter/filter.component.mjs +3 -6
  12. package/esm2020/lib/browse/folders-menu.component.mjs +2 -2
  13. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +18 -16
  14. package/esm2020/lib/compose/compose.pane.component.mjs +7 -4
  15. package/esm2020/lib/compose/document.component.mjs +9 -11
  16. package/esm2020/lib/compose/form-ref.mjs +6 -7
  17. package/esm2020/lib/compose/form.component.mjs +2 -2
  18. package/esm2020/lib/compose/new-menu.component.mjs +3 -3
  19. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +6 -8
  20. package/esm2020/lib/core/models.mjs +1 -1
  21. package/esm2020/lib/core/slots/slots.component.mjs +14 -16
  22. package/esm2020/lib/core/translations.mjs +4 -4
  23. package/esm2020/lib/cube/accum/accum.component.mjs +18 -8
  24. package/esm2020/lib/cube/chart/chart.component.mjs +18 -5
  25. package/esm2020/lib/cube/cube-view.component.mjs +9 -11
  26. package/esm2020/lib/cube/declarations.mjs +1 -1
  27. package/esm2020/lib/cube/grid/grid.component.mjs +21 -10
  28. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +123 -117
  29. package/esm2020/lib/cube/matrix/table.component.mjs +4 -4
  30. package/esm2020/lib/cube/parallel/item.mjs +2 -1
  31. package/esm2020/lib/cube/pivot/pivot.component.mjs +7 -4
  32. package/esm2020/lib/cube/sum/sum.component.mjs +2 -2
  33. package/esm2020/lib/cube/view.pane.component.mjs +2 -2
  34. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +2 -2
  35. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +1 -1
  36. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +2 -1
  37. package/esm2020/lib/home/search.service.mjs +8 -5
  38. package/esm2020/lib/modules/chart.module.mjs +6 -6
  39. package/esm2020/lib/modules/gantt.module.mjs +17 -0
  40. package/esm2020/lib/routes.desktop.mjs +8 -8
  41. package/esm2020/lib/routes.mobile.mjs +1 -1
  42. package/esm2020/lib/shared.module.mjs +9 -10
  43. package/esm2020/lib/views/cube/chart.component.mjs +1 -1
  44. package/esm2020/lib/views/cube/matrix.component.mjs +6 -6
  45. package/fesm2015/bizdoc-core.mjs +355 -247
  46. package/fesm2015/bizdoc-core.mjs.map +1 -1
  47. package/fesm2020/bizdoc-core.mjs +353 -247
  48. package/fesm2020/bizdoc-core.mjs.map +1 -1
  49. package/lib/admin/positions/positions.component.d.ts +3 -1
  50. package/lib/browse/browse-items.component.d.ts +2 -2
  51. package/lib/compose/attachments/preview/attachment-preview.component.d.ts +3 -1
  52. package/lib/compose/compose.pane.component.d.ts +1 -0
  53. package/lib/compose/document.component.d.ts +2 -4
  54. package/lib/compose/form-ref.d.ts +1 -3
  55. package/lib/compose/version-compare/version-compare.component.d.ts +2 -4
  56. package/lib/core/models.d.ts +2 -2
  57. package/lib/core/slots/slots.component.d.ts +1 -2
  58. package/lib/cube/accum/accum.component.d.ts +2 -1
  59. package/lib/cube/chart/chart.component.d.ts +5 -3
  60. package/lib/cube/cube-view.component.d.ts +3 -2
  61. package/lib/cube/declarations.d.ts +2 -0
  62. package/lib/cube/grid/grid.component.d.ts +10 -7
  63. package/lib/cube/grid/spreadsheet.component.d.ts +11 -4
  64. package/lib/cube/matrix/table.component.d.ts +1 -1
  65. package/lib/cube/parallel/item.d.ts +2 -2
  66. package/lib/cube/pivot/pivot.component.d.ts +1 -1
  67. package/lib/cube/sum/sum.component.d.ts +1 -1
  68. package/lib/dashboard/cube/accum-cube.widget.d.ts +2 -2
  69. package/lib/dashboard/cube/cube-analysis.base.d.ts +0 -4
  70. package/lib/modules/chart.module.d.ts +1 -1
  71. package/lib/modules/gantt.module.d.ts +7 -0
  72. package/lib/shared.module.d.ts +9 -10
  73. package/lib/views/cube/matrix.component.d.ts +2 -2
  74. package/package.json +1 -2
@@ -54,7 +54,7 @@
54
54
  /*! schedule quick popup */
55
55
  .e-quick-popup-wrapper{background-color:#fff;border-radius:2px;box-shadow:0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12),0 11px 15px -7px rgba(0,0,0,.2);color:rgba(0,0,0,.87);max-width:365px;min-width:320px;opacity:1;user-select:none;width:100%}.e-quick-popup-wrapper .e-hidden{display:none}.e-quick-popup-wrapper .e-cell-popup .e-popup-header .e-header-icon-wrapper{position:absolute;right:6px;top:4px}.e-quick-popup-wrapper .e-cell-popup .e-popup-header .e-header-icon-wrapper .e-close,.e-quick-popup-wrapper .e-cell-popup .e-popup-header .e-header-icon-wrapper .e-delete,.e-quick-popup-wrapper .e-cell-popup .e-popup-header .e-header-icon-wrapper .e-edit{color:#000}.e-quick-popup-wrapper .e-cell-popup .e-popup-header .e-header-icon-wrapper .e-close:focus,.e-quick-popup-wrapper .e-cell-popup .e-popup-header .e-header-icon-wrapper .e-close:hover,.e-quick-popup-wrapper .e-cell-popup .e-popup-header .e-header-icon-wrapper .e-delete:focus,.e-quick-popup-wrapper .e-cell-popup .e-popup-header .e-header-icon-wrapper .e-delete:hover,.e-quick-popup-wrapper .e-cell-popup .e-popup-header .e-header-icon-wrapper .e-edit:focus,.e-quick-popup-wrapper .e-cell-popup .e-popup-header .e-header-icon-wrapper .e-edit:hover{background:#e0e0e0;color:#000}.e-quick-popup-wrapper .e-cell-popup .e-popup-header .e-header-icon-wrapper .e-close .e-close-icon,.e-quick-popup-wrapper .e-cell-popup .e-popup-header .e-header-icon-wrapper .e-delete .e-close-icon,.e-quick-popup-wrapper .e-cell-popup .e-popup-header .e-header-icon-wrapper .e-edit .e-close-icon{font-size:11px}.e-quick-popup-wrapper .e-cell-popup .e-popup-content{padding:28px 18px 8px}.e-quick-popup-wrapper .e-cell-popup .e-popup-content .e-popup-table{width:100%}.e-quick-popup-wrapper .e-cell-popup .e-popup-content .e-popup-table .e-schedule-form>span{margin-bottom:8px}.e-quick-popup-wrapper .e-cell-popup .e-popup-content .e-popup-table .e-subject{font-size:22px}.e-quick-popup-wrapper .e-event-popup .e-popup-header{background-color:#3f51b5}.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper{padding:5px 5px 2px}.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-delete,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-edit{display:block}.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-close,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-delete,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-edit{color:#fff}.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-close:focus,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-close:hover,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-delete:focus,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-delete:hover,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-edit:focus,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-edit:hover{background:rgba(255,255,255,.15);color:#fff}.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-close-icon,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-delete-icon,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-edit-icon{font-size:11px}.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-delete:disabled:hover,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-edit:disabled:hover{background:0 0}.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-delete:disabled>.e-delete-icon,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-delete:disabled>.e-edit-icon,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-edit:disabled>.e-delete-icon,.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-edit:disabled>.e-edit-icon{opacity:.5}.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-subject-wrap{padding:0 24px 16px}.e-quick-popup-wrapper .e-event-popup .e-popup-header .e-subject-wrap .e-subject{cursor:default;font-size:20px;font-weight:500;line-height:1.5;max-height:87px;color:#fff}.e-quick-popup-wrapper .e-event-popup .e-popup-content{padding:8px 18px 26px 26px}.e-quick-popup-wrapper .e-cell-popup .e-header-icon-wrapper,.e-quick-popup-wrapper .e-event-popup .e-header-icon-wrapper{display:flex;justify-content:flex-end}.e-quick-popup-wrapper .e-cell-popup .e-header-icon-wrapper .e-close,.e-quick-popup-wrapper .e-cell-popup .e-header-icon-wrapper .e-delete,.e-quick-popup-wrapper .e-cell-popup .e-header-icon-wrapper .e-edit,.e-quick-popup-wrapper .e-event-popup .e-header-icon-wrapper .e-close,.e-quick-popup-wrapper .e-event-popup .e-header-icon-wrapper .e-delete,.e-quick-popup-wrapper .e-event-popup .e-header-icon-wrapper .e-edit{background-color:transparent;border:0}.e-quick-popup-wrapper .e-cell-popup .e-date-time,.e-quick-popup-wrapper .e-cell-popup .e-description,.e-quick-popup-wrapper .e-cell-popup .e-location,.e-quick-popup-wrapper .e-cell-popup .e-resource,.e-quick-popup-wrapper .e-cell-popup .e-time-zone,.e-quick-popup-wrapper .e-event-popup .e-date-time,.e-quick-popup-wrapper .e-event-popup .e-description,.e-quick-popup-wrapper .e-event-popup .e-location,.e-quick-popup-wrapper .e-event-popup .e-resource,.e-quick-popup-wrapper .e-event-popup .e-time-zone{color:rgba(0,0,0,.87);display:flex;padding-top:16px}.e-quick-popup-wrapper .e-cell-popup .e-date-time-icon,.e-quick-popup-wrapper .e-cell-popup .e-description-icon,.e-quick-popup-wrapper .e-cell-popup .e-location-icon,.e-quick-popup-wrapper .e-cell-popup .e-resource-icon,.e-quick-popup-wrapper .e-cell-popup .e-time-zone-icon,.e-quick-popup-wrapper .e-event-popup .e-date-time-icon,.e-quick-popup-wrapper .e-event-popup .e-description-icon,.e-quick-popup-wrapper .e-event-popup .e-location-icon,.e-quick-popup-wrapper .e-event-popup .e-resource-icon,.e-quick-popup-wrapper .e-event-popup .e-time-zone-icon{color:rgba(0,0,0,.54);font-size:18px;padding-right:13px}.e-quick-popup-wrapper .e-cell-popup .e-date-time-details,.e-quick-popup-wrapper .e-cell-popup .e-description-details,.e-quick-popup-wrapper .e-cell-popup .e-location-details,.e-quick-popup-wrapper .e-cell-popup .e-resource-details,.e-quick-popup-wrapper .e-cell-popup .e-time-zone-details,.e-quick-popup-wrapper .e-event-popup .e-date-time-details,.e-quick-popup-wrapper .e-event-popup .e-description-details,.e-quick-popup-wrapper .e-event-popup .e-location-details,.e-quick-popup-wrapper .e-event-popup .e-resource-details,.e-quick-popup-wrapper .e-event-popup .e-time-zone-details{color:rgba(0,0,0,.87);cursor:default;font-size:14px}.e-quick-popup-wrapper .e-popup-table td:last-child{padding-top:0}.e-quick-popup-wrapper .e-popup-footer{display:block;text-align:right;padding:8px 4px 8px 22px}.e-quick-popup-wrapper .e-popup-footer .e-event-edit{margin-right:8px;right:auto}.e-quick-popup-wrapper .e-popup-footer .e-event-delete{right:auto}.e-quick-popup-wrapper .e-popup-footer .e-event-delete:disabled,.e-quick-popup-wrapper .e-popup-footer .e-event-edit:disabled{color:rgba(0,0,0,.26)}.e-quick-popup-wrapper .e-popup-footer .e-event-details{border:0;margin-right:8px;right:auto;text-transform:uppercase}.e-quick-popup-wrapper .e-event-popup .e-popup-footer{display:none}.e-quick-popup-wrapper.e-rtl{text-align:right}.e-quick-popup-wrapper.e-rtl .e-cell-popup .e-header-icon-wrapper{left:6px;right:auto}.e-quick-popup-wrapper.e-rtl .e-cell-popup .e-popup-footer{padding:8px 18px 8px 8px;text-align:left}.e-quick-popup-wrapper.e-rtl .e-popup-content .e-date-time-wrapper,.e-quick-popup-wrapper.e-rtl .e-popup-content .e-description-details,.e-quick-popup-wrapper.e-rtl .e-popup-content .e-location-details,.e-quick-popup-wrapper.e-rtl .e-popup-content .e-resource-details,.e-quick-popup-wrapper.e-rtl .e-popup-content .e-time-zone-details{margin-right:10px}.e-quick-popup-wrapper.e-device{bottom:0;height:100%;left:0;margin:0;max-width:100%;overflow:hidden;padding:0;position:fixed;right:0;top:0;width:100%;z-index:1004}.e-quick-popup-wrapper.e-device .e-event-popup .e-popup-header .e-header-icon-wrapper .e-close:focus,.e-quick-popup-wrapper.e-device .e-event-popup .e-popup-header .e-header-icon-wrapper .e-close:hover,.e-quick-popup-wrapper.e-device .e-event-popup .e-popup-header .e-header-icon-wrapper .e-delete:focus,.e-quick-popup-wrapper.e-device .e-event-popup .e-popup-header .e-header-icon-wrapper .e-delete:hover,.e-quick-popup-wrapper.e-device .e-event-popup .e-popup-header .e-header-icon-wrapper .e-edit:focus,.e-quick-popup-wrapper.e-device .e-event-popup .e-popup-header .e-header-icon-wrapper .e-edit:hover,.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-close:focus,.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-close:hover,.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-delete:focus,.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-delete:hover,.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-edit:focus,.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-edit:hover{background:0 0}.e-quick-popup-wrapper.e-device .e-event-popup .e-popup-header .e-delete,.e-quick-popup-wrapper.e-device .e-event-popup .e-popup-header .e-edit{display:block}.e-quick-popup-wrapper.e-device .e-event-popup .e-popup-header .e-close{margin-left:0;margin-right:auto;order:-1}.e-quick-popup-wrapper.e-device .e-event-popup .e-popup-header .e-subject-wrap{padding:24px}.e-quick-popup-wrapper.e-device .e-event-popup .e-popup-content{padding:12px 24px}.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header{display:flex;padding:15px}.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-close,.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-delete,.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-edit{background-color:transparent;border:0;height:40px;width:40px}.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-subject{font-size:15px;font-weight:500;height:40px;line-height:2.25;padding:4px 5px;width:calc(100% - 95px)}.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-close-icon,.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-delete-icon,.e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-edit-icon{font-size:14px}.e-quick-popup-wrapper.e-device.e-rtl .e-event-popup .e-popup-header .e-close{margin-left:auto;margin-right:0}.e-bigger .e-quick-popup-wrapper .e-cell-popup .e-popup-content .e-popup-table .e-subject{font-size:24px}.e-bigger .e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-close-icon,.e-bigger .e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-delete-icon,.e-bigger .e-quick-popup-wrapper .e-event-popup .e-popup-header .e-header-icon-wrapper .e-edit-icon,.e-bigger .e-quick-popup-wrapper.e-device .e-event-popup .e-popup-header .e-header-icon-wrapper .e-close-icon,.e-bigger .e-quick-popup-wrapper.e-device .e-event-popup .e-popup-header .e-header-icon-wrapper .e-delete-icon,.e-bigger .e-quick-popup-wrapper.e-device .e-event-popup .e-popup-header .e-header-icon-wrapper .e-edit-icon{font-size:14px}.e-bigger .e-quick-popup-wrapper.e-device .e-multiple-event-popup .e-popup-header .e-subject{padding:5px 5px 0 8px}.e-appointment.e-schedule-event-clone{background:#3f51b5;border-radius:2px;box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.2);color:#fff;display:flex;height:38px;width:100px;z-index:9}.e-appointment.e-schedule-event-clone.e-drag-clone{cursor:move}.e-appointment.e-schedule-event-clone .e-event-resize.e-left-handler,.e-appointment.e-schedule-event-clone .e-event-resize.e-right-handler,.e-appointment.e-schedule-event-clone .e-indicator.e-left-icon,.e-appointment.e-schedule-event-clone .e-indicator.e-right-icon,.e-appointment.e-schedule-event-clone .e-recurrence-edit-icon,.e-appointment.e-schedule-event-clone .e-recurrence-icon{display:none}.e-appointment.e-schedule-event-clone .e-appointment-details{flex:auto;overflow:hidden;padding:0 4px;text-align:left}.e-appointment.e-schedule-event-clone .e-appointment-details .e-inner-wrap{flex:auto;overflow:hidden}.e-appointment.e-schedule-event-clone .e-appointment-details .e-subject{font-size:13px;font-weight:500;line-height:1.2;margin-left:auto;min-height:18px;overflow:hidden;padding-top:4px;text-overflow:ellipsis}.e-appointment.e-schedule-event-clone .e-appointment-details .e-time{font-size:11px;overflow:hidden;padding-top:1px;text-overflow:ellipsis}.e-appointment.e-schedule-event-clone .e-appointment-details .e-location{display:none}.e-appointment.e-schedule-event-clone.e-month-event .e-appointment-details .e-subject{padding:3px 2px}.e-vertical-view .e-all-day-appointment-wrapper .e-appointment.e-schedule-event-clone .e-appointment-details .e-subject{padding:3px 0 1px 4px}.e-appointment.e-schedule-event-clone.e-month-event .e-appointment-details .e-time,.e-vertical-view .e-all-day-appointment-wrapper .e-appointment.e-schedule-event-clone .e-appointment-details .e-time{display:none}.e-bigger .e-schedule .e-month-view .e-current-date .e-date-header{width:26px}.e-more-popup-wrapper{background-color:#fff;border:1px solid #e0e0e0;border-radius:2px;opacity:1;padding:8px 0;width:225px;box-shadow:0 10px 10px 0 rgba(0,0,0,.4)}.e-more-popup-wrapper .e-more-appointment-wrapper{margin:0 4px}.e-more-popup-wrapper .e-more-event-popup{height:100%;position:relative;width:100%}.e-more-popup-wrapper .e-more-event-header{height:35px;margin:0 8px 4px 14px}.e-more-popup-wrapper .e-more-event-content{height:calc(100% - 35px);max-height:300px;overflow-y:auto;padding-left:10px;padding-right:10px}.e-more-popup-wrapper .e-more-event-content .e-appointment-border{border:0;box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.2)}.e-more-popup-wrapper .e-more-event-date-header{height:100%;width:calc(100% - 25px)}.e-more-popup-wrapper .e-more-event-date-header .e-current-date{color:#ff4081}.e-more-popup-wrapper .e-header-day{color:rgba(0,0,0,.87);font-size:13px;line-height:1;padding-bottom:2px}.e-more-popup-wrapper .e-header-date{color:rgba(0,0,0,.87);font-size:18px;line-height:1;max-width:15%}.e-more-popup-wrapper .e-header-date:hover{cursor:pointer;text-decoration:underline}.e-more-popup-wrapper .e-header-date:focus{text-decoration:underline}.e-more-popup-wrapper .e-more-event-close{background-color:transparent;border:0;box-shadow:none;color:#000;cursor:pointer;height:25px;position:absolute;right:6px;width:25px}.e-more-popup-wrapper .e-more-event-close .e-close-icon{font-size:9px}.e-more-popup-wrapper .e-more-event-close .e-btn-icon{margin-top:0}.e-more-popup-wrapper .e-more-event-close:focus,.e-more-popup-wrapper .e-more-event-close:hover{background-color:#e0e0e0;border-radius:50%;color:#000}.e-more-popup-wrapper .e-appointment{background:#3f51b5;border-radius:2px;color:#fff;display:flex;height:22px;line-height:20px;margin-bottom:2px;padding:2px 0;width:100%}.e-more-popup-wrapper .e-appointment .e-subject{color:#fff;flex:auto;font-size:13px;font-weight:500;overflow:hidden;padding:0 2px;text-overflow:ellipsis;white-space:nowrap}.e-more-popup-wrapper .e-appointment .e-recurrence-edit-icon,.e-more-popup-wrapper .e-appointment .e-recurrence-icon{line-height:22px;padding:0 2px}.e-more-popup-wrapper .e-appointment.e-appointment-border,.e-more-popup-wrapper .e-appointment:focus{border:0;box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.2)}.e-more-popup-wrapper.e-device{bottom:0;height:100%;left:0;margin:0;max-width:100%;overflow:hidden;right:0;top:0;width:100%;z-index:1002}.e-more-popup-wrapper.e-device .e-more-event-content{max-height:unset}.e-more-popup-wrapper.e-rtl .e-more-event-close{left:6px;right:auto}
56
56
  /*! schedule component theme */
57
- .e-schedule{background-color:#fff;border:1px solid rgba(0,0,0,.12)}.e-schedule .e-date-header-wrap{border-color:rgba(0,0,0,.12);border-style:solid;border-width:0;position:relative}.e-schedule .e-month-view .e-content-wrap table td:first-child,.e-schedule .e-month-view .e-date-header-wrap table td:first-child,.e-schedule .e-vertical-view .e-content-wrap table td:first-child,.e-schedule .e-vertical-view .e-date-header-wrap table tbody td:first-child{border-left-width:0}.e-schedule .e-vertical-view .e-date-header-wrap .e-all-day-cells,.e-schedule .e-vertical-view .e-header-cells{background-color:#fff}.e-schedule .e-vertical-view .e-date-header-wrap .e-all-day-cells:hover{background:#f5f5f5}.e-schedule .e-vertical-view .e-left-indent-wrap table tbody td,.e-schedule .e-vertical-view .e-time-cells-wrap table td{background-color:#fff;border-color:rgba(0,0,0,.12);border-style:solid;border-width:0 1px 1px 0;color:rgba(0,0,0,.87)}.e-schedule .e-vertical-view .e-left-indent-wrap table tbody td.e-header-cells{border-bottom-width:0}.e-schedule .e-vertical-view .e-left-indent-wrap table tbody td.e-header-cells.e-week-number{color:rgba(0,0,0,.54);font-size:13px;padding-top:10px;text-align:center;vertical-align:top}.e-schedule .e-vertical-view .e-left-indent-wrap table tbody td.e-resource-cells{border-bottom-color:transparent}.e-schedule .e-vertical-view .e-date-header-wrap table tbody td.e-header-cells{border-bottom-width:0}.e-schedule .e-vertical-view .e-time-cells-wrap table td{color:rgba(0,0,0,.54);border-bottom-color:transparent}.e-schedule .e-vertical-view .e-time-cells-wrap .e-time-cells{border-bottom-color:rgba(0,0,0,.12)}.e-schedule .e-vertical-view .e-header-cells.e-current-day{color:#ff4081}.e-schedule .e-vertical-view .e-work-cells{background-color:#fafafa;border-color:rgba(0,0,0,.12);border-style:solid;border-width:0 0 1px 1px;padding:0}.e-schedule .e-vertical-view .e-work-cells:hover{background:#f5f5f5;color:#000}.e-schedule .e-vertical-view .e-alternate-cells{border-bottom-style:dotted}.e-schedule .e-vertical-view .e-all-day-cells,.e-schedule .e-vertical-view .e-work-hours{background-color:#fff}.e-schedule .e-vertical-view .e-all-day-cells.e-current-day{color:#ff4081}.e-schedule .e-vertical-view .e-all-day-cells.e-selected-cell,.e-schedule .e-vertical-view .e-selected-cell{background-color:#e0e0e0;color:#000}.e-schedule .e-vertical-view .e-all-day-cells.e-selected-cell:hover,.e-schedule .e-vertical-view .e-selected-cell:hover{background-color:#e0e0e0}.e-schedule .e-month-agenda-view .e-date-header-wrap table td.e-current-day,.e-schedule .e-month-view .e-date-header-wrap table td.e-current-day,.e-schedule .e-vertical-view .e-clone-time-indicator,.e-schedule .e-vertical-view .e-current-time{color:#ff4081}.e-schedule .e-vertical-view .e-current-timeline{border-top:1px solid #ff4081}.e-schedule .e-vertical-view .e-previous-timeline{border-top:1px dotted #ff4081}.e-schedule .e-vertical-view.e-by-date .e-date-header-wrap table tbody td.e-header-cells{border-bottom-width:1px}.e-schedule .e-month-agenda-view .e-date-header-wrap table td,.e-schedule .e-month-view .e-date-header-wrap table td,.e-schedule .e-vertical-view .e-date-header-wrap table tbody td{background-color:#fff;border-color:rgba(0,0,0,.12);border-style:solid;border-width:0 0 1px 1px;color:rgba(0,0,0,.87);text-align:left}.e-schedule .e-month-agenda-view .e-date-header-wrap table td{border-width:0 0 1px;text-align:center}.e-schedule .e-month-view .e-work-cells{border-width:0 0 1px 1px}.e-schedule .e-month-agenda-view .e-work-cells,.e-schedule .e-month-view .e-work-cells{background-color:#fafafa;border-color:rgba(0,0,0,.12);border-style:solid;color:rgba(0,0,0,.87);padding:0}.e-schedule .e-month-agenda-view .e-work-cells:hover,.e-schedule .e-month-view .e-work-cells:hover{background:#f5f5f5;color:#000}.e-schedule .e-month-agenda-view .e-work-days,.e-schedule .e-month-view .e-work-days{background-color:#fff}.e-schedule .e-month-agenda-view .e-other-month,.e-schedule .e-month-view .e-other-month{color:rgba(0,0,0,.54)}.e-schedule .e-month-view .e-current-date .e-date-header{background-color:#ff4081;border-radius:50%;color:#fff;width:20px}.e-schedule .e-month-agenda-view .e-current-date .e-date-header{background-color:#ff4081;border-radius:50%;color:#fff}.e-schedule .e-month-agenda-view .e-selected-cell,.e-schedule .e-month-view .e-selected-cell{background-color:#e0e0e0;color:rgba(0,0,0,.87)}.e-schedule .e-month-agenda-view .e-selected-cell .e-more-indicator,.e-schedule .e-month-view .e-selected-cell .e-more-indicator{color:rgba(0,0,0,.87)}.e-schedule .e-month-agenda-view .e-selected-cell:hover,.e-schedule .e-month-view .e-selected-cell:hover{background-color:#e0e0e0}.e-schedule .e-month-agenda-view .e-work-cells{border-width:0}.e-schedule .e-month-agenda-view .e-current-date .e-date-header{width:24px}.e-schedule .e-timeline-month-view .e-content-wrap table td:first-child,.e-schedule .e-timeline-month-view .e-date-header-wrap table td:first-child,.e-schedule .e-timeline-view .e-content-wrap table td:first-child,.e-schedule .e-timeline-view .e-date-header-wrap table td:first-child{border-left-width:0}.e-schedule .e-timeline-month-view .e-content-wrap table tr:last-child td,.e-schedule .e-timeline-view .e-content-wrap table tr:last-child td{border-bottom-width:0}.e-schedule .e-timeline-month-view .e-date-header-wrap table td,.e-schedule .e-timeline-month-view .e-work-cells,.e-schedule .e-timeline-view .e-date-header-wrap table td,.e-schedule .e-timeline-view .e-work-cells{background-color:#fff;border-color:rgba(0,0,0,.12);border-style:solid;border-width:0 0 1px 1px;color:rgba(0,0,0,.87)}.e-schedule .e-timeline-month-view .e-date-header-wrap table td.e-current-day,.e-schedule .e-timeline-view .e-date-header-wrap table td.e-current-day{color:#ff4081}.e-schedule .e-timeline-month-view .e-work-cells,.e-schedule .e-timeline-view .e-work-cells{background-color:#fafafa;padding:0}.e-schedule .e-timeline-month-view .e-work-cells:hover:not(.e-resource-group-cells),.e-schedule .e-timeline-view .e-work-cells:hover:not(.e-resource-group-cells){background:#f5f5f5;color:#000}.e-schedule .e-timeline-month-view.e-virtual-mask .e-work-cells:hover,.e-schedule .e-timeline-view.e-virtual-mask .e-work-cells:hover{background-color:rgba(0,0,0,.08)}.e-schedule .e-timeline-month-view .e-work-days,.e-schedule .e-timeline-view .e-work-days{background-color:#fff}.e-schedule .e-timeline-month-view .e-resource-group-cells{background-color:#fafafa}.e-schedule .e-timeline-view .e-selected-cell{color:rgba(0,0,0,.87)}.e-schedule .e-timeline-month-view .e-selected-cell{background-color:#e0e0e0;color:rgba(0,0,0,.87)}.e-schedule .e-timeline-month-view .e-selected-cell:hover:not(.e-resource-group-cells),.e-schedule .e-timeline-view .e-selected-cell:hover:not(.e-resource-group-cells){background-color:#e0e0e0}.e-schedule .e-timeline-view .e-work-hours{background-color:#fff}.e-schedule .e-timeline-view .e-resource-group-cells{background-color:#fafafa}.e-schedule .e-timeline-view .e-selected-cell{background-color:#e0e0e0;color:#000}.e-schedule .e-timeline-view .e-selected-cell:hover{background-color:#e0e0e0}.e-schedule .e-timeline-view .e-alternate-cells{border-left-style:dotted}.e-schedule .e-timeline-view .e-header-row .e-time-cells{border-left-width:0}.e-schedule .e-timeline-view .e-clone-time-indicator,.e-schedule .e-timeline-view .e-current-time{color:#ff4081;font-size:11px}.e-schedule .e-timeline-view .e-current-timeline{border-left:1px solid #ff4081}.e-schedule.e-rtl .e-month-view .e-content-wrap table td:first-child,.e-schedule.e-rtl .e-month-view .e-date-header-wrap table td:first-child,.e-schedule.e-rtl .e-timeline-month-view .e-content-wrap table td:first-child,.e-schedule.e-rtl .e-timeline-month-view .e-date-header-wrap table td:first-child,.e-schedule.e-rtl .e-timeline-view .e-content-wrap table td:first-child,.e-schedule.e-rtl .e-timeline-view .e-date-header-wrap table td:first-child,.e-schedule.e-rtl .e-vertical-view .e-content-wrap table td:first-child,.e-schedule.e-rtl .e-vertical-view .e-date-header-wrap table tbody td:first-child{border-right-width:0}.e-schedule.e-rtl .e-month-view .e-date-header-wrap table td,.e-schedule.e-rtl .e-month-view .e-work-cells,.e-schedule.e-rtl .e-timeline-month-view .e-content-wrap table td,.e-schedule.e-rtl .e-timeline-month-view .e-date-header-wrap table td,.e-schedule.e-rtl .e-timeline-view .e-content-wrap table td,.e-schedule.e-rtl .e-timeline-view .e-date-header-wrap table td,.e-schedule.e-rtl .e-vertical-view .e-date-header-wrap table tbody td,.e-schedule.e-rtl .e-vertical-view .e-work-cells{border-width:0 1px 1px 0}.e-schedule.e-rtl .e-vertical-view .e-date-header-wrap .e-header-cells,.e-schedule.e-rtl .e-vertical-view .e-left-indent-wrap .e-header-cells{border-bottom-width:0}.e-schedule.e-rtl .e-vertical-view .e-left-indent-wrap table tbody td,.e-schedule.e-rtl .e-vertical-view .e-time-cells-wrap table tbody td{border-width:0 0 1px 1px}.e-schedule.e-rtl .e-month-agenda-view .e-work-cells{border-width:0}.e-schedule.e-rtl .e-timeline-month-view .e-content-wrap table td:last-child,.e-schedule.e-rtl .e-timeline-month-view .e-date-header-wrap table td:last-child,.e-schedule.e-rtl .e-timeline-view .e-content-wrap table td:last-child,.e-schedule.e-rtl .e-timeline-view .e-date-header-wrap table td:last-child{border-left-width:0}.e-schedule.e-rtl .e-timeline-view .e-alternate-cells{border-right-style:dotted}.e-schedule.e-rtl .e-timeline-view .e-header-row .e-time-cells{border-right-width:0}.e-tooltip-wrap.e-schedule-error{background-color:#fcdbe4;border-color:#fcdbe4;z-index:1000}.e-tooltip-wrap.e-schedule-error .e-arrow-tip.e-tip-top{left:44%}.e-tooltip-wrap.e-schedule-error .e-arrow-tip-inner.e-tip-top,.e-tooltip-wrap.e-schedule-error .e-arrow-tip-outer.e-tip-top{border-bottom:8px solid #fcdbe4;color:#fcdbe4}.e-tooltip-wrap.e-schedule-error .e-arrow-tip-inner.e-tip-bottom,.e-tooltip-wrap.e-schedule-error .e-arrow-tip-outer.e-tip-bottom{border-top:8px solid #fcdbe4;color:#fcdbe4}.e-tooltip-wrap.e-schedule-error .e-tip-content{padding:3px 6px;color:#f44336}.e-tooltip-wrap.e-schedule-error .e-tip-content label{color:#f44336}.e-gantt{display:block;width:100%}.e-gantt .e-cloneproperties{border-style:solid;border-width:1px;box-shadow:0 0;font-size:12px;font-weight:500;opacity:1;overflow:hidden;padding:4px 5px;text-align:center;user-select:none;vertical-align:middle;white-space:nowrap;z-index:100}.e-gantt .e-cloneproperties.e-draganddrop .e-row .e-icon-rowdragicon::before{left:-5px;position:relative}.e-gantt .e-cloneproperties.e-draganddrop{border-spacing:0;font-size:12px;font-weight:400;overflow:visible}.e-gantt .e-cloneproperties .e-bothganttlines{border-width:1px 0 0 1px}.e-gantt .e-draganddrop{border-width:0 1px 1px;font-weight:400;padding:0}.e-gantt .e-draganddrop .e-rowcell{opacity:.95}.e-gantt .e-cloneproperties.e-draganddrop table{border-spacing:0}.e-gantt .e-icons.e-errorelem{display:inline-block;padding-left:10px;vertical-align:middle}.e-gantt .e-errorelem::before{color:#e3165b;content:"\e22a";transform:rotate(180deg)}.e-gantt .e-bothlines .e-cloneproperties.e-draganddrop .e-rowdragdrop,.e-gantt .e-verticallines .e-cloneproperties.e-draganddrop .e-rowdragdrop{border-bottom:0;border-right:1px solid #e0e0e0;border-top:1px solid #e0e0e0}.e-gantt .e-gantt-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0;border-style:solid;border-width:1px 1px 0}.e-gantt .e-flmenu-valuediv{padding-top:24px}.e-gantt .e-gantt-splitter .e-split-bar.e-split-bar-horizontal.e-resizable-split-bar{margin:0}.e-gantt .e-gantt-splitter .e-pane{overflow:hidden!important}.e-gantt .e-temp-content{border-left:1px solid}.e-gantt .e-tab,.e-gantt-dialog{border:0}.e-gantt .e-tab .e-tab-header .e-toolbar-item.e-active{border-color:transparent}.e-gantt .e-gantt-tree-grid-pane .e-grid{border-width:0}.e-gantt .e-gantt-tree-grid-pane .e-grid.e-gridhover tr[role=row]:hover .e-detailrowcollapse:not(.e-cellselectionbackground):not(.e-active):not(.e-updatedtd):not(.e-indentcell),.e-gantt .e-gantt-tree-grid-pane .e-grid.e-gridhover tr[role=row]:hover .e-detailrowexpand:not(.e-cellselectionbackground):not(.e-active):not(.e-updatedtd):not(.e-indentcell),.e-gantt .e-gantt-tree-grid-pane .e-grid.e-gridhover tr[role=row]:hover .e-rowdragdrop:not(.e-cellselectionbackground):not(.e-active):not(.e-updatedtd):not(.e-indentcell),.e-gantt .e-gantt-tree-grid-pane .e-grid.e-gridhover tr[role=row]:not(.e-editedrow):hover .e-rowcell:not(.e-cellselectionbackground):not(.e-active):not(.e-updatedtd):not(.e-indentcell),.e-gantt .e-gantt-tree-grid-pane .e-grid.e-rtl .e-gridhover tr[role=row]:hover .e-rowdragdrop:not(.e-cellselectionbackground):not(.e-active):not(.e-updatedtd):not(.e-indentcell){background-color:transparent}.e-gantt .e-gantt-tree-grid-pane .e-gantt-temp-header{border-bottom-style:solid;border-bottom-width:1px;height:45px}.e-gantt .e-gantt-tree-grid-pane .e-headercontent{border-right-width:0!important}.e-gantt .e-gantt-tree-grid-pane .e-gridheader{border-top-style:none;border-top-width:0;padding-right:0!important}.e-gantt .e-gantt-tree-grid-pane .e-columnheader,.e-gantt .e-gantt-tree-grid-pane .e-headercell{height:63px!important}.e-gantt .e-gantt-tree-grid-pane .e-gridcontent .e-content{overflow-x:scroll!important}.e-gantt .e-gantt-tree-grid-pane .e-gridcontent .e-content.e-gantt-scroll-padding{width:calc(100% + 17px)}.e-gantt .e-gantt-tree-grid-pane .e-ganttnotes-info{text-align:center}.e-gantt .e-gantt-tree-grid-pane .e-icons.e-notes-info{display:inline-block;font-size:18px;height:15px;line-height:10px;vertical-align:middle}.e-gantt .e-gantt-chart{height:100%;overflow:hidden;position:relative;width:100%}.e-gantt .e-gantt-chart .e-chart-root-container{border-right:0 solid}.e-gantt .e-gantt-chart .e-chart-root-container .e-content{-webkit-overflow-scrolling:touch;overflow-x:scroll;overflow-y:auto;position:relative}.e-gantt .e-gantt-chart .e-chart-root-container .e-event-markers-container,.e-gantt .e-gantt-chart .e-chart-root-container .e-holiday-container,.e-gantt .e-gantt-chart .e-chart-root-container .e-nonworking-day-container,.e-gantt .e-gantt-chart .e-chart-root-container .e-weekend-container{position:absolute}.e-gantt .e-gantt-chart .e-timeline-header-container{border-bottom-style:solid;border-right-width:0;overflow:hidden;position:relative;z-index:6}.e-gantt .e-gantt-chart .e-timeline-header-table-container>thead>tr>th{border-left:0;padding:0 3px}.e-gantt .e-gantt-chart .e-timeline-header-table-container{border-collapse:collapse;border-spacing:0;border-width:0;box-sizing:border-box;margin:0;padding:0}.e-gantt .e-gantt-chart .e-timeline-header-table-body{border-collapse:collapse;box-sizing:border-box;display:inline-block;transform:scale(1);white-space:nowrap}.e-gantt .e-gantt-chart .e-timeline-single-header-cell,.e-gantt .e-gantt-chart .e-timeline-top-header-cell{border-spacing:0;border-style:solid;border-top:0;border-width:1px;box-sizing:border-box;display:inline-flex;font-size:12px;font-weight:500;margin:0;padding:0;position:static;text-align:center;user-select:none;white-space:nowrap}.e-gantt .e-gantt-chart .e-timeline-single-header-cell .e-header-cell-label,.e-gantt .e-gantt-chart .e-timeline-top-header-cell .e-header-cell-label{box-sizing:border-box;margin:auto;overflow:hidden;position:static;text-overflow:ellipsis;white-space:nowrap}.e-gantt .e-gantt-chart .e-timeline-single-header-cell .e-gantt-top-cell-text,.e-gantt .e-gantt-chart .e-timeline-top-header-cell .e-gantt-top-cell-text{padding-left:8px;text-align:left}.e-gantt .e-gantt-chart .e-gantt-grid-lines{border-bottom-style:solid;border-bottom-width:1px;border-collapse:collapse;border-spacing:0;box-sizing:border-box}.e-gantt .e-gantt-chart .e-zero-spacing{border-spacing:0}.e-gantt .e-gantt-chart .e-chart-row:first-child .e-chart-row-border{border-top-color:transparent}.e-gantt .e-gantt-chart .e-chart-row .e-chart-row-border{border-collapse:separate;border-style:solid;border-width:1px 0 0}.e-gantt .e-gantt-chart .e-chart-row .e-chart-row-cell{font-size:0;padding:0}.e-gantt .e-gantt-chart .e-chart-row .e-chart-row-border.e-lastrow{border-bottom-width:1px}.e-gantt .e-gantt-chart .e-line-container-cell{border-right-style:solid;border-right-width:1px;height:100%;position:absolute}.e-gantt .e-gantt-chart .e-taskbar-main-container{cursor:move;display:inline-block;position:absolute;vertical-align:middle;z-index:3}.e-gantt .e-gantt-chart .e-left-label-container.e-left-label-temp-container{align-items:center;display:inline-flex;justify-content:flex-end;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.e-gantt .e-gantt-chart .e-right-label-container.e-right-label-temp-container{align-items:center;display:inline-flex;float:left;outline:0;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap}.e-gantt .e-gantt-chart .e-left-label-container{display:inline-block}.e-gantt .e-gantt-chart .e-left-label-inner-div,.e-gantt .e-gantt-chart .e-right-label-container{overflow:hidden}.e-gantt .e-gantt-chart .e-left-label-inner-div{align-items:center;display:inline-flex;justify-content:flex-end;width:100%}.e-gantt .e-gantt-chart .e-label{margin:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.e-gantt .e-gantt-chart .e-right-label-container{background-color:transparent;display:inline-block;margin:0;position:absolute}.e-gantt .e-gantt-chart .e-right-label-inner-div{align-items:center;display:inline-flex;float:left;outline:0;overflow:hidden}.e-gantt .e-gantt-chart .e-indicator-span{display:inline-block;font-size:13px;font-weight:400;overflow:hidden;position:absolute;text-overflow:ellipsis}.e-gantt .e-gantt-chart .e-gantt-child-progressbar,.e-gantt .e-gantt-chart .e-gantt-child-taskbar,.e-gantt .e-gantt-chart .e-gantt-manualparent-milestone,.e-gantt .e-gantt-chart .e-gantt-milestone,.e-gantt .e-gantt-chart .e-gantt-parent-milestone,.e-gantt .e-gantt-chart .e-gantt-parent-progressbar,.e-gantt .e-gantt-chart .e-gantt-parent-taskbar{display:inline-block;width:100%}.e-gantt .e-gantt-chart .e-manualparent-main-container{background-color:transparent;cursor:move;margin-top:-5px;position:absolute}.e-gantt .e-gantt-chart .e-gantt-manualparent-taskbar{margin-top:3px}.e-gantt .e-gantt-chart .e-gantt-split-container-line{border-color:inherit;border-top-style:dotted;border-top-width:2px;height:0;left:2px;pointer-events:none;position:absolute;top:50%;width:98%}.e-gantt .e-gantt-chart .e-gantt-child-taskbar-inner-div,.e-gantt .e-gantt-chart .e-gantt-parent-taskbar-inner-div{border-spacing:0;box-sizing:border-box;margin:auto;overflow:hidden;padding:0;z-index:3}.e-gantt .e-gantt-chart .e-gantt-parent-progressbar-inner-div{z-index:3}.e-gantt .e-gantt-chart .e-gantt-child-progressbar-inner-div,.e-gantt .e-gantt-chart .e-gantt-parent-progressbar-inner-div{box-sizing:border-box;text-align:right}.e-gantt .e-gantt-chart .e-chart-rows-container,.e-gantt .e-gantt-chart .e-chart-scroll-container{user-select:none}.e-gantt .e-gantt-chart .e-chart-rows-container{line-height:initial}.e-gantt .e-gantt-chart .e-taskbar-left-resizer,.e-gantt .e-gantt-chart .e-taskbar-right-resizer{display:inline-block;position:absolute;top:0;width:10px;z-index:4}.e-gantt .e-gantt-chart .e-child-progress-resizer{display:inline-block;height:15px;position:absolute;top:0;width:20px;z-index:5}.e-gantt .e-gantt-chart .e-progress-resize-gripper{cursor:col-resize}.e-gantt .e-gantt-chart .e-progress-resize-gripper .e-progressbar-handler{border-style:solid;border-width:1px;box-sizing:content-box;cursor:col-resize;height:2px;position:absolute;top:7px;width:12px}.e-gantt .e-gantt-chart .e-progress-resize-gripper .e-progressbar-handler-after,.e-gantt .e-gantt-chart .e-progress-resize-gripper .e-progressbar-handler-element{border-bottom-style:solid;border-bottom-width:6px;border-left:7px solid transparent;border-right:7px solid transparent;cursor:col-resize;height:0;left:-1px;position:absolute;top:-7px;width:0}.e-gantt .e-gantt-chart .e-progress-resize-gripper .e-progressbar-handler-after{border-left:6px solid transparent;border-right:6px solid transparent;top:-6px}.e-gantt .e-gantt-chart .e-baseline-bar{box-sizing:border-box;position:absolute;z-index:3}.e-gantt .e-gantt-chart .e-manualparent-milestone-top,.e-gantt .e-gantt-chart .e-milestone-top,.e-gantt .e-gantt-chart .e-parent-milestone-top{border-style:none solid solid;border-top:0}.e-gantt .e-gantt-chart .e-manualparent-milestone-bottom,.e-gantt .e-gantt-chart .e-manualparent-milestone-top,.e-gantt .e-gantt-chart .e-milestone-bottom,.e-gantt .e-gantt-chart .e-milestone-top,.e-gantt .e-gantt-chart .e-parent-milestone-bottom,.e-gantt .e-gantt-chart .e-parent-milestone-top{border-left-color:transparent;border-right-color:transparent}.e-gantt .e-gantt-chart .e-manualparent-milestone-bottom,.e-gantt .e-gantt-chart .e-milestone-bottom,.e-gantt .e-gantt-chart .e-parent-milestone-bottom{border-bottom:0;border-style:solid solid none}.e-gantt .e-gantt-chart .e-baseline-gantt-milestone-container{position:absolute;z-index:2}.e-gantt .e-gantt-chart .e-task-label{display:inline;font-weight:400;margin-left:8px;margin-right:15px;vertical-align:middle}.e-gantt .e-gantt-chart .e-task-table{overflow:hidden}.e-gantt .e-gantt-chart .e-left-resize-gripper,.e-gantt .e-gantt-chart .e-right-resize-gripper{align-items:center;cursor:e-resize;display:inline-flex}.e-gantt .e-gantt-chart .e-holiday,.e-gantt .e-gantt-chart .e-weekend{display:inline-block;position:absolute}.e-gantt .e-gantt-chart .e-holiday .e-span{font-size:13px;position:absolute;transform:rotate(-90deg);white-space:nowrap;width:0}.e-gantt .e-gantt-chart .e-weekend{z-index:0}.e-gantt .e-gantt-chart .e-rangecontainer .e-leftarc{border-bottom-left-radius:2px;border-top-left-radius:2px;position:absolute}.e-gantt .e-gantt-chart .e-rangecontainer .e-rightarc{border-bottom-right-radius:2px;border-top-right-radius:2px;position:absolute}.e-gantt .e-gantt-chart .e-event-markers{border-left:1px dashed;position:absolute;width:1px;z-index:2}.e-gantt .e-gantt-chart .e-event-markers .e-span-label{border-radius:3px;font-weight:500;height:30px;left:5px;line-height:1.4;padding:7px 12px;position:absolute;top:50px;white-space:nowrap;width:auto;z-index:2}.e-gantt .e-gantt-chart .e-event-markers .e-gantt-right-arrow{border-bottom:5px solid transparent;border-right:5px solid;border-top:5px solid transparent;height:0;position:absolute;top:60px;width:0}.e-gantt .e-gantt-chart .e-gantt-unscheduled-taskbar{border-radius:0;border-style:none;display:inline-block}.e-gantt .e-gantt-chart .e-connector-line-right-arrow{border-left-style:solid;border-left-width:10px}.e-gantt .e-gantt-chart .e-connector-line-left-arrow{border-right-style:solid;border-right-width:10px}.e-gantt .e-gantt-chart .e-connector-line-left-arrow,.e-gantt .e-gantt-chart .e-connector-line-right-arrow{border-bottom:5px solid transparent;border-top:5px solid transparent}.e-gantt .e-gantt-chart .e-connector-line-container{z-index:5}.e-gantt .e-gantt-chart .e-connector-line-z-index{z-index:1}.e-gantt .e-gantt-chart .e-connector-line-hover{outline:1px solid}.e-gantt .e-gantt-chart .e-connector-line-hover-z-index{z-index:100}.e-gantt .e-gantt-chart .e-connectortouchpoint{background-color:transparent;display:block;position:absolute;z-index:5}.e-gantt .e-gantt-chart .e-connectorpoint-left,.e-gantt .e-gantt-chart .e-connectorpoint-right,.e-gantt .e-gantt-chart .e-left-connectorpoint-outer-div,.e-gantt .e-gantt-chart .e-right-connectorpoint-outer-div{border-radius:50%;display:inline-block;position:absolute}.e-gantt .e-gantt-chart .e-connectorpoint-left-hover,.e-gantt .e-gantt-chart .e-connectorpoint-right-hover{border-style:solid;border-width:1px;box-sizing:content-box;cursor:pointer;display:inline-block}.e-gantt .e-gantt-chart .e-connectorpoint-allow-block{cursor:no-drop}.e-gantt .e-gantt-chart .e-gantt-manualparenttaskbar-left,.e-gantt .e-gantt-chart .e-gantt-manualparenttaskbar-right{background-color:#989a9c;border-color:#989a9c;border-radius:50%;display:inline-block;height:10px;margin:-1px;position:absolute;width:10px}.e-gantt .e-gantt-chart .e-manualparent-milestone-bottom,.e-gantt .e-gantt-chart .e-manualparent-milestone-top{border-bottom-color:#989a9c}.e-gantt .e-gantt-chart .e-gantt-manualparenttaskbar-right{cursor:e-resize;margin-left:-8px}.e-gantt .e-gantt-chart .e-gantt-manualparenttaskbar-left{margin-left:0}.e-gantt .e-gantt-chart .e-gantt-manualparenttaskbar{background:#989a9c;margin-top:3px;position:absolute}.e-gantt .e-gantt-chart .e-icon{font-family:"e-icons";font-size:13px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;vertical-align:middle}.e-gantt .e-gantt-chart .e-active-container{outline:1px solid;outline-offset:2px}.e-gantt-dialog .e-tab .e-tab-header{padding-left:0}.e-gantt-dialog .e-tab .e-tab-header .e-indicator{display:block}.e-gantt-dialog .e-tab .e-tab-header .e-toolbar-item .e-tab-wrap{border-style:solid;border-width:0}.e-gantt-dialog .e-tab .e-tab-header:not(.e-vertical)::before{border:0}.e-gantt-dialog .e-gridform .e-table{border-spacing:0}.e-gantt-dialog .e-item{height:241px}.e-gantt-dialog .e-dependent-div{border-bottom-width:1px}.e-gantt-dialog .e-icon-dlg-close{opacity:initial}.e-gantt-dialog .e-resource-div .e-gridheader,.e-gantt-dialog .e-toolbar{border-top-width:0}.e-gantt-dialog .e-resource-div{border-bottom-width:1px}.e-gantt-dialog .e-edit-form-row{height:241px;overflow-y:auto;padding-bottom:16px}.e-gantt-dialog .e-edit-form-column:nth-child(odd){float:left;padding:16px 18px 0;width:50%}.e-gantt-dialog .e-edit-form-column:nth-child(even){float:left;padding:16px 16px 0 0;width:50%}.e-gantt-dialog .e-edit-form-row.e-scroll .e-edit-form-column:nth-child(even){padding:16px 16px 0 0}.e-gantt-dialog .e-edit-form-column{height:75px}.e-gantt-dialog .e-dependent-div .e-content{height:153px}.e-gantt-dialog .e-resource-div .e-content{height:196px}.e-gantt-dialog .e-richtexteditor{border-bottom-width:1px;height:241px!important;overflow:hidden}.e-gantt-dialog .e-richtexteditor.e-rte-tb-expand{border-top:0}.e-gantt-dialog .e-richtexteditor .e-rte-content{border-bottom-width:0;height:198px}.e-gantt-dialog>.e-dlg-content{padding:0!important}.e-gantt-dialog .e-dlg-header-content{border-bottom:0!important;border-radius:0;padding-bottom:4px}.e-gantt-dialog .e-dlg-header-content .e-btn.e-dlg-closeicon-btn{border-radius:50%}.e-icon-rowselect::before{content:"\e930"}.e-ganttpopup{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;font-weight:400;position:absolute;user-select:none;z-index:99999}.e-ganttpopup .e-rowselect{line-height:18px;text-indent:7%}.e-ganttpopup span{border:1px solid transparent;cursor:pointer;display:inline-block;height:26px;padding:4px;width:26px}.e-ganttpopup .e-content{border-radius:4px;border-style:solid;border-width:1px;font-size:14px;padding:4px}.e-ganttpopup .e-ganttpopup,.e-ganttpopup .e-tail::after,.e-ganttpopup .e-tail::before{border:10px solid transparent;content:"";height:0;left:8px;position:absolute;width:0}.e-ganttpopup .e-downtail::after{top:34px}.e-gantt-tooltip.e-tooltip-wrap{opacity:1}.e-gantt .e-cloneproperties.e-draganddrop .e-row .e-rowcell .e-treecolumn-container .e-icons.e-none::before{content:""}.e-bigger .e-gantt .e-gantt-chart .e-label{font-size:14px}.e-gantt-tooltip-label{padding-bottom:2px;padding-right:2px;text-align:left}.e-gantt.e-device .e-edit-form-column:nth-child(even),.e-gantt.e-device .e-edit-form-column:nth-child(odd){float:none;padding:16px 18px 0;width:100%}.e-gantt.e-device .e-edit-form-row{height:auto}.e-gantt.e-device .e-adaptive-searchbar{padding:5px 10px;width:90%}.e-gantt.e-device .e-backarrowspan{font-size:16px;padding:5px 10px}.e-gantt.e-device .e-gantt-dialog{max-height:none}.e-gantt.e-device .e-gantt-dialog .e-dlg-closeicon-btn{float:left;left:-4px}.e-gantt.e-device .e-gantt-dialog .e-icon-dlg-close{font-size:16px}.e-gantt.e-device .e-gantt-dialog .e-dlg-header{display:inline-block}.e-gantt.e-device .e-toolbar-item{padding:7px}.e-gantt.e-device .e-toolbar .e-icons{font-size:18px}.e-gantt.e-device .e-gridheader .e-icons{font-size:12px}.e-gantt.e-device .e-left-resize-gripper,.e-gantt.e-device .e-right-resize-gripper{border:7px solid;z-index:-1}.e-gantt.e-device .e-left-resize-gripper::before,.e-gantt.e-device .e-right-resize-gripper::before{font-size:14px;margin-left:-7px}.e-gantt.e-device .e-dependent-div .e-content,.e-gantt.e-device .e-resource-div .e-content,.e-gantt.e-device .e-richtexteditor,.e-gantt.e-device .e-richtexteditor .e-rte-content{height:100%}
57
+ .e-schedule{background-color:#fff;border:1px solid rgba(0,0,0,.12)}.e-schedule .e-date-header-wrap{border-color:rgba(0,0,0,.12);border-style:solid;border-width:0;position:relative}.e-schedule .e-month-view .e-content-wrap table td:first-child,.e-schedule .e-month-view .e-date-header-wrap table td:first-child,.e-schedule .e-vertical-view .e-content-wrap table td:first-child,.e-schedule .e-vertical-view .e-date-header-wrap table tbody td:first-child{border-left-width:0}.e-schedule .e-vertical-view .e-date-header-wrap .e-all-day-cells,.e-schedule .e-vertical-view .e-header-cells{background-color:#fff}.e-schedule .e-vertical-view .e-date-header-wrap .e-all-day-cells:hover{background:#f5f5f5}.e-schedule .e-vertical-view .e-left-indent-wrap table tbody td,.e-schedule .e-vertical-view .e-time-cells-wrap table td{background-color:#fff;border-color:rgba(0,0,0,.12);border-style:solid;border-width:0 1px 1px 0;color:rgba(0,0,0,.87)}.e-schedule .e-vertical-view .e-left-indent-wrap table tbody td.e-header-cells{border-bottom-width:0}.e-schedule .e-vertical-view .e-left-indent-wrap table tbody td.e-header-cells.e-week-number{color:rgba(0,0,0,.54);font-size:13px;padding-top:10px;text-align:center;vertical-align:top}.e-schedule .e-vertical-view .e-left-indent-wrap table tbody td.e-resource-cells{border-bottom-color:transparent}.e-schedule .e-vertical-view .e-date-header-wrap table tbody td.e-header-cells{border-bottom-width:0}.e-schedule .e-vertical-view .e-time-cells-wrap table td{color:rgba(0,0,0,.54);border-bottom-color:transparent}.e-schedule .e-vertical-view .e-time-cells-wrap .e-time-cells{border-bottom-color:rgba(0,0,0,.12)}.e-schedule .e-vertical-view .e-header-cells.e-current-day{color:#ff4081}.e-schedule .e-vertical-view .e-work-cells{background-color:#fafafa;border-color:rgba(0,0,0,.12);border-style:solid;border-width:0 0 1px 1px;padding:0}.e-schedule .e-vertical-view .e-work-cells:hover{background:#f5f5f5;color:#000}.e-schedule .e-vertical-view .e-alternate-cells{border-bottom-style:dotted}.e-schedule .e-vertical-view .e-all-day-cells,.e-schedule .e-vertical-view .e-work-hours{background-color:#fff}.e-schedule .e-vertical-view .e-all-day-cells.e-current-day{color:#ff4081}.e-schedule .e-vertical-view .e-all-day-cells.e-selected-cell,.e-schedule .e-vertical-view .e-selected-cell{background-color:#e0e0e0;color:#000}.e-schedule .e-vertical-view .e-all-day-cells.e-selected-cell:hover,.e-schedule .e-vertical-view .e-selected-cell:hover{background-color:#e0e0e0}.e-schedule .e-month-agenda-view .e-date-header-wrap table td.e-current-day,.e-schedule .e-month-view .e-date-header-wrap table td.e-current-day,.e-schedule .e-vertical-view .e-clone-time-indicator,.e-schedule .e-vertical-view .e-current-time{color:#ff4081}.e-schedule .e-vertical-view .e-current-timeline{border-top:1px solid #ff4081}.e-schedule .e-vertical-view .e-previous-timeline{border-top:1px dotted #ff4081}.e-schedule .e-vertical-view.e-by-date .e-date-header-wrap table tbody td.e-header-cells{border-bottom-width:1px}.e-schedule .e-month-agenda-view .e-date-header-wrap table td,.e-schedule .e-month-view .e-date-header-wrap table td,.e-schedule .e-vertical-view .e-date-header-wrap table tbody td{background-color:#fff;border-color:rgba(0,0,0,.12);border-style:solid;border-width:0 0 1px 1px;color:rgba(0,0,0,.87);text-align:left}.e-schedule .e-month-agenda-view .e-date-header-wrap table td{border-width:0 0 1px;text-align:center}.e-schedule .e-month-view .e-work-cells{border-width:0 0 1px 1px}.e-schedule .e-month-agenda-view .e-work-cells,.e-schedule .e-month-view .e-work-cells{background-color:#fafafa;border-color:rgba(0,0,0,.12);border-style:solid;color:rgba(0,0,0,.87);padding:0}.e-schedule .e-month-agenda-view .e-work-cells:hover,.e-schedule .e-month-view .e-work-cells:hover{background:#f5f5f5;color:#000}.e-schedule .e-month-agenda-view .e-work-days,.e-schedule .e-month-view .e-work-days{background-color:#fff}.e-schedule .e-month-agenda-view .e-other-month,.e-schedule .e-month-view .e-other-month{color:rgba(0,0,0,.54)}.e-schedule .e-month-view .e-current-date .e-date-header{background-color:#ff4081;border-radius:50%;color:#fff;width:20px}.e-schedule .e-month-agenda-view .e-current-date .e-date-header{background-color:#ff4081;border-radius:50%;color:#fff}.e-schedule .e-month-agenda-view .e-selected-cell,.e-schedule .e-month-view .e-selected-cell{background-color:#e0e0e0;color:rgba(0,0,0,.87)}.e-schedule .e-month-agenda-view .e-selected-cell .e-more-indicator,.e-schedule .e-month-view .e-selected-cell .e-more-indicator{color:rgba(0,0,0,.87)}.e-schedule .e-month-agenda-view .e-selected-cell:hover,.e-schedule .e-month-view .e-selected-cell:hover{background-color:#e0e0e0}.e-schedule .e-month-agenda-view .e-work-cells{border-width:0}.e-schedule .e-month-agenda-view .e-current-date .e-date-header{width:24px}.e-schedule .e-timeline-month-view .e-content-wrap table td:first-child,.e-schedule .e-timeline-month-view .e-date-header-wrap table td:first-child,.e-schedule .e-timeline-view .e-content-wrap table td:first-child,.e-schedule .e-timeline-view .e-date-header-wrap table td:first-child{border-left-width:0}.e-schedule .e-timeline-month-view .e-content-wrap table tr:last-child td,.e-schedule .e-timeline-view .e-content-wrap table tr:last-child td{border-bottom-width:0}.e-schedule .e-timeline-month-view .e-date-header-wrap table td,.e-schedule .e-timeline-month-view .e-work-cells,.e-schedule .e-timeline-view .e-date-header-wrap table td,.e-schedule .e-timeline-view .e-work-cells{background-color:#fff;border-color:rgba(0,0,0,.12);border-style:solid;border-width:0 0 1px 1px;color:rgba(0,0,0,.87)}.e-schedule .e-timeline-month-view .e-date-header-wrap table td.e-current-day,.e-schedule .e-timeline-view .e-date-header-wrap table td.e-current-day{color:#ff4081}.e-schedule .e-timeline-month-view .e-work-cells,.e-schedule .e-timeline-view .e-work-cells{background-color:#fafafa;padding:0}.e-schedule .e-timeline-month-view .e-work-cells:hover:not(.e-resource-group-cells),.e-schedule .e-timeline-view .e-work-cells:hover:not(.e-resource-group-cells){background:#f5f5f5;color:#000}.e-schedule .e-timeline-month-view.e-virtual-mask .e-work-cells:hover,.e-schedule .e-timeline-view.e-virtual-mask .e-work-cells:hover{background-color:rgba(0,0,0,.08)}.e-schedule .e-timeline-month-view .e-work-days,.e-schedule .e-timeline-view .e-work-days{background-color:#fff}.e-schedule .e-timeline-month-view .e-resource-group-cells{background-color:#fafafa}.e-schedule .e-timeline-view .e-selected-cell{color:rgba(0,0,0,.87)}.e-schedule .e-timeline-month-view .e-selected-cell{background-color:#e0e0e0;color:rgba(0,0,0,.87)}.e-schedule .e-timeline-month-view .e-selected-cell:hover:not(.e-resource-group-cells),.e-schedule .e-timeline-view .e-selected-cell:hover:not(.e-resource-group-cells){background-color:#e0e0e0}.e-schedule .e-timeline-view .e-work-hours{background-color:#fff}.e-schedule .e-timeline-view .e-resource-group-cells{background-color:#fafafa}.e-schedule .e-timeline-view .e-selected-cell{background-color:#e0e0e0;color:#000}.e-schedule .e-timeline-view .e-selected-cell:hover{background-color:#e0e0e0}.e-schedule .e-timeline-view .e-alternate-cells{border-left-style:dotted}.e-schedule .e-timeline-view .e-header-row .e-time-cells{border-left-width:0}.e-schedule .e-timeline-view .e-clone-time-indicator,.e-schedule .e-timeline-view .e-current-time{color:#ff4081;font-size:11px}.e-schedule .e-timeline-view .e-current-timeline{border-left:1px solid #ff4081}.e-schedule.e-rtl .e-month-view .e-content-wrap table td:first-child,.e-schedule.e-rtl .e-month-view .e-date-header-wrap table td:first-child,.e-schedule.e-rtl .e-timeline-month-view .e-content-wrap table td:first-child,.e-schedule.e-rtl .e-timeline-month-view .e-date-header-wrap table td:first-child,.e-schedule.e-rtl .e-timeline-view .e-content-wrap table td:first-child,.e-schedule.e-rtl .e-timeline-view .e-date-header-wrap table td:first-child,.e-schedule.e-rtl .e-vertical-view .e-content-wrap table td:first-child,.e-schedule.e-rtl .e-vertical-view .e-date-header-wrap table tbody td:first-child{border-right-width:0}.e-schedule.e-rtl .e-month-view .e-date-header-wrap table td,.e-schedule.e-rtl .e-month-view .e-work-cells,.e-schedule.e-rtl .e-timeline-month-view .e-content-wrap table td,.e-schedule.e-rtl .e-timeline-month-view .e-date-header-wrap table td,.e-schedule.e-rtl .e-timeline-view .e-content-wrap table td,.e-schedule.e-rtl .e-timeline-view .e-date-header-wrap table td,.e-schedule.e-rtl .e-vertical-view .e-date-header-wrap table tbody td,.e-schedule.e-rtl .e-vertical-view .e-work-cells{border-width:0 1px 1px 0}.e-schedule.e-rtl .e-vertical-view .e-date-header-wrap .e-header-cells,.e-schedule.e-rtl .e-vertical-view .e-left-indent-wrap .e-header-cells{border-bottom-width:0}.e-schedule.e-rtl .e-vertical-view .e-left-indent-wrap table tbody td,.e-schedule.e-rtl .e-vertical-view .e-time-cells-wrap table tbody td{border-width:0 0 1px 1px}.e-schedule.e-rtl .e-month-agenda-view .e-work-cells{border-width:0}.e-schedule.e-rtl .e-timeline-month-view .e-content-wrap table td:last-child,.e-schedule.e-rtl .e-timeline-month-view .e-date-header-wrap table td:last-child,.e-schedule.e-rtl .e-timeline-view .e-content-wrap table td:last-child,.e-schedule.e-rtl .e-timeline-view .e-date-header-wrap table td:last-child{border-left-width:0}.e-schedule.e-rtl .e-timeline-view .e-alternate-cells{border-right-style:dotted}.e-schedule.e-rtl .e-timeline-view .e-header-row .e-time-cells{border-right-width:0}.e-tooltip-wrap.e-schedule-error{background-color:#fcdbe4;border-color:#fcdbe4;z-index:1000}.e-tooltip-wrap.e-schedule-error .e-arrow-tip.e-tip-top{left:44%}.e-tooltip-wrap.e-schedule-error .e-arrow-tip-inner.e-tip-top,.e-tooltip-wrap.e-schedule-error .e-arrow-tip-outer.e-tip-top{border-bottom:8px solid #fcdbe4;color:#fcdbe4}.e-tooltip-wrap.e-schedule-error .e-arrow-tip-inner.e-tip-bottom,.e-tooltip-wrap.e-schedule-error .e-arrow-tip-outer.e-tip-bottom{border-top:8px solid #fcdbe4;color:#fcdbe4}.e-tooltip-wrap.e-schedule-error .e-tip-content{padding:3px 6px;color:#f44336}.e-tooltip-wrap.e-schedule-error .e-tip-content label{color:#f44336}.e-gantt{display:block;width:100%}.e-gantt .e-cloneproperties{border-style:solid;border-width:1px;box-shadow:0 0;font-size:12px;font-weight:500;opacity:1;overflow:hidden;padding:4px 5px;text-align:center;user-select:none;vertical-align:middle;white-space:nowrap;z-index:100}.e-gantt .e-cloneproperties.e-draganddrop .e-row .e-icon-rowdragicon::before{left:-5px;position:relative}.e-gantt .e-cloneproperties.e-draganddrop{border-spacing:0;font-size:12px;font-weight:400;overflow:visible}.e-gantt .e-cloneproperties .e-bothganttlines{border-width:1px 0 0 1px}.e-gantt .e-draganddrop{border-width:0 1px 1px;font-weight:400;padding:0}.e-gantt .e-draganddrop .e-rowcell{opacity:.95}.e-gantt .e-cloneproperties.e-draganddrop table{border-spacing:0}.e-gantt .e-icons.e-errorelem{display:inline-block;padding-left:10px;vertical-align:middle}.e-gantt .e-errorelem::before{color:#e3165b;content:"\e22a";transform:rotate(180deg)}.e-gantt .e-bothlines .e-cloneproperties.e-draganddrop .e-rowdragdrop,.e-gantt .e-verticallines .e-cloneproperties.e-draganddrop .e-rowdragdrop{border-bottom:0;border-right:1px solid #e0e0e0;border-top:1px solid #e0e0e0}.e-gantt .e-gantt-toolbar{border-bottom-left-radius:0;border-bottom-right-radius:0;border-style:solid;border-width:1px 1px 0}.e-gantt .e-flmenu-valuediv{padding-top:24px}.e-gantt .e-gantt-splitter .e-split-bar.e-split-bar-horizontal.e-resizable-split-bar{margin:0}.e-gantt .e-gantt-splitter .e-pane{overflow:hidden!important}.e-gantt .e-temp-content{border-left:1px solid}.e-gantt .e-tab,.e-gantt-dialog{border:0}.e-gantt .e-tab .e-tab-header .e-toolbar-item.e-active{border-color:transparent}.e-gantt .e-gantt-tree-grid-pane .e-grid{border-width:0}.e-gantt .e-gantt-tree-grid-pane .e-grid.e-gridhover tr[role=row]:hover .e-detailrowcollapse:not(.e-cellselectionbackground):not(.e-active):not(.e-updatedtd):not(.e-indentcell),.e-gantt .e-gantt-tree-grid-pane .e-grid.e-gridhover tr[role=row]:hover .e-detailrowexpand:not(.e-cellselectionbackground):not(.e-active):not(.e-updatedtd):not(.e-indentcell),.e-gantt .e-gantt-tree-grid-pane .e-grid.e-gridhover tr[role=row]:hover .e-rowdragdrop:not(.e-cellselectionbackground):not(.e-active):not(.e-updatedtd):not(.e-indentcell),.e-gantt .e-gantt-tree-grid-pane .e-grid.e-gridhover tr[role=row]:not(.e-editedrow):hover .e-rowcell:not(.e-cellselectionbackground):not(.e-active):not(.e-updatedtd):not(.e-indentcell),.e-gantt .e-gantt-tree-grid-pane .e-grid.e-rtl .e-gridhover tr[role=row]:hover .e-rowdragdrop:not(.e-cellselectionbackground):not(.e-active):not(.e-updatedtd):not(.e-indentcell){background-color:transparent}.e-gantt .e-gantt-tree-grid-pane .e-gantt-temp-header{border-bottom-style:solid;border-bottom-width:1px;height:45px}.e-gantt .e-gantt-tree-grid-pane .e-headercontent{border-right-width:0!important}.e-gantt .e-gantt-tree-grid-pane .e-gridheader{border-top-style:none;border-top-width:0;padding-right:0!important}.e-gantt .e-gantt-tree-grid-pane .e-columnheader,.e-gantt .e-gantt-tree-grid-pane .e-headercell{height:63px!important}.e-gantt .e-gantt-tree-grid-pane .e-gridcontent .e-content{overflow-x:scroll!important}.e-gantt .e-gantt-tree-grid-pane .e-gridcontent .e-content.e-gantt-scroll-padding{width:calc(100% + 17px)}.e-gantt .e-gantt-tree-grid-pane .e-ganttnotes-info{text-align:center}.e-gantt .e-gantt-tree-grid-pane .e-icons.e-notes-info{display:inline-block;font-size:18px;height:15px;line-height:10px;vertical-align:middle}.e-gantt .e-gantt-chart{height:100%;overflow:hidden;position:relative;width:100%}.e-gantt .e-gantt-chart .e-chart-root-container{border-right:0 solid}.e-gantt .e-gantt-chart .e-chart-root-container .e-content{-webkit-overflow-scrolling:touch;overflow-x:scroll;overflow-y:auto;position:relative}.e-gantt .e-gantt-chart .e-chart-root-container .e-event-markers-container,.e-gantt .e-gantt-chart .e-chart-root-container .e-holiday-container,.e-gantt .e-gantt-chart .e-chart-root-container .e-nonworking-day-container,.e-gantt .e-gantt-chart .e-chart-root-container .e-weekend-container{position:absolute}.e-gantt .e-gantt-chart .e-timeline-header-container{border-bottom-style:solid;border-right-width:0;overflow:hidden;position:relative;z-index:6}.e-gantt .e-gantt-chart .e-timeline-header-table-container>thead>tr>th{border-left:0;padding:0 3px}.e-gantt .e-gantt-chart .e-timeline-header-table-container{border-collapse:collapse;border-spacing:0;border-width:0;box-sizing:border-box;margin:0;padding:0}.e-gantt .e-gantt-chart .e-timeline-header-table-body{border-collapse:collapse;box-sizing:border-box;display:inline-block;transform:scale(1);white-space:nowrap}.e-gantt .e-gantt-chart .e-timeline-single-header-cell,.e-gantt .e-gantt-chart .e-timeline-top-header-cell{border-spacing:0;border-style:solid;border-top:0;border-width:1px;box-sizing:border-box;display:inline-flex;font-size:12px;font-weight:500;margin:0;padding:0;position:static;text-align:center;user-select:none;white-space:nowrap}.e-gantt .e-gantt-chart .e-timeline-single-header-cell .e-header-cell-label,.e-gantt .e-gantt-chart .e-timeline-top-header-cell .e-header-cell-label{box-sizing:border-box;margin:auto;overflow:hidden;position:static;text-overflow:ellipsis;white-space:nowrap}.e-gantt .e-gantt-chart .e-timeline-single-header-cell .e-gantt-top-cell-text,.e-gantt .e-gantt-chart .e-timeline-top-header-cell .e-gantt-top-cell-text{padding-left:8px;text-align:left}.e-gantt .e-gantt-chart .e-gantt-grid-lines{border-bottom-style:solid;border-bottom-width:1px;border-collapse:collapse;border-spacing:0;box-sizing:border-box}.e-gantt .e-gantt-chart .e-zero-spacing{border-spacing:0}.e-gantt .e-gantt-chart .e-chart-row:first-child .e-chart-row-border{border-top-color:transparent}.e-gantt .e-gantt-chart .e-chart-row .e-chart-row-border{border-collapse:separate;border-style:solid;border-width:1px 0 0}.e-gantt .e-gantt-chart .e-chart-row .e-chart-row-cell{font-size:0;padding:0}.e-gantt .e-gantt-chart .e-chart-row .e-chart-row-border.e-lastrow{border-bottom-width:1px}.e-gantt .e-gantt-chart .e-line-container-cell{border-right-style:solid;border-right-width:1px;height:100%;position:absolute}.e-gantt .e-gantt-chart .e-taskbar-main-container{cursor:move;display:inline-block;position:absolute;vertical-align:middle;z-index:3}.e-gantt .e-gantt-chart .e-left-label-container.e-left-label-temp-container{align-items:center;display:inline-flex;justify-content:flex-end;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.e-gantt .e-gantt-chart .e-right-label-container.e-right-label-temp-container{align-items:center;display:inline-flex;float:left;outline:0;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap}.e-gantt .e-gantt-chart .e-left-label-container{display:inline-block}.e-gantt .e-gantt-chart .e-left-label-inner-div,.e-gantt .e-gantt-chart .e-right-label-container{overflow:hidden}.e-gantt .e-gantt-chart .e-left-label-inner-div{align-items:center;display:inline-flex;justify-content:flex-end;width:100%}.e-gantt .e-gantt-chart .e-label{margin:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.e-gantt .e-gantt-chart .e-right-label-container{background-color:transparent;display:inline-block;margin:0;position:absolute}.e-gantt .e-gantt-chart .e-right-label-inner-div{align-items:center;display:inline-flex;float:left;outline:0;overflow:hidden}.e-gantt .e-gantt-chart .e-indicator-span{display:inline-block;font-size:13px;font-weight:400;overflow:hidden;position:absolute;text-overflow:ellipsis}.e-gantt .e-gantt-chart .e-gantt-child-progressbar,.e-gantt .e-gantt-chart .e-gantt-child-taskbar,.e-gantt .e-gantt-chart .e-gantt-manualparent-milestone,.e-gantt .e-gantt-chart .e-gantt-milestone,.e-gantt .e-gantt-chart .e-gantt-parent-milestone,.e-gantt .e-gantt-chart .e-gantt-parent-progressbar,.e-gantt .e-gantt-chart .e-gantt-parent-taskbar{display:inline-block;width:100%}.e-gantt .e-gantt-chart .e-manualparent-main-container{background-color:transparent;cursor:move;margin-top:-5px;position:absolute}.e-gantt .e-gantt-chart .e-gantt-manualparent-taskbar{margin-top:3px}.e-gantt .e-gantt-chart .e-gantt-split-container-line{border-color:inherit;border-top-style:dotted;border-top-width:2px;height:0;left:2px;pointer-events:none;position:absolute;top:50%;width:98%}.e-gantt .e-gantt-chart .e-gantt-child-taskbar-inner-div,.e-gantt .e-gantt-chart .e-gantt-parent-taskbar-inner-div{border-spacing:0;box-sizing:border-box;margin:auto;overflow:hidden;padding:0;z-index:3}.e-gantt .e-gantt-chart .e-gantt-parent-progressbar-inner-div{z-index:3}.e-gantt .e-gantt-chart .e-gantt-child-progressbar-inner-div,.e-gantt .e-gantt-chart .e-gantt-parent-progressbar-inner-div{box-sizing:border-box;text-align:right}.e-gantt .e-gantt-chart .e-chart-rows-container,.e-gantt .e-gantt-chart .e-chart-scroll-container{user-select:none}.e-gantt .e-gantt-chart .e-chart-rows-container{line-height:initial}.e-gantt .e-gantt-chart .e-taskbar-left-resizer,.e-gantt .e-gantt-chart .e-taskbar-right-resizer{display:inline-block;position:absolute;top:0;width:10px;z-index:4}.e-gantt .e-gantt-chart .e-child-progress-resizer{display:inline-block;height:15px;position:absolute;top:0;width:20px;z-index:5}.e-gantt .e-gantt-chart .e-progress-resize-gripper{cursor:col-resize}.e-gantt .e-gantt-chart .e-progress-resize-gripper .e-progressbar-handler{border-style:solid;border-width:1px;box-sizing:content-box;cursor:col-resize;height:2px;position:absolute;top:7px;width:12px}.e-gantt .e-gantt-chart .e-progress-resize-gripper .e-progressbar-handler-after,.e-gantt .e-gantt-chart .e-progress-resize-gripper .e-progressbar-handler-element{border-bottom-style:solid;border-bottom-width:6px;border-left:7px solid transparent;border-right:7px solid transparent;cursor:col-resize;height:0;left:-1px;position:absolute;top:-7px;width:0}.e-gantt .e-gantt-chart .e-progress-resize-gripper .e-progressbar-handler-after{border-left:6px solid transparent;border-right:6px solid transparent;top:-6px}.e-gantt .e-gantt-chart .e-baseline-bar{box-sizing:border-box;position:absolute;z-index:3}.e-gantt .e-gantt-chart .e-manualparent-milestone-top,.e-gantt .e-gantt-chart .e-milestone-top,.e-gantt .e-gantt-chart .e-parent-milestone-top{border-style:none solid solid;border-top:0}.e-gantt .e-gantt-chart .e-manualparent-milestone-bottom,.e-gantt .e-gantt-chart .e-manualparent-milestone-top,.e-gantt .e-gantt-chart .e-milestone-bottom,.e-gantt .e-gantt-chart .e-milestone-top,.e-gantt .e-gantt-chart .e-parent-milestone-bottom,.e-gantt .e-gantt-chart .e-parent-milestone-top{border-left-color:transparent;border-right-color:transparent}.e-gantt .e-gantt-chart .e-manualparent-milestone-bottom,.e-gantt .e-gantt-chart .e-milestone-bottom,.e-gantt .e-gantt-chart .e-parent-milestone-bottom{border-bottom:0;border-style:solid solid none}.e-gantt .e-gantt-chart .e-baseline-gantt-milestone-container{position:absolute;z-index:2}.e-gantt .e-gantt-chart .e-task-label{display:inline;font-weight:400;margin-left:8px;margin-right:15px;vertical-align:middle}.e-gantt .e-gantt-chart .e-task-table{overflow:hidden}.e-gantt .e-gantt-chart .e-left-resize-gripper,.e-gantt .e-gantt-chart .e-right-resize-gripper{align-items:center;cursor:ew-resize;display:inline-flex}.e-gantt .e-gantt-chart .e-holiday,.e-gantt .e-gantt-chart .e-weekend{display:inline-block;position:absolute}.e-gantt .e-gantt-chart .e-holiday .e-span{font-size:13px;position:absolute;transform:rotate(-90deg);white-space:nowrap;width:0}.e-gantt .e-gantt-chart .e-weekend{z-index:0}.e-gantt .e-gantt-chart .e-rangecontainer .e-leftarc{border-bottom-left-radius:2px;border-top-left-radius:2px;position:absolute}.e-gantt .e-gantt-chart .e-rangecontainer .e-rightarc{border-bottom-right-radius:2px;border-top-right-radius:2px;position:absolute}.e-gantt .e-gantt-chart .e-event-markers{border-left:1px dashed;position:absolute;width:1px;z-index:2}.e-gantt .e-gantt-chart .e-event-markers .e-span-label{border-radius:3px;font-weight:500;height:30px;left:5px;line-height:1.4;padding:7px 12px;position:absolute;top:50px;white-space:nowrap;width:auto;z-index:2}.e-gantt .e-gantt-chart .e-event-markers .e-gantt-right-arrow{border-bottom:5px solid transparent;border-right:5px solid;border-top:5px solid transparent;height:0;position:absolute;top:60px;width:0}.e-gantt .e-gantt-chart .e-gantt-unscheduled-taskbar{border-radius:0;border-style:none;display:inline-block}.e-gantt .e-gantt-chart .e-connector-line-right-arrow{border-left-style:solid;border-left-width:10px}.e-gantt .e-gantt-chart .e-connector-line-left-arrow{border-right-style:solid;border-right-width:10px}.e-gantt .e-gantt-chart .e-connector-line-left-arrow,.e-gantt .e-gantt-chart .e-connector-line-right-arrow{border-bottom:5px solid transparent;border-top:5px solid transparent}.e-gantt .e-gantt-chart .e-connector-line-container{z-index:5}.e-gantt .e-gantt-chart .e-connector-line-z-index{z-index:1}.e-gantt .e-gantt-chart .e-connector-line-hover{outline:1px solid}.e-gantt .e-gantt-chart .e-connector-line-hover-z-index{z-index:100}.e-gantt .e-gantt-chart .e-connectortouchpoint{background-color:transparent;display:block;position:absolute;z-index:5}.e-gantt .e-gantt-chart .e-connectorpoint-left,.e-gantt .e-gantt-chart .e-connectorpoint-right,.e-gantt .e-gantt-chart .e-left-connectorpoint-outer-div,.e-gantt .e-gantt-chart .e-right-connectorpoint-outer-div{border-radius:50%;display:inline-block;position:absolute}.e-gantt .e-gantt-chart .e-connectorpoint-left-hover,.e-gantt .e-gantt-chart .e-connectorpoint-right-hover{border-style:solid;border-width:1px;box-sizing:content-box;cursor:pointer;display:inline-block}.e-gantt .e-gantt-chart .e-connectorpoint-allow-block{cursor:no-drop}.e-gantt .e-gantt-chart .e-gantt-manualparenttaskbar-left,.e-gantt .e-gantt-chart .e-gantt-manualparenttaskbar-right{background-color:#989a9c;border-color:#989a9c;border-radius:50%;display:inline-block;height:10px;margin:-1px;position:absolute;width:10px}.e-gantt .e-gantt-chart .e-manualparent-milestone-bottom,.e-gantt .e-gantt-chart .e-manualparent-milestone-top{border-bottom-color:#989a9c}.e-gantt .e-gantt-chart .e-gantt-manualparenttaskbar-right{cursor:e-resize;margin-left:-8px}.e-gantt .e-gantt-chart .e-gantt-manualparenttaskbar-left{margin-left:0}.e-gantt .e-gantt-chart .e-gantt-manualparenttaskbar{background:#989a9c;margin-top:3px;position:absolute}.e-gantt .e-gantt-chart .e-icon{font-family:"e-icons";font-size:13px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;vertical-align:middle}.e-gantt .e-gantt-chart .e-active-container{outline:1px solid;outline-offset:2px}.e-gantt-dialog .e-tab .e-tab-header{padding-left:0}.e-gantt-dialog .e-tab .e-tab-header .e-indicator{display:block}.e-gantt-dialog .e-tab .e-tab-header .e-toolbar-item .e-tab-wrap{border-style:solid;border-width:0}.e-gantt-dialog .e-tab .e-tab-header:not(.e-vertical)::before{border:0}.e-gantt-dialog .e-gridform .e-table{border-spacing:0}.e-gantt-dialog .e-item{height:241px}.e-gantt-dialog .e-dependent-div{border-bottom-width:1px}.e-gantt-dialog .e-icon-dlg-close{opacity:initial}.e-gantt-dialog .e-resource-div .e-gridheader,.e-gantt-dialog .e-toolbar{border-top-width:0}.e-gantt-dialog .e-resource-div{border-bottom-width:1px}.e-gantt-dialog .e-edit-form-row{height:241px;overflow-y:auto;padding-bottom:16px}.e-gantt-dialog .e-edit-form-column:nth-child(odd){float:left;padding:16px 18px 0;width:50%}.e-gantt-dialog .e-edit-form-column:nth-child(even){float:left;padding:16px 16px 0 0;width:50%}.e-gantt-dialog .e-edit-form-row.e-scroll .e-edit-form-column:nth-child(even){padding:16px 16px 0 0}.e-gantt-dialog .e-edit-form-column{height:75px}.e-gantt-dialog .e-dependent-div .e-content{height:153px}.e-gantt-dialog .e-resource-div .e-content{height:196px}.e-gantt-dialog .e-richtexteditor{border-bottom-width:1px;height:241px!important;overflow:hidden}.e-gantt-dialog .e-richtexteditor.e-rte-tb-expand{border-top:0}.e-gantt-dialog .e-richtexteditor .e-rte-content{border-bottom-width:0;height:198px}.e-gantt-dialog>.e-dlg-content{padding:0!important}.e-gantt-dialog .e-dlg-header-content{border-bottom:0!important;border-radius:0;padding-bottom:4px}.e-gantt-dialog .e-dlg-header-content .e-btn.e-dlg-closeicon-btn{border-radius:50%}.e-icon-rowselect::before{content:"\e930"}.e-ganttpopup{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;font-weight:400;position:absolute;user-select:none;z-index:99999}.e-ganttpopup .e-rowselect{line-height:18px;text-indent:7%}.e-ganttpopup span{border:1px solid transparent;cursor:pointer;display:inline-block;height:26px;padding:4px;width:26px}.e-ganttpopup .e-content{border-radius:4px;border-style:solid;border-width:1px;font-size:14px;padding:4px}.e-ganttpopup .e-ganttpopup,.e-ganttpopup .e-tail::after,.e-ganttpopup .e-tail::before{border:10px solid transparent;content:"";height:0;left:8px;position:absolute;width:0}.e-ganttpopup .e-downtail::after{top:34px}.e-gantt-tooltip.e-tooltip-wrap{opacity:1}.e-gantt .e-cloneproperties.e-draganddrop .e-row .e-rowcell .e-treecolumn-container .e-icons.e-none::before{content:""}.e-bigger .e-gantt .e-gantt-chart .e-label{font-size:14px}.e-gantt-tooltip-label{padding-bottom:2px;padding-right:2px;text-align:left}.e-gantt.e-device .e-edit-form-column:nth-child(even),.e-gantt.e-device .e-edit-form-column:nth-child(odd){float:none;padding:16px 18px 0;width:100%}.e-gantt.e-device .e-edit-form-row{height:auto}.e-gantt.e-device .e-adaptive-searchbar{padding:5px 10px;width:90%}.e-gantt.e-device .e-backarrowspan{font-size:16px;padding:5px 10px}.e-gantt.e-device .e-gantt-dialog{max-height:none}.e-gantt.e-device .e-gantt-dialog .e-dlg-closeicon-btn{float:left;left:-4px}.e-gantt.e-device .e-gantt-dialog .e-icon-dlg-close{font-size:16px}.e-gantt.e-device .e-gantt-dialog .e-dlg-header{display:inline-block}.e-gantt.e-device .e-toolbar-item{padding:7px}.e-gantt.e-device .e-toolbar .e-icons{font-size:18px}.e-gantt.e-device .e-gridheader .e-icons{font-size:12px}.e-gantt.e-device .e-left-resize-gripper,.e-gantt.e-device .e-right-resize-gripper{border:7px solid;z-index:-1}.e-gantt.e-device .e-left-resize-gripper::before,.e-gantt.e-device .e-right-resize-gripper::before{font-size:14px;margin-left:-7px}.e-gantt.e-device .e-dependent-div .e-content,.e-gantt.e-device .e-resource-div .e-content,.e-gantt.e-device .e-richtexteditor,.e-gantt.e-device .e-richtexteditor .e-rte-content{height:100%}
58
58
  /*! Gantt theme */
59
59
  .e-gantt .e-gantt-splitter{border-color:#e0e0e0;border-radius:0}.e-gantt .e-cloneproperties.e-draganddrop{box-shadow:0 3px 8px 0 rgba(0,0,0,.26);opacity:.95;overflow:visible}.e-gantt .e-cloneproperties{background-color:#eee;border-color:#e0e0e0;color:rgba(0,0,0,.54)}.e-gantt .e-cloneproperties.e-draganddrop .e-rowcell{color:#000}.e-gantt .e-cloneproperties.e-draganddrop table,.e-gantt .e-cloneproperties.e-draganddrop table .e-selectionbackground{background-color:#fff;height:30px}.e-gantt .e-gantt-toolbar+.e-gantt-splitter{border-top-left-radius:0;border-top-right-radius:0}.e-gantt .e-grid .e-focused:not(.e-menu-item){box-shadow:0 0 0 1px #9e9e9e inset!important}.e-gantt .e-gantt-chart-pane,.e-gantt .e-gantt-temp-header,.e-gantt .e-splitter-box,.e-gantt .e-temp-content{border-color:#e0e0e0}.e-gantt .e-gantt-tree-grid-pane .e-timeline-single-header-outer-div{height:45px!important}.e-gantt .e-gantt-tree-grid-pane .e-grid td.e-active{background:rgba(63,81,181,.15);opacity:1}.e-gantt .e-gantt-chart .e-timeline-header-container{background:#fff;border-bottom-color:#e0e0e0;border-bottom-width:1px;border-right-color:#e0e0e0;color:rgba(0,0,0,.54);height:64px}.e-gantt .e-gantt-chart .e-timeline-single-header-cell,.e-gantt .e-gantt-chart .e-timeline-top-header-cell{border-color:#e0e0e0;color:rgba(0,0,0,.54)}.e-gantt .e-gantt-chart .e-timeline-single-header-cell{height:46px;line-height:46px}.e-gantt .e-gantt-chart .e-timeline-single-header-outer-div{height:46px!important}.e-gantt .e-gantt-chart .e-timeline-top-header-cell{height:32px}.e-gantt .e-gantt-chart .e-chart-root-container{background-color:#fff;border-color:#e0e0e0}.e-gantt .e-gantt-chart .e-timeline-header-table-body{border-spacing:0}.e-gantt .e-gantt-chart .e-chart-row-border{border-top-color:#e0e0e0}.e-gantt .e-gantt-chart .e-chart-row-cell{color:#000}.e-gantt .e-gantt-chart .e-chart-row-border.e-lastrow,.e-gantt .e-gantt-chart .e-uptail::before{border-bottom-color:#e0e0e0}.e-gantt .e-gantt-chart .e-line-container-cell{border-color:#e0e0e0}.e-gantt .e-gantt-chart .e-active-container{outline-color:#9e9e9e}.e-gantt .e-gantt-chart .e-gantt-child-taskbar-inner-div{background-color:#5869c5;border:1px solid #3f51b5;border-radius:4px}.e-gantt .e-gantt-chart .e-collapse-parent .e-gantt-child-taskbar-inner-div{border:1px solid #fff;border-bottom:0;border-top:0}.e-gantt .e-gantt-chart .e-collapse-parent .e-gantt-child-progressbar{width:0!important}.e-gantt .e-gantt-chart .e-collapse-parent .e-collapsed-taskbar-drag{background-color:#3f51b5}.e-gantt .e-gantt-chart .e-collapse-parent .e-left-connectorpoint-outer-div,.e-gantt .e-gantt-chart .e-collapse-parent .e-right-connectorpoint-outer-div{display:none}.e-gantt .e-gantt-chart .e-gantt-parent-taskbar-inner-div{background-color:rgba(97,97,97,.87);border:1px solid #616161;border-radius:4px}.e-gantt .e-gantt-chart .e-gantt-parent-progressbar-inner-div{background-color:#616161;border:0}.e-gantt .e-gantt-chart .e-gantt-child-progressbar-inner-div{background-color:#3f51b5;border:0}.e-gantt .e-gantt-chart .e-gantt-child-manualtaskbar{background-color:rgba(0,135,134,.85);border:1px solid #008786}.e-gantt .e-gantt-chart .e-gantt-unscheduled-taskbar.e-gantt-child-manualtaskbar{background:linear-gradient(to right,rgba(63,81,181,.2),#008786 30%,#008786 70%,#008786 70%,rgba(63,81,181,.2) 100%)}.e-gantt .e-gantt-chart .e-gantt-child-manualprogressbar{background-color:#008786;border:0}.e-gantt .e-gantt-chart .e-holiday{background:#eee}.e-gantt .e-gantt-chart .e-holiday .e-span{color:rgba(0,0,0,.87);font-size:12px}.e-gantt .e-gantt-chart .e-weekend,.e-gantt .e-gantt-chart .e-weekend-header-cell{background:#fafafa}.e-gantt .e-gantt-chart .e-rangecontainer .e-rg-rangdiv{border:2px solid #fc7a05;width:5px;z-index:6}.e-gantt .e-gantt-chart .e-event-markers{border-left-color:#ff4081}.e-gantt .e-gantt-chart .e-event-markers .e-span-label{background-color:#fdbf64;color:#212121;font-size:12px}.e-gantt .e-gantt-chart .e-event-markers .e-gantt-right-arrow{border-right-color:#fdbf64}.e-gantt .e-gantt-chart .e-gantt-unscheduled-taskbar{background:linear-gradient(to right,rgba(63,81,181,.2),#3f51b5 30%,#3f51b5 70%,#3f51b5 70%,rgba(63,81,181,.2) 100%);background-color:rgba(63,81,181,.2);border:0;border-radius:2px}.e-gantt .e-gantt-chart .e-unscheduled-milestone-top{border-bottom-color:rgba(51,51,51,.6)}.e-gantt .e-gantt-chart .e-unscheduled-milestone-bottom{border-top-color:rgba(51,51,51,.6)}.e-gantt .e-gantt-chart .e-progress-resize-gripper .e-progressbar-handler{background:#222;border-color:#fff}.e-gantt .e-gantt-chart .e-progress-resize-gripper .e-progressbar-handler-element{border-bottom-color:#fff}.e-gantt .e-gantt-chart .e-progress-resize-gripper .e-progressbar-handler-after{border-bottom-color:#222}.e-gantt .e-gantt-chart .e-gantt-dependency-view-container{display:block;z-index:5}.e-gantt .e-gantt-chart .e-line{border-color:#3f51b5}.e-gantt .e-gantt-chart .e-connector-line-right-arrow{border-left-color:#3f51b5}.e-gantt .e-gantt-chart .e-connector-line-left-arrow{border-right-color:#3f51b5}.e-gantt .e-gantt-chart .e-connector-line-right-arrow-hover{border-left-color:#3f51b5}.e-gantt .e-gantt-chart .e-connector-line-left-arrow-hover{border-right-color:#3f51b5}.e-gantt .e-gantt-chart .e-connector-line-hover{border-color:#3f51b5;outline-color:#3f51b5}.e-gantt .e-gantt-chart .e-gantt-false-line{border-top-color:#3f51b5}.e-gantt .e-gantt-chart .e-connectorpoint-left-hover,.e-gantt .e-gantt-chart .e-connectorpoint-right-hover{background-color:#333;border-color:#fff}.e-gantt .e-gantt-chart .e-connectorpoint-left-hover:hover,.e-gantt .e-gantt-chart .e-connectorpoint-right-hover:hover{background-color:#bdbdbd;border-color:#3f51b5}.e-gantt .e-gantt-chart .e-left-label-inner-div,.e-gantt .e-gantt-chart .e-right-label-inner-div{color:rgba(0,0,0,.87);font-size:13px}.e-gantt .e-gantt-chart .e-left-label-temp-container{color:rgba(0,0,0,.87);font-size:13px;padding-right:25px}.e-gantt .e-gantt-chart .e-right-label-temp-container{color:rgba(0,0,0,.87);font-size:13px;margin-left:25px}.e-gantt .e-gantt-chart .e-right-label-container{margin-left:25px}.e-gantt .e-gantt-chart .e-left-label-container{padding-right:25px}.e-gantt .e-gantt-chart .e-connectorpoint-right{margin-left:2px}.e-gantt .e-gantt-chart .e-left-connectorpoint-outer-div,.e-gantt .e-gantt-chart .e-right-connectorpoint-outer-div{height:8px;width:12px}.e-gantt .e-gantt-chart .e-left-connectorpoint-outer-div{left:-12px}.e-gantt .e-gantt-chart .e-gantt-unscheduled-taskbar-left,.e-gantt .e-gantt-chart .e-gantt-unscheduled-taskbar-right{border-right:transparent;border-width:3px}.e-gantt .e-gantt-chart .e-gantt-unscheduled-taskbar-right{border-bottom-left-radius:0;border-bottom-right-radius:2px;border-top-left-radius:0;border-top-right-radius:2px}.e-gantt .e-gantt-chart .e-gantt-unscheduled-taskbar-left{border-bottom-left-radius:2px;border-top-left-radius:2px}.e-gantt .e-gantt-chart .e-task-label{color:#fff;font-size:12px}.e-gantt .e-gantt-chart .e-icon{color:#fff}.e-gantt .e-gantt-chart .e-milestone-top{border-bottom-color:#616161}.e-gantt .e-gantt-chart .e-milestone-bottom{border-top-color:#616161}.e-gantt .e-gantt-chart .e-parent-milestone-top{border-bottom-color:#616161}.e-gantt .e-gantt-chart .e-parent-milestone-bottom{border-top-color:#616161}.e-gantt .e-gantt-chart .e-manualparent-milestone-top{border-bottom-color:#989a9c}.e-gantt .e-gantt-chart .e-manualparent-milestone-bottom{border-top-color:#989a9c}.e-gantt .e-gantt-chart .e-gantt-unscheduled-manualtask{background:linear-gradient(to right,rgba(63,81,181,.2),#989a9c 30%,#989a9c 70%,#989a9c 70%,rgba(63,81,181,.2) 100%)}.e-gantt .e-gantt-chart .e-label{color:rgba(0,0,0,.87);font-size:13px}.e-gantt .e-gantt-chart .e-active{background:rgba(63,81,181,.15);color:#000;opacity:1}.e-gantt .e-gantt-chart .e-active .e-label{color:#000}.e-gantt .e-gantt-chart .e-baseline-bar{background-color:#ff9800}.e-gantt .e-gantt-chart .e-baseline-milestone-top{border-bottom-color:#ff9800}.e-gantt .e-gantt-chart .e-baseline-milestone-bottom{border-top-color:#ff9800}.e-gantt .e-gantt-chart .e-downtail::after{border-top-color:#fff}.e-gantt .e-gantt-chart .e-downtail::before{border-top-color:#e0e0e0}.e-gantt .e-gantt-chart .e-ganttpopup .e-content{background-color:#fff;border-color:#e0e0e0}.e-gantt .e-gantt-chart .e-grid .e-gridpopup .e-spanclicked,.e-gantt .e-gantt-chart .e-spanclicked{border-color:#000}.e-gantt .e-gantt-chart .e-active-parent-task{border-radius:4px;box-shadow:4px 4px 3px 0 rgba(0,0,0,.5)}.e-gantt .e-gantt-chart .e-active-parent-task .e-gantt-parent-taskbar-inner-div{background:#1a1a1a;border:#1a1a1a}.e-gantt .e-gantt-chart .e-active-parent-task .e-gantt-parent-progressbar-inner-div{background-color:transparent;border:transparent}.e-gantt .e-gantt-chart .e-active-parent-task .e-task-label{color:transparent}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-task-label{color:transparent!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-line{border-color:#8a8a8a!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-connector-line-right-arrow{border-left-color:#8a8a8a!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-connector-line-left-arrow{border-right-color:#8a8a8a!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-gantt-child-taskbar-inner-div{background:#d5d5d5!important;border:#d5d5d5!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-gantt-child-progressbar-inner-div{background-color:transparent!important;border:transparent!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-milestone-top{border-bottom-color:#d5d5d5!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-milestone-bottom{border-top-color:#d5d5d5!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-gantt-parent-taskbar-inner-div{background-color:#8a8a8a!important;border:#8a8a8a!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-gantt-parent-progressbar-inner-div{background-color:transparent!important;border:transparent!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-active-child-task .e-gantt-child-taskbar-inner-div{background:#3f51b5!important;border:#3f51b5!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-active-child-task .e-milestone-top{border-bottom-color:#3f51b5!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-active-child-task .e-milestone-bottom{border-top-color:#3f51b5!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-active-connected-task .e-gantt-child-taskbar-inner-div{background:#8591d5!important;border:#8591d5!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-active-connected-task .e-milestone-top{border-bottom-color:#8591d5!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-active-connected-task .e-milestone-bottom{border-top-color:#8591d5!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-active-connected-task .e-line{border-color:#3f51b5!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-active-connected-task .e-connector-line-right-arrow{border-left-color:#3f51b5!important}.e-gantt .e-gantt-chart .e-predecessor-touch-mode .e-active-connected-task .e-connector-line-left-arrow{border-right-color:#3f51b5!important}.e-gantt .e-icons{color:rgba(0,0,0,.87)}.e-gantt .e-grid .e-icons:not(.e-stop):not(.e-check):not(.e-icon-left):not(.e-date-icon){color:rgba(0,0,0,.54)!important}.e-gantt-dialog .e-dlg-header{color:#fff}.e-gantt-dialog .e-dlg-header-content,.e-gantt-dialog .e-tab .e-tab-header{background:#3f51b5}.e-gantt-dialog .e-icon-dlg-close,.e-gantt-dialog .e-tab .e-tab-header .e-toolbar-item.e-active .e-tab-wrap .e-tab-text{color:#fff}.e-gantt-dialog .e-btn.e-dlg-closeicon-btn:hover{background-color:rgba(255,255,255,.15)}.e-gantt-dialog .e-btn.e-dlg-closeicon-btn:hover .e-icon-dlg-close{color:#000}.e-gantt-dialog .e-tab .e-tab-header .e-indicator{background:#ff4081}.e-gantt-dialog .e-tab .e-tab-header .e-toolbar-item.e-active{background-color:transparent}.e-gantt-dialog .e-tab .e-tab-header .e-toolbar-item .e-tab-wrap{border-color:transparent}.e-gantt-dialog .e-tab .e-tab-header .e-toolbar-item .e-tab-wrap .e-tab-text{color:rgba(255,255,255,.64)}.e-gantt-dialog .e-tab .e-tab-header .e-toolbar-item:not(.e-active) .e-tab-wrap:hover{background:0 0;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:transparent}.e-gantt-dialog .e-tab .e-tab-header .e-toolbar-item:not(.e-active) .e-tab-wrap:hover .e-tab-text{color:#ff4081}.e-gantt.e-device .e-left-resize-gripper,.e-gantt.e-device .e-right-resize-gripper{border-color:#9e9e9e;color:#eee}.e-gantt.e-device .e-backarrowspan{color:#000}.e-splitter.e-splitter-horizontal,.e-splitter.e-splitter-vertical{display:flex;overflow:hidden;position:relative;touch-action:none;width:100%}.e-splitter.e-splitter-horizontal .e-pane,.e-splitter.e-splitter-vertical .e-pane{flex:1 1 auto;font-family:Roboto,monospace,sans-serif;font-size:13px;font-weight:400}.e-splitter.e-splitter-horizontal .e-pane.e-scrollable,.e-splitter.e-splitter-vertical .e-pane.e-scrollable{overflow:auto}.e-splitter.e-splitter-horizontal .e-pane.e-static-pane,.e-splitter.e-splitter-vertical .e-pane.e-static-pane{flex-grow:0;flex-shrink:0}.e-splitter.e-splitter-horizontal .e-pane.e-pane-horizontal,.e-splitter.e-splitter-vertical .e-pane.e-pane-horizontal{overflow:auto}.e-splitter.e-splitter-horizontal .e-pane.e-pane-horizontal.e-pane-hidden,.e-splitter.e-splitter-vertical .e-pane.e-pane-horizontal.e-pane-hidden{flex-basis:0!important;overflow:hidden!important}.e-splitter.e-splitter-horizontal{flex-direction:row}.e-splitter.e-splitter-horizontal.e-pane.e-scrollable,.e-splitter.e-splitter-vertical.e-pane.e-scrollable{overflow:hidden}.e-splitter.e-splitter-horizontal.e-rtl,.e-splitter.e-splitter-horizontal.e-rtl .e-split-bar.e-split-bar-horizontal{flex-direction:row-reverse}.e-splitter.e-splitter-horizontal.e-rtl .e-split-bar.e-split-bar-horizontal .e-navigate-arrow:not(.e-arrow-right)::after,.e-splitter.e-splitter-horizontal.e-rtl .e-split-bar.e-split-bar-horizontal .e-navigate-arrow:not(.e-arrow-right)::before,.e-splitter.e-splitter-vertical.e-rtl .e-split-bar.e-split-bar-vertical .e-navigate-arrow:not(.e-arrow-down)::after,.e-splitter.e-splitter-vertical.e-rtl .e-split-bar.e-split-bar-vertical .e-navigate-arrow:not(.e-arrow-down)::before{right:auto}.e-splitter.e-splitter-vertical{flex-direction:column}.e-splitter.e-splitter-vertical .e-pane-vertical{overflow:auto}.e-splitter.e-splitter-vertical .e-pane-vertical.e-pane-hidden{flex-basis:0!important;overflow:hidden!important}.e-splitter.e-splitter-vertical.e-rtl .e-split-bar.e-split-bar-vertical .e-navigate-arrow:not(.e-arrow-down){border-radius:50%;bottom:18px;right:22px}.e-splitter.e-splitter-vertical.e-rtl .e-split-bar.e-split-bar-vertical .e-navigate-arrow.e-arrow-down{border-radius:50%;left:22px;right:auto;top:18px}.e-splitter.e-splitter-vertical.e-rtl .e-split-bar.e-split-bar-vertical .e-navigate-arrow.e-arrow-down::after{right:auto}.e-splitter .e-split-bar.e-split-bar-horizontal{align-items:center;display:flex;flex:0 0 auto;justify-content:center;min-width:1px;z-index:15}.e-splitter .e-split-bar.e-split-bar-horizontal .e-icon-hidden,.e-splitter .e-split-bar.e-split-bar-horizontal .e-resize-handler.e-hide-handler{visibility:hidden}.e-splitter .e-split-bar.e-split-bar-horizontal.e-resizable-split-bar{cursor:col-resize}.e-splitter .e-split-bar.e-split-bar-horizontal.e-resizable-split-bar::after{content:"";cursor:col-resize;display:block;height:100%;position:absolute;width:16px;z-index:10}.e-splitter .e-split-bar.e-split-bar-horizontal .e-resize-handler{align-items:center;display:flex;height:18px;justify-content:center;position:relative;width:1px}.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow:not(.e-arrow-right)::after,.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow:not(.e-arrow-right)::before{left:8px;right:3px}.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow{border-image:none;border-width:1px;cursor:pointer;display:flex;height:26px;padding:1px 12px;position:relative}.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow::after,.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow::before{border-radius:16px;content:"";height:8px;position:absolute;transform:rotate(0deg);width:2px}.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow::before{top:5px;transform-origin:1px 7px 0}.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow::after{top:11px;transform-origin:1px 1px 0}.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow:not(.e-arrow-right){border-radius:50%;right:5px}.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow.e-arrow-right{border-radius:50%;left:5px}.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow.e-arrow-right::after,.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow.e-arrow-right::before{right:8px}.e-splitter .e-split-bar.e-split-bar-horizontal.e-last-bar:not(.e-resizable-split-bar){margin:0 3px}.e-splitter .e-split-bar.e-split-bar-horizontal:not(.e-resizable-split-bar){margin:0 0 0 3px}.e-splitter .e-split-bar.e-split-bar-vertical{align-items:center;border:0;display:flex;flex:0 0 auto;justify-content:center;min-height:1px}.e-splitter .e-split-bar.e-split-bar-vertical .e-icon-hidden,.e-splitter .e-split-bar.e-split-bar-vertical .e-resize-handler.e-hide-handler{visibility:hidden}.e-splitter .e-split-bar.e-split-bar-vertical.e-resizable-split-bar{cursor:row-resize}.e-splitter .e-split-bar.e-split-bar-vertical.e-resizable-split-bar::after{content:"";cursor:row-resize;display:block;height:16px;position:absolute;width:100%;z-index:12}.e-splitter .e-split-bar.e-split-bar-vertical .e-resize-handler{align-items:center;display:flex;height:1px;justify-content:center;width:18px}.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow:not(.e-arrow-down)::before{left:10px}.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow{border-image:none;border-width:0;cursor:pointer;display:flex;height:26px;padding:10px 3px 10px 18px;position:relative;width:26px}.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow::after,.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow::before{border-radius:16px;content:"";height:8px;position:absolute;transform:rotate(90deg);width:2px;background-color:#ff4081;opacity:0;transition-duration:.3s;transition-timing-function:cubic-bezier(.25,.1,.25,1)}.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow:not(.e-arrow-down)::before{top:3px;transform-origin:2px 7px 0}.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow:not(.e-arrow-down)::after{left:11px;top:8px;transform-origin:1px 1px 0}.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow.e-arrow-down::before{left:12px;top:8px;transform-origin:1px 6px 0}.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow.e-arrow-down::after{left:10px;top:12px;transform-origin:1px 2px 0}.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow:not(.e-arrow-down){border-radius:50%;bottom:18px;left:22px}.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow.e-arrow-down{border-radius:50%;right:22px;top:18px}.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow.e-arrow-down::after,.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow.e-arrow-down::before{right:10px}.e-splitter .e-split-bar.e-split-bar-vertical.e-last-bar:not(.e-resizable-split-bar){margin:3px 0}.e-splitter .e-split-bar.e-split-bar-vertical:not(.e-resizable-split-bar){margin:3px 0 0}.e-bigger.e-splitter .e-pane{font-size:14px}.e-bigger.e-splitter .e-split-bar.e-split-bar-horizontal .e-resize-handler{height:20px}.e-bigger.e-splitter .e-split-bar.e-split-bar-vertical .e-resize-handler{width:20px}.e-bigger.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow:not(.e-arrow-down)::after,.e-bigger.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow:not(.e-arrow-down)::before{margin-top:-2px}.e-bigger.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow.e-arrow-down::after{margin-top:2px}.e-rtl .e-splitter.e-splitter-horizontal{flex-direction:row-reverse}.e-bigger .e-splitter .e-pane{font-size:14px}.e-bigger .e-splitter .e-split-bar.e-split-bar-horizontal .e-resize-handler{height:20px}.e-bigger .e-splitter .e-split-bar.e-split-bar-vertical .e-resize-handler{width:20px}.e-bigger .e-content-placeholder.e-splitter.e-placeholder-splitter,.e-bigger.e-content-placeholder.e-splitter.e-placeholder-splitter,.e-content-placeholder.e-splitter.e-placeholder-splitter{background-size:100px 110px;min-height:110px}.e-splitter.e-ie .e-navigate-arrow.e-arrow-left{margin-left:-26px}.e-splitter.e-ie .e-split-bar-horizontal .e-resize-handler{flex-direction:column}.e-splitter.e-splitter-horizontal,.e-splitter.e-splitter-vertical{border:solid 1px #e0e0e0}.e-splitter.e-splitter-horizontal .e-pane,.e-splitter.e-splitter-vertical .e-pane{color:rgba(0,0,0,.87)}.e-splitter.e-splitter-horizontal .e-pane.e-splitter.e-splitter-horizontal,.e-splitter.e-splitter-horizontal .e-pane.e-splitter.e-splitter-vertical,.e-splitter.e-splitter-vertical .e-pane.e-splitter.e-splitter-horizontal,.e-splitter.e-splitter-vertical .e-pane.e-splitter.e-splitter-vertical{border:transparent}.e-splitter .e-split-bar.e-split-bar-horizontal{background:#e0e0e0;border:0}.e-splitter .e-split-bar.e-split-bar-horizontal .e-resize-handler{background:#fff;color:rgba(0,0,0,.54)}.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow:not(.e-icon-hidden){background-color:transparent;border-color:transparent;color:transparent;transition:background-color 500ms ease-out}.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow:not(.e-icon-hidden)::after,.e-splitter .e-split-bar.e-split-bar-horizontal .e-navigate-arrow:not(.e-icon-hidden)::before{background-color:#ff4081;opacity:0;transition-duration:.3s;transition-timing-function:cubic-bezier(.25,.1,.25,1)}.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-active,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-hover{background:#ff4081}.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-active .e-resize-handler,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-hover .e-resize-handler,.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-active .e-resize-handler,.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-hover .e-resize-handler{background:#fff;color:#ff4081}.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-active .e-navigate-arrow.e-arrow-left,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-active .e-navigate-arrow.e-arrow-right,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-hover .e-navigate-arrow.e-arrow-left,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-hover .e-navigate-arrow.e-arrow-right,.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-active .e-navigate-arrow.e-arrow-down,.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-active .e-navigate-arrow.e-arrow-up,.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-hover .e-navigate-arrow.e-arrow-down,.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-hover .e-navigate-arrow.e-arrow-up{background-color:#fff;border-color:rgba(227,22,91,.5);border-width:1px;opacity:.9}.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-active.e-split-bar-active .e-navigate-arrow::before,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-active.e-split-bar-hover .e-navigate-arrow::before,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-hover.e-split-bar-active .e-navigate-arrow::before,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-hover.e-split-bar-hover .e-navigate-arrow::before{background-color:#ff4081;opacity:1;transform:rotate(40deg)}.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-active .e-navigate-arrow.e-arrow-right::before,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-active.e-split-bar-active .e-navigate-arrow::after,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-active.e-split-bar-hover .e-navigate-arrow::after,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-hover .e-navigate-arrow.e-arrow-right::before,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-hover.e-split-bar-active .e-navigate-arrow::after,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-hover.e-split-bar-hover .e-navigate-arrow::after{background-color:#ff4081;opacity:1;transform:rotate(-40deg)}.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-active .e-navigate-arrow.e-arrow-right::after,.e-splitter .e-split-bar.e-split-bar-horizontal.e-split-bar-hover .e-navigate-arrow.e-arrow-right::after{background-color:#ff4081;opacity:1;transform:rotate(40deg)}.e-splitter .e-split-bar.e-split-bar-vertical{background:#e0e0e0}.e-splitter .e-split-bar.e-split-bar-vertical .e-resize-handler{background:#fff;color:rgba(0,0,0,.54)}.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-hover{background:#ff4081}.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-active .e-navigate-arrow.e-arrow-up::before,.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-hover .e-navigate-arrow.e-arrow-up::before{background-color:#ff4081;opacity:1;transform:rotate(125deg)}.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-active .e-navigate-arrow.e-arrow-up::after,.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-hover .e-navigate-arrow.e-arrow-up::after{background-color:#ff4081;opacity:1;transform:rotate(50deg)}.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-active .e-navigate-arrow.e-arrow-down::before,.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-hover .e-navigate-arrow.e-arrow-down::before{background-color:#ff4081;opacity:1;transform:rotate(55deg)}.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-active .e-navigate-arrow.e-arrow-down::after,.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-hover .e-navigate-arrow.e-arrow-down::after{background-color:#ff4081;opacity:1;transform:rotate(125deg)}.e-splitter .e-split-bar.e-split-bar-vertical .e-navigate-arrow{background-color:transparent;border-color:transparent;color:transparent;transition:background-color 300ms ease-out}.e-splitter .e-split-bar.e-split-bar-vertical.e-split-bar-active{background:#ff4081}.e-splitter.e-disabled{opacity:.4;pointer-events:none}
60
60
  /*! card layout */
@@ -268,7 +268,8 @@ export class WorkflowComponent {
268
268
  nodes, connectors
269
269
  },
270
270
  policy: OpenPolicy.Tab,
271
- expandable: false
271
+ expandable: false,
272
+ group: ''
272
273
  }).then(p => {
273
274
  p.instance.change.
274
275
  pipe(takeUntil(this._destroy)).subscribe(() => {
@@ -404,4 +405,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
404
405
  type: HostListener,
405
406
  args: ['document:keydown', ['$event']]
406
407
  }] } });
407
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9mb3JtL3dvcmtmbG93L3dvcmtmbG93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vZm9ybS93b3JrZmxvdy93b3JrZmxvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUNMLHNCQUFzQixFQUFFLGtCQUFrQixFQUFtQixtQkFBbUIsRUFBNEMsb0JBQW9CLEVBQStDLGVBQWUsRUFDOU0sT0FBTyxFQUFhLFFBQVEsRUFBbUUsSUFBSSxFQUEwQixZQUFZLEVBQUUsb0JBQW9CLEVBQ2hLLE1BQU0sa0NBQWtDLENBQUM7QUFRMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXpELE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFekIsU0FBUyxRQUFRO0lBQ2YsTUFBTSxLQUFLLEdBQXFCO1FBQzlCLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQzFELEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVB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aWxkLCBPbkRlc3Ryb3ksIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuICBTeW1ib2xQYWxldHRlQ29tcG9uZW50LCBEaWFncmFtQ29uc3RyYWludHMsIFVzZXJIYW5kbGVNb2RlbCwgU2VsZWN0b3JDb25zdHJhaW50cywgVG9vbEJhc2UsIE1vdXNlRXZlbnRBcmdzLCBDb25uZWN0b3JNb2RlbCwgQ29ubmVjdG9yRHJhd2luZ1Rvb2wsIFRleHRNb2RlbCwgUG9pbnRQb3J0TW9kZWwsIERpYWdyYW1Db21wb25lbnQsIE5vZGVDb25zdHJhaW50cywgU2Nyb2xsU2V0dGluZ3NNb2RlbCxcclxuICBEaWFncmFtLCBOb2RlTW9kZWwsIFVuZG9SZWRvLCBTeW1ib2xJbmZvLCBJRHJhZ0VudGVyRXZlbnRBcmdzLCBTbmFwU2V0dGluZ3NNb2RlbCwgTWFyZ2luTW9kZWwsIE5vZGUsIFBhbGV0dGVNb2RlbCwgU2VnbWVudHMsIERpYWdyYW1Ub29scywgQ29ubmVjdG9yQ29uc3RyYWludHMsIFNlbGVjdG9yTW9kZWwsIFJ1bGVyU2V0dGluZ3NNb2RlbCwgQWxpZ25tZW50T3B0aW9ucywgVGV4dFN0eWxlTW9kZWxcclxufSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1kaWFncmFtcyc7XHJcbmltcG9ydCB7IEZvcm0gfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uL2Zvcm0uc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFdvcmtmbG93Tm9kZUNvbXBvbmVudCB9IGZyb20gJy4vbm9kZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZG1pbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2FkbWluLWRpc21pc3Muc2VydmljZSc7XHJcbmltcG9ydCB7IE9wZW5Qb2xpY3kgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5cclxuRGlhZ3JhbS5JbmplY3QoVW5kb1JlZG8pO1xyXG5cclxuZnVuY3Rpb24gZ2V0UG9ydHMoKTogUG9pbnRQb3J0TW9kZWxbXSB7XHJcbiAgY29uc3QgcG9ydHM6IFBvaW50UG9ydE1vZGVsW10gPSBbXHJcbiAgICB7IGlkOiAncG9ydDEnLCBzaGFwZTogJ0NpcmNsZScsIG9mZnNldDogeyB4OiAwLCB5OiAwLjUgfSB9LFxyXG4gICAgeyBpZDogJ3BvcnQyJywgc2hhcGU6ICdDaXJjbGUnLCBvZmZzZXQ6IHsgeDogMC41LCB5OiAxIH0gfSxcclxuICAgIHsgaWQ6ICdwb3J0MycsIHNoYXBlOiAnQ2lyY2xlJywgb2Zmc2V0OiB7IHg6IDEsIHk6IDAuNSB9IH0sXHJcbiAgICB7IGlkOiAncG9ydDQnLCBzaGFwZTogJ0NpcmNsZScsIG9mZnNldDogeyB4OiAwLjUsIHk6IDAgfSB9XHJcbiAgXTtcclxuICByZXR1cm4gcG9ydHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNob3dQYWxldHRlSWNvbigpOiB2b2lkIHtcclxuICBjb25zdCBwYWxldHRlU3BhY2U6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhbGV0dGUtc3BhY2UnKTtcclxuICBjb25zdCBpc01vYmlsZSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOjU1MHB4KScpLm1hdGNoZXM7XHJcbiAgaWYgKGlzTW9iaWxlKSB7XHJcbiAgICBpZiAoIXBhbGV0dGVTcGFjZS5jbGFzc0xpc3QuY29udGFpbnMoJ3NiLW1vYmlsZS1wYWxldHRlLW9wZW4nKSkge1xyXG4gICAgICBwYWxldHRlU3BhY2UuY2xhc3NMaXN0LmFkZCgnc2ItbW9iaWxlLXBhbGV0dGUtb3BlbicpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcGFsZXR0ZVNwYWNlLmNsYXNzTGlzdC5yZW1vdmUoJ3NiLW1vYmlsZS1wYWxldHRlLW9wZW4nKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhbGV0dGVJY29uQ2xpY2soKSB7XHJcbiAgY29uc3QgaXNNb2JpbGUgPSB3aW5kb3cubWF0Y2hNZWRpYSgnKG1heC13aWR0aDo1NTBweCknKS5tYXRjaGVzO1xyXG4gIGlmIChpc01vYmlsZSkge1xyXG4gICAgY29uc3QgcGFsZXR0ZUljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFsZXR0ZS1pY29uJyk7XHJcbiAgICBpZiAocGFsZXR0ZUljb24pIHtcclxuICAgICAgcGFsZXR0ZUljb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBzaG93UGFsZXR0ZUljb24sIGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vRGVmaW5lcyB0aGUgdG9vbFxyXG5jbGFzcyBEcmF3VG9vbCBleHRlbmRzIENvbm5lY3RvckRyYXdpbmdUb29sIHtcclxuICBwdWJsaWMgbW91c2VNb3ZlKGFyZ3M6IE1vdXNlRXZlbnRBcmdzKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZGlhZ3JhbS5kcmF3aW5nT2JqZWN0ID0ge1xyXG4gICAgICAgIHR5cGU6IHRoaXMuc2VnbWVudHMgfHwgJ0JlemllcicsXHJcbiAgICAgICAgc291cmNlSUQ6IHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLm5vZGVzWzBdLmlkXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuaW5BY3Rpb24gPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgb2sgPSBzdXBlci5tb3VzZU1vdmUoYXJncyk7XHJcbiAgICByZXR1cm4gb2s7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhZ3JhbTogRGlhZ3JhbSwgcHJpdmF0ZSBzZWdtZW50czogU2VnbWVudHMpIHtcclxuICAgIHN1cGVyKGRpYWdyYW0uY29tbWFuZEhhbmRsZXIsICdDb25uZWN0b3JTb3VyY2VFbmQnLCBudWxsKTtcclxuICB9XHJcbn1cclxuY29uc3QgTElOS19QQVRIID0gJ00zNDYuNyw3MTQuNmwzNjguMS0zNjguMWMxNy45LTE3LjksMTcuOS00Ny4xLDAtNjQuOWMtMTcuOS0xNy45LTQ3LjEtMTcuOS02NC45LDBsLTM2OCwzNjhjLTE3LjksMTcuOS0xNy45LDQ3LjEsMCw2NC45QzI5OS42LDczMi41LDMyOC45LDczMi41LDM0Ni43LDcxNC42eiBNNDY4LjIsNjUxYzYuNCw5LDcuNiwxOC41LDcuNiwyMy44YzAsNi4zLTEuNSwxOC42LTExLjgsMjguOUwyNzEsODk2LjVjLTEwLjMsMTAuMy0yMi41LDExLjgtMjguOSwxMS44Yy02LjMsMC0xOC42LTEuNS0yOC45LTExLjhMMTAzLjUsNzg2LjhjLTEwLjMtMTAuMy0xMS44LTIyLjUtMTEuOC0yOC45YzAtNi40LDEuNS0xOC42LDExLjgtMjguOWwxOTIuOS0xOTIuOWMxMC4zLTEwLjMsMjIuNS0xMS44LDI4LjktMTEuOGM0LjUsMCwxMS44LDAuOCwxOS4zLDQuOGw1OC42LTU4LjZjLTQ4LTM5LjYtMTE5LjYtMzYuOS0xNjQuNSw3LjlMNDUuNyw2NzEuM2MtNDcuNyw0Ny43LTQ3LjcsMTI1LjUsMCwxNzMuMmwxMDkuNywxMDkuN2M0Ny43LDQ3LjcsMTI1LjUsNDcuNywxNzMuMiwwbDE5Mi45LTE5Mi45YzQ2LTQ2LDQ3LjYtMTIwLjQsNC42LTE2OC40TDQ2OC4yLDY1MXogTTk1NC4yLDE1NS41TDg0NC41LDQ1LjhDNzk2LjktMS45LDcxOS0xLjksNjcxLjMsNDUuOEw0NzguNCwyMzguN2MtNDQuOCw0NC44LTQ3LjUsMTE2LjUtNy45LDE2NC41bDU4LjYtNTguNmMtNC03LjYtNC44LTE0LjktNC44LTE5LjNjMC02LjMsMS41LTE4LjYsMTEuOC0yOC45bDE5Mi45LTE5Mi45YzEwLjMtMTAuMywyMi41LTExLjgsMjguOS0xMS44YzYuMywwLDE4LjYsMS41LDI4LjksMTEuOGwxMDkuNywxMDkuN2MxMC4zLDEwLjMsMTEuOCwyMi41LDExLjgsMjguOWMwLDYuMy0xLjUsMTguNi0xMS44LDI4LjlMNzAzLjcsNDY0Yy0xMC4zLDEwLjMtMjIuNSwxMS44LTI4LjksMTEuOGMtNS4zLDAtMTQuOC0xLjEtMjMuOC03LjZsLTU4LDU4YzQ4LDQzLDEyMi4zLDQxLjUsMTY4LjQtNC42bDE5Mi45LTE5Mi45QzEwMDEuOSwyODEuMSwxMDAxLjksMjAzLjEsOTU0LjIsMTU1LjV6JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXdvcmtmbG93JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2Zsb3cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dvcmtmbG93LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdwYW5lJ1xyXG4gIH1cclxufSlcclxuLyoqIHdvcmtmbG93IGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWRtaW5Db21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoU3ltYm9sUGFsZXR0ZUNvbXBvbmVudCkgc3ltYm9sUGFsZXR0ZTogU3ltYm9sUGFsZXR0ZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdkaWFncmFtJykgZGlhZ3JhbTogRGlhZ3JhbUNvbXBvbmVudDtcclxuICB0b29scyA9IHRydWU7XHJcbiAgY29ubmVjdG9yVHlwZTogU2VnbWVudHMgPSAnQmV6aWVyJztcclxuICBhbGlnbm1lbnQ6IEFsaWdubWVudE9wdGlvbnMgPSAnQ2VudGVyJztcclxuICBmb250U2l6ZSA9IDEyO1xyXG4gIHB1YmxpYyBnZXRDdXN0b21Ub29sID0gdGhpcy5nZXRUb29sLmJpbmQodGhpcyk7XHJcbiAgcHVibGljIGdldFRvb2woYWN0aW9uOiBzdHJpbmcpOiBUb29sQmFzZSB7XHJcbiAgICBsZXQgdG9vbDogVG9vbEJhc2UgPSBudWxsO1xyXG4gICAgaWYgKGFjdGlvbiA9PT0gJ2Nvbm5lY3QnKVxyXG4gICAgICB0b29sID0gbmV3IERyYXdUb29sKHRoaXMuZGlhZ3JhbSwgdGhpcy5jb25uZWN0b3JUeXBlKTtcclxuICAgIHJldHVybiB0b29sO1xyXG4gIH1cclxuICBzYXZpbmcgPSBmYWxzZTtcclxuICBlbGVtZW50PzogYW55O1xyXG4gIGRpcnR5ID0gZmFsc2U7XHJcbiAgcGFyYW1zOiB7fTtcclxuICBwYWxldHRlczogUGFsZXR0ZU1vZGVsW10gPSBbXTtcclxuICBkaWFncmFtQ29uc3RyYWludHM6IERpYWdyYW1Db25zdHJhaW50cyA9IERpYWdyYW1Db25zdHJhaW50cy5EZWZhdWx0IHwgRGlhZ3JhbUNvbnN0cmFpbnRzLkJyaWRnaW5nIHwgRGlhZ3JhbUNvbnN0cmFpbnRzLlVzZXJJbnRlcmFjdGlvbiB8IERpYWdyYW1Db25zdHJhaW50cy5ab29tO1xyXG4gIGRpYWdyYW1Ub29sOiBEaWFncmFtVG9vbHMgPSBEaWFncmFtVG9vbHMuRGVmYXVsdDtcclxuICAvL0RlZmluZXMgdGhlIHVzZXIgaGFuZGxlIGNvbGxlY3Rpb24gZm9yIG5vZGVzIGluIGRpYWdyYW1cclxuICBwcml2YXRlIHJlYWRvbmx5IF91c2VySGFuZGxlczogVXNlckhhbmRsZU1vZGVsW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdjb25uZWN0JyxcclxuICAgICAgcGF0aERhdGE6IExJTktfUEFUSCxcclxuICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICBzaWRlOiAnUmlnaHQnLFxyXG4gICAgICBkaXNwbGFjZW1lbnQ6IDIwLFxyXG4gICAgICBtYXJnaW46IHsgdG9wOiAwLCBib3R0b206IDAsIGxlZnQ6IDAsIHJpZ2h0OiAwIH1cclxuICAgIH1cclxuICBdO1xyXG4gIC8vU3ltYm9sUGFsZXR0ZSBQcm9wZXJ0aWVzXHJcbiAgcmVhZG9ubHkgc3ltYm9sTWFyZ2luOiBNYXJnaW5Nb2RlbCA9IHsgbGVmdDogMTAsIHJpZ2h0OiAxMCwgdG9wOiAxMCwgYm90dG9tOiAxMCB9O1xyXG4gIHJlYWRvbmx5IHNuYXBTZXR0aW5nczogU25hcFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgfTtcclxuICByZWFkb25seSBzZWxlY3RlZEl0ZW1zOiBTZWxlY3Rvck1vZGVsID0ge1xyXG4gIH07XHJcbiAgcmVhZG9ubHkgc2Nyb2xsU2V0dGluZ3M6IFNjcm9sbFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBtaW5ab29tOiAuNSxcclxuICAgIG1heFpvb206IDIuNVxyXG4gIH07XHJcbiAgcHJpdmF0ZSBfcnVsZXJDb2xvciA9IHRoaXMuX3Nlc3Npb24uZ2V0QWNjZW50KDEwMCk7XHJcbiAgcmVhZG9ubHkgcnVsZXJTZXR0aW5nczogUnVsZXJTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgaG9yaXpvbnRhbFJ1bGVyOiB7IG1hcmtlckNvbG9yOiB0aGlzLl9ydWxlckNvbG9yIH0sXHJcbiAgICB2ZXJ0aWNhbFJ1bGVyOiB7IG1hcmtlckNvbG9yOiB0aGlzLl9ydWxlckNvbG9yIH1cclxuICB9O1xyXG4gIHByaXZhdGUgX2Zvcm06IEZvcm07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgLyoqIHdvcmtmbG93IGN0b3IgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBzOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogRm9ybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wYW5lOiBQYW5lUmVmPFdvcmtmbG93Q29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5fcGFsZXR0ZXMoKTtcclxuICB9XHJcbiAgcHVibGljIGRpYWdyYW1DcmVhdGUoKTogdm9pZCB7XHJcbiAgICBwYWxldHRlSWNvbkNsaWNrKCk7XHJcbiAgICB0aGlzLl9wYW5lLnBhcmFtc0NoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHAgPT4ge1xyXG4gICAgICBjb25zdCBpZCA9IHBbJ2lkJ107XHJcbiAgICAgIHRoaXMuX2Zvcm0gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PT0gaWQpO1xyXG4gICAgICB0aGlzLl9wYW5lLnRpdGxlID0gdGhpcy5fZm9ybS50aXRsZTtcclxuICAgICAgdGhpcy5wYXJhbXMgPSB7IGlkOiB0aGlzLl9mb3JtLm5hbWUgfTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcGFuZS5kYXRhQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoZCA9PiB7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fZm9ybSwgZC5mb3JtKTtcclxuICAgICAgY29uc3QgZmxvdyA9IHRoaXMuX2Zvcm0ud29ya2Zsb3c7XHJcbiAgICAgIHRoaXMuZGlhZ3JhbS5ub2RlcyA9IGZsb3cubm9kZXM7XHJcbiAgICAgIHRoaXMuZGlhZ3JhbS5jb25uZWN0b3JzID0gZmxvdy5jb25uZWN0b3JzO1xyXG4gICAgICB0aGlzLmRpYWdyYW0uZGF0YUJpbmQoKTtcclxuICAgICAgdGhpcy5kaWFncmFtLmFkZCh0aGlzLl92ZXJzaW9uTm9kZShmbG93LnZlcnNpb24pKTtcclxuICAgICAgdGhpcy5kaWFncmFtLmZpdFRvUGFnZSgpO1xyXG4gICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3BhbmUucmVzaXplLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgdGhpcy5kaWFncmFtLnJlZnJlc2goKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3BhbGV0dGVzKCkge1xyXG4gICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm5vZGVzLmZvckVhY2gobiA9PiB7XHJcbiAgICAgIGNvbnN0IG5vZGU6IE5vZGVNb2RlbCA9IHtcclxuICAgICAgICBpZDogbi5uYW1lLFxyXG4gICAgICAgIHNoYXBlOiBuLnNoYXBlLFxyXG4gICAgICAgIGFkZEluZm86IHtcclxuICAgICAgICAgIG5vZGVUeXBlOiBuLm5hbWUsXHJcbiAgICAgICAgICB0aXRsZTogbi50aXRsZVxyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgKG5vZGUgYXMgYW55KS5ub2RlID0gbi5uYW1lO1xyXG4gICAgICBsZXQgcGFsZXR0ZSA9IHRoaXMucGFsZXR0ZXMuZmluZChwID0+IHAudGl0bGUgPT09IChuLnBhbGV0dGUgfHwgJycpKTtcclxuICAgICAgaWYgKCFwYWxldHRlKSB7XHJcbiAgICAgICAgcGFsZXR0ZSA9IHsgaWQ6IGBfJHtuLnBhbGV0dGV9YCwgZXhwYW5kZWQ6IHRydWUsIHRpdGxlOiBuLnBhbGV0dGUgfHwgJycsIHN5bWJvbHM6IFtdIH07XHJcbiAgICAgICAgdGhpcy5wYWxldHRlcy5wdXNoKHBhbGV0dGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHBhbGV0dGUuc3ltYm9scy5wdXNoKG5vZGUpO1xyXG4gICAgfSk7XHJcbiAgICAvL3RoaXMucGFsZXR0ZXMucHVzaCh7IGlkOiAnZGVzaWduJywgdGl0bGU6IHRoaXMuX3RyYW5zbGF0aW9uLmdldCgnRGVzaWduJyksIHN5bWJvbHM6IFt7IGlkOiAndGV4dCcsIHNoYXBlOiB7IHR5cGU6ICdUZXh0JywgdGV4dENvbnRlbnQ6ICdUJyB9LCBhZGRJbmZvOiB7IHRpdGxlOiB0aGlzLl90cmFuc2xhdGlvbi5nZXQoJ1RleHQnKSB9IH1dIH0pO1xyXG4gICAgLyp0aGlzLnBhbGV0dGVzLnB1c2goc3dpbWxhbmUgKTsqL1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdmVyc2lvbk5vZGUodmVyc2lvbjogbnVtYmVyKTogTm9kZU1vZGVsIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlkOiAndmVyc2lvbicsXHJcbiAgICAgIHNoYXBlOiB7XHJcbiAgICAgICAgdHlwZTogJ1RleHQnLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0RpYWdyYW1WZXJzaW9uJywgdmVyc2lvbiB8fCAwKVxyXG4gICAgICB9LFxyXG4gICAgICBvZmZzZXRZOiA1LFxyXG4gICAgICBvZmZzZXRYOiA1LFxyXG4gICAgICBzdHlsZToge1xyXG4gICAgICAgIGZvbnRTaXplOiA1MCxcclxuICAgICAgICBjb2xvcjogdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ3doaXRlJyA6ICdibGFjaycsXHJcbiAgICAgICAgb3BhY2l0eTogLjFcclxuICAgICAgfSBhcyBUZXh0U3R5bGVNb2RlbCxcclxuICAgICAgY29uc3RyYWludHM6IE5vZGVDb25zdHJhaW50cy5SZWFkT25seSxcclxuICAgICAgekluZGV4OiAtMVxyXG4gICAgfSBhcyBUZXh0TW9kZWw7XHJcbiAgfVxyXG4gIG5vZGVEZWZhdWx0cyA9ICgpOiBOb2RlTW9kZWwgPT4ge1xyXG4gICAgY29uc3Qgb2JqOiBOb2RlTW9kZWwgPSB7XHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgZmlsbDogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICBzdHJva2VDb2xvcjogdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ3doaXRlJyA6ICdibGFjaycsXHJcbiAgICAgICAgc3Ryb2tlV2lkdGg6IDFcclxuICAgICAgfSxcclxuICAgICAgYW5ub3RhdGlvbnM6IFt7XHJcbiAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnd2hpdGUnIDogJ2JsYWNrJyxcclxuICAgICAgICAgIGZpbGw6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgICAgICBvcGFjaXR5OiAuOFxyXG4gICAgICAgIH1cclxuICAgICAgfV1cclxuICAgIH07XHJcbiAgICBpZiAob2JqLndpZHRoID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgb2JqLndpZHRoID0gMTQ1O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcmF0aW86IG51bWJlciA9IDEwMCAvIG9iai53aWR0aDtcclxuICAgICAgb2JqLndpZHRoID0gMTAwO1xyXG4gICAgICBvYmouaGVpZ2h0ICo9IHJhdGlvO1xyXG4gICAgfVxyXG4gICAgb2JqLmNvbnN0cmFpbnRzID0gTm9kZUNvbnN0cmFpbnRzLkRlZmF1bHQgfCBOb2RlQ29uc3RyYWludHMuQXNwZWN0UmF0aW87XHJcbiAgICBvYmoucG9ydHMgPSBnZXRQb3J0cygpO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgcHVibGljIGNvbm5EZWZhdWx0cyA9IChvYmo6IENvbm5lY3Rvck1vZGVsKTogdm9pZCA9PiB7XHJcbiAgICBvYmouY29uc3RyYWludHMgPSBDb25uZWN0b3JDb25zdHJhaW50cy5EZWZhdWx0IHwgQ29ubmVjdG9yQ29uc3RyYWludHMuQnJpZGdpbmcgfCBDb25uZWN0b3JDb25zdHJhaW50cy5EcmFnU2VnbWVudFRodW1iO1xyXG4gICAgb2JqLnN0eWxlLnN0cm9rZUNvbG9yID0gdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ3doaXRlJyA6ICdibGFjayc7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRTeW1ib2xJbmZvKHN5bWJvbDogTm9kZU1vZGVsKTogU3ltYm9sSW5mbyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmaXQ6IHRydWUsXHJcbiAgICAgIHRvb2x0aXA6IChzeW1ib2wuYWRkSW5mbyBhcyBhbnkpLnRpdGxlLFxyXG4gICAgICBkZXNjcmlwdGlvbjogeyB0ZXh0OiAoc3ltYm9sLmFkZEluZm8gYXMgYW55KS50aXRsZSwgb3ZlcmZsb3c6ICdXcmFwJywgd3JhcDogJ1dyYXBXaXRoT3ZlcmZsb3cnIH1cclxuICAgIH07XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRTeW1ib2xEZWZhdWx0cyhzeW1ib2w6IE5vZGVNb2RlbCk6IHZvaWQge1xyXG4gICAgc3ltYm9sLndpZHRoID0gc3ltYm9sLmhlaWdodCA9IDQwO1xyXG4gICAgc3ltYm9sLmNvbnN0cmFpbnRzID0gTm9kZUNvbnN0cmFpbnRzLkRlZmF1bHQgfCBOb2RlQ29uc3RyYWludHMuQXNwZWN0UmF0aW87XHJcbiAgfVxyXG4gIHBhbigpIHtcclxuICAgIHRoaXMuZGlhZ3JhbUNvbnN0cmFpbnRzID0gdGhpcy5kaWFncmFtQ29uc3RyYWludHMgfCBEaWFncmFtQ29uc3RyYWludHMuUGFuO1xyXG4gICAgdGhpcy5kaWFncmFtVG9vbCA9IERpYWdyYW1Ub29scy5ab29tUGFuO1xyXG4gIH1cclxuICBjdXJzb3IoKSB7XHJcbiAgICB0aGlzLmRpYWdyYW1Db25zdHJhaW50cyA9IHRoaXMuZGlhZ3JhbUNvbnN0cmFpbnRzICYgfkRpYWdyYW1Db25zdHJhaW50cy5QYW47XHJcbiAgICB0aGlzLmRpYWdyYW1Ub29sID0gRGlhZ3JhbVRvb2xzLkRlZmF1bHQ7XHJcbiAgfVxyXG4gIHNlbGVjdGlvbkNoYW5nZSgpIHtcclxuICAgIGNvbnN0IHsgbm9kZXMsIGNvbm5lY3RvcnMgfSA9IHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zO1xyXG4gICAgaWYgKGNvbm5lY3RvcnMubGVuZ3RoIHx8IG5vZGVzLmxlbmd0aCkge1xyXG4gICAgICBpZiAobm9kZXMubGVuZ3RoID09PSAxICYmIG5vZGVzWzBdLmFkZEluZm8pIHtcclxuICAgICAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5jb25zdHJhaW50cyA9IFNlbGVjdG9yQ29uc3RyYWludHMuQWxsIHwgU2VsZWN0b3JDb25zdHJhaW50cy5Vc2VySGFuZGxlO1xyXG4gICAgICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLnVzZXJIYW5kbGVzID0gdGhpcy5fdXNlckhhbmRsZXM7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5jb25zdHJhaW50cyA9IFNlbGVjdG9yQ29uc3RyYWludHMuQWxsIF4gU2VsZWN0b3JDb25zdHJhaW50cy5Vc2VySGFuZGxlO1xyXG5cclxuICAgICAgaWYgKGNvbm5lY3RvcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgY29ubmVjdG9yID0gY29ubmVjdG9yc1swXTtcclxuICAgICAgICBjb25uZWN0b3JzLmZvckVhY2goYyA9PiB7IGlmICghYy5hZGRJbmZvKSBjLmFkZEluZm8gPSB7fSB9KTtcclxuICAgICAgICBjb25zdCB0eXBlID0gY29ubmVjdG9yLnR5cGU7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0b3JUeXBlID0gY29ubmVjdG9ycy5sZW5ndGggPT09IDEgfHwgY29ubmVjdG9ycy5ldmVyeShjID0+IGMudHlwZSA9PT0gdHlwZSkgPyB0eXBlIDogbnVsbDtcclxuICAgICAgICBpZiAoY29ubmVjdG9yLmFubm90YXRpb25zLmxlbmd0aClcclxuICAgICAgICAgIHRoaXMuZm9udFNpemUgPSBjb25uZWN0b3IuYW5ub3RhdGlvbnNbMF0uc3R5bGUuZm9udFNpemU7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0b3JUeXBlID0gY29ubmVjdG9ycy5sZW5ndGggPT09IDEgfHwgY29ubmVjdG9ycy5ldmVyeShjID0+IGMudHlwZSA9PT0gdHlwZSkgPyB0eXBlIDogbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBpZiAobm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzWzBdLFxyXG4gICAgICAgICAgYWRkSW5mbyA9IG5vZGUuYWRkSW5mbyBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGFkZEluZm8gJiYgYWRkSW5mby5ub2RlVHlwZSkge1xyXG4gICAgICAgICAgaWYgKG5vZGUuYW5ub3RhdGlvbnMubGVuZ3RoKVxyXG4gICAgICAgICAgICB0aGlzLmZvbnRTaXplID0gbm9kZS5hbm5vdGF0aW9uc1swXS5zdHlsZS5mb250U2l6ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fcm91dGVyLmNvbGxhcHNlKClcclxuICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFdvcmtmbG93Tm9kZUNvbXBvbmVudCwge1xyXG4gICAgICAgIHN0YXRlOiB7XHJcbiAgICAgICAgICBub2RlcywgY29ubmVjdG9yc1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9saWN5OiBPcGVuUG9saWN5LlRhYixcclxuICAgICAgICBleHBhbmRhYmxlOiBmYWxzZVxyXG4gICAgICB9KS50aGVuKHAgPT4ge1xyXG4gICAgICAgIChwLmluc3RhbmNlIGFzIFdvcmtmbG93Tm9kZUNvbXBvbmVudCkuY2hhbmdlLlxyXG4gICAgICAgICAgcGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmRpYWdyYW0uZGF0YUJpbmQoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fcm91dGVyLmNvbGxhcHNlKCk7XHJcbiAgfVxyXG4gIGFsaWduKHZhbHVlOiBBbGlnbm1lbnRPcHRpb25zKSB7XHJcbiAgICBjb25zdCB0YXNrID0gKG46IE5vZGVNb2RlbCB8IENvbm5lY3Rvck1vZGVsKSA9PiB7XHJcbiAgICAgIG4uYW5ub3RhdGlvbnMubGVuZ3RoICYmIE9iamVjdC5hc3NpZ24obi5hbm5vdGF0aW9uc1swXSwge1xyXG4gICAgICAgIG9mZnNldDoge1xyXG4gICAgICAgICAgeDogdmFsdWUgPT09ICdSaWdodCcgPyAxIDogdmFsdWUgPT09ICdMZWZ0JyA/IDAgOiAuNSxcclxuICAgICAgICAgIHk6IHZhbHVlID09PSAnVG9wJyA/IDAgOiB2YWx1ZSA9PT0gJ0JvdHRvbScgPyAxIDogLjVcclxuICAgICAgICB9LFxyXG4gICAgICAgIHZlcnRpY2FsQWxpZ25tZW50OiB2YWx1ZSA9PT0gJ1RvcCcgPyAnQm90dG9tJyA6IHZhbHVlID09PSAnQm90dG9tJyA/ICdUb3AnIDogJ0NlbnRlcicsXHJcbiAgICAgICAgaG9yaXpvbnRhbEFsaWdubWVudDogdmFsdWUgPT09ICdSaWdodCcgPyAnTGVmdCcgOiB2YWx1ZSA9PT0gJ0xlZnQnID8gJ1JpZ2h0JyA6ICdDZW50ZXInXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXMuZm9yRWFjaCh0YXNrKTtcclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLmNvbm5lY3RvcnMuZm9yRWFjaCh0YXNrKTtcclxuICAgIHRoaXMuYWxpZ25tZW50ID0gdmFsdWU7XHJcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICB9XHJcbiAgcHVibGljIGRyYWdFbnRlcihhcmdzOiBJRHJhZ0VudGVyRXZlbnRBcmdzKTogdm9pZCB7XHJcbiAgICBjb25zdCBvYmo6IE5vZGVNb2RlbCA9IGFyZ3MuZWxlbWVudCBhcyBOb2RlTW9kZWw7XHJcbiAgICBpZiAob2JqIGluc3RhbmNlb2YgTm9kZSkge1xyXG4gICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IG9iajtcclxuICAgICAgb2JqLndpZHRoID0gMTAwO1xyXG4gICAgICBvYmouaGVpZ2h0ICo9IDEwMCAvIHdpZHRoO1xyXG4gICAgICBvYmoub2Zmc2V0WCArPSAob2JqLndpZHRoIC0gd2lkdGgpIC8gMjtcclxuICAgICAgb2JqLm9mZnNldFkgKz0gKG9iai5oZWlnaHQgLSBoZWlnaHQpIC8gMjtcclxuICAgICAgb2JqLnN0eWxlID0geyBmaWxsOiAnd2hpdGUnLCBzdHJva2VDb2xvcjogJ2JsYWNrJyB9O1xyXG4gICAgfVxyXG4gIH1cclxuICBwcm9wZXJ0eUNoYW5nZShlKSB7XHJcbiAgICBpZiAoZS5jYXVzZSAhPT0gMikgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgfVxyXG4gIGNoYW5nZSgpIHtcclxuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gIH1cclxuICBhZGRUZXh0KCkge1xyXG4gICAgdGhpcy5kaWFncmFtLmRyYXdpbmdPYmplY3QgPSB7XHJcbiAgICAgIHNoYXBlOiB7XHJcbiAgICAgICAgdHlwZTogJ1RleHQnLFxyXG4gICAgICB9LFxyXG4gICAgICBjb25zdHJhaW50czogTm9kZUNvbnN0cmFpbnRzLkRlZmF1bHQgJiB+Tm9kZUNvbnN0cmFpbnRzLkluQ29ubmVjdCAmIH5Ob2RlQ29uc3RyYWludHMuT3V0Q29ubmVjdFxyXG4gICAgfSBhcyBOb2RlTW9kZWw7XHJcbiAgICB0aGlzLmRpYWdyYW1Ub29sID0gRGlhZ3JhbVRvb2xzLkRyYXdPbmNlO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDdHJsLXMgc2F2ZVxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmRpcnR5ICYmIGV2ZW50LmN0cmxLZXkgJiYgKGV2ZW50LndoaWNoID09PSA4MyB8fCBldmVudC53aGljaCA9PT0gMTE1KSkge1xyXG4gICAgICB0aGlzLnNhdmUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgYmdDaGFuZ2UodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLm5vZGVzLmZvckVhY2gobiA9PiBuLnN0eWxlLmZpbGwgPSB2YWwpO1xyXG4gICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgfVxyXG4gIGNvbG9yQ2hhbmdlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5ub2Rlcy5mb3JFYWNoKG4gPT4gbi5hbm5vdGF0aW9ucy5mb3JFYWNoKGEgPT4gYS5zdHlsZS5jb2xvciA9IHZhbCkpO1xyXG4gICAgdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMuY29ubmVjdG9ycy5mb3JFYWNoKGMgPT4gYy5hbm5vdGF0aW9ucy5mb3JFYWNoKGEgPT4gYS5zdHlsZS5jb2xvciA9IHZhbCkpO1xyXG4gICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgfVxyXG4gIGNvbm5lY3RvclR5cGVDaGFuZ2UodHlwZTogU2VnbWVudHMpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLmNvbm5lY3RvcnMuZm9yRWFjaChjID0+IGMudHlwZSA9IHR5cGUpO1xyXG4gICAgdGhpcy5jb25uZWN0b3JUeXBlID0gdHlwZTtcclxuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gIH1cclxuICBzaXplQ2hhbmdlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5ub2Rlcy5mb3JFYWNoKG4gPT4gbi5hbm5vdGF0aW9ucy5mb3JFYWNoKGEgPT4gYS5zdHlsZS5mb250U2l6ZSA9IHBhcnNlSW50KHZhbCkpKTtcclxuICAgIHRoaXMuZGlhZ3JhbS5kYXRhQmluZCgpO1xyXG4gIH1cclxuICBzdHJva2VDaGFuZ2UodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLmNvbm5lY3RvcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy5zdHlsZS5zdHJva2VDb2xvciA9IHZhbDtcclxuICAgICAgaWYgKGMuYW5ub3RhdGlvbnMpIGMuYW5ub3RhdGlvbnNbMF0uc3R5bGUuY29sb3IgPSB2YWw7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLm5vZGVzLmZvckVhY2gobiA9PiBuLnN0eWxlLnN0cm9rZUNvbG9yID0gdmFsKTtcclxuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gIH1cclxuICBzYXZlKCk6IFByb21pc2U8YW55PiB7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VyaWFsaXphdGlvblNldHRpbmdzID0geyBwcmV2ZW50RGVmYXVsdHM6IHRydWUgfTtcclxuICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UodGhpcy5kaWFncmFtLnNhdmVEaWFncmFtKCkpO1xyXG4gICAgdGhpcy5fZm9ybS53b3JrZmxvdy5jb25uZWN0b3JzID0gb2JqLmNvbm5lY3RvcnM7XHJcbiAgICB0aGlzLl9mb3JtLndvcmtmbG93Lm5vZGVzID0gb2JqLm5vZGVzLmZpbHRlcihuID0+IG4uaWQgIT09ICd2ZXJzaW9uJyk7XHJcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VydmljZS5zYXZlKHRoaXMuX2Zvcm0pLnRvUHJvbWlzZSgpLnRoZW4odiA9PiB7XHJcbiAgICAgIHRoaXMucHMudG9hc3QoJ0NoYW5nZXNTYXZlZCcpO1xyXG4gICAgICBpZiAodGhpcy5fZm9ybS53b3JrZmxvdy52ZXJzaW9uIDwgdikge1xyXG4gICAgICAgIHRoaXMucHMudG9hc3QoJ0RpYWdyYW1WZXJzaW9uJywgdik7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZGlhZ3JhbS5nZXROb2RlT2JqZWN0KCd2ZXJzaW9uJyk7XHJcbiAgICAgICAgKG5vZGUuc2hhcGUgYXMgVGV4dE1vZGVsKS5jb250ZW50ID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRGlhZ3JhbVZlcnNpb24nLCB2KTtcclxuICAgICAgICB0aGlzLmRpYWdyYW0uZGF0YUJpbmQoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9mb3JtLndvcmtmbG93LnZlcnNpb24gPSB2O1xyXG4gICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XHJcbiAgICB9LCAoKSA9PiB7XHJcbiAgICAgIHRoaXMucHMuZXJyb3IoKTtcclxuICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bWF0LXRvb2xiYXI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvb2xzID0gIXRvb2xzXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0NvbGxhcHNlJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj52aWV3X3NpZGViYXI8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwic2F2ZSgpXCIgY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFkaXJ0eSB8fCBzYXZpbmdcIj57eydTYXZlQ2hhbmdlcycgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJkaWFncmFtLmZpdFRvUGFnZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0ZpdFRvUGFnZScgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+ZnVsbHNjcmVlbl9leGl0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZGlhZ3JhbS51bmRvKClcIiBbYml6ZG9jVG9vbHRpcF09XCInVW5kbycgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIWRpYWdyYW0uaGlzdG9yeU1hbmFnZXI/LmNhblVuZG9cIj48bWF0LWljb24+dW5kbzwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImRpYWdyYW0ucmVkbygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlZG8nIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFkaWFncmFtLmhpc3RvcnlNYW5hZ2VyPy5jYW5SZWRvXCI+PG1hdC1pY29uPnJlZG88L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICZuYnNwO1xyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJwYW4oKVwiIFtiaXpkb2NUb29sdGlwXT1cIidQYW4nIHwgdHJhbnNsYXRlXCI+PHNwYW4gY2xhc3M9XCJlLWljb25zIHNmLWljb24tcGFuXCI+PC9zcGFuPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjdXJzb3IoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidDdXJzb3InIHwgdHJhbnNsYXRlXCI+PHNwYW4gY2xhc3M9XCJlLWljb25zIHNmLWljb24tY3Vyc29yXCI+PC9zcGFuPjwvYnV0dG9uPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYWRkVGV4dCgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1RleHQnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPnRpdGxlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImxpbmVNZW51XCIgW2Rpc2FibGVkXT1cIiFkaWFncmFtLnNlbGVjdGVkSXRlbXM/LmNvbm5lY3RvcnMubGVuZ3RoXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0Nvbm5lY3Rvck1vZGUnfHRyYW5zbGF0ZVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJlLW1lbnUtaWNvblwiIFtuZ0NsYXNzXT1cInsnc2YtaWNvbi1zdHJhaWdodC1saW5lJzogY29ubmVjdG9yVHlwZSA9PT0gJ1N0cmFpZ2h0JyxcclxuICAgICAgICAgICdzZi1pY29uLW9ydGhvZ29uYWwtbGluZSc6IGNvbm5lY3RvclR5cGUgPT09ICdPcnRob2dvbmFsJyxcclxuICAgICAgICAgICdzZi1pY29uLWJlaXplci1saW5lJzogY29ubmVjdG9yVHlwZSA9PT0gJ0Jlemllcid9XCI+PC9zcGFuPlxyXG4gICAgPG1hdC1pY29uPmFycm93X2Ryb3BfZG93bjwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcbiAgPG1hdC1tZW51ICNsaW5lTWVudSBwYW5lbENsYXNzPVwiaWNvbi1tZW51LXBhbmVsXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNvbm5lY3RvclR5cGVDaGFuZ2UoJ1N0cmFpZ2h0JylcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJlLW1lbnUtaWNvbiBzZi1pY29uLXN0cmFpZ2h0LWxpbmVcIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY29ubmVjdG9yVHlwZUNoYW5nZSgnT3J0aG9nb25hbCcpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1tZW51LWljb24gc2YtaWNvbi1vcnRob2dvbmFsLWxpbmVcIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY29ubmVjdG9yVHlwZUNoYW5nZSgnQmV6aWVyJylcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJlLW1lbnUtaWNvbiBzZi1pY29uLWJlaXplci1saW5lXCI+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9tYXQtbWVudT5cclxuICAmbmJzcDtcclxuICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFsaWduTWVudVwiIFtkaXNhYmxlZF09XCIhZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zPy5ub2Rlcy5sZW5ndGggJiYgIWRpYWdyYW0uc2VsZWN0ZWRJdGVtcz8uY29ubmVjdG9ycy5sZW5ndGhcIiBbYml6ZG9jVG9vbHRpcF09XCInQWxpZ24nfHRyYW5zbGF0ZVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJlLWljb25zXCIgW25nQ2xhc3NdPVwieydzZi1pY29uLXRvcCc6IGFsaWdubWVudCA9PT0gJ1RvcCcsXHJcbiAgICAgICAgICAnc2YtaWNvbi1sZWZ0JzogYWxpZ25tZW50ID09PSAnTGVmdCcsXHJcbiAgICAgICAgICAnc2YtaWNvbi1jZW50ZXInOiBhbGlnbm1lbnQgPT09ICdDZW50ZXInLFxyXG4gICAgICAgICAgJ3NmLWljb24tYm90dG9tJzogYWxpZ25tZW50ID09PSAnQm90dG9tJyxcclxuICAgICAgICAgICdzZi1pY29uLXJpZ2h0JzogYWxpZ25tZW50ID09PSAnUmlnaHQnfVwiPjwvc3Bhbj5cclxuICAgIDxtYXQtaWNvbj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxtYXQtbWVudSAjYWxpZ25NZW51IHBhbmVsQ2xhc3M9XCJpY29uLW1lbnUtcGFuZWxcIj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiYWxpZ24oJ1RvcCcpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1pY29ucyBzZi1pY29uLXRvcFwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhbGlnbignTGVmdCcpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1pY29ucyBzZi1pY29uLWxlZnRcIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiYWxpZ24oJ0NlbnRlcicpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1pY29ucyBzZi1pY29uLWNlbnRlclwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhbGlnbignQm90dG9tJylcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJlLWljb25zIHNmLWljb24tYm90dG9tXCI+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImFsaWduKCdSaWdodCcpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1pY29ucyBzZi1pY29uLXJpZ2h0XCI+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9tYXQtbWVudT5cclxuPC9tYXQtdG9vbGJhcj5cclxuPGRpdiBjbGFzcz1cInJvdyBjb250YWluZXJcIj5cclxuICA8ZGl2IGlkPVwic3ltYm9scGFsZXR0ZVwiICpuZ0lmPVwidG9vbHNcIj5cclxuICA8ZWpzLXN5bWJvbHBhbGV0dGUgZGlyPVwibHRyXCIgZXhwYW5kTW9kZT0nTXVsdGlwbGUnIFtwYWxldHRlc109J3BhbGV0dGVzJyB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgW3N5bWJvbEhlaWdodF09ODBcclxuICAgICAgICAgICAgICAgICAgICAgW2VuYWJsZVJ0bF09XCJmYWxzZVwiIFtlbmFibGVBbmltYXRpb25dPVwiZmFsc2VcIiBbc3ltYm9sV2lkdGhdPTgwIFtzeW1ib2xNYXJnaW5dPSdzeW1ib2xNYXJnaW4nIFtnZXRTeW1ib2xJbmZvXT0nZ2V0U3ltYm9sSW5mbycgW2dldE5vZGVEZWZhdWx0c109J2dldFN5bWJvbERlZmF1bHRzJz5cclxuICA8L2Vqcy1zeW1ib2xwYWxldHRlPlxyXG4gIDwvZGl2PlxyXG4gIDxlanMtZGlhZ3JhbSAjZGlhZ3JhbSBpZD1cImRpYWdyYW1cIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgZGlyPVwibHRyXCIgW3NuYXBTZXR0aW5nc109J3NuYXBTZXR0aW5ncycgW2dldENvbm5lY3RvckRlZmF1bHRzXT0nY29ubkRlZmF1bHRzJyBmeEZsZXhcclxuICAgICAgICAgICAgICAgW2NvbnN0cmFpbnRzXT1cImRpYWdyYW1Db25zdHJhaW50c1wiIFt0b29sXT1kaWFncmFtVG9vbCBbZ2V0Tm9kZURlZmF1bHRzXT0nbm9kZURlZmF1bHRzJyBbZ2V0Q3VzdG9tVG9vbF09J2dldEN1c3RvbVRvb2wnIFtzY3JvbGxTZXR0aW5nc109XCJzY3JvbGxTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgIFtzZWxlY3RlZEl0ZW1zXT1cInNlbGVjdGVkSXRlbXNcIlxyXG4gICAgICAgICAgICAgICBbcnVsZXJTZXR0aW5nc109XCJydWxlclNldHRpbmdzXCJcclxuICAgICAgICAgICAgICAgKGRyYWdFbnRlcik9J2RyYWdFbnRlcigkZXZlbnQpJ1xyXG4gICAgICAgICAgICAgICAoY29ubmVjdGlvbkNoYW5nZSk9XCJjaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgIChjb2xsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZSgpXCJcclxuICAgICAgICAgICAgICAgKHByb3BlcnR5Q2hhbmdlKT1cInByb3BlcnR5Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZSgpXCJcclxuICAgICAgICAgICAgICAgKGNyZWF0ZWQpPVwiZGlhZ3JhbUNyZWF0ZSgpXCI+XHJcbiAgPC9lanMtZGlhZ3JhbT5cclxuPC9kaXY+XHJcbiJdfQ==
408
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9mb3JtL3dvcmtmbG93L3dvcmtmbG93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vZm9ybS93b3JrZmxvdy93b3JrZmxvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUNMLHNCQUFzQixFQUFFLGtCQUFrQixFQUFtQixtQkFBbUIsRUFBNEMsb0JBQW9CLEVBQStDLGVBQWUsRUFDOU0sT0FBTyxFQUFhLFFBQVEsRUFBbUUsSUFBSSxFQUEwQixZQUFZLEVBQUUsb0JBQW9CLEVBQ2hLLE1BQU0sa0NBQWtDLENBQUM7QUFRMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXpELE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFekIsU0FBUyxRQUFRO0lBQ2YsTUFBTSxLQUFLLEdBQXFCO1FBQzlCLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQzFELEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVB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dCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPbkRlc3Ryb3ksIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuICBTeW1ib2xQYWxldHRlQ29tcG9uZW50LCBEaWFncmFtQ29uc3RyYWludHMsIFVzZXJIYW5kbGVNb2RlbCwgU2VsZWN0b3JDb25zdHJhaW50cywgVG9vbEJhc2UsIE1vdXNlRXZlbnRBcmdzLCBDb25uZWN0b3JNb2RlbCwgQ29ubmVjdG9yRHJhd2luZ1Rvb2wsIFRleHRNb2RlbCwgUG9pbnRQb3J0TW9kZWwsIERpYWdyYW1Db21wb25lbnQsIE5vZGVDb25zdHJhaW50cywgU2Nyb2xsU2V0dGluZ3NNb2RlbCxcclxuICBEaWFncmFtLCBOb2RlTW9kZWwsIFVuZG9SZWRvLCBTeW1ib2xJbmZvLCBJRHJhZ0VudGVyRXZlbnRBcmdzLCBTbmFwU2V0dGluZ3NNb2RlbCwgTWFyZ2luTW9kZWwsIE5vZGUsIFBhbGV0dGVNb2RlbCwgU2VnbWVudHMsIERpYWdyYW1Ub29scywgQ29ubmVjdG9yQ29uc3RyYWludHMsIFNlbGVjdG9yTW9kZWwsIFJ1bGVyU2V0dGluZ3NNb2RlbCwgQWxpZ25tZW50T3B0aW9ucywgVGV4dFN0eWxlTW9kZWxcclxufSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1kaWFncmFtcyc7XHJcbmltcG9ydCB7IEZvcm0gfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uL2Zvcm0uc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFdvcmtmbG93Tm9kZUNvbXBvbmVudCB9IGZyb20gJy4vbm9kZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZG1pbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2FkbWluLWRpc21pc3Muc2VydmljZSc7XHJcbmltcG9ydCB7IE9wZW5Qb2xpY3kgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5cclxuRGlhZ3JhbS5JbmplY3QoVW5kb1JlZG8pO1xyXG5cclxuZnVuY3Rpb24gZ2V0UG9ydHMoKTogUG9pbnRQb3J0TW9kZWxbXSB7XHJcbiAgY29uc3QgcG9ydHM6IFBvaW50UG9ydE1vZGVsW10gPSBbXHJcbiAgICB7IGlkOiAncG9ydDEnLCBzaGFwZTogJ0NpcmNsZScsIG9mZnNldDogeyB4OiAwLCB5OiAwLjUgfSB9LFxyXG4gICAgeyBpZDogJ3BvcnQyJywgc2hhcGU6ICdDaXJjbGUnLCBvZmZzZXQ6IHsgeDogMC41LCB5OiAxIH0gfSxcclxuICAgIHsgaWQ6ICdwb3J0MycsIHNoYXBlOiAnQ2lyY2xlJywgb2Zmc2V0OiB7IHg6IDEsIHk6IDAuNSB9IH0sXHJcbiAgICB7IGlkOiAncG9ydDQnLCBzaGFwZTogJ0NpcmNsZScsIG9mZnNldDogeyB4OiAwLjUsIHk6IDAgfSB9XHJcbiAgXTtcclxuICByZXR1cm4gcG9ydHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNob3dQYWxldHRlSWNvbigpOiB2b2lkIHtcclxuICBjb25zdCBwYWxldHRlU3BhY2U6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhbGV0dGUtc3BhY2UnKTtcclxuICBjb25zdCBpc01vYmlsZSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOjU1MHB4KScpLm1hdGNoZXM7XHJcbiAgaWYgKGlzTW9iaWxlKSB7XHJcbiAgICBpZiAoIXBhbGV0dGVTcGFjZS5jbGFzc0xpc3QuY29udGFpbnMoJ3NiLW1vYmlsZS1wYWxldHRlLW9wZW4nKSkge1xyXG4gICAgICBwYWxldHRlU3BhY2UuY2xhc3NMaXN0LmFkZCgnc2ItbW9iaWxlLXBhbGV0dGUtb3BlbicpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcGFsZXR0ZVNwYWNlLmNsYXNzTGlzdC5yZW1vdmUoJ3NiLW1vYmlsZS1wYWxldHRlLW9wZW4nKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhbGV0dGVJY29uQ2xpY2soKSB7XHJcbiAgY29uc3QgaXNNb2JpbGUgPSB3aW5kb3cubWF0Y2hNZWRpYSgnKG1heC13aWR0aDo1NTBweCknKS5tYXRjaGVzO1xyXG4gIGlmIChpc01vYmlsZSkge1xyXG4gICAgY29uc3QgcGFsZXR0ZUljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFsZXR0ZS1pY29uJyk7XHJcbiAgICBpZiAocGFsZXR0ZUljb24pIHtcclxuICAgICAgcGFsZXR0ZUljb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBzaG93UGFsZXR0ZUljb24sIGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vRGVmaW5lcyB0aGUgdG9vbFxyXG5jbGFzcyBEcmF3VG9vbCBleHRlbmRzIENvbm5lY3RvckRyYXdpbmdUb29sIHtcclxuICBwdWJsaWMgbW91c2VNb3ZlKGFyZ3M6IE1vdXNlRXZlbnRBcmdzKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZGlhZ3JhbS5kcmF3aW5nT2JqZWN0ID0ge1xyXG4gICAgICAgIHR5cGU6IHRoaXMuc2VnbWVudHMgfHwgJ0JlemllcicsXHJcbiAgICAgICAgc291cmNlSUQ6IHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLm5vZGVzWzBdLmlkXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuaW5BY3Rpb24gPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgb2sgPSBzdXBlci5tb3VzZU1vdmUoYXJncyk7XHJcbiAgICByZXR1cm4gb2s7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhZ3JhbTogRGlhZ3JhbSwgcHJpdmF0ZSBzZWdtZW50czogU2VnbWVudHMpIHtcclxuICAgIHN1cGVyKGRpYWdyYW0uY29tbWFuZEhhbmRsZXIsICdDb25uZWN0b3JTb3VyY2VFbmQnLCBudWxsKTtcclxuICB9XHJcbn1cclxuY29uc3QgTElOS19QQVRIID0gJ00zNDYuNyw3MTQuNmwzNjguMS0zNjguMWMxNy45LTE3LjksMTcuOS00Ny4xLDAtNjQuOWMtMTcuOS0xNy45LTQ3LjEtMTcuOS02NC45LDBsLTM2OCwzNjhjLTE3LjksMTcuOS0xNy45LDQ3LjEsMCw2NC45QzI5OS42LDczMi41LDMyOC45LDczMi41LDM0Ni43LDcxNC42eiBNNDY4LjIsNjUxYzYuNCw5LDcuNiwxOC41LDcuNiwyMy44YzAsNi4zLTEuNSwxOC42LTExLjgsMjguOUwyNzEsODk2LjVjLTEwLjMsMTAuMy0yMi41LDExLjgtMjguOSwxMS44Yy02LjMsMC0xOC42LTEuNS0yOC45LTExLjhMMTAzLjUsNzg2LjhjLTEwLjMtMTAuMy0xMS44LTIyLjUtMTEuOC0yOC45YzAtNi40LDEuNS0xOC42LDExLjgtMjguOWwxOTIuOS0xOTIuOWMxMC4zLTEwLjMsMjIuNS0xMS44LDI4LjktMTEuOGM0LjUsMCwxMS44LDAuOCwxOS4zLDQuOGw1OC42LTU4LjZjLTQ4LTM5LjYtMTE5LjYtMzYuOS0xNjQuNSw3LjlMNDUuNyw2NzEuM2MtNDcuNyw0Ny43LTQ3LjcsMTI1LjUsMCwxNzMuMmwxMDkuNywxMDkuN2M0Ny43LDQ3LjcsMTI1LjUsNDcuNywxNzMuMiwwbDE5Mi45LTE5Mi45YzQ2LTQ2LDQ3LjYtMTIwLjQsNC42LTE2OC40TDQ2OC4yLDY1MXogTTk1NC4yLDE1NS41TDg0NC41LDQ1LjhDNzk2LjktMS45LDcxOS0xLjksNjcxLjMsNDUuOEw0NzguNCwyMzguN2MtNDQuOCw0NC44LTQ3LjUsMTE2LjUtNy45LDE2NC41bDU4LjYtNTguNmMtNC03LjYtNC44LTE0LjktNC44LTE5LjNjMC02LjMsMS41LTE4LjYsMTEuOC0yOC45bDE5Mi45LTE5Mi45YzEwLjMtMTAuMywyMi41LTExLjgsMjguOS0xMS44YzYuMywwLDE4LjYsMS41LDI4LjksMTEuOGwxMDkuNywxMDkuN2MxMC4zLDEwLjMsMTEuOCwyMi41LDExLjgsMjguOWMwLDYuMy0xLjUsMTguNi0xMS44LDI4LjlMNzAzLjcsNDY0Yy0xMC4zLDEwLjMtMjIuNSwxMS44LTI4LjksMTEuOGMtNS4zLDAtMTQuOC0xLjEtMjMuOC03LjZsLTU4LDU4YzQ4LDQzLDEyMi4zLDQxLjUsMTY4LjQtNC42bDE5Mi45LTE5Mi45QzEwMDEuOSwyODEuMSwxMDAxLjksMjAzLjEsOTU0LjIsMTU1LjV6JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXdvcmtmbG93JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2Zsb3cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dvcmtmbG93LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdwYW5lJ1xyXG4gIH1cclxufSlcclxuLyoqIHdvcmtmbG93IGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWRtaW5Db21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoU3ltYm9sUGFsZXR0ZUNvbXBvbmVudCkgc3ltYm9sUGFsZXR0ZTogU3ltYm9sUGFsZXR0ZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdkaWFncmFtJykgZGlhZ3JhbTogRGlhZ3JhbUNvbXBvbmVudDtcclxuICB0b29scyA9IHRydWU7XHJcbiAgY29ubmVjdG9yVHlwZTogU2VnbWVudHMgPSAnQmV6aWVyJztcclxuICBhbGlnbm1lbnQ6IEFsaWdubWVudE9wdGlvbnMgPSAnQ2VudGVyJztcclxuICBmb250U2l6ZSA9IDEyO1xyXG4gIHB1YmxpYyBnZXRDdXN0b21Ub29sID0gdGhpcy5nZXRUb29sLmJpbmQodGhpcyk7XHJcbiAgcHVibGljIGdldFRvb2woYWN0aW9uOiBzdHJpbmcpOiBUb29sQmFzZSB7XHJcbiAgICBsZXQgdG9vbDogVG9vbEJhc2UgPSBudWxsO1xyXG4gICAgaWYgKGFjdGlvbiA9PT0gJ2Nvbm5lY3QnKVxyXG4gICAgICB0b29sID0gbmV3IERyYXdUb29sKHRoaXMuZGlhZ3JhbSwgdGhpcy5jb25uZWN0b3JUeXBlKTtcclxuICAgIHJldHVybiB0b29sO1xyXG4gIH1cclxuICBzYXZpbmcgPSBmYWxzZTtcclxuICBlbGVtZW50PzogYW55O1xyXG4gIGRpcnR5ID0gZmFsc2U7XHJcbiAgcGFyYW1zOiB7fTtcclxuICBwYWxldHRlczogUGFsZXR0ZU1vZGVsW10gPSBbXTtcclxuICBkaWFncmFtQ29uc3RyYWludHM6IERpYWdyYW1Db25zdHJhaW50cyA9IERpYWdyYW1Db25zdHJhaW50cy5EZWZhdWx0IHwgRGlhZ3JhbUNvbnN0cmFpbnRzLkJyaWRnaW5nIHwgRGlhZ3JhbUNvbnN0cmFpbnRzLlVzZXJJbnRlcmFjdGlvbiB8IERpYWdyYW1Db25zdHJhaW50cy5ab29tO1xyXG4gIGRpYWdyYW1Ub29sOiBEaWFncmFtVG9vbHMgPSBEaWFncmFtVG9vbHMuRGVmYXVsdDtcclxuICAvL0RlZmluZXMgdGhlIHVzZXIgaGFuZGxlIGNvbGxlY3Rpb24gZm9yIG5vZGVzIGluIGRpYWdyYW1cclxuICBwcml2YXRlIHJlYWRvbmx5IF91c2VySGFuZGxlczogVXNlckhhbmRsZU1vZGVsW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdjb25uZWN0JyxcclxuICAgICAgcGF0aERhdGE6IExJTktfUEFUSCxcclxuICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICBzaWRlOiAnUmlnaHQnLFxyXG4gICAgICBkaXNwbGFjZW1lbnQ6IDIwLFxyXG4gICAgICBtYXJnaW46IHsgdG9wOiAwLCBib3R0b206IDAsIGxlZnQ6IDAsIHJpZ2h0OiAwIH1cclxuICAgIH1cclxuICBdO1xyXG4gIC8vU3ltYm9sUGFsZXR0ZSBQcm9wZXJ0aWVzXHJcbiAgcmVhZG9ubHkgc3ltYm9sTWFyZ2luOiBNYXJnaW5Nb2RlbCA9IHsgbGVmdDogMTAsIHJpZ2h0OiAxMCwgdG9wOiAxMCwgYm90dG9tOiAxMCB9O1xyXG4gIHJlYWRvbmx5IHNuYXBTZXR0aW5nczogU25hcFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgfTtcclxuICByZWFkb25seSBzZWxlY3RlZEl0ZW1zOiBTZWxlY3Rvck1vZGVsID0ge1xyXG4gIH07XHJcbiAgcmVhZG9ubHkgc2Nyb2xsU2V0dGluZ3M6IFNjcm9sbFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBtaW5ab29tOiAuNSxcclxuICAgIG1heFpvb206IDIuNVxyXG4gIH07XHJcbiAgcHJpdmF0ZSBfcnVsZXJDb2xvciA9IHRoaXMuX3Nlc3Npb24uZ2V0QWNjZW50KDEwMCk7XHJcbiAgcmVhZG9ubHkgcnVsZXJTZXR0aW5nczogUnVsZXJTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgaG9yaXpvbnRhbFJ1bGVyOiB7IG1hcmtlckNvbG9yOiB0aGlzLl9ydWxlckNvbG9yIH0sXHJcbiAgICB2ZXJ0aWNhbFJ1bGVyOiB7IG1hcmtlckNvbG9yOiB0aGlzLl9ydWxlckNvbG9yIH1cclxuICB9O1xyXG4gIHByaXZhdGUgX2Zvcm06IEZvcm07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgLyoqIHdvcmtmbG93IGN0b3IgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBzOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogRm9ybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wYW5lOiBQYW5lUmVmPFdvcmtmbG93Q29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5fcGFsZXR0ZXMoKTtcclxuICB9XHJcbiAgcHVibGljIGRpYWdyYW1DcmVhdGUoKTogdm9pZCB7XHJcbiAgICBwYWxldHRlSWNvbkNsaWNrKCk7XHJcbiAgICB0aGlzLl9wYW5lLnBhcmFtc0NoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHAgPT4ge1xyXG4gICAgICBjb25zdCBpZCA9IHBbJ2lkJ107XHJcbiAgICAgIHRoaXMuX2Zvcm0gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PT0gaWQpO1xyXG4gICAgICB0aGlzLl9wYW5lLnRpdGxlID0gdGhpcy5fZm9ybS50aXRsZTtcclxuICAgICAgdGhpcy5wYXJhbXMgPSB7IGlkOiB0aGlzLl9mb3JtLm5hbWUgfTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcGFuZS5kYXRhQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoZCA9PiB7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fZm9ybSwgZC5mb3JtKTtcclxuICAgICAgY29uc3QgZmxvdyA9IHRoaXMuX2Zvcm0ud29ya2Zsb3c7XHJcbiAgICAgIHRoaXMuZGlhZ3JhbS5ub2RlcyA9IGZsb3cubm9kZXM7XHJcbiAgICAgIHRoaXMuZGlhZ3JhbS5jb25uZWN0b3JzID0gZmxvdy5jb25uZWN0b3JzO1xyXG4gICAgICB0aGlzLmRpYWdyYW0uZGF0YUJpbmQoKTtcclxuICAgICAgdGhpcy5kaWFncmFtLmFkZCh0aGlzLl92ZXJzaW9uTm9kZShmbG93LnZlcnNpb24pKTtcclxuICAgICAgdGhpcy5kaWFncmFtLmZpdFRvUGFnZSgpO1xyXG4gICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3BhbmUucmVzaXplLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgdGhpcy5kaWFncmFtLnJlZnJlc2goKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3BhbGV0dGVzKCkge1xyXG4gICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm5vZGVzLmZvckVhY2gobiA9PiB7XHJcbiAgICAgIGNvbnN0IG5vZGU6IE5vZGVNb2RlbCA9IHtcclxuICAgICAgICBpZDogbi5uYW1lLFxyXG4gICAgICAgIHNoYXBlOiBuLnNoYXBlLFxyXG4gICAgICAgIGFkZEluZm86IHtcclxuICAgICAgICAgIG5vZGVUeXBlOiBuLm5hbWUsXHJcbiAgICAgICAgICB0aXRsZTogbi50aXRsZVxyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgKG5vZGUgYXMgYW55KS5ub2RlID0gbi5uYW1lO1xyXG4gICAgICBsZXQgcGFsZXR0ZSA9IHRoaXMucGFsZXR0ZXMuZmluZChwID0+IHAudGl0bGUgPT09IChuLnBhbGV0dGUgfHwgJycpKTtcclxuICAgICAgaWYgKCFwYWxldHRlKSB7XHJcbiAgICAgICAgcGFsZXR0ZSA9IHsgaWQ6IGBfJHtuLnBhbGV0dGV9YCwgZXhwYW5kZWQ6IHRydWUsIHRpdGxlOiBuLnBhbGV0dGUgfHwgJycsIHN5bWJvbHM6IFtdIH07XHJcbiAgICAgICAgdGhpcy5wYWxldHRlcy5wdXNoKHBhbGV0dGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHBhbGV0dGUuc3ltYm9scy5wdXNoKG5vZGUpO1xyXG4gICAgfSk7XHJcbiAgICAvL3RoaXMucGFsZXR0ZXMucHVzaCh7IGlkOiAnZGVzaWduJywgdGl0bGU6IHRoaXMuX3RyYW5zbGF0aW9uLmdldCgnRGVzaWduJyksIHN5bWJvbHM6IFt7IGlkOiAndGV4dCcsIHNoYXBlOiB7IHR5cGU6ICdUZXh0JywgdGV4dENvbnRlbnQ6ICdUJyB9LCBhZGRJbmZvOiB7IHRpdGxlOiB0aGlzLl90cmFuc2xhdGlvbi5nZXQoJ1RleHQnKSB9IH1dIH0pO1xyXG4gICAgLyp0aGlzLnBhbGV0dGVzLnB1c2goc3dpbWxhbmUgKTsqL1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdmVyc2lvbk5vZGUodmVyc2lvbjogbnVtYmVyKTogTm9kZU1vZGVsIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlkOiAndmVyc2lvbicsXHJcbiAgICAgIHNoYXBlOiB7XHJcbiAgICAgICAgdHlwZTogJ1RleHQnLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0RpYWdyYW1WZXJzaW9uJywgdmVyc2lvbiB8fCAwKVxyXG4gICAgICB9LFxyXG4gICAgICBvZmZzZXRZOiA1LFxyXG4gICAgICBvZmZzZXRYOiA1LFxyXG4gICAgICBzdHlsZToge1xyXG4gICAgICAgIGZvbnRTaXplOiA1MCxcclxuICAgICAgICBjb2xvcjogdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ3doaXRlJyA6ICdibGFjaycsXHJcbiAgICAgICAgb3BhY2l0eTogLjFcclxuICAgICAgfSBhcyBUZXh0U3R5bGVNb2RlbCxcclxuICAgICAgY29uc3RyYWludHM6IE5vZGVDb25zdHJhaW50cy5SZWFkT25seSxcclxuICAgICAgekluZGV4OiAtMVxyXG4gICAgfSBhcyBUZXh0TW9kZWw7XHJcbiAgfVxyXG4gIG5vZGVEZWZhdWx0cyA9ICgpOiBOb2RlTW9kZWwgPT4ge1xyXG4gICAgY29uc3Qgb2JqOiBOb2RlTW9kZWwgPSB7XHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgZmlsbDogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICBzdHJva2VDb2xvcjogdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ3doaXRlJyA6ICdibGFjaycsXHJcbiAgICAgICAgc3Ryb2tlV2lkdGg6IDFcclxuICAgICAgfSxcclxuICAgICAgYW5ub3RhdGlvbnM6IFt7XHJcbiAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnd2hpdGUnIDogJ2JsYWNrJyxcclxuICAgICAgICAgIGZpbGw6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgICAgICBvcGFjaXR5OiAuOFxyXG4gICAgICAgIH1cclxuICAgICAgfV1cclxuICAgIH07XHJcbiAgICBpZiAob2JqLndpZHRoID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgb2JqLndpZHRoID0gMTQ1O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcmF0aW86IG51bWJlciA9IDEwMCAvIG9iai53aWR0aDtcclxuICAgICAgb2JqLndpZHRoID0gMTAwO1xyXG4gICAgICBvYmouaGVpZ2h0ICo9IHJhdGlvO1xyXG4gICAgfVxyXG4gICAgb2JqLmNvbnN0cmFpbnRzID0gTm9kZUNvbnN0cmFpbnRzLkRlZmF1bHQgfCBOb2RlQ29uc3RyYWludHMuQXNwZWN0UmF0aW87XHJcbiAgICBvYmoucG9ydHMgPSBnZXRQb3J0cygpO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgcHVibGljIGNvbm5EZWZhdWx0cyA9IChvYmo6IENvbm5lY3Rvck1vZGVsKTogdm9pZCA9PiB7XHJcbiAgICBvYmouY29uc3RyYWludHMgPSBDb25uZWN0b3JDb25zdHJhaW50cy5EZWZhdWx0IHwgQ29ubmVjdG9yQ29uc3RyYWludHMuQnJpZGdpbmcgfCBDb25uZWN0b3JDb25zdHJhaW50cy5EcmFnU2VnbWVudFRodW1iO1xyXG4gICAgb2JqLnN0eWxlLnN0cm9rZUNvbG9yID0gdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ3doaXRlJyA6ICdibGFjayc7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRTeW1ib2xJbmZvKHN5bWJvbDogTm9kZU1vZGVsKTogU3ltYm9sSW5mbyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmaXQ6IHRydWUsXHJcbiAgICAgIHRvb2x0aXA6IChzeW1ib2wuYWRkSW5mbyBhcyBhbnkpLnRpdGxlLFxyXG4gICAgICBkZXNjcmlwdGlvbjogeyB0ZXh0OiAoc3ltYm9sLmFkZEluZm8gYXMgYW55KS50aXRsZSwgb3ZlcmZsb3c6ICdXcmFwJywgd3JhcDogJ1dyYXBXaXRoT3ZlcmZsb3cnIH1cclxuICAgIH07XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRTeW1ib2xEZWZhdWx0cyhzeW1ib2w6IE5vZGVNb2RlbCk6IHZvaWQge1xyXG4gICAgc3ltYm9sLndpZHRoID0gc3ltYm9sLmhlaWdodCA9IDQwO1xyXG4gICAgc3ltYm9sLmNvbnN0cmFpbnRzID0gTm9kZUNvbnN0cmFpbnRzLkRlZmF1bHQgfCBOb2RlQ29uc3RyYWludHMuQXNwZWN0UmF0aW87XHJcbiAgfVxyXG4gIHBhbigpIHtcclxuICAgIHRoaXMuZGlhZ3JhbUNvbnN0cmFpbnRzID0gdGhpcy5kaWFncmFtQ29uc3RyYWludHMgfCBEaWFncmFtQ29uc3RyYWludHMuUGFuO1xyXG4gICAgdGhpcy5kaWFncmFtVG9vbCA9IERpYWdyYW1Ub29scy5ab29tUGFuO1xyXG4gIH1cclxuICBjdXJzb3IoKSB7XHJcbiAgICB0aGlzLmRpYWdyYW1Db25zdHJhaW50cyA9IHRoaXMuZGlhZ3JhbUNvbnN0cmFpbnRzICYgfkRpYWdyYW1Db25zdHJhaW50cy5QYW47XHJcbiAgICB0aGlzLmRpYWdyYW1Ub29sID0gRGlhZ3JhbVRvb2xzLkRlZmF1bHQ7XHJcbiAgfVxyXG4gIHNlbGVjdGlvbkNoYW5nZSgpIHtcclxuICAgIGNvbnN0IHsgbm9kZXMsIGNvbm5lY3RvcnMgfSA9IHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zO1xyXG4gICAgaWYgKGNvbm5lY3RvcnMubGVuZ3RoIHx8IG5vZGVzLmxlbmd0aCkge1xyXG4gICAgICBpZiAobm9kZXMubGVuZ3RoID09PSAxICYmIG5vZGVzWzBdLmFkZEluZm8pIHtcclxuICAgICAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5jb25zdHJhaW50cyA9IFNlbGVjdG9yQ29uc3RyYWludHMuQWxsIHwgU2VsZWN0b3JDb25zdHJhaW50cy5Vc2VySGFuZGxlO1xyXG4gICAgICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLnVzZXJIYW5kbGVzID0gdGhpcy5fdXNlckhhbmRsZXM7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5jb25zdHJhaW50cyA9IFNlbGVjdG9yQ29uc3RyYWludHMuQWxsIF4gU2VsZWN0b3JDb25zdHJhaW50cy5Vc2VySGFuZGxlO1xyXG5cclxuICAgICAgaWYgKGNvbm5lY3RvcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgY29ubmVjdG9yID0gY29ubmVjdG9yc1swXTtcclxuICAgICAgICBjb25uZWN0b3JzLmZvckVhY2goYyA9PiB7IGlmICghYy5hZGRJbmZvKSBjLmFkZEluZm8gPSB7fSB9KTtcclxuICAgICAgICBjb25zdCB0eXBlID0gY29ubmVjdG9yLnR5cGU7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0b3JUeXBlID0gY29ubmVjdG9ycy5sZW5ndGggPT09IDEgfHwgY29ubmVjdG9ycy5ldmVyeShjID0+IGMudHlwZSA9PT0gdHlwZSkgPyB0eXBlIDogbnVsbDtcclxuICAgICAgICBpZiAoY29ubmVjdG9yLmFubm90YXRpb25zLmxlbmd0aClcclxuICAgICAgICAgIHRoaXMuZm9udFNpemUgPSBjb25uZWN0b3IuYW5ub3RhdGlvbnNbMF0uc3R5bGUuZm9udFNpemU7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0b3JUeXBlID0gY29ubmVjdG9ycy5sZW5ndGggPT09IDEgfHwgY29ubmVjdG9ycy5ldmVyeShjID0+IGMudHlwZSA9PT0gdHlwZSkgPyB0eXBlIDogbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBpZiAobm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzWzBdLFxyXG4gICAgICAgICAgYWRkSW5mbyA9IG5vZGUuYWRkSW5mbyBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGFkZEluZm8gJiYgYWRkSW5mby5ub2RlVHlwZSkge1xyXG4gICAgICAgICAgaWYgKG5vZGUuYW5ub3RhdGlvbnMubGVuZ3RoKVxyXG4gICAgICAgICAgICB0aGlzLmZvbnRTaXplID0gbm9kZS5hbm5vdGF0aW9uc1swXS5zdHlsZS5mb250U2l6ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fcm91dGVyLmNvbGxhcHNlKClcclxuICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFdvcmtmbG93Tm9kZUNvbXBvbmVudCwge1xyXG4gICAgICAgIHN0YXRlOiB7XHJcbiAgICAgICAgICBub2RlcywgY29ubmVjdG9yc1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9saWN5OiBPcGVuUG9saWN5LlRhYixcclxuICAgICAgICBleHBhbmRhYmxlOiBmYWxzZSxcclxuICAgICAgICBncm91cDogJydcclxuICAgICAgfSkudGhlbihwID0+IHtcclxuICAgICAgICAocC5pbnN0YW5jZSBhcyBXb3JrZmxvd05vZGVDb21wb25lbnQpLmNoYW5nZS5cclxuICAgICAgICAgIHBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5kaWFncmFtLmRhdGFCaW5kKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX3JvdXRlci5jb2xsYXBzZSgpO1xyXG4gIH1cclxuICBhbGlnbih2YWx1ZTogQWxpZ25tZW50T3B0aW9ucykge1xyXG4gICAgY29uc3QgdGFzayA9IChuOiBOb2RlTW9kZWwgfCBDb25uZWN0b3JNb2RlbCkgPT4ge1xyXG4gICAgICBuLmFubm90YXRpb25zLmxlbmd0aCAmJiBPYmplY3QuYXNzaWduKG4uYW5ub3RhdGlvbnNbMF0sIHtcclxuICAgICAgICBvZmZzZXQ6IHtcclxuICAgICAgICAgIHg6IHZhbHVlID09PSAnUmlnaHQnID8gMSA6IHZhbHVlID09PSAnTGVmdCcgPyAwIDogLjUsXHJcbiAgICAgICAgICB5OiB2YWx1ZSA9PT0gJ1RvcCcgPyAwIDogdmFsdWUgPT09ICdCb3R0b20nID8gMSA6IC41XHJcbiAgICAgICAgfSxcclxuICAgICAgICB2ZXJ0aWNhbEFsaWdubWVudDogdmFsdWUgPT09ICdUb3AnID8gJ0JvdHRvbScgOiB2YWx1ZSA9PT0gJ0JvdHRvbScgPyAnVG9wJyA6ICdDZW50ZXInLFxyXG4gICAgICAgIGhvcml6b250YWxBbGlnbm1lbnQ6IHZhbHVlID09PSAnUmlnaHQnID8gJ0xlZnQnIDogdmFsdWUgPT09ICdMZWZ0JyA/ICdSaWdodCcgOiAnQ2VudGVyJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLm5vZGVzLmZvckVhY2godGFzayk7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5jb25uZWN0b3JzLmZvckVhY2godGFzayk7XHJcbiAgICB0aGlzLmFsaWdubWVudCA9IHZhbHVlO1xyXG4gICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBkcmFnRW50ZXIoYXJnczogSURyYWdFbnRlckV2ZW50QXJncyk6IHZvaWQge1xyXG4gICAgY29uc3Qgb2JqOiBOb2RlTW9kZWwgPSBhcmdzLmVsZW1lbnQgYXMgTm9kZU1vZGVsO1xyXG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIE5vZGUpIHtcclxuICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBvYmo7XHJcbiAgICAgIG9iai53aWR0aCA9IDEwMDtcclxuICAgICAgb2JqLmhlaWdodCAqPSAxMDAgLyB3aWR0aDtcclxuICAgICAgb2JqLm9mZnNldFggKz0gKG9iai53aWR0aCAtIHdpZHRoKSAvIDI7XHJcbiAgICAgIG9iai5vZmZzZXRZICs9IChvYmouaGVpZ2h0IC0gaGVpZ2h0KSAvIDI7XHJcbiAgICAgIG9iai5zdHlsZSA9IHsgZmlsbDogJ3doaXRlJywgc3Ryb2tlQ29sb3I6ICdibGFjaycgfTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJvcGVydHlDaGFuZ2UoZSkge1xyXG4gICAgaWYgKGUuY2F1c2UgIT09IDIpIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gIH1cclxuICBjaGFuZ2UoKSB7XHJcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICB9XHJcbiAgYWRkVGV4dCgpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5kcmF3aW5nT2JqZWN0ID0ge1xyXG4gICAgICBzaGFwZToge1xyXG4gICAgICAgIHR5cGU6ICdUZXh0JyxcclxuICAgICAgfSxcclxuICAgICAgY29uc3RyYWludHM6IE5vZGVDb25zdHJhaW50cy5EZWZhdWx0ICYgfk5vZGVDb25zdHJhaW50cy5JbkNvbm5lY3QgJiB+Tm9kZUNvbnN0cmFpbnRzLk91dENvbm5lY3RcclxuICAgIH0gYXMgTm9kZU1vZGVsO1xyXG4gICAgdGhpcy5kaWFncmFtVG9vbCA9IERpYWdyYW1Ub29scy5EcmF3T25jZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3RybC1zIHNhdmVcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kaXJ0eSAmJiBldmVudC5jdHJsS2V5ICYmIChldmVudC53aGljaCA9PT0gODMgfHwgZXZlbnQud2hpY2ggPT09IDExNSkpIHtcclxuICAgICAgdGhpcy5zYXZlKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGJnQ2hhbmdlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5ub2Rlcy5mb3JFYWNoKG4gPT4gbi5zdHlsZS5maWxsID0gdmFsKTtcclxuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gIH1cclxuICBjb2xvckNoYW5nZSh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXMuZm9yRWFjaChuID0+IG4uYW5ub3RhdGlvbnMuZm9yRWFjaChhID0+IGEuc3R5bGUuY29sb3IgPSB2YWwpKTtcclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLmNvbm5lY3RvcnMuZm9yRWFjaChjID0+IGMuYW5ub3RhdGlvbnMuZm9yRWFjaChhID0+IGEuc3R5bGUuY29sb3IgPSB2YWwpKTtcclxuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gIH1cclxuICBjb25uZWN0b3JUeXBlQ2hhbmdlKHR5cGU6IFNlZ21lbnRzKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5jb25uZWN0b3JzLmZvckVhY2goYyA9PiBjLnR5cGUgPSB0eXBlKTtcclxuICAgIHRoaXMuY29ubmVjdG9yVHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICB9XHJcbiAgc2l6ZUNoYW5nZSh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXMuZm9yRWFjaChuID0+IG4uYW5ub3RhdGlvbnMuZm9yRWFjaChhID0+IGEuc3R5bGUuZm9udFNpemUgPSBwYXJzZUludCh2YWwpKSk7XHJcbiAgICB0aGlzLmRpYWdyYW0uZGF0YUJpbmQoKTtcclxuICB9XHJcbiAgc3Ryb2tlQ2hhbmdlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5jb25uZWN0b3JzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGMuc3R5bGUuc3Ryb2tlQ29sb3IgPSB2YWw7XHJcbiAgICAgIGlmIChjLmFubm90YXRpb25zKSBjLmFubm90YXRpb25zWzBdLnN0eWxlLmNvbG9yID0gdmFsO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5ub2Rlcy5mb3JFYWNoKG4gPT4gbi5zdHlsZS5zdHJva2VDb2xvciA9IHZhbCk7XHJcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICB9XHJcbiAgc2F2ZSgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgdGhpcy5kaWFncmFtLnNlcmlhbGl6YXRpb25TZXR0aW5ncyA9IHsgcHJldmVudERlZmF1bHRzOiB0cnVlIH07XHJcbiAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKHRoaXMuZGlhZ3JhbS5zYXZlRGlhZ3JhbSgpKTtcclxuICAgIHRoaXMuX2Zvcm0ud29ya2Zsb3cuY29ubmVjdG9ycyA9IG9iai5jb25uZWN0b3JzO1xyXG4gICAgdGhpcy5fZm9ybS53b3JrZmxvdy5ub2RlcyA9IG9iai5ub2Rlcy5maWx0ZXIobiA9PiBuLmlkICE9PSAndmVyc2lvbicpO1xyXG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2Uuc2F2ZSh0aGlzLl9mb3JtKS50b1Byb21pc2UoKS50aGVuKHYgPT4ge1xyXG4gICAgICB0aGlzLnBzLnRvYXN0KCdDaGFuZ2VzU2F2ZWQnKTtcclxuICAgICAgaWYgKHRoaXMuX2Zvcm0ud29ya2Zsb3cudmVyc2lvbiA8IHYpIHtcclxuICAgICAgICB0aGlzLnBzLnRvYXN0KCdEaWFncmFtVmVyc2lvbicsIHYpO1xyXG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmRpYWdyYW0uZ2V0Tm9kZU9iamVjdCgndmVyc2lvbicpO1xyXG4gICAgICAgIChub2RlLnNoYXBlIGFzIFRleHRNb2RlbCkuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0RpYWdyYW1WZXJzaW9uJywgdik7XHJcbiAgICAgICAgdGhpcy5kaWFncmFtLmRhdGFCaW5kKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fZm9ybS53b3JrZmxvdy52ZXJzaW9uID0gdjtcclxuICAgICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgfSwgKCkgPT4ge1xyXG4gICAgICB0aGlzLnBzLmVycm9yKCk7XHJcbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC10b29sYmFyPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b29scyA9ICF0b29sc1wiIFtiaXpkb2NUb29sdGlwXT1cIidDb2xsYXBzZScgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+dmlld19zaWRlYmFyPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInNhdmUoKVwiIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCIhZGlydHkgfHwgc2F2aW5nXCI+e3snU2F2ZUNoYW5nZXMnIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZGlhZ3JhbS5maXRUb1BhZ2UoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidGaXRUb1BhZ2UnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPmZ1bGxzY3JlZW5fZXhpdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImRpYWdyYW0udW5kbygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1VuZG8nIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFkaWFncmFtLmhpc3RvcnlNYW5hZ2VyPy5jYW5VbmRvXCI+PG1hdC1pY29uPnVuZG88L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJkaWFncmFtLnJlZG8oKVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZWRvJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhZGlhZ3JhbS5oaXN0b3J5TWFuYWdlcj8uY2FuUmVkb1wiPjxtYXQtaWNvbj5yZWRvPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAmbmJzcDtcclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicGFuKClcIiBbYml6ZG9jVG9vbHRpcF09XCInUGFuJyB8IHRyYW5zbGF0ZVwiPjxzcGFuIGNsYXNzPVwiZS1pY29ucyBzZi1pY29uLXBhblwiPjwvc3Bhbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY3Vyc29yKClcIiBbYml6ZG9jVG9vbHRpcF09XCInQ3Vyc29yJyB8IHRyYW5zbGF0ZVwiPjxzcGFuIGNsYXNzPVwiZS1pY29ucyBzZi1pY29uLWN1cnNvclwiPjwvc3Bhbj48L2J1dHRvbj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImFkZFRleHQoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidUZXh0JyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj50aXRsZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJsaW5lTWVudVwiIFtkaXNhYmxlZF09XCIhZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zPy5jb25uZWN0b3JzLmxlbmd0aFwiIFtiaXpkb2NUb29sdGlwXT1cIidDb25uZWN0b3JNb2RlJ3x0cmFuc2xhdGVcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZS1tZW51LWljb25cIiBbbmdDbGFzc109XCJ7J3NmLWljb24tc3RyYWlnaHQtbGluZSc6IGNvbm5lY3RvclR5cGUgPT09ICdTdHJhaWdodCcsXHJcbiAgICAgICAgICAnc2YtaWNvbi1vcnRob2dvbmFsLWxpbmUnOiBjb25uZWN0b3JUeXBlID09PSAnT3J0aG9nb25hbCcsXHJcbiAgICAgICAgICAnc2YtaWNvbi1iZWl6ZXItbGluZSc6IGNvbm5lY3RvclR5cGUgPT09ICdCZXppZXInfVwiPjwvc3Bhbj5cclxuICAgIDxtYXQtaWNvbj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxtYXQtbWVudSAjbGluZU1lbnUgcGFuZWxDbGFzcz1cImljb24tbWVudS1wYW5lbFwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjb25uZWN0b3JUeXBlQ2hhbmdlKCdTdHJhaWdodCcpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1tZW51LWljb24gc2YtaWNvbi1zdHJhaWdodC1saW5lXCI+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNvbm5lY3RvclR5cGVDaGFuZ2UoJ09ydGhvZ29uYWwnKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImUtbWVudS1pY29uIHNmLWljb24tb3J0aG9nb25hbC1saW5lXCI+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNvbm5lY3RvclR5cGVDaGFuZ2UoJ0JlemllcicpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1tZW51LWljb24gc2YtaWNvbi1iZWl6ZXItbGluZVwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbWF0LW1lbnU+XHJcbiAgJm5ic3A7XHJcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJhbGlnbk1lbnVcIiBbZGlzYWJsZWRdPVwiIWRpYWdyYW0uc2VsZWN0ZWRJdGVtcz8ubm9kZXMubGVuZ3RoICYmICFkaWFncmFtLnNlbGVjdGVkSXRlbXM/LmNvbm5lY3RvcnMubGVuZ3RoXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0FsaWduJ3x0cmFuc2xhdGVcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZS1pY29uc1wiIFtuZ0NsYXNzXT1cInsnc2YtaWNvbi10b3AnOiBhbGlnbm1lbnQgPT09ICdUb3AnLFxyXG4gICAgICAgICAgJ3NmLWljb24tbGVmdCc6IGFsaWdubWVudCA9PT0gJ0xlZnQnLFxyXG4gICAgICAgICAgJ3NmLWljb24tY2VudGVyJzogYWxpZ25tZW50ID09PSAnQ2VudGVyJyxcclxuICAgICAgICAgICdzZi1pY29uLWJvdHRvbSc6IGFsaWdubWVudCA9PT0gJ0JvdHRvbScsXHJcbiAgICAgICAgICAnc2YtaWNvbi1yaWdodCc6IGFsaWdubWVudCA9PT0gJ1JpZ2h0J31cIj48L3NwYW4+XHJcbiAgICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuICA8bWF0LW1lbnUgI2FsaWduTWVudSBwYW5lbENsYXNzPVwiaWNvbi1tZW51LXBhbmVsXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImFsaWduKCdUb3AnKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImUtaWNvbnMgc2YtaWNvbi10b3BcIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiYWxpZ24oJ0xlZnQnKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImUtaWNvbnMgc2YtaWNvbi1sZWZ0XCI+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImFsaWduKCdDZW50ZXInKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImUtaWNvbnMgc2YtaWNvbi1jZW50ZXJcIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiYWxpZ24oJ0JvdHRvbScpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1pY29ucyBzZi1pY29uLWJvdHRvbVwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhbGlnbignUmlnaHQnKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImUtaWNvbnMgc2YtaWNvbi1yaWdodFwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbWF0LW1lbnU+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxkaXYgY2xhc3M9XCJyb3cgY29udGFpbmVyXCI+XHJcbiAgPGRpdiBpZD1cInN5bWJvbHBhbGV0dGVcIiAqbmdJZj1cInRvb2xzXCI+XHJcbiAgPGVqcy1zeW1ib2xwYWxldHRlIGRpcj1cImx0clwiIGV4cGFuZE1vZGU9J011bHRpcGxlJyBbcGFsZXR0ZXNdPSdwYWxldHRlcycgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIFtzeW1ib2xIZWlnaHRdPTgwXHJcbiAgICAgICAgICAgICAgICAgICAgIFtlbmFibGVSdGxdPVwiZmFsc2VcIiBbZW5hYmxlQW5pbWF0aW9uXT1cImZhbHNlXCIgW3N5bWJvbFdpZHRoXT04MCBbc3ltYm9sTWFyZ2luXT0nc3ltYm9sTWFyZ2luJyBbZ2V0U3ltYm9sSW5mb109J2dldFN5bWJvbEluZm8nIFtnZXROb2RlRGVmYXVsdHNdPSdnZXRTeW1ib2xEZWZhdWx0cyc+XHJcbiAgPC9lanMtc3ltYm9scGFsZXR0ZT5cclxuICA8L2Rpdj5cclxuICA8ZWpzLWRpYWdyYW0gI2RpYWdyYW0gaWQ9XCJkaWFncmFtXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIGRpcj1cImx0clwiIFtzbmFwU2V0dGluZ3NdPSdzbmFwU2V0dGluZ3MnIFtnZXRDb25uZWN0b3JEZWZhdWx0c109J2Nvbm5EZWZhdWx0cycgZnhGbGV4XHJcbiAgICAgICAgICAgICAgIFtjb25zdHJhaW50c109XCJkaWFncmFtQ29uc3RyYWludHNcIiBbdG9vbF09ZGlhZ3JhbVRvb2wgW2dldE5vZGVEZWZhdWx0c109J25vZGVEZWZhdWx0cycgW2dldEN1c3RvbVRvb2xdPSdnZXRDdXN0b21Ub29sJyBbc2Nyb2xsU2V0dGluZ3NdPVwic2Nyb2xsU2V0dGluZ3NcIlxyXG4gICAgICAgICAgICAgICBbc2VsZWN0ZWRJdGVtc109XCJzZWxlY3RlZEl0ZW1zXCJcclxuICAgICAgICAgICAgICAgW3J1bGVyU2V0dGluZ3NdPVwicnVsZXJTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgIChkcmFnRW50ZXIpPSdkcmFnRW50ZXIoJGV2ZW50KSdcclxuICAgICAgICAgICAgICAgKGNvbm5lY3Rpb25DaGFuZ2UpPVwiY2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAoY29sbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgIChwcm9wZXJ0eUNoYW5nZSk9XCJwcm9wZXJ0eUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3Rpb25DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgIChjcmVhdGVkKT1cImRpYWdyYW1DcmVhdGUoKVwiPlxyXG4gIDwvZWpzLWRpYWdyYW0+XHJcbjwvZGl2PlxyXG4iXX0=