@projectcor/maia-components 2.11.55 → 2.11.56-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.
@@ -17,6 +17,7 @@ export { CustomInput } from './Input';
17
17
  export { ListMenuOption } from './ListMenuOption';
18
18
  export { Loader } from './Loader';
19
19
  export { LoadingText } from './LoadingText';
20
+ export { AgentActivityIndicator } from './AgentActivityIndicator';
20
21
  export { MAIAButton } from './MAIAButton';
21
22
  export { MAIAError } from './MAIAError';
22
23
  export { MAIAInput } from './MAIAInput';
@@ -35,4 +36,4 @@ export { WithFeatureValidation } from './WithFeatureValidation';
35
36
 
36
37
  // Icons
37
38
  export * from './icons';
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25hYmxlQnV0dG9uIiwiQXR0YWNobWVudENhcmQiLCJCYWNrZHJvcCIsIkNhcmRNZW51IiwiQ2hhdERpc2NsYWltZXJNZXNzYWdlIiwiQ2hpcCIsIkNsZWFyQnV0dG9uIiwiQ29weVRvQ2xpcGJvYXJkIiwiRWRpdGFibGVMYWJlbCIsIkV4cGFuZCIsIkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsIkdvQmFja0J1dHRvbiIsIkhlbHBCdXR0b24iLCJJY29uQnV0dG9uIiwiQ3VzdG9tSW5wdXQiLCJMaXN0TWVudU9wdGlvbiIsIkxvYWRlciIsIkxvYWRpbmdUZXh0IiwiTUFJQUJ1dHRvbiIsIk1BSUFFcnJvciIsIk1BSUFJbnB1dCIsIk1BSUFNZXNzYWdlIiwiTWFpYVdyYXBwZXIiLCJNb2RhbEluZm8iLCJOZXh0UGFnZUxvYWRlciIsIk9uYm9hcmRpbmdNb2RhbEJ1dHRvbiIsIlByaW1hcnlCdXR0b24iLCJTZWNvbmRhcnlCdXR0b24iLCJUZXh0QXJlYSIsIlRoaXJkQnV0dG9uIiwiVmlkZW9Nb2RhbCIsIndpdGhBcHBDZmciLCJXaXRoRmVhdHVyZVZhbGlkYXRpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBdG9tc1xuZXhwb3J0IHsgQWN0aW9uYWJsZUJ1dHRvbiB9IGZyb20gJy4vQWN0aW9uYWJsZUJ1dHRvbidcbmV4cG9ydCB7IEF0dGFjaG1lbnRDYXJkIH0gZnJvbSAnLi9BdHRhY2htZW50Q2FyZCdcbmV4cG9ydCB7IEJhY2tkcm9wIH0gZnJvbSAnLi9CYWNrZHJvcCdcbmV4cG9ydCB7IENhcmRNZW51IH0gZnJvbSAnLi9DYXJkTWVudSdcbmV4cG9ydCB7IENoYXREaXNjbGFpbWVyTWVzc2FnZSB9IGZyb20gJy4vQ2hhdERpc2NsYWltZXJNZXNzYWdlJ1xuZXhwb3J0IHsgQ2hpcCB9IGZyb20gJy4vQ2hpcCdcbmV4cG9ydCB7IENsZWFyQnV0dG9uIH0gZnJvbSAnLi9DbGVhckJ1dHRvbidcbmV4cG9ydCB7IENvcHlUb0NsaXBib2FyZCB9IGZyb20gJy4vQ29weVRvQ2xpcGJvYXJkJ1xuZXhwb3J0IHsgRWRpdGFibGVMYWJlbCB9IGZyb20gJy4vRWRpdGFibGVMYWJlbCdcbmV4cG9ydCB7IEV4cGFuZCB9IGZyb20gJy4vRXhwYW5kJ1xuZXhwb3J0IHsgRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIH0gZnJvbSAnLi9GcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMnXG5leHBvcnQgeyBHb0JhY2tCdXR0b24gfSBmcm9tICcuL0dvQmFja0J1dHRvbidcbmV4cG9ydCB7IEhlbHBCdXR0b24gfSBmcm9tICcuL0hlbHBCdXR0b24nXG5leHBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi9JY29uQnV0dG9uJ1xuZXhwb3J0IHsgQ3VzdG9tSW5wdXQgfSBmcm9tICcuL0lucHV0J1xuZXhwb3J0IHsgTGlzdE1lbnVPcHRpb24gfSBmcm9tICcuL0xpc3RNZW51T3B0aW9uJ1xuZXhwb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi9Mb2FkZXInXG5leHBvcnQgeyBMb2FkaW5nVGV4dCB9IGZyb20gJy4vTG9hZGluZ1RleHQnXG5leHBvcnQgeyBNQUlBQnV0dG9uIH0gZnJvbSAnLi9NQUlBQnV0dG9uJ1xuZXhwb3J0IHsgTUFJQUVycm9yIH0gZnJvbSAnLi9NQUlBRXJyb3InXG5leHBvcnQgeyBNQUlBSW5wdXQgfSBmcm9tICcuL01BSUFJbnB1dCdcbmV4cG9ydCB7IE1BSUFNZXNzYWdlIH0gZnJvbSAnLi9NQUlBTWVzc2FnZSdcbmV4cG9ydCB7IE1haWFXcmFwcGVyIH0gZnJvbSAnLi9NYWlhV3JhcHBlcidcbmV4cG9ydCB7IE1vZGFsSW5mbyB9IGZyb20gJy4vTW9kYWxJbmZvJ1xuZXhwb3J0IHsgTmV4dFBhZ2VMb2FkZXIgfSBmcm9tICcuL05leHRQYWdlTG9hZGVyJ1xuZXhwb3J0IHsgT25ib2FyZGluZ01vZGFsQnV0dG9uIH0gZnJvbSAnLi9PbmJvYXJkaW5nTW9kYWxCdXR0b24nXG5leHBvcnQgeyBQcmltYXJ5QnV0dG9uIH0gZnJvbSAnLi9QcmltYXJ5QnV0dG9uJ1xuZXhwb3J0IHsgU2Vjb25kYXJ5QnV0dG9uIH0gZnJvbSAnLi9TZWNvbmRhcnlCdXR0b24nXG5leHBvcnQgeyBUZXh0QXJlYSB9IGZyb20gJy4vVGV4dEFyZWEnXG5leHBvcnQgeyBUaGlyZEJ1dHRvbiB9IGZyb20gJy4vVGhpcmRCdXR0b24nXG5leHBvcnQgeyBWaWRlb01vZGFsIH0gZnJvbSAnLi9WaWRlb01vZGFsJ1xuZXhwb3J0IHsgd2l0aEFwcENmZyB9IGZyb20gJy4vV2l0aEFwcENmZydcbmV4cG9ydCB7IFdpdGhGZWF0dXJlVmFsaWRhdGlvbiB9IGZyb20gJy4vV2l0aEZlYXR1cmVWYWxpZGF0aW9uJ1xuXG4vLyBJY29uc1xuZXhwb3J0ICogZnJvbSAnLi9pY29ucydcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxTQUFTQSxnQkFBZ0IsUUFBUSxvQkFBb0I7QUFDckQsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUNqRCxTQUFTQyxRQUFRLFFBQVEsWUFBWTtBQUNyQyxTQUFTQyxRQUFRLFFBQVEsWUFBWTtBQUNyQyxTQUFTQyxxQkFBcUIsUUFBUSx5QkFBeUI7QUFDL0QsU0FBU0MsSUFBSSxRQUFRLFFBQVE7QUFDN0IsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFDM0MsU0FBU0MsZUFBZSxRQUFRLG1CQUFtQjtBQUNuRCxTQUFTQyxhQUFhLFFBQVEsaUJBQWlCO0FBQy9DLFNBQVNDLE1BQU0sUUFBUSxVQUFVO0FBQ2pDLFNBQVNDLHdCQUF3QixRQUFRLDRCQUE0QjtBQUNyRSxTQUFTQyxZQUFZLFFBQVEsZ0JBQWdCO0FBQzdDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLFdBQVcsUUFBUSxTQUFTO0FBQ3JDLFNBQVNDLGNBQWMsUUFBUSxrQkFBa0I7QUFDakQsU0FBU0MsTUFBTSxRQUFRLFVBQVU7QUFDakMsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFDM0MsU0FBU0MsVUFBVSxRQUFRLGNBQWM7QUFDekMsU0FBU0MsU0FBUyxRQUFRLGFBQWE7QUFDdkMsU0FBU0MsU0FBUyxRQUFRLGFBQWE7QUFDdkMsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFDM0MsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFDM0MsU0FBU0MsU0FBUyxRQUFRLGFBQWE7QUFDdkMsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUNqRCxTQUFTQyxxQkFBcUIsUUFBUSx5QkFBeUI7QUFDL0QsU0FBU0MsYUFBYSxRQUFRLGlCQUFpQjtBQUMvQyxTQUFTQyxlQUFlLFFBQVEsbUJBQW1CO0FBQ25ELFNBQVNDLFFBQVEsUUFBUSxZQUFZO0FBQ3JDLFNBQVNDLFdBQVcsUUFBUSxlQUFlO0FBQzNDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLHFCQUFxQixRQUFRLHlCQUF5Qjs7QUFFL0Q7QUFDQSxjQUFjLFNBQVMiLCJpZ25vcmVMaXN0IjpbXX0=
39
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25hYmxlQnV0dG9uIiwiQXR0YWNobWVudENhcmQiLCJCYWNrZHJvcCIsIkNhcmRNZW51IiwiQ2hhdERpc2NsYWltZXJNZXNzYWdlIiwiQ2hpcCIsIkNsZWFyQnV0dG9uIiwiQ29weVRvQ2xpcGJvYXJkIiwiRWRpdGFibGVMYWJlbCIsIkV4cGFuZCIsIkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsIkdvQmFja0J1dHRvbiIsIkhlbHBCdXR0b24iLCJJY29uQnV0dG9uIiwiQ3VzdG9tSW5wdXQiLCJMaXN0TWVudU9wdGlvbiIsIkxvYWRlciIsIkxvYWRpbmdUZXh0IiwiQWdlbnRBY3Rpdml0eUluZGljYXRvciIsIk1BSUFCdXR0b24iLCJNQUlBRXJyb3IiLCJNQUlBSW5wdXQiLCJNQUlBTWVzc2FnZSIsIk1haWFXcmFwcGVyIiwiTW9kYWxJbmZvIiwiTmV4dFBhZ2VMb2FkZXIiLCJPbmJvYXJkaW5nTW9kYWxCdXR0b24iLCJQcmltYXJ5QnV0dG9uIiwiU2Vjb25kYXJ5QnV0dG9uIiwiVGV4dEFyZWEiLCJUaGlyZEJ1dHRvbiIsIlZpZGVvTW9kYWwiLCJ3aXRoQXBwQ2ZnIiwiV2l0aEZlYXR1cmVWYWxpZGF0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQXRvbXNcbmV4cG9ydCB7IEFjdGlvbmFibGVCdXR0b24gfSBmcm9tICcuL0FjdGlvbmFibGVCdXR0b24nXG5leHBvcnQgeyBBdHRhY2htZW50Q2FyZCB9IGZyb20gJy4vQXR0YWNobWVudENhcmQnXG5leHBvcnQgeyBCYWNrZHJvcCB9IGZyb20gJy4vQmFja2Ryb3AnXG5leHBvcnQgeyBDYXJkTWVudSB9IGZyb20gJy4vQ2FyZE1lbnUnXG5leHBvcnQgeyBDaGF0RGlzY2xhaW1lck1lc3NhZ2UgfSBmcm9tICcuL0NoYXREaXNjbGFpbWVyTWVzc2FnZSdcbmV4cG9ydCB7IENoaXAgfSBmcm9tICcuL0NoaXAnXG5leHBvcnQgeyBDbGVhckJ1dHRvbiB9IGZyb20gJy4vQ2xlYXJCdXR0b24nXG5leHBvcnQgeyBDb3B5VG9DbGlwYm9hcmQgfSBmcm9tICcuL0NvcHlUb0NsaXBib2FyZCdcbmV4cG9ydCB7IEVkaXRhYmxlTGFiZWwgfSBmcm9tICcuL0VkaXRhYmxlTGFiZWwnXG5leHBvcnQgeyBFeHBhbmQgfSBmcm9tICcuL0V4cGFuZCdcbmV4cG9ydCB7IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4vRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zJ1xuZXhwb3J0IHsgR29CYWNrQnV0dG9uIH0gZnJvbSAnLi9Hb0JhY2tCdXR0b24nXG5leHBvcnQgeyBIZWxwQnV0dG9uIH0gZnJvbSAnLi9IZWxwQnV0dG9uJ1xuZXhwb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4vSWNvbkJ1dHRvbidcbmV4cG9ydCB7IEN1c3RvbUlucHV0IH0gZnJvbSAnLi9JbnB1dCdcbmV4cG9ydCB7IExpc3RNZW51T3B0aW9uIH0gZnJvbSAnLi9MaXN0TWVudU9wdGlvbidcbmV4cG9ydCB7IExvYWRlciB9IGZyb20gJy4vTG9hZGVyJ1xuZXhwb3J0IHsgTG9hZGluZ1RleHQgfSBmcm9tICcuL0xvYWRpbmdUZXh0J1xuZXhwb3J0IHsgQWdlbnRBY3Rpdml0eUluZGljYXRvciB9IGZyb20gJy4vQWdlbnRBY3Rpdml0eUluZGljYXRvcidcbmV4cG9ydCB7IE1BSUFCdXR0b24gfSBmcm9tICcuL01BSUFCdXR0b24nXG5leHBvcnQgeyBNQUlBRXJyb3IgfSBmcm9tICcuL01BSUFFcnJvcidcbmV4cG9ydCB7IE1BSUFJbnB1dCB9IGZyb20gJy4vTUFJQUlucHV0J1xuZXhwb3J0IHsgTUFJQU1lc3NhZ2UgfSBmcm9tICcuL01BSUFNZXNzYWdlJ1xuZXhwb3J0IHsgTWFpYVdyYXBwZXIgfSBmcm9tICcuL01haWFXcmFwcGVyJ1xuZXhwb3J0IHsgTW9kYWxJbmZvIH0gZnJvbSAnLi9Nb2RhbEluZm8nXG5leHBvcnQgeyBOZXh0UGFnZUxvYWRlciB9IGZyb20gJy4vTmV4dFBhZ2VMb2FkZXInXG5leHBvcnQgeyBPbmJvYXJkaW5nTW9kYWxCdXR0b24gfSBmcm9tICcuL09uYm9hcmRpbmdNb2RhbEJ1dHRvbidcbmV4cG9ydCB7IFByaW1hcnlCdXR0b24gfSBmcm9tICcuL1ByaW1hcnlCdXR0b24nXG5leHBvcnQgeyBTZWNvbmRhcnlCdXR0b24gfSBmcm9tICcuL1NlY29uZGFyeUJ1dHRvbidcbmV4cG9ydCB7IFRleHRBcmVhIH0gZnJvbSAnLi9UZXh0QXJlYSdcbmV4cG9ydCB7IFRoaXJkQnV0dG9uIH0gZnJvbSAnLi9UaGlyZEJ1dHRvbidcbmV4cG9ydCB7IFZpZGVvTW9kYWwgfSBmcm9tICcuL1ZpZGVvTW9kYWwnXG5leHBvcnQgeyB3aXRoQXBwQ2ZnIH0gZnJvbSAnLi9XaXRoQXBwQ2ZnJ1xuZXhwb3J0IHsgV2l0aEZlYXR1cmVWYWxpZGF0aW9uIH0gZnJvbSAnLi9XaXRoRmVhdHVyZVZhbGlkYXRpb24nXG5cbi8vIEljb25zXG5leHBvcnQgKiBmcm9tICcuL2ljb25zJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLFNBQVNBLGdCQUFnQixRQUFRLG9CQUFvQjtBQUNyRCxTQUFTQyxjQUFjLFFBQVEsa0JBQWtCO0FBQ2pELFNBQVNDLFFBQVEsUUFBUSxZQUFZO0FBQ3JDLFNBQVNDLFFBQVEsUUFBUSxZQUFZO0FBQ3JDLFNBQVNDLHFCQUFxQixRQUFRLHlCQUF5QjtBQUMvRCxTQUFTQyxJQUFJLFFBQVEsUUFBUTtBQUM3QixTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQUMzQyxTQUFTQyxlQUFlLFFBQVEsbUJBQW1CO0FBQ25ELFNBQVNDLGFBQWEsUUFBUSxpQkFBaUI7QUFDL0MsU0FBU0MsTUFBTSxRQUFRLFVBQVU7QUFDakMsU0FBU0Msd0JBQXdCLFFBQVEsNEJBQTRCO0FBQ3JFLFNBQVNDLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsVUFBVSxRQUFRLGNBQWM7QUFDekMsU0FBU0MsVUFBVSxRQUFRLGNBQWM7QUFDekMsU0FBU0MsV0FBVyxRQUFRLFNBQVM7QUFDckMsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUNqRCxTQUFTQyxNQUFNLFFBQVEsVUFBVTtBQUNqQyxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQUMzQyxTQUFTQyxzQkFBc0IsUUFBUSwwQkFBMEI7QUFDakUsU0FBU0MsVUFBVSxRQUFRLGNBQWM7QUFDekMsU0FBU0MsU0FBUyxRQUFRLGFBQWE7QUFDdkMsU0FBU0MsU0FBUyxRQUFRLGFBQWE7QUFDdkMsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFDM0MsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFDM0MsU0FBU0MsU0FBUyxRQUFRLGFBQWE7QUFDdkMsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUNqRCxTQUFTQyxxQkFBcUIsUUFBUSx5QkFBeUI7QUFDL0QsU0FBU0MsYUFBYSxRQUFRLGlCQUFpQjtBQUMvQyxTQUFTQyxlQUFlLFFBQVEsbUJBQW1CO0FBQ25ELFNBQVNDLFFBQVEsUUFBUSxZQUFZO0FBQ3JDLFNBQVNDLFdBQVcsUUFBUSxlQUFlO0FBQzNDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLHFCQUFxQixRQUFRLHlCQUF5Qjs7QUFFL0Q7QUFDQSxjQUFjLFNBQVMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -40,16 +40,19 @@ export var ChatAIHome = function ChatAIHome(_ref) {
40
40
  var faqsAccess = true;
41
41
  var showProjectSummary = !!(isMAIA && summaryProjectAccess);
42
42
  var isMaiaker = (agent === null || agent === void 0 ? void 0 : agent.entity) === 'global' && /(maiaker|marketplace)/i.test((agent === null || agent === void 0 ? void 0 : agent.name) || '');
43
- var _useFrequentlyUsedAct = useFrequentlyUsedActions(isMaiaker ? undefined : agent === null || agent === void 0 ? void 0 : agent.id, section),
43
+ // FUA y FAQ solo aplican a agentes clone (los custom no las tienen habilitadas por ahora).
44
+ // Maiaker (clone global) queda excluido como antes.
45
+ var homeListsAgentId = isMAIA && !isMaiaker ? agent === null || agent === void 0 ? void 0 : agent.id : undefined;
46
+ var _useFrequentlyUsedAct = useFrequentlyUsedActions(homeListsAgentId, section),
44
47
  agentFuas = _useFrequentlyUsedAct.actions,
45
48
  fuasLoading = _useFrequentlyUsedAct.loading;
46
- var _useFrequentlyAskedQu = useFrequentlyAskedQuestions(isMaiaker ? undefined : agent === null || agent === void 0 ? void 0 : agent.id, lang),
49
+ var _useFrequentlyAskedQu = useFrequentlyAskedQuestions(homeListsAgentId, lang),
47
50
  agentFaqs = _useFrequentlyAskedQu.faqs,
48
51
  faqsLoading = _useFrequentlyAskedQu.loading,
49
52
  handleGetFrequentlyAskedQuestions = _useFrequentlyAskedQu.handleGetFrequentlyAskedQuestions;
50
53
  var faqsFetchRef = useRef(null);
51
54
  useEffect(function () {
52
- if (isMaiaker || section === 'task' || !(agent !== null && agent !== void 0 && agent.id)) return;
55
+ if (!isMAIA || isMaiaker || section === 'task' || !(agent !== null && agent !== void 0 && agent.id)) return;
53
56
  var currentKey = "".concat(agent.id, "-").concat(lang);
54
57
  var lastKey = faqsFetchRef.current ? "".concat(faqsFetchRef.current.agentId, "-").concat(faqsFetchRef.current.lang) : null;
55
58
  if (currentKey !== lastKey) {
@@ -236,4 +239,4 @@ export var ChatAIHome = function ChatAIHome(_ref) {
236
239
  })]
237
240
  });
238
241
  };
239
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJTcGlubmVyTG90dGllIiwidXNlVCIsIlNDQ0FJSG9tZUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNvbnRlbnQiLCJTQ0NBSUhvbWVDb250ZW50SW5uZXIiLCJTQ0NBSUhvbWVHcmFkaWVudFRvcCIsIlNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tIiwiU0NDQUlIb21lSGVhZGVyIiwiU0NDQUlIb21lR3JlZXRpbmciLCJTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIiLCJTQ0NBSUhvbWVBZ2VudEluZm8iLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudCIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGUiLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uIiwiU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QiLCJTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24iLCJTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0IiwiU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUiLCJTQ0NBSUhvbWVJY29uQ29udGFpbmVyIiwiU0NDQUlIb21lTG9nb1dyYXBwZXIiLCJTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2siLCJTQ0NBSUhvbWVEeW5hbWljU2VjdGlvbiIsIlNDQ0FJSG9tZUxvYWRpbmdPdmVybGF5IiwidXNlR2xvYmFsQ29udGV4dCIsInZhbGlkYXRlSXNNYWlhIiwiRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwiRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwiTUFJQUlzb2xvZ28iLCJUZW1wbGF0ZUdyYWRpZW50SWNvbiIsIkNoYXRBSUhvbWVNYWlha2VyIiwianN4cyIsIl9qc3hzIiwianN4IiwiX2pzeCIsIkZyZXF1ZW50UXVlc3Rpb25zIiwiQ2hhdEFJSG9tZSIsIl9yZWYiLCJoYW5kbGVycyIsIm9uU3RhcnRDaGF0IiwiZXhwYW5kZWQiLCJmbG9hdGluZyIsIl91c2VUIiwidCIsImkxOG4iLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50Iiwic2VjdGlvbiIsImlzTUFJQSIsImZsb2F0aW5nQ3VzdG9tQ2VudGVyIiwidHlwZSIsImxhbmciLCJsYW5ndWFnZSIsInN1bW1hcnlQcm9qZWN0QWNjZXNzIiwid2luZG93IiwiU3RyaW5nIiwiTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MiLCJ0b0xvd2VyQ2FzZSIsIm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcyIsImZhcXNBY2Nlc3MiLCJzaG93UHJvamVjdFN1bW1hcnkiLCJpc01haWFrZXIiLCJlbnRpdHkiLCJ0ZXN0IiwibmFtZSIsIl91c2VGcmVxdWVudGx5VXNlZEFjdCIsInVuZGVmaW5lZCIsImlkIiwiYWdlbnRGdWFzIiwiYWN0aW9ucyIsImZ1YXNMb2FkaW5nIiwibG9hZGluZyIsIl91c2VGcmVxdWVudGx5QXNrZWRRdSIsImFnZW50RmFxcyIsImZhcXMiLCJmYXFzTG9hZGluZyIsImhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsImZhcXNGZXRjaFJlZiIsImN1cnJlbnRLZXkiLCJjb25jYXQiLCJsYXN0S2V5IiwiY3VycmVudCIsImFnZW50SWQiLCJoYXNGYXFzQ29udGVudCIsImxlbmd0aCIsImhhc0Z1YXNDb250ZW50IiwiaGFzQW55SG9tZUxpc3RDb250ZW50IiwiaXNGZXRjaGluZ0hvbWVMaXN0cyIsInNob3dIb21lTG9hZGluZ092ZXJsYXkiLCJzaG93UHJvamVjdFN1bW1hcnlDYXJkIiwic2hvd0ZBUXMiLCJob21lU2Nyb2xsYWJsZUxheW91dCIsInNob3dEeW5hbWljU2VjdGlvbiIsImNvbnRlbnRDb250YWluZXJSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzaG93VG9wR3JhZGllbnQiLCJzZXRTaG93VG9wR3JhZGllbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dCb3R0b21HcmFkaWVudCIsInNldFNob3dCb3R0b21HcmFkaWVudCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNTY3JvbGxpbmciLCJzZXRJc1Njcm9sbGluZyIsInNjcm9sbFRpbWVvdXRSZWYiLCJncmVldGluZyIsImludHJvIiwiaW50cm9kdWN0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwiY2hlY2tTY3JvbGwiLCJjb250YWluZXIiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc1Njcm9sbGFibGUiLCJpc0F0VG9wIiwiaXNBdEJvdHRvbSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJhZGRFdmVudExpc3RlbmVyIiwidGltZW91dElkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlckhlYWRlckNvbnRlbnQiLCJfYWdlbnQkY3JlYXRlZF9ieSIsIl9hZ2VudCRjcmVhdGVkX2J5MiIsImNoaWxkcmVuIiwiZW1vamkiLCJjcmVhdGVkX2J5IiwidGl0bGUiLCJpc19kZWxldGVkIiwiJG5vR2FwIiwiJHNob3ciLCJyZWYiLCIkaXNBZ2VudFZpZXciLCIkZmxvYXRpbmdDdXN0b21DZW50ZXIiLCIkZ2FwIiwiJG1heFdpZHRoIiwib25DbGljayIsInByb2plY3RTdW1tYXJ5IiwiaGVpZ2h0Iiwid2lkdGgiLCIkZmlsbCIsInNpemUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJSG9tZS9DaGF0QUlIb21lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IFNwaW5uZXJMb3R0aWUgfSBmcm9tICdAcHJvamVjdGNvci9jb3ItY29tbW9ucy9saWIvY29tcG9uZW50cy9zcGlubmVyLWxvdHRpZS9TcGlubmVyTG90dGllJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5cbmltcG9ydCB7IG9wdGlvbnMgfSBmcm9tICcuLi9DaGF0QUlNb2RhbC9jb25zdGFudHMnXG5cbmltcG9ydCB7XG4gIFNDQ0FJSG9tZUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ29udGVudCxcbiAgU0NDQUlIb21lQ29udGVudElubmVyLFxuICBTQ0NBSUhvbWVHcmFkaWVudFRvcCxcbiAgU0NDQUlIb21lR3JhZGllbnRCb3R0b20sXG4gIFNDQ0FJSG9tZUhlYWRlcixcbiAgU0NDQUlIb21lR3JlZXRpbmcsXG4gIFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcixcbiAgU0NDQUlIb21lQWdlbnRJbmZvLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uLFxuICBTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCxcbiAgU0NDQUlIb21lSW50cm9kdWN0aW9uLFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lLFxuICBTQ0NBSUhvbWVJY29uQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVMb2dvV3JhcHBlcixcbiAgU0NDQUlIb21lTWFpYUhlYWRlclN0YWNrLFxuICBTQ0NBSUhvbWVEeW5hbWljU2VjdGlvbixcbiAgU0NDQUlIb21lTG9hZGluZ092ZXJsYXksXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIH0gZnJvbSAnLi4vLi4vYXRvbXMvRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zJ1xuaW1wb3J0IHsgRnJlcXVlbnRseVVzZWRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vYXRvbXMvRnJlcXVlbnRseVVzZWRBY3Rpb25zJ1xuaW1wb3J0IHsgdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zJ1xuaW1wb3J0IHsgdXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9NQUlBSXNvbG9nbydcbmltcG9ydCB7IFRlbXBsYXRlR3JhZGllbnRJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvVGVtcGxhdGVHcmFkaWVudEljb24nXG5pbXBvcnQgeyBDaGF0QUlIb21lTWFpYWtlciB9IGZyb20gJy4vQ2hhdEFJSG9tZU1haWFrZXInXG5cbnR5cGUgQ2hhdEFJSG9tZVByb3BzID0ge1xuICBvblN0YXJ0Q2hhdDogKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIG1lbnRpb25zPzogbnVsbCxcbiAgICBmdWFJZD86IHN0cmluZ1xuICApID0+IHZvaWRcbiAgaGFuZGxlcnM6IFJlY29yZDxvcHRpb25zLCAoKSA9PiB2b2lkPlxuICBleHBhbmRlZD86IGJvb2xlYW5cbiAgZmxvYXRpbmc/OiBib29sZWFuXG59XG5cbmV4cG9ydCBlbnVtIEZyZXF1ZW50UXVlc3Rpb25zIHtcbiAgcmVudGFiaWxpZGFkX3Byb3llY3RvID0gJ3JlbnRhYmlsaWRhZF9wcm95ZWN0bycsXG4gIGF2YW5jZV9wcm95ZWN0byA9ICdhdmFuY2VfcHJveWVjdG8nLFxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJSG9tZSA9ICh7IGhhbmRsZXJzLCBvblN0YXJ0Q2hhdCwgZXhwYW5kZWQsIGZsb2F0aW5nIH06IENoYXRBSUhvbWVQcm9wcykgPT4ge1xuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVQoKVxuICBjb25zdCB7IGFnZW50LCBzZWN0aW9uIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcblxuICBjb25zdCBpc01BSUEgPSB2YWxpZGF0ZUlzTWFpYShhZ2VudCBhcyBBZ2VudClcbiAgY29uc3QgZmxvYXRpbmdDdXN0b21DZW50ZXIgPSAhIShmbG9hdGluZyAmJiBhZ2VudD8udHlwZSA9PT0gJ2N1c3RvbScpXG4gIGNvbnN0IGxhbmcgPSBpMThuLmxhbmd1YWdlID09PSAnYnInID8gJ3B0JyA6IGkxOG4ubGFuZ3VhZ2VcblxuICBjb25zdCBzdW1tYXJ5UHJvamVjdEFjY2VzcyA9XG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAoU3RyaW5nKHdpbmRvdy5NQUlBX1BST0pFQ1RfU1VNTUFSWV9GRUFUVVJFX0FDQ0VTUykudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnIHx8XG4gICAgICBTdHJpbmcod2luZG93Lm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcykudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKVxuICBjb25zdCBmYXFzQWNjZXNzID0gdHJ1ZVxuICBjb25zdCBzaG93UHJvamVjdFN1bW1hcnkgPSAhIShpc01BSUEgJiYgc3VtbWFyeVByb2plY3RBY2Nlc3MpXG4gIGNvbnN0IGlzTWFpYWtlciA9IGFnZW50Py5lbnRpdHkgPT09ICdnbG9iYWwnICYmIC8obWFpYWtlcnxtYXJrZXRwbGFjZSkvaS50ZXN0KGFnZW50Py5uYW1lIHx8ICcnKVxuICBjb25zdCB7IGFjdGlvbnM6IGFnZW50RnVhcywgbG9hZGluZzogZnVhc0xvYWRpbmcgfSA9IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyhcbiAgICBpc01haWFrZXIgPyB1bmRlZmluZWQgOiBhZ2VudD8uaWQsXG4gICAgc2VjdGlvblxuICApXG4gIGNvbnN0IHtcbiAgICBmYXFzOiBhZ2VudEZhcXMsXG4gICAgbG9hZGluZzogZmFxc0xvYWRpbmcsXG4gICAgaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zLFxuICB9ID0gdXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zKGlzTWFpYWtlciA/IHVuZGVmaW5lZCA6IGFnZW50Py5pZCwgbGFuZylcbiAgY29uc3QgZmFxc0ZldGNoUmVmID0gdXNlUmVmPHsgYWdlbnRJZDogc3RyaW5nOyBsYW5nOiBzdHJpbmcgfSB8IG51bGw+KG51bGwpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzTWFpYWtlciB8fCBzZWN0aW9uID09PSAndGFzaycgfHwgIWFnZW50Py5pZCkgcmV0dXJuXG4gICAgY29uc3QgY3VycmVudEtleSA9IGAke2FnZW50LmlkfS0ke2xhbmd9YFxuICAgIGNvbnN0IGxhc3RLZXkgPSBmYXFzRmV0Y2hSZWYuY3VycmVudCA/IGAke2ZhcXNGZXRjaFJlZi5jdXJyZW50LmFnZW50SWR9LSR7ZmFxc0ZldGNoUmVmLmN1cnJlbnQubGFuZ31gIDogbnVsbFxuICAgIGlmIChjdXJyZW50S2V5ICE9PSBsYXN0S2V5KSB7XG4gICAgICBmYXFzRmV0Y2hSZWYuY3VycmVudCA9IHsgYWdlbnRJZDogYWdlbnQuaWQsIGxhbmcgfVxuICAgICAgaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zKHsgYWdlbnRJZDogYWdlbnQuaWQsIGxhbmcgfSlcbiAgICB9XG4gIH0sIFtpc01haWFrZXIsIHNlY3Rpb24sIGFnZW50Py5pZCwgbGFuZywgaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zXSlcblxuICBjb25zdCBoYXNGYXFzQ29udGVudCA9ICFpc01haWFrZXIgJiYgc2VjdGlvbiAhPT0gJ3Rhc2snICYmIGZhcXNBY2Nlc3MgJiYgYWdlbnRGYXFzLmxlbmd0aCA+IDBcbiAgY29uc3QgaGFzRnVhc0NvbnRlbnQgPSAhaXNNYWlha2VyICYmIGFnZW50RnVhcy5sZW5ndGggPiAwXG4gIGNvbnN0IGhhc0FueUhvbWVMaXN0Q29udGVudCA9IGhhc0ZhcXNDb250ZW50IHx8IGhhc0Z1YXNDb250ZW50XG4gIGNvbnN0IGlzRmV0Y2hpbmdIb21lTGlzdHMgPVxuICAgICFpc01haWFrZXIgJiZcbiAgICAoKHNlY3Rpb24gIT09ICd0YXNrJyAmJiBmYXFzQWNjZXNzICYmIGZhcXNMb2FkaW5nICYmIGFnZW50RmFxcy5sZW5ndGggPT09IDApIHx8XG4gICAgICAoZnVhc0xvYWRpbmcgJiYgYWdlbnRGdWFzLmxlbmd0aCA9PT0gMCkpXG4gIGNvbnN0IHNob3dIb21lTG9hZGluZ092ZXJsYXkgPSBpc01BSUEgJiYgIWhhc0FueUhvbWVMaXN0Q29udGVudCAmJiBpc0ZldGNoaW5nSG9tZUxpc3RzXG5cbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCA9IHNob3dQcm9qZWN0U3VtbWFyeSAmJiBhZ2VudD8uZW50aXR5ID09PSAncHJvamVjdCdcbiAgY29uc3Qgc2hvd0ZBUXMgPSAhIShoYXNBbnlIb21lTGlzdENvbnRlbnQgfHwgc2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCB8fCBpc01haWFrZXIpXG4gIGNvbnN0IGhvbWVTY3JvbGxhYmxlTGF5b3V0ID0gc2hvd0ZBUXNcbiAgY29uc3Qgc2hvd0R5bmFtaWNTZWN0aW9uID0gaGFzQW55SG9tZUxpc3RDb250ZW50IHx8IHNob3dIb21lTG9hZGluZ092ZXJsYXkgfHwgaXNNYWlha2VyXG5cbiAgLy8gTMOzZ2ljYSBkZWwgc2Nyb2xsIGNvbiBncmFkaWVudGVzXG4gIGNvbnN0IGNvbnRlbnRDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IFtzaG93VG9wR3JhZGllbnQsIHNldFNob3dUb3BHcmFkaWVudF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3Nob3dCb3R0b21HcmFkaWVudCwgc2V0U2hvd0JvdHRvbUdyYWRpZW50XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNTY3JvbGxpbmcsIHNldElzU2Nyb2xsaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBzY3JvbGxUaW1lb3V0UmVmID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbD4obnVsbClcblxuICAvLyBTYWx1ZG8gYWxlYXRvcmlvIGRlc2RlIGFnZW50LmludHJvZHVjdGlvbiAoYXJyYXkgY29uIDMgdmFyaWFudGVzIGRlbCBiYWNrKS4gRW4gdGFzaywgbWVuc2FqZSBmaWpvIGkxOG4uIE1haWFrZXIgc2luIGludHJvIGRlbCBhZ2VudGUuXG4gIGNvbnN0IGdyZWV0aW5nID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzTWFpYWtlcikgcmV0dXJuICcnXG4gICAgaWYgKHNlY3Rpb24gPT09ICd0YXNrJykgcmV0dXJuIHQoJ2hvbWVNZW51LnRhc2tHcmVldGluZycpXG4gICAgY29uc3QgaW50cm8gPSBhZ2VudD8uaW50cm9kdWN0aW9uXG4gICAgaWYgKCFpbnRybykgcmV0dXJuICcnXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW50cm8pICYmIGludHJvLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBpbnRyb1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBpbnRyby5sZW5ndGgpXVxuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGludHJvID09PSAnc3RyaW5nJyA/IGludHJvIDogJydcbiAgfSwgW2FnZW50Py5pZCwgYWdlbnQ/LmludHJvZHVjdGlvbiwgc2VjdGlvbiwgaXNNYWlha2VyLCB0XSlcblxuICBjb25zdCBjaGVja1Njcm9sbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXIgPSBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhaG9tZVNjcm9sbGFibGVMYXlvdXQpIHJldHVyblxuXG4gICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcbiAgICBjb25zdCBpc1Njcm9sbGFibGUgPSBzY3JvbGxIZWlnaHQgPiBjbGllbnRIZWlnaHRcbiAgICBjb25zdCBpc0F0VG9wID0gc2Nyb2xsVG9wID09PSAwXG4gICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxXG5cbiAgICBzZXRTaG93VG9wR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0VG9wKVxuICAgIHNldFNob3dCb3R0b21HcmFkaWVudChpc1Njcm9sbGFibGUgJiYgIWlzQXRCb3R0b20pXG4gICAgc2V0SXNTY3JvbGxpbmcodHJ1ZSlcblxuICAgIGlmIChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgfVxuXG4gICAgc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRJc1Njcm9sbGluZyhmYWxzZSlcbiAgICB9LCAxNTApXG4gIH0sIFtob21lU2Nyb2xsYWJsZUxheW91dF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWhvbWVTY3JvbGxhYmxlTGF5b3V0KSB7XG4gICAgICBzZXRTaG93VG9wR3JhZGllbnQoZmFsc2UpXG4gICAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjaGVja1Njcm9sbCgpXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsKVxuXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dChjaGVja1Njcm9sbCwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbaG9tZVNjcm9sbGFibGVMYXlvdXQsIGNoZWNrU2Nyb2xsXSlcblxuICBjb25zdCByZW5kZXJIZWFkZXJDb250ZW50ID0gKCkgPT4ge1xuICAgIGlmICghaXNNQUlBKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyPlxuICAgICAgICAgIDxTQ0NBSUhvbWVBZ2VudEluZm8+XG4gICAgICAgICAgICB7YWdlbnQ/LmVtb2ppfSB7YWdlbnQ/Lm5hbWV9XG4gICAgICAgICAgPC9TQ0NBSUhvbWVBZ2VudEluZm8+XG4gICAgICAgICAge2FnZW50Py5jcmVhdGVkX2J5ICYmICFpc01BSUEgJiYgKFxuICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0aXRsZT17XG4gICAgICAgICAgICAgICAgICBhZ2VudD8uY3JlYXRlZF9ieT8uaXNfZGVsZXRlZCA/IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXBEZWxldGVkJykgOiB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwJylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5VGV4dD5cbiAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5jcmVhdGVkQnknKX17JyAnfVxuICAgICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lPnthZ2VudD8uY3JlYXRlZF9ieT8ubmFtZX08L1NDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lPlxuICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dD5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXI+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2sgJG5vR2FwPXshZ3JlZXRpbmd9PlxuICAgICAgICA8U0NDQUlIb21lSWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICA8U0NDQUlIb21lTG9nb1dyYXBwZXI+XG4gICAgICAgICAgICA8TUFJQUlzb2xvZ28gLz5cbiAgICAgICAgICA8L1NDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICA8L1NDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgIHtncmVldGluZyA/IDxTQ0NBSUhvbWVHcmVldGluZz57Z3JlZXRpbmd9PC9TQ0NBSUhvbWVHcmVldGluZz4gOiBudWxsfVxuICAgICAgPC9TQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2s+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlIb21lQ29udGFpbmVyIHNob3dGQVFzPXtzaG93RkFRc30+XG4gICAgICB7aG9tZVNjcm9sbGFibGVMYXlvdXQgJiYgPFNDQ0FJSG9tZUdyYWRpZW50VG9wICRzaG93PXtzaG93VG9wR3JhZGllbnR9IC8+fVxuICAgICAgPFNDQ0FJSG9tZUNvbnRlbnRcbiAgICAgICAgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfVxuICAgICAgICBzaG93RkFRcz17aG9tZVNjcm9sbGFibGVMYXlvdXR9XG4gICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgJGZsb2F0aW5nQ3VzdG9tQ2VudGVyPXtmbG9hdGluZ0N1c3RvbUNlbnRlcn1cbiAgICAgID5cbiAgICAgICAgPFNDQ0FJSG9tZUNvbnRlbnRJbm5lclxuICAgICAgICAgIHNob3dGQVFzPXtob21lU2Nyb2xsYWJsZUxheW91dH1cbiAgICAgICAgICAkaXNBZ2VudFZpZXc9eyFpc01BSUF9XG4gICAgICAgICAgJGZsb2F0aW5nQ3VzdG9tQ2VudGVyPXtmbG9hdGluZ0N1c3RvbUNlbnRlcn1cbiAgICAgICAgPlxuICAgICAgICAgIDxTQ0NBSUhvbWVIZWFkZXJcbiAgICAgICAgICAgICRnYXA9e2lzTUFJQSAmJiBzZWN0aW9uICE9PSAncHJvamVjdCcgPyAnOHB4JyA6ICcyMHB4J31cbiAgICAgICAgICAgICRtYXhXaWR0aD17aXNNQUlBID8gJzEwMCUnIDogJzM4MHB4J31cbiAgICAgICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVuZGVySGVhZGVyQ29udGVudCgpfVxuXG4gICAgICAgICAgICB7c2VjdGlvbiAhPT0gJ3Byb2plY3QnICYmIChcbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZUludHJvZHVjdGlvbiBleHBhbmRlZD17ZXhwYW5kZWR9PnshaXNNQUlBICYmIGFnZW50Py5pbnRyb2R1Y3Rpb259PC9TQ0NBSUhvbWVJbnRyb2R1Y3Rpb24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lSGVhZGVyPlxuICAgICAgICAgIHtzaG93UHJvamVjdFN1bW1hcnlDYXJkICYmIChcbiAgICAgICAgICAgIDxTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCBvbkNsaWNrPXtoYW5kbGVycy5wcm9qZWN0U3VtbWFyeX0+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeT5cbiAgICAgICAgICAgICAgICA8VGVtcGxhdGVHcmFkaWVudEljb24gaGVpZ2h0PXsyNH0gd2lkdGg9ezI0fSAvPlxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50PlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlPnt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS50aXRsZScpfTwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS5kZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgICAgICA8L1NDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0PlxuICAgICAgICAgICl9XG4gICAgICAgICAge3Nob3dEeW5hbWljU2VjdGlvbiAmJiAoXG4gICAgICAgICAgICA8U0NDQUlIb21lRHluYW1pY1NlY3Rpb24gJGZpbGw9e2lzTWFpYWtlcn0+XG4gICAgICAgICAgICAgIHtzaG93SG9tZUxvYWRpbmdPdmVybGF5ICYmIChcbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lTG9hZGluZ092ZXJsYXkgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICA8U3Bpbm5lckxvdHRpZSBzaXplPXs0OH0gLz5cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZUxvYWRpbmdPdmVybGF5PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7aGFzRmFxc0NvbnRlbnQgJiYgKFxuICAgICAgICAgICAgICAgIDxGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNcbiAgICAgICAgICAgICAgICAgIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH1cbiAgICAgICAgICAgICAgICAgIHNob3dGQVFzPXtzaG93RkFRc31cbiAgICAgICAgICAgICAgICAgIHNob3dQcm9qZWN0U3VtbWFyeT17c2hvd1Byb2plY3RTdW1tYXJ5fVxuICAgICAgICAgICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICAgICAgbGFuZz17bGFuZ31cbiAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgIGZhcXM9e2FnZW50RmFxc31cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtoYXNGdWFzQ29udGVudCAmJiAoXG4gICAgICAgICAgICAgICAgPEZyZXF1ZW50bHlVc2VkQWN0aW9uc1xuICAgICAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgICAgICAgYWN0aW9ucz17YWdlbnRGdWFzfVxuICAgICAgICAgICAgICAgICAgbG9hZGluZz17ZmFsc2V9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAge2lzTWFpYWtlciA/IDxDaGF0QUlIb21lTWFpYWtlciBvblN0YXJ0Q2hhdD17b25TdGFydENoYXR9IC8+IDogbnVsbH1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lRHluYW1pY1NlY3Rpb24+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0NBSUhvbWVDb250ZW50SW5uZXI+XG4gICAgICA8L1NDQ0FJSG9tZUNvbnRlbnQ+XG4gICAgICB7aG9tZVNjcm9sbGFibGVMYXlvdXQgJiYgPFNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tICRzaG93PXtzaG93Qm90dG9tR3JhZGllbnR9IC8+fVxuICAgIDwvU0NDQUlIb21lQ29udGFpbmVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBRXpFLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsYUFBYSxRQUFRLHFFQUFxRTtBQUNuRyxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBSTFDLFNBQ0VDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLEVBQ2hCQyxxQkFBcUIsRUFDckJDLG9CQUFv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
242
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJTcGlubmVyTG90dGllIiwidXNlVCIsIlNDQ0FJSG9tZUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNvbnRlbnQiLCJTQ0NBSUhvbWVDb250ZW50SW5uZXIiLCJTQ0NBSUhvbWVHcmFkaWVudFRvcCIsIlNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tIiwiU0NDQUlIb21lSGVhZGVyIiwiU0NDQUlIb21lR3JlZXRpbmciLCJTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIiLCJTQ0NBSUhvbWVBZ2VudEluZm8iLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudCIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGUiLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uIiwiU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QiLCJTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24iLCJTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0IiwiU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUiLCJTQ0NBSUhvbWVJY29uQ29udGFpbmVyIiwiU0NDQUlIb21lTG9nb1dyYXBwZXIiLCJTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2siLCJTQ0NBSUhvbWVEeW5hbWljU2VjdGlvbiIsIlNDQ0FJSG9tZUxvYWRpbmdPdmVybGF5IiwidXNlR2xvYmFsQ29udGV4dCIsInZhbGlkYXRlSXNNYWlhIiwiRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwiRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwiTUFJQUlzb2xvZ28iLCJUZW1wbGF0ZUdyYWRpZW50SWNvbiIsIkNoYXRBSUhvbWVNYWlha2VyIiwianN4cyIsIl9qc3hzIiwianN4IiwiX2pzeCIsIkZyZXF1ZW50UXVlc3Rpb25zIiwiQ2hhdEFJSG9tZSIsIl9yZWYiLCJoYW5kbGVycyIsIm9uU3RhcnRDaGF0IiwiZXhwYW5kZWQiLCJmbG9hdGluZyIsIl91c2VUIiwidCIsImkxOG4iLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50Iiwic2VjdGlvbiIsImlzTUFJQSIsImZsb2F0aW5nQ3VzdG9tQ2VudGVyIiwidHlwZSIsImxhbmciLCJsYW5ndWFnZSIsInN1bW1hcnlQcm9qZWN0QWNjZXNzIiwid2luZG93IiwiU3RyaW5nIiwiTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MiLCJ0b0xvd2VyQ2FzZSIsIm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcyIsImZhcXNBY2Nlc3MiLCJzaG93UHJvamVjdFN1bW1hcnkiLCJpc01haWFrZXIiLCJlbnRpdHkiLCJ0ZXN0IiwibmFtZSIsImhvbWVMaXN0c0FnZW50SWQiLCJpZCIsInVuZGVmaW5lZCIsIl91c2VGcmVxdWVudGx5VXNlZEFjdCIsImFnZW50RnVhcyIsImFjdGlvbnMiLCJmdWFzTG9hZGluZyIsImxvYWRpbmciLCJfdXNlRnJlcXVlbnRseUFza2VkUXUiLCJhZ2VudEZhcXMiLCJmYXFzIiwiZmFxc0xvYWRpbmciLCJoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMiLCJmYXFzRmV0Y2hSZWYiLCJjdXJyZW50S2V5IiwiY29uY2F0IiwibGFzdEtleSIsImN1cnJlbnQiLCJhZ2VudElkIiwiaGFzRmFxc0NvbnRlbnQiLCJsZW5ndGgiLCJoYXNGdWFzQ29udGVudCIsImhhc0FueUhvbWVMaXN0Q29udGVudCIsImlzRmV0Y2hpbmdIb21lTGlzdHMiLCJzaG93SG9tZUxvYWRpbmdPdmVybGF5Iiwic2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCIsInNob3dGQVFzIiwiaG9tZVNjcm9sbGFibGVMYXlvdXQiLCJzaG93RHluYW1pY1NlY3Rpb24iLCJjb250ZW50Q29udGFpbmVyUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2hvd1RvcEdyYWRpZW50Iiwic2V0U2hvd1RvcEdyYWRpZW50IiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzaG93Qm90dG9tR3JhZGllbnQiLCJzZXRTaG93Qm90dG9tR3JhZGllbnQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzU2Nyb2xsaW5nIiwic2V0SXNTY3JvbGxpbmciLCJzY3JvbGxUaW1lb3V0UmVmIiwiZ3JlZXRpbmciLCJpbnRybyIsImludHJvZHVjdGlvbiIsIkFycmF5IiwiaXNBcnJheSIsIk1hdGgiLCJmbG9vciIsInJhbmRvbSIsImNoZWNrU2Nyb2xsIiwiY29udGFpbmVyIiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiaXNTY3JvbGxhYmxlIiwiaXNBdFRvcCIsImlzQXRCb3R0b20iLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0IiwiYWRkRXZlbnRMaXN0ZW5lciIsInRpbWVvdXRJZCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXJIZWFkZXJDb250ZW50IiwiX2FnZW50JGNyZWF0ZWRfYnkiLCJfYWdlbnQkY3JlYXRlZF9ieTIiLCJjaGlsZHJlbiIsImVtb2ppIiwiY3JlYXRlZF9ieSIsInRpdGxlIiwiaXNfZGVsZXRlZCIsIiRub0dhcCIsIiRzaG93IiwicmVmIiwiJGlzQWdlbnRWaWV3IiwiJGZsb2F0aW5nQ3VzdG9tQ2VudGVyIiwiJGdhcCIsIiRtYXhXaWR0aCIsIm9uQ2xpY2siLCJwcm9qZWN0U3VtbWFyeSIsImhlaWdodCIsIndpZHRoIiwiJGZpbGwiLCJzaXplIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSUhvbWUvQ2hhdEFJSG9tZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyBTcGlubmVyTG90dGllIH0gZnJvbSAnQHByb2plY3Rjb3IvY29yLWNvbW1vbnMvbGliL2NvbXBvbmVudHMvc3Bpbm5lci1sb3R0aWUvU3Bpbm5lckxvdHRpZSdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuXG5pbXBvcnQgeyBvcHRpb25zIH0gZnJvbSAnLi4vQ2hhdEFJTW9kYWwvY29uc3RhbnRzJ1xuXG5pbXBvcnQge1xuICBTQ0NBSUhvbWVDb250YWluZXIsXG4gIFNDQ0FJSG9tZUNvbnRlbnQsXG4gIFNDQ0FJSG9tZUNvbnRlbnRJbm5lcixcbiAgU0NDQUlIb21lR3JhZGllbnRUb3AsXG4gIFNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tLFxuICBTQ0NBSUhvbWVIZWFkZXIsXG4gIFNDQ0FJSG9tZUdyZWV0aW5nLFxuICBTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIsXG4gIFNDQ0FJSG9tZUFnZW50SW5mbyxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnksXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudCxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbixcbiAgU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QsXG4gIFNDQ0FJSG9tZUludHJvZHVjdGlvbixcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyLFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0LFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSxcbiAgU0NDQUlIb21lSWNvbkNvbnRhaW5lcixcbiAgU0NDQUlIb21lTG9nb1dyYXBwZXIsXG4gIFNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayxcbiAgU0NDQUlIb21lRHluYW1pY1NlY3Rpb24sXG4gIFNDQ0FJSG9tZUxvYWRpbmdPdmVybGF5LFxufSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uL2F0b21zL0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7IEZyZXF1ZW50bHlVc2VkQWN0aW9ucyB9IGZyb20gJy4uLy4uL2F0b21zL0ZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB7IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB7IHVzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7IE1BSUFJc29sb2dvIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvTUFJQUlzb2xvZ28nXG5pbXBvcnQgeyBUZW1wbGF0ZUdyYWRpZW50SWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL1RlbXBsYXRlR3JhZGllbnRJY29uJ1xuaW1wb3J0IHsgQ2hhdEFJSG9tZU1haWFrZXIgfSBmcm9tICcuL0NoYXRBSUhvbWVNYWlha2VyJ1xuXG50eXBlIENoYXRBSUhvbWVQcm9wcyA9IHtcbiAgb25TdGFydENoYXQ6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdIHwgbnVsbCxcbiAgICBmYXFJZD86IHN0cmluZyxcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICBtZW50aW9ucz86IG51bGwsXG4gICAgZnVhSWQ/OiBzdHJpbmdcbiAgKSA9PiB2b2lkXG4gIGhhbmRsZXJzOiBSZWNvcmQ8b3B0aW9ucywgKCkgPT4gdm9pZD5cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG4gIGZsb2F0aW5nPzogYm9vbGVhblxufVxuXG5leHBvcnQgZW51bSBGcmVxdWVudFF1ZXN0aW9ucyB7XG4gIHJlbnRhYmlsaWRhZF9wcm95ZWN0byA9ICdyZW50YWJpbGlkYWRfcHJveWVjdG8nLFxuICBhdmFuY2VfcHJveWVjdG8gPSAnYXZhbmNlX3Byb3llY3RvJyxcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSUhvbWUgPSAoeyBoYW5kbGVycywgb25TdGFydENoYXQsIGV4cGFuZGVkLCBmbG9hdGluZyB9OiBDaGF0QUlIb21lUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgeyBhZ2VudCwgc2VjdGlvbiB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgY29uc3QgaXNNQUlBID0gdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG4gIGNvbnN0IGZsb2F0aW5nQ3VzdG9tQ2VudGVyID0gISEoZmxvYXRpbmcgJiYgYWdlbnQ/LnR5cGUgPT09ICdjdXN0b20nKVxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdCcgOiBpMThuLmxhbmd1YWdlXG5cbiAgY29uc3Qgc3VtbWFyeVByb2plY3RBY2Nlc3MgPVxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgKFN0cmluZyh3aW5kb3cuTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyB8fFxuICAgICAgU3RyaW5nKHdpbmRvdy5tYWlhUHJvamVjdFN1bW1hcnlBY2Nlc3MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJylcbiAgY29uc3QgZmFxc0FjY2VzcyA9IHRydWVcbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5ID0gISEoaXNNQUlBICYmIHN1bW1hcnlQcm9qZWN0QWNjZXNzKVxuICBjb25zdCBpc01haWFrZXIgPSBhZ2VudD8uZW50aXR5ID09PSAnZ2xvYmFsJyAmJiAvKG1haWFrZXJ8bWFya2V0cGxhY2UpL2kudGVzdChhZ2VudD8ubmFtZSB8fCAnJylcbiAgLy8gRlVBIHkgRkFRIHNvbG8gYXBsaWNhbiBhIGFnZW50ZXMgY2xvbmUgKGxvcyBjdXN0b20gbm8gbGFzIHRpZW5lbiBoYWJpbGl0YWRhcyBwb3IgYWhvcmEpLlxuICAvLyBNYWlha2VyIChjbG9uZSBnbG9iYWwpIHF1ZWRhIGV4Y2x1aWRvIGNvbW8gYW50ZXMuXG4gIGNvbnN0IGhvbWVMaXN0c0FnZW50SWQgPSBpc01BSUEgJiYgIWlzTWFpYWtlciA/IGFnZW50Py5pZCA6IHVuZGVmaW5lZFxuICBjb25zdCB7IGFjdGlvbnM6IGFnZW50RnVhcywgbG9hZGluZzogZnVhc0xvYWRpbmcgfSA9IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyhob21lTGlzdHNBZ2VudElkLCBzZWN0aW9uKVxuICBjb25zdCB7XG4gICAgZmFxczogYWdlbnRGYXFzLFxuICAgIGxvYWRpbmc6IGZhcXNMb2FkaW5nLFxuICAgIGhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyxcbiAgfSA9IHVzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyhob21lTGlzdHNBZ2VudElkLCBsYW5nKVxuICBjb25zdCBmYXFzRmV0Y2hSZWYgPSB1c2VSZWY8eyBhZ2VudElkOiBzdHJpbmc7IGxhbmc6IHN0cmluZyB9IHwgbnVsbD4obnVsbClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzTUFJQSB8fCBpc01haWFrZXIgfHwgc2VjdGlvbiA9PT0gJ3Rhc2snIHx8ICFhZ2VudD8uaWQpIHJldHVyblxuICAgIGNvbnN0IGN1cnJlbnRLZXkgPSBgJHthZ2VudC5pZH0tJHtsYW5nfWBcbiAgICBjb25zdCBsYXN0S2V5ID0gZmFxc0ZldGNoUmVmLmN1cnJlbnQgPyBgJHtmYXFzRmV0Y2hSZWYuY3VycmVudC5hZ2VudElkfS0ke2ZhcXNGZXRjaFJlZi5jdXJyZW50Lmxhbmd9YCA6IG51bGxcbiAgICBpZiAoY3VycmVudEtleSAhPT0gbGFzdEtleSkge1xuICAgICAgZmFxc0ZldGNoUmVmLmN1cnJlbnQgPSB7IGFnZW50SWQ6IGFnZW50LmlkLCBsYW5nIH1cbiAgICAgIGhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyh7IGFnZW50SWQ6IGFnZW50LmlkLCBsYW5nIH0pXG4gICAgfVxuICB9LCBbaXNNYWlha2VyLCBzZWN0aW9uLCBhZ2VudD8uaWQsIGxhbmcsIGhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc10pXG5cbiAgY29uc3QgaGFzRmFxc0NvbnRlbnQgPSAhaXNNYWlha2VyICYmIHNlY3Rpb24gIT09ICd0YXNrJyAmJiBmYXFzQWNjZXNzICYmIGFnZW50RmFxcy5sZW5ndGggPiAwXG4gIGNvbnN0IGhhc0Z1YXNDb250ZW50ID0gIWlzTWFpYWtlciAmJiBhZ2VudEZ1YXMubGVuZ3RoID4gMFxuICBjb25zdCBoYXNBbnlIb21lTGlzdENvbnRlbnQgPSBoYXNGYXFzQ29udGVudCB8fCBoYXNGdWFzQ29udGVudFxuICBjb25zdCBpc0ZldGNoaW5nSG9tZUxpc3RzID1cbiAgICAhaXNNYWlha2VyICYmXG4gICAgKChzZWN0aW9uICE9PSAndGFzaycgJiYgZmFxc0FjY2VzcyAmJiBmYXFzTG9hZGluZyAmJiBhZ2VudEZhcXMubGVuZ3RoID09PSAwKSB8fFxuICAgICAgKGZ1YXNMb2FkaW5nICYmIGFnZW50RnVhcy5sZW5ndGggPT09IDApKVxuICBjb25zdCBzaG93SG9tZUxvYWRpbmdPdmVybGF5ID0gaXNNQUlBICYmICFoYXNBbnlIb21lTGlzdENvbnRlbnQgJiYgaXNGZXRjaGluZ0hvbWVMaXN0c1xuXG4gIGNvbnN0IHNob3dQcm9qZWN0U3VtbWFyeUNhcmQgPSBzaG93UHJvamVjdFN1bW1hcnkgJiYgYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnXG4gIGNvbnN0IHNob3dGQVFzID0gISEoaGFzQW55SG9tZUxpc3RDb250ZW50IHx8IHNob3dQcm9qZWN0U3VtbWFyeUNhcmQgfHwgaXNNYWlha2VyKVxuICBjb25zdCBob21lU2Nyb2xsYWJsZUxheW91dCA9IHNob3dGQVFzXG4gIGNvbnN0IHNob3dEeW5hbWljU2VjdGlvbiA9IGhhc0FueUhvbWVMaXN0Q29udGVudCB8fCBzaG93SG9tZUxvYWRpbmdPdmVybGF5IHx8IGlzTWFpYWtlclxuXG4gIC8vIEzDs2dpY2EgZGVsIHNjcm9sbCBjb24gZ3JhZGllbnRlc1xuICBjb25zdCBjb250ZW50Q29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd1RvcEdyYWRpZW50LCBzZXRTaG93VG9wR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzaG93Qm90dG9tR3JhZGllbnQsIHNldFNob3dCb3R0b21HcmFkaWVudF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzU2Nyb2xsaW5nLCBzZXRJc1Njcm9sbGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGltZW91dFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG5cbiAgLy8gU2FsdWRvIGFsZWF0b3JpbyBkZXNkZSBhZ2VudC5pbnRyb2R1Y3Rpb24gKGFycmF5IGNvbiAzIHZhcmlhbnRlcyBkZWwgYmFjaykuIEVuIHRhc2ssIG1lbnNhamUgZmlqbyBpMThuLiBNYWlha2VyIHNpbiBpbnRybyBkZWwgYWdlbnRlLlxuICBjb25zdCBncmVldGluZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc01haWFrZXIpIHJldHVybiAnJ1xuICAgIGlmIChzZWN0aW9uID09PSAndGFzaycpIHJldHVybiB0KCdob21lTWVudS50YXNrR3JlZXRpbmcnKVxuICAgIGNvbnN0IGludHJvID0gYWdlbnQ/LmludHJvZHVjdGlvblxuICAgIGlmICghaW50cm8pIHJldHVybiAnJ1xuICAgIGlmIChBcnJheS5pc0FycmF5KGludHJvKSAmJiBpbnRyby5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaW50cm9bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaW50cm8ubGVuZ3RoKV1cbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiBpbnRybyA9PT0gJ3N0cmluZycgPyBpbnRybyA6ICcnXG4gIH0sIFthZ2VudD8uaWQsIGFnZW50Py5pbnRyb2R1Y3Rpb24sIHNlY3Rpb24sIGlzTWFpYWtlciwgdF0pXG5cbiAgY29uc3QgY2hlY2tTY3JvbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIgfHwgIWhvbWVTY3JvbGxhYmxlTGF5b3V0KSByZXR1cm5cblxuICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgY29uc3QgaXNTY3JvbGxhYmxlID0gc2Nyb2xsSGVpZ2h0ID4gY2xpZW50SGVpZ2h0XG4gICAgY29uc3QgaXNBdFRvcCA9IHNjcm9sbFRvcCA9PT0gMFxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQgPj0gc2Nyb2xsSGVpZ2h0IC0gMVxuXG4gICAgc2V0U2hvd1RvcEdyYWRpZW50KGlzU2Nyb2xsYWJsZSAmJiAhaXNBdFRvcClcbiAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0Qm90dG9tKVxuICAgIHNldElzU2Nyb2xsaW5nKHRydWUpXG5cbiAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgIH1cblxuICAgIHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0SXNTY3JvbGxpbmcoZmFsc2UpXG4gICAgfSwgMTUwKVxuICB9LCBbaG9tZVNjcm9sbGFibGVMYXlvdXRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFob21lU2Nyb2xsYWJsZUxheW91dCkge1xuICAgICAgc2V0U2hvd1RvcEdyYWRpZW50KGZhbHNlKVxuICAgICAgc2V0U2hvd0JvdHRvbUdyYWRpZW50KGZhbHNlKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudFxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY2hlY2tTY3JvbGwoKVxuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcblxuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoY2hlY2tTY3JvbGwsIDEwMClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgY2hlY2tTY3JvbGwpXG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICAgICAgaWYgKHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCkge1xuICAgICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2hvbWVTY3JvbGxhYmxlTGF5b3V0LCBjaGVja1Njcm9sbF0pXG5cbiAgY29uc3QgcmVuZGVySGVhZGVyQ29udGVudCA9ICgpID0+IHtcbiAgICBpZiAoIWlzTUFJQSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgICAgICA8U0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgICAge2FnZW50Py5lbW9qaX0ge2FnZW50Py5uYW1lfVxuICAgICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgIHthZ2VudD8uY3JlYXRlZF9ieSAmJiAhaXNNQUlBICYmIChcbiAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICAgICAgYWdlbnQ/LmNyZWF0ZWRfYnk/LmlzX2RlbGV0ZWQgPyB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwRGVsZXRlZCcpIDogdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcCcpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUuY3JlYXRlZEJ5Jyl9eycgJ31cbiAgICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT57YWdlbnQ/LmNyZWF0ZWRfYnk/Lm5hbWV9PC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT5cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDwvU0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlIb21lTWFpYUhlYWRlclN0YWNrICRub0dhcD17IWdyZWV0aW5nfT5cbiAgICAgICAgPFNDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICAgICAgPE1BSUFJc29sb2dvIC8+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVMb2dvV3JhcHBlcj5cbiAgICAgICAgPC9TQ0NBSUhvbWVJY29uQ29udGFpbmVyPlxuICAgICAgICB7Z3JlZXRpbmcgPyA8U0NDQUlIb21lR3JlZXRpbmc+e2dyZWV0aW5nfTwvU0NDQUlIb21lR3JlZXRpbmc+IDogbnVsbH1cbiAgICAgIDwvU0NDQUlIb21lTWFpYUhlYWRlclN0YWNrPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJSG9tZUNvbnRhaW5lciBzaG93RkFRcz17c2hvd0ZBUXN9PlxuICAgICAge2hvbWVTY3JvbGxhYmxlTGF5b3V0ICYmIDxTQ0NBSUhvbWVHcmFkaWVudFRvcCAkc2hvdz17c2hvd1RvcEdyYWRpZW50fSAvPn1cbiAgICAgIDxTQ0NBSUhvbWVDb250ZW50XG4gICAgICAgIHJlZj17Y29udGVudENvbnRhaW5lclJlZn1cbiAgICAgICAgc2hvd0ZBUXM9e2hvbWVTY3JvbGxhYmxlTGF5b3V0fVxuICAgICAgICAkaXNBZ2VudFZpZXc9eyFpc01BSUF9XG4gICAgICAgICRmbG9hdGluZ0N1c3RvbUNlbnRlcj17ZmxvYXRpbmdDdXN0b21DZW50ZXJ9XG4gICAgICA+XG4gICAgICAgIDxTQ0NBSUhvbWVDb250ZW50SW5uZXJcbiAgICAgICAgICBzaG93RkFRcz17aG9tZVNjcm9sbGFibGVMYXlvdXR9XG4gICAgICAgICAgJGlzQWdlbnRWaWV3PXshaXNNQUlBfVxuICAgICAgICAgICRmbG9hdGluZ0N1c3RvbUNlbnRlcj17ZmxvYXRpbmdDdXN0b21DZW50ZXJ9XG4gICAgICAgID5cbiAgICAgICAgICA8U0NDQUlIb21lSGVhZGVyXG4gICAgICAgICAgICAkZ2FwPXtpc01BSUEgJiYgc2VjdGlvbiAhPT0gJ3Byb2plY3QnID8gJzhweCcgOiAnMjBweCd9XG4gICAgICAgICAgICAkbWF4V2lkdGg9e2lzTUFJQSA/ICcxMDAlJyA6ICczODBweCd9XG4gICAgICAgICAgICAkaXNBZ2VudFZpZXc9eyFpc01BSUF9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3JlbmRlckhlYWRlckNvbnRlbnQoKX1cblxuICAgICAgICAgICAge3NlY3Rpb24gIT09ICdwcm9qZWN0JyAmJiAoXG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24gZXhwYW5kZWQ9e2V4cGFuZGVkfT57IWlzTUFJQSAmJiBhZ2VudD8uaW50cm9kdWN0aW9ufTwvU0NDQUlIb21lSW50cm9kdWN0aW9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDQ0FJSG9tZUhlYWRlcj5cbiAgICAgICAgICB7c2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCAmJiAoXG4gICAgICAgICAgICA8U0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3Qgb25DbGljaz17aGFuZGxlcnMucHJvamVjdFN1bW1hcnl9PlxuICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnk+XG4gICAgICAgICAgICAgICAgPFRlbXBsYXRlR3JhZGllbnRJY29uIGhlaWdodD17MjR9IHdpZHRoPXsyNH0gLz5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeT5cbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudD5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT57dCgnaG9tZU1lbnUucHJvamVjdFN1bW1hcnkudGl0bGUnKX08L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUucHJvamVjdFN1bW1hcnkuZGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50PlxuICAgICAgICAgICAgPC9TQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtzaG93RHluYW1pY1NlY3Rpb24gJiYgKFxuICAgICAgICAgICAgPFNDQ0FJSG9tZUR5bmFtaWNTZWN0aW9uICRmaWxsPXtpc01haWFrZXJ9PlxuICAgICAgICAgICAgICB7c2hvd0hvbWVMb2FkaW5nT3ZlcmxheSAmJiAoXG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUxvYWRpbmdPdmVybGF5IGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgPFNwaW5uZXJMb3R0aWUgc2l6ZT17NDh9IC8+XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVMb2FkaW5nT3ZlcmxheT5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAge2hhc0ZhcXNDb250ZW50ICYmIChcbiAgICAgICAgICAgICAgICA8RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zXG4gICAgICAgICAgICAgICAgICBvblN0YXJ0Q2hhdD17b25TdGFydENoYXR9XG4gICAgICAgICAgICAgICAgICBzaG93RkFRcz17c2hvd0ZBUXN9XG4gICAgICAgICAgICAgICAgICBzaG93UHJvamVjdFN1bW1hcnk9e3Nob3dQcm9qZWN0U3VtbWFyeX1cbiAgICAgICAgICAgICAgICAgIGFnZW50SWQ9e2FnZW50Py5pZH1cbiAgICAgICAgICAgICAgICAgIGxhbmc9e2xhbmd9XG4gICAgICAgICAgICAgICAgICBpc1Njcm9sbGluZz17aXNTY3JvbGxpbmd9XG4gICAgICAgICAgICAgICAgICBmYXFzPXthZ2VudEZhcXN9XG4gICAgICAgICAgICAgICAgICBsb2FkaW5nPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7aGFzRnVhc0NvbnRlbnQgJiYgKFxuICAgICAgICAgICAgICAgIDxGcmVxdWVudGx5VXNlZEFjdGlvbnNcbiAgICAgICAgICAgICAgICAgIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH1cbiAgICAgICAgICAgICAgICAgIGFnZW50SWQ9e2FnZW50Py5pZH1cbiAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgIGFjdGlvbnM9e2FnZW50RnVhc31cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtpc01haWFrZXIgPyA8Q2hhdEFJSG9tZU1haWFrZXIgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fSAvPiA6IG51bGx9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUR5bmFtaWNTZWN0aW9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NDQUlIb21lQ29udGVudElubmVyPlxuICAgICAgPC9TQ0NBSUhvbWVDb250ZW50PlxuICAgICAge2hvbWVTY3JvbGxhYmxlTGF5b3V0ICYmIDxTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSAkc2hvdz17c2hvd0JvdHRvbUdyYWRpZW50fSAvPn1cbiAgICA8L1NDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0Es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