@coralogix/rum-cli 1.1.2 → 1.1.3

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 (39) hide show
  1. package/README.md +1 -1
  2. package/api/rum-api.ts +3 -3
  3. package/dist/api/rum-api.d.ts +1 -1
  4. package/dist/api/rum-api.js +2 -2
  5. package/dist/proto-models/com/coralogix/rum/v2/audit_log.js +62 -0
  6. package/dist/proto-models/com/coralogix/rum/v2/chunk.js +330 -0
  7. package/dist/proto-models/com/coralogix/rum/v2/file.js +140 -0
  8. package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +233 -0
  9. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +181 -0
  10. package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.js +277 -0
  11. package/dist/proto-models/google/protobuf/descriptor.js +3612 -0
  12. package/dist/services/source-maps/source-maps.service.js +2 -2
  13. package/dist/services/source-maps/utils/traverse-folder.util.d.ts +1 -1
  14. package/dist/services/source-maps/utils/traverse-folder.util.js +1 -1
  15. package/generate-protos.sh +3 -3
  16. package/package.json +2 -2
  17. package/services/source-maps/source-maps.service.ts +1 -1
  18. package/services/source-maps/utils/traverse-folder.util.ts +2 -2
  19. package/dist/src/app/proto-models/com/coralogix/rum/v2/audit_log.js +0 -62
  20. package/dist/src/app/proto-models/com/coralogix/rum/v2/chunk.js +0 -330
  21. package/dist/src/app/proto-models/com/coralogix/rum/v2/file.js +0 -140
  22. package/dist/src/app/proto-models/com/coralogix/rum/v2/rum_service.js +0 -233
  23. package/dist/src/app/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +0 -181
  24. package/dist/src/app/proto-models/com/coralogix/rum/v2/source_code_file_mapping.js +0 -277
  25. package/dist/src/app/proto-models/google/protobuf/descriptor.js +0 -3612
  26. /package/dist/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/audit_log.d.ts +0 -0
  27. /package/dist/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/chunk.d.ts +0 -0
  28. /package/dist/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/file.d.ts +0 -0
  29. /package/dist/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/rum_service.d.ts +0 -0
  30. /package/dist/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/rum_source_map_service.d.ts +0 -0
  31. /package/dist/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/source_code_file_mapping.d.ts +0 -0
  32. /package/dist/{src/app/proto-models → proto-models}/google/protobuf/descriptor.d.ts +0 -0
  33. /package/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/audit_log.ts +0 -0
  34. /package/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/chunk.ts +0 -0
  35. /package/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/file.ts +0 -0
  36. /package/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/rum_service.ts +0 -0
  37. /package/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/rum_source_map_service.ts +0 -0
  38. /package/{src/app/proto-models → proto-models}/com/coralogix/rum/v2/source_code_file_mapping.ts +0 -0
  39. /package/{src/app/proto-models → proto-models}/google/protobuf/descriptor.ts +0 -0
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.SourceMapsService = void 0;
13
- const rum_source_map_service_1 = require("../../src/app/proto-models/com/coralogix/rum/v2/rum_source_map_service");
13
+ const rum_source_map_service_1 = require("../../proto-models/com/coralogix/rum/v2/rum_source_map_service");
14
14
  const traverse_folder_util_1 = require("./utils/traverse-folder.util");
15
15
  const rum_api_1 = require("../../api/rum-api");
16
16
  const theme_1 = require("../../cli/theme");
@@ -39,4 +39,4 @@ class SourceMapsService {
39
39
  }
40
40
  }
41
41
  exports.SourceMapsService = SourceMapsService;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLW1hcHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NlcnZpY2VzL3NvdXJjZS1tYXBzL3NvdXJjZS1tYXBzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsbUhBQStHO0FBQy9HLHVFQUE0RDtBQUM1RCwrQ0FBeUM7QUFDekMsMkNBQW1FO0FBRW5FLE1BQWEsaUJBQWlCO0lBQzFCLE1BQU0sQ0FBTyxNQUFNLENBQUMsV0FBbUIsRUFBRSxTQUFpQixFQUFFLFFBQWdCLEVBQUUsVUFBa0IsRUFBRSxPQUFlLEVBQUUsVUFBa0IsRUFBRSxHQUFXLEVBQUUsVUFBa0I7O1lBQ2xLLE1BQU0sT0FBTyxHQUFHLGdEQUF1QixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRWpELE9BQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBRXZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQVUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1lBRXZELElBQUk7Z0JBQ0EsTUFBTSxJQUFBLHFDQUFjLEVBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUUxQyxNQUFNLGdCQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFFeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBVyxFQUFFLHNDQUFzQyxDQUFDLENBQUM7Z0JBQ2pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQVcsRUFBRSxrQ0FBa0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFXLEVBQUUsd0JBQXdCLENBQUMsQ0FBQzthQUN0RDtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQVMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO2dCQUM5QyxPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDbkM7UUFDTCxDQUFDO0tBQUE7Q0FDSjtBQXpCRCw4Q0F5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1VwbG9hZFNvdXJjZU1hcHNSZXF1ZXN0fSBmcm9tIFwiLi4vLi4vc3JjL2FwcC9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvcnVtX3NvdXJjZV9tYXBfc2VydmljZVwiO1xuaW1wb3J0IHt0cmF2ZXJzZUZvbGRlcn0gZnJvbSBcIi4vdXRpbHMvdHJhdmVyc2UtZm9sZGVyLnV0aWxcIjtcbmltcG9ydCB7UnVtQXBpfSBmcm9tIFwiLi4vLi4vYXBpL3J1bS1hcGlcIjtcbmltcG9ydCB7R1JBWV9DT0xPUiwgR1JFRU5fQ09MT1IsIFJFRF9DT0xPUn0gZnJvbSBcIi4uLy4uL2NsaS90aGVtZVwiO1xuXG5leHBvcnQgY2xhc3MgU291cmNlTWFwc1NlcnZpY2Uge1xuICAgIHN0YXRpYyBhc3luYyB1cGxvYWQoYXBwbGljYXRpb246IHN0cmluZywgcmVsZWFzZUlkOiBzdHJpbmcsIHJlcG9OYW1lOiBzdHJpbmcsIGNvbW1pdEhhc2g6IHN0cmluZywgb3JnTmFtZTogc3RyaW5nLCBmb2xkZXJQYXRoOiBzdHJpbmcsIGVudjogc3RyaW5nLCBwcml2YXRlS2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IFVwbG9hZFNvdXJjZU1hcHNSZXF1ZXN0LmNyZWF0ZSgpO1xuXG4gICAgICAgIHJlcXVlc3QuYXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbjtcbiAgICAgICAgcmVxdWVzdC5yZWxlYXNlSWQgPSByZWxlYXNlSWQ7XG4gICAgICAgIHJlcXVlc3QucmVwb05hbWUgPSByZXBvTmFtZTtcbiAgICAgICAgcmVxdWVzdC5jb21taXRIYXNoID0gY29tbWl0SGFzaDtcbiAgICAgICAgcmVxdWVzdC51c2VyID0gb3JnTmFtZTtcblxuICAgICAgICBjb25zb2xlLmxvZyhHUkFZX0NPTE9SLCAn8J+agCBVcGxvYWRpbmcgc291cmNlIG1hcHMuLi4nKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdHJhdmVyc2VGb2xkZXIoZm9sZGVyUGF0aCwgcmVxdWVzdCk7XG5cbiAgICAgICAgICAgIGF3YWl0IFJ1bUFwaS51cGxvYWRTb3VyY2VNYXBzKHJlcXVlc3QsIGVudiwgcHJpdmF0ZUtleSk7XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEdSRUVOX0NPTE9SLCAn4pyFIFNvdXJjZSBtYXBzIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEdSRUVOX0NPTE9SLCBg4pyFIFRvdGFsIGNodW5rIGZpbGVzIHByb2Nlc3NlZDogJHtyZXF1ZXN0LmZpbGVzLmxlbmd0aH1gKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEdSRUVOX0NPTE9SLCAn4pyFIFByb2Nlc3NpbmcgY29tcGxldGUuJyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhSRURfQ09MT1IsICfinYwgQW4gZXJyb3Igb2NjdXJyZWQnKTtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoUkVEX0NPTE9SLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG59Il19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLW1hcHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NlcnZpY2VzL3NvdXJjZS1tYXBzL3NvdXJjZS1tYXBzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMkdBQXVHO0FBQ3ZHLHVFQUE0RDtBQUM1RCwrQ0FBeUM7QUFDekMsMkNBQW1FO0FBRW5FLE1BQWEsaUJBQWlCO0lBQzFCLE1BQU0sQ0FBTyxNQUFNLENBQUMsV0FBbUIsRUFBRSxTQUFpQixFQUFFLFFBQWdCLEVBQUUsVUFBa0IsRUFBRSxPQUFlLEVBQUUsVUFBa0IsRUFBRSxHQUFXLEVBQUUsVUFBa0I7O1lBQ2xLLE1BQU0sT0FBTyxHQUFHLGdEQUF1QixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRWpELE9BQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBRXZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQVUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1lBRXZELElBQUk7Z0JBQ0EsTUFBTSxJQUFBLHFDQUFjLEVBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUUxQyxNQUFNLGdCQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFFeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBVyxFQUFFLHNDQUFzQyxDQUFDLENBQUM7Z0JBQ2pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQVcsRUFBRSxrQ0FBa0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFXLEVBQUUsd0JBQXdCLENBQUMsQ0FBQzthQUN0RDtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQVMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO2dCQUM5QyxPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDbkM7UUFDTCxDQUFDO0tBQUE7Q0FDSjtBQXpCRCw4Q0F5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1VwbG9hZFNvdXJjZU1hcHNSZXF1ZXN0fSBmcm9tIFwiLi4vLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvcnVtL3YyL3J1bV9zb3VyY2VfbWFwX3NlcnZpY2VcIjtcbmltcG9ydCB7dHJhdmVyc2VGb2xkZXJ9IGZyb20gXCIuL3V0aWxzL3RyYXZlcnNlLWZvbGRlci51dGlsXCI7XG5pbXBvcnQge1J1bUFwaX0gZnJvbSBcIi4uLy4uL2FwaS9ydW0tYXBpXCI7XG5pbXBvcnQge0dSQVlfQ09MT1IsIEdSRUVOX0NPTE9SLCBSRURfQ09MT1J9IGZyb20gXCIuLi8uLi9jbGkvdGhlbWVcIjtcblxuZXhwb3J0IGNsYXNzIFNvdXJjZU1hcHNTZXJ2aWNlIHtcbiAgICBzdGF0aWMgYXN5bmMgdXBsb2FkKGFwcGxpY2F0aW9uOiBzdHJpbmcsIHJlbGVhc2VJZDogc3RyaW5nLCByZXBvTmFtZTogc3RyaW5nLCBjb21taXRIYXNoOiBzdHJpbmcsIG9yZ05hbWU6IHN0cmluZywgZm9sZGVyUGF0aDogc3RyaW5nLCBlbnY6IHN0cmluZywgcHJpdmF0ZUtleTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdC5jcmVhdGUoKTtcblxuICAgICAgICByZXF1ZXN0LmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb247XG4gICAgICAgIHJlcXVlc3QucmVsZWFzZUlkID0gcmVsZWFzZUlkO1xuICAgICAgICByZXF1ZXN0LnJlcG9OYW1lID0gcmVwb05hbWU7XG4gICAgICAgIHJlcXVlc3QuY29tbWl0SGFzaCA9IGNvbW1pdEhhc2g7XG4gICAgICAgIHJlcXVlc3QudXNlciA9IG9yZ05hbWU7XG5cbiAgICAgICAgY29uc29sZS5sb2coR1JBWV9DT0xPUiwgJ/CfmoAgVXBsb2FkaW5nIHNvdXJjZSBtYXBzLi4uJyk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRyYXZlcnNlRm9sZGVyKGZvbGRlclBhdGgsIHJlcXVlc3QpO1xuXG4gICAgICAgICAgICBhd2FpdCBSdW1BcGkudXBsb2FkU291cmNlTWFwcyhyZXF1ZXN0LCBlbnYsIHByaXZhdGVLZXkpO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgJ+KchSBTb3VyY2UgbWFwcyB1cGxvYWRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgYOKchSBUb3RhbCBjaHVuayBmaWxlcyBwcm9jZXNzZWQ6ICR7cmVxdWVzdC5maWxlcy5sZW5ndGh9YCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgJ+KchSBQcm9jZXNzaW5nIGNvbXBsZXRlLicpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5sb2coUkVEX0NPTE9SLCAn4p2MIEFuIGVycm9yIG9jY3VycmVkJyk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFJFRF9DT0xPUiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ==
@@ -1,2 +1,2 @@
1
- import { UploadSourceMapsRequest } from "../../../src/app/proto-models/com/coralogix/rum/v2/rum_source_map_service";
1
+ import { UploadSourceMapsRequest } from "../../../proto-models/com/coralogix/rum/v2/rum_source_map_service";
2
2
  export declare const traverseFolder: (folderPath: string, request: UploadSourceMapsRequest) => Promise<void>;
@@ -39,4 +39,4 @@ const getFileMetadata = (filePath) => __awaiter(void 0, void 0, void 0, function
39
39
  const content = yield readFile(filePath);
40
40
  return { chunkName: name, size, content };
41
41
  });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhdmVyc2UtZm9sZGVyLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zb3VyY2UtbWFwcy91dGlscy90cmF2ZXJzZS1mb2xkZXIudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQkFBa0Q7QUFDbEQsZ0RBQXdCO0FBSXhCLE1BQU0sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBQyxHQUFHLGFBQVUsQ0FBQztBQUV0QyxNQUFNLGNBQWMsR0FBRyxDQUFPLFVBQWtCLEVBQUUsT0FBZ0MsRUFBaUIsRUFBRTtJQUN4RyxNQUFNLEtBQUssR0FBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXJDLE9BQU8sS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUNqQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEMsTUFBTSxPQUFPLEdBQWEsTUFBTSxPQUFPLENBQUMsV0FBWSxFQUFFLEVBQUMsYUFBYSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFFN0UsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBTyxJQUFZLEVBQUUsRUFBRTtZQUNqRCxNQUFNLEVBQUMsSUFBSSxFQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLE1BQU0sU0FBUyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsV0FBcUIsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUvRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFFekMsSUFBSSxZQUFZO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0tBQ1A7QUFDTCxDQUFDLENBQUEsQ0FBQTtBQWpCWSxRQUFBLGNBQWMsa0JBaUIxQjtBQUVELE1BQU0sZUFBZSxHQUFHLENBQU8sUUFBZ0IsRUFBeUIsRUFBRTtJQUN0RSxNQUFNLEVBQUMsSUFBSSxFQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLGNBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFekMsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlbnQsIHByb21pc2VzIGFzIGZzUHJvbWlzZXN9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7RmlsZU1ldGFkYXRhfSBmcm9tIFwiLi4vLi4vLi4vc3JjL2FwcC9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvZmlsZVwiO1xuaW1wb3J0IHtVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdH0gZnJvbSBcIi4uLy4uLy4uL3NyYy9hcHAvcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvcnVtL3YyL3J1bV9zb3VyY2VfbWFwX3NlcnZpY2VcIjtcblxuY29uc3Qge3JlYWRkaXIsIHN0YXQsIHJlYWRGaWxlfSA9IGZzUHJvbWlzZXM7XG5cbmV4cG9ydCBjb25zdCB0cmF2ZXJzZUZvbGRlciA9IGFzeW5jIChmb2xkZXJQYXRoOiBzdHJpbmcsIHJlcXVlc3Q6IFVwbG9hZFNvdXJjZU1hcHNSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3Qgc3RhY2s6IHN0cmluZ1tdID0gW2ZvbGRlclBhdGhdO1xuXG4gICAgd2hpbGUgKHN0YWNrLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBjdXJyZW50UGF0aCA9IHN0YWNrLnBvcCgpO1xuICAgICAgICBjb25zdCBlbnRyaWVzOiBEaXJlbnRbXSA9IGF3YWl0IHJlYWRkaXIoY3VycmVudFBhdGghLCB7d2l0aEZpbGVUeXBlczogdHJ1ZX0pO1xuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGVudHJpZXMubWFwKGFzeW5jIChmaWxlOiBEaXJlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHtuYW1lfSA9IGZpbGU7XG4gICAgICAgICAgICBjb25zdCBlbnRyeVBhdGggPSBwYXRoLmpvaW4oY3VycmVudFBhdGggYXMgc3RyaW5nLCBuYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGlzRG90TWFwRmlsZSA9IGZpbGUuaXNGaWxlKCkgJiYgbmFtZS5lbmRzV2l0aCgnLmpzLm1hcCcpO1xuXG4gICAgICAgICAgICBpZiAoZmlsZS5pc0RpcmVjdG9yeSgpKSBzdGFjay5wdXNoKGVudHJ5UGF0aCk7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKGlzRG90TWFwRmlsZSkgcmVxdWVzdC5maWxlcy5wdXNoKGF3YWl0IGdldEZpbGVNZXRhZGF0YShlbnRyeVBhdGgpKTtcbiAgICAgICAgfSkpO1xuICAgIH1cbn1cblxuY29uc3QgZ2V0RmlsZU1ldGFkYXRhID0gYXN5bmMgKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPEZpbGVNZXRhZGF0YT4gPT4ge1xuICAgIGNvbnN0IHtzaXplfSA9IGF3YWl0IHN0YXQoZmlsZVBhdGgpO1xuICAgIGNvbnN0IHtuYW1lfSA9IHBhdGgucGFyc2UoZmlsZVBhdGgpO1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShmaWxlUGF0aCk7XG5cbiAgICByZXR1cm4ge2NodW5rTmFtZTogbmFtZSwgc2l6ZSwgY29udGVudH07XG59XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhdmVyc2UtZm9sZGVyLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zb3VyY2UtbWFwcy91dGlscy90cmF2ZXJzZS1mb2xkZXIudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQkFBa0Q7QUFDbEQsZ0RBQXdCO0FBSXhCLE1BQU0sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBQyxHQUFHLGFBQVUsQ0FBQztBQUV0QyxNQUFNLGNBQWMsR0FBRyxDQUFPLFVBQWtCLEVBQUUsT0FBZ0MsRUFBaUIsRUFBRTtJQUN4RyxNQUFNLEtBQUssR0FBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXJDLE9BQU8sS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUNqQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEMsTUFBTSxPQUFPLEdBQWEsTUFBTSxPQUFPLENBQUMsV0FBWSxFQUFFLEVBQUMsYUFBYSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFFN0UsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBTyxJQUFZLEVBQUUsRUFBRTtZQUNqRCxNQUFNLEVBQUMsSUFBSSxFQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLE1BQU0sU0FBUyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsV0FBcUIsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUvRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFFekMsSUFBSSxZQUFZO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0tBQ1A7QUFDTCxDQUFDLENBQUEsQ0FBQTtBQWpCWSxRQUFBLGNBQWMsa0JBaUIxQjtBQUVELE1BQU0sZUFBZSxHQUFHLENBQU8sUUFBZ0IsRUFBeUIsRUFBRTtJQUN0RSxNQUFNLEVBQUMsSUFBSSxFQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLGNBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFekMsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlbnQsIHByb21pc2VzIGFzIGZzUHJvbWlzZXN9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7VXBsb2FkU291cmNlTWFwc1JlcXVlc3R9IGZyb20gXCIuLi8uLi8uLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvcnVtX3NvdXJjZV9tYXBfc2VydmljZVwiO1xuaW1wb3J0IHtGaWxlTWV0YWRhdGF9IGZyb20gXCIuLi8uLi8uLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvZmlsZVwiO1xuXG5jb25zdCB7cmVhZGRpciwgc3RhdCwgcmVhZEZpbGV9ID0gZnNQcm9taXNlcztcblxuZXhwb3J0IGNvbnN0IHRyYXZlcnNlRm9sZGVyID0gYXN5bmMgKGZvbGRlclBhdGg6IHN0cmluZywgcmVxdWVzdDogVXBsb2FkU291cmNlTWFwc1JlcXVlc3QpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCBzdGFjazogc3RyaW5nW10gPSBbZm9sZGVyUGF0aF07XG5cbiAgICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gc3RhY2sucG9wKCk7XG4gICAgICAgIGNvbnN0IGVudHJpZXM6IERpcmVudFtdID0gYXdhaXQgcmVhZGRpcihjdXJyZW50UGF0aCEsIHt3aXRoRmlsZVR5cGVzOiB0cnVlfSk7XG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoZW50cmllcy5tYXAoYXN5bmMgKGZpbGU6IERpcmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qge25hbWV9ID0gZmlsZTtcbiAgICAgICAgICAgIGNvbnN0IGVudHJ5UGF0aCA9IHBhdGguam9pbihjdXJyZW50UGF0aCBhcyBzdHJpbmcsIG5hbWUpO1xuICAgICAgICAgICAgY29uc3QgaXNEb3RNYXBGaWxlID0gZmlsZS5pc0ZpbGUoKSAmJiBuYW1lLmVuZHNXaXRoKCcuanMubWFwJyk7XG5cbiAgICAgICAgICAgIGlmIChmaWxlLmlzRGlyZWN0b3J5KCkpIHN0YWNrLnB1c2goZW50cnlQYXRoKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAoaXNEb3RNYXBGaWxlKSByZXF1ZXN0LmZpbGVzLnB1c2goYXdhaXQgZ2V0RmlsZU1ldGFkYXRhKGVudHJ5UGF0aCkpO1xuICAgICAgICB9KSk7XG4gICAgfVxufVxuXG5jb25zdCBnZXRGaWxlTWV0YWRhdGEgPSBhc3luYyAoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8RmlsZU1ldGFkYXRhPiA9PiB7XG4gICAgY29uc3Qge3NpemV9ID0gYXdhaXQgc3RhdChmaWxlUGF0aCk7XG4gICAgY29uc3Qge25hbWV9ID0gcGF0aC5wYXJzZShmaWxlUGF0aCk7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoKTtcblxuICAgIHJldHVybiB7Y2h1bmtOYW1lOiBuYW1lLCBzaXplLCBjb250ZW50fTtcbn1cbiJdfQ==
@@ -1,11 +1,11 @@
1
- if [ -d "./src/app/proto-models" ]; then rm -Rf ./src/app/proto-models; fi
2
- mkdir -p ./src/app/proto-models
1
+ if [ -d "./proto-models" ]; then rm -Rf ./proto-models; fi
2
+ mkdir -p ./proto-models
3
3
 
4
4
  protofetch fetch -f
5
5
 
6
6
  ./node_modules/.bin/grpc_tools_node_protoc \
7
7
  --plugin=protoc-gen-ts_proto=./node_modules/.bin/protoc-gen-ts_proto \
8
- --ts_proto_out=./src/app/proto-models \
8
+ --ts_proto_out=./proto-models \
9
9
  --descriptor_set_out=./protoset.bin --include_imports \
10
10
  --ts_proto_opt=oneof=unions \
11
11
  --ts_proto_opt=unrecognizedEnum=false \
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coralogix/rum-cli",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "corlogix rum cli",
5
5
  "bin": {
6
6
  "coralogix-rum-cli": "dist/cli/rum-cli.js"
@@ -42,5 +42,5 @@
42
42
  },
43
43
  "keywords": [],
44
44
  "author": "",
45
- "license": "ISC"
45
+ "license": "MIT"
46
46
  }
@@ -1,4 +1,4 @@
1
- import {UploadSourceMapsRequest} from "../../src/app/proto-models/com/coralogix/rum/v2/rum_source_map_service";
1
+ import {UploadSourceMapsRequest} from "../../proto-models/com/coralogix/rum/v2/rum_source_map_service";
2
2
  import {traverseFolder} from "./utils/traverse-folder.util";
3
3
  import {RumApi} from "../../api/rum-api";
4
4
  import {GRAY_COLOR, GREEN_COLOR, RED_COLOR} from "../../cli/theme";
@@ -1,7 +1,7 @@
1
1
  import {Dirent, promises as fsPromises} from "fs";
2
2
  import path from "path";
3
- import {FileMetadata} from "../../../src/app/proto-models/com/coralogix/rum/v2/file";
4
- import {UploadSourceMapsRequest} from "../../../src/app/proto-models/com/coralogix/rum/v2/rum_source_map_service";
3
+ import {UploadSourceMapsRequest} from "../../../proto-models/com/coralogix/rum/v2/rum_source_map_service";
4
+ import {FileMetadata} from "../../../proto-models/com/coralogix/rum/v2/file";
5
5
 
6
6
  const {readdir, stat, readFile} = fsPromises;
7
7
 
@@ -1,62 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AuditLogDescription = exports.protobufPackage = void 0;
7
- /* eslint-disable */
8
- const minimal_1 = __importDefault(require("protobufjs/minimal"));
9
- exports.protobufPackage = "com.coralogix.rum.v2";
10
- function createBaseAuditLogDescription() {
11
- return { description: undefined };
12
- }
13
- exports.AuditLogDescription = {
14
- encode(message, writer = minimal_1.default.Writer.create()) {
15
- if (message.description !== undefined) {
16
- writer.uint32(10).string(message.description);
17
- }
18
- return writer;
19
- },
20
- decode(input, length) {
21
- const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
22
- let end = length === undefined ? reader.len : reader.pos + length;
23
- const message = createBaseAuditLogDescription();
24
- while (reader.pos < end) {
25
- const tag = reader.uint32();
26
- switch (tag >>> 3) {
27
- case 1:
28
- if (tag !== 10) {
29
- break;
30
- }
31
- message.description = reader.string();
32
- continue;
33
- }
34
- if ((tag & 7) === 4 || tag === 0) {
35
- break;
36
- }
37
- reader.skipType(tag & 7);
38
- }
39
- return message;
40
- },
41
- fromJSON(object) {
42
- return { description: isSet(object.description) ? String(object.description) : undefined };
43
- },
44
- toJSON(message) {
45
- const obj = {};
46
- message.description !== undefined && (obj.description = message.description);
47
- return obj;
48
- },
49
- create(base) {
50
- return exports.AuditLogDescription.fromPartial(base !== null && base !== void 0 ? base : {});
51
- },
52
- fromPartial(object) {
53
- var _a;
54
- const message = createBaseAuditLogDescription();
55
- message.description = (_a = object.description) !== null && _a !== void 0 ? _a : undefined;
56
- return message;
57
- },
58
- };
59
- function isSet(value) {
60
- return value !== null && value !== undefined;
61
- }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXRfbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvYXVkaXRfbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQixpRUFBcUM7QUFFeEIsUUFBQSxlQUFlLEdBQUcsc0JBQXNCLENBQUM7QUFNdEQsU0FBUyw2QkFBNkI7SUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUNwQyxDQUFDO0FBRVksUUFBQSxtQkFBbUIsR0FBRztJQUNqQyxNQUFNLENBQUMsT0FBNEIsRUFBRSxTQUFxQixpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDM0UsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRTtZQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDL0M7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksaUJBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLDZCQUE2QixFQUFFLENBQUM7UUFDaEQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3RDLFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDN0YsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUE0QjtRQUNqQyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBdUM7UUFDNUMsT0FBTywyQkFBbUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUF3Qzs7UUFDbEQsTUFBTSxPQUFPLEdBQUcsNkJBQTZCLEVBQUUsQ0FBQztRQUNoRCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQUEsTUFBTSxDQUFDLFdBQVcsbUNBQUksU0FBUyxDQUFDO1FBQ3RELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBVUYsU0FBUyxLQUFLLENBQUMsS0FBVTtJQUN2QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCBfbTAgZnJvbSBcInByb3RvYnVmanMvbWluaW1hbFwiO1xuXG5leHBvcnQgY29uc3QgcHJvdG9idWZQYWNrYWdlID0gXCJjb20uY29yYWxvZ2l4LnJ1bS52MlwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1ZGl0TG9nRGVzY3JpcHRpb24ge1xuICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQmFzZUF1ZGl0TG9nRGVzY3JpcHRpb24oKTogQXVkaXRMb2dEZXNjcmlwdGlvbiB7XG4gIHJldHVybiB7IGRlc2NyaXB0aW9uOiB1bmRlZmluZWQgfTtcbn1cblxuZXhwb3J0IGNvbnN0IEF1ZGl0TG9nRGVzY3JpcHRpb24gPSB7XG4gIGVuY29kZShtZXNzYWdlOiBBdWRpdExvZ0Rlc2NyaXB0aW9uLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2UuZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuZGVzY3JpcHRpb24pO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IEF1ZGl0TG9nRGVzY3JpcHRpb24ge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlQXVkaXRMb2dEZXNjcmlwdGlvbigpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuZGVzY3JpcHRpb24gPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBBdWRpdExvZ0Rlc2NyaXB0aW9uIHtcbiAgICByZXR1cm4geyBkZXNjcmlwdGlvbjogaXNTZXQob2JqZWN0LmRlc2NyaXB0aW9uKSA/IFN0cmluZyhvYmplY3QuZGVzY3JpcHRpb24pIDogdW5kZWZpbmVkIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IEF1ZGl0TG9nRGVzY3JpcHRpb24pOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIG1lc3NhZ2UuZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZCAmJiAob2JqLmRlc2NyaXB0aW9uID0gbWVzc2FnZS5kZXNjcmlwdGlvbik7XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPEF1ZGl0TG9nRGVzY3JpcHRpb24+KTogQXVkaXRMb2dEZXNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIEF1ZGl0TG9nRGVzY3JpcHRpb24uZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG5cbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxBdWRpdExvZ0Rlc2NyaXB0aW9uPik6IEF1ZGl0TG9nRGVzY3JpcHRpb24ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlQXVkaXRMb2dEZXNjcmlwdGlvbigpO1xuICAgIG1lc3NhZ2UuZGVzY3JpcHRpb24gPSBvYmplY3QuZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxudHlwZSBCdWlsdGluID0gRGF0ZSB8IEZ1bmN0aW9uIHwgVWludDhBcnJheSB8IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW4gPyBUXG4gIDogVCBleHRlbmRzIEFycmF5PGluZmVyIFU+ID8gQXJyYXk8RGVlcFBhcnRpYWw8VT4+IDogVCBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgVT4gPyBSZWFkb25seUFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyB7ICRjYXNlOiBzdHJpbmcgfSA/IHsgW0sgaW4ga2V5b2YgT21pdDxULCBcIiRjYXNlXCI+XT86IERlZXBQYXJ0aWFsPFRbS10+IH0gJiB7ICRjYXNlOiBUW1wiJGNhc2VcIl0gfVxuICA6IFQgZXh0ZW5kcyB7fSA/IHsgW0sgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW0tdPiB9XG4gIDogUGFydGlhbDxUPjtcblxuZnVuY3Rpb24gaXNTZXQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -1,330 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MappedChunk = exports.CodeLine = exports.Chunk = exports.protobufPackage = void 0;
7
- /* eslint-disable */
8
- const long_1 = __importDefault(require("long"));
9
- const minimal_1 = __importDefault(require("protobufjs/minimal"));
10
- exports.protobufPackage = "com.coralogix.rum.v2";
11
- function createBaseChunk() {
12
- return { chunkName: "", generatedLineNumber: 0, generatedColumnNumber: 0 };
13
- }
14
- exports.Chunk = {
15
- encode(message, writer = minimal_1.default.Writer.create()) {
16
- if (message.chunkName !== "") {
17
- writer.uint32(10).string(message.chunkName);
18
- }
19
- if (message.generatedLineNumber !== 0) {
20
- writer.uint32(16).int64(message.generatedLineNumber);
21
- }
22
- if (message.generatedColumnNumber !== 0) {
23
- writer.uint32(24).int64(message.generatedColumnNumber);
24
- }
25
- return writer;
26
- },
27
- decode(input, length) {
28
- const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
29
- let end = length === undefined ? reader.len : reader.pos + length;
30
- const message = createBaseChunk();
31
- while (reader.pos < end) {
32
- const tag = reader.uint32();
33
- switch (tag >>> 3) {
34
- case 1:
35
- if (tag !== 10) {
36
- break;
37
- }
38
- message.chunkName = reader.string();
39
- continue;
40
- case 2:
41
- if (tag !== 16) {
42
- break;
43
- }
44
- message.generatedLineNumber = longToNumber(reader.int64());
45
- continue;
46
- case 3:
47
- if (tag !== 24) {
48
- break;
49
- }
50
- message.generatedColumnNumber = longToNumber(reader.int64());
51
- continue;
52
- }
53
- if ((tag & 7) === 4 || tag === 0) {
54
- break;
55
- }
56
- reader.skipType(tag & 7);
57
- }
58
- return message;
59
- },
60
- fromJSON(object) {
61
- return {
62
- chunkName: isSet(object.chunkName) ? String(object.chunkName) : "",
63
- generatedLineNumber: isSet(object.generatedLineNumber) ? Number(object.generatedLineNumber) : 0,
64
- generatedColumnNumber: isSet(object.generatedColumnNumber) ? Number(object.generatedColumnNumber) : 0,
65
- };
66
- },
67
- toJSON(message) {
68
- const obj = {};
69
- message.chunkName !== undefined && (obj.chunkName = message.chunkName);
70
- message.generatedLineNumber !== undefined && (obj.generatedLineNumber = Math.round(message.generatedLineNumber));
71
- message.generatedColumnNumber !== undefined &&
72
- (obj.generatedColumnNumber = Math.round(message.generatedColumnNumber));
73
- return obj;
74
- },
75
- create(base) {
76
- return exports.Chunk.fromPartial(base !== null && base !== void 0 ? base : {});
77
- },
78
- fromPartial(object) {
79
- var _a, _b, _c;
80
- const message = createBaseChunk();
81
- message.chunkName = (_a = object.chunkName) !== null && _a !== void 0 ? _a : "";
82
- message.generatedLineNumber = (_b = object.generatedLineNumber) !== null && _b !== void 0 ? _b : 0;
83
- message.generatedColumnNumber = (_c = object.generatedColumnNumber) !== null && _c !== void 0 ? _c : 0;
84
- return message;
85
- },
86
- };
87
- function createBaseCodeLine() {
88
- return { lineIndex: 0, lineCode: "" };
89
- }
90
- exports.CodeLine = {
91
- encode(message, writer = minimal_1.default.Writer.create()) {
92
- if (message.lineIndex !== 0) {
93
- writer.uint32(16).int64(message.lineIndex);
94
- }
95
- if (message.lineCode !== "") {
96
- writer.uint32(10).string(message.lineCode);
97
- }
98
- return writer;
99
- },
100
- decode(input, length) {
101
- const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
102
- let end = length === undefined ? reader.len : reader.pos + length;
103
- const message = createBaseCodeLine();
104
- while (reader.pos < end) {
105
- const tag = reader.uint32();
106
- switch (tag >>> 3) {
107
- case 2:
108
- if (tag !== 16) {
109
- break;
110
- }
111
- message.lineIndex = longToNumber(reader.int64());
112
- continue;
113
- case 1:
114
- if (tag !== 10) {
115
- break;
116
- }
117
- message.lineCode = reader.string();
118
- continue;
119
- }
120
- if ((tag & 7) === 4 || tag === 0) {
121
- break;
122
- }
123
- reader.skipType(tag & 7);
124
- }
125
- return message;
126
- },
127
- fromJSON(object) {
128
- return {
129
- lineIndex: isSet(object.lineIndex) ? Number(object.lineIndex) : 0,
130
- lineCode: isSet(object.lineCode) ? String(object.lineCode) : "",
131
- };
132
- },
133
- toJSON(message) {
134
- const obj = {};
135
- message.lineIndex !== undefined && (obj.lineIndex = Math.round(message.lineIndex));
136
- message.lineCode !== undefined && (obj.lineCode = message.lineCode);
137
- return obj;
138
- },
139
- create(base) {
140
- return exports.CodeLine.fromPartial(base !== null && base !== void 0 ? base : {});
141
- },
142
- fromPartial(object) {
143
- var _a, _b;
144
- const message = createBaseCodeLine();
145
- message.lineIndex = (_a = object.lineIndex) !== null && _a !== void 0 ? _a : 0;
146
- message.lineCode = (_b = object.lineCode) !== null && _b !== void 0 ? _b : "";
147
- return message;
148
- },
149
- };
150
- function createBaseMappedChunk() {
151
- return {
152
- chunkName: "",
153
- originalLineNumber: 0,
154
- originalColumnNumber: 0,
155
- sourceFileName: "",
156
- sourceCodeLines: [],
157
- generatedLineNumber: 0,
158
- generatedColumnNumber: 0,
159
- sourceFunctionName: "",
160
- };
161
- }
162
- exports.MappedChunk = {
163
- encode(message, writer = minimal_1.default.Writer.create()) {
164
- if (message.chunkName !== "") {
165
- writer.uint32(10).string(message.chunkName);
166
- }
167
- if (message.originalLineNumber !== 0) {
168
- writer.uint32(16).int64(message.originalLineNumber);
169
- }
170
- if (message.originalColumnNumber !== 0) {
171
- writer.uint32(24).int64(message.originalColumnNumber);
172
- }
173
- if (message.sourceFileName !== "") {
174
- writer.uint32(34).string(message.sourceFileName);
175
- }
176
- for (const v of message.sourceCodeLines) {
177
- exports.CodeLine.encode(v, writer.uint32(42).fork()).ldelim();
178
- }
179
- if (message.generatedLineNumber !== 0) {
180
- writer.uint32(48).int64(message.generatedLineNumber);
181
- }
182
- if (message.generatedColumnNumber !== 0) {
183
- writer.uint32(56).int64(message.generatedColumnNumber);
184
- }
185
- if (message.sourceFunctionName !== "") {
186
- writer.uint32(66).string(message.sourceFunctionName);
187
- }
188
- return writer;
189
- },
190
- decode(input, length) {
191
- const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
192
- let end = length === undefined ? reader.len : reader.pos + length;
193
- const message = createBaseMappedChunk();
194
- while (reader.pos < end) {
195
- const tag = reader.uint32();
196
- switch (tag >>> 3) {
197
- case 1:
198
- if (tag !== 10) {
199
- break;
200
- }
201
- message.chunkName = reader.string();
202
- continue;
203
- case 2:
204
- if (tag !== 16) {
205
- break;
206
- }
207
- message.originalLineNumber = longToNumber(reader.int64());
208
- continue;
209
- case 3:
210
- if (tag !== 24) {
211
- break;
212
- }
213
- message.originalColumnNumber = longToNumber(reader.int64());
214
- continue;
215
- case 4:
216
- if (tag !== 34) {
217
- break;
218
- }
219
- message.sourceFileName = reader.string();
220
- continue;
221
- case 5:
222
- if (tag !== 42) {
223
- break;
224
- }
225
- message.sourceCodeLines.push(exports.CodeLine.decode(reader, reader.uint32()));
226
- continue;
227
- case 6:
228
- if (tag !== 48) {
229
- break;
230
- }
231
- message.generatedLineNumber = longToNumber(reader.int64());
232
- continue;
233
- case 7:
234
- if (tag !== 56) {
235
- break;
236
- }
237
- message.generatedColumnNumber = longToNumber(reader.int64());
238
- continue;
239
- case 8:
240
- if (tag !== 66) {
241
- break;
242
- }
243
- message.sourceFunctionName = reader.string();
244
- continue;
245
- }
246
- if ((tag & 7) === 4 || tag === 0) {
247
- break;
248
- }
249
- reader.skipType(tag & 7);
250
- }
251
- return message;
252
- },
253
- fromJSON(object) {
254
- return {
255
- chunkName: isSet(object.chunkName) ? String(object.chunkName) : "",
256
- originalLineNumber: isSet(object.originalLineNumber) ? Number(object.originalLineNumber) : 0,
257
- originalColumnNumber: isSet(object.originalColumnNumber) ? Number(object.originalColumnNumber) : 0,
258
- sourceFileName: isSet(object.sourceFileName) ? String(object.sourceFileName) : "",
259
- sourceCodeLines: Array.isArray(object === null || object === void 0 ? void 0 : object.sourceCodeLines)
260
- ? object.sourceCodeLines.map((e) => exports.CodeLine.fromJSON(e))
261
- : [],
262
- generatedLineNumber: isSet(object.generatedLineNumber) ? Number(object.generatedLineNumber) : 0,
263
- generatedColumnNumber: isSet(object.generatedColumnNumber) ? Number(object.generatedColumnNumber) : 0,
264
- sourceFunctionName: isSet(object.sourceFunctionName) ? String(object.sourceFunctionName) : "",
265
- };
266
- },
267
- toJSON(message) {
268
- const obj = {};
269
- message.chunkName !== undefined && (obj.chunkName = message.chunkName);
270
- message.originalLineNumber !== undefined && (obj.originalLineNumber = Math.round(message.originalLineNumber));
271
- message.originalColumnNumber !== undefined && (obj.originalColumnNumber = Math.round(message.originalColumnNumber));
272
- message.sourceFileName !== undefined && (obj.sourceFileName = message.sourceFileName);
273
- if (message.sourceCodeLines) {
274
- obj.sourceCodeLines = message.sourceCodeLines.map((e) => e ? exports.CodeLine.toJSON(e) : undefined);
275
- }
276
- else {
277
- obj.sourceCodeLines = [];
278
- }
279
- message.generatedLineNumber !== undefined && (obj.generatedLineNumber = Math.round(message.generatedLineNumber));
280
- message.generatedColumnNumber !== undefined &&
281
- (obj.generatedColumnNumber = Math.round(message.generatedColumnNumber));
282
- message.sourceFunctionName !== undefined && (obj.sourceFunctionName = message.sourceFunctionName);
283
- return obj;
284
- },
285
- create(base) {
286
- return exports.MappedChunk.fromPartial(base !== null && base !== void 0 ? base : {});
287
- },
288
- fromPartial(object) {
289
- var _a, _b, _c, _d, _e, _f, _g, _h;
290
- const message = createBaseMappedChunk();
291
- message.chunkName = (_a = object.chunkName) !== null && _a !== void 0 ? _a : "";
292
- message.originalLineNumber = (_b = object.originalLineNumber) !== null && _b !== void 0 ? _b : 0;
293
- message.originalColumnNumber = (_c = object.originalColumnNumber) !== null && _c !== void 0 ? _c : 0;
294
- message.sourceFileName = (_d = object.sourceFileName) !== null && _d !== void 0 ? _d : "";
295
- message.sourceCodeLines = ((_e = object.sourceCodeLines) === null || _e === void 0 ? void 0 : _e.map((e) => exports.CodeLine.fromPartial(e))) || [];
296
- message.generatedLineNumber = (_f = object.generatedLineNumber) !== null && _f !== void 0 ? _f : 0;
297
- message.generatedColumnNumber = (_g = object.generatedColumnNumber) !== null && _g !== void 0 ? _g : 0;
298
- message.sourceFunctionName = (_h = object.sourceFunctionName) !== null && _h !== void 0 ? _h : "";
299
- return message;
300
- },
301
- };
302
- var tsProtoGlobalThis = (() => {
303
- if (typeof globalThis !== "undefined") {
304
- return globalThis;
305
- }
306
- if (typeof self !== "undefined") {
307
- return self;
308
- }
309
- if (typeof window !== "undefined") {
310
- return window;
311
- }
312
- if (typeof global !== "undefined") {
313
- return global;
314
- }
315
- throw "Unable to locate global object";
316
- })();
317
- function longToNumber(long) {
318
- if (long.gt(Number.MAX_SAFE_INTEGER)) {
319
- throw new tsProtoGlobalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
320
- }
321
- return long.toNumber();
322
- }
323
- if (minimal_1.default.util.Long !== long_1.default) {
324
- minimal_1.default.util.Long = long_1.default;
325
- minimal_1.default.configure();
326
- }
327
- function isSet(value) {
328
- return value !== null && value !== undefined;
329
- }
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2h1bmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L3J1bS92Mi9jaHVuay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLGlFQUFxQztBQUV4QixRQUFBLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQztBQXdCdEQsU0FBUyxlQUFlO0lBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUM3RSxDQUFDO0FBRVksUUFBQSxLQUFLLEdBQUc7SUFDbkIsTUFBTSxDQUFDLE9BQWMsRUFBRSxTQUFxQixpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDN0QsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDN0M7UUFDRCxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsS0FBSyxDQUFDLEVBQUU7WUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdEQ7UUFDRCxJQUFJLE9BQU8sQ0FBQyxxQkFBcUIsS0FBSyxDQUFDLEVBQUU7WUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDeEQ7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVks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Q0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUNwQyxNQUFNLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7S0FDbkY7SUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUN6QixDQUFDO0FBRUQsSUFBSSxpQkFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssY0FBSSxFQUFFO0lBQzFCLGlCQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFXLENBQUM7SUFDNUIsaUJBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztDQUNqQjtBQUVELFNBQVMsS0FBSyxDQUFDLEtBQVU7SUFDdkIsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgTG9uZyBmcm9tIFwibG9uZ1wiO1xuaW1wb3J0IF9tMCBmcm9tIFwicHJvdG9idWZqcy9taW5pbWFsXCI7XG5cbmV4cG9ydCBjb25zdCBwcm90b2J1ZlBhY2thZ2UgPSBcImNvbS5jb3JhbG9naXgucnVtLnYyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2h1bmsge1xuICBjaHVua05hbWU6IHN0cmluZztcbiAgZ2VuZXJhdGVkTGluZU51bWJlcjogbnVtYmVyO1xuICBnZW5lcmF0ZWRDb2x1bW5OdW1iZXI6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2RlTGluZSB7XG4gIGxpbmVJbmRleDogbnVtYmVyO1xuICBsaW5lQ29kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcHBlZENodW5rIHtcbiAgY2h1bmtOYW1lOiBzdHJpbmc7XG4gIG9yaWdpbmFsTGluZU51bWJlcjogbnVtYmVyO1xuICBvcmlnaW5hbENvbHVtbk51bWJlcjogbnVtYmVyO1xuICBzb3VyY2VGaWxlTmFtZTogc3RyaW5nO1xuICBzb3VyY2VDb2RlTGluZXM6IENvZGVMaW5lW107XG4gIGdlbmVyYXRlZExpbmVOdW1iZXI6IG51bWJlcjtcbiAgZ2VuZXJhdGVkQ29sdW1uTnVtYmVyOiBudW1iZXI7XG4gIHNvdXJjZUZ1bmN0aW9uTmFtZTogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVCYXNlQ2h1bmsoKTogQ2h1bmsge1xuICByZXR1cm4geyBjaHVua05hbWU6IFwiXCIsIGdlbmVyYXRlZExpbmVOdW1iZXI6IDAsIGdlbmVyYXRlZENvbHVtbk51bWJlcjogMCB9O1xufVxuXG5leHBvcnQgY29uc3QgQ2h1bmsgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBDaHVuaywgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmNodW5rTmFtZSAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuY2h1bmtOYW1lKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuZ2VuZXJhdGVkTGluZU51bWJlciAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigxNikuaW50NjQobWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyICE9PSAwKSB7XG4gICAgICB3cml0ZXIudWludDMyKDI0KS5pbnQ2NChtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlcik7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogQ2h1bmsge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlQ2h1bmsoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmNodW5rTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgPSBsb25nVG9OdW1iZXIocmVhZGVyLmludDY0KCkgYXMgTG9uZyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBpZiAodGFnICE9PSAyNCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIgPSBsb25nVG9OdW1iZXIocmVhZGVyLmludDY0KCkgYXMgTG9uZyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBDaHVuayB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNodW5rTmFtZTogaXNTZXQob2JqZWN0LmNodW5rTmFtZSkgPyBTdHJpbmcob2JqZWN0LmNodW5rTmFtZSkgOiBcIlwiLFxuICAgICAgZ2VuZXJhdGVkTGluZU51bWJlcjogaXNTZXQob2JqZWN0LmdlbmVyYXRlZExpbmVOdW1iZXIpID8gTnVtYmVyKG9iamVjdC5nZW5lcmF0ZWRMaW5lTnVtYmVyKSA6IDAsXG4gICAgICBnZW5lcmF0ZWRDb2x1bW5OdW1iZXI6IGlzU2V0KG9iamVjdC5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpID8gTnVtYmVyKG9iamVjdC5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpIDogMCxcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBDaHVuayk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgbWVzc2FnZS5jaHVua05hbWUgIT09IHVuZGVmaW5lZCAmJiAob2JqLmNodW5rTmFtZSA9IG1lc3NhZ2UuY2h1bmtOYW1lKTtcbiAgICBtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgIT09IHVuZGVmaW5lZCAmJiAob2JqLmdlbmVyYXRlZExpbmVOdW1iZXIgPSBNYXRoLnJvdW5kKG1lc3NhZ2UuZ2VuZXJhdGVkTGluZU51bWJlcikpO1xuICAgIG1lc3NhZ2UuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIChvYmouZ2VuZXJhdGVkQ29sdW1uTnVtYmVyID0gTWF0aC5yb3VuZChtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlcikpO1xuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxDaHVuaz4pOiBDaHVuayB7XG4gICAgcmV0dXJuIENodW5rLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8Q2h1bms+KTogQ2h1bmsge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlQ2h1bmsoKTtcbiAgICBtZXNzYWdlLmNodW5rTmFtZSA9IG9iamVjdC5jaHVua05hbWUgPz8gXCJcIjtcbiAgICBtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgPSBvYmplY3QuZ2VuZXJhdGVkTGluZU51bWJlciA/PyAwO1xuICAgIG1lc3NhZ2UuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyID0gb2JqZWN0LmdlbmVyYXRlZENvbHVtbk51bWJlciA/PyAwO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZUNvZGVMaW5lKCk6IENvZGVMaW5lIHtcbiAgcmV0dXJuIHsgbGluZUluZGV4OiAwLCBsaW5lQ29kZTogXCJcIiB9O1xufVxuXG5leHBvcnQgY29uc3QgQ29kZUxpbmUgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBDb2RlTGluZSwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmxpbmVJbmRleCAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigxNikuaW50NjQobWVzc2FnZS5saW5lSW5kZXgpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5saW5lQ29kZSAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UubGluZUNvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IENvZGVMaW5lIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUNvZGVMaW5lKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5saW5lSW5kZXggPSBsb25nVG9OdW1iZXIocmVhZGVyLmludDY0KCkgYXMgTG9uZyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5saW5lQ29kZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IENvZGVMaW5lIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGluZUluZGV4OiBpc1NldChvYmplY3QubGluZUluZGV4KSA/IE51bWJlcihvYmplY3QubGluZUluZGV4KSA6IDAsXG4gICAgICBsaW5lQ29kZTogaXNTZXQob2JqZWN0LmxpbmVDb2RlKSA/IFN0cmluZyhvYmplY3QubGluZUNvZGUpIDogXCJcIixcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBDb2RlTGluZSk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgbWVzc2FnZS5saW5lSW5kZXggIT09IHVuZGVmaW5lZCAmJiAob2JqLmxpbmVJbmRleCA9IE1hdGgucm91bmQobWVzc2FnZS5saW5lSW5kZXgpKTtcbiAgICBtZXNzYWdlLmxpbmVDb2RlICE9PSB1bmRlZmluZWQgJiYgKG9iai5saW5lQ29kZSA9IG1lc3NhZ2UubGluZUNvZGUpO1xuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxDb2RlTGluZT4pOiBDb2RlTGluZSB7XG4gICAgcmV0dXJuIENvZGVMaW5lLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8Q29kZUxpbmU+KTogQ29kZUxpbmUge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlQ29kZUxpbmUoKTtcbiAgICBtZXNzYWdlLmxpbmVJbmRleCA9IG9iamVjdC5saW5lSW5kZXggPz8gMDtcbiAgICBtZXNzYWdlLmxpbmVDb2RlID0gb2JqZWN0LmxpbmVDb2RlID8/IFwiXCI7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVCYXNlTWFwcGVkQ2h1bmsoKTogTWFwcGVkQ2h1bmsge1xuICByZXR1cm4ge1xuICAgIGNodW5rTmFtZTogXCJcIixcbiAgICBvcmlnaW5hbExpbmVOdW1iZXI6IDAsXG4gICAgb3JpZ2luYWxDb2x1bW5OdW1iZXI6IDAsXG4gICAgc291cmNlRmlsZU5hbWU6IFwiXCIsXG4gICAgc291cmNlQ29kZUxpbmVzOiBbXSxcbiAgICBnZW5lcmF0ZWRMaW5lTnVtYmVyOiAwLFxuICAgIGdlbmVyYXRlZENvbHVtbk51bWJlcjogMCxcbiAgICBzb3VyY2VGdW5jdGlvbk5hbWU6IFwiXCIsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBNYXBwZWRDaHVuayA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IE1hcHBlZENodW5rLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2UuY2h1bmtOYW1lICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5jaHVua05hbWUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5vcmlnaW5hbExpbmVOdW1iZXIgIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTYpLmludDY0KG1lc3NhZ2Uub3JpZ2luYWxMaW5lTnVtYmVyKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uub3JpZ2luYWxDb2x1bW5OdW1iZXIgIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoMjQpLmludDY0KG1lc3NhZ2Uub3JpZ2luYWxDb2x1bW5OdW1iZXIpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5zb3VyY2VGaWxlTmFtZSAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigzNCkuc3RyaW5nKG1lc3NhZ2Uuc291cmNlRmlsZU5hbWUpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHYgb2YgbWVzc2FnZS5zb3VyY2VDb2RlTGluZXMpIHtcbiAgICAgIENvZGVMaW5lLmVuY29kZSh2ISwgd3JpdGVyLnVpbnQzMig0MikuZm9yaygpKS5sZGVsaW0oKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuZ2VuZXJhdGVkTGluZU51bWJlciAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMig0OCkuaW50NjQobWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyICE9PSAwKSB7XG4gICAgICB3cml0ZXIudWludDMyKDU2KS5pbnQ2NChtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlcik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnNvdXJjZUZ1bmN0aW9uTmFtZSAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMig2Nikuc3RyaW5nKG1lc3NhZ2Uuc291cmNlRnVuY3Rpb25OYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBNYXBwZWRDaHVuayB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VNYXBwZWRDaHVuaygpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuY2h1bmtOYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2Uub3JpZ2luYWxMaW5lTnVtYmVyID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2Uub3JpZ2luYWxDb2x1bW5OdW1iZXIgPSBsb25nVG9OdW1iZXIocmVhZGVyLmludDY0KCkgYXMgTG9uZyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBpZiAodGFnICE9PSAzNCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5zb3VyY2VGaWxlTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGlmICh0YWcgIT09IDQyKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnNvdXJjZUNvZGVMaW5lcy5wdXNoKENvZGVMaW5lLmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gNDgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuZ2VuZXJhdGVkTGluZU51bWJlciA9IGxvbmdUb051bWJlcihyZWFkZXIuaW50NjQoKSBhcyBMb25nKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgIGlmICh0YWcgIT09IDU2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciA9IGxvbmdUb051bWJlcihyZWFkZXIuaW50NjQoKSBhcyBMb25nKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICAgIGlmICh0YWcgIT09IDY2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnNvdXJjZUZ1bmN0aW9uTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IE1hcHBlZENodW5rIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2h1bmtOYW1lOiBpc1NldChvYmplY3QuY2h1bmtOYW1lKSA/IFN0cmluZyhvYmplY3QuY2h1bmtOYW1lKSA6IFwiXCIsXG4gICAgICBvcmlnaW5hbExpbmVOdW1iZXI6IGlzU2V0KG9iamVjdC5vcmlnaW5hbExpbmVOdW1iZXIpID8gTnVtYmVyKG9iamVjdC5vcmlnaW5hbExpbmVOdW1iZXIpIDogMCxcbiAgICAgIG9yaWdpbmFsQ29sdW1uTnVtYmVyOiBpc1NldChvYmplY3Qub3JpZ2luYWxDb2x1bW5OdW1iZXIpID8gTnVtYmVyKG9iamVjdC5vcmlnaW5hbENvbHVtbk51bWJlcikgOiAwLFxuICAgICAgc291cmNlRmlsZU5hbWU6IGlzU2V0KG9iamVjdC5zb3VyY2VGaWxlTmFtZSkgPyBTdHJpbmcob2JqZWN0LnNvdXJjZUZpbGVOYW1lKSA6IFwiXCIsXG4gICAgICBzb3VyY2VDb2RlTGluZXM6IEFycmF5LmlzQXJyYXkob2JqZWN0Py5zb3VyY2VDb2RlTGluZXMpXG4gICAgICAgID8gb2JqZWN0LnNvdXJjZUNvZGVMaW5lcy5tYXAoKGU6IGFueSkgPT4gQ29kZUxpbmUuZnJvbUpTT04oZSkpXG4gICAgICAgIDogW10sXG4gICAgICBnZW5lcmF0ZWRMaW5lTnVtYmVyOiBpc1NldChvYmplY3QuZ2VuZXJhdGVkTGluZU51bWJlcikgPyBOdW1iZXIob2JqZWN0LmdlbmVyYXRlZExpbmVOdW1iZXIpIDogMCxcbiAgICAgIGdlbmVyYXRlZENvbHVtbk51bWJlcjogaXNTZXQob2JqZWN0LmdlbmVyYXRlZENvbHVtbk51bWJlcikgPyBOdW1iZXIob2JqZWN0LmdlbmVyYXRlZENvbHVtbk51bWJlcikgOiAwLFxuICAgICAgc291cmNlRnVuY3Rpb25OYW1lOiBpc1NldChvYmplY3Quc291cmNlRnVuY3Rpb25OYW1lKSA/IFN0cmluZyhvYmplY3Quc291cmNlRnVuY3Rpb25OYW1lKSA6IFwiXCIsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogTWFwcGVkQ2h1bmspOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIG1lc3NhZ2UuY2h1bmtOYW1lICE9PSB1bmRlZmluZWQgJiYgKG9iai5jaHVua05hbWUgPSBtZXNzYWdlLmNodW5rTmFtZSk7XG4gICAgbWVzc2FnZS5vcmlnaW5hbExpbmVOdW1iZXIgIT09IHVuZGVmaW5lZCAmJiAob2JqLm9yaWdpbmFsTGluZU51bWJlciA9IE1hdGgucm91bmQobWVzc2FnZS5vcmlnaW5hbExpbmVOdW1iZXIpKTtcbiAgICBtZXNzYWdlLm9yaWdpbmFsQ29sdW1uTnVtYmVyICE9PSB1bmRlZmluZWQgJiYgKG9iai5vcmlnaW5hbENvbHVtbk51bWJlciA9IE1hdGgucm91bmQobWVzc2FnZS5vcmlnaW5hbENvbHVtbk51bWJlcikpO1xuICAgIG1lc3NhZ2Uuc291cmNlRmlsZU5hbWUgIT09IHVuZGVmaW5lZCAmJiAob2JqLnNvdXJjZUZpbGVOYW1lID0gbWVzc2FnZS5zb3VyY2VGaWxlTmFtZSk7XG4gICAgaWYgKG1lc3NhZ2Uuc291cmNlQ29kZUxpbmVzKSB7XG4gICAgICBvYmouc291cmNlQ29kZUxpbmVzID0gbWVzc2FnZS5zb3VyY2VDb2RlTGluZXMubWFwKChlKSA9PiBlID8gQ29kZUxpbmUudG9KU09OKGUpIDogdW5kZWZpbmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqLnNvdXJjZUNvZGVMaW5lcyA9IFtdO1xuICAgIH1cbiAgICBtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgIT09IHVuZGVmaW5lZCAmJiAob2JqLmdlbmVyYXRlZExpbmVOdW1iZXIgPSBNYXRoLnJvdW5kKG1lc3NhZ2UuZ2VuZXJhdGVkTGluZU51bWJlcikpO1xuICAgIG1lc3NhZ2UuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIChvYmouZ2VuZXJhdGVkQ29sdW1uTnVtYmVyID0gTWF0aC5yb3VuZChtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlcikpO1xuICAgIG1lc3NhZ2Uuc291cmNlRnVuY3Rpb25OYW1lICE9PSB1bmRlZmluZWQgJiYgKG9iai5zb3VyY2VGdW5jdGlvbk5hbWUgPSBtZXNzYWdlLnNvdXJjZUZ1bmN0aW9uTmFtZSk7XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPE1hcHBlZENodW5rPik6IE1hcHBlZENodW5rIHtcbiAgICByZXR1cm4gTWFwcGVkQ2h1bmsuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG5cbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxNYXBwZWRDaHVuaz4pOiBNYXBwZWRDaHVuayB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VNYXBwZWRDaHVuaygpO1xuICAgIG1lc3NhZ2UuY2h1bmtOYW1lID0gb2JqZWN0LmNodW5rTmFtZSA/PyBcIlwiO1xuICAgIG1lc3NhZ2Uub3JpZ2luYWxMaW5lTnVtYmVyID0gb2JqZWN0Lm9yaWdpbmFsTGluZU51bWJlciA/PyAwO1xuICAgIG1lc3NhZ2Uub3JpZ2luYWxDb2x1bW5OdW1iZXIgPSBvYmplY3Qub3JpZ2luYWxDb2x1bW5OdW1iZXIgPz8gMDtcbiAgICBtZXNzYWdlLnNvdXJjZUZpbGVOYW1lID0gb2JqZWN0LnNvdXJjZUZpbGVOYW1lID8/IFwiXCI7XG4gICAgbWVzc2FnZS5zb3VyY2VDb2RlTGluZXMgPSBvYmplY3Quc291cmNlQ29kZUxpbmVzPy5tYXAoKGUpID0+IENvZGVMaW5lLmZyb21QYXJ0aWFsKGUpKSB8fCBbXTtcbiAgICBtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgPSBvYmplY3QuZ2VuZXJhdGVkTGluZU51bWJlciA/PyAwO1xuICAgIG1lc3NhZ2UuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyID0gb2JqZWN0LmdlbmVyYXRlZENvbHVtbk51bWJlciA/PyAwO1xuICAgIG1lc3NhZ2Uuc291cmNlRnVuY3Rpb25OYW1lID0gb2JqZWN0LnNvdXJjZUZ1bmN0aW9uTmFtZSA/PyBcIlwiO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZGVjbGFyZSB2YXIgc2VsZjogYW55IHwgdW5kZWZpbmVkO1xuZGVjbGFyZSB2YXIgd2luZG93OiBhbnkgfCB1bmRlZmluZWQ7XG5kZWNsYXJlIHZhciBnbG9iYWw6IGFueSB8IHVuZGVmaW5lZDtcbnZhciB0c1Byb3RvR2xvYmFsVGhpczogYW55ID0gKCgpID0+IHtcbiAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXM7XG4gIH1cbiAgaWYgKHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHNlbGY7XG4gIH1cbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4gd2luZG93O1xuICB9XG4gIGlmICh0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIGdsb2JhbDtcbiAgfVxuICB0aHJvdyBcIlVuYWJsZSB0byBsb2NhdGUgZ2xvYmFsIG9iamVjdFwiO1xufSkoKTtcblxudHlwZSBCdWlsdGluID0gRGF0ZSB8IEZ1bmN0aW9uIHwgVWludDhBcnJheSB8IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW4gPyBUXG4gIDogVCBleHRlbmRzIEFycmF5PGluZmVyIFU+ID8gQXJyYXk8RGVlcFBhcnRpYWw8VT4+IDogVCBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgVT4gPyBSZWFkb25seUFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyB7ICRjYXNlOiBzdHJpbmcgfSA/IHsgW0sgaW4ga2V5b2YgT21pdDxULCBcIiRjYXNlXCI+XT86IERlZXBQYXJ0aWFsPFRbS10+IH0gJiB7ICRjYXNlOiBUW1wiJGNhc2VcIl0gfVxuICA6IFQgZXh0ZW5kcyB7fSA/IHsgW0sgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW0tdPiB9XG4gIDogUGFydGlhbDxUPjtcblxuZnVuY3Rpb24gbG9uZ1RvTnVtYmVyKGxvbmc6IExvbmcpOiBudW1iZXIge1xuICBpZiAobG9uZy5ndChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikpIHtcbiAgICB0aHJvdyBuZXcgdHNQcm90b0dsb2JhbFRoaXMuRXJyb3IoXCJWYWx1ZSBpcyBsYXJnZXIgdGhhbiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlwiKTtcbiAgfVxuICByZXR1cm4gbG9uZy50b051bWJlcigpO1xufVxuXG5pZiAoX20wLnV0aWwuTG9uZyAhPT0gTG9uZykge1xuICBfbTAudXRpbC5Mb25nID0gTG9uZyBhcyBhbnk7XG4gIF9tMC5jb25maWd1cmUoKTtcbn1cblxuZnVuY3Rpb24gaXNTZXQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZDtcbn1cbiJdfQ==