@colijnit/sharedcomponents 259.1.0 → 259.1.1

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 (49) hide show
  1. package/267.48755ac117fce8407070.js +1 -0
  2. package/358.645812766f7a400d0d38.js +1 -0
  3. package/3rdpartylicenses.txt +2222 -0
  4. package/977.bd6291f9ee6f6ddf91f1.js +1 -0
  5. package/bundles/colijnit-sharedcomponents.umd.js +8 -8
  6. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  7. package/esm2015/lib/businessobject/build-images-and-documentation-result.js +1 -1
  8. package/esm2015/lib/components/activity-list/activity-list.component.js +1 -1
  9. package/esm2015/lib/components/custom-pdf/custom-pdf-dialog.component.js +1 -1
  10. package/esm2015/lib/components/file-upload/file-upload.component.js +1 -1
  11. package/esm2015/lib/components/file-upload-popup/file-upload-popup.component.js +2 -2
  12. package/esm2015/lib/components/files-upload/components/base-file-upload.component.js +2 -2
  13. package/esm2015/lib/components/files-upload/files-upload.component.js +1 -1
  14. package/esm2015/lib/components/modify-task-form/modify-task-form.component.js +1 -1
  15. package/esm2015/lib/components/send-method-dialog/components/additional-file-button/additional-file-button.component.js +1 -1
  16. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.js +1 -1
  17. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.js +1 -1
  18. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +1 -1
  19. package/esm2015/lib/components/task-creator/task-creator.component.js +1 -1
  20. package/esm2015/lib/model/tag-tree-item.bo.js +1 -1
  21. package/esm2015/lib/service/shared.service.js +1 -1
  22. package/esm2015/lib/utils/co-document-shared-field-logic.js +1 -1
  23. package/favicon.ico +0 -0
  24. package/fesm2015/colijnit-sharedcomponents.js +1 -1
  25. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  26. package/index.html +12 -0
  27. package/lib/businessobject/build-images-and-documentation-result.d.ts +1 -1
  28. package/lib/components/activity-list/activity-list.component.d.ts +1 -1
  29. package/lib/components/custom-pdf/custom-pdf-dialog.component.d.ts +1 -1
  30. package/lib/components/file-upload/file-upload.component.d.ts +1 -1
  31. package/lib/components/file-upload-popup/file-upload-popup.component.d.ts +1 -1
  32. package/lib/components/files-upload/components/base-file-upload.component.d.ts +1 -1
  33. package/lib/components/files-upload/files-upload.component.d.ts +1 -1
  34. package/lib/components/modify-task-form/modify-task-form.component.d.ts +1 -1
  35. package/lib/components/send-method-dialog/components/additional-file-button/additional-file-button.component.d.ts +1 -1
  36. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.d.ts +1 -1
  37. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.d.ts +1 -1
  38. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +1 -1
  39. package/lib/components/task-creator/task-creator.component.d.ts +1 -1
  40. package/lib/model/tag-tree-item.bo.d.ts +1 -1
  41. package/lib/service/shared.service.d.ts +1 -1
  42. package/lib/utils/co-document-shared-field-logic.d.ts +1 -1
  43. package/main.c1c7cd593e5838981edc.js +1 -0
  44. package/package.json +1 -1
  45. package/polyfills.907fe9d1887c5de17993.js +1 -0
  46. package/runtime.45ce1c91acb2c08983a7.js +1 -0
  47. package/styles.cfef0c0bfa724e043eb2.css +1 -0
  48. package/esm2015/lib/businessobject/co-document-right.bo.js +0 -3
  49. package/lib/businessobject/co-document-right.bo.d.ts +0 -6
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtaW1hZ2VzLWFuZC1kb2N1bWVudGF0aW9uLXJlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9idXNpbmVzc29iamVjdC9idWlsZC1pbWFnZXMtYW5kLWRvY3VtZW50YXRpb24tcmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudFwiO1xyXG5cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkSW1hZ2VzQW5kRG9jdW1lbnRhdGlvblJlc3VsdCB7XHJcbiAgICBpbWFnZXM6IENvRG9jdW1lbnRbXTtcclxuICAgIGRvY3VtZW50YXRpb246IENvRG9jdW1lbnRbXTtcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtaW1hZ2VzLWFuZC1kb2N1bWVudGF0aW9uLXJlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9idXNpbmVzc29iamVjdC9idWlsZC1pbWFnZXMtYW5kLWRvY3VtZW50YXRpb24tcmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudC5ib1wiO1xyXG5cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkSW1hZ2VzQW5kRG9jdW1lbnRhdGlvblJlc3VsdCB7XHJcbiAgICBpbWFnZXM6IENvRG9jdW1lbnRbXTtcclxuICAgIGRvY3VtZW50YXRpb246IENvRG9jdW1lbnRbXTtcclxufVxyXG4iXX0=
@@ -189,4 +189,4 @@ ActivityListComponent.propDecorators = {
189
189
  taskIcon: [{ type: Input }],
190
190
  hidden: [{ type: HostBinding, args: ['class.co-shared-hidden',] }]
191
191
  };
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpdml0eS1saXN0L2FjdGl2aXR5LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLFVBQVUsRUFDckIsV0FBVyxFQUNYLEtBQUssRUFFTCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUVoRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUduRSxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUN6RyxPQUFPLEVBQ0wsOENBQThDLEVBRS9DLE1BQU0sOEJBQThCLENBQUM7QUFzRHRDLE1BQU0sT0FBTyxxQkFBcUI7SUFtRGhDLFlBQW1CLGdCQUFrQyxFQUNqQyxrQkFBcUQ7UUFEdEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1DO1FBbkR6RCxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osaUJBQVksR0FBRyxZQUFZLENBQUM7UUFDNUIsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFDNUIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQW9CL0IsZUFBVSxHQUFTLElBQUksQ0FBQyxjQUFj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QUUsa0JBQWtCO2dCQUM1QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUNUO2dCQUNELFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsOENBQThDO3dCQUN2RCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDO3FCQUNyRDtpQkFDRjtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBOURPLGdCQUFnQjtZQUtoQixpQ0FBaUM7Ozt3QkFnRXRDLFdBQVcsU0FBQyx3QkFBd0I7eUJBS3BDLEtBQUs7eUJBWUwsS0FBSzt1QkFHTCxLQUFLO3lCQUdMLEtBQUs7dUJBR0wsS0FBSztxQkFJTCxXQUFXLFNBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7UmVsYXRpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1raW5kLmVudW1cIjtcclxuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LmJvXCI7XHJcbmltcG9ydCB7QWN0aXZpdHlUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9hY3Rpdml0eS10eXBlXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QUxMX01PTlRIU30gZnJvbSBcIi4uLy4uL21vZGVsL2NvbnN0YW50L2FsbC1tb250aHNcIjtcclxuaW1wb3J0IHtUaW1lVXRpbHN9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC91dGlscy90aW1lLXV0aWxzXCI7XHJcbmltcG9ydCB7UmVsYXRpb25TbWFsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLXNtYWxsLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudFwiO1xyXG5pbXBvcnQge1NoYXJlZENvbXBvbmVudHNEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vdHJhbnNsYXRpb24vc2hhcmVkLWNvbXBvbmVudHMtZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FLFxyXG4gIFNjcmVlbkNvbmZpZ0FkYXB0ZXJDb21wb25lbnRcclxufSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tYWN0aXZpdHktbGlzdFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktbGlzdC13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS13cmFwcGVyXCIgW2NsYXNzLmN1c3RvbWVyLXJlcGx5LXdyYXBwZXJdPVwiKGdldFJlbGF0aW9uS2luZChhY3Rpdml0eS5hdXRob3IpID09PSBSZWxhdGlvbktpbmQuQ3VzdG9tZXIpXCIgKm5nRm9yPVwibGV0IGFjdGl2aXR5IG9mIGFjdGl2aXRpZXNcIiA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWRpc3BsYXlcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS1kaXNwbGF5LXRpdGxlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7YWN0aXZpdHkuYXV0aG9yICYmIChhY3Rpdml0eS5hdXRob3IuaW5pdGlhbHMgfHwgYWN0aXZpdHkuYXV0aG9yLmZhbWlseU5hbWUpID8gKGFjdGl2aXR5LmF1dGhvci5pbml0aWFscyB8fCAnJykgKyAnICcgKyAoYWN0aXZpdHkuYXV0aG9yLmZhbWlseU5hbWUgfHwgJycpIDogJyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4+e3tnZXREYXRlU3RyaW5nKGFjdGl2aXR5Lmxhc3RBY3Rpb25EYXRlVGltZSl9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWRpc3BsYXktY29udGVudFwiIFtjbGFzcy5jdXN0b21lci1yZXBseS1jb250ZW50XT1cIihnZXRSZWxhdGlvbktpbmQoYWN0aXZpdHkuYXV0aG9yKSA9PT0gUmVsYXRpb25LaW5kLkN1c3RvbWVyKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktZGlzcGxheS1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWljb25cIiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtY29sb3InOiBnZXRDb2xvckZvckFjdGl2aXR5KGFjdGl2aXR5KX1cIj5cclxuICAgICAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oZ2V0QWN0aXZpdHlJY29uKGFjdGl2aXR5KSlcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWN0aXZpdHkuYWN0aXZpdHlUeXBlICE9PSBBY3Rpdml0eVR5cGUuU3RhdGVDaGFuZ2VcIj57e2FjdGl2aXR5LnN1YkRlc2NyaXB0aW9ufX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJhY3Rpdml0eS5hY3Rpdml0eVR5cGUgPT09IEFjdGl2aXR5VHlwZS5TdGF0ZUNoYW5nZVwiPnt7YWN0aXZpdHkuYWN0aXZpdHlUaXRsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWRpc3BsYXktZm9vdGVyXCIgW2NsYXNzLmV4dHJhLWhlaWdodF09XCJzaG93VHJpZ2dlcnMoYWN0aXZpdHkpIHx8IHNob3dBdHRhY2htZW50cyhhY3Rpdml0eSkgfHwgc2hvd1dvcmtlZFRpbWUoYWN0aXZpdHkpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWZpcmVkLXRyaWdnZXJzXCIgKm5nSWY9XCJzaG93VHJpZ2dlcnMoYWN0aXZpdHkpXCIgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWZpcmVkLXRyaWdnZXJcIiAqbmdGb3I9XCJsZXQgdHJpZ2dlck5hbWUgb2YgYWN0aXZpdHkuc3RhdGVDaGFuZ2U/LmZpcmVkVHJpZ2dlck5hbWVzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7dHJpZ2dlck5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWluZGljYXRvcnNcIj5cclxuICAgICAgICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwic2hvd0F0dGFjaG1lbnRzKGFjdGl2aXR5KVwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oSWNvbi5QYXBlcmNsaXBSZWd1bGFyKVwiIChjbGljayk9XCJvcGVuQWN0aXZpdHlQb3B1cChhY3Rpdml0eSlcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cInNob3dFbWFpbEhpc3RvcnkoYWN0aXZpdHkpXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihJY29uLkVtYWlsUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dBdHRhY2htZW50cyhhY3Rpdml0eSlcIj57e2FjdGl2aXR5LmRvY3VtZW50cy5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwic2hvd1dvcmtlZFRpbWUoYWN0aXZpdHkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oSWNvbi5DbG9ja1JlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93V29ya2VkVGltZShhY3Rpdml0eSlcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAge3tUaW1lVXRpbHMuQ29udmVydFRvRHVyYXRpb24oZ2V0V29ya2VkVGltZShhY3Rpdml0eSkpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Y28tZGlhbG9nICpuZ0lmPVwic2hvd0FjdGl2aXR5UG9wdXBcIiAoY2xvc2VDbGljayk9XCJzaG93QWN0aXZpdHlQb3B1cCA9IGZhbHNlXCI+XHJcbiAgICAgIDxjby1maWxlcy11cGxvYWQgW2NhbkFkZF09XCJmYWxzZVwiICBbZG9jdW1lbnRzXT1cImN1cnJlbnRBY3Rpdml0eURvY3VtZW50c1wiPlxyXG4gICAgICA8L2NvLWZpbGVzLXVwbG9hZD5cclxuICAgIDwvY28tZGlhbG9nPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFjdGl2aXR5TGlzdENvbXBvbmVudClcclxuICAgIH1cclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgU2NyZWVuQ29uZmlnQWRhcHRlckNvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IEljb24gPSBJY29uO1xyXG4gIHB1YmxpYyByZWFkb25seSBSZWxhdGlvbktpbmQgPSBSZWxhdGlvbktpbmQ7XHJcbiAgcHVibGljIHJlYWRvbmx5IEFjdGl2aXR5VHlwZSA9IEFjdGl2aXR5VHlwZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgVGltZVV0aWxzID0gVGltZVV0aWxzO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1hY3Rpdml0eS1saXN0XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFjdGl2aXRpZXModmFsdWU6IEFjdGl2aXR5W10pIHtcclxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHZhbHVlLnNvcnQoKGE6IEFjdGl2aXR5LCBiOiBBY3Rpdml0eSkgPT4gYS5sYXN0QWN0aW9uRGF0ZVRpbWUgPCBiLmxhc3RBY3Rpb25EYXRlVGltZSA/IDE6IC0xKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2FjdGl2aXRpZXMgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWN0aXZpdGllcygpOiBBY3Rpdml0eVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9hY3Rpdml0aWVzO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVtYXJrSWNvbjogSWNvbiA9IEljb24uQ29tbWVudFJlZ3VsYXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHdvcmtJY29uOiBJY29uID0gSWNvbi5QZXJzb25EaWdnaW5nUmVndWxhcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3RhdHVzSWNvbjogSWNvbiA9IEljb24uRGlhZ3JhbVByb2plY3RSZWd1bGFyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0YXNrSWNvbjogSWNvbiA9IEljb24uVGFzaztcclxuXHJcbiAgcHVibGljIG9iamVjdENvbmZpZ05hbWU6IHN0cmluZztcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXNoYXJlZC1oaWRkZW4nKVxyXG4gIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XHJcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBmb3JjZVJlYWRvbmx5OiBib29sZWFuO1xyXG4gIHB1YmxpYyByZWFkb25seTogYm9vbGVhbjtcclxuICBwdWJsaWMgbWF4TGVuZ3RoOiBudW1iZXI7XHJcbiAgcHVibGljIGRlY2ltYWxzOiBudW1iZXI7XHJcbiAgcHVibGljIHJlZEVycm9yQmFja2dyb3VuZDogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIHNob3dBY3Rpdml0eVBvcHVwOiBCb29sZWFuO1xyXG4gIHB1YmxpYyBjdXJyZW50QWN0aXZpdHlEb2N1bWVudHM6IENvRG9jdW1lbnRbXTtcclxuXHJcbiAgcHJpdmF0ZSBfYWN0aXZpdGllczogQWN0aXZpdHlbXVxyXG4gIHByaXZhdGUgYWN0aXZpdHlDb2xvck1hcDogTWFwPEFjdGl2aXR5LCBzdHJpbmc+ID0gbmV3IE1hcCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9kaWN0aW9uYXJ5U2VydmljZTogU2hhcmVkQ29tcG9uZW50c0RpY3Rpb25hcnlTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UmVsYXRpb25LaW5kKGF1dGhvcjogUmVsYXRpb25TbWFsbE9iamVjdCk6IFJlbGF0aW9uS2luZCB7XHJcbiAgICBpZiAoYXV0aG9yKSB7XHJcbiAgICAgIHJldHVybiBhdXRob3IucmVsYXRpb25UeXBlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREYXRlU3RyaW5nKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCk7XHJcbiAgICBjb25zdCBtb250aCA9IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChBTExfTU9OVEhTW2RhdGUuZ2V0TW9udGgoKV0pO1xyXG4gICAgY29uc3QgaG91cnMgPSBkYXRlLmdldEhvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIHJldHVybiBgJHtkYXl9ICR7bW9udGh9ICR7aG91cnN9OiR7bWludXRlc31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFjdGl2aXR5SWNvbihhY3Rpdml0eTogQWN0aXZpdHkpOiBJY29uIHtcclxuICAgIHN3aXRjaCAoYWN0aXZpdHkuYWN0aXZpdHlUeXBlKSB7XHJcbiAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLlJlbWFyazpcclxuICAgICAgICByZXR1cm4gdGhpcy5yZW1hcmtJY29uO1xyXG4gICAgICBjYXNlIEFjdGl2aXR5VHlwZS5Xb3JrZmxvd1N0YXR1czpcclxuICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuV29yazpcclxuICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuV29ya2Zsb3dUYXNrOlxyXG4gICAgICBjYXNlIEFjdGl2aXR5VHlwZS5Gb3JtOlxyXG4gICAgICAgIHJldHVybiB0aGlzLndvcmtJY29uO1xyXG4gICAgICBjYXNlIEFjdGl2aXR5VHlwZS5TdGF0ZUNoYW5nZTpcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0dXNJY29uO1xyXG4gICAgICBjYXNlIEFjdGl2aXR5VHlwZS5UYXNrOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tJY29uO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dUcmlnZ2VycyhhY3Rpdml0eTogQWN0aXZpdHkpOiBib29sZWFuIHtcclxuICAgIGlmIChhY3Rpdml0eS5hY3Rpdml0eVR5cGUgPT09IEFjdGl2aXR5VHlwZS5TdGF0ZUNoYW5nZSAmJiBhY3Rpdml0eS5zdGF0ZUNoYW5nZS5maXJlZFRyaWdnZXJOYW1lcyAmJlxyXG4gICAgICAgICAgICAgICAgICBhY3Rpdml0eS5zdGF0ZUNoYW5nZS5maXJlZFRyaWdnZXJOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0F0dGFjaG1lbnRzKGFjdGl2aXR5OiBBY3Rpdml0eSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGFjdGl2aXR5LmRvY3VtZW50cyAmJiBhY3Rpdml0eS5kb2N1bWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dFbWFpbEhpc3RvcnkoYWN0aXZpdHk6IEFjdGl2aXR5KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoKGFjdGl2aXR5LnJlbWFyayAmJiBhY3Rpdml0eS5yZW1hcmsuZW1haWxIaXN0b3J5ICYmIGFjdGl2aXR5LnJlbWFyay5lbWFpbEhpc3RvcnkubGVuZ3RoID4gMCkgfHxcclxuICAgICAgICAoYWN0aXZpdHkud29yayAmJiBhY3Rpdml0eS53b3JrLmVtYWlsSGlzdG9yeSAmJiBhY3Rpdml0eS53b3JrLmVtYWlsSGlzdG9yeS5sZW5ndGggPiAwKSB8fFxyXG4gICAgICAgIChhY3Rpdml0eS50YXNrICYmIGFjdGl2aXR5LnRhc2suZW1haWxIaXN0b3J5ICYmIGFjdGl2aXR5LnRhc2suZW1haWxIaXN0b3J5Lmxlbmd0aCA+IDApKSB7XHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1dvcmtlZFRpbWUoYWN0aXZpdHk6IEFjdGl2aXR5KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoKGFjdGl2aXR5LklzV29yayAmJiBhY3Rpdml0eS53b3JrICYmIGFjdGl2aXR5Lndvcmsud29ya2VkVGltZSkgfHxcclxuICAgICAgKGFjdGl2aXR5LklzVGFzayAmJiBhY3Rpdml0eS50YXNrICYmIGFjdGl2aXR5LnRhc2sud29ya2VkVGltZSkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0V29ya2VkVGltZShhY3Rpdml0eTogQWN0aXZpdHkpOiBudW1iZXIge1xyXG4gICAgaWYgKGFjdGl2aXR5LklzV29yayAmJiBhY3Rpdml0eS53b3JrICYmIGFjdGl2aXR5Lndvcmsud29ya2VkVGltZSkge1xyXG4gICAgICByZXR1cm4gYWN0aXZpdHkud29yay53b3JrZWRUaW1lO1xyXG4gICAgfSBlbHNlIGlmIChhY3Rpdml0eS5Jc1Rhc2sgJiYgYWN0aXZpdHkudGFzayAmJiBhY3Rpdml0eS50YXNrLndvcmtlZFRpbWUpIHtcclxuICAgICAgcmV0dXJuIGFjdGl2aXR5LnRhc2sud29ya2VkVGltZTtcclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5BY3Rpdml0eVBvcHVwKGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QWN0aXZpdHlQb3B1cCA9IHRydWU7XHJcbiAgICB0aGlzLmN1cnJlbnRBY3Rpdml0eURvY3VtZW50cyA9IGFjdGl2aXR5LmRvY3VtZW50cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSYW5kb21Db2xvcigpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgciA9IE1hdGguZmxvb3IoMTgwICsgTWF0aC5yYW5kb20oKSAqIDc1KTsgLy8gMTgw4oCTMjU1XHJcbiAgICBjb25zdCBnID0gTWF0aC5mbG9vcigxODAgKyBNYXRoLnJhbmRvbSgpICogNzUpO1xyXG4gICAgY29uc3QgYiA9IE1hdGguZmxvb3IoMTgwICsgTWF0aC5yYW5kb20oKSAqIDc1KTtcclxuICAgIHJldHVybiBgcmdiKCR7cn0sJHtnfSwke2J9KWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q29sb3JGb3JBY3Rpdml0eShhY3Rpdml0eTogQWN0aXZpdHkpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLmFjdGl2aXR5Q29sb3JNYXAuaGFzKGFjdGl2aXR5KSkge1xyXG4gICAgICB0aGlzLmFjdGl2aXR5Q29sb3JNYXAuc2V0KGFjdGl2aXR5LCB0aGlzLmdldFJhbmRvbUNvbG9yKCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlDb2xvck1hcC5nZXQoYWN0aXZpdHkpO1xyXG4gIH1cclxufVxyXG4iXX0=
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpdml0eS1saXN0L2FjdGl2aXR5LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLFVBQVUsRUFDckIsV0FBVyxFQUNYLEtBQUssRUFFTCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUVoRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUduRSxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUN6RyxPQUFPLEVBQ0wsOENBQThDLEVBRS9DLE1BQU0sOEJBQThCLENBQUM7QUFzRHRDLE1BQU0sT0FBTyxxQkFBcUI7SUFtRGhDLFlBQW1CLGdCQUFrQyxFQUNqQyxrQkFBcUQ7UUFEdEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1DO1FBbkR6RCxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osaUJBQVksR0FBRyxZQUFZLENBQUM7UUFDNUIsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFDNUIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQW9CL0IsZUFBVSxHQUFTLElBQUksQ0FBQyxjQUFj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QUUsa0JBQWtCO2dCQUM1QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUNUO2dCQUNELFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsOENBQThDO3dCQUN2RCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDO3FCQUNyRDtpQkFDRjtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBOURPLGdCQUFnQjtZQUtoQixpQ0FBaUM7Ozt3QkFnRXRDLFdBQVcsU0FBQyx3QkFBd0I7eUJBS3BDLEtBQUs7eUJBWUwsS0FBSzt1QkFHTCxLQUFLO3lCQUdMLEtBQUs7dUJBR0wsS0FBSztxQkFJTCxXQUFXLFNBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7UmVsYXRpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1raW5kLmVudW1cIjtcclxuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LmJvXCI7XHJcbmltcG9ydCB7QWN0aXZpdHlUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9hY3Rpdml0eS10eXBlXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QUxMX01PTlRIU30gZnJvbSBcIi4uLy4uL21vZGVsL2NvbnN0YW50L2FsbC1tb250aHNcIjtcclxuaW1wb3J0IHtUaW1lVXRpbHN9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC91dGlscy90aW1lLXV0aWxzXCI7XHJcbmltcG9ydCB7UmVsYXRpb25TbWFsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLXNtYWxsLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudC5ib1wiO1xyXG5pbXBvcnQge1NoYXJlZENvbXBvbmVudHNEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vdHJhbnNsYXRpb24vc2hhcmVkLWNvbXBvbmVudHMtZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FLFxyXG4gIFNjcmVlbkNvbmZpZ0FkYXB0ZXJDb21wb25lbnRcclxufSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tYWN0aXZpdHktbGlzdFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktbGlzdC13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS13cmFwcGVyXCIgW2NsYXNzLmN1c3RvbWVyLXJlcGx5LXdyYXBwZXJdPVwiKGdldFJlbGF0aW9uS2luZChhY3Rpdml0eS5hdXRob3IpID09PSBSZWxhdGlvbktpbmQuQ3VzdG9tZXIpXCIgKm5nRm9yPVwibGV0IGFjdGl2aXR5IG9mIGFjdGl2aXRpZXNcIiA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWRpc3BsYXlcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS1kaXNwbGF5LXRpdGxlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7YWN0aXZpdHkuYXV0aG9yICYmIChhY3Rpdml0eS5hdXRob3IuaW5pdGlhbHMgfHwgYWN0aXZpdHkuYXV0aG9yLmZhbWlseU5hbWUpID8gKGFjdGl2aXR5LmF1dGhvci5pbml0aWFscyB8fCAnJykgKyAnICcgKyAoYWN0aXZpdHkuYXV0aG9yLmZhbWlseU5hbWUgfHwgJycpIDogJyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4+e3tnZXREYXRlU3RyaW5nKGFjdGl2aXR5Lmxhc3RBY3Rpb25EYXRlVGltZSl9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWRpc3BsYXktY29udGVudFwiIFtjbGFzcy5jdXN0b21lci1yZXBseS1jb250ZW50XT1cIihnZXRSZWxhdGlvbktpbmQoYWN0aXZpdHkuYXV0aG9yKSA9PT0gUmVsYXRpb25LaW5kLkN1c3RvbWVyKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktZGlzcGxheS1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWljb25cIiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtY29sb3InOiBnZXRDb2xvckZvckFjdGl2aXR5KGFjdGl2aXR5KX1cIj5cclxuICAgICAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oZ2V0QWN0aXZpdHlJY29uKGFjdGl2aXR5KSlcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWN0aXZpdHkuYWN0aXZpdHlUeXBlICE9PSBBY3Rpdml0eVR5cGUuU3RhdGVDaGFuZ2VcIj57e2FjdGl2aXR5LnN1YkRlc2NyaXB0aW9ufX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJhY3Rpdml0eS5hY3Rpdml0eVR5cGUgPT09IEFjdGl2aXR5VHlwZS5TdGF0ZUNoYW5nZVwiPnt7YWN0aXZpdHkuYWN0aXZpdHlUaXRsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWRpc3BsYXktZm9vdGVyXCIgW2NsYXNzLmV4dHJhLWhlaWdodF09XCJzaG93VHJpZ2dlcnMoYWN0aXZpdHkpIHx8IHNob3dBdHRhY2htZW50cyhhY3Rpdml0eSkgfHwgc2hvd1dvcmtlZFRpbWUoYWN0aXZpdHkpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWZpcmVkLXRyaWdnZXJzXCIgKm5nSWY9XCJzaG93VHJpZ2dlcnMoYWN0aXZpdHkpXCIgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWZpcmVkLXRyaWdnZXJcIiAqbmdGb3I9XCJsZXQgdHJpZ2dlck5hbWUgb2YgYWN0aXZpdHkuc3RhdGVDaGFuZ2U/LmZpcmVkVHJpZ2dlck5hbWVzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7dHJpZ2dlck5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWluZGljYXRvcnNcIj5cclxuICAgICAgICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwic2hvd0F0dGFjaG1lbnRzKGFjdGl2aXR5KVwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oSWNvbi5QYXBlcmNsaXBSZWd1bGFyKVwiIChjbGljayk9XCJvcGVuQWN0aXZpdHlQb3B1cChhY3Rpdml0eSlcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cInNob3dFbWFpbEhpc3RvcnkoYWN0aXZpdHkpXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihJY29uLkVtYWlsUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dBdHRhY2htZW50cyhhY3Rpdml0eSlcIj57e2FjdGl2aXR5LmRvY3VtZW50cy5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwic2hvd1dvcmtlZFRpbWUoYWN0aXZpdHkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oSWNvbi5DbG9ja1JlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93V29ya2VkVGltZShhY3Rpdml0eSlcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAge3tUaW1lVXRpbHMuQ29udmVydFRvRHVyYXRpb24oZ2V0V29ya2VkVGltZShhY3Rpdml0eSkpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Y28tZGlhbG9nICpuZ0lmPVwic2hvd0FjdGl2aXR5UG9wdXBcIiAoY2xvc2VDbGljayk9XCJzaG93QWN0aXZpdHlQb3B1cCA9IGZhbHNlXCI+XHJcbiAgICAgIDxjby1maWxlcy11cGxvYWQgW2NhbkFkZF09XCJmYWxzZVwiICBbZG9jdW1lbnRzXT1cImN1cnJlbnRBY3Rpdml0eURvY3VtZW50c1wiPlxyXG4gICAgICA8L2NvLWZpbGVzLXVwbG9hZD5cclxuICAgIDwvY28tZGlhbG9nPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFjdGl2aXR5TGlzdENvbXBvbmVudClcclxuICAgIH1cclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgU2NyZWVuQ29uZmlnQWRhcHRlckNvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IEljb24gPSBJY29uO1xyXG4gIHB1YmxpYyByZWFkb25seSBSZWxhdGlvbktpbmQgPSBSZWxhdGlvbktpbmQ7XHJcbiAgcHVibGljIHJlYWRvbmx5IEFjdGl2aXR5VHlwZSA9IEFjdGl2aXR5VHlwZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgVGltZVV0aWxzID0gVGltZVV0aWxzO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1hY3Rpdml0eS1saXN0XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFjdGl2aXRpZXModmFsdWU6IEFjdGl2aXR5W10pIHtcclxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHZhbHVlLnNvcnQoKGE6IEFjdGl2aXR5LCBiOiBBY3Rpdml0eSkgPT4gYS5sYXN0QWN0aW9uRGF0ZVRpbWUgPCBiLmxhc3RBY3Rpb25EYXRlVGltZSA/IDE6IC0xKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2FjdGl2aXRpZXMgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWN0aXZpdGllcygpOiBBY3Rpdml0eVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9hY3Rpdml0aWVzO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVtYXJrSWNvbjogSWNvbiA9IEljb24uQ29tbWVudFJlZ3VsYXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHdvcmtJY29uOiBJY29uID0gSWNvbi5QZXJzb25EaWdnaW5nUmVndWxhcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3RhdHVzSWNvbjogSWNvbiA9IEljb24uRGlhZ3JhbVByb2plY3RSZWd1bGFyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0YXNrSWNvbjogSWNvbiA9IEljb24uVGFzaztcclxuXHJcbiAgcHVibGljIG9iamVjdENvbmZpZ05hbWU6IHN0cmluZztcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXNoYXJlZC1oaWRkZW4nKVxyXG4gIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XHJcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBmb3JjZVJlYWRvbmx5OiBib29sZWFuO1xyXG4gIHB1YmxpYyByZWFkb25seTogYm9vbGVhbjtcclxuICBwdWJsaWMgbWF4TGVuZ3RoOiBudW1iZXI7XHJcbiAgcHVibGljIGRlY2ltYWxzOiBudW1iZXI7XHJcbiAgcHVibGljIHJlZEVycm9yQmFja2dyb3VuZDogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIHNob3dBY3Rpdml0eVBvcHVwOiBCb29sZWFuO1xyXG4gIHB1YmxpYyBjdXJyZW50QWN0aXZpdHlEb2N1bWVudHM6IENvRG9jdW1lbnRbXTtcclxuXHJcbiAgcHJpdmF0ZSBfYWN0aXZpdGllczogQWN0aXZpdHlbXVxyXG4gIHByaXZhdGUgYWN0aXZpdHlDb2xvck1hcDogTWFwPEFjdGl2aXR5LCBzdHJpbmc+ID0gbmV3IE1hcCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9kaWN0aW9uYXJ5U2VydmljZTogU2hhcmVkQ29tcG9uZW50c0RpY3Rpb25hcnlTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UmVsYXRpb25LaW5kKGF1dGhvcjogUmVsYXRpb25TbWFsbE9iamVjdCk6IFJlbGF0aW9uS2luZCB7XHJcbiAgICBpZiAoYXV0aG9yKSB7XHJcbiAgICAgIHJldHVybiBhdXRob3IucmVsYXRpb25UeXBlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREYXRlU3RyaW5nKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCk7XHJcbiAgICBjb25zdCBtb250aCA9IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChBTExfTU9OVEhTW2RhdGUuZ2V0TW9udGgoKV0pO1xyXG4gICAgY29uc3QgaG91cnMgPSBkYXRlLmdldEhvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIHJldHVybiBgJHtkYXl9ICR7bW9udGh9ICR7aG91cnN9OiR7bWludXRlc31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFjdGl2aXR5SWNvbihhY3Rpdml0eTogQWN0aXZpdHkpOiBJY29uIHtcclxuICAgIHN3aXRjaCAoYWN0aXZpdHkuYWN0aXZpdHlUeXBlKSB7XHJcbiAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLlJlbWFyazpcclxuICAgICAgICByZXR1cm4gdGhpcy5yZW1hcmtJY29uO1xyXG4gICAgICBjYXNlIEFjdGl2aXR5VHlwZS5Xb3JrZmxvd1N0YXR1czpcclxuICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuV29yazpcclxuICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuV29ya2Zsb3dUYXNrOlxyXG4gICAgICBjYXNlIEFjdGl2aXR5VHlwZS5Gb3JtOlxyXG4gICAgICAgIHJldHVybiB0aGlzLndvcmtJY29uO1xyXG4gICAgICBjYXNlIEFjdGl2aXR5VHlwZS5TdGF0ZUNoYW5nZTpcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0dXNJY29uO1xyXG4gICAgICBjYXNlIEFjdGl2aXR5VHlwZS5UYXNrOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tJY29uO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dUcmlnZ2VycyhhY3Rpdml0eTogQWN0aXZpdHkpOiBib29sZWFuIHtcclxuICAgIGlmIChhY3Rpdml0eS5hY3Rpdml0eVR5cGUgPT09IEFjdGl2aXR5VHlwZS5TdGF0ZUNoYW5nZSAmJiBhY3Rpdml0eS5zdGF0ZUNoYW5nZS5maXJlZFRyaWdnZXJOYW1lcyAmJlxyXG4gICAgICAgICAgICAgICAgICBhY3Rpdml0eS5zdGF0ZUNoYW5nZS5maXJlZFRyaWdnZXJOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0F0dGFjaG1lbnRzKGFjdGl2aXR5OiBBY3Rpdml0eSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGFjdGl2aXR5LmRvY3VtZW50cyAmJiBhY3Rpdml0eS5kb2N1bWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dFbWFpbEhpc3RvcnkoYWN0aXZpdHk6IEFjdGl2aXR5KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoKGFjdGl2aXR5LnJlbWFyayAmJiBhY3Rpdml0eS5yZW1hcmsuZW1haWxIaXN0b3J5ICYmIGFjdGl2aXR5LnJlbWFyay5lbWFpbEhpc3RvcnkubGVuZ3RoID4gMCkgfHxcclxuICAgICAgICAoYWN0aXZpdHkud29yayAmJiBhY3Rpdml0eS53b3JrLmVtYWlsSGlzdG9yeSAmJiBhY3Rpdml0eS53b3JrLmVtYWlsSGlzdG9yeS5sZW5ndGggPiAwKSB8fFxyXG4gICAgICAgIChhY3Rpdml0eS50YXNrICYmIGFjdGl2aXR5LnRhc2suZW1haWxIaXN0b3J5ICYmIGFjdGl2aXR5LnRhc2suZW1haWxIaXN0b3J5Lmxlbmd0aCA+IDApKSB7XHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1dvcmtlZFRpbWUoYWN0aXZpdHk6IEFjdGl2aXR5KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoKGFjdGl2aXR5LklzV29yayAmJiBhY3Rpdml0eS53b3JrICYmIGFjdGl2aXR5Lndvcmsud29ya2VkVGltZSkgfHxcclxuICAgICAgKGFjdGl2aXR5LklzVGFzayAmJiBhY3Rpdml0eS50YXNrICYmIGFjdGl2aXR5LnRhc2sud29ya2VkVGltZSkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0V29ya2VkVGltZShhY3Rpdml0eTogQWN0aXZpdHkpOiBudW1iZXIge1xyXG4gICAgaWYgKGFjdGl2aXR5LklzV29yayAmJiBhY3Rpdml0eS53b3JrICYmIGFjdGl2aXR5Lndvcmsud29ya2VkVGltZSkge1xyXG4gICAgICByZXR1cm4gYWN0aXZpdHkud29yay53b3JrZWRUaW1lO1xyXG4gICAgfSBlbHNlIGlmIChhY3Rpdml0eS5Jc1Rhc2sgJiYgYWN0aXZpdHkudGFzayAmJiBhY3Rpdml0eS50YXNrLndvcmtlZFRpbWUpIHtcclxuICAgICAgcmV0dXJuIGFjdGl2aXR5LnRhc2sud29ya2VkVGltZTtcclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5BY3Rpdml0eVBvcHVwKGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QWN0aXZpdHlQb3B1cCA9IHRydWU7XHJcbiAgICB0aGlzLmN1cnJlbnRBY3Rpdml0eURvY3VtZW50cyA9IGFjdGl2aXR5LmRvY3VtZW50cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSYW5kb21Db2xvcigpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgciA9IE1hdGguZmxvb3IoMTgwICsgTWF0aC5yYW5kb20oKSAqIDc1KTsgLy8gMTgw4oCTMjU1XHJcbiAgICBjb25zdCBnID0gTWF0aC5mbG9vcigxODAgKyBNYXRoLnJhbmRvbSgpICogNzUpO1xyXG4gICAgY29uc3QgYiA9IE1hdGguZmxvb3IoMTgwICsgTWF0aC5yYW5kb20oKSAqIDc1KTtcclxuICAgIHJldHVybiBgcmdiKCR7cn0sJHtnfSwke2J9KWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q29sb3JGb3JBY3Rpdml0eShhY3Rpdml0eTogQWN0aXZpdHkpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLmFjdGl2aXR5Q29sb3JNYXAuaGFzKGFjdGl2aXR5KSkge1xyXG4gICAgICB0aGlzLmFjdGl2aXR5Q29sb3JNYXAuc2V0KGFjdGl2aXR5LCB0aGlzLmdldFJhbmRvbUNvbG9yKCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlDb2xvck1hcC5nZXQoYWN0aXZpdHkpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -177,4 +177,4 @@ CustomPdfDialogComponent.propDecorators = {
177
177
  closePDFDialog: [{ type: Output }],
178
178
  additionalFileChangeEvent: [{ type: Output }]
179
179
  };
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXBkZi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXBkZi9jdXN0b20tcGRmLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFDNUIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sWUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUVuRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDckUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBMkIxQyxNQUFNLE9BQU8sd0JBQXdCO0lBOEJuQyxZQUNTLGdCQUFrQyxFQUNqQyxVQUF3QjtRQUR6QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQWM7UUEvQmxCLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBY25DLHVCQUFrQixHQUFXLEVBQUUsQ0FBQztRQUdoQyxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRzVELDhCQUF5QixHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFD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WUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFNBQXVCLEVBQUUsZUFBMkI7UUFDakYsTUFBTSxpQkFBaUIsR0FBVyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEQsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLGVBQWUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN4RixlQUFlLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUYsZUFBZSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRSxTQUFTLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0MsQ0FBQzs7O1lBdkxGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQWxDTyxnQkFBZ0I7WUFDaEIsWUFBWTs7O3dCQXFDakIsV0FBVyxTQUFDLDRCQUE0QjtzQkFLeEMsU0FBUyxTQUFDLFNBQVM7cUNBR25CLEtBQUs7aUNBR0wsS0FBSzs2QkFHTCxNQUFNO3dDQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtqc1BERn0gZnJvbSBcImpzcGRmXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IFNpZ25hdHVyZVBhZCBmcm9tIFwic2lnbmF0dXJlX3BhZFwiO1xyXG5pbXBvcnQge3RvSnBlZ30gZnJvbSAnaHRtbC10by1pbWFnZSc7XHJcbmltcG9ydCB7Q29Eb2N1bWVudH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvY3VtZW50XCI7XHJcbmltcG9ydCB7RmlsZVV0aWxzfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvdXRpbHMvZmlsZS11dGlsc1wiO1xyXG5cclxuaW1wb3J0IHtGaWxlVHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vZmlsZS10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tY3VzdG9tLXBkZi1kaWFsb2dcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWRpYWxvZ1xyXG4gICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIlxyXG4gICAgICBpZD1cImN1c3RvbS1wZGYtZGlhbG9nXCJcclxuICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VQREZEaWFsb2cuZW1pdCgpXCI+XHJcbiAgICAgIDxkaXYgI3BkZkJvZHkgaWQ9XCJwZGZCb2R5XCI+XHJcbiAgICAgICAgPHNlY3Rpb24gW2lubmVySFRNTF09XCJmaWxlQm9keVwiPjwvc2VjdGlvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1mb290ZXItYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTYXZlQ2xpY2tlZCgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc1NraW5ueSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VQREZEaWFsb2cuZW1pdCgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2NvLWRpYWxvZz5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21QZGZEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWN1c3RvbS1wZGYtZGlhbG9nJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdwZGZCb2R5JylcclxuICBwdWJsaWMgcGRmQm9keTogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWRkaXRpb25hbEZpbGVDb250ZW50czogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhZGRpdGlvbmFsRmlsZU5hbWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2xvc2VQREZEaWFsb2c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhZGRpdGlvbmFsRmlsZUNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8Q29Eb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvRG9jdW1lbnQ+KCk7XHJcblxyXG4gIHB1YmxpYyBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50O1xyXG4gIHB1YmxpYyBjb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XHJcbiAgcHVibGljIHNpZ25hdHVyZVBhZHM6IHsgW2tleTogc3RyaW5nXTogU2lnbmF0dXJlUGFkIH0gPSB7fTtcclxuICBwdWJsaWMgc2lnbmF0dXJlQ2FudmFzZXM6IHsgW2tleTogc3RyaW5nXTogRWxlbWVudFJlZiB9ID0ge307XHJcbiAgcHVibGljIGZpbGVCb2R5OiBhbnk7XHJcbiAgcHVibGljIGZpbGVTdHlsZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWRkaXRpb25hbEZpbGVDb250ZW50cykge1xyXG4gICAgICBjb25zdCBoZWFkOiBIVE1MSGVhZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xyXG4gICAgICBjb25zdCBzdHlsZXM6IHN0cmluZ1tdID0gdGhpcy5leHRyYWN0U3R5bGVQYXJ0cyh0aGlzLmFkZGl0aW9uYWxGaWxlQ29udGVudHMpO1xyXG4gICAgICB0aGlzLmZpbGVTdHlsZSA9IHN0eWxlc1swXTtcclxuICAgICAgY29uc3Qgc3R5bGU6IEhUTUxTdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG4gICAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLmZpbGVTdHlsZSkpO1xyXG4gICAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcclxuICAgICAgY29uc3QgYm9keTogc3RyaW5nW10gPSB0aGlzLmV4dHJhY3RCb2R5Q29udGVudHModGhpcy5hZGRpdGlvbmFsRmlsZUNvbnRlbnRzKTtcclxuICAgICAgdGhpcy5maWxlQm9keSA9IHRoaXMuX3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChib2R5WzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIFsnc2lnbmF0dXJlQ2FudmFzJywgJ3NpZ25hdHVyZUNhbnZhczInXS5mb3JFYWNoKGlkID0+IHtcclxuICAgICAgY29uc3QgY2FudmFzRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuICAgICAgaWYgKGNhbnZhc0VsZW1lbnQpIHtcclxuICAgICAgICBjb25zdCBjYW52YXNSZWYgPSBuZXcgRWxlbWVudFJlZihjYW52YXNFbGVtZW50KTtcclxuICAgICAgICBjb25zdCBzaWduYXR1cmVQYWQgPSBuZXcgU2lnbmF0dXJlUGFkKDxIVE1MQ2FudmFzRWxlbWVudD5jYW52YXNSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5zaWduYXR1cmVDYW52YXNlc1tpZF0gPSBjYW52YXNSZWY7XHJcbiAgICAgICAgdGhpcy5zaWduYXR1cmVQYWRzW2lkXSA9IHNpZ25hdHVyZVBhZDtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZXNpemVTaWduYXR1cmVDYW52YXMoc2lnbmF0dXJlUGFkLCBjYW52YXNSZWYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBjbGVhckJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbGVhckJ1dHRvbicpO1xyXG4gICAgY2xlYXJCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5oYW5kbGVDbGVhcigpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHRyYWN0U3R5bGVQYXJ0cyhodG1sOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBzdHlsZVBhdHRlcm46IFJlZ0V4cCA9IC88c3R5bGVbXj5dKj4oW1xcc1xcU10qPyk8XFwvc3R5bGU+L2dpO1xyXG4gICAgY29uc3QgbWF0Y2hlczogc3RyaW5nW10gPSBbXTtcclxuICAgIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcclxuICAgIHdoaWxlICgobWF0Y2ggPSBzdHlsZVBhdHRlcm4uZXhlYyhodG1sKSkgIT09IG51bGwpIHtcclxuICAgICAgbWF0Y2hlcy5wdXNoKG1hdGNoWzFdLnRyaW0oKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbWF0Y2hlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVTdHlsZUFuZFNjcmlwdFRhZ3MoaHRtbDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHN0eWxlVGFnUGF0dGVybjogUmVnRXhwID0gLzxzdHlsZVtePl0qPltcXHNcXFNdKj88XFwvc3R5bGU+L2dpO1xyXG4gICAgY29uc3Qgc2NyaXB0VGFnUGF0dGVybjogUmVnRXhwID0gLzxzY3JpcHRbXj5dKj5bXFxzXFxTXSo/PFxcL3NjcmlwdD4vZ2k7XHJcbiAgICByZXR1cm4gaHRtbC5yZXBsYWNlKHN0eWxlVGFnUGF0dGVybiwgJycpLnJlcGxhY2Uoc2NyaXB0VGFnUGF0dGVybiwgJycpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4dHJhY3RCb2R5Q29udGVudHMoaHRtbDogc3RyaW5nKTogc3RyaW5nIFtdIHtcclxuICAgIGh0bWwgPSB0aGlzLnJlbW92ZVN0eWxlQW5kU2NyaXB0VGFncyhodG1sKTtcclxuICAgIGNvbnN0IHN0eWxlUGF0dGVybjogUmVnRXhwID0gLzxib2R5W14+XSo+KFtcXHNcXFNdKj8pPFxcL2JvZHk+L2dpO1xyXG4gICAgY29uc3QgbWF0Y2hlczogc3RyaW5nW10gPSBbXTtcclxuICAgIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcclxuICAgIHdoaWxlICgobWF0Y2ggPSBzdHlsZVBhdHRlcm4uZXhlYyhodG1sKSkgIT09IG51bGwpIHtcclxuICAgICAgbWF0Y2hlcy5wdXNoKG1hdGNoWzFdLnRyaW0oKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbWF0Y2hlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTYXZlQ2xpY2tlZCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IGNsZWFyQnV0dG9uOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbGVhckJ1dHRvbicpO1xyXG4gICAgY2xlYXJCdXR0b24uaGlkZGVuID0gdHJ1ZTtcclxuICAgIGNvbnN0IGRvYzoganNQREYgPSBuZXcganNQREYoKTtcclxuICAgIGNvbnN0IGh0bWxEb2N1bWVudDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI3BkZkJvZHlcIik7XHJcbiAgICBjb25zdCBkb2N1bWVudFNlY3Rpb246IEhUTUxDb2xsZWN0aW9uT2Y8SFRNTEVsZW1lbnQ+ID0gaHRtbERvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzZWN0aW9uJyk7XHJcbiAgICBjb25zdCBzZWN0aW9uc0NvdW50OiBudW1iZXIgPSBkb2N1bWVudFNlY3Rpb24ubGVuZ3RoO1xyXG5cclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBzZWN0aW9uc0NvdW50OyBpKyspIHtcclxuICAgICAgY29uc3QgaHRtbDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudFNlY3Rpb25baV07XHJcbiAgICAgIHRvSnBlZyhodG1sLCB7cXVhbGl0eTogMSwgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnfSkudGhlbigoZGF0YVVybDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW1nOkhUTUxJbWFnZUVsZW1lbnQgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgICBpbWcuc3JjID0gZGF0YVVybDtcclxuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaW1nV2lkdGg6IG51bWJlciA9IDIxODtcclxuICAgICAgICAgIGNvbnN0IGltZ0hlaWdodDogbnVtYmVyID0gKGltZy5oZWlnaHQgKiBpbWdXaWR0aCkgLyBpbWcud2lkdGg7XHJcbiAgICAgICAgICBkb2MuYWRkSW1hZ2UoZGF0YVVybCwgJ0pQRycsIC00LCAwLCBpbWdXaWR0aCwgaW1nSGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChpID09PSBzZWN0aW9uc0NvdW50IC0gMSkge1xyXG4gICAgICAgICAgICAvLyBkb2Muc2F2ZSh0aGlzLmFkZGl0aW9uYWxGaWxlTmFtZSArICcucGRmJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRlbXBGaWxlOiBzdHJpbmcgPSBkb2Mub3V0cHV0KCdkYXRhdXJpc3RyaW5nJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSB0aGlzLmRhdGFVUkl0b0Jsb2IodGVtcEZpbGUpO1xyXG4gICAgICAgICAgICBGaWxlVXRpbHMuUmVhZEZpbGVBc05ld0NvRG9jdW1lbnQoZmlsZSkudGhlbihmaWxlQXNDb0RvY3VtZW50ID0+IHtcclxuICAgICAgICAgICAgICAvLyBzZXQgc29tZSBleHRyYSBrbm93biBmaWVsZHMgZm9yIHRoZSBjb2RvY3VtZW50OlxyXG4gICAgICAgICAgICAgIGZpbGVBc0NvRG9jdW1lbnQuZmlsZVR5cGUgPSBGaWxlVXRpbHMuSXNJbWFnZUZpbGUoZmlsZSkgPyBGaWxlVHlwZS5JbWFnZSA6IEZpbGVUeXBlLkRvY3VtZW50O1xyXG4gICAgICAgICAgICAgIGZpbGVBc0NvRG9jdW1lbnQuY3JlYXRpb25EYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgICAgICAgICBmaWxlQXNDb0RvY3VtZW50Lm1vZGlmaWVkRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgICAgZmlsZUFzQ29Eb2N1bWVudC5yZXBvcnRzID0gMTtcclxuICAgICAgICAgICAgICB0aGlzLmFkZGl0aW9uYWxGaWxlQ2hhbmdlRXZlbnQuZW1pdChmaWxlQXNDb0RvY3VtZW50KTtcclxuICAgICAgICAgICAgICB0aGlzLmNsb3NlUERGRGlhbG9nLmVtaXQoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkb2MuYWRkUGFnZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGdlbmVyYXRpbmcgaW1hZ2U6JywgZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGNsZWFyQnV0dG9uLmhpZGRlbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRhdGFVUkl0b0Jsb2IoZGF0YVVSSSk6IEZpbGUge1xyXG4gICAgY29uc3QgYnl0ZVN0cmluZzogc3RyaW5nID0gYXRvYihkYXRhVVJJLnNwbGl0KCcsJylbMV0pO1xyXG4gICAgY29uc3QgYWI6IEFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVTdHJpbmcubGVuZ3RoKTtcclxuICAgIGNvbnN0IGlhOiBVaW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYWIpO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGJ5dGVTdHJpbmcubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWFbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IEZpbGUoW2FiXSwgdGhpcy5hZGRpdGlvbmFsRmlsZU5hbWUgKyAnLnBkZicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNsZWFyKCk6IHZvaWQge1xyXG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnNpZ25hdHVyZVBhZHMpLmZvckVhY2goc2lnbmF0dXJlUGFkID0+IHtcclxuICAgICAgc2lnbmF0dXJlUGFkPy5jbGVhcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZXNpemVTaWduYXR1cmVDYW52YXMoc2lnbmF0dXJlOiBTaWduYXR1cmVQYWQsIHNpZ25hdHVyZUNhbnZhczogRWxlbWVudFJlZik6IHZvaWQge1xyXG4gICAgY29uc3QgaW1hZ2VCZWZvcmVSZXNpemU6IHN0cmluZyA9IHNpZ25hdHVyZS50b0RhdGFVUkwoKTtcclxuICAgIGNvbnN0IHJhdGlvOiBudW1iZXIgPSBNYXRoLm1heCh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxLCAxKTtcclxuICAgIHNpZ25hdHVyZUNhbnZhcy5uYXRpdmVFbGVtZW50LndpZHRoID0gc2lnbmF0dXJlQ2FudmFzLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKiByYXRpbztcclxuICAgIHNpZ25hdHVyZUNhbnZhcy5uYXRpdmVFbGVtZW50LmhlaWdodCA9IHNpZ25hdHVyZUNhbnZhcy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAqIHJhdGlvO1xyXG4gICAgc2lnbmF0dXJlQ2FudmFzLm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dChcIjJkXCIpLnNjYWxlKHJhdGlvLCByYXRpbyk7XHJcbiAgICBzaWduYXR1cmUuZnJvbURhdGFVUkwoaW1hZ2VCZWZvcmVSZXNpemUpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXBkZi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXBkZi9jdXN0b20tcGRmLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFDNUIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sWUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUVuRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDckUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBMkIxQyxNQUFNLE9BQU8sd0JBQXdCO0lBOEJuQyxZQUNTLGdCQUFrQyxFQUNqQyxVQUF3QjtRQUR6QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQWM7UUEvQmxCLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBY25DLHVCQUFrQixHQUFXLEVBQUUsQ0FBQztRQUdoQyxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRzVELDhCQUF5QixHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFD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WUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFNBQXVCLEVBQUUsZUFBMkI7UUFDakYsTUFBTSxpQkFBaUIsR0FBVyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEQsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLGVBQWUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN4RixlQUFlLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUYsZUFBZSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRSxTQUFTLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0MsQ0FBQzs7O1lBdkxGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQWxDTyxnQkFBZ0I7WUFDaEIsWUFBWTs7O3dCQXFDakIsV0FBVyxTQUFDLDRCQUE0QjtzQkFLeEMsU0FBUyxTQUFDLFNBQVM7cUNBR25CLEtBQUs7aUNBR0wsS0FBSzs2QkFHTCxNQUFNO3dDQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtqc1BERn0gZnJvbSBcImpzcGRmXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IFNpZ25hdHVyZVBhZCBmcm9tIFwic2lnbmF0dXJlX3BhZFwiO1xyXG5pbXBvcnQge3RvSnBlZ30gZnJvbSAnaHRtbC10by1pbWFnZSc7XHJcbmltcG9ydCB7Q29Eb2N1bWVudH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvY3VtZW50LmJvXCI7XHJcbmltcG9ydCB7RmlsZVV0aWxzfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvdXRpbHMvZmlsZS11dGlsc1wiO1xyXG5cclxuaW1wb3J0IHtGaWxlVHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vZmlsZS10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tY3VzdG9tLXBkZi1kaWFsb2dcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWRpYWxvZ1xyXG4gICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIlxyXG4gICAgICBpZD1cImN1c3RvbS1wZGYtZGlhbG9nXCJcclxuICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VQREZEaWFsb2cuZW1pdCgpXCI+XHJcbiAgICAgIDxkaXYgI3BkZkJvZHkgaWQ9XCJwZGZCb2R5XCI+XHJcbiAgICAgICAgPHNlY3Rpb24gW2lubmVySFRNTF09XCJmaWxlQm9keVwiPjwvc2VjdGlvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1mb290ZXItYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTYXZlQ2xpY2tlZCgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc1NraW5ueSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VQREZEaWFsb2cuZW1pdCgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2NvLWRpYWxvZz5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21QZGZEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWN1c3RvbS1wZGYtZGlhbG9nJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdwZGZCb2R5JylcclxuICBwdWJsaWMgcGRmQm9keTogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWRkaXRpb25hbEZpbGVDb250ZW50czogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhZGRpdGlvbmFsRmlsZU5hbWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2xvc2VQREZEaWFsb2c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhZGRpdGlvbmFsRmlsZUNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8Q29Eb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvRG9jdW1lbnQ+KCk7XHJcblxyXG4gIHB1YmxpYyBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50O1xyXG4gIHB1YmxpYyBjb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XHJcbiAgcHVibGljIHNpZ25hdHVyZVBhZHM6IHsgW2tleTogc3RyaW5nXTogU2lnbmF0dXJlUGFkIH0gPSB7fTtcclxuICBwdWJsaWMgc2lnbmF0dXJlQ2FudmFzZXM6IHsgW2tleTogc3RyaW5nXTogRWxlbWVudFJlZiB9ID0ge307XHJcbiAgcHVibGljIGZpbGVCb2R5OiBhbnk7XHJcbiAgcHVibGljIGZpbGVTdHlsZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWRkaXRpb25hbEZpbGVDb250ZW50cykge1xyXG4gICAgICBjb25zdCBoZWFkOiBIVE1MSGVhZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xyXG4gICAgICBjb25zdCBzdHlsZXM6IHN0cmluZ1tdID0gdGhpcy5leHRyYWN0U3R5bGVQYXJ0cyh0aGlzLmFkZGl0aW9uYWxGaWxlQ29udGVudHMpO1xyXG4gICAgICB0aGlzLmZpbGVTdHlsZSA9IHN0eWxlc1swXTtcclxuICAgICAgY29uc3Qgc3R5bGU6IEhUTUxTdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG4gICAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLmZpbGVTdHlsZSkpO1xyXG4gICAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcclxuICAgICAgY29uc3QgYm9keTogc3RyaW5nW10gPSB0aGlzLmV4dHJhY3RCb2R5Q29udGVudHModGhpcy5hZGRpdGlvbmFsRmlsZUNvbnRlbnRzKTtcclxuICAgICAgdGhpcy5maWxlQm9keSA9IHRoaXMuX3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChib2R5WzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIFsnc2lnbmF0dXJlQ2FudmFzJywgJ3NpZ25hdHVyZUNhbnZhczInXS5mb3JFYWNoKGlkID0+IHtcclxuICAgICAgY29uc3QgY2FudmFzRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuICAgICAgaWYgKGNhbnZhc0VsZW1lbnQpIHtcclxuICAgICAgICBjb25zdCBjYW52YXNSZWYgPSBuZXcgRWxlbWVudFJlZihjYW52YXNFbGVtZW50KTtcclxuICAgICAgICBjb25zdCBzaWduYXR1cmVQYWQgPSBuZXcgU2lnbmF0dXJlUGFkKDxIVE1MQ2FudmFzRWxlbWVudD5jYW52YXNSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5zaWduYXR1cmVDYW52YXNlc1tpZF0gPSBjYW52YXNSZWY7XHJcbiAgICAgICAgdGhpcy5zaWduYXR1cmVQYWRzW2lkXSA9IHNpZ25hdHVyZVBhZDtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZXNpemVTaWduYXR1cmVDYW52YXMoc2lnbmF0dXJlUGFkLCBjYW52YXNSZWYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBjbGVhckJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbGVhckJ1dHRvbicpO1xyXG4gICAgY2xlYXJCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5oYW5kbGVDbGVhcigpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHRyYWN0U3R5bGVQYXJ0cyhodG1sOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBzdHlsZVBhdHRlcm46IFJlZ0V4cCA9IC88c3R5bGVbXj5dKj4oW1xcc1xcU10qPyk8XFwvc3R5bGU+L2dpO1xyXG4gICAgY29uc3QgbWF0Y2hlczogc3RyaW5nW10gPSBbXTtcclxuICAgIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcclxuICAgIHdoaWxlICgobWF0Y2ggPSBzdHlsZVBhdHRlcm4uZXhlYyhodG1sKSkgIT09IG51bGwpIHtcclxuICAgICAgbWF0Y2hlcy5wdXNoKG1hdGNoWzFdLnRyaW0oKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbWF0Y2hlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVTdHlsZUFuZFNjcmlwdFRhZ3MoaHRtbDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHN0eWxlVGFnUGF0dGVybjogUmVnRXhwID0gLzxzdHlsZVtePl0qPltcXHNcXFNdKj88XFwvc3R5bGU+L2dpO1xyXG4gICAgY29uc3Qgc2NyaXB0VGFnUGF0dGVybjogUmVnRXhwID0gLzxzY3JpcHRbXj5dKj5bXFxzXFxTXSo/PFxcL3NjcmlwdD4vZ2k7XHJcbiAgICByZXR1cm4gaHRtbC5yZXBsYWNlKHN0eWxlVGFnUGF0dGVybiwgJycpLnJlcGxhY2Uoc2NyaXB0VGFnUGF0dGVybiwgJycpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4dHJhY3RCb2R5Q29udGVudHMoaHRtbDogc3RyaW5nKTogc3RyaW5nIFtdIHtcclxuICAgIGh0bWwgPSB0aGlzLnJlbW92ZVN0eWxlQW5kU2NyaXB0VGFncyhodG1sKTtcclxuICAgIGNvbnN0IHN0eWxlUGF0dGVybjogUmVnRXhwID0gLzxib2R5W14+XSo+KFtcXHNcXFNdKj8pPFxcL2JvZHk+L2dpO1xyXG4gICAgY29uc3QgbWF0Y2hlczogc3RyaW5nW10gPSBbXTtcclxuICAgIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcclxuICAgIHdoaWxlICgobWF0Y2ggPSBzdHlsZVBhdHRlcm4uZXhlYyhodG1sKSkgIT09IG51bGwpIHtcclxuICAgICAgbWF0Y2hlcy5wdXNoKG1hdGNoWzFdLnRyaW0oKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbWF0Y2hlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTYXZlQ2xpY2tlZCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IGNsZWFyQnV0dG9uOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbGVhckJ1dHRvbicpO1xyXG4gICAgY2xlYXJCdXR0b24uaGlkZGVuID0gdHJ1ZTtcclxuICAgIGNvbnN0IGRvYzoganNQREYgPSBuZXcganNQREYoKTtcclxuICAgIGNvbnN0IGh0bWxEb2N1bWVudDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI3BkZkJvZHlcIik7XHJcbiAgICBjb25zdCBkb2N1bWVudFNlY3Rpb246IEhUTUxDb2xsZWN0aW9uT2Y8SFRNTEVsZW1lbnQ+ID0gaHRtbERvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzZWN0aW9uJyk7XHJcbiAgICBjb25zdCBzZWN0aW9uc0NvdW50OiBudW1iZXIgPSBkb2N1bWVudFNlY3Rpb24ubGVuZ3RoO1xyXG5cclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBzZWN0aW9uc0NvdW50OyBpKyspIHtcclxuICAgICAgY29uc3QgaHRtbDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudFNlY3Rpb25baV07XHJcbiAgICAgIHRvSnBlZyhodG1sLCB7cXVhbGl0eTogMSwgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnfSkudGhlbigoZGF0YVVybDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW1nOkhUTUxJbWFnZUVsZW1lbnQgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgICBpbWcuc3JjID0gZGF0YVVybDtcclxuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaW1nV2lkdGg6IG51bWJlciA9IDIxODtcclxuICAgICAgICAgIGNvbnN0IGltZ0hlaWdodDogbnVtYmVyID0gKGltZy5oZWlnaHQgKiBpbWdXaWR0aCkgLyBpbWcud2lkdGg7XHJcbiAgICAgICAgICBkb2MuYWRkSW1hZ2UoZGF0YVVybCwgJ0pQRycsIC00LCAwLCBpbWdXaWR0aCwgaW1nSGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChpID09PSBzZWN0aW9uc0NvdW50IC0gMSkge1xyXG4gICAgICAgICAgICAvLyBkb2Muc2F2ZSh0aGlzLmFkZGl0aW9uYWxGaWxlTmFtZSArICcucGRmJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRlbXBGaWxlOiBzdHJpbmcgPSBkb2Mub3V0cHV0KCdkYXRhdXJpc3RyaW5nJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSB0aGlzLmRhdGFVUkl0b0Jsb2IodGVtcEZpbGUpO1xyXG4gICAgICAgICAgICBGaWxlVXRpbHMuUmVhZEZpbGVBc05ld0NvRG9jdW1lbnQoZmlsZSkudGhlbihmaWxlQXNDb0RvY3VtZW50ID0+IHtcclxuICAgICAgICAgICAgICAvLyBzZXQgc29tZSBleHRyYSBrbm93biBmaWVsZHMgZm9yIHRoZSBjb2RvY3VtZW50OlxyXG4gICAgICAgICAgICAgIGZpbGVBc0NvRG9jdW1lbnQuZmlsZVR5cGUgPSBGaWxlVXRpbHMuSXNJbWFnZUZpbGUoZmlsZSkgPyBGaWxlVHlwZS5JbWFnZSA6IEZpbGVUeXBlLkRvY3VtZW50O1xyXG4gICAgICAgICAgICAgIGZpbGVBc0NvRG9jdW1lbnQuY3JlYXRpb25EYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgICAgICAgICBmaWxlQXNDb0RvY3VtZW50Lm1vZGlmaWVkRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgICAgZmlsZUFzQ29Eb2N1bWVudC5yZXBvcnRzID0gMTtcclxuICAgICAgICAgICAgICB0aGlzLmFkZGl0aW9uYWxGaWxlQ2hhbmdlRXZlbnQuZW1pdChmaWxlQXNDb0RvY3VtZW50KTtcclxuICAgICAgICAgICAgICB0aGlzLmNsb3NlUERGRGlhbG9nLmVtaXQoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkb2MuYWRkUGFnZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGdlbmVyYXRpbmcgaW1hZ2U6JywgZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGNsZWFyQnV0dG9uLmhpZGRlbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRhdGFVUkl0b0Jsb2IoZGF0YVVSSSk6IEZpbGUge1xyXG4gICAgY29uc3QgYnl0ZVN0cmluZzogc3RyaW5nID0gYXRvYihkYXRhVVJJLnNwbGl0KCcsJylbMV0pO1xyXG4gICAgY29uc3QgYWI6IEFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVTdHJpbmcubGVuZ3RoKTtcclxuICAgIGNvbnN0IGlhOiBVaW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYWIpO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGJ5dGVTdHJpbmcubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWFbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IEZpbGUoW2FiXSwgdGhpcy5hZGRpdGlvbmFsRmlsZU5hbWUgKyAnLnBkZicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNsZWFyKCk6IHZvaWQge1xyXG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnNpZ25hdHVyZVBhZHMpLmZvckVhY2goc2lnbmF0dXJlUGFkID0+IHtcclxuICAgICAgc2lnbmF0dXJlUGFkPy5jbGVhcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZXNpemVTaWduYXR1cmVDYW52YXMoc2lnbmF0dXJlOiBTaWduYXR1cmVQYWQsIHNpZ25hdHVyZUNhbnZhczogRWxlbWVudFJlZik6IHZvaWQge1xyXG4gICAgY29uc3QgaW1hZ2VCZWZvcmVSZXNpemU6IHN0cmluZyA9IHNpZ25hdHVyZS50b0RhdGFVUkwoKTtcclxuICAgIGNvbnN0IHJhdGlvOiBudW1iZXIgPSBNYXRoLm1heCh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxLCAxKTtcclxuICAgIHNpZ25hdHVyZUNhbnZhcy5uYXRpdmVFbGVtZW50LndpZHRoID0gc2lnbmF0dXJlQ2FudmFzLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKiByYXRpbztcclxuICAgIHNpZ25hdHVyZUNhbnZhcy5uYXRpdmVFbGVtZW50LmhlaWdodCA9IHNpZ25hdHVyZUNhbnZhcy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAqIHJhdGlvO1xyXG4gICAgc2lnbmF0dXJlQ2FudmFzLm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dChcIjJkXCIpLnNjYWxlKHJhdGlvLCByYXRpbyk7XHJcbiAgICBzaWduYXR1cmUuZnJvbURhdGFVUkwoaW1hZ2VCZWZvcmVSZXNpemUpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -190,4 +190,4 @@ __decorate([
190
190
  __decorate([
191
191
  InputBoolean()
192
192
  ], FileUploadComponent.prototype, "isEditable", void 0);
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxhQUFhLEVBQUUsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFMUUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVsRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFpQjNELDBFQUEwRTtBQUMxRSxNQUFNLE9BQU8sbUJBQW1CO0lBaUc1QixZQUNZLGNBQTZCLEVBQzdCLGdCQUFtQyxFQUNwQyxXQUE2QixFQUM1QixjQUE2QjtRQUg3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ3BDLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQXBHekIsVUFBSyxHQUFnQixJQUFJLENBQUM7UUFzQjFDLG9CQUFvQjtRQUViLFNBQUksR0FBWSxLQUFLLENBQUM7UUFHdEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixhQUFRLEdBQVksS0FBSyxDQUFD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LElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxDQUFDO29CQUMzSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2lCQUMvQzthQUNKO2lCQUFNO2dCQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDbkY7U0FDSjtJQUNMLENBQUM7OztZQXBNSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsUUFBUSxFQUFFOzs7Ozs7Ozs7O0tBVVQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDeEM7OztZQXZCc0IsYUFBYTtZQUk1QixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBRWhCLGFBQWE7OzttQkFxQmhCLFNBQVMsU0FBQyxhQUFhO21CQUl2QixLQUFLO21CQWFMLEtBQUs7bUJBSUwsS0FBSzt1QkFHTCxLQUFLO3VCQUdMLEtBQUs7MkJBSUwsS0FBSztzQ0FNTCxLQUFLO3lCQUlMLEtBQUs7b0JBSUwsS0FBSzsyQkFjTCxLQUFLO3dCQUlMLEtBQUs7K0JBR0wsS0FBSzswQkFHTCxNQUFNO3dCQUdOLE1BQU07eUJBR04sTUFBTTt3QkFHTixXQUFXLFNBQUMsc0JBQXNCO3FCQUtsQyxXQUFXLFNBQUMsWUFBWTs7QUFsRHpCO0lBREMsWUFBWSxFQUFFO3lEQUNzQjtBQU1yQztJQURDLFlBQVksRUFBRTtvRUFDZ0M7QUFJL0M7SUFEQyxZQUFZLEVBQUU7dURBQ29CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50LCBQcm9tcHRTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudFwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbn0gZnJvbSBcIi4uLy4uL2RlY29yYXRvci9pbnB1dC1ib29sZWFuLmRlY29yYXRvclwiO1xyXG5pbXBvcnQge0ZpbGVUeXBlSW1hZ2VQaXBlfSBmcm9tIFwiLi4vLi4vcGlwZS9maWxlLXR5cGUtaW1hZ2UucGlwZVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtTaGFyZWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zaGFyZWQuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJjby1maWxlLXVwbG9hZFwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8Y28tdGlsZS1yZW5kZXIgW2hpZGVJbWFnZURpc3BsYXlXaGVuTm9JbWFnZV09XCJ0cnVlXCIgW2ltYWdlRGF0YVVyaV09XCJwcmV2aWV3SW1hZ2VcIiBbZGVzY3JpcHRpb25dPVwibGFiZWxcIiAoaW1hZ2VDbGljayk9XCJvbkltYWdlQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2luZm9UZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxjby1idXR0b24gKm5nSWY9XCJpc0VkaXRhYmxlICYmICFyZWFkb25seVwiIGNsYXNzPVwiZWRpdC1maWxlXCIgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuQWNjb3VudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUGVuY2lsQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cInNob3dUcmFzaENhbiAmJiAhcmVhZG9ubHlcIiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmFzaGJpbilcIiBjbGFzcz1cInRyYXNoXCIgKGNsaWNrKT1cIm9uRGVsZXRlQ2xpY2soKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgPGNvLWljb24gdGlsZS1yZW5kZXItaW1hZ2UtY29udGVudCAqbmdJZj1cImljb25cIiBjbGFzcz1cImRhcmsgYWRkLWJ1dHRvblwiIFtpY29uXT1cImljb25cIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgIDxjby1pY29uIHRpbGUtcmVuZGVyLWltYWdlLWNvbnRlbnQgKm5nSWY9XCJkcm9wem9uZVwiIGNsYXNzPVwiZGFyayBhZGQtYnV0dG9uXCIgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuRm9sZGVyc1NoYXJwUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9jby10aWxlLXJlbmRlcj5cclxuICAgIGAsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG4vLyBUaGUgR1VJIHBhcnQgb2YgdGhlIGZpbGVzLXVwbG9hZCBjb21wb25lbnQuIE5vdCBhIHN0YW5kYWxvbmUgY29tcG9uZW50LlxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgICBAVmlld0NoaWxkKEZvcm1Db21wb25lbnQpXHJcbiAgICBwdWJsaWMgZm9ybTogRm9ybUNvbXBvbmVudDtcclxuXHJcbiAgICAvLyBJbnB1dCBmaWxlIHRvIHVwbG9hZC5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGZpbGUoZG9jdW1lbnQ6IENvRG9jdW1lbnQpIHtcclxuICAgICAgICB0aGlzLl9maWxlID0gZG9jdW1lbnQ7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlUHJldmlld0ltYWdlKCk7XHJcbiAgICAgICAgLy8gd2Ugc2hvdWxkIHByb2R1Y2UgYSBwcmV2aWV3IGltYWdlIGZyb20gZ2l2ZW4gZG9jdW1lbnQsIGJ1dCBpdHMgY29udGVudHMgbWlnaHQgbm90IHlldCBoYXZlIGJlZW4gbG9hZGVkOlxyXG4gICAgICAgIHRoaXMuX2xpc3RlbkZvckRvY3VtZW50Qm9keUNoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGZpbGUoKTogQ29Eb2N1bWVudCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2hvdyBpY29uIGFzIHBsYWNlaG9sZGVyXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGljb246IEljb247XHJcblxyXG4gICAgLy8gRWxlbWVudCBjbGlja2FibGVcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbGluazogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZHJvcHpvbmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLy8gSXMgdGlsZSBhbiAnYWRkaW5nJyB0aWxlXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgaXNBZGRpbmdUaWxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLy8gU2V0IHRoaXMgcGFyYW1ldGVyIHRvIGZhbHNlIGlmIGNsaWNraW5nIG9rIG9uIHRoZSBkb2N1bWVudCBlZGl0IHBvcHVwIGRvZXMgbm90IHNhdmUgdGhlIGRvY3VtZW50XHJcbiAgICAvLyBzbyB0aGF0IHJlZnJlc2hpbmcgb2YgY29udGVudCBvbiBmaWxlIG9wZW4gd29ya3MgY29ycmVjdGx5XHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgZmlsZVNhdmVzT25Qb3B1cE9rQ2xpY2s6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBpc0VkaXRhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBsYWJlbCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fbGFiZWwgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5fZmlsZSAmJiB0aGlzLl9maWxlLmRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWxlLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9sYWJlbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2hvdyBhIHRyYXNoY2FuIGljb25cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1RyYXNoQ2FuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLy8gU2hvdyBhbiBpbWFnZSBhcyBwbGFjZWhvbGRlclxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93SW1hZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGN1c3RvbUltYWdlQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBkZWxldGVDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBlZGl0Q2xpY2s6IEV2ZW50RW1pdHRlcjxDb0RvY3VtZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29Eb2N1bWVudD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBpbWFnZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q29Eb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvRG9jdW1lbnQ+KCk7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1maWxlLXVwbG9hZCcpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5saW5rXCIpXHJcbiAgICBwdWJsaWMgZ2V0IGlzTGluaygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5saW5rO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwcmV2aWV3SW1hZ2U6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgcHJpdmF0ZSBfZmlsZTogQ29Eb2N1bWVudDtcclxuICAgIHByaXZhdGUgX2RvY0JvZHlDaGFuZ2VTdWI6IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgX2xhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX3Byb21wdFNlcnZpY2U6IFByb21wdFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZmlsZVR5cGVJbWdQaXBlOiBGaWxlVHlwZUltYWdlUGlwZSxcclxuICAgICAgICBwdWJsaWMgaWNvblNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZVxyXG4gICAgICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9kb2NCb2R5Q2hhbmdlU3ViKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RvY0JvZHlDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uRGVsZXRlQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVDbGljay5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jICBvbkltYWdlQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNBZGRpbmdUaWxlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tSW1hZ2VDbGljaykge1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlQ2xpY2submV4dCh0aGlzLl9maWxlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL2ZpcnN0IGRvd25sb2FkIGRvY3VtZW50IGJvZHkgaWYgaXQgaXMgc3RvcmVkIGluIGEgcHJpdmF0ZSBjZG4gZGlyZWN0b3J5XHJcbiAgICAgICAgaWYgKCF0aGlzLl9maWxlLmRvY3VtZW50Qm9keSkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9zaGFyZWRTZXJ2aWNlLmdldERvY3VtZW50Q29udGVudCh0aGlzLl9maWxlLmRvY3VtZW50SWQpLnRoZW4oZG9jdW1lbnRCb2R5ID0+IHRoaXMuX2ZpbGUuZG9jdW1lbnRCb2R5ID0gZG9jdW1lbnRCb2R5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuX2ZpbGUuaXNJbWFnZURvY3VtZW50KCkpIHsgLy9wcmV2aWV3IGltYWdlXHJcbiAgICAgICAgICAgIHRoaXMuX3Byb21wdFNlcnZpY2Uuc2hvd0ltYWdlKHRoaXMuZmlsZS5kb2N1bWVudEJvZHlBc0RhdGFVcmksIFwiUHJldmlld1wiKTtcclxuICAgICAgICB9IGVsc2UgeyAvL2Rvd25sb2FkIGRvY3VtZW50XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAvL0ZpbGVVdGlscy5Eb3dubG9hZEZyb21EYXRhVXJpKHRoaXMuX2ZpbGUuYm9keUFzRGF0YVVyaSwgdGhpcy5fZmlsZS5maWxlTmFtZSk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIG9uUGVuY2lsQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgLy8gcmVmcmVzaCBmaWxlIGNvbnRlbnQgaWYgZmlsZXMgYXJlIHNhdmVkIGluZGl2aWR1YWxseVxyXG4gICAgICAgIGlmICh0aGlzLl9maWxlLmhhc0lkKCkgJiYgdGhpcy5maWxlU2F2ZXNPblBvcHVwT2tDbGljaykge1xyXG4gICAgICAgICAgICBsZXQgaWRGb3JMaW5rOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9maWxlLmlkRm9yTGluaykge1xyXG4gICAgICAgICAgICAgICAgaWRGb3JMaW5rID0gdGhpcy5fZmlsZS5pZEZvckxpbms7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gR2V0IG1vc3QgcmVjZW50IHZlcnNpb24gb2YgdGhpcyBmaWxlIGlmIGl0IGhhcyBhbiBpZCBhbmQgdGhlcmVmb3JlIGhhcyBiZWVuIHNhdmVkIGluIHRoZSBkYlxyXG4gICAgICAgICAgICAvL1RPRE8gZml4IGZldGNoXHJcbiAgICAgICAgICAgLy8gdGhpcy5fZmlsZSA9IGF3YWl0IHRoaXMuX2dlbmVyYWxEYWwuZ2V0RG9jdW1lbnRGcm9tVGFibGUodGhpcy5fZmlsZS5kb2N1bWVudElkKTtcclxuICAgICAgICAgICAgLy90aGlzLl9maWxlLmlkRm9yTGluayA9IGlkRm9yTGluazsgLy8gUmVzdG9yZSB0aGUgaWRGb3JMaW5rXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmVkaXRDbGljay5lbWl0KHRoaXMuX2ZpbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZXMgdGhpcy5wcmV2aWV3SW1hZ2Ugd2hlbiBkb2MgYm9keSBjaGFuZ2VzXHJcbiAgICBwcml2YXRlIF9saXN0ZW5Gb3JEb2N1bWVudEJvZHlDaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9maWxlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9kb2NCb2R5Q2hhbmdlU3ViKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kb2NCb2R5Q2hhbmdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgIHRoaXMuX2RvY0JvZHlDaGFuZ2VTdWIgPSB0aGlzLl9maWxlLmRvY3VtZW50Qm9keUNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlUHJldmlld0ltYWdlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF91cGRhdGVQcmV2aWV3SW1hZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2ZpbGUpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2ZpbGUuaXNJbWFnZURvY3VtZW50KCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJldmlld0ltYWdlID0gdGhpcy5fZmlsZS5kb2N1bWVudEJvZHlBc0RhdGFVcmk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcmV2aWV3SW1hZ2UgPT09IFwiXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaGFyZWRTZXJ2aWNlLmdldERvY3VtZW50Q29udGVudCh0aGlzLl9maWxlLmRvY3VtZW50SWQpLnRoZW4oZG9jdW1lbnRCb2R5ID0+IHRoaXMuX2ZpbGUuZG9jdW1lbnRCb2R5ID0gZG9jdW1lbnRCb2R5KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXZpZXdJbWFnZSA9IHRoaXMuX2ZpbGUuZG9jdW1lbnRCb2R5O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3SW1hZ2UgPSB0aGlzLl9maWxlVHlwZUltZ1BpcGUudHJhbnNmb3JtKHRoaXMuZmlsZS5maWxlVHlwZUludGVybmFsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIl19
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxhQUFhLEVBQUUsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFMUUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVsRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFpQjNELDBFQUEwRTtBQUMxRSxNQUFNLE9BQU8sbUJBQW1CO0lBaUc1QixZQUNZLGNBQTZCLEVBQzdCLGdCQUFtQyxFQUNwQyxXQUE2QixFQUM1QixjQUE2QjtRQUg3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ3BDLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQXBHekIsVUFBSyxHQUFnQixJQUFJLENBQUM7UUFzQjFDLG9CQUFvQjtRQUViLFNBQUksR0FBWSxLQUFLLENBQUM7UUFHdEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixhQUFRLEdBQVksS0FBSyxDQUFD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LElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxDQUFDO29CQUMzSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2lCQUMvQzthQUNKO2lCQUFNO2dCQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDbkY7U0FDSjtJQUNMLENBQUM7OztZQXBNSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsUUFBUSxFQUFFOzs7Ozs7Ozs7O0tBVVQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDeEM7OztZQXZCc0IsYUFBYTtZQUk1QixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBRWhCLGFBQWE7OzttQkFxQmhCLFNBQVMsU0FBQyxhQUFhO21CQUl2QixLQUFLO21CQWFMLEtBQUs7bUJBSUwsS0FBSzt1QkFHTCxLQUFLO3VCQUdMLEtBQUs7MkJBSUwsS0FBSztzQ0FNTCxLQUFLO3lCQUlMLEtBQUs7b0JBSUwsS0FBSzsyQkFjTCxLQUFLO3dCQUlMLEtBQUs7K0JBR0wsS0FBSzswQkFHTCxNQUFNO3dCQUdOLE1BQU07eUJBR04sTUFBTTt3QkFHTixXQUFXLFNBQUMsc0JBQXNCO3FCQUtsQyxXQUFXLFNBQUMsWUFBWTs7QUFsRHpCO0lBREMsWUFBWSxFQUFFO3lEQUNzQjtBQU1yQztJQURDLFlBQVksRUFBRTtvRUFDZ0M7QUFJL0M7SUFEQyxZQUFZLEVBQUU7dURBQ29CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50LCBQcm9tcHRTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudC5ib1wiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbn0gZnJvbSBcIi4uLy4uL2RlY29yYXRvci9pbnB1dC1ib29sZWFuLmRlY29yYXRvclwiO1xyXG5pbXBvcnQge0ZpbGVUeXBlSW1hZ2VQaXBlfSBmcm9tIFwiLi4vLi4vcGlwZS9maWxlLXR5cGUtaW1hZ2UucGlwZVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtTaGFyZWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zaGFyZWQuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJjby1maWxlLXVwbG9hZFwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8Y28tdGlsZS1yZW5kZXIgW2hpZGVJbWFnZURpc3BsYXlXaGVuTm9JbWFnZV09XCJ0cnVlXCIgW2ltYWdlRGF0YVVyaV09XCJwcmV2aWV3SW1hZ2VcIiBbZGVzY3JpcHRpb25dPVwibGFiZWxcIiAoaW1hZ2VDbGljayk9XCJvbkltYWdlQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2luZm9UZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxjby1idXR0b24gKm5nSWY9XCJpc0VkaXRhYmxlICYmICFyZWFkb25seVwiIGNsYXNzPVwiZWRpdC1maWxlXCIgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuQWNjb3VudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUGVuY2lsQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cInNob3dUcmFzaENhbiAmJiAhcmVhZG9ubHlcIiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmFzaGJpbilcIiBjbGFzcz1cInRyYXNoXCIgKGNsaWNrKT1cIm9uRGVsZXRlQ2xpY2soKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgPGNvLWljb24gdGlsZS1yZW5kZXItaW1hZ2UtY29udGVudCAqbmdJZj1cImljb25cIiBjbGFzcz1cImRhcmsgYWRkLWJ1dHRvblwiIFtpY29uXT1cImljb25cIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgIDxjby1pY29uIHRpbGUtcmVuZGVyLWltYWdlLWNvbnRlbnQgKm5nSWY9XCJkcm9wem9uZVwiIGNsYXNzPVwiZGFyayBhZGQtYnV0dG9uXCIgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuRm9sZGVyc1NoYXJwUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9jby10aWxlLXJlbmRlcj5cclxuICAgIGAsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG4vLyBUaGUgR1VJIHBhcnQgb2YgdGhlIGZpbGVzLXVwbG9hZCBjb21wb25lbnQuIE5vdCBhIHN0YW5kYWxvbmUgY29tcG9uZW50LlxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgICBAVmlld0NoaWxkKEZvcm1Db21wb25lbnQpXHJcbiAgICBwdWJsaWMgZm9ybTogRm9ybUNvbXBvbmVudDtcclxuXHJcbiAgICAvLyBJbnB1dCBmaWxlIHRvIHVwbG9hZC5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGZpbGUoZG9jdW1lbnQ6IENvRG9jdW1lbnQpIHtcclxuICAgICAgICB0aGlzLl9maWxlID0gZG9jdW1lbnQ7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlUHJldmlld0ltYWdlKCk7XHJcbiAgICAgICAgLy8gd2Ugc2hvdWxkIHByb2R1Y2UgYSBwcmV2aWV3IGltYWdlIGZyb20gZ2l2ZW4gZG9jdW1lbnQsIGJ1dCBpdHMgY29udGVudHMgbWlnaHQgbm90IHlldCBoYXZlIGJlZW4gbG9hZGVkOlxyXG4gICAgICAgIHRoaXMuX2xpc3RlbkZvckRvY3VtZW50Qm9keUNoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGZpbGUoKTogQ29Eb2N1bWVudCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2hvdyBpY29uIGFzIHBsYWNlaG9sZGVyXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGljb246IEljb247XHJcblxyXG4gICAgLy8gRWxlbWVudCBjbGlja2FibGVcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbGluazogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZHJvcHpvbmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLy8gSXMgdGlsZSBhbiAnYWRkaW5nJyB0aWxlXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgaXNBZGRpbmdUaWxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLy8gU2V0IHRoaXMgcGFyYW1ldGVyIHRvIGZhbHNlIGlmIGNsaWNraW5nIG9rIG9uIHRoZSBkb2N1bWVudCBlZGl0IHBvcHVwIGRvZXMgbm90IHNhdmUgdGhlIGRvY3VtZW50XHJcbiAgICAvLyBzbyB0aGF0IHJlZnJlc2hpbmcgb2YgY29udGVudCBvbiBmaWxlIG9wZW4gd29ya3MgY29ycmVjdGx5XHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgZmlsZVNhdmVzT25Qb3B1cE9rQ2xpY2s6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBpc0VkaXRhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBsYWJlbCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fbGFiZWwgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5fZmlsZSAmJiB0aGlzLl9maWxlLmRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWxlLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9sYWJlbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2hvdyBhIHRyYXNoY2FuIGljb25cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1RyYXNoQ2FuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLy8gU2hvdyBhbiBpbWFnZSBhcyBwbGFjZWhvbGRlclxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93SW1hZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGN1c3RvbUltYWdlQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBkZWxldGVDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBlZGl0Q2xpY2s6IEV2ZW50RW1pdHRlcjxDb0RvY3VtZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29Eb2N1bWVudD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBpbWFnZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q29Eb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvRG9jdW1lbnQ+KCk7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1maWxlLXVwbG9hZCcpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5saW5rXCIpXHJcbiAgICBwdWJsaWMgZ2V0IGlzTGluaygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5saW5rO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwcmV2aWV3SW1hZ2U6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgcHJpdmF0ZSBfZmlsZTogQ29Eb2N1bWVudDtcclxuICAgIHByaXZhdGUgX2RvY0JvZHlDaGFuZ2VTdWI6IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgX2xhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX3Byb21wdFNlcnZpY2U6IFByb21wdFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZmlsZVR5cGVJbWdQaXBlOiBGaWxlVHlwZUltYWdlUGlwZSxcclxuICAgICAgICBwdWJsaWMgaWNvblNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZVxyXG4gICAgICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9kb2NCb2R5Q2hhbmdlU3ViKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RvY0JvZHlDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uRGVsZXRlQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVDbGljay5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jICBvbkltYWdlQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNBZGRpbmdUaWxlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tSW1hZ2VDbGljaykge1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlQ2xpY2submV4dCh0aGlzLl9maWxlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL2ZpcnN0IGRvd25sb2FkIGRvY3VtZW50IGJvZHkgaWYgaXQgaXMgc3RvcmVkIGluIGEgcHJpdmF0ZSBjZG4gZGlyZWN0b3J5XHJcbiAgICAgICAgaWYgKCF0aGlzLl9maWxlLmRvY3VtZW50Qm9keSkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9zaGFyZWRTZXJ2aWNlLmdldERvY3VtZW50Q29udGVudCh0aGlzLl9maWxlLmRvY3VtZW50SWQpLnRoZW4oZG9jdW1lbnRCb2R5ID0+IHRoaXMuX2ZpbGUuZG9jdW1lbnRCb2R5ID0gZG9jdW1lbnRCb2R5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuX2ZpbGUuaXNJbWFnZURvY3VtZW50KCkpIHsgLy9wcmV2aWV3IGltYWdlXHJcbiAgICAgICAgICAgIHRoaXMuX3Byb21wdFNlcnZpY2Uuc2hvd0ltYWdlKHRoaXMuZmlsZS5kb2N1bWVudEJvZHlBc0RhdGFVcmksIFwiUHJldmlld1wiKTtcclxuICAgICAgICB9IGVsc2UgeyAvL2Rvd25sb2FkIGRvY3VtZW50XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAvL0ZpbGVVdGlscy5Eb3dubG9hZEZyb21EYXRhVXJpKHRoaXMuX2ZpbGUuYm9keUFzRGF0YVVyaSwgdGhpcy5fZmlsZS5maWxlTmFtZSk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIG9uUGVuY2lsQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgLy8gcmVmcmVzaCBmaWxlIGNvbnRlbnQgaWYgZmlsZXMgYXJlIHNhdmVkIGluZGl2aWR1YWxseVxyXG4gICAgICAgIGlmICh0aGlzLl9maWxlLmhhc0lkKCkgJiYgdGhpcy5maWxlU2F2ZXNPblBvcHVwT2tDbGljaykge1xyXG4gICAgICAgICAgICBsZXQgaWRGb3JMaW5rOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9maWxlLmlkRm9yTGluaykge1xyXG4gICAgICAgICAgICAgICAgaWRGb3JMaW5rID0gdGhpcy5fZmlsZS5pZEZvckxpbms7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gR2V0IG1vc3QgcmVjZW50IHZlcnNpb24gb2YgdGhpcyBmaWxlIGlmIGl0IGhhcyBhbiBpZCBhbmQgdGhlcmVmb3JlIGhhcyBiZWVuIHNhdmVkIGluIHRoZSBkYlxyXG4gICAgICAgICAgICAvL1RPRE8gZml4IGZldGNoXHJcbiAgICAgICAgICAgLy8gdGhpcy5fZmlsZSA9IGF3YWl0IHRoaXMuX2dlbmVyYWxEYWwuZ2V0RG9jdW1lbnRGcm9tVGFibGUodGhpcy5fZmlsZS5kb2N1bWVudElkKTtcclxuICAgICAgICAgICAgLy90aGlzLl9maWxlLmlkRm9yTGluayA9IGlkRm9yTGluazsgLy8gUmVzdG9yZSB0aGUgaWRGb3JMaW5rXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmVkaXRDbGljay5lbWl0KHRoaXMuX2ZpbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZXMgdGhpcy5wcmV2aWV3SW1hZ2Ugd2hlbiBkb2MgYm9keSBjaGFuZ2VzXHJcbiAgICBwcml2YXRlIF9saXN0ZW5Gb3JEb2N1bWVudEJvZHlDaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9maWxlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9kb2NCb2R5Q2hhbmdlU3ViKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kb2NCb2R5Q2hhbmdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgIHRoaXMuX2RvY0JvZHlDaGFuZ2VTdWIgPSB0aGlzLl9maWxlLmRvY3VtZW50Qm9keUNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlUHJldmlld0ltYWdlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF91cGRhdGVQcmV2aWV3SW1hZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2ZpbGUpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2ZpbGUuaXNJbWFnZURvY3VtZW50KCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJldmlld0ltYWdlID0gdGhpcy5fZmlsZS5kb2N1bWVudEJvZHlBc0RhdGFVcmk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcmV2aWV3SW1hZ2UgPT09IFwiXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaGFyZWRTZXJ2aWNlLmdldERvY3VtZW50Q29udGVudCh0aGlzLl9maWxlLmRvY3VtZW50SWQpLnRoZW4oZG9jdW1lbnRCb2R5ID0+IHRoaXMuX2ZpbGUuZG9jdW1lbnRCb2R5ID0gZG9jdW1lbnRCb2R5KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXZpZXdJbWFnZSA9IHRoaXMuX2ZpbGUuZG9jdW1lbnRCb2R5O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3SW1hZ2UgPSB0aGlzLl9maWxlVHlwZUltZ1BpcGUudHJhbnNmb3JtKHRoaXMuZmlsZS5maWxlVHlwZUludGVybmFsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIl19
@@ -6,7 +6,7 @@ import { ObjectRightType } from "@colijnit/sharedapi/build/enum/object-right-typ
6
6
  import { PromptService } from "@colijnit/corecomponents_v12";
7
7
  import { BusinessObjectFactory } from "@colijnit/ioneconnector/build/service/business-object-factory";
8
8
  import { InputBoolean } from "../../decorator/input-boolean.decorator";
9
- import { CoDocument } from "@colijnit/mainapi/build/model/co-document";
9
+ import { CoDocument } from "@colijnit/mainapi/build/model/co-document.bo";
10
10
  import { CoDocumentRight } from "@colijnit/mainapi/build/model/co-document-right";
11
11
  import { FileType } from "../../enum/file-type";
12
12
  import { DocumentEmailReport } from "../../enum/document-email-report.enum";
@@ -401,4 +401,4 @@ __decorate([
401
401
  __decorate([
402
402
  InputBoolean()
403
403
  ], FileUploadPopupComponent.prototype, "addDocumentByUrl", void 0);
404
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtcG9wdXAvZmlsZS11cGxvYWQtcG9wdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBRXRHLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUN0RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDcEcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0saURBQWlELENBQUM7QUFJaEYsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRTFFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRXhFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRSxPQUFP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RUFBRTswRUFFaUM7QUErQmhEO0lBREMsWUFBWSxFQUFFO21FQUNtQjtBQW1CbEM7SUFEQyxZQUFZLEVBQUU7a0VBQ2tCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybUNvbXBvbmVudH0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7RG9jdW1lbnRQdWJsaWNhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL2VudW0vcmVmY29kZS9kb2N1bWVudC1wdWJsaWNhdGlvbi5lbnVtXCI7XHJcbmltcG9ydCB7U3RvcmVHcm91cH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3N0b3JlLWdyb3VwLmJvXCI7XHJcbmltcG9ydCB7T2JqZWN0UmlnaHRUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9lbnVtL29iamVjdC1yaWdodC10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtQcm9tcHRTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0RmFjdG9yeX0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3NlcnZpY2UvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnlcIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtDb0RvY3VtZW50fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9jdW1lbnRcIjtcclxuaW1wb3J0IHtDb0RvY3VtZW50UmlnaHR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudC1yaWdodFwiO1xyXG5pbXBvcnQge1RhZ0NhdGVnb3J5fSBmcm9tIFwiLi4vLi4vZW51bS90YWctY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge0ZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0c30gZnJvbSBcIi4uLy4uL2VudW0vZmlsZXMtdXBsb2FkLWNvbmZpZy1vYmplY3RzXCI7XHJcbmltcG9ydCB7VGFibGVOYW1lfSBmcm9tIFwiLi4vLi4vZW51bS90YWJsZS1uYW1lLmVudW1cIjtcclxuaW1wb3J0IHtGaWxlVHlwZX0gZnJvbSBcIi4uLy4uL2VudW0vZmlsZS10eXBlXCI7XHJcbmltcG9ydCB7RG9jdW1lbnRFbWFpbFJlcG9ydH0gZnJvbSBcIi4uLy4uL2VudW0vZG9jdW1lbnQtZW1haWwtcmVwb3J0LmVudW1cIjtcclxuaW1wb3J0IHtUYWdzQ29tcG9uZW50Q29uZmlnTmFtZXN9IGZyb20gXCIuLi8uLi9lbnVtL3RhZ3MtY29tcG9uZW50LWNvbmZpZy1uYW1lc1wiO1xyXG5pbXBvcnQge0RvbWFpbk11bHRpcGxlTmFtZX0gZnJvbSBcIi4uLy4uL2VudW0vZG9tYWluLW11bHRpcGxlLW5hbWUuZW51bVwiO1xyXG5pbXBvcnQge1RhZ1RyZWVJdGVtfSBmcm9tIFwiLi4vLi4vbW9kZWwvdGFnLXRyZWUtaXRlbS5ib1wiO1xyXG5pbXBvcnQge0ZpbGVUeXBlSW1hZ2VQaXBlfSBmcm9tIFwiLi4vLi4vcGlwZS9maWxlLXR5cGUtaW1hZ2UucGlwZVwiO1xyXG5pbXBvcnQge0ZpbGVVdGlsc30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL3V0aWxzL2ZpbGUtdXRpbHNcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLWZpbGUtdXBsb2FkLXBvcHVwXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxjby1kaWFsb2cgKm5nSWY9XCIhdXNlV2l0aG91dFNldHRpbmdQcm9wcyAmJiBkb2N1bWVudFVuZGVyRWRpdFwiIGNzc0lkPVwicG9wdXBfZmlsZXNfdXBsb2FkX2NvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCIgY29udGVudFNpemUgbm9DbGlja091dHNpZGVcclxuICAgICAgICAgICAgICAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAoY2xvc2UpPVwib25Qb3B1cENsb3NlKClcIiAoY2xvc2VDbGljayk9XCJvblBvcHVwQ2FuY2VsQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXVwbG9hZC1mb3JtLXdyYXBwZXJcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tZm9ybSBjbGFzcz1cIm5hcnJvdy1zY3JvbGxiYXJcIiAodmFsaWRTdWJtaXQpPVwib25WYWxpZFN1Ym1pdCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1sYXlvdXQtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvY3VtZW50LXRodW1iIGNvbHVtbi1sZWZ0XCIgKm5nSWY9XCIhYWRkRG9jdW1lbnRCeVVybFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwib25QcmV2aWV3Q2xpY2soKVwiPjxpbWcgW3NyY109XCJ0aHVtYm5haWxcIi8+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImRvY3VtZW50VW5kZXJFZGl0LnRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KCkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5JbWFnZURvY3VtZW50VGl0bGUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5UZXh0RG9jdW1lbnRUaXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInVElUTEUnIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub1ZhbGlkYXRpb24gZm9yY2VSZWFkb25seT48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbcGxhY2Vob2xkZXJdPVwiJ0RFU0NSSVBUSU9OJyB8IHNoYXJlZExvY2FsaXplXCIgWyhtb2RlbCldPVwiZG9jdW1lbnRVbmRlckVkaXQuZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KCkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5JbWFnZURvY3VtZW50RGVzY3JpcHRpb24gOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5UZXh0RG9jdW1lbnREZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZG9jVW5kZXJFZGl0SXNSZWFkT25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHNpemVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiZG9jdW1lbnRVbmRlckVkaXQuZmlsZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJkb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5JbWFnZURvY3VtZW50RmlsZVNpemUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cz8uVGV4dERvY3VtZW50RmlsZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NJWkUnIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZVJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vVmFsaWRhdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbcGxhY2Vob2xkZXJdPVwiJ0RJTUVOU0lPTlMnIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJkb2N1bWVudFVuZGVyRWRpdC5pbWFnZURpbWVuc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cz8uSW1hZ2VEb2N1bWVudERpbWVuc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlUmVhZG9ubHkgbm9WYWxpZGF0aW9uPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPHNjLXRhZ3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFnQ2F0ZWdvcnldPVwidGFnQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCItLT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tID48L3NjLXRhZ3M+LS0+PCEtLSBbbXlDZmdOYW1lc109XCJ0YWdzQ29uZmlnTmFtZVwiIHwgWyhqb2luZWRUYWdzKV09XCJ0aGlzLmRvY3VtZW50VW5kZXJFZGl0LnRhZ3NcIi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlYWQtd3JpdGUtYWNjZXNzICpuZ0lmPVwic2hvd1JlYWRXcml0ZUFjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkV3JpdGVDZmdOYW1lc109XCJmaWxlc1VwbG9hZENvbmZpZ09iamVjdHM/LnJlYWRXcml0ZUFjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYXlvdXRIb3Jpem9udGFsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWVkaWNhbFVzZXJHcm91cHNdPVwibWVkaWNhbFVzZXJHcm91cHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHVzZXJHcm91cHNGb3JXcml0ZSldPVwidXNlckdyb3Vwc0ZvcldyaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyh1c2VyR3JvdXBzRm9yUmVhZCldPVwidXNlckdyb3Vwc0ZvclJlYWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZG9jVW5kZXJFZGl0SXNSZWFkT25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcmVhZC13cml0ZS1hY2Nlc3M+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwhLS08ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1sYXlvdXQtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFkZERvY3VtZW50QnlVcmxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcmVxdWlyZWQgW3BsYWNlaG9sZGVyXT1cIidVUkwnIHwgc2hhcmVkTG9jYWxpemVcIiBbKG1vZGVsKV09XCJkb2N1bWVudFVuZGVyRWRpdC5maWxlUGF0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1sYXlvdXQtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLTxkaXYgKm5nSWY9XCJoYXNQdWJsaWNBY2Nlc3NWaXNpYmxlXCIgY2xhc3M9XCJjb2x1bW4tcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0LXN3aXRjaGVyLXllcy1ubyBsYWJlbD1cIlBVQkxJQ19BQ0NFU1NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImRvY3VtZW50VW5kZXJFZGl0Lmhhc1B1YmxpY0FjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRvY1VuZGVyRWRpdElzUmVhZE9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pbnB1dC1zd2l0Y2hlci15ZXMtbm8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3Jpem9udGFsLWxheW91dC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRvY3VtZW50VW5kZXJFZGl0LmlzSW1hZ2VEb2N1bWVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dC1zd2l0Y2hlci15ZXMtbm8gbGFiZWw9XCJET1dOTE9BREFCTEVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJkb2N1bWVudFVuZGVyRWRpdC5kb3dubG9hZGFibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2ZnTmFtZV09XCJmaWxlc1VwbG9hZENvbmZpZ09iamVjdHM/LlRleHREb2N1bWVudERvd25sb2FkYWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2lucHV0LXN3aXRjaGVyLXllcy1ubz4tLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3Jpem9udGFsLWxheW91dC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsZVR5cGUgPT09IGZpbGVUeXBlcy5UaHJlZURGaWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dC1zd2l0Y2hlci15ZXMtbm8gbGFiZWw9XCJBTFNPX0FTX1VTRFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJkb2N1bWVudFVuZGVyRWRpdC5jb252ZXJ0VG9VU0RaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRvY1VuZGVyRWRpdElzUmVhZE9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaW5wdXQtc3dpdGNoZXIteWVzLW5vPi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhvcml6b250YWwtbGF5b3V0LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLWxlZnRcIj48IS0tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQtc3dpdGNoZXIteWVzLW5vIGxhYmVsPVwiQVRUQUNIX1RPX05PVElGSUNBVElPTlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImRvY3VtZW50VW5kZXJFZGl0LmF0dGFjaFRvTm90aWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NmZ05hbWVdPVwiZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5JbWFnZURvY3VtZW50QXR0YWNoTm90aWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRvY1VuZGVyRWRpdElzUmVhZE9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaW5wdXQtc3dpdGNoZXIteWVzLW5vPi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1yaWdodFwiPjwhLS1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWFnZS10eXBlLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2ZnTmFtZV09XCJmaWxlc1VwbG9hZENvbmZpZ09iamVjdHM/LkltYWdlRG9jdW1lbnREaXNwbGF5VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoc2VsZWN0ZWRNb2RlbElkKV09XCJ0aGlzLmRvY3VtZW50VW5kZXJFZGl0LmltYWdlRGlzcGxheUtpbmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZG9jVW5kZXJFZGl0SXNSZWFkT25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRElTUExBWV9UWVBFXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ltYWdlLXR5cGUtc2VsZWN0Pi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1dvcmthYmlsaXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxtdWx0aXBsZS1wcm9wZXJ0eS10b2dnbGVyICpuZ0lmPVwiIXNob3dEb2N1bWVudFJlcG9ydFBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJvcGVydHlOYW1lc1RvVG9nZ2xlXT1cImRvY3VtZW50UHVibGljYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhlbmFibGVkaXRlbXMpXT1cInRoaXMuZG9jdW1lbnRVbmRlckVkaXQucHVibGljYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uUHJvcGVydHlJdGVtQ2hhbmdlKT1cImhhbmRsZVByb3BlcnR5Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJQVUJMSVNIX1RPXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9tdWx0aXBsZS1wcm9wZXJ0eS10b2dnbGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1tdWx0aXBsZS1wcm9wZXJ0eS10b2dnbGVyICpuZ0lmPVwic2hvd0RvY3VtZW50UmVwb3J0UGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9wZXJ0eU5hbWVzVG9Ub2dnbGVdPVwiZG9jdW1lbnRFbWFpbFJlcG9ydHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhlbmFibGVkaXRlbXMpXT1cImRvY3VtZW50VW5kZXJFZGl0LnJlcG9ydHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uUHJvcGVydHlJdGVtQ2hhbmdlKT1cImhhbmRsZVJlcG9ydHNQcm9wZXJ0eUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiUkVQT1JUU19UT19BVFRBQ0hfVE9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRvY1VuZGVyRWRpdElzUmVhZE9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLW11bHRpcGxlLXByb3BlcnR5LXRvZ2dsZXI+LS0+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08bmctY29udGFpbmVyICpuZ0lmPVwiZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlV3JhcHBlcl09XCJ0ZW1wbGF0ZUltYWdlXCI+PC9uZy1jb250YWluZXI+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9jby1mb3JtPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvY28tZGlhbG9nPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZVwiIFt0ZXh0Q29udGVudF09XCJwb3B1cEhlYWRlciB8IHNoYXJlZExvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1mb290ZXItYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y28tYnV0dG9uIFtkaXNhYmxlZF09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCIgY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Qb3B1cE9rQ2xpY2soKVwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbi5DaGVja0R1b3RvbmUpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Qb3B1cENhbmNlbENsaWNrKClcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb24uQ3Jvc3NTa2lubnkpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVJbWFnZSAqbmdJZj1cIiFpc1dvcmthYmlsaXR5XCI+XHJcbiAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sdW1uLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQtbG92LW11bHRpLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2ZnTmFtZV09XCJmaWxlc1VwbG9hZENvbmZpZ09iamVjdHMuSW1hZ2VEb2N1bWVudFN0b3JlR3JvdXBzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhzZWxlY3RlZE1vZGVsSWRzKV09XCJzdG9yZUdyb3VwSWRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwic3RvcmVHcm91cHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZG9jVW5kZXJFZGl0SXNSZWFkT25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uRmllbGQ9XCJkZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvTm90TG9hZENvbGxlY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJSRVRBSUxfRk9STVVMQVNcIlxyXG4gICAgICAgICAgICAgICAgPjwvaW5wdXQtbG92LW11bHRpLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+LS0+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIGAsXHJcbiAgICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG4vLyBDb21wb25lbnQgdGhhdCBzaG93cyBhIHBvcHVwIHdoZW4gdGhlIHVzZXIgd2FudHMgdG8gdXBsb2FkIGEgQ29Eb2N1bWVudFxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZFBvcHVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIHB1YmxpYyByZWFkb25seSBpY29uOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gICAgQFZpZXdDaGlsZChGb3JtQ29tcG9uZW50KVxyXG4gICAgcHVibGljIGZvcm06IEZvcm1Db21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIHVzZVdpdGhvdXRTZXR0aW5nUHJvcHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgaGFzUHVibGljQWNjZXNzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIC8vdG9kbyB0aGlzIGlzIHVzdWFsbHkgc2V0IHRvIGZhbHNlIG9uIGluaXRcclxuICAgIHB1YmxpYyBzaG93RG9jdW1lbnRSZXBvcnRQaWNrZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkb2N1bWVudFVuZGVyRWRpdChkb2M6IENvRG9jdW1lbnQpIHtcclxuICAgICAgICB0aGlzLl9kb2N1bWVudFVuZGVyRWRpdCA9IGRvYyA/IHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKENvRG9jdW1lbnQsIGRvYykgYXMgdW5rbm93biBhcyBDb0RvY3VtZW50IDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZG9jdW1lbnRVbmRlckVkaXQoKTogQ29Eb2N1bWVudCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RvY3VtZW50VW5kZXJFZGl0O1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHJlYWRvbmx5KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fcmVhZG9ubHkgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIC8vdGhpcy5fdG9hc3RTZXJ2aWNlLnNwYXduVG9hc3QoXCJNRVNTQUdFX0RPQ1VNRU5UX0xPQ0tfU0lOR0xFXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBmaWxlc1VwbG9hZENvbmZpZ09iamVjdHModmFsdWU6IEZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cykge1xyXG4gICAgICAgIHRoaXMuX2ZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cyA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGFnQ2F0ZWdvcnk6IFRhZ0NhdGVnb3J5O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBtZWRpY2FsVXNlckdyb3VwczogYm9vbGVhbjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRpc3BsYXlSZWFkV3JpdGVBY2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGFnUmVmZXJlbmNlVGFibGU6IFRhYmxlTmFtZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRvY3VtZW50S2V5OiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBkb2N1bWVudFRhYmxlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaWxlVHlwZTogRmlsZVR5cGU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGFkZERvY3VtZW50QnlVcmw6IGJvb2xlYW47XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRDaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPENvRG9jdW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb0RvY3VtZW50PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IHBvcHVwQ2xvc2VFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY28tZmlsZS11cGxvYWQtcG9wdXAnKVxyXG4gICAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBkb2N1bWVudFB1YmxpY2F0aW9uOiB0eXBlb2YgRG9jdW1lbnRQdWJsaWNhdGlvbiA9IERvY3VtZW50UHVibGljYXRpb247XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRFbWFpbFJlcG9ydHM6IHR5cGVvZiBEb2N1bWVudEVtYWlsUmVwb3J0ID0gRG9jdW1lbnRFbWFpbFJlcG9ydDtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNob3dSZWFkV3JpdGVBY2Nlc3MoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgLy9UT0RPIGdldCB1c2VycmlnaHRzXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgLy9yZXR1cm4gdGhpcy5fdXNlclJpZ2h0cy53b3JrYWJpbGl0eVBhcmFtZXRlckVuYWJsZWQgJiYgdGhpcy5kaXNwbGF5UmVhZFdyaXRlQWNjZXNzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzKCk6IEZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzV29ya2FiaWxpdHkoKTogYm9vbGVhbiB7XHJcbiAgICAgIC8vVE9ETyBmaXggd29ya2FiaWxpdHlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgLy9yZXR1cm4gdGhpcy5fd29ya2FiaWxpdHlTZXJ2aWNlLndvcmthYmlsaXR5U3lzdGVtRW5hYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGRvY1VuZGVyRWRpdElzUmVhZE9ubHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucmVhZG9ubHkgfHwgdGhpcy5fcmVhZG9ubHk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0aHVtYm5haWwoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5kb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdGh1bWJuYWlsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9maWxlVHlwZUltZ1BpcGUudHJhbnNmb3JtKHRoaXMuZG9jdW1lbnRVbmRlckVkaXQuZmlsZVR5cGVJbnRlcm5hbCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBwb3B1cEhlYWRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50VW5kZXJFZGl0ICYmIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiSU1BR0VcIjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJET0NVTUVOVFwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHB1YmxpY2F0aW9uQ29uZmlnTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSA/XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cy5JbWFnZURvY3VtZW50UHVibGlzaFRvIDpcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZXNVcGxvYWRDb25maWdPYmplY3RzLlRleHREb2N1bWVudFB1Ymxpc2hUbztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm47IC8vIE5vIGNvbmZpZ25hbWUgZm91bmRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBnZXQgdGFnc0NvbmZpZ05hbWUoKTogVGFnc0NvbXBvbmVudENvbmZpZ05hbWVzIHtcclxuICAgICAgICBpZiAodGhpcy5maWxlc1VwbG9hZENvbmZpZ09iamVjdHMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KCkgP1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlc1VwbG9hZENvbmZpZ09iamVjdHMuVGFnc0ltYWdlQ29uZmlnTmFtZXMgOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlc1VwbG9hZENvbmZpZ09iamVjdHMuVGFnc1RleHRDb25maWdOYW1lcztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm47IC8vIE5vIGNvbmZpZ25hbWUgZm91bmRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGRvbWFpbjogdHlwZW9mIERvbWFpbk11bHRpcGxlTmFtZSA9IERvbWFpbk11bHRpcGxlTmFtZTtcclxuICAgIHB1YmxpYyByZWFkb25seSBmaWxlVHlwZXM6IHR5cGVvZiBGaWxlVHlwZSA9IEZpbGVUeXBlO1xyXG5cclxuICAgIHB1YmxpYyBfZG9jdW1lbnRVbmRlckVkaXQ6IENvRG9jdW1lbnQ7XHJcbiAgICBwdWJsaWMgaGlkZUNhbmNlbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHN0b3JlR3JvdXBzOiBTdG9yZUdyb3VwW10gPSBbXTtcclxuICAgIHB1YmxpYyBwdWJsaWNhdGlvbklkczogbnVtYmVyW107XHJcbiAgICBwdWJsaWMgc3RvcmVHcm91cElkczogc3RyaW5nW107XHJcbiAgICBwdWJsaWMgdXNlckdyb3Vwc0ZvcldyaXRlOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgcHVibGljIHVzZXJHcm91cHNGb3JSZWFkOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgcHVibGljIGRvY3VtZW50VGFnczogVGFnVHJlZUl0ZW1bXSA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgX2ZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0czogRmlsZXNVcGxvYWRDb25maWdPYmplY3RzID0ge307IC8vIEluc3RhbnRpYXRlIHdpdGggZW1wdHkgb2JqZWN0IHRvIGF2b2lkIG51bGxwb2ludGVycyBpbiB0aGUgdGVtcGxhdGVcclxuICAgIHByaXZhdGUgX2JvRmFjdG9yeTogQnVzaW5lc3NPYmplY3RGYWN0b3J5ID0gbmV3IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSgpO1xyXG4gICAgcHJpdmF0ZSBfcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX3B1YmxpY2F0aW9uTnVtYmVyOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9yZXBvcnRzTnVtYmVyOiBudW1iZXI7XHJcblxyXG4gICAgcHJpdmF0ZSBfdGh1bWJuYWlsOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgLy9wcml2YXRlIF93b3JrYWJpbGl0eVNlcnZpY2U6IEFwcFdvcmthYmlsaXR5U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9wcm9tcHRTZXJ2aWNlOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2ZpbGVUeXBlSW1nUGlwZTogRmlsZVR5cGVJbWFnZVBpcGUsXHJcbiAgICAgICAgLy9wcml2YXRlIF91c2VyUmlnaHRzOiBVc2VyUmlnaHRzU2VydmljZSxcclxuICAgICAgICAvL3ByaXZhdGUgX2Jhc2VEYXRhUmVwbzogQmFzZURhdGFEYWxSZXBvc2l0b3J5LFxyXG4gICAgICAgIC8vcHJpdmF0ZSBfdGFnc1JlcG86IFRhZ3NEYWxSZXBvc2l0b3J5LFxyXG4gICAgICAgIC8vcHJpdmF0ZSBfZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgICAgIC8vcHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBBcHBUb2FzdFNlcnZpY2VcclxuICAgICAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubG9hZENvbGxlY3Rpb24oKTtcclxuICAgICAgICBpZiAodGhpcy5kb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLl90aHVtYm5haWwgPSB0aGlzLmRvY3VtZW50VW5kZXJFZGl0LmRvY3VtZW50Qm9keUFzRGF0YVVyaTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGxvYWRDb2xsZWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIC8vdGhpcy5kb2N1bWVudFRhZ3MgPSBhd2FpdCB0aGlzLl90YWdzUmVwby5nZXRKb2luZWRUYWdzKHRoaXMudGFnUmVmZXJlbmNlVGFibGUsIHRoaXMuZG9jdW1lbnRLZXkpO1xyXG4gICAgICAgIC8vdGhpcy5zdG9yZUdyb3VwcyA9IGF3YWl0IHRoaXMuX2Jhc2VEYXRhUmVwby5nZXRTdG9yZUdyb3VwTGlzdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblByZXZpZXdDbGljaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5kb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSkgeyAvL3ByZXZpZXcgaW1hZ2VcclxuICAgICAgICAgICAgdGhpcy5fcHJvbXB0U2VydmljZS5zaG93SW1hZ2UodGhpcy5kb2N1bWVudFVuZGVyRWRpdC5kb2N1bWVudEJvZHlBc0RhdGFVcmksIFwiUHJldmlld1wiKTtcclxuICAgICAgICB9IGVsc2UgeyAvL2Rvd25sb2FkIGRvY3VtZW50XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBGaWxlVXRpbHMuRG93bmxvYWRGcm9tRGF0YVVyaSh0aGlzLmRvY3VtZW50VW5kZXJFZGl0LmJvZHlBc0RhdGFVcmksIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQuZmlsZU5hbWUpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2F2ZURvY3VtZW50VW5kZXJFZGl0UmlnaHRzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucmlnaHRzID0gW107XHJcbiAgICAgICAgY29uc3QgZm9yV3JpdGVMZW5ndGg6IG51bWJlciA9IHRoaXMudXNlckdyb3Vwc0ZvcldyaXRlLmxlbmd0aDtcclxuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgZm9yV3JpdGVMZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCByaWdodHM6IENvRG9jdW1lbnRSaWdodCA9IG5ldyBDb0RvY3VtZW50UmlnaHQoKTtcclxuICAgICAgICAgICAgcmlnaHRzLnVzZXJHcm91cElkID0gdGhpcy51c2VyR3JvdXBzRm9yV3JpdGVbaV07XHJcbiAgICAgICAgICAgIHJpZ2h0cy5yaWdodExldmVsID0gT2JqZWN0UmlnaHRUeXBlLlJlYWRXcml0ZTtcclxuICAgICAgICAgICAgdGhpcy5kb2N1bWVudFVuZGVyRWRpdC5yaWdodHMucHVzaChyaWdodHMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZm9yUmVhZExlbmd0aDogbnVtYmVyID0gdGhpcy51c2VyR3JvdXBzRm9yUmVhZC5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGZvclJlYWRMZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCByaWdodHM6IENvRG9jdW1lbnRSaWdodCA9IG5ldyBDb0RvY3VtZW50UmlnaHQoKTtcclxuICAgICAgICAgICAgcmlnaHRzLnVzZXJHcm91cElkID0gdGhpcy51c2VyR3JvdXBzRm9yUmVhZFtpXTtcclxuICAgICAgICAgICAgcmlnaHRzLnJpZ2h0TGV2ZWwgPSBPYmplY3RSaWdodFR5cGUuUmVhZE9ubHk7XHJcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucmlnaHRzLnB1c2gocmlnaHRzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUG9wdXBPa0NsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0pIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLnN1Ym1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlUHJvcGVydHlDaGFuZ2UocmVmU3VtT2ZFbmFibGVkSXRlbXM6IG51bWJlcik6IGFueSB7XHJcbiAgICAgICAgdGhpcy5fcHVibGljYXRpb25OdW1iZXIgPSByZWZTdW1PZkVuYWJsZWRJdGVtcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlUmVwb3J0c1Byb3BlcnR5Q2hhbmdlKHJlZlN1bU9mRW5hYmxlZEl0ZW1zOiBudW1iZXIpOiBhbnkge1xyXG4gICAgICAgIHRoaXMuX3JlcG9ydHNOdW1iZXIgPSByZWZTdW1PZkVuYWJsZWRJdGVtcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb25WYWxpZFN1Ym1pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICB0aGlzLl9wdWJsaWNhdGlvbk51bWJlciA/IHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucHVibGljYXRpb24gPSB0aGlzLl9wdWJsaWNhdGlvbk51bWJlciA6IHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucHVibGljYXRpb24gPSAwO1xyXG4gICAgICAgIHRoaXMuX3JlcG9ydHNOdW1iZXIgPyB0aGlzLmRvY3VtZW50VW5kZXJFZGl0LnJlcG9ydHMgPSB0aGlzLl9yZXBvcnRzTnVtYmVyIDogdGhpcy5kb2N1bWVudFVuZGVyRWRpdC5yZXBvcnRzID0gMDtcclxuICAgICAgICB0aGlzLmRvY3VtZW50VW5kZXJFZGl0LnJldGFpbEZvcm11bGFzID0gdGhpcy5zdG9yZUdyb3VwSWRzO1xyXG4gICAgICAgIHRoaXMuc2F2ZURvY3VtZW50VW5kZXJFZGl0UmlnaHRzKCk7XHJcbiAgICAgICAgdGhpcy5kb2N1bWVudENoYW5nZUV2ZW50LmVtaXQodGhpcy5kb2N1bWVudFVuZGVyRWRpdCk7XHJcbiAgICAgICAgdGhpcy5vblBvcHVwQ2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb25Qb3B1cENhbmNlbENsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIHRoaXMub25Qb3B1cENsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUG9wdXBDbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnVzZXJHcm91cHNGb3JXcml0ZS5sZW5ndGggPSAwO1xyXG4gICAgICAgIHRoaXMudXNlckdyb3Vwc0ZvclJlYWQubGVuZ3RoID0gMDtcclxuICAgICAgICB0aGlzLmRvY3VtZW50VW5kZXJFZGl0ID0gdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICB0aGlzLnBvcHVwQ2xvc2VFdmVudC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLypwcml2YXRlIF91bmxvY2tEb2N1bWVudChkb2M6IENvRG9jdW1lbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWRvYy5yZWFkb25seSAmJiAhdGhpcy5yZWFkb25seSkge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRhU2VydmljZS51bmxvY2soQ29Eb2N1bWVudCwgZG9jLmRvY3VtZW50SWQpO1xyXG4gICAgICAgIH1cclxuICAgIH0qL1xyXG59XHJcbiJdfQ==
404
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtcG9wdXAvZmlsZS11cGxvYWQtcG9wdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBRXRHLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUN0RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDcEcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0saURBQWlELENBQUM7QUFJaEYsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRTFFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRXhFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRSxPQUFP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RUFBRTswRUFFaUM7QUErQmhEO0lBREMsWUFBWSxFQUFFO21FQUNtQjtBQW1CbEM7SUFEQyxZQUFZLEVBQUU7a0VBQ2tCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybUNvbXBvbmVudH0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7RG9jdW1lbnRQdWJsaWNhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL2VudW0vcmVmY29kZS9kb2N1bWVudC1wdWJsaWNhdGlvbi5lbnVtXCI7XHJcbmltcG9ydCB7U3RvcmVHcm91cH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3N0b3JlLWdyb3VwLmJvXCI7XHJcbmltcG9ydCB7T2JqZWN0UmlnaHRUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9lbnVtL29iamVjdC1yaWdodC10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtQcm9tcHRTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0RmFjdG9yeX0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3NlcnZpY2UvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnlcIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtDb0RvY3VtZW50fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9jdW1lbnQuYm9cIjtcclxuaW1wb3J0IHtDb0RvY3VtZW50UmlnaHR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudC1yaWdodFwiO1xyXG5pbXBvcnQge1RhZ0NhdGVnb3J5fSBmcm9tIFwiLi4vLi4vZW51bS90YWctY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge0ZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0c30gZnJvbSBcIi4uLy4uL2VudW0vZmlsZXMtdXBsb2FkLWNvbmZpZy1vYmplY3RzXCI7XHJcbmltcG9ydCB7VGFibGVOYW1lfSBmcm9tIFwiLi4vLi4vZW51bS90YWJsZS1uYW1lLmVudW1cIjtcclxuaW1wb3J0IHtGaWxlVHlwZX0gZnJvbSBcIi4uLy4uL2VudW0vZmlsZS10eXBlXCI7XHJcbmltcG9ydCB7RG9jdW1lbnRFbWFpbFJlcG9ydH0gZnJvbSBcIi4uLy4uL2VudW0vZG9jdW1lbnQtZW1haWwtcmVwb3J0LmVudW1cIjtcclxuaW1wb3J0IHtUYWdzQ29tcG9uZW50Q29uZmlnTmFtZXN9IGZyb20gXCIuLi8uLi9lbnVtL3RhZ3MtY29tcG9uZW50LWNvbmZpZy1uYW1lc1wiO1xyXG5pbXBvcnQge0RvbWFpbk11bHRpcGxlTmFtZX0gZnJvbSBcIi4uLy4uL2VudW0vZG9tYWluLW11bHRpcGxlLW5hbWUuZW51bVwiO1xyXG5pbXBvcnQge1RhZ1RyZWVJdGVtfSBmcm9tIFwiLi4vLi4vbW9kZWwvdGFnLXRyZWUtaXRlbS5ib1wiO1xyXG5pbXBvcnQge0ZpbGVUeXBlSW1hZ2VQaXBlfSBmcm9tIFwiLi4vLi4vcGlwZS9maWxlLXR5cGUtaW1hZ2UucGlwZVwiO1xyXG5pbXBvcnQge0ZpbGVVdGlsc30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL3V0aWxzL2ZpbGUtdXRpbHNcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLWZpbGUtdXBsb2FkLXBvcHVwXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxjby1kaWFsb2cgKm5nSWY9XCIhdXNlV2l0aG91dFNldHRpbmdQcm9wcyAmJiBkb2N1bWVudFVuZGVyRWRpdFwiIGNzc0lkPVwicG9wdXBfZmlsZXNfdXBsb2FkX2NvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCIgY29udGVudFNpemUgbm9DbGlja091dHNpZGVcclxuICAgICAgICAgICAgICAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAoY2xvc2UpPVwib25Qb3B1cENsb3NlKClcIiAoY2xvc2VDbGljayk9XCJvblBvcHVwQ2FuY2VsQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXVwbG9hZC1mb3JtLXdyYXBwZXJcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tZm9ybSBjbGFzcz1cIm5hcnJvdy1zY3JvbGxiYXJcIiAodmFsaWRTdWJtaXQpPVwib25WYWxpZFN1Ym1pdCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1sYXlvdXQtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvY3VtZW50LXRodW1iIGNvbHVtbi1sZWZ0XCIgKm5nSWY9XCIhYWRkRG9jdW1lbnRCeVVybFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwib25QcmV2aWV3Q2xpY2soKVwiPjxpbWcgW3NyY109XCJ0aHVtYm5haWxcIi8+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImRvY3VtZW50VW5kZXJFZGl0LnRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KCkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5JbWFnZURvY3VtZW50VGl0bGUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5UZXh0RG9jdW1lbnRUaXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInVElUTEUnIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub1ZhbGlkYXRpb24gZm9yY2VSZWFkb25seT48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbcGxhY2Vob2xkZXJdPVwiJ0RFU0NSSVBUSU9OJyB8IHNoYXJlZExvY2FsaXplXCIgWyhtb2RlbCldPVwiZG9jdW1lbnRVbmRlckVkaXQuZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KCkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5JbWFnZURvY3VtZW50RGVzY3JpcHRpb24gOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5UZXh0RG9jdW1lbnREZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZG9jVW5kZXJFZGl0SXNSZWFkT25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHNpemVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiZG9jdW1lbnRVbmRlckVkaXQuZmlsZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJkb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5JbWFnZURvY3VtZW50RmlsZVNpemUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cz8uVGV4dERvY3VtZW50RmlsZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NJWkUnIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZVJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vVmFsaWRhdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbcGxhY2Vob2xkZXJdPVwiJ0RJTUVOU0lPTlMnIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJkb2N1bWVudFVuZGVyRWRpdC5pbWFnZURpbWVuc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cz8uSW1hZ2VEb2N1bWVudERpbWVuc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlUmVhZG9ubHkgbm9WYWxpZGF0aW9uPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPHNjLXRhZ3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFnQ2F0ZWdvcnldPVwidGFnQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCItLT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tID48L3NjLXRhZ3M+LS0+PCEtLSBbbXlDZmdOYW1lc109XCJ0YWdzQ29uZmlnTmFtZVwiIHwgWyhqb2luZWRUYWdzKV09XCJ0aGlzLmRvY3VtZW50VW5kZXJFZGl0LnRhZ3NcIi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlYWQtd3JpdGUtYWNjZXNzICpuZ0lmPVwic2hvd1JlYWRXcml0ZUFjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkV3JpdGVDZmdOYW1lc109XCJmaWxlc1VwbG9hZENvbmZpZ09iamVjdHM/LnJlYWRXcml0ZUFjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYXlvdXRIb3Jpem9udGFsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWVkaWNhbFVzZXJHcm91cHNdPVwibWVkaWNhbFVzZXJHcm91cHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHVzZXJHcm91cHNGb3JXcml0ZSldPVwidXNlckdyb3Vwc0ZvcldyaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyh1c2VyR3JvdXBzRm9yUmVhZCldPVwidXNlckdyb3Vwc0ZvclJlYWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZG9jVW5kZXJFZGl0SXNSZWFkT25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcmVhZC13cml0ZS1hY2Nlc3M+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwhLS08ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1sYXlvdXQtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFkZERvY3VtZW50QnlVcmxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcmVxdWlyZWQgW3BsYWNlaG9sZGVyXT1cIidVUkwnIHwgc2hhcmVkTG9jYWxpemVcIiBbKG1vZGVsKV09XCJkb2N1bWVudFVuZGVyRWRpdC5maWxlUGF0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1sYXlvdXQtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLTxkaXYgKm5nSWY9XCJoYXNQdWJsaWNBY2Nlc3NWaXNpYmxlXCIgY2xhc3M9XCJjb2x1bW4tcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0LXN3aXRjaGVyLXllcy1ubyBsYWJlbD1cIlBVQkxJQ19BQ0NFU1NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImRvY3VtZW50VW5kZXJFZGl0Lmhhc1B1YmxpY0FjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRvY1VuZGVyRWRpdElzUmVhZE9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pbnB1dC1zd2l0Y2hlci15ZXMtbm8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3Jpem9udGFsLWxheW91dC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRvY3VtZW50VW5kZXJFZGl0LmlzSW1hZ2VEb2N1bWVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dC1zd2l0Y2hlci15ZXMtbm8gbGFiZWw9XCJET1dOTE9BREFCTEVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJkb2N1bWVudFVuZGVyRWRpdC5kb3dubG9hZGFibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2ZnTmFtZV09XCJmaWxlc1VwbG9hZENvbmZpZ09iamVjdHM/LlRleHREb2N1bWVudERvd25sb2FkYWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2lucHV0LXN3aXRjaGVyLXllcy1ubz4tLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3Jpem9udGFsLWxheW91dC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsZVR5cGUgPT09IGZpbGVUeXBlcy5UaHJlZURGaWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dC1zd2l0Y2hlci15ZXMtbm8gbGFiZWw9XCJBTFNPX0FTX1VTRFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJkb2N1bWVudFVuZGVyRWRpdC5jb252ZXJ0VG9VU0RaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRvY1VuZGVyRWRpdElzUmVhZE9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaW5wdXQtc3dpdGNoZXIteWVzLW5vPi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhvcml6b250YWwtbGF5b3V0LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLWxlZnRcIj48IS0tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQtc3dpdGNoZXIteWVzLW5vIGxhYmVsPVwiQVRUQUNIX1RPX05PVElGSUNBVElPTlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImRvY3VtZW50VW5kZXJFZGl0LmF0dGFjaFRvTm90aWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NmZ05hbWVdPVwiZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5JbWFnZURvY3VtZW50QXR0YWNoTm90aWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRvY1VuZGVyRWRpdElzUmVhZE9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaW5wdXQtc3dpdGNoZXIteWVzLW5vPi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1yaWdodFwiPjwhLS1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWFnZS10eXBlLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2ZnTmFtZV09XCJmaWxlc1VwbG9hZENvbmZpZ09iamVjdHM/LkltYWdlRG9jdW1lbnREaXNwbGF5VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoc2VsZWN0ZWRNb2RlbElkKV09XCJ0aGlzLmRvY3VtZW50VW5kZXJFZGl0LmltYWdlRGlzcGxheUtpbmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZG9jVW5kZXJFZGl0SXNSZWFkT25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRElTUExBWV9UWVBFXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ltYWdlLXR5cGUtc2VsZWN0Pi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1dvcmthYmlsaXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxtdWx0aXBsZS1wcm9wZXJ0eS10b2dnbGVyICpuZ0lmPVwiIXNob3dEb2N1bWVudFJlcG9ydFBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJvcGVydHlOYW1lc1RvVG9nZ2xlXT1cImRvY3VtZW50UHVibGljYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhlbmFibGVkaXRlbXMpXT1cInRoaXMuZG9jdW1lbnRVbmRlckVkaXQucHVibGljYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uUHJvcGVydHlJdGVtQ2hhbmdlKT1cImhhbmRsZVByb3BlcnR5Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJQVUJMSVNIX1RPXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9tdWx0aXBsZS1wcm9wZXJ0eS10b2dnbGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1tdWx0aXBsZS1wcm9wZXJ0eS10b2dnbGVyICpuZ0lmPVwic2hvd0RvY3VtZW50UmVwb3J0UGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9wZXJ0eU5hbWVzVG9Ub2dnbGVdPVwiZG9jdW1lbnRFbWFpbFJlcG9ydHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhlbmFibGVkaXRlbXMpXT1cImRvY3VtZW50VW5kZXJFZGl0LnJlcG9ydHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uUHJvcGVydHlJdGVtQ2hhbmdlKT1cImhhbmRsZVJlcG9ydHNQcm9wZXJ0eUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiUkVQT1JUU19UT19BVFRBQ0hfVE9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRvY1VuZGVyRWRpdElzUmVhZE9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLW11bHRpcGxlLXByb3BlcnR5LXRvZ2dsZXI+LS0+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08bmctY29udGFpbmVyICpuZ0lmPVwiZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlV3JhcHBlcl09XCJ0ZW1wbGF0ZUltYWdlXCI+PC9uZy1jb250YWluZXI+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9jby1mb3JtPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvY28tZGlhbG9nPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZVwiIFt0ZXh0Q29udGVudF09XCJwb3B1cEhlYWRlciB8IHNoYXJlZExvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1mb290ZXItYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y28tYnV0dG9uIFtkaXNhYmxlZF09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCIgY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Qb3B1cE9rQ2xpY2soKVwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbi5DaGVja0R1b3RvbmUpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Qb3B1cENhbmNlbENsaWNrKClcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb24uQ3Jvc3NTa2lubnkpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVJbWFnZSAqbmdJZj1cIiFpc1dvcmthYmlsaXR5XCI+XHJcbiAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sdW1uLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQtbG92LW11bHRpLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2ZnTmFtZV09XCJmaWxlc1VwbG9hZENvbmZpZ09iamVjdHMuSW1hZ2VEb2N1bWVudFN0b3JlR3JvdXBzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhzZWxlY3RlZE1vZGVsSWRzKV09XCJzdG9yZUdyb3VwSWRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwic3RvcmVHcm91cHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZG9jVW5kZXJFZGl0SXNSZWFkT25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uRmllbGQ9XCJkZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvTm90TG9hZENvbGxlY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJSRVRBSUxfRk9STVVMQVNcIlxyXG4gICAgICAgICAgICAgICAgPjwvaW5wdXQtbG92LW11bHRpLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+LS0+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIGAsXHJcbiAgICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG4vLyBDb21wb25lbnQgdGhhdCBzaG93cyBhIHBvcHVwIHdoZW4gdGhlIHVzZXIgd2FudHMgdG8gdXBsb2FkIGEgQ29Eb2N1bWVudFxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZFBvcHVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIHB1YmxpYyByZWFkb25seSBpY29uOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gICAgQFZpZXdDaGlsZChGb3JtQ29tcG9uZW50KVxyXG4gICAgcHVibGljIGZvcm06IEZvcm1Db21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIHVzZVdpdGhvdXRTZXR0aW5nUHJvcHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgaGFzUHVibGljQWNjZXNzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIC8vdG9kbyB0aGlzIGlzIHVzdWFsbHkgc2V0IHRvIGZhbHNlIG9uIGluaXRcclxuICAgIHB1YmxpYyBzaG93RG9jdW1lbnRSZXBvcnRQaWNrZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkb2N1bWVudFVuZGVyRWRpdChkb2M6IENvRG9jdW1lbnQpIHtcclxuICAgICAgICB0aGlzLl9kb2N1bWVudFVuZGVyRWRpdCA9IGRvYyA/IHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKENvRG9jdW1lbnQsIGRvYykgYXMgdW5rbm93biBhcyBDb0RvY3VtZW50IDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZG9jdW1lbnRVbmRlckVkaXQoKTogQ29Eb2N1bWVudCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RvY3VtZW50VW5kZXJFZGl0O1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHJlYWRvbmx5KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fcmVhZG9ubHkgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIC8vdGhpcy5fdG9hc3RTZXJ2aWNlLnNwYXduVG9hc3QoXCJNRVNTQUdFX0RPQ1VNRU5UX0xPQ0tfU0lOR0xFXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBmaWxlc1VwbG9hZENvbmZpZ09iamVjdHModmFsdWU6IEZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cykge1xyXG4gICAgICAgIHRoaXMuX2ZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cyA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGFnQ2F0ZWdvcnk6IFRhZ0NhdGVnb3J5O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBtZWRpY2FsVXNlckdyb3VwczogYm9vbGVhbjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRpc3BsYXlSZWFkV3JpdGVBY2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGFnUmVmZXJlbmNlVGFibGU6IFRhYmxlTmFtZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRvY3VtZW50S2V5OiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBkb2N1bWVudFRhYmxlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaWxlVHlwZTogRmlsZVR5cGU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGFkZERvY3VtZW50QnlVcmw6IGJvb2xlYW47XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRDaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPENvRG9jdW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb0RvY3VtZW50PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IHBvcHVwQ2xvc2VFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY28tZmlsZS11cGxvYWQtcG9wdXAnKVxyXG4gICAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBkb2N1bWVudFB1YmxpY2F0aW9uOiB0eXBlb2YgRG9jdW1lbnRQdWJsaWNhdGlvbiA9IERvY3VtZW50UHVibGljYXRpb247XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRFbWFpbFJlcG9ydHM6IHR5cGVvZiBEb2N1bWVudEVtYWlsUmVwb3J0ID0gRG9jdW1lbnRFbWFpbFJlcG9ydDtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNob3dSZWFkV3JpdGVBY2Nlc3MoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgLy9UT0RPIGdldCB1c2VycmlnaHRzXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgLy9yZXR1cm4gdGhpcy5fdXNlclJpZ2h0cy53b3JrYWJpbGl0eVBhcmFtZXRlckVuYWJsZWQgJiYgdGhpcy5kaXNwbGF5UmVhZFdyaXRlQWNjZXNzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzKCk6IEZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzV29ya2FiaWxpdHkoKTogYm9vbGVhbiB7XHJcbiAgICAgIC8vVE9ETyBmaXggd29ya2FiaWxpdHlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgLy9yZXR1cm4gdGhpcy5fd29ya2FiaWxpdHlTZXJ2aWNlLndvcmthYmlsaXR5U3lzdGVtRW5hYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGRvY1VuZGVyRWRpdElzUmVhZE9ubHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucmVhZG9ubHkgfHwgdGhpcy5fcmVhZG9ubHk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0aHVtYm5haWwoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5kb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdGh1bWJuYWlsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9maWxlVHlwZUltZ1BpcGUudHJhbnNmb3JtKHRoaXMuZG9jdW1lbnRVbmRlckVkaXQuZmlsZVR5cGVJbnRlcm5hbCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBwb3B1cEhlYWRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50VW5kZXJFZGl0ICYmIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiSU1BR0VcIjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJET0NVTUVOVFwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHB1YmxpY2F0aW9uQ29uZmlnTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSA/XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cy5JbWFnZURvY3VtZW50UHVibGlzaFRvIDpcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZXNVcGxvYWRDb25maWdPYmplY3RzLlRleHREb2N1bWVudFB1Ymxpc2hUbztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm47IC8vIE5vIGNvbmZpZ25hbWUgZm91bmRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBnZXQgdGFnc0NvbmZpZ05hbWUoKTogVGFnc0NvbXBvbmVudENvbmZpZ05hbWVzIHtcclxuICAgICAgICBpZiAodGhpcy5maWxlc1VwbG9hZENvbmZpZ09iamVjdHMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KCkgP1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlc1VwbG9hZENvbmZpZ09iamVjdHMuVGFnc0ltYWdlQ29uZmlnTmFtZXMgOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlc1VwbG9hZENvbmZpZ09iamVjdHMuVGFnc1RleHRDb25maWdOYW1lcztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm47IC8vIE5vIGNvbmZpZ25hbWUgZm91bmRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGRvbWFpbjogdHlwZW9mIERvbWFpbk11bHRpcGxlTmFtZSA9IERvbWFpbk11bHRpcGxlTmFtZTtcclxuICAgIHB1YmxpYyByZWFkb25seSBmaWxlVHlwZXM6IHR5cGVvZiBGaWxlVHlwZSA9IEZpbGVUeXBlO1xyXG5cclxuICAgIHB1YmxpYyBfZG9jdW1lbnRVbmRlckVkaXQ6IENvRG9jdW1lbnQ7XHJcbiAgICBwdWJsaWMgaGlkZUNhbmNlbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHN0b3JlR3JvdXBzOiBTdG9yZUdyb3VwW10gPSBbXTtcclxuICAgIHB1YmxpYyBwdWJsaWNhdGlvbklkczogbnVtYmVyW107XHJcbiAgICBwdWJsaWMgc3RvcmVHcm91cElkczogc3RyaW5nW107XHJcbiAgICBwdWJsaWMgdXNlckdyb3Vwc0ZvcldyaXRlOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgcHVibGljIHVzZXJHcm91cHNGb3JSZWFkOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgcHVibGljIGRvY3VtZW50VGFnczogVGFnVHJlZUl0ZW1bXSA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgX2ZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0czogRmlsZXNVcGxvYWRDb25maWdPYmplY3RzID0ge307IC8vIEluc3RhbnRpYXRlIHdpdGggZW1wdHkgb2JqZWN0IHRvIGF2b2lkIG51bGxwb2ludGVycyBpbiB0aGUgdGVtcGxhdGVcclxuICAgIHByaXZhdGUgX2JvRmFjdG9yeTogQnVzaW5lc3NPYmplY3RGYWN0b3J5ID0gbmV3IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSgpO1xyXG4gICAgcHJpdmF0ZSBfcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX3B1YmxpY2F0aW9uTnVtYmVyOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9yZXBvcnRzTnVtYmVyOiBudW1iZXI7XHJcblxyXG4gICAgcHJpdmF0ZSBfdGh1bWJuYWlsOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgLy9wcml2YXRlIF93b3JrYWJpbGl0eVNlcnZpY2U6IEFwcFdvcmthYmlsaXR5U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9wcm9tcHRTZXJ2aWNlOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2ZpbGVUeXBlSW1nUGlwZTogRmlsZVR5cGVJbWFnZVBpcGUsXHJcbiAgICAgICAgLy9wcml2YXRlIF91c2VyUmlnaHRzOiBVc2VyUmlnaHRzU2VydmljZSxcclxuICAgICAgICAvL3ByaXZhdGUgX2Jhc2VEYXRhUmVwbzogQmFzZURhdGFEYWxSZXBvc2l0b3J5LFxyXG4gICAgICAgIC8vcHJpdmF0ZSBfdGFnc1JlcG86IFRhZ3NEYWxSZXBvc2l0b3J5LFxyXG4gICAgICAgIC8vcHJpdmF0ZSBfZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgICAgIC8vcHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBBcHBUb2FzdFNlcnZpY2VcclxuICAgICAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubG9hZENvbGxlY3Rpb24oKTtcclxuICAgICAgICBpZiAodGhpcy5kb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLl90aHVtYm5haWwgPSB0aGlzLmRvY3VtZW50VW5kZXJFZGl0LmRvY3VtZW50Qm9keUFzRGF0YVVyaTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGxvYWRDb2xsZWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIC8vdGhpcy5kb2N1bWVudFRhZ3MgPSBhd2FpdCB0aGlzLl90YWdzUmVwby5nZXRKb2luZWRUYWdzKHRoaXMudGFnUmVmZXJlbmNlVGFibGUsIHRoaXMuZG9jdW1lbnRLZXkpO1xyXG4gICAgICAgIC8vdGhpcy5zdG9yZUdyb3VwcyA9IGF3YWl0IHRoaXMuX2Jhc2VEYXRhUmVwby5nZXRTdG9yZUdyb3VwTGlzdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblByZXZpZXdDbGljaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5kb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSkgeyAvL3ByZXZpZXcgaW1hZ2VcclxuICAgICAgICAgICAgdGhpcy5fcHJvbXB0U2VydmljZS5zaG93SW1hZ2UodGhpcy5kb2N1bWVudFVuZGVyRWRpdC5kb2N1bWVudEJvZHlBc0RhdGFVcmksIFwiUHJldmlld1wiKTtcclxuICAgICAgICB9IGVsc2UgeyAvL2Rvd25sb2FkIGRvY3VtZW50XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBGaWxlVXRpbHMuRG93bmxvYWRGcm9tRGF0YVVyaSh0aGlzLmRvY3VtZW50VW5kZXJFZGl0LmJvZHlBc0RhdGFVcmksIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQuZmlsZU5hbWUpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2F2ZURvY3VtZW50VW5kZXJFZGl0UmlnaHRzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucmlnaHRzID0gW107XHJcbiAgICAgICAgY29uc3QgZm9yV3JpdGVMZW5ndGg6IG51bWJlciA9IHRoaXMudXNlckdyb3Vwc0ZvcldyaXRlLmxlbmd0aDtcclxuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgZm9yV3JpdGVMZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCByaWdodHM6IENvRG9jdW1lbnRSaWdodCA9IG5ldyBDb0RvY3VtZW50UmlnaHQoKTtcclxuICAgICAgICAgICAgcmlnaHRzLnVzZXJHcm91cElkID0gdGhpcy51c2VyR3JvdXBzRm9yV3JpdGVbaV07XHJcbiAgICAgICAgICAgIHJpZ2h0cy5yaWdodExldmVsID0gT2JqZWN0UmlnaHRUeXBlLlJlYWRXcml0ZTtcclxuICAgICAgICAgICAgdGhpcy5kb2N1bWVudFVuZGVyRWRpdC5yaWdodHMucHVzaChyaWdodHMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZm9yUmVhZExlbmd0aDogbnVtYmVyID0gdGhpcy51c2VyR3JvdXBzRm9yUmVhZC5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGZvclJlYWRMZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCByaWdodHM6IENvRG9jdW1lbnRSaWdodCA9IG5ldyBDb0RvY3VtZW50UmlnaHQoKTtcclxuICAgICAgICAgICAgcmlnaHRzLnVzZXJHcm91cElkID0gdGhpcy51c2VyR3JvdXBzRm9yUmVhZFtpXTtcclxuICAgICAgICAgICAgcmlnaHRzLnJpZ2h0TGV2ZWwgPSBPYmplY3RSaWdodFR5cGUuUmVhZE9ubHk7XHJcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucmlnaHRzLnB1c2gocmlnaHRzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUG9wdXBPa0NsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0pIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLnN1Ym1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlUHJvcGVydHlDaGFuZ2UocmVmU3VtT2ZFbmFibGVkSXRlbXM6IG51bWJlcik6IGFueSB7XHJcbiAgICAgICAgdGhpcy5fcHVibGljYXRpb25OdW1iZXIgPSByZWZTdW1PZkVuYWJsZWRJdGVtcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlUmVwb3J0c1Byb3BlcnR5Q2hhbmdlKHJlZlN1bU9mRW5hYmxlZEl0ZW1zOiBudW1iZXIpOiBhbnkge1xyXG4gICAgICAgIHRoaXMuX3JlcG9ydHNOdW1iZXIgPSByZWZTdW1PZkVuYWJsZWRJdGVtcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb25WYWxpZFN1Ym1pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICB0aGlzLl9wdWJsaWNhdGlvbk51bWJlciA/IHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucHVibGljYXRpb24gPSB0aGlzLl9wdWJsaWNhdGlvbk51bWJlciA6IHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucHVibGljYXRpb24gPSAwO1xyXG4gICAgICAgIHRoaXMuX3JlcG9ydHNOdW1iZXIgPyB0aGlzLmRvY3VtZW50VW5kZXJFZGl0LnJlcG9ydHMgPSB0aGlzLl9yZXBvcnRzTnVtYmVyIDogdGhpcy5kb2N1bWVudFVuZGVyRWRpdC5yZXBvcnRzID0gMDtcclxuICAgICAgICB0aGlzLmRvY3VtZW50VW5kZXJFZGl0LnJldGFpbEZvcm11bGFzID0gdGhpcy5zdG9yZUdyb3VwSWRzO1xyXG4gICAgICAgIHRoaXMuc2F2ZURvY3VtZW50VW5kZXJFZGl0UmlnaHRzKCk7XHJcbiAgICAgICAgdGhpcy5kb2N1bWVudENoYW5nZUV2ZW50LmVtaXQodGhpcy5kb2N1bWVudFVuZGVyRWRpdCk7XHJcbiAgICAgICAgdGhpcy5vblBvcHVwQ2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb25Qb3B1cENhbmNlbENsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIHRoaXMub25Qb3B1cENsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUG9wdXBDbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnVzZXJHcm91cHNGb3JXcml0ZS5sZW5ndGggPSAwO1xyXG4gICAgICAgIHRoaXMudXNlckdyb3Vwc0ZvclJlYWQubGVuZ3RoID0gMDtcclxuICAgICAgICB0aGlzLmRvY3VtZW50VW5kZXJFZGl0ID0gdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICB0aGlzLnBvcHVwQ2xvc2VFdmVudC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLypwcml2YXRlIF91bmxvY2tEb2N1bWVudChkb2M6IENvRG9jdW1lbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWRvYy5yZWFkb25seSAmJiAhdGhpcy5yZWFkb25seSkge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRhU2VydmljZS51bmxvY2soQ29Eb2N1bWVudCwgZG9jLmRvY3VtZW50SWQpO1xyXG4gICAgICAgIH1cclxuICAgIH0qL1xyXG59XHJcbiJdfQ==