@aws-cdk-testing/cli-integ 3.20.0 → 3.21.0

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.
@@ -233,7 +233,7 @@ class TestFixture extends shell_1.ShellHelper {
233
233
  // use events because bar renders bad in tests
234
234
  '--progress', 'events',
235
235
  ...(skipStackRename ? stackNames : this.fullStackName(stackNames)),
236
- ...(options.telemetryFile ? ['--unstable=telemetry', `--telemetry-file=${options.telemetryFile}`] : []),
236
+ ...(options.telemetryFile ? [`--telemetry-file=${options.telemetryFile}`] : []),
237
237
  ];
238
238
  }
239
239
  async cdkSynth(options = {}) {
@@ -652,4 +652,4 @@ async function installNpmPackages(fixture, packages) {
652
652
  }
653
653
  }
654
654
  const ALREADY_BOOTSTRAPPED_IN_THIS_RUN = new Set();
655
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jZGstYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2l0aC1jZGstYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdDQSxnREErQ0M7QUFLRCxnQ0FLQztBQUVELDhDQStDQztBQVdELGdEQUVDO0FBRUQsa0RBRUM7QUFFRCxnRUFFQztBQUVELHNEQUVDO0FBU0QsOEJBcUJDO0FBbUJELDRDQUVDO0FBaUJELHdDQUlDO0FBaWhCRCxnREEyQkM7QUFnRUQsZ0RBdUNDO0FBOTNCRCwrQkFBK0I7QUFDL0IsaUNBQWlDO0FBQ2pDLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLDBFQUF1RTtBQUN2RSxrRUFBMEU7QUFFMUUsK0JBQStDO0FBRy9DLDZEQUEwRDtBQUMxRCwyQ0FBNEM7QUFFNUMsbUNBQXFEO0FBRXJELHlDQUF3RDtBQUN4RCxpREFBNkM7QUFDN0MsaUNBQTBDO0FBRTdCLFFBQUEsc0JBQXNCLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNqQyxRQUFBLHVCQUF1QixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFFL0M7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGtCQUFrQixDQUNoQyxPQUFlLEVBQ2YsS0FBOEM7SUFFOUMsT0FBTyxLQUFLLEVBQUUsT0FBMkQsRUFBRSxFQUFFO1FBQzNFLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDbkMsTUFBTSxlQUFlLEdBQUcsV0FBVyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxhQUFhLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFbEUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLGVBQWUsSUFBSSxDQUFDLENBQUM7UUFDOUQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLFlBQVks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SUFBSSxDQUFDO1lBQ0gsNkNBQTZDO1lBQzdDLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDakUsTUFBTTtRQUNSLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUUsRUFBRSxDQUFDO2dCQUM1RixPQUFPLENBQUMsR0FBRyxDQUFDLHFEQUFxRCxpQkFBaUIsYUFBYSxDQUFDLENBQUM7Z0JBQ2pHLE1BQU0sSUFBQSxXQUFLLEVBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQ3RDLFNBQVM7WUFDWCxDQUFDO1lBQ0QsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLGdDQUFnQyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IERlc2NyaWJlU3RhY2tzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVjci1wdWJsaWMnO1xuaW1wb3J0IHR5cGUgeyBBd3NDbGllbnRzIH0gZnJvbSAnLi9hd3MnO1xuaW1wb3J0IHsgb3V0cHV0RnJvbVN0YWNrLCBzbGVlcCB9IGZyb20gJy4vYXdzJztcbmltcG9ydCB0eXBlIHsgVGVzdENvbnRleHQgfSBmcm9tICcuL2ludGVnLXRlc3QnO1xuaW1wb3J0IHR5cGUgeyBJVGVzdENsaVNvdXJjZSwgSVRlc3RMaWJyYXJ5U291cmNlIH0gZnJvbSAnLi9wYWNrYWdlLXNvdXJjZXMvc291cmNlJztcbmltcG9ydCB7IHRlc3RTb3VyY2UgfSBmcm9tICcuL3BhY2thZ2Utc291cmNlcy9zdWJwcm9jZXNzJztcbmltcG9ydCB7IFJFU09VUkNFU19ESVIgfSBmcm9tICcuL3Jlc291cmNlcyc7XG5pbXBvcnQgdHlwZSB7IFNoZWxsT3B0aW9ucyB9IGZyb20gJy4vc2hlbGwnO1xuaW1wb3J0IHsgc2hlbGwsIFNoZWxsSGVscGVyLCByaW1yYWYgfSBmcm9tICcuL3NoZWxsJztcbmltcG9ydCB0eXBlIHsgQXdzQ29udGV4dCB9IGZyb20gJy4vd2l0aC1hd3MnO1xuaW1wb3J0IHsgYXRtb3NwaGVyZUVuYWJsZWQsIHdpdGhBd3MgfSBmcm9tICcuL3dpdGgtYXdzJztcbmltcG9ydCB7IHdpdGhUaW1lb3V0IH0gZnJvbSAnLi93aXRoLXRpbWVvdXQnO1xuaW1wb3J0IHsgZmluZFlhcm5QYWNrYWdlcyB9IGZyb20gJy4veWFybic7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RFU1RfVElNRU9VVF9TID0gMjAgKiA2MDtcbmV4cG9ydCBjb25zdCBFWFRFTkRFRF9URVNUX1RJTUVPVVRfUyA9IDMwICogNjA7XG5cbi8qKlxuICogSGlnaGVyIG9yZGVyIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgYSBibG9jayB3aXRoIGEgQ0RLIGFwcCBmaXh0dXJlXG4gKlxuICogUmVxdWlyZXMgYW4gQVdTIGNsaWVudCB0byBiZSBwYXNzZWQgaW4uXG4gKlxuICogRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgdGVzdHMgKHNvIHdlIGRvbid0IGhhdmUgdG8gY2hhbmdlXG4gKiB0b28gbXVjaCkgdGhlIGlubmVyIGJsb2NrIGlzIGV4cGVjdGVkIHRvIHRha2UgYSBgVGVzdEZpeHR1cmVgIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhTcGVjaWZpY0Nka0FwcChcbiAgYXBwTmFtZTogc3RyaW5nLFxuICBibG9jazogKGNvbnRleHQ6IFRlc3RGaXh0dXJlKSA9PiBQcm9taXNlPHZvaWQ+LFxuKTogKGNvbnRleHQ6IFRlc3RDb250ZXh0ICYgQXdzQ29udGV4dCAmIERpc2FibGVCb290c3RyYXBDb250ZXh0KSA9PiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIGFzeW5jIChjb250ZXh0OiBUZXN0Q29udGV4dCAmIEF3c0NvbnRleHQgJiBEaXNhYmxlQm9vdHN0cmFwQ29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHJhbmR5ID0gY29udGV4dC5yYW5kb21TdHJpbmc7XG4gICAgY29uc3Qgc3RhY2tOYW1lUHJlZml4ID0gYGNka3Rlc3QtJHtyYW5keX1gO1xuICAgIGNvbnN0IGludGVnVGVzdERpciA9IHBhdGguam9pbihvcy50bXBkaXIoKSwgYGNkay1pbnRlZy0ke3JhbmR5fWApO1xuXG4gICAgY29udGV4dC5vdXRwdXQud3JpdGUoYCBTdGFjayBwcmVmaXg6ICAgJHtzdGFja05hbWVQcmVmaXh9XFxuYCk7XG4gICAgY29udGV4dC5vdXRwdXQud3JpdGUoYCBUZXN0IGRpcmVjdG9yeTogJHtpbnRlZ1Rlc3REaXJ9XFxuYCk7XG4gICAgY29udGV4dC5vdXRwdXQud3JpdGUoYCBSZWdpb246ICAgICAgICAgJHtjb250ZXh0LmF3cy5yZWdpb259XFxuYCk7XG5cbiAgICBhd2FpdCBjbG9uZURpcmVjdG9yeShwYXRoLmpvaW4oUkVTT1VSQ0VTX0RJUiwgJ2Nkay1hcHBzJywgYXBwTmFtZSksIGludGVnVGVzdERpciwgY29udGV4dC5vdXRwdXQpO1xuICAgIGNvbnN0IGZpeHR1cmUgPSBuZXcgVGVzdEZpeHR1cmUoXG4gICAgICBpbnRlZ1Rlc3REaXIsXG4gICAgICBzdGFja05hbWVQcmVmaXgsXG4gICAgICBjb250ZXh0Lm91dHB1dCxcbiAgICAgIGNvbnRleHQuYXdzLFxuICAgICAgY29udGV4dC5yYW5kb21TdHJpbmcpO1xuICAgIGF3YWl0IGZpeHR1cmUuZWNyUHVibGljTG9naW4oKTtcblxuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaW5zdGFsbGF0aW9uVmVyc2lvbiA9IGZpeHR1cmUubGlicmFyeS5yZXF1ZXN0ZWRWZXJzaW9uKCk7XG5cbiAgICAgIGF3YWl0IGluc3RhbGxOcG1QYWNrYWdlcyhmaXh0dXJlLCB7XG4gICAgICAgICdhd3MtY2RrLWxpYic6IGluc3RhbGxhdGlvblZlcnNpb24sXG4gICAgICAgICdjb25zdHJ1Y3RzJzogJ14xMCcsXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFjb250ZXh0LmRpc2FibGVCb290c3RyYXApIHtcbiAgICAgICAgYXdhaXQgZW5zdXJlQm9vdHN0cmFwcGVkKGZpeHR1cmUpO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBibG9jayhmaXh0dXJlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgICB0aHJvdyBlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuSU5URUdfTk9fQ0xFQU4pIHtcbiAgICAgICAgY29udGV4dC5sb2coYExlZnQgdGVzdCBkaXJlY3RvcnkgaW4gJyR7aW50ZWdUZXN0RGlyfScgKCRJTlRFR19OT19DTEVBTilcXG5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IGZpeHR1cmUuZGlzcG9zZShzdWNjZXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogTGlrZSBgd2l0aFNwZWNpZmljQ2RrQXBwYCwgYnV0IHVzZXMgdGhlIGRlZmF1bHQgaW50ZWdyYXRpb24gdGVzdGluZyBhcHAgd2l0aCBhIG1pbGxpb24gc3RhY2tzIGluIGl0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ2RrQXBwKFxuICBibG9jazogKGNvbnRleHQ6IFRlc3RGaXh0dXJlKSA9PiBQcm9taXNlPHZvaWQ+LFxuKTogKGNvbnRleHQ6IFRlc3RDb250ZXh0ICYgQXdzQ29udGV4dCAmIERpc2FibGVCb290c3RyYXBDb250ZXh0KSA9PiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gJ2FwcCcgaXMgdGhlIG5hbWUgb2YgdGhlIGRlZmF1bHQgaW50ZWdyYXRpb24gYXBwIGluIHRoZSBgY2RrLWFwcHNgIGRpcmVjdG9yeVxuICByZXR1cm4gd2l0aFNwZWNpZmljQ2RrQXBwKCdhcHAnLCBibG9jayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ2RrTWlncmF0ZUFwcChcbiAgbGFuZ3VhZ2U6IHN0cmluZyxcbiAgYmxvY2s6IChjb250ZXh0OiBUZXN0Rml4dHVyZSkgPT4gUHJvbWlzZTx2b2lkPixcbik6IChjb250ZXh0OiBUZXN0Q29udGV4dCAmIEF3c0NvbnRleHQgJiBEaXNhYmxlQm9vdHN0cmFwQ29udGV4dCkgPT4gUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBhc3luYyAoY29udGV4dDogVGVzdENvbnRleHQgJiBBd3NDb250ZXh0ICYgRGlzYWJsZUJvb3RzdHJhcENvbnRleHQpID0+IHtcbiAgICBjb25zdCBzdGFja05hbWUgPSBgY2RrLW1pZ3JhdGUtJHtsYW5ndWFnZX0taW50ZWctJHtjb250ZXh0LnJhbmRvbVN0cmluZ31gO1xuICAgIGNvbnN0IGludGVnVGVzdERpciA9IHBhdGguam9pbihvcy50bXBkaXIoKSwgYGNkay1taWdyYXRlLSR7bGFuZ3VhZ2V9LWludGVnLSR7Y29udGV4dC5yYW5kb21TdHJpbmd9YCk7XG5cbiAgICBjb250ZXh0Lm91dHB1dC53cml0ZShgIFN0YWNrIG5hbWU6ICAgJHtzdGFja05hbWV9XFxuYCk7XG4gICAgY29udGV4dC5vdXRwdXQud3JpdGUoYCBUZXN0IGRpcmVjdG9yeTogJHtpbnRlZ1Rlc3REaXJ9XFxuYCk7XG5cbiAgICBmcy5ta2RpclN5bmMoaW50ZWdUZXN0RGlyKTtcbiAgICBjb25zdCBmaXh0dXJlID0gbmV3IFRlc3RGaXh0dXJlKFxuICAgICAgaW50ZWdUZXN0RGlyLFxuICAgICAgc3RhY2tOYW1lLFxuICAgICAgY29udGV4dC5vdXRwdXQsXG4gICAgICBjb250ZXh0LmF3cyxcbiAgICAgIGNvbnRleHQucmFuZG9tU3RyaW5nLFxuICAgICk7XG4gICAgYXdhaXQgZml4dHVyZS5lY3JQdWJsaWNMb2dpbigpO1xuXG4gICAgYXdhaXQgZW5zdXJlQm9vdHN0cmFwcGVkKGZpeHR1cmUpO1xuXG4gICAgYXdhaXQgZml4dHVyZS5jZGtNaWdyYXRlKGxhbmd1YWdlLCBzdGFja05hbWUpO1xuXG4gICAgY29uc3QgdGVzdEZpeHR1cmUgPSBuZXcgVGVzdEZpeHR1cmUoXG4gICAgICBwYXRoLmpvaW4oaW50ZWdUZXN0RGlyLCBzdGFja05hbWUpLFxuICAgICAgc3RhY2tOYW1lLFxuICAgICAgY29udGV4dC5vdXRwdXQsXG4gICAgICBjb250ZXh0LmF3cyxcbiAgICAgIGNvbnRleHQucmFuZG9tU3RyaW5nLFxuICAgICk7XG5cbiAgICBsZXQgc3VjY2VzcyA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGJsb2NrKHRlc3RGaXh0dXJlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgICB0aHJvdyBlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuSU5URUdfTk9fQ0xFQU4pIHtcbiAgICAgICAgY29udGV4dC5sb2coYExlZnQgdGVzdCBkaXJlY3RvcnkgaW4gJyR7aW50ZWdUZXN0RGlyfScgKCRJTlRFR19OT19DTEVBTilgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IGZpeHR1cmUuZGlzcG9zZShzdWNjZXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogRGVmYXVsdCB0ZXN0IGZpeHR1cmUgZm9yIG1vc3QgKGFsbD8pIGludGVnIHRlc3RzXG4gKlxuICogSXQncyBhIGNvbXBvc2l0aW9uIG9mIHdpdGhBd3Mvd2l0aENka0FwcCwgZXhwZWN0aW5nIHRoZSB0ZXN0IGJsb2NrIHRvIHRha2UgYSBgVGVzdEZpeHR1cmVgXG4gKiBvYmplY3QuXG4gKlxuICogV2UgY291bGQgaGF2ZSBwdXQgYHdpdGhBd3Mod2l0aENka0FwcChmaXh0dXJlID0+IHsgLy4uLiBhY3R1YWwgdGVzdCBoZXJlLi4uLyB9KSlgIGluIGV2ZXJ5XG4gKiB0ZXN0IGRlY2xhcmF0aW9uIGJ1dCBjZW50cmFsaXppbmcgaXQgaXMgZ29pbmcgdG8gbWFrZSBpdCBjb252ZW5pZW50IHRvIG1vZGlmeSBpbiB0aGUgZnV0dXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aERlZmF1bHRGaXh0dXJlKGJsb2NrOiAoY29udGV4dDogVGVzdEZpeHR1cmUpID0+IFByb21pc2U8dm9pZD4pIHtcbiAgcmV0dXJuIHdpdGhBd3Mod2l0aFRpbWVvdXQoREVGQVVMVF9URVNUX1RJTUVPVVRfUywgd2l0aENka0FwcChibG9jaykpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhTcGVjaWZpY0ZpeHR1cmUoYXBwTmFtZTogc3RyaW5nLCBibG9jazogKGNvbnRleHQ6IFRlc3RGaXh0dXJlKSA9PiBQcm9taXNlPHZvaWQ+KSB7XG4gIHJldHVybiB3aXRoQXdzKHdpdGhUaW1lb3V0KERFRkFVTFRfVEVTVF9USU1FT1VUX1MsIHdpdGhTcGVjaWZpY0Nka0FwcChhcHBOYW1lLCBibG9jaykpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhFeHRlbmRlZFRpbWVvdXRGaXh0dXJlKGJsb2NrOiAoY29udGV4dDogVGVzdEZpeHR1cmUpID0+IFByb21pc2U8dm9pZD4pIHtcbiAgcmV0dXJuIHdpdGhBd3Mod2l0aFRpbWVvdXQoRVhURU5ERURfVEVTVF9USU1FT1VUX1MsIHdpdGhDZGtBcHAoYmxvY2spKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ0RLTWlncmF0ZUZpeHR1cmUobGFuZ3VhZ2U6IHN0cmluZywgYmxvY2s6IChjb250ZW50OiBUZXN0Rml4dHVyZSkgPT4gUHJvbWlzZTx2b2lkPikge1xuICByZXR1cm4gd2l0aEF3cyh3aXRoVGltZW91dChERUZBVUxUX1RFU1RfVElNRU9VVF9TLCB3aXRoQ2RrTWlncmF0ZUFwcChsYW5ndWFnZSwgYmxvY2spKSk7XG59XG5cbi8qKlxuICogUmV0cnkgd3JhcHBlciB0aGF0IGV4ZWN1dGVzIGEgdGVzdCBjYWxsYmFjayB1cCB0byBtYXhBdHRlbXB0cyB0aW1lc1xuICpcbiAqIElmIGFueSBhdHRlbXB0IHN1Y2NlZWRzLCBpdCByZXR1cm5zIGltbWVkaWF0ZWx5LiBJZiBhbGwgYXR0ZW1wdHMgZmFpbCxcbiAqIGl0IHRocm93cyB0aGUgbGFzdCBlcnJvciBlbmNvdW50ZXJlZC5cbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFJldHJ5PFQgZXh0ZW5kcyBUZXN0Q29udGV4dD4oXG4gIGNhbGxiYWNrOiAoY29udGV4dDogVCkgPT4gUHJvbWlzZTx2b2lkPixcbiAgbWF4QXR0ZW1wdHM6IG51bWJlciA9IDIsXG4pOiAoY29udGV4dDogVCkgPT4gUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBhc3luYyAoY29udGV4dDogVCkgPT4ge1xuICAgIGxldCBsYXN0RXJyb3I7XG5cbiAgICBmb3IgKGxldCBhdHRlbXB0ID0gMTsgYXR0ZW1wdCA8PSBtYXhBdHRlbXB0czsgYXR0ZW1wdCsrKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBjYWxsYmFjayhjb250ZXh0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbGFzdEVycm9yID0gZXJyb3I7XG4gICAgICAgIGlmIChhdHRlbXB0IDwgbWF4QXR0ZW1wdHMpIHtcbiAgICAgICAgICBjb250ZXh0LmxvZyhgQXR0ZW1wdCAke2F0dGVtcHR9LyR7bWF4QXR0ZW1wdHN9IGZhaWxlZDogJHtlcnJvcn0uIFJldHJ5aW5nLi4uYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBsYXN0RXJyb3I7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzYWJsZUJvb3RzdHJhcENvbnRleHQge1xuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIGNyZWF0aW5nIHRoZSBkZWZhdWx0IGJvb3RzdHJhcFxuICAgKiBzdGFjayBwcmlvciB0byBydW5uaW5nIHRoZSB0ZXN0XG4gICAqXG4gICAqIFRoaXMgc2hvdWxkIGJlIHNldCB0byB0cnVlIHdoZW4gcnVubmluZyB0ZXN0cyB0aGF0XG4gICAqIGV4cGxpY2l0bHkgY3JlYXRlIGEgYm9vdHN0cmFwIHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlQm9vdHN0cmFwPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUbyBiZSB1c2VkIGluIHBsYWNlIG9mIGB3aXRoRGVmYXVsdEZpeHR1cmVgIHdoZW4gdGhlIHRlc3RcbiAqIHNob3VsZCBub3QgY3JlYXRlIHRoZSBkZWZhdWx0IGJvb3RzdHJhcCBzdGFja1xuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aG91dEJvb3RzdHJhcChibG9jazogKGNvbnRleHQ6IFRlc3RGaXh0dXJlKSA9PiBQcm9taXNlPHZvaWQ+KSB7XG4gIHJldHVybiB3aXRoQXdzKHdpdGhDZGtBcHAoYmxvY2spLCB0cnVlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtDbGlPcHRpb25zIGV4dGVuZHMgU2hlbGxPcHRpb25zIHtcbiAgb3B0aW9ucz86IHN0cmluZ1tdO1xuICBuZXZlclJlcXVpcmVBcHByb3ZhbD86IGJvb2xlYW47XG4gIHZlcmJvc2U/OiBib29sZWFuO1xuICB2ZXJib3NlTGV2ZWw/OiBudW1iZXI7XG4gIHRlbGVtZXRyeUZpbGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrRGVzdHJveUNsaU9wdGlvbnMgZXh0ZW5kcyBDZGtDbGlPcHRpb25zIHtcbiAgcmVhZG9ubHkgZm9yY2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFByZXBhcmUgYSB0YXJnZXQgZGlyIGJ5cmVwbGljYXRpbmcgYSBzb3VyY2UgZGlyZWN0b3J5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbG9uZURpcmVjdG9yeShzb3VyY2U6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcsIG91dHB1dD86IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSkge1xuICBhd2FpdCBzaGVsbChbJ3JtJywgJy1yZicsIHRhcmdldF0sIHsgb3V0cHV0czogb3V0cHV0ID8gW291dHB1dF0gOiBbXSB9KTtcbiAgYXdhaXQgc2hlbGwoWydta2RpcicsICctcCcsIHRhcmdldF0sIHsgb3V0cHV0czogb3V0cHV0ID8gW291dHB1dF0gOiBbXSB9KTtcbiAgYXdhaXQgc2hlbGwoWydjcCcsICctUicsIHNvdXJjZSArICcvKicsIHRhcmdldF0sIHsgb3V0cHV0czogb3V0cHV0ID8gW291dHB1dF0gOiBbXSB9KTtcbn1cblxuaW50ZXJmYWNlIENvbW1vbkNka0Jvb3RzdHJhcENvbW1hbmRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBhdGggdG8gYSBjdXN0b20gYm9vdHN0cmFwIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IENESyBib290c3RyYXAgdGVtcGxhdGUuXG4gICAqL1xuICByZWFkb25seSBib290c3RyYXBUZW1wbGF0ZT86IHN0cmluZztcblxuICByZWFkb25seSB0b29sa2l0U3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB2ZXJib3NlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlZmF1bHQgLSBhdXRvLWdlbmVyYXRlZCBDbG91ZEZvcm1hdGlvbiBuYW1lXG4gICAqL1xuICByZWFkb25seSBib290c3RyYXBCdWNrZXROYW1lPzogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IGNsaU9wdGlvbnM/OiBDZGtDbGlPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGRlZmF1bHQgQ0RLIHF1YWxpZmllclxuICAgKi9cbiAgcmVhZG9ubHkgcXVhbGlmaWVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka0xlZ2FjeUJvb3RzdHJhcENvbW1hbmRPcHRpb25zIGV4dGVuZHMgQ29tbW9uQ2RrQm9vdHN0cmFwQ29tbWFuZE9wdGlvbnMge1xuICAvKipcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG5vRXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrTW9kZXJuQm9vdHN0cmFwQ29tbWFuZE9wdGlvbnMgZXh0ZW5kcyBDb21tb25DZGtCb290c3RyYXBDb21tYW5kT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGNmbkV4ZWN1dGlvblBvbGljeT86IHN0cmluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNob3dUZW1wbGF0ZT86IGJvb2xlYW47XG5cbiAgcmVhZG9ubHkgdGVtcGxhdGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGV4YW1wbGVQZXJtaXNzaW9uc0JvdW5kYXJ5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBjdXN0b21QZXJtaXNzaW9uc0JvdW5kYXJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkZW55RXh0ZXJuYWxJZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgdXNlUHJldmlvdXNQYXJhbWV0ZXJzPzogYm9vbGVhbjtcblxuICByZWFkb25seSB0cnVzdD86IHN0cmluZ1tdO1xuXG4gIHJlYWRvbmx5IHVudHJ1c3Q/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtHYXJiYWdlQ29sbGVjdGlvbkNvbW1hbmRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgZGF5cyBhbiBhc3NldCBzaG91bGQgc3RheSBpc29sYXRlZCBiZWZvcmUgZGVsZXRpb24sIHRvXG4gICAqIGd1YXJkIGFnYWluc3Qgc29tZSBwaXBlbGluZSByb2xsYmFjayBzY2VuYXJpb3NcbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgcm9sbGJhY2tCdWZmZXJEYXlzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhc3NldCB0aGF0IGlzIGdldHRpbmcgZ2FyYmFnZSBjb2xsZWN0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhbGwnXG4gICAqL1xuICByZWFkb25seSB0eXBlPzogJ2VjcicgfCAnczMnIHwgJ2FsbCc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgJ0Nka1Rvb2xraXQnXG4gICAqL1xuICByZWFkb25seSBib290c3RyYXBTdGFja05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBUZXN0Rml4dHVyZSBleHRlbmRzIFNoZWxsSGVscGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHF1YWxpZmllcjogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGJ1Y2tldHNUb0RlbGV0ZSA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIHB1YmxpYyByZWFkb25seSBjbGk6IElUZXN0Q2xpU291cmNlO1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrQXNzZXRzOiBJVGVzdENsaVNvdXJjZTtcbiAgcHVibGljIHJlYWRvbmx5IGxpYnJhcnk6IElUZXN0TGlicmFyeVNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW50ZWdUZXN0RGlyOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YWNrTmFtZVByZWZpeDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBvdXRwdXQ6IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgYXdzOiBBd3NDbGllbnRzLFxuICAgIHB1YmxpYyByZWFkb25seSByYW5kb21TdHJpbmc6IHN0cmluZykge1xuICAgIHN1cGVyKGludGVnVGVzdERpciwgb3V0cHV0KTtcblxuICAgIHRoaXMucXVhbGlmaWVyID0gdGhpcy5yYW5kb21TdHJpbmcuc2xpY2UoMCwgMTApO1xuICAgIHRoaXMuY2xpID0gdGVzdFNvdXJjZSgnY2xpJyk7XG4gICAgdGhpcy5jZGtBc3NldHMgPSB0ZXN0U291cmNlKCdjZGtBc3NldHMnKTtcbiAgICB0aGlzLmxpYnJhcnkgPSB0ZXN0U291cmNlKCdsaWJyYXJ5Jyk7XG4gIH1cblxuICBwdWJsaWMgbG9nKHM6IHN0cmluZykge1xuICAgIHRoaXMub3V0cHV0LndyaXRlKGAke3N9XFxuYCk7XG4gIH1cblxuICAvKipcbiAgICogTG9naW4gdG8gdGhlIHB1YmxpYyBFQ1IgZ2FsbGVyeSB1c2luZyB0aGUgY3VycmVudCBBV1MgY3JlZGVudGlhbHMuXG4gICAqIFVzZSB0aGlzIGlmIHlvdXIgdGVzdCBuZWVkcyB0byBkaXJlY3RseSBwdWxsIGltYWdlcyBvdXRzaWRlIG9mIGEgYGNka2Agb3IgYGNkay1hc3NldHNgIGNvbW1hbmQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZWNyUHVibGljTG9naW4oKSB7XG4gICAgY29uc3QgdG9rZW5SZXNwb25zZSA9IGF3YWl0IHRoaXMuYXdzLmVjclB1YmxpYy5zZW5kKG5ldyBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kKHt9KSk7XG4gICAgY29uc3QgYXV0aERhdGEgPSB0b2tlblJlc3BvbnNlLmF1dGhvcml6YXRpb25EYXRhPy5hdXRob3JpemF0aW9uVG9rZW47XG5cbiAgICBjb25zdCBkb2NrZXIgPSBwcm9jZXNzLmVudi5DREtfRE9DS0VSID8/ICdkb2NrZXInO1xuXG4gICAgaWYgKCFhdXRoRGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgcmV0cmlldmUgRUNSIHB1YmxpYyBhdXRoIHRva2VuLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZWQgPSBCdWZmZXIuZnJvbShhdXRoRGF0YSwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgIGNvbnN0IFt1c2VybmFtZSwgcGFzc3dvcmRdID0gZGVjb2RlZC5zcGxpdCgnOicpO1xuXG4gICAgYXdhaXQgdGhpcy5zaGVsbChbZG9ja2VyLCAnbG9naW4nLFxuICAgICAgJy0tdXNlcm5hbWUnLCB1c2VybmFtZSxcbiAgICAgICctLXBhc3N3b3JkJywgJyR7RUNSX1BBU1NXT1JEfScsXG4gICAgICAncHVibGljLmVjci5hd3MnXSwge1xuICAgICAgc2hlbGw6IHRydWUsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgRUNSX1BBU1NXT1JEOiBwYXNzd29yZCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2RrRGVwbG95KHN0YWNrTmFtZXM6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zOiBDZGtDbGlPcHRpb25zID0ge30sIHNraXBTdGFja1JlbmFtZT86IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gdGhpcy5jZGsodGhpcy5jZGtEZXBsb3lDb21tYW5kTGluZShzdGFja05hbWVzLCBvcHRpb25zLCBza2lwU3RhY2tSZW5hbWUpLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBjZGtEZXBsb3lDb21tYW5kTGluZShzdGFja05hbWVzOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9uczogQ2RrQ2xpT3B0aW9ucyA9IHt9LCBza2lwU3RhY2tSZW5hbWU/OiBib29sZWFuKSB7XG4gICAgc3RhY2tOYW1lcyA9IHR5cGVvZiBzdGFja05hbWVzID09PSAnc3RyaW5nJyA/IFtzdGFja05hbWVzXSA6IHN0YWNrTmFtZXM7XG4gICAgY29uc3QgbmV2ZXJSZXF1aXJlQXBwcm92YWwgPSBvcHRpb25zLm5ldmVyUmVxdWlyZUFwcHJvdmFsID8/IHRydWU7XG5cbiAgICByZXR1cm4gW1xuICAgICAgJ2RlcGxveScsXG4gICAgICAuLi4obmV2ZXJSZXF1aXJlQXBwcm92YWwgPyBbJy0tcmVxdWlyZS1hcHByb3ZhbD1uZXZlciddIDogW10pLCAvLyBEZWZhdWx0IHRvIG5vIGFwcHJvdmFsIGluIGFuIHVuYXR0ZW5kZWQgdGVzdFxuICAgICAgLi4uKG9wdGlvbnMub3B0aW9ucyA/PyBbXSksXG4gICAgICAvLyB1c2UgZXZlbnRzIGJlY2F1c2UgYmFyIHJlbmRlcnMgYmFkIGluIHRlc3RzXG4gICAgICAnLS1wcm9ncmVzcycsICdldmVudHMnLFxuICAgICAgLi4uKHNraXBTdGFja1JlbmFtZSA/IHN0YWNrTmFtZXMgOiB0aGlzLmZ1bGxTdGFja05hbWUoc3RhY2tOYW1lcykpLFxuICAgICAgLi4uKG9wdGlvbnMudGVsZW1ldHJ5RmlsZSA/IFsnLS11bnN0YWJsZT10ZWxlbWV0cnknLCBgLS10ZWxlbWV0cnktZmlsZT0ke29wdGlvbnMudGVsZW1ldHJ5RmlsZX1gXSA6IFtdKSxcbiAgICBdO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNka1N5bnRoKG9wdGlvbnM6IENka0NsaU9wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmNkayhbXG4gICAgICAnc3ludGgnLFxuICAgICAgLi4uKG9wdGlvbnMub3B0aW9ucyA/PyBbXSksXG4gICAgXSwgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2RrUmVmYWN0b3Iob3B0aW9uczogQ2RrQ2xpT3B0aW9ucyA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuY2RrKFtcbiAgICAgICdyZWZhY3RvcicsXG4gICAgICAuLi4ob3B0aW9ucy5vcHRpb25zID8/IFtdKSxcbiAgICBdLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjZGtEZXN0cm95KHN0YWNrTmFtZXM6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zOiBDZGtEZXN0cm95Q2xpT3B0aW9ucyA9IHt9KSB7XG4gICAgc3RhY2tOYW1lcyA9IHR5cGVvZiBzdGFja05hbWVzID09PSAnc3RyaW5nJyA/IFtzdGFja05hbWVzXSA6IHN0YWNrTmFtZXM7XG5cbiAgICAvLyBkZWZhdWx0IHRvIHRydWUgYmVjYXVzZSBtb3N0IHRlc3RzIGRvbid0IHRlc3QgdXNlciBpbnRlcmFjdGlvblxuICAgIGNvbnN0IGZvcmNlID0gb3B0aW9ucy5mb3JjZSA/PyB0cnVlO1xuXG4gICAgcmV0dXJuIHRoaXMuY2RrKFsnZGVzdHJveScsXG4gICAgICAuLi4oZm9yY2UgPyBbJy1mJ10gOiBbXSksIC8vIHBhc3MgLWYgaWYgdXNlciBpbnRlcmFjdGlvbiBpcyBub3QgZGVzaXJlZFxuICAgICAgLi4uKG9wdGlvbnMub3B0aW9ucyA/PyBbXSksXG4gICAgICAuLi50aGlzLmZ1bGxTdGFja05hbWUoc3RhY2tOYW1lcyldLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjZGtCb290c3RyYXBMZWdhY3kob3B0aW9uczogQ2RrTGVnYWN5Qm9vdHN0cmFwQ29tbWFuZE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGFyZ3MgPSBbJ2Jvb3RzdHJhcCddO1xuXG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgYXJncy5wdXNoKCctdicpO1xuICAgIH1cbiAgICBhcmdzLnB1c2goJy0tdG9vbGtpdC1zdGFjay1uYW1lJywgb3B0aW9ucy50b29sa2l0U3RhY2tOYW1lKTtcbiAgICBpZiAob3B0aW9ucy5ib290c3RyYXBCdWNrZXROYW1lKSB7XG4gICAgICBhcmdzLnB1c2goJy0tYm9vdHN0cmFwLWJ1Y2tldC1uYW1lJywgb3B0aW9ucy5ib290c3RyYXBCdWNrZXROYW1lKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMubm9FeGVjdXRlKSB7XG4gICAgICBhcmdzLnB1c2goJy0tbm8tZXhlY3V0ZScpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5wdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXJncy5wdXNoKCctLXB1YmxpYy1hY2Nlc3MtYmxvY2stY29uZmlndXJhdGlvbicsIG9wdGlvbnMucHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50YWdzKSB7XG4gICAgICBhcmdzLnB1c2goJy0tdGFncycsIG9wdGlvbnMudGFncyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2RrKGFyZ3MsIHtcbiAgICAgIC4uLm9wdGlvbnMuY2xpT3B0aW9ucyxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICAuLi5vcHRpb25zLmNsaU9wdGlvbnM/Lm1vZEVudixcbiAgICAgICAgLy8gc28gdGhhdCB0aGlzIHdvcmtzIGZvciBWMixcbiAgICAgICAgLy8gd2hlcmUgdGhlIFwibmV3XCIgYm9vdHN0cmFwIGlzIHRoZSBkZWZhdWx0XG4gICAgICAgIENES19MRUdBQ1lfQk9PVFNUUkFQOiAnMScsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNka0Jvb3RzdHJhcE1vZGVybihvcHRpb25zOiBDZGtNb2Rlcm5Cb290c3RyYXBDb21tYW5kT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgYXJncyA9IFsnYm9vdHN0cmFwJ107XG5cbiAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICBhcmdzLnB1c2goJy12Jyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnNob3dUZW1wbGF0ZSkge1xuICAgICAgYXJncy5wdXNoKCctLXNob3ctdGVtcGxhdGUnKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudGVtcGxhdGUpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS10ZW1wbGF0ZScsIG9wdGlvbnMudGVtcGxhdGUpO1xuICAgIH1cbiAgICBhcmdzLnB1c2goJy0tdG9vbGtpdC1zdGFjay1uYW1lJywgb3B0aW9ucy50b29sa2l0U3RhY2tOYW1lKTtcbiAgICBpZiAob3B0aW9ucy5ib290c3RyYXBCdWNrZXROYW1lKSB7XG4gICAgICBhcmdzLnB1c2goJy0tYm9vdHN0cmFwLWJ1Y2tldC1uYW1lJywgb3B0aW9ucy5ib290c3RyYXBCdWNrZXROYW1lKTtcbiAgICB9XG4gICAgYXJncy5wdXNoKCctLXF1YWxpZmllcicsIG9wdGlvbnMucXVhbGlmaWVyID8/IHRoaXMucXVhbGlmaWVyKTtcbiAgICBpZiAob3B0aW9ucy5jZm5FeGVjdXRpb25Qb2xpY3kpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1jbG91ZGZvcm1hdGlvbi1leGVjdXRpb24tcG9saWNpZXMnLCBvcHRpb25zLmNmbkV4ZWN1dGlvblBvbGljeSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRlcm1pbmF0aW9uUHJvdGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmdzLnB1c2goJy0tdGVybWluYXRpb24tcHJvdGVjdGlvbicsIG9wdGlvbnMudGVybWluYXRpb25Qcm90ZWN0aW9uLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5mb3JjZSkge1xuICAgICAgYXJncy5wdXNoKCctLWZvcmNlJyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRhZ3MpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS10YWdzJywgb3B0aW9ucy50YWdzKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuY3VzdG9tUGVybWlzc2lvbnNCb3VuZGFyeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmdzLnB1c2goJy0tY3VzdG9tLXBlcm1pc3Npb25zLWJvdW5kYXJ5Jywgb3B0aW9ucy5jdXN0b21QZXJtaXNzaW9uc0JvdW5kYXJ5KTtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXJncy5wdXNoKCctLWV4YW1wbGUtcGVybWlzc2lvbnMtYm91bmRhcnknKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuZGVueUV4dGVybmFsSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXJncy5wdXNoKG9wdGlvbnMuZGVueUV4dGVybmFsSWQgPyAnLS1kZW55LWV4dGVybmFsLWlkJyA6ICctLW5vLWRlbnktZXh0ZXJuYWwtaWQnKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy51c2VQcmV2aW91c1BhcmFtZXRlcnMgPT09IGZhbHNlKSB7XG4gICAgICBhcmdzLnB1c2goJy0tbm8tcHJldmlvdXMtcGFyYW1ldGVycycpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5ib290c3RyYXBUZW1wbGF0ZSkge1xuICAgICAgYXJncy5wdXNoKCctLXRlbXBsYXRlJywgb3B0aW9ucy5ib290c3RyYXBUZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudHJ1c3QgIT0gbnVsbCkge1xuICAgICAgYXJncy5wdXNoKCctLXRydXN0Jywgb3B0aW9ucy50cnVzdC5qb2luKCcsJykpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy51bnRydXN0ICE9IG51bGwpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS11bnRydXN0Jywgb3B0aW9ucy51bnRydXN0LmpvaW4oJywnKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2RrKGFyZ3MsIHtcbiAgICAgIC4uLm9wdGlvbnMuY2xpT3B0aW9ucyxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICAuLi5vcHRpb25zLmNsaU9wdGlvbnM/Lm1vZEVudixcbiAgICAgICAgLy8gc28gdGhhdCB0aGlzIHdvcmtzIGZvciBWMSxcbiAgICAgICAgLy8gd2hlcmUgdGhlIFwib2xkXCIgYm9vdHN0cmFwIGlzIHRoZSBkZWZhdWx0XG4gICAgICAgIENES19ORVdfQk9PVFNUUkFQOiAnMScsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNka0dhcmJhZ2VDb2xsZWN0KG9wdGlvbnM6IENka0dhcmJhZ2VDb2xsZWN0aW9uQ29tbWFuZE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGFyZ3MgPSBbXG4gICAgICAnZ2MnLFxuICAgICAgJy0tdW5zdGFibGU9Z2MnLCAvLyBUT0RPOiByZW1vdmUgd2hlbiBzdGFiaWxpemluZ1xuICAgICAgJy0tY29uZmlybT1mYWxzZScsXG4gICAgICAnLS1jcmVhdGVkLWJ1ZmZlci1kYXlzPTAnLCAvLyBPdGhlcndpc2UgYWxsIGFzc2V0cyBjcmVhdGVkIGR1cmluZyBpbnRlZyB0ZXN0cyBhcmUgdG9vIHlvdW5nXG4gICAgXTtcbiAgICBpZiAob3B0aW9ucy5yb2xsYmFja0J1ZmZlckRheXMpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1yb2xsYmFjay1idWZmZXItZGF5cycsIFN0cmluZyhvcHRpb25zLnJvbGxiYWNrQnVmZmVyRGF5cykpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50eXBlKSB7XG4gICAgICBhcmdzLnB1c2goJy0tdHlwZScsIG9wdGlvbnMudHlwZSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmJvb3RzdHJhcFN0YWNrTmFtZSkge1xuICAgICAgYXJncy5wdXNoKCctLWJvb3RzdHJhcFN0YWNrTmFtZScsIG9wdGlvbnMuYm9vdHN0cmFwU3RhY2tOYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jZGsoYXJncyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2RrTWlncmF0ZShsYW5ndWFnZTogc3RyaW5nLCBzdGFja05hbWU6IHN0cmluZywgaW5wdXRQYXRoPzogc3RyaW5nLCBvcHRpb25zPzogQ2RrQ2xpT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmNkayhbXG4gICAgICAnbWlncmF0ZScsXG4gICAgICAnLS1sYW5ndWFnZScsXG4gICAgICBsYW5ndWFnZSxcbiAgICAgICctLXN0YWNrLW5hbWUnLFxuICAgICAgc3RhY2tOYW1lLFxuICAgICAgJy0tZnJvbS1wYXRoJyxcbiAgICAgIGlucHV0UGF0aCA/PyBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAncmVzb3VyY2VzJywgJ3RlbXBsYXRlcycsICdzcXMtdGVtcGxhdGUuanNvbicpLnRvU3RyaW5nKCksXG4gICAgICAuLi4ob3B0aW9ucz8ub3B0aW9ucyA/PyBbXSksXG4gICAgXSwgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2RrKGFyZ3M6IHN0cmluZ1tdLCBvcHRpb25zOiBDZGtDbGlPcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB2ZXJib3NlID0gb3B0aW9ucy52ZXJib3NlID8/IHRydWU7XG5cbiAgICBpZiAoIXZlcmJvc2UgJiYgb3B0aW9ucy52ZXJib3NlTGV2ZWwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2ZXJib3NlIHN0YXRlOiB2ZXJib3NlIGlzIGZhbHNlIGFuZCB2ZXJib3NlTGV2ZWwgaXMgJHtvcHRpb25zLnZlcmJvc2VMZXZlbH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlTGV2ZWwgPSBvcHRpb25zLnZlcmJvc2VMZXZlbCA/PyAxO1xuXG4gICAgYXdhaXQgdGhpcy5jbGkubWFrZUNsaUF2YWlsYWJsZSgpO1xuXG4gICAgcmV0dXJuIHRoaXMuc2hlbGwoW1xuICAgICAgJ2NkaycsXG4gICAgICAuLi4odmVyYm9zZSA/IFtgLSR7J3YnLnJlcGVhdCh2ZXJib3NlTGV2ZWwpfWBdIDogW10pLFxuICAgICAgLi4uYXJncyxcbiAgICBdLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIC4uLnRoaXMuY2RrU2hlbGxFbnYoKSxcbiAgICAgICAgLi4ub3B0aW9ucy5tb2RFbnYsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggd2hpY2ggdG8gZXhlY3V0ZSBDREtcbiAgICovXG4gIHB1YmxpYyBjZGtTaGVsbEVudigpIHtcbiAgICAvLyBpZiB0ZXN0cyBhcmUgdXNpbmcgYW4gZXhwbGljaXQgYXdzIGlkZW50aXR5IGFscmVhZHkgKGkuZSBjcmVkcylcbiAgICAvLyBmb3JjZSBldmVyeSBjZGsgY29tbWFuZCB0byB1c2UgdGhlIHNhbWUgaWRlbnRpdHkuXG4gICAgY29uc3QgYXdzQ3JlZHMgPSB0aGlzLmF3cy5pZGVudGl0eUVudigpID8/IHt9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIEFXU19SRUdJT046IHRoaXMuYXdzLnJlZ2lvbixcbiAgICAgIEFXU19ERUZBVUxUX1JFR0lPTjogdGhpcy5hd3MucmVnaW9uLFxuICAgICAgU1RBQ0tfTkFNRV9QUkVGSVg6IHRoaXMuc3RhY2tOYW1lUHJlZml4LFxuICAgICAgUEFDS0FHRV9MQVlPVVRfVkVSU0lPTjogJzInLFxuICAgICAgVEVTVElOR19DREs6ICd0cnVlJyxcbiAgICAgIC8vIEluIHRoZXNlIHRlc3RzIHdlIHdhbnQgdG8gbWFrZSBhIGRpc3RpbmN0aW9uIGJldHdlZW4gc3Rkb3V0IGFuZCBzdGVyclxuICAgICAgQ0k6ICdmYWxzZScsXG4gICAgICAuLi5hd3NDcmVkcyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRlbXBsYXRlKHN0YWNrTmFtZTogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCBmdWxsU3RhY2tOYW1lID0gdGhpcy5mdWxsU3RhY2tOYW1lKHN0YWNrTmFtZSk7XG4gICAgY29uc3QgdGVtcGxhdGVQYXRoID0gcGF0aC5qb2luKHRoaXMuaW50ZWdUZXN0RGlyLCAnY2RrLm91dCcsIGAke2Z1bGxTdGFja05hbWV9LnRlbXBsYXRlLmpzb25gKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmModGVtcGxhdGVQYXRoLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJvb3RzdHJhcFJlcG9OYW1lKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgYXdhaXQgZW5zdXJlQm9vdHN0cmFwcGVkKHRoaXMpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe30pKTtcblxuICAgIGNvbnN0IHN0YWNrID0gKHJlc3BvbnNlLlN0YWNrcyA/PyBbXSlcbiAgICAgIC5maWx0ZXIoKHMpID0+IHMuU3RhY2tOYW1lICYmIHMuU3RhY2tOYW1lID09IHRoaXMuYm9vdHN0cmFwU3RhY2tOYW1lKTtcbiAgICBhc3NlcnQoc3RhY2subGVuZ3RoID09IDEpO1xuICAgIHJldHVybiBvdXRwdXRGcm9tU3RhY2soJ0ltYWdlUmVwb3NpdG9yeU5hbWUnLCBzdGFja1swXSkgPz8gJyc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJvb3RzdHJhcFN0YWNrTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mdWxsU3RhY2tOYW1lKCdib290c3RyYXAtc3RhY2snKTtcbiAgfVxuXG4gIHB1YmxpYyBmdWxsU3RhY2tOYW1lKHN0YWNrTmFtZTogc3RyaW5nKTogc3RyaW5nO1xuICBwdWJsaWMgZnVsbFN0YWNrTmFtZShzdGFja05hbWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdO1xuICBwdWJsaWMgZnVsbFN0YWNrTmFtZShzdGFja05hbWVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZyB8IHN0cmluZ1tdIHtcbiAgICBpZiAodHlwZW9mIHN0YWNrTmFtZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5zdGFja05hbWVQcmVmaXh9LSR7c3RhY2tOYW1lc31gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3RhY2tOYW1lcy5tYXAocyA9PiBgJHt0aGlzLnN0YWNrTmFtZVByZWZpeH0tJHtzfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmQgdGhpcyB0byB0aGUgbGlzdCBvZiBidWNrZXRzIHRvIHBvdGVudGlhbGx5IGRlbGV0ZVxuICAgKlxuICAgKiBBdCB0aGUgZW5kIG9mIGEgdGVzdCwgd2UgY2xlYW4gdXAgYnVja2V0cyB0aGF0IG1heSBub3QgaGF2ZSBnb3R0ZW4gZGVzdHJveWVkXG4gICAqIChmb3Igd2hhdGV2ZXIgcmVhc29uKS5cbiAgICovXG4gIHB1YmxpYyByZW1lbWJlclRvRGVsZXRlQnVja2V0KGJ1Y2tldE5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuYnVja2V0c1RvRGVsZXRlLnB1c2goYnVja2V0TmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW51cCBsZWZ0b3ZlciBzdGFja3MgYW5kIGJvb3RzdHJhcHBlZCByZXNvdXJjZXNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkaXNwb3NlKHN1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBhdG1vc3BoZXJlIHNlcnZpY2UsIGl0IGRvZXMgcmVzb3VyY2UgY2xlYW51cCBvbiBvdXIgYmVoYWxmXG4gICAgLy8gc28gd2UgZG9uJ3QgaGF2ZSB0byB3YWl0IGZvciBpdC5cbiAgICBpZiAoIWF0bW9zcGhlcmVFbmFibGVkKCkpIHtcbiAgICAgIGNvbnN0IHN0YWNrc1RvRGVsZXRlID0gYXdhaXQgdGhpcy5kZWxldGVhYmxlU3RhY2tzKHRoaXMuc3RhY2tOYW1lUHJlZml4KTtcblxuICAgICAgdGhpcy5zb3J0Qm9vdHN0cmFwU3RhY2tzVG9UaGVFbmQoc3RhY2tzVG9EZWxldGUpO1xuXG4gICAgICAvLyBCb290c3RyYXAgc3RhY2tzIGhhdmUgYnVja2V0cyB0aGF0IG5lZWQgdG8gYmUgY2xlYW5lZFxuICAgICAgY29uc3QgYnVja2V0TmFtZXMgPSBzdGFja3NUb0RlbGV0ZS5tYXAoc3RhY2sgPT4gb3V0cHV0RnJvbVN0YWNrKCdCdWNrZXROYW1lJywgc3RhY2spKS5maWx0ZXIoZGVmaW5lZCk7XG4gICAgICAvLyBQYXJhbGxlbGlzbSB3aWxsIGJlIHJlYXNvbmFibGVcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbVxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoYnVja2V0TmFtZXMubWFwKGIgPT4gdGhpcy5hd3MuZW1wdHlCdWNrZXQoYikpKTtcbiAgICAgIC8vIFRoZSBib290c3RyYXAgYnVja2V0IGhhcyBhIHJlbW92YWwgcG9saWN5IG9mIFJFVEFJTiBieSBkZWZhdWx0LCBzbyBhZGQgaXQgdG8gdGhlIGJ1Y2tldHMgdG8gYmUgY2xlYW5lZCB1cC5cbiAgICAgIHRoaXMuYnVja2V0c1RvRGVsZXRlLnB1c2goLi4uYnVja2V0TmFtZXMpO1xuXG4gICAgICAvLyBCb290c3RyYXAgc3RhY2tzIGhhdmUgRUNSIHJlcG9zaXRvcmllcyB3aXRoIGltYWdlcyB3aGljaCBzaG91bGQgYmUgZGVsZXRlZFxuICAgICAgY29uc3QgaW1hZ2VSZXBvc2l0b3J5TmFtZXMgPSBzdGFja3NUb0RlbGV0ZS5tYXAoc3RhY2sgPT4gb3V0cHV0RnJvbVN0YWNrKCdJbWFnZVJlcG9zaXRvcnlOYW1lJywgc3RhY2spKS5maWx0ZXIoZGVmaW5lZCk7XG4gICAgICAvLyBQYXJhbGxlbGlzbSB3aWxsIGJlIHJlYXNvbmFibGVcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbVxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoaW1hZ2VSZXBvc2l0b3J5TmFtZXMubWFwKHIgPT4gdGhpcy5hd3MuZGVsZXRlSW1hZ2VSZXBvc2l0b3J5KHIpKSk7XG5cbiAgICAgIGF3YWl0IHRoaXMuYXdzLmRlbGV0ZVN0YWNrcyhcbiAgICAgICAgLi4uc3RhY2tzVG9EZWxldGUubWFwKChzKSA9PiB7XG4gICAgICAgICAgaWYgKCFzLlN0YWNrTmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdGFjayBuYW1lIGlzIHJlcXVpcmVkIHRvIGRlbGV0ZSBhIHN0YWNrLicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcy5TdGFja05hbWU7XG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgICAgLy8gV2UgbWlnaHQgaGF2ZSBsZWFrZWQgc29tZSBidWNrZXRzIGJ5IHVwZ3JhZGluZyB0aGUgYm9vdHN0cmFwIHN0YWNrLiBCZVxuICAgICAgLy8gc3VyZSB0byBjbGVhbiBldmVyeXRoaW5nLlxuICAgICAgZm9yIChjb25zdCBidWNrZXQgb2YgdGhpcy5idWNrZXRzVG9EZWxldGUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hd3MuZGVsZXRlQnVja2V0KGJ1Y2tldCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHRlc3RzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHksIGhhcHBpbHkgZGVsZXRlIHRoZSBmaXh0dXJlXG4gICAgLy8gKG90aGVyd2lzZSBsZWF2ZSBpdCBmb3IgaHVtYW5zIHRvIGluc3BlY3QpXG4gICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgIGNvbnN0IGNsZWFuZWQgPSByaW1yYWYodGhpcy5pbnRlZ1Rlc3REaXIpO1xuICAgICAgaWYgKCFjbGVhbmVkKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjbGVhbiB1cCAke3RoaXMuaW50ZWdUZXN0RGlyfSBkdWUgdG8gcGVybWlzc2lvbnMgaXNzdWVzIChEb2NrZXIgcnVubmluZyBhcyByb290PylgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBzdGFja3Mgc3RhcnRpbmcgd2l0aCBvdXIgdGVzdGluZyBwcmVmaXggdGhhdCBzaG91bGQgYmUgZGVsZXRlZFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkZWxldGVhYmxlU3RhY2tzKHByZWZpeDogc3RyaW5nKTogUHJvbWlzZTxTdGFja1tdPiB7XG4gICAgY29uc3Qgc3RhdHVzRmlsdGVyID0gW1xuICAgICAgJ0NSRUFURV9JTl9QUk9HUkVTUycsICdDUkVBVEVfRkFJTEVEJywgJ0NSRUFURV9DT01QTEVURScsXG4gICAgICAnUk9MTEJBQ0tfSU5fUFJPR1JFU1MnLCAnUk9MTEJBQ0tfRkFJTEVEJywgJ1JPTExCQUNLX0NPTVBMRVRFJyxcbiAgICAgICdERUxFVEVfRkFJTEVEJyxcbiAgICAgICdVUERBVEVfSU5fUFJPR1JFU1MnLCAnVVBEQVRFX0NPTVBMRVRFX0NMRUFOVVBfSU5fUFJPR1JFU1MnLFxuICAgICAgJ1VQREFURV9DT01QTEVURScsICdVUERBVEVfUk9MTEJBQ0tfSU5fUFJPR1JFU1MnLFxuICAgICAgJ1VQREFURV9ST0xMQkFDS19GQUlMRUQnLFxuICAgICAgJ1VQREFURV9ST0xMQkFDS19DT01QTEVURV9DTEVBTlVQX0lOX1BST0dSRVNTJyxcbiAgICAgICdVUERBVEVfUk9MTEJBQ0tfQ09NUExFVEUnLCAnUkVWSUVXX0lOX1BST0dSRVNTJyxcbiAgICAgICdJTVBPUlRfSU5fUFJPR1JFU1MnLCAnSU1QT1JUX0NPTVBMRVRFJyxcbiAgICAgICdJTVBPUlRfUk9MTEJBQ0tfSU5fUFJPR1JFU1MnLCAnSU1QT1JUX1JPTExCQUNLX0ZBSUxFRCcsXG4gICAgICAnSU1QT1JUX1JPTExCQUNLX0NPTVBMRVRFJyxcbiAgICBdO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe30pKTtcblxuICAgIHJldHVybiAocmVzcG9uc2UuU3RhY2tzID8/IFtdKVxuICAgICAgLmZpbHRlcigocykgPT4gcy5TdGFja05hbWUgJiYgcy5TdGFja05hbWUuc3RhcnRzV2l0aChwcmVmaXgpKVxuICAgICAgLmZpbHRlcigocykgPT4gcy5TdGFja1N0YXR1cyAmJiBzdGF0dXNGaWx0ZXIuaW5jbHVkZXMocy5TdGFja1N0YXR1cykpXG4gICAgICAuZmlsdGVyKChzKSA9PiBzLlJvb3RJZCA9PT0gdW5kZWZpbmVkKTsgLy8gT25seSBkZWxldGUgcGFyZW50IHN0YWNrcy4gTmVzdGVkIHN0YWNrcyBhcmUgZGVsZXRlZCBpbiB0aGUgcHJvY2Vzc1xuICB9XG5cbiAgcHJpdmF0ZSBzb3J0Qm9vdHN0cmFwU3RhY2tzVG9UaGVFbmQoc3RhY2tzOiBTdGFja1tdKSB7XG4gICAgc3RhY2tzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmICghYS5TdGFja05hbWUgfHwgIWIuU3RhY2tOYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU3RhY2sgbmFtZXMgZG8gbm90IGV4aXN0cy4gVGhlc2UgYXJlIHJlcXVpcmVkIGZvciBzb3J0aW5nIHRoZSBib290c3RyYXAgc3RhY2tzLicpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhQnMgPSBhLlN0YWNrTmFtZS5zdGFydHNXaXRoKHRoaXMuYm9vdHN0cmFwU3RhY2tOYW1lKTtcbiAgICAgIGNvbnN0IGJCcyA9IGIuU3RhY2tOYW1lLnN0YXJ0c1dpdGgodGhpcy5ib290c3RyYXBTdGFja05hbWUpO1xuXG4gICAgICByZXR1cm4gYUJzICE9IGJCc1xuICAgICAgICAvLyAnKycgY29udmVydHMgYSBib29sZWFuIHRvIDAgb3IgMVxuICAgICAgICA/ICgrYUJzKSAtICgrYkJzKVxuICAgICAgICA6IGEuU3RhY2tOYW1lLmxvY2FsZUNvbXBhcmUoYi5TdGFja05hbWUpO1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogTWFrZSBzdXJlIHRoYXQgdGhlIGdpdmVuIGVudmlyb25tZW50IGlzIGJvb3RzdHJhcHBlZFxuICpcbiAqIFNpbmNlIHdlIGdvIHN0cmlwaW5nIGFjcm9zcyByZWdpb25zLCBpdCdzIGdvaW5nIHRvIHN1Y2sgZG9pbmcgdGhpc1xuICogYnkgaGFuZCBzbyBsZXQncyBqdXN0IG1hc3MtYXV0b21hdGUgaXQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVCb290c3RyYXBwZWQoZml4dHVyZTogVGVzdEZpeHR1cmUpIHtcbiAgLy8gQWx3YXlzIHVzZSB0aGUgbW9kZXJuIGJvb3RzdHJhcCBzdGFjaywgb3RoZXJ3aXNlIHdlIG1heSBnZXQgdGhlIGVycm9yXG4gIC8vIFwicmVmdXNpbmcgdG8gZG93bmdyYWRlIGZyb20gdmVyc2lvbiA3IHRvIHZlcnNpb24gMFwiIHdoZW4gYm9vdHN0cmFwcGluZyB3aXRoIGRlZmF1bHRcbiAgLy8gc2V0dGluZ3MgdXNpbmcgYSB2MSBDTEkuXG4gIC8vXG4gIC8vIEl0IGRvZXNuJ3QgbWF0dGVyIGZvciB0ZXN0czogd2hlbiB0aGV5IHdhbnQgdG8gdGVzdCBzb21ldGhpbmcgYWJvdXQgYW4gYWN0dWFsIGxlZ2FjeVxuICAvLyBib290c3RyYXAgc3RhY2ssIHRoZXknbGwgY3JlYXRlIGEgYm9vdHN0cmFwIHN0YWNrIHdpdGggYSBub24tZGVmYXVsdCBuYW1lIHRvIHRlc3QgdGhhdCBleGFjdCBwcm9wZXJ0eS5cbiAgY29uc3QgZW52U3BlY2lmaWVyID0gYGF3czovLyR7YXdhaXQgZml4dHVyZS5hd3MuYWNjb3VudCgpfS8ke2ZpeHR1cmUuYXdzLnJlZ2lvbn1gO1xuICBpZiAoQUxSRUFEWV9CT09UU1RSQVBQRURfSU5fVEhJU19SVU4uaGFzKGVudlNwZWNpZmllcikpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoYXRtb3NwaGVyZUVuYWJsZWQoKSkge1xuICAgIC8vIHdoZW4gYXRtb3NwaGVyZSBpcyBlbmFibGVkLCBlYWNoIHRlc3Qgc3RhcnRzIHdpdGggYW4gZW1wdHkgZW52aXJvbm1lbnRcbiAgICAvLyBhbmQgbmVlZHMgdG8gZGVwbG95IHRoZSBib290c3RyYXAgc3RhY2suIGluIGNhc2UgZW52aXJvbm1lbnRzIGFyZSByZWN5bGNlZCB0b28gcXVpY2tseSxcbiAgICAvLyBjbG91ZGZvcm1hdGlvbiBtYXkgdGhpbmsgdGhlIGJvb3RzdHJhcCBidWNrZXQgc3RpbGwgZXhpc3RzIGV2ZW4gdGhvdWdoIGl0IGRvZXNudCAoYmVjYXVzZSBvZiBzMyBldmVudHVhbCBjb25zaXN0ZW5jeSkuXG4gICAgLy8gc28gd2UgcmV0cnkgb24gdGhlIHNwZWNpZmljIGVycm9yIGZvciBhIHdoaWxlLlxuICAgIGF3YWl0IGJvb3RzdHJhcFdpdGhSZXRyeU9uQnVja2V0RXhpc3RzKGVudlNwZWNpZmllciwgZml4dHVyZSk7XG4gIH0gZWxzZSB7XG4gICAgYXdhaXQgZG9Cb290c3RyYXAoZW52U3BlY2lmaWVyLCBmaXh0dXJlLCBmYWxzZSk7XG4gIH1cblxuICAvLyB3aGVuIHVzaW5nIHRoZSBhdG1vc3BoZXJlIHNlcnZpY2UsIGV2ZXJ5IHRlc3QgbmVlZHMgdG8gYm9vdHN0cmFwXG4gIC8vIGl0cyBvd24gZW52aXJvbm1lbnQuXG4gIGlmICghYXRtb3NwaGVyZUVuYWJsZWQoKSkge1xuICAgIEFMUkVBRFlfQk9PVFNUUkFQUEVEX0lOX1RISVNfUlVOLmFkZChlbnZTcGVjaWZpZXIpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRvQm9vdHN0cmFwKGVudlNwZWNpZmllcjogc3RyaW5nLCBmaXh0dXJlOiBUZXN0Rml4dHVyZSwgYWxsb3dFcnJFeGl0OiBib29sZWFuKSB7XG4gIHJldHVybiBmaXh0dXJlLmNkayhbJ2Jvb3RzdHJhcCcsICctLWJvb3RzdHJhcC1rbXMta2V5LWlkJywgJ0FXU19NQU5BR0VEX0tFWScsIGVudlNwZWNpZmllcl0sIHtcbiAgICBtb2RFbnY6IHtcbiAgICAgIC8vIEV2ZW4gZm9yIHYxLCB1c2UgbmV3IGJvb3RzdHJhcFxuICAgICAgQ0RLX05FV19CT09UU1RSQVA6ICcxJyxcbiAgICAgIC8vIHdoZW4gYWxsb3dpbmcgZXJyb3IgZXhpdCwgd2UgcHJvYmFibHkgd2FudCB0byBpbnNwZWN0XG4gICAgICAvLyBhbmQgY29tcGFyZSBvdXRwdXQsIHdoaWNoIGlzIGJldHRlciBkb25lIHdpdGhvdXQgY29sb3IgY2hhcmFjdGVycy5cbiAgICAgIC4uLihhbGxvd0VyckV4aXQgPyB7IEZPUkNFX0NPTE9SOiAnMCcgfSA6IHt9KSxcbiAgICB9LFxuICAgIGFsbG93RXJyRXhpdCxcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGJvb3RzdHJhcFdpdGhSZXRyeU9uQnVja2V0RXhpc3RzKGVudlNwZWNpZmllcjogc3RyaW5nLCBmaXh0dXJlOiBUZXN0Rml4dHVyZSkge1xuICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZml4dHVyZS5hd3MuYWNjb3VudCgpO1xuICBjb25zdCByZXRyeUFmdGVyU2Vjb25kcyA9IDMwO1xuICBjb25zdCBib290c3RyYXBCdWNrZXQgPSBgY2RrLWhuYjY1OWZkcy1hc3NldHMtJHthY2NvdW50fS0ke2ZpeHR1cmUuYXdzLnJlZ2lvbn1gO1xuXG4gIC8vIHMzIHNheXMgdGhhdCBhIGJ1Y2tldCBkZWxldGlvbiBjYW4gdGFrZSB1cCB0byBhbiBob3VyIHRvIGJlIGZ1bGx5IHZpc2libGUuXG4gIC8vIGVtcGlyaWNhbGx5IHdlIHNlZSB0aGF0IGEgZmV3IG1pbnV0ZXMgaXMgZW5vdWdoIHRob3VnaC4gbGV0cyBnaXZlIDEwIHRvIGJlIG9uIHRoZSBzYWZlKHIpIHNpZGUuXG4gIGNvbnN0IHRpbWVvdXRNaW51dGVzID0gMTA7XG5cbiAgY29uc3QgdGltZW91dERhdGUgPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgdGltZW91dE1pbnV0ZXMgKiA2MCAqIDEwMDApO1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IG91dCA9IGF3YWl0IGRvQm9vdHN0cmFwKGVudlNwZWNpZmllciwgZml4dHVyZSwgdHJ1ZSk7XG4gICAgaWYgKG91dC5pbmNsdWRlcyhgRW52aXJvbm1lbnQgJHtlbnZTcGVjaWZpZXJ9IGJvb3RzdHJhcHBlZGApKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKG91dC5pbmNsdWRlcyhgJHtib290c3RyYXBCdWNrZXR9IGFscmVhZHkgZXhpc3RzYCkpIHtcbiAgICAgIC8vIG1pZ2h0IGJlIGFuIHMzIGV2ZW50dWFseSBjb25zaXN0ZW5jeSBpc3N1ZSBkdWUgdG8gcmVjeWNsZWQgZW52aXJvbm1lbnRzLlxuICAgICAgaWYgKERhdGUubm93KCkgPCB0aW1lb3V0RGF0ZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgZml4dHVyZS5sb2coYEJvb3RzdHJhcCBvZiAke2VudlNwZWNpZmllcn0gZmFpbGVkIGR1ZSB0byBidWNrZXQgZXhpc3RlbmNlIGNoZWNrLiBSZXRyeWluZyBpbiAke3JldHJ5QWZ0ZXJTZWNvbmRzfSBzZWNvbmRzLi4uYCk7XG4gICAgICAgIGF3YWl0IHNsZWVwKHJldHJ5QWZ0ZXJTZWNvbmRzICogMTAwMCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCBib290c3RyYXBwaW5nICR7ZW52U3BlY2lmaWVyfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlZmluZWQ8QT4oeDogQSk6IHggaXMgTm9uTnVsbGFibGU8QT4ge1xuICByZXR1cm4geCAhPT0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEluc3RhbGwgdGhlIGdpdmVuIE5QTSBwYWNrYWdlcywgaWRlbnRpZmllZCBieSB0aGVpciBuYW1lcyBhbmQgdmVyc2lvbnNcbiAqXG4gKiBXb3JrcyBieSB3cml0aW5nIHRoZSBwYWNrYWdlcyB0byBhIGBwYWNrYWdlLmpzb25gIGZpbGUsIGFuZFxuICogdGhlbiBydW5uaW5nIE5QTTcncyBcImluc3RhbGxcIiBvbiBpdC4gVGhlIHVzZSBvZiBOUE03IHdpbGwgYXV0b21hdGljYWxseVxuICogaW5zdGFsbCByZXF1aXJlZCBwZWVyRGVwZW5kZW5jaWVzLlxuICpcbiAqIElmIHdlJ3JlIHJ1bm5pbmcgaW4gUkVQTyBtb2RlIGFuZCB3ZSBmaW5kIHRoZSBwYWNrYWdlIGluIHRoZSBzZXQgb2YgbG9jYWxcbiAqIHBhY2thZ2VzIGluIHRoZSByZXBvc2l0b3J5LCB3ZSdsbCB3cml0ZSB0aGUgZGlyZWN0b3J5IG5hbWUgdG8gYHBhY2thZ2UuanNvbmBcbiAqIHNvIHRoYXQgTlBNIHdpbGwgY3JlYXRlIGEgc3ltbGluayAodGhpcyBhbGxvd3MgcnVubmluZyB0ZXN0cyBhZ2FpbnN0XG4gKiBidWlsdC1idXQtdW5wYWNrYWdlZCBtb2R1bGVzLCBhbmQgc2F2ZXMgZGV2IGN5Y2xlIHRpbWUpLlxuICpcbiAqIEJlIGF3YXJlIHlvdSBNVVNUIGluc3RhbGwgYWxsIHRoZSBwYWNrYWdlcyB5b3UgZGlyZWN0bHkgZGVwZW5kIHVwb24hIEluIHRoZSBjYXNlXG4gKiBvZiBhIHJlcG8vc3ltbGlua2luZyBpbnN0YWxsLCB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcyBXSUxMIE5PVCBiZSBpbnN0YWxsZWQgaW4gdGhlXG4gKiBjdXJyZW50IGRpcmVjdG9yeSdzIGBub2RlX21vZHVsZXNgIGRpcmVjdG9yeSwgYmVjYXVzZSB0aGV5IHdpbGwgYWxyZWFkeSBoYXZlIGJlZW5cbiAqIHN5bWxpbmtlZCBmcm9tIHRoZSBUQVJHRVQgZGlyZWN0b3J5J3MgYG5vZGVfbW9kdWxlc2AgZGlyZWN0b3J5ICh3aGljaCBpcyBzdWZmaWNpZW50XG4gKiBmb3IgTm9kZSdzIGRlcGVuZGVuY3kgbG9va3VwIG1lY2hhbmlzbSkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnN0YWxsTnBtUGFja2FnZXMoZml4dHVyZTogVGVzdEZpeHR1cmUsIHBhY2thZ2VzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gIGlmIChwcm9jZXNzLmVudi5SRVBPX1JPT1QpIHtcbiAgICBjb25zdCBtb25vUmVwbyA9IGF3YWl0IGZpbmRZYXJuUGFja2FnZXMocHJvY2Vzcy5lbnYuUkVQT19ST09UKTtcblxuICAgIC8vIFJlcGxhY2UgdGhlIGluc3RhbGwgdGFyZ2V0IHdpdGggdGhlIHBoeXNpY2FsIGxvY2F0aW9uIG9mIHRoaXMgcGFja2FnZVxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHBhY2thZ2VzKSkge1xuICAgICAgaWYgKGtleSBpbiBtb25vUmVwbykge1xuICAgICAgICBwYWNrYWdlc1trZXldID0gbW9ub1JlcG9ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ3BhY2thZ2UuanNvbicpLCBKU09OLnN0cmluZ2lmeSh7XG4gICAgbmFtZTogJ2Nkay1pbnRlZy10ZXN0cycsXG4gICAgcHJpdmF0ZTogdHJ1ZSxcbiAgICB2ZXJzaW9uOiAnMC4wLjEnLFxuICAgIGRldkRlcGVuZGVuY2llczogcGFja2FnZXMsXG4gIH0sIHVuZGVmaW5lZCwgMiksIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG5cbiAgLy8gd2Ugb2Z0ZW4gRUNPTk5SRVNFVCBmcm9tIE5QTSBzbyBsZXRzIHJldHJ5LiB0aGlzIG1pZ2h0IGJlIGJlY2F1c2Ugb2YgaGlnaCBjb25jdXJyZW5jeVxuICAvLyB3aGljaCBvdmVyd2hlbG1lcyBzeXN0ZW0gcmVzb3VyY2VzLlxuICBjb25zdCB0aW1lb3V0TWludXRlcyA9IDEwO1xuICBjb25zdCB0aW1lb3V0RGF0ZSA9IG5ldyBEYXRlKERhdGUubm93KCkgKyB0aW1lb3V0TWludXRlcyAqIDYwICogMTAwMCk7XG4gIGNvbnN0IHJldHJ5QWZ0ZXJTZWNvbmRzID0gMzA7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICB0cnkge1xuICAgICAgLy8gTm93IGluc3RhbGwgdGhhdCBgcGFja2FnZS5qc29uYCB1c2luZyBOUE03XG4gICAgICBhd2FpdCBmaXh0dXJlLnNoZWxsKFsnbm9kZScsIHJlcXVpcmUucmVzb2x2ZSgnbnBtJyksICdpbnN0YWxsJ10pO1xuICAgICAgYnJlYWs7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoRGF0ZS5ub3coKSA8IHRpbWVvdXREYXRlLmdldFRpbWUoKSAmJiBmaXh0dXJlLm91dHB1dC50b1N0cmluZygpLmluY2x1ZGVzKCdFQ09OTlJFU0VUJyApKSB7XG4gICAgICAgIGZpeHR1cmUubG9nKGBucG0gaW5zdGFsbCBmYWlsZWQgZHVlIHRvIEVDT05OUkVTRVQuIFJldHJ5aW5nIGluICR7cmV0cnlBZnRlclNlY29uZHN9IHNlY29uZHMuLi5gKTtcbiAgICAgICAgYXdhaXQgc2xlZXAocmV0cnlBZnRlclNlY29uZHMgKiAxMDAwKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBBTFJFQURZX0JPT1RTVFJBUFBFRF9JTl9USElTX1JVTiA9IG5ldyBTZXQoKTtcbiJdfQ==
655
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jZGstYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2l0aC1jZGstYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdDQSxnREErQ0M7QUFLRCxnQ0FLQztBQUVELDhDQStDQztBQVdELGdEQUVDO0FBRUQsa0RBRUM7QUFFRCxnRUFFQztBQUVELHNEQUVDO0FBU0QsOEJBcUJDO0FBbUJELDRDQUVDO0FBaUJELHdDQUlDO0FBaWhCRCxnREEyQkM7QUFnRUQsZ0RBdUNDO0FBOTNCRCwrQkFBK0I7QUFDL0IsaUNBQWlDO0FBQ2pDLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLDBFQUF1RTtBQUN2RSxrRUFBMEU7QUFFMUUsK0JBQStDO0FBRy9DLDZEQUEwRDtBQUMxRCwyQ0FBNEM7QUFFNUMsbUNBQXFEO0FBRXJELHlDQUF3RDtBQUN4RCxpREFBNkM7QUFDN0MsaUNBQTBDO0FBRTdCLFFBQUEsc0JBQXNCLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNqQyxRQUFBLHVCQUF1QixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFFL0M7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGtCQUFrQixDQUNoQyxPQUFlLEVBQ2YsS0FBOEM7SUFFOUMsT0FBTyxLQUFLLEVBQUUsT0FBMkQsRUFBRSxFQUFFO1FBQzNFLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDbkMsTUFBTSxlQUFlLEdBQUcsV0FBVyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxhQUFhLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFbEUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLGVBQWUsSUFBSSxDQUFDLENBQUM7UUFDOUQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLFlBQVks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Q0gsNkNBQTZDO1lBQzdDLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDakUsTUFBTTtRQUNSLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUUsRUFBRSxDQUFDO2dCQUM1RixPQUFPLENBQUMsR0FBRyxDQUFDLHFEQUFxRCxpQkFBaUIsYUFBYSxDQUFDLENBQUM7Z0JBQ2pHLE1BQU0sSUFBQSxXQUFLLEVBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQ3RDLFNBQVM7WUFDWCxDQUFDO1lBQ0QsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLGdDQUFnQyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IERlc2NyaWJlU3RhY2tzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVjci1wdWJsaWMnO1xuaW1wb3J0IHR5cGUgeyBBd3NDbGllbnRzIH0gZnJvbSAnLi9hd3MnO1xuaW1wb3J0IHsgb3V0cHV0RnJvbVN0YWNrLCBzbGVlcCB9IGZyb20gJy4vYXdzJztcbmltcG9ydCB0eXBlIHsgVGVzdENvbnRleHQgfSBmcm9tICcuL2ludGVnLXRlc3QnO1xuaW1wb3J0IHR5cGUgeyBJVGVzdENsaVNvdXJjZSwgSVRlc3RMaWJyYXJ5U291cmNlIH0gZnJvbSAnLi9wYWNrYWdlLXNvdXJjZXMvc291cmNlJztcbmltcG9ydCB7IHRlc3RTb3VyY2UgfSBmcm9tICcuL3BhY2thZ2Utc291cmNlcy9zdWJwcm9jZXNzJztcbmltcG9ydCB7IFJFU09VUkNFU19ESVIgfSBmcm9tICcuL3Jlc291cmNlcyc7XG5pbXBvcnQgdHlwZSB7IFNoZWxsT3B0aW9ucyB9IGZyb20gJy4vc2hlbGwnO1xuaW1wb3J0IHsgc2hlbGwsIFNoZWxsSGVscGVyLCByaW1yYWYgfSBmcm9tICcuL3NoZWxsJztcbmltcG9ydCB0eXBlIHsgQXdzQ29udGV4dCB9IGZyb20gJy4vd2l0aC1hd3MnO1xuaW1wb3J0IHsgYXRtb3NwaGVyZUVuYWJsZWQsIHdpdGhBd3MgfSBmcm9tICcuL3dpdGgtYXdzJztcbmltcG9ydCB7IHdpdGhUaW1lb3V0IH0gZnJvbSAnLi93aXRoLXRpbWVvdXQnO1xuaW1wb3J0IHsgZmluZFlhcm5QYWNrYWdlcyB9IGZyb20gJy4veWFybic7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RFU1RfVElNRU9VVF9TID0gMjAgKiA2MDtcbmV4cG9ydCBjb25zdCBFWFRFTkRFRF9URVNUX1RJTUVPVVRfUyA9IDMwICogNjA7XG5cbi8qKlxuICogSGlnaGVyIG9yZGVyIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgYSBibG9jayB3aXRoIGEgQ0RLIGFwcCBmaXh0dXJlXG4gKlxuICogUmVxdWlyZXMgYW4gQVdTIGNsaWVudCB0byBiZSBwYXNzZWQgaW4uXG4gKlxuICogRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgdGVzdHMgKHNvIHdlIGRvbid0IGhhdmUgdG8gY2hhbmdlXG4gKiB0b28gbXVjaCkgdGhlIGlubmVyIGJsb2NrIGlzIGV4cGVjdGVkIHRvIHRha2UgYSBgVGVzdEZpeHR1cmVgIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhTcGVjaWZpY0Nka0FwcChcbiAgYXBwTmFtZTogc3RyaW5nLFxuICBibG9jazogKGNvbnRleHQ6IFRlc3RGaXh0dXJlKSA9PiBQcm9taXNlPHZvaWQ+LFxuKTogKGNvbnRleHQ6IFRlc3RDb250ZXh0ICYgQXdzQ29udGV4dCAmIERpc2FibGVCb290c3RyYXBDb250ZXh0KSA9PiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIGFzeW5jIChjb250ZXh0OiBUZXN0Q29udGV4dCAmIEF3c0NvbnRleHQgJiBEaXNhYmxlQm9vdHN0cmFwQ29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHJhbmR5ID0gY29udGV4dC5yYW5kb21TdHJpbmc7XG4gICAgY29uc3Qgc3RhY2tOYW1lUHJlZml4ID0gYGNka3Rlc3QtJHtyYW5keX1gO1xuICAgIGNvbnN0IGludGVnVGVzdERpciA9IHBhdGguam9pbihvcy50bXBkaXIoKSwgYGNkay1pbnRlZy0ke3JhbmR5fWApO1xuXG4gICAgY29udGV4dC5vdXRwdXQud3JpdGUoYCBTdGFjayBwcmVmaXg6ICAgJHtzdGFja05hbWVQcmVmaXh9XFxuYCk7XG4gICAgY29udGV4dC5vdXRwdXQud3JpdGUoYCBUZXN0IGRpcmVjdG9yeTogJHtpbnRlZ1Rlc3REaXJ9XFxuYCk7XG4gICAgY29udGV4dC5vdXRwdXQud3JpdGUoYCBSZWdpb246ICAgICAgICAgJHtjb250ZXh0LmF3cy5yZWdpb259XFxuYCk7XG5cbiAgICBhd2FpdCBjbG9uZURpcmVjdG9yeShwYXRoLmpvaW4oUkVTT1VSQ0VTX0RJUiwgJ2Nkay1hcHBzJywgYXBwTmFtZSksIGludGVnVGVzdERpciwgY29udGV4dC5vdXRwdXQpO1xuICAgIGNvbnN0IGZpeHR1cmUgPSBuZXcgVGVzdEZpeHR1cmUoXG4gICAgICBpbnRlZ1Rlc3REaXIsXG4gICAgICBzdGFja05hbWVQcmVmaXgsXG4gICAgICBjb250ZXh0Lm91dHB1dCxcbiAgICAgIGNvbnRleHQuYXdzLFxuICAgICAgY29udGV4dC5yYW5kb21TdHJpbmcpO1xuICAgIGF3YWl0IGZpeHR1cmUuZWNyUHVibGljTG9naW4oKTtcblxuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaW5zdGFsbGF0aW9uVmVyc2lvbiA9IGZpeHR1cmUubGlicmFyeS5yZXF1ZXN0ZWRWZXJzaW9uKCk7XG5cbiAgICAgIGF3YWl0IGluc3RhbGxOcG1QYWNrYWdlcyhmaXh0dXJlLCB7XG4gICAgICAgICdhd3MtY2RrLWxpYic6IGluc3RhbGxhdGlvblZlcnNpb24sXG4gICAgICAgICdjb25zdHJ1Y3RzJzogJ14xMCcsXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFjb250ZXh0LmRpc2FibGVCb290c3RyYXApIHtcbiAgICAgICAgYXdhaXQgZW5zdXJlQm9vdHN0cmFwcGVkKGZpeHR1cmUpO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBibG9jayhmaXh0dXJlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgICB0aHJvdyBlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuSU5URUdfTk9fQ0xFQU4pIHtcbiAgICAgICAgY29udGV4dC5sb2coYExlZnQgdGVzdCBkaXJlY3RvcnkgaW4gJyR7aW50ZWdUZXN0RGlyfScgKCRJTlRFR19OT19DTEVBTilcXG5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IGZpeHR1cmUuZGlzcG9zZShzdWNjZXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogTGlrZSBgd2l0aFNwZWNpZmljQ2RrQXBwYCwgYnV0IHVzZXMgdGhlIGRlZmF1bHQgaW50ZWdyYXRpb24gdGVzdGluZyBhcHAgd2l0aCBhIG1pbGxpb24gc3RhY2tzIGluIGl0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ2RrQXBwKFxuICBibG9jazogKGNvbnRleHQ6IFRlc3RGaXh0dXJlKSA9PiBQcm9taXNlPHZvaWQ+LFxuKTogKGNvbnRleHQ6IFRlc3RDb250ZXh0ICYgQXdzQ29udGV4dCAmIERpc2FibGVCb290c3RyYXBDb250ZXh0KSA9PiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gJ2FwcCcgaXMgdGhlIG5hbWUgb2YgdGhlIGRlZmF1bHQgaW50ZWdyYXRpb24gYXBwIGluIHRoZSBgY2RrLWFwcHNgIGRpcmVjdG9yeVxuICByZXR1cm4gd2l0aFNwZWNpZmljQ2RrQXBwKCdhcHAnLCBibG9jayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ2RrTWlncmF0ZUFwcChcbiAgbGFuZ3VhZ2U6IHN0cmluZyxcbiAgYmxvY2s6IChjb250ZXh0OiBUZXN0Rml4dHVyZSkgPT4gUHJvbWlzZTx2b2lkPixcbik6IChjb250ZXh0OiBUZXN0Q29udGV4dCAmIEF3c0NvbnRleHQgJiBEaXNhYmxlQm9vdHN0cmFwQ29udGV4dCkgPT4gUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBhc3luYyAoY29udGV4dDogVGVzdENvbnRleHQgJiBBd3NDb250ZXh0ICYgRGlzYWJsZUJvb3RzdHJhcENvbnRleHQpID0+IHtcbiAgICBjb25zdCBzdGFja05hbWUgPSBgY2RrLW1pZ3JhdGUtJHtsYW5ndWFnZX0taW50ZWctJHtjb250ZXh0LnJhbmRvbVN0cmluZ31gO1xuICAgIGNvbnN0IGludGVnVGVzdERpciA9IHBhdGguam9pbihvcy50bXBkaXIoKSwgYGNkay1taWdyYXRlLSR7bGFuZ3VhZ2V9LWludGVnLSR7Y29udGV4dC5yYW5kb21TdHJpbmd9YCk7XG5cbiAgICBjb250ZXh0Lm91dHB1dC53cml0ZShgIFN0YWNrIG5hbWU6ICAgJHtzdGFja05hbWV9XFxuYCk7XG4gICAgY29udGV4dC5vdXRwdXQud3JpdGUoYCBUZXN0IGRpcmVjdG9yeTogJHtpbnRlZ1Rlc3REaXJ9XFxuYCk7XG5cbiAgICBmcy5ta2RpclN5bmMoaW50ZWdUZXN0RGlyKTtcbiAgICBjb25zdCBmaXh0dXJlID0gbmV3IFRlc3RGaXh0dXJlKFxuICAgICAgaW50ZWdUZXN0RGlyLFxuICAgICAgc3RhY2tOYW1lLFxuICAgICAgY29udGV4dC5vdXRwdXQsXG4gICAgICBjb250ZXh0LmF3cyxcbiAgICAgIGNvbnRleHQucmFuZG9tU3RyaW5nLFxuICAgICk7XG4gICAgYXdhaXQgZml4dHVyZS5lY3JQdWJsaWNMb2dpbigpO1xuXG4gICAgYXdhaXQgZW5zdXJlQm9vdHN0cmFwcGVkKGZpeHR1cmUpO1xuXG4gICAgYXdhaXQgZml4dHVyZS5jZGtNaWdyYXRlKGxhbmd1YWdlLCBzdGFja05hbWUpO1xuXG4gICAgY29uc3QgdGVzdEZpeHR1cmUgPSBuZXcgVGVzdEZpeHR1cmUoXG4gICAgICBwYXRoLmpvaW4oaW50ZWdUZXN0RGlyLCBzdGFja05hbWUpLFxuICAgICAgc3RhY2tOYW1lLFxuICAgICAgY29udGV4dC5vdXRwdXQsXG4gICAgICBjb250ZXh0LmF3cyxcbiAgICAgIGNvbnRleHQucmFuZG9tU3RyaW5nLFxuICAgICk7XG5cbiAgICBsZXQgc3VjY2VzcyA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGJsb2NrKHRlc3RGaXh0dXJlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgICB0aHJvdyBlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuSU5URUdfTk9fQ0xFQU4pIHtcbiAgICAgICAgY29udGV4dC5sb2coYExlZnQgdGVzdCBkaXJlY3RvcnkgaW4gJyR7aW50ZWdUZXN0RGlyfScgKCRJTlRFR19OT19DTEVBTilgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IGZpeHR1cmUuZGlzcG9zZShzdWNjZXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogRGVmYXVsdCB0ZXN0IGZpeHR1cmUgZm9yIG1vc3QgKGFsbD8pIGludGVnIHRlc3RzXG4gKlxuICogSXQncyBhIGNvbXBvc2l0aW9uIG9mIHdpdGhBd3Mvd2l0aENka0FwcCwgZXhwZWN0aW5nIHRoZSB0ZXN0IGJsb2NrIHRvIHRha2UgYSBgVGVzdEZpeHR1cmVgXG4gKiBvYmplY3QuXG4gKlxuICogV2UgY291bGQgaGF2ZSBwdXQgYHdpdGhBd3Mod2l0aENka0FwcChmaXh0dXJlID0+IHsgLy4uLiBhY3R1YWwgdGVzdCBoZXJlLi4uLyB9KSlgIGluIGV2ZXJ5XG4gKiB0ZXN0IGRlY2xhcmF0aW9uIGJ1dCBjZW50cmFsaXppbmcgaXQgaXMgZ29pbmcgdG8gbWFrZSBpdCBjb252ZW5pZW50IHRvIG1vZGlmeSBpbiB0aGUgZnV0dXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aERlZmF1bHRGaXh0dXJlKGJsb2NrOiAoY29udGV4dDogVGVzdEZpeHR1cmUpID0+IFByb21pc2U8dm9pZD4pIHtcbiAgcmV0dXJuIHdpdGhBd3Mod2l0aFRpbWVvdXQoREVGQVVMVF9URVNUX1RJTUVPVVRfUywgd2l0aENka0FwcChibG9jaykpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhTcGVjaWZpY0ZpeHR1cmUoYXBwTmFtZTogc3RyaW5nLCBibG9jazogKGNvbnRleHQ6IFRlc3RGaXh0dXJlKSA9PiBQcm9taXNlPHZvaWQ+KSB7XG4gIHJldHVybiB3aXRoQXdzKHdpdGhUaW1lb3V0KERFRkFVTFRfVEVTVF9USU1FT1VUX1MsIHdpdGhTcGVjaWZpY0Nka0FwcChhcHBOYW1lLCBibG9jaykpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhFeHRlbmRlZFRpbWVvdXRGaXh0dXJlKGJsb2NrOiAoY29udGV4dDogVGVzdEZpeHR1cmUpID0+IFByb21pc2U8dm9pZD4pIHtcbiAgcmV0dXJuIHdpdGhBd3Mod2l0aFRpbWVvdXQoRVhURU5ERURfVEVTVF9USU1FT1VUX1MsIHdpdGhDZGtBcHAoYmxvY2spKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ0RLTWlncmF0ZUZpeHR1cmUobGFuZ3VhZ2U6IHN0cmluZywgYmxvY2s6IChjb250ZW50OiBUZXN0Rml4dHVyZSkgPT4gUHJvbWlzZTx2b2lkPikge1xuICByZXR1cm4gd2l0aEF3cyh3aXRoVGltZW91dChERUZBVUxUX1RFU1RfVElNRU9VVF9TLCB3aXRoQ2RrTWlncmF0ZUFwcChsYW5ndWFnZSwgYmxvY2spKSk7XG59XG5cbi8qKlxuICogUmV0cnkgd3JhcHBlciB0aGF0IGV4ZWN1dGVzIGEgdGVzdCBjYWxsYmFjayB1cCB0byBtYXhBdHRlbXB0cyB0aW1lc1xuICpcbiAqIElmIGFueSBhdHRlbXB0IHN1Y2NlZWRzLCBpdCByZXR1cm5zIGltbWVkaWF0ZWx5LiBJZiBhbGwgYXR0ZW1wdHMgZmFpbCxcbiAqIGl0IHRocm93cyB0aGUgbGFzdCBlcnJvciBlbmNvdW50ZXJlZC5cbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFJldHJ5PFQgZXh0ZW5kcyBUZXN0Q29udGV4dD4oXG4gIGNhbGxiYWNrOiAoY29udGV4dDogVCkgPT4gUHJvbWlzZTx2b2lkPixcbiAgbWF4QXR0ZW1wdHM6IG51bWJlciA9IDIsXG4pOiAoY29udGV4dDogVCkgPT4gUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBhc3luYyAoY29udGV4dDogVCkgPT4ge1xuICAgIGxldCBsYXN0RXJyb3I7XG5cbiAgICBmb3IgKGxldCBhdHRlbXB0ID0gMTsgYXR0ZW1wdCA8PSBtYXhBdHRlbXB0czsgYXR0ZW1wdCsrKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBjYWxsYmFjayhjb250ZXh0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbGFzdEVycm9yID0gZXJyb3I7XG4gICAgICAgIGlmIChhdHRlbXB0IDwgbWF4QXR0ZW1wdHMpIHtcbiAgICAgICAgICBjb250ZXh0LmxvZyhgQXR0ZW1wdCAke2F0dGVtcHR9LyR7bWF4QXR0ZW1wdHN9IGZhaWxlZDogJHtlcnJvcn0uIFJldHJ5aW5nLi4uYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBsYXN0RXJyb3I7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzYWJsZUJvb3RzdHJhcENvbnRleHQge1xuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIGNyZWF0aW5nIHRoZSBkZWZhdWx0IGJvb3RzdHJhcFxuICAgKiBzdGFjayBwcmlvciB0byBydW5uaW5nIHRoZSB0ZXN0XG4gICAqXG4gICAqIFRoaXMgc2hvdWxkIGJlIHNldCB0byB0cnVlIHdoZW4gcnVubmluZyB0ZXN0cyB0aGF0XG4gICAqIGV4cGxpY2l0bHkgY3JlYXRlIGEgYm9vdHN0cmFwIHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlQm9vdHN0cmFwPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUbyBiZSB1c2VkIGluIHBsYWNlIG9mIGB3aXRoRGVmYXVsdEZpeHR1cmVgIHdoZW4gdGhlIHRlc3RcbiAqIHNob3VsZCBub3QgY3JlYXRlIHRoZSBkZWZhdWx0IGJvb3RzdHJhcCBzdGFja1xuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aG91dEJvb3RzdHJhcChibG9jazogKGNvbnRleHQ6IFRlc3RGaXh0dXJlKSA9PiBQcm9taXNlPHZvaWQ+KSB7XG4gIHJldHVybiB3aXRoQXdzKHdpdGhDZGtBcHAoYmxvY2spLCB0cnVlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtDbGlPcHRpb25zIGV4dGVuZHMgU2hlbGxPcHRpb25zIHtcbiAgb3B0aW9ucz86IHN0cmluZ1tdO1xuICBuZXZlclJlcXVpcmVBcHByb3ZhbD86IGJvb2xlYW47XG4gIHZlcmJvc2U/OiBib29sZWFuO1xuICB2ZXJib3NlTGV2ZWw/OiBudW1iZXI7XG4gIHRlbGVtZXRyeUZpbGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrRGVzdHJveUNsaU9wdGlvbnMgZXh0ZW5kcyBDZGtDbGlPcHRpb25zIHtcbiAgcmVhZG9ubHkgZm9yY2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFByZXBhcmUgYSB0YXJnZXQgZGlyIGJ5cmVwbGljYXRpbmcgYSBzb3VyY2UgZGlyZWN0b3J5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbG9uZURpcmVjdG9yeShzb3VyY2U6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcsIG91dHB1dD86IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSkge1xuICBhd2FpdCBzaGVsbChbJ3JtJywgJy1yZicsIHRhcmdldF0sIHsgb3V0cHV0czogb3V0cHV0ID8gW291dHB1dF0gOiBbXSB9KTtcbiAgYXdhaXQgc2hlbGwoWydta2RpcicsICctcCcsIHRhcmdldF0sIHsgb3V0cHV0czogb3V0cHV0ID8gW291dHB1dF0gOiBbXSB9KTtcbiAgYXdhaXQgc2hlbGwoWydjcCcsICctUicsIHNvdXJjZSArICcvKicsIHRhcmdldF0sIHsgb3V0cHV0czogb3V0cHV0ID8gW291dHB1dF0gOiBbXSB9KTtcbn1cblxuaW50ZXJmYWNlIENvbW1vbkNka0Jvb3RzdHJhcENvbW1hbmRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBhdGggdG8gYSBjdXN0b20gYm9vdHN0cmFwIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IENESyBib290c3RyYXAgdGVtcGxhdGUuXG4gICAqL1xuICByZWFkb25seSBib290c3RyYXBUZW1wbGF0ZT86IHN0cmluZztcblxuICByZWFkb25seSB0b29sa2l0U3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB2ZXJib3NlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlZmF1bHQgLSBhdXRvLWdlbmVyYXRlZCBDbG91ZEZvcm1hdGlvbiBuYW1lXG4gICAqL1xuICByZWFkb25seSBib290c3RyYXBCdWNrZXROYW1lPzogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IGNsaU9wdGlvbnM/OiBDZGtDbGlPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGRlZmF1bHQgQ0RLIHF1YWxpZmllclxuICAgKi9cbiAgcmVhZG9ubHkgcXVhbGlmaWVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka0xlZ2FjeUJvb3RzdHJhcENvbW1hbmRPcHRpb25zIGV4dGVuZHMgQ29tbW9uQ2RrQm9vdHN0cmFwQ29tbWFuZE9wdGlvbnMge1xuICAvKipcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG5vRXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrTW9kZXJuQm9vdHN0cmFwQ29tbWFuZE9wdGlvbnMgZXh0ZW5kcyBDb21tb25DZGtCb290c3RyYXBDb21tYW5kT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGNmbkV4ZWN1dGlvblBvbGljeT86IHN0cmluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNob3dUZW1wbGF0ZT86IGJvb2xlYW47XG5cbiAgcmVhZG9ubHkgdGVtcGxhdGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGV4YW1wbGVQZXJtaXNzaW9uc0JvdW5kYXJ5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBjdXN0b21QZXJtaXNzaW9uc0JvdW5kYXJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkZW55RXh0ZXJuYWxJZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgdXNlUHJldmlvdXNQYXJhbWV0ZXJzPzogYm9vbGVhbjtcblxuICByZWFkb25seSB0cnVzdD86IHN0cmluZ1tdO1xuXG4gIHJlYWRvbmx5IHVudHJ1c3Q/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtHYXJiYWdlQ29sbGVjdGlvbkNvbW1hbmRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgZGF5cyBhbiBhc3NldCBzaG91bGQgc3RheSBpc29sYXRlZCBiZWZvcmUgZGVsZXRpb24sIHRvXG4gICAqIGd1YXJkIGFnYWluc3Qgc29tZSBwaXBlbGluZSByb2xsYmFjayBzY2VuYXJpb3NcbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgcm9sbGJhY2tCdWZmZXJEYXlzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhc3NldCB0aGF0IGlzIGdldHRpbmcgZ2FyYmFnZSBjb2xsZWN0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhbGwnXG4gICAqL1xuICByZWFkb25seSB0eXBlPzogJ2VjcicgfCAnczMnIHwgJ2FsbCc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgJ0Nka1Rvb2xraXQnXG4gICAqL1xuICByZWFkb25seSBib290c3RyYXBTdGFja05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBUZXN0Rml4dHVyZSBleHRlbmRzIFNoZWxsSGVscGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHF1YWxpZmllcjogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGJ1Y2tldHNUb0RlbGV0ZSA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIHB1YmxpYyByZWFkb25seSBjbGk6IElUZXN0Q2xpU291cmNlO1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrQXNzZXRzOiBJVGVzdENsaVNvdXJjZTtcbiAgcHVibGljIHJlYWRvbmx5IGxpYnJhcnk6IElUZXN0TGlicmFyeVNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW50ZWdUZXN0RGlyOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YWNrTmFtZVByZWZpeDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBvdXRwdXQ6IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgYXdzOiBBd3NDbGllbnRzLFxuICAgIHB1YmxpYyByZWFkb25seSByYW5kb21TdHJpbmc6IHN0cmluZykge1xuICAgIHN1cGVyKGludGVnVGVzdERpciwgb3V0cHV0KTtcblxuICAgIHRoaXMucXVhbGlmaWVyID0gdGhpcy5yYW5kb21TdHJpbmcuc2xpY2UoMCwgMTApO1xuICAgIHRoaXMuY2xpID0gdGVzdFNvdXJjZSgnY2xpJyk7XG4gICAgdGhpcy5jZGtBc3NldHMgPSB0ZXN0U291cmNlKCdjZGtBc3NldHMnKTtcbiAgICB0aGlzLmxpYnJhcnkgPSB0ZXN0U291cmNlKCdsaWJyYXJ5Jyk7XG4gIH1cblxuICBwdWJsaWMgbG9nKHM6IHN0cmluZykge1xuICAgIHRoaXMub3V0cHV0LndyaXRlKGAke3N9XFxuYCk7XG4gIH1cblxuICAvKipcbiAgICogTG9naW4gdG8gdGhlIHB1YmxpYyBFQ1IgZ2FsbGVyeSB1c2luZyB0aGUgY3VycmVudCBBV1MgY3JlZGVudGlhbHMuXG4gICAqIFVzZSB0aGlzIGlmIHlvdXIgdGVzdCBuZWVkcyB0byBkaXJlY3RseSBwdWxsIGltYWdlcyBvdXRzaWRlIG9mIGEgYGNka2Agb3IgYGNkay1hc3NldHNgIGNvbW1hbmQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZWNyUHVibGljTG9naW4oKSB7XG4gICAgY29uc3QgdG9rZW5SZXNwb25zZSA9IGF3YWl0IHRoaXMuYXdzLmVjclB1YmxpYy5zZW5kKG5ldyBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kKHt9KSk7XG4gICAgY29uc3QgYXV0aERhdGEgPSB0b2tlblJlc3BvbnNlLmF1dGhvcml6YXRpb25EYXRhPy5hdXRob3JpemF0aW9uVG9rZW47XG5cbiAgICBjb25zdCBkb2NrZXIgPSBwcm9jZXNzLmVudi5DREtfRE9DS0VSID8/ICdkb2NrZXInO1xuXG4gICAgaWYgKCFhdXRoRGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgcmV0cmlldmUgRUNSIHB1YmxpYyBhdXRoIHRva2VuLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZWQgPSBCdWZmZXIuZnJvbShhdXRoRGF0YSwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgIGNvbnN0IFt1c2VybmFtZSwgcGFzc3dvcmRdID0gZGVjb2RlZC5zcGxpdCgnOicpO1xuXG4gICAgYXdhaXQgdGhpcy5zaGVsbChbZG9ja2VyLCAnbG9naW4nLFxuICAgICAgJy0tdXNlcm5hbWUnLCB1c2VybmFtZSxcbiAgICAgICctLXBhc3N3b3JkJywgJyR7RUNSX1BBU1NXT1JEfScsXG4gICAgICAncHVibGljLmVjci5hd3MnXSwge1xuICAgICAgc2hlbGw6IHRydWUsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgRUNSX1BBU1NXT1JEOiBwYXNzd29yZCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2RrRGVwbG95KHN0YWNrTmFtZXM6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zOiBDZGtDbGlPcHRpb25zID0ge30sIHNraXBTdGFja1JlbmFtZT86IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gdGhpcy5jZGsodGhpcy5jZGtEZXBsb3lDb21tYW5kTGluZShzdGFja05hbWVzLCBvcHRpb25zLCBza2lwU3RhY2tSZW5hbWUpLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBjZGtEZXBsb3lDb21tYW5kTGluZShzdGFja05hbWVzOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9uczogQ2RrQ2xpT3B0aW9ucyA9IHt9LCBza2lwU3RhY2tSZW5hbWU/OiBib29sZWFuKSB7XG4gICAgc3RhY2tOYW1lcyA9IHR5cGVvZiBzdGFja05hbWVzID09PSAnc3RyaW5nJyA/IFtzdGFja05hbWVzXSA6IHN0YWNrTmFtZXM7XG4gICAgY29uc3QgbmV2ZXJSZXF1aXJlQXBwcm92YWwgPSBvcHRpb25zLm5ldmVyUmVxdWlyZUFwcHJvdmFsID8/IHRydWU7XG5cbiAgICByZXR1cm4gW1xuICAgICAgJ2RlcGxveScsXG4gICAgICAuLi4obmV2ZXJSZXF1aXJlQXBwcm92YWwgPyBbJy0tcmVxdWlyZS1hcHByb3ZhbD1uZXZlciddIDogW10pLCAvLyBEZWZhdWx0IHRvIG5vIGFwcHJvdmFsIGluIGFuIHVuYXR0ZW5kZWQgdGVzdFxuICAgICAgLi4uKG9wdGlvbnMub3B0aW9ucyA/PyBbXSksXG4gICAgICAvLyB1c2UgZXZlbnRzIGJlY2F1c2UgYmFyIHJlbmRlcnMgYmFkIGluIHRlc3RzXG4gICAgICAnLS1wcm9ncmVzcycsICdldmVudHMnLFxuICAgICAgLi4uKHNraXBTdGFja1JlbmFtZSA/IHN0YWNrTmFtZXMgOiB0aGlzLmZ1bGxTdGFja05hbWUoc3RhY2tOYW1lcykpLFxuICAgICAgLi4uKG9wdGlvbnMudGVsZW1ldHJ5RmlsZSA/IFtgLS10ZWxlbWV0cnktZmlsZT0ke29wdGlvbnMudGVsZW1ldHJ5RmlsZX1gXSA6IFtdKSxcbiAgICBdO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNka1N5bnRoKG9wdGlvbnM6IENka0NsaU9wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmNkayhbXG4gICAgICAnc3ludGgnLFxuICAgICAgLi4uKG9wdGlvbnMub3B0aW9ucyA/PyBbXSksXG4gICAgXSwgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2RrUmVmYWN0b3Iob3B0aW9uczogQ2RrQ2xpT3B0aW9ucyA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuY2RrKFtcbiAgICAgICdyZWZhY3RvcicsXG4gICAgICAuLi4ob3B0aW9ucy5vcHRpb25zID8/IFtdKSxcbiAgICBdLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjZGtEZXN0cm95KHN0YWNrTmFtZXM6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zOiBDZGtEZXN0cm95Q2xpT3B0aW9ucyA9IHt9KSB7XG4gICAgc3RhY2tOYW1lcyA9IHR5cGVvZiBzdGFja05hbWVzID09PSAnc3RyaW5nJyA/IFtzdGFja05hbWVzXSA6IHN0YWNrTmFtZXM7XG5cbiAgICAvLyBkZWZhdWx0IHRvIHRydWUgYmVjYXVzZSBtb3N0IHRlc3RzIGRvbid0IHRlc3QgdXNlciBpbnRlcmFjdGlvblxuICAgIGNvbnN0IGZvcmNlID0gb3B0aW9ucy5mb3JjZSA/PyB0cnVlO1xuXG4gICAgcmV0dXJuIHRoaXMuY2RrKFsnZGVzdHJveScsXG4gICAgICAuLi4oZm9yY2UgPyBbJy1mJ10gOiBbXSksIC8vIHBhc3MgLWYgaWYgdXNlciBpbnRlcmFjdGlvbiBpcyBub3QgZGVzaXJlZFxuICAgICAgLi4uKG9wdGlvbnMub3B0aW9ucyA/PyBbXSksXG4gICAgICAuLi50aGlzLmZ1bGxTdGFja05hbWUoc3RhY2tOYW1lcyldLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjZGtCb290c3RyYXBMZWdhY3kob3B0aW9uczogQ2RrTGVnYWN5Qm9vdHN0cmFwQ29tbWFuZE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGFyZ3MgPSBbJ2Jvb3RzdHJhcCddO1xuXG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgYXJncy5wdXNoKCctdicpO1xuICAgIH1cbiAgICBhcmdzLnB1c2goJy0tdG9vbGtpdC1zdGFjay1uYW1lJywgb3B0aW9ucy50b29sa2l0U3RhY2tOYW1lKTtcbiAgICBpZiAob3B0aW9ucy5ib290c3RyYXBCdWNrZXROYW1lKSB7XG4gICAgICBhcmdzLnB1c2goJy0tYm9vdHN0cmFwLWJ1Y2tldC1uYW1lJywgb3B0aW9ucy5ib290c3RyYXBCdWNrZXROYW1lKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMubm9FeGVjdXRlKSB7XG4gICAgICBhcmdzLnB1c2goJy0tbm8tZXhlY3V0ZScpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5wdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXJncy5wdXNoKCctLXB1YmxpYy1hY2Nlc3MtYmxvY2stY29uZmlndXJhdGlvbicsIG9wdGlvbnMucHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50YWdzKSB7XG4gICAgICBhcmdzLnB1c2goJy0tdGFncycsIG9wdGlvbnMudGFncyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2RrKGFyZ3MsIHtcbiAgICAgIC4uLm9wdGlvbnMuY2xpT3B0aW9ucyxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICAuLi5vcHRpb25zLmNsaU9wdGlvbnM/Lm1vZEVudixcbiAgICAgICAgLy8gc28gdGhhdCB0aGlzIHdvcmtzIGZvciBWMixcbiAgICAgICAgLy8gd2hlcmUgdGhlIFwibmV3XCIgYm9vdHN0cmFwIGlzIHRoZSBkZWZhdWx0XG4gICAgICAgIENES19MRUdBQ1lfQk9PVFNUUkFQOiAnMScsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNka0Jvb3RzdHJhcE1vZGVybihvcHRpb25zOiBDZGtNb2Rlcm5Cb290c3RyYXBDb21tYW5kT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgYXJncyA9IFsnYm9vdHN0cmFwJ107XG5cbiAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICBhcmdzLnB1c2goJy12Jyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnNob3dUZW1wbGF0ZSkge1xuICAgICAgYXJncy5wdXNoKCctLXNob3ctdGVtcGxhdGUnKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudGVtcGxhdGUpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS10ZW1wbGF0ZScsIG9wdGlvbnMudGVtcGxhdGUpO1xuICAgIH1cbiAgICBhcmdzLnB1c2goJy0tdG9vbGtpdC1zdGFjay1uYW1lJywgb3B0aW9ucy50b29sa2l0U3RhY2tOYW1lKTtcbiAgICBpZiAob3B0aW9ucy5ib290c3RyYXBCdWNrZXROYW1lKSB7XG4gICAgICBhcmdzLnB1c2goJy0tYm9vdHN0cmFwLWJ1Y2tldC1uYW1lJywgb3B0aW9ucy5ib290c3RyYXBCdWNrZXROYW1lKTtcbiAgICB9XG4gICAgYXJncy5wdXNoKCctLXF1YWxpZmllcicsIG9wdGlvbnMucXVhbGlmaWVyID8/IHRoaXMucXVhbGlmaWVyKTtcbiAgICBpZiAob3B0aW9ucy5jZm5FeGVjdXRpb25Qb2xpY3kpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1jbG91ZGZvcm1hdGlvbi1leGVjdXRpb24tcG9saWNpZXMnLCBvcHRpb25zLmNmbkV4ZWN1dGlvblBvbGljeSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRlcm1pbmF0aW9uUHJvdGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmdzLnB1c2goJy0tdGVybWluYXRpb24tcHJvdGVjdGlvbicsIG9wdGlvbnMudGVybWluYXRpb25Qcm90ZWN0aW9uLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5mb3JjZSkge1xuICAgICAgYXJncy5wdXNoKCctLWZvcmNlJyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRhZ3MpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS10YWdzJywgb3B0aW9ucy50YWdzKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuY3VzdG9tUGVybWlzc2lvbnNCb3VuZGFyeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmdzLnB1c2goJy0tY3VzdG9tLXBlcm1pc3Npb25zLWJvdW5kYXJ5Jywgb3B0aW9ucy5jdXN0b21QZXJtaXNzaW9uc0JvdW5kYXJ5KTtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXJncy5wdXNoKCctLWV4YW1wbGUtcGVybWlzc2lvbnMtYm91bmRhcnknKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuZGVueUV4dGVybmFsSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXJncy5wdXNoKG9wdGlvbnMuZGVueUV4dGVybmFsSWQgPyAnLS1kZW55LWV4dGVybmFsLWlkJyA6ICctLW5vLWRlbnktZXh0ZXJuYWwtaWQnKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy51c2VQcmV2aW91c1BhcmFtZXRlcnMgPT09IGZhbHNlKSB7XG4gICAgICBhcmdzLnB1c2goJy0tbm8tcHJldmlvdXMtcGFyYW1ldGVycycpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5ib290c3RyYXBUZW1wbGF0ZSkge1xuICAgICAgYXJncy5wdXNoKCctLXRlbXBsYXRlJywgb3B0aW9ucy5ib290c3RyYXBUZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudHJ1c3QgIT0gbnVsbCkge1xuICAgICAgYXJncy5wdXNoKCctLXRydXN0Jywgb3B0aW9ucy50cnVzdC5qb2luKCcsJykpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy51bnRydXN0ICE9IG51bGwpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS11bnRydXN0Jywgb3B0aW9ucy51bnRydXN0LmpvaW4oJywnKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2RrKGFyZ3MsIHtcbiAgICAgIC4uLm9wdGlvbnMuY2xpT3B0aW9ucyxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICAuLi5vcHRpb25zLmNsaU9wdGlvbnM/Lm1vZEVudixcbiAgICAgICAgLy8gc28gdGhhdCB0aGlzIHdvcmtzIGZvciBWMSxcbiAgICAgICAgLy8gd2hlcmUgdGhlIFwib2xkXCIgYm9vdHN0cmFwIGlzIHRoZSBkZWZhdWx0XG4gICAgICAgIENES19ORVdfQk9PVFNUUkFQOiAnMScsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNka0dhcmJhZ2VDb2xsZWN0KG9wdGlvbnM6IENka0dhcmJhZ2VDb2xsZWN0aW9uQ29tbWFuZE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGFyZ3MgPSBbXG4gICAgICAnZ2MnLFxuICAgICAgJy0tdW5zdGFibGU9Z2MnLCAvLyBUT0RPOiByZW1vdmUgd2hlbiBzdGFiaWxpemluZ1xuICAgICAgJy0tY29uZmlybT1mYWxzZScsXG4gICAgICAnLS1jcmVhdGVkLWJ1ZmZlci1kYXlzPTAnLCAvLyBPdGhlcndpc2UgYWxsIGFzc2V0cyBjcmVhdGVkIGR1cmluZyBpbnRlZyB0ZXN0cyBhcmUgdG9vIHlvdW5nXG4gICAgXTtcbiAgICBpZiAob3B0aW9ucy5yb2xsYmFja0J1ZmZlckRheXMpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1yb2xsYmFjay1idWZmZXItZGF5cycsIFN0cmluZyhvcHRpb25zLnJvbGxiYWNrQnVmZmVyRGF5cykpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50eXBlKSB7XG4gICAgICBhcmdzLnB1c2goJy0tdHlwZScsIG9wdGlvbnMudHlwZSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmJvb3RzdHJhcFN0YWNrTmFtZSkge1xuICAgICAgYXJncy5wdXNoKCctLWJvb3RzdHJhcFN0YWNrTmFtZScsIG9wdGlvbnMuYm9vdHN0cmFwU3RhY2tOYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jZGsoYXJncyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2RrTWlncmF0ZShsYW5ndWFnZTogc3RyaW5nLCBzdGFja05hbWU6IHN0cmluZywgaW5wdXRQYXRoPzogc3RyaW5nLCBvcHRpb25zPzogQ2RrQ2xpT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmNkayhbXG4gICAgICAnbWlncmF0ZScsXG4gICAgICAnLS1sYW5ndWFnZScsXG4gICAgICBsYW5ndWFnZSxcbiAgICAgICctLXN0YWNrLW5hbWUnLFxuICAgICAgc3RhY2tOYW1lLFxuICAgICAgJy0tZnJvbS1wYXRoJyxcbiAgICAgIGlucHV0UGF0aCA/PyBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAncmVzb3VyY2VzJywgJ3RlbXBsYXRlcycsICdzcXMtdGVtcGxhdGUuanNvbicpLnRvU3RyaW5nKCksXG4gICAgICAuLi4ob3B0aW9ucz8ub3B0aW9ucyA/PyBbXSksXG4gICAgXSwgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2RrKGFyZ3M6IHN0cmluZ1tdLCBvcHRpb25zOiBDZGtDbGlPcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB2ZXJib3NlID0gb3B0aW9ucy52ZXJib3NlID8/IHRydWU7XG5cbiAgICBpZiAoIXZlcmJvc2UgJiYgb3B0aW9ucy52ZXJib3NlTGV2ZWwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2ZXJib3NlIHN0YXRlOiB2ZXJib3NlIGlzIGZhbHNlIGFuZCB2ZXJib3NlTGV2ZWwgaXMgJHtvcHRpb25zLnZlcmJvc2VMZXZlbH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlTGV2ZWwgPSBvcHRpb25zLnZlcmJvc2VMZXZlbCA/PyAxO1xuXG4gICAgYXdhaXQgdGhpcy5jbGkubWFrZUNsaUF2YWlsYWJsZSgpO1xuXG4gICAgcmV0dXJuIHRoaXMuc2hlbGwoW1xuICAgICAgJ2NkaycsXG4gICAgICAuLi4odmVyYm9zZSA/IFtgLSR7J3YnLnJlcGVhdCh2ZXJib3NlTGV2ZWwpfWBdIDogW10pLFxuICAgICAgLi4uYXJncyxcbiAgICBdLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIC4uLnRoaXMuY2RrU2hlbGxFbnYoKSxcbiAgICAgICAgLi4ub3B0aW9ucy5tb2RFbnYsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggd2hpY2ggdG8gZXhlY3V0ZSBDREtcbiAgICovXG4gIHB1YmxpYyBjZGtTaGVsbEVudigpIHtcbiAgICAvLyBpZiB0ZXN0cyBhcmUgdXNpbmcgYW4gZXhwbGljaXQgYXdzIGlkZW50aXR5IGFscmVhZHkgKGkuZSBjcmVkcylcbiAgICAvLyBmb3JjZSBldmVyeSBjZGsgY29tbWFuZCB0byB1c2UgdGhlIHNhbWUgaWRlbnRpdHkuXG4gICAgY29uc3QgYXdzQ3JlZHMgPSB0aGlzLmF3cy5pZGVudGl0eUVudigpID8/IHt9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIEFXU19SRUdJT046IHRoaXMuYXdzLnJlZ2lvbixcbiAgICAgIEFXU19ERUZBVUxUX1JFR0lPTjogdGhpcy5hd3MucmVnaW9uLFxuICAgICAgU1RBQ0tfTkFNRV9QUkVGSVg6IHRoaXMuc3RhY2tOYW1lUHJlZml4LFxuICAgICAgUEFDS0FHRV9MQVlPVVRfVkVSU0lPTjogJzInLFxuICAgICAgVEVTVElOR19DREs6ICd0cnVlJyxcbiAgICAgIC8vIEluIHRoZXNlIHRlc3RzIHdlIHdhbnQgdG8gbWFrZSBhIGRpc3RpbmN0aW9uIGJldHdlZW4gc3Rkb3V0IGFuZCBzdGVyclxuICAgICAgQ0k6ICdmYWxzZScsXG4gICAgICAuLi5hd3NDcmVkcyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRlbXBsYXRlKHN0YWNrTmFtZTogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCBmdWxsU3RhY2tOYW1lID0gdGhpcy5mdWxsU3RhY2tOYW1lKHN0YWNrTmFtZSk7XG4gICAgY29uc3QgdGVtcGxhdGVQYXRoID0gcGF0aC5qb2luKHRoaXMuaW50ZWdUZXN0RGlyLCAnY2RrLm91dCcsIGAke2Z1bGxTdGFja05hbWV9LnRlbXBsYXRlLmpzb25gKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmModGVtcGxhdGVQYXRoLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJvb3RzdHJhcFJlcG9OYW1lKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgYXdhaXQgZW5zdXJlQm9vdHN0cmFwcGVkKHRoaXMpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe30pKTtcblxuICAgIGNvbnN0IHN0YWNrID0gKHJlc3BvbnNlLlN0YWNrcyA/PyBbXSlcbiAgICAgIC5maWx0ZXIoKHMpID0+IHMuU3RhY2tOYW1lICYmIHMuU3RhY2tOYW1lID09IHRoaXMuYm9vdHN0cmFwU3RhY2tOYW1lKTtcbiAgICBhc3NlcnQoc3RhY2subGVuZ3RoID09IDEpO1xuICAgIHJldHVybiBvdXRwdXRGcm9tU3RhY2soJ0ltYWdlUmVwb3NpdG9yeU5hbWUnLCBzdGFja1swXSkgPz8gJyc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJvb3RzdHJhcFN0YWNrTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mdWxsU3RhY2tOYW1lKCdib290c3RyYXAtc3RhY2snKTtcbiAgfVxuXG4gIHB1YmxpYyBmdWxsU3RhY2tOYW1lKHN0YWNrTmFtZTogc3RyaW5nKTogc3RyaW5nO1xuICBwdWJsaWMgZnVsbFN0YWNrTmFtZShzdGFja05hbWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdO1xuICBwdWJsaWMgZnVsbFN0YWNrTmFtZShzdGFja05hbWVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZyB8IHN0cmluZ1tdIHtcbiAgICBpZiAodHlwZW9mIHN0YWNrTmFtZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5zdGFja05hbWVQcmVmaXh9LSR7c3RhY2tOYW1lc31gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3RhY2tOYW1lcy5tYXAocyA9PiBgJHt0aGlzLnN0YWNrTmFtZVByZWZpeH0tJHtzfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmQgdGhpcyB0byB0aGUgbGlzdCBvZiBidWNrZXRzIHRvIHBvdGVudGlhbGx5IGRlbGV0ZVxuICAgKlxuICAgKiBBdCB0aGUgZW5kIG9mIGEgdGVzdCwgd2UgY2xlYW4gdXAgYnVja2V0cyB0aGF0IG1heSBub3QgaGF2ZSBnb3R0ZW4gZGVzdHJveWVkXG4gICAqIChmb3Igd2hhdGV2ZXIgcmVhc29uKS5cbiAgICovXG4gIHB1YmxpYyByZW1lbWJlclRvRGVsZXRlQnVja2V0KGJ1Y2tldE5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuYnVja2V0c1RvRGVsZXRlLnB1c2goYnVja2V0TmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW51cCBsZWZ0b3ZlciBzdGFja3MgYW5kIGJvb3RzdHJhcHBlZCByZXNvdXJjZXNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkaXNwb3NlKHN1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBhdG1vc3BoZXJlIHNlcnZpY2UsIGl0IGRvZXMgcmVzb3VyY2UgY2xlYW51cCBvbiBvdXIgYmVoYWxmXG4gICAgLy8gc28gd2UgZG9uJ3QgaGF2ZSB0byB3YWl0IGZvciBpdC5cbiAgICBpZiAoIWF0bW9zcGhlcmVFbmFibGVkKCkpIHtcbiAgICAgIGNvbnN0IHN0YWNrc1RvRGVsZXRlID0gYXdhaXQgdGhpcy5kZWxldGVhYmxlU3RhY2tzKHRoaXMuc3RhY2tOYW1lUHJlZml4KTtcblxuICAgICAgdGhpcy5zb3J0Qm9vdHN0cmFwU3RhY2tzVG9UaGVFbmQoc3RhY2tzVG9EZWxldGUpO1xuXG4gICAgICAvLyBCb290c3RyYXAgc3RhY2tzIGhhdmUgYnVja2V0cyB0aGF0IG5lZWQgdG8gYmUgY2xlYW5lZFxuICAgICAgY29uc3QgYnVja2V0TmFtZXMgPSBzdGFja3NUb0RlbGV0ZS5tYXAoc3RhY2sgPT4gb3V0cHV0RnJvbVN0YWNrKCdCdWNrZXROYW1lJywgc3RhY2spKS5maWx0ZXIoZGVmaW5lZCk7XG4gICAgICAvLyBQYXJhbGxlbGlzbSB3aWxsIGJlIHJlYXNvbmFibGVcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbVxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoYnVja2V0TmFtZXMubWFwKGIgPT4gdGhpcy5hd3MuZW1wdHlCdWNrZXQoYikpKTtcbiAgICAgIC8vIFRoZSBib290c3RyYXAgYnVja2V0IGhhcyBhIHJlbW92YWwgcG9saWN5IG9mIFJFVEFJTiBieSBkZWZhdWx0LCBzbyBhZGQgaXQgdG8gdGhlIGJ1Y2tldHMgdG8gYmUgY2xlYW5lZCB1cC5cbiAgICAgIHRoaXMuYnVja2V0c1RvRGVsZXRlLnB1c2goLi4uYnVja2V0TmFtZXMpO1xuXG4gICAgICAvLyBCb290c3RyYXAgc3RhY2tzIGhhdmUgRUNSIHJlcG9zaXRvcmllcyB3aXRoIGltYWdlcyB3aGljaCBzaG91bGQgYmUgZGVsZXRlZFxuICAgICAgY29uc3QgaW1hZ2VSZXBvc2l0b3J5TmFtZXMgPSBzdGFja3NUb0RlbGV0ZS5tYXAoc3RhY2sgPT4gb3V0cHV0RnJvbVN0YWNrKCdJbWFnZVJlcG9zaXRvcnlOYW1lJywgc3RhY2spKS5maWx0ZXIoZGVmaW5lZCk7XG4gICAgICAvLyBQYXJhbGxlbGlzbSB3aWxsIGJlIHJlYXNvbmFibGVcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbVxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoaW1hZ2VSZXBvc2l0b3J5TmFtZXMubWFwKHIgPT4gdGhpcy5hd3MuZGVsZXRlSW1hZ2VSZXBvc2l0b3J5KHIpKSk7XG5cbiAgICAgIGF3YWl0IHRoaXMuYXdzLmRlbGV0ZVN0YWNrcyhcbiAgICAgICAgLi4uc3RhY2tzVG9EZWxldGUubWFwKChzKSA9PiB7XG4gICAgICAgICAgaWYgKCFzLlN0YWNrTmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdGFjayBuYW1lIGlzIHJlcXVpcmVkIHRvIGRlbGV0ZSBhIHN0YWNrLicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcy5TdGFja05hbWU7XG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgICAgLy8gV2UgbWlnaHQgaGF2ZSBsZWFrZWQgc29tZSBidWNrZXRzIGJ5IHVwZ3JhZGluZyB0aGUgYm9vdHN0cmFwIHN0YWNrLiBCZVxuICAgICAgLy8gc3VyZSB0byBjbGVhbiBldmVyeXRoaW5nLlxuICAgICAgZm9yIChjb25zdCBidWNrZXQgb2YgdGhpcy5idWNrZXRzVG9EZWxldGUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hd3MuZGVsZXRlQnVja2V0KGJ1Y2tldCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHRlc3RzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHksIGhhcHBpbHkgZGVsZXRlIHRoZSBmaXh0dXJlXG4gICAgLy8gKG90aGVyd2lzZSBsZWF2ZSBpdCBmb3IgaHVtYW5zIHRvIGluc3BlY3QpXG4gICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgIGNvbnN0IGNsZWFuZWQgPSByaW1yYWYodGhpcy5pbnRlZ1Rlc3REaXIpO1xuICAgICAgaWYgKCFjbGVhbmVkKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjbGVhbiB1cCAke3RoaXMuaW50ZWdUZXN0RGlyfSBkdWUgdG8gcGVybWlzc2lvbnMgaXNzdWVzIChEb2NrZXIgcnVubmluZyBhcyByb290PylgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBzdGFja3Mgc3RhcnRpbmcgd2l0aCBvdXIgdGVzdGluZyBwcmVmaXggdGhhdCBzaG91bGQgYmUgZGVsZXRlZFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkZWxldGVhYmxlU3RhY2tzKHByZWZpeDogc3RyaW5nKTogUHJvbWlzZTxTdGFja1tdPiB7XG4gICAgY29uc3Qgc3RhdHVzRmlsdGVyID0gW1xuICAgICAgJ0NSRUFURV9JTl9QUk9HUkVTUycsICdDUkVBVEVfRkFJTEVEJywgJ0NSRUFURV9DT01QTEVURScsXG4gICAgICAnUk9MTEJBQ0tfSU5fUFJPR1JFU1MnLCAnUk9MTEJBQ0tfRkFJTEVEJywgJ1JPTExCQUNLX0NPTVBMRVRFJyxcbiAgICAgICdERUxFVEVfRkFJTEVEJyxcbiAgICAgICdVUERBVEVfSU5fUFJPR1JFU1MnLCAnVVBEQVRFX0NPTVBMRVRFX0NMRUFOVVBfSU5fUFJPR1JFU1MnLFxuICAgICAgJ1VQREFURV9DT01QTEVURScsICdVUERBVEVfUk9MTEJBQ0tfSU5fUFJPR1JFU1MnLFxuICAgICAgJ1VQREFURV9ST0xMQkFDS19GQUlMRUQnLFxuICAgICAgJ1VQREFURV9ST0xMQkFDS19DT01QTEVURV9DTEVBTlVQX0lOX1BST0dSRVNTJyxcbiAgICAgICdVUERBVEVfUk9MTEJBQ0tfQ09NUExFVEUnLCAnUkVWSUVXX0lOX1BST0dSRVNTJyxcbiAgICAgICdJTVBPUlRfSU5fUFJPR1JFU1MnLCAnSU1QT1JUX0NPTVBMRVRFJyxcbiAgICAgICdJTVBPUlRfUk9MTEJBQ0tfSU5fUFJPR1JFU1MnLCAnSU1QT1JUX1JPTExCQUNLX0ZBSUxFRCcsXG4gICAgICAnSU1QT1JUX1JPTExCQUNLX0NPTVBMRVRFJyxcbiAgICBdO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe30pKTtcblxuICAgIHJldHVybiAocmVzcG9uc2UuU3RhY2tzID8/IFtdKVxuICAgICAgLmZpbHRlcigocykgPT4gcy5TdGFja05hbWUgJiYgcy5TdGFja05hbWUuc3RhcnRzV2l0aChwcmVmaXgpKVxuICAgICAgLmZpbHRlcigocykgPT4gcy5TdGFja1N0YXR1cyAmJiBzdGF0dXNGaWx0ZXIuaW5jbHVkZXMocy5TdGFja1N0YXR1cykpXG4gICAgICAuZmlsdGVyKChzKSA9PiBzLlJvb3RJZCA9PT0gdW5kZWZpbmVkKTsgLy8gT25seSBkZWxldGUgcGFyZW50IHN0YWNrcy4gTmVzdGVkIHN0YWNrcyBhcmUgZGVsZXRlZCBpbiB0aGUgcHJvY2Vzc1xuICB9XG5cbiAgcHJpdmF0ZSBzb3J0Qm9vdHN0cmFwU3RhY2tzVG9UaGVFbmQoc3RhY2tzOiBTdGFja1tdKSB7XG4gICAgc3RhY2tzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmICghYS5TdGFja05hbWUgfHwgIWIuU3RhY2tOYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU3RhY2sgbmFtZXMgZG8gbm90IGV4aXN0cy4gVGhlc2UgYXJlIHJlcXVpcmVkIGZvciBzb3J0aW5nIHRoZSBib290c3RyYXAgc3RhY2tzLicpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhQnMgPSBhLlN0YWNrTmFtZS5zdGFydHNXaXRoKHRoaXMuYm9vdHN0cmFwU3RhY2tOYW1lKTtcbiAgICAgIGNvbnN0IGJCcyA9IGIuU3RhY2tOYW1lLnN0YXJ0c1dpdGgodGhpcy5ib290c3RyYXBTdGFja05hbWUpO1xuXG4gICAgICByZXR1cm4gYUJzICE9IGJCc1xuICAgICAgICAvLyAnKycgY29udmVydHMgYSBib29sZWFuIHRvIDAgb3IgMVxuICAgICAgICA/ICgrYUJzKSAtICgrYkJzKVxuICAgICAgICA6IGEuU3RhY2tOYW1lLmxvY2FsZUNvbXBhcmUoYi5TdGFja05hbWUpO1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogTWFrZSBzdXJlIHRoYXQgdGhlIGdpdmVuIGVudmlyb25tZW50IGlzIGJvb3RzdHJhcHBlZFxuICpcbiAqIFNpbmNlIHdlIGdvIHN0cmlwaW5nIGFjcm9zcyByZWdpb25zLCBpdCdzIGdvaW5nIHRvIHN1Y2sgZG9pbmcgdGhpc1xuICogYnkgaGFuZCBzbyBsZXQncyBqdXN0IG1hc3MtYXV0b21hdGUgaXQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVCb290c3RyYXBwZWQoZml4dHVyZTogVGVzdEZpeHR1cmUpIHtcbiAgLy8gQWx3YXlzIHVzZSB0aGUgbW9kZXJuIGJvb3RzdHJhcCBzdGFjaywgb3RoZXJ3aXNlIHdlIG1heSBnZXQgdGhlIGVycm9yXG4gIC8vIFwicmVmdXNpbmcgdG8gZG93bmdyYWRlIGZyb20gdmVyc2lvbiA3IHRvIHZlcnNpb24gMFwiIHdoZW4gYm9vdHN0cmFwcGluZyB3aXRoIGRlZmF1bHRcbiAgLy8gc2V0dGluZ3MgdXNpbmcgYSB2MSBDTEkuXG4gIC8vXG4gIC8vIEl0IGRvZXNuJ3QgbWF0dGVyIGZvciB0ZXN0czogd2hlbiB0aGV5IHdhbnQgdG8gdGVzdCBzb21ldGhpbmcgYWJvdXQgYW4gYWN0dWFsIGxlZ2FjeVxuICAvLyBib290c3RyYXAgc3RhY2ssIHRoZXknbGwgY3JlYXRlIGEgYm9vdHN0cmFwIHN0YWNrIHdpdGggYSBub24tZGVmYXVsdCBuYW1lIHRvIHRlc3QgdGhhdCBleGFjdCBwcm9wZXJ0eS5cbiAgY29uc3QgZW52U3BlY2lmaWVyID0gYGF3czovLyR7YXdhaXQgZml4dHVyZS5hd3MuYWNjb3VudCgpfS8ke2ZpeHR1cmUuYXdzLnJlZ2lvbn1gO1xuICBpZiAoQUxSRUFEWV9CT09UU1RSQVBQRURfSU5fVEhJU19SVU4uaGFzKGVudlNwZWNpZmllcikpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoYXRtb3NwaGVyZUVuYWJsZWQoKSkge1xuICAgIC8vIHdoZW4gYXRtb3NwaGVyZSBpcyBlbmFibGVkLCBlYWNoIHRlc3Qgc3RhcnRzIHdpdGggYW4gZW1wdHkgZW52aXJvbm1lbnRcbiAgICAvLyBhbmQgbmVlZHMgdG8gZGVwbG95IHRoZSBib290c3RyYXAgc3RhY2suIGluIGNhc2UgZW52aXJvbm1lbnRzIGFyZSByZWN5bGNlZCB0b28gcXVpY2tseSxcbiAgICAvLyBjbG91ZGZvcm1hdGlvbiBtYXkgdGhpbmsgdGhlIGJvb3RzdHJhcCBidWNrZXQgc3RpbGwgZXhpc3RzIGV2ZW4gdGhvdWdoIGl0IGRvZXNudCAoYmVjYXVzZSBvZiBzMyBldmVudHVhbCBjb25zaXN0ZW5jeSkuXG4gICAgLy8gc28gd2UgcmV0cnkgb24gdGhlIHNwZWNpZmljIGVycm9yIGZvciBhIHdoaWxlLlxuICAgIGF3YWl0IGJvb3RzdHJhcFdpdGhSZXRyeU9uQnVja2V0RXhpc3RzKGVudlNwZWNpZmllciwgZml4dHVyZSk7XG4gIH0gZWxzZSB7XG4gICAgYXdhaXQgZG9Cb290c3RyYXAoZW52U3BlY2lmaWVyLCBmaXh0dXJlLCBmYWxzZSk7XG4gIH1cblxuICAvLyB3aGVuIHVzaW5nIHRoZSBhdG1vc3BoZXJlIHNlcnZpY2UsIGV2ZXJ5IHRlc3QgbmVlZHMgdG8gYm9vdHN0cmFwXG4gIC8vIGl0cyBvd24gZW52aXJvbm1lbnQuXG4gIGlmICghYXRtb3NwaGVyZUVuYWJsZWQoKSkge1xuICAgIEFMUkVBRFlfQk9PVFNUUkFQUEVEX0lOX1RISVNfUlVOLmFkZChlbnZTcGVjaWZpZXIpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRvQm9vdHN0cmFwKGVudlNwZWNpZmllcjogc3RyaW5nLCBmaXh0dXJlOiBUZXN0Rml4dHVyZSwgYWxsb3dFcnJFeGl0OiBib29sZWFuKSB7XG4gIHJldHVybiBmaXh0dXJlLmNkayhbJ2Jvb3RzdHJhcCcsICctLWJvb3RzdHJhcC1rbXMta2V5LWlkJywgJ0FXU19NQU5BR0VEX0tFWScsIGVudlNwZWNpZmllcl0sIHtcbiAgICBtb2RFbnY6IHtcbiAgICAgIC8vIEV2ZW4gZm9yIHYxLCB1c2UgbmV3IGJvb3RzdHJhcFxuICAgICAgQ0RLX05FV19CT09UU1RSQVA6ICcxJyxcbiAgICAgIC8vIHdoZW4gYWxsb3dpbmcgZXJyb3IgZXhpdCwgd2UgcHJvYmFibHkgd2FudCB0byBpbnNwZWN0XG4gICAgICAvLyBhbmQgY29tcGFyZSBvdXRwdXQsIHdoaWNoIGlzIGJldHRlciBkb25lIHdpdGhvdXQgY29sb3IgY2hhcmFjdGVycy5cbiAgICAgIC4uLihhbGxvd0VyckV4aXQgPyB7IEZPUkNFX0NPTE9SOiAnMCcgfSA6IHt9KSxcbiAgICB9LFxuICAgIGFsbG93RXJyRXhpdCxcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGJvb3RzdHJhcFdpdGhSZXRyeU9uQnVja2V0RXhpc3RzKGVudlNwZWNpZmllcjogc3RyaW5nLCBmaXh0dXJlOiBUZXN0Rml4dHVyZSkge1xuICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZml4dHVyZS5hd3MuYWNjb3VudCgpO1xuICBjb25zdCByZXRyeUFmdGVyU2Vjb25kcyA9IDMwO1xuICBjb25zdCBib290c3RyYXBCdWNrZXQgPSBgY2RrLWhuYjY1OWZkcy1hc3NldHMtJHthY2NvdW50fS0ke2ZpeHR1cmUuYXdzLnJlZ2lvbn1gO1xuXG4gIC8vIHMzIHNheXMgdGhhdCBhIGJ1Y2tldCBkZWxldGlvbiBjYW4gdGFrZSB1cCB0byBhbiBob3VyIHRvIGJlIGZ1bGx5IHZpc2libGUuXG4gIC8vIGVtcGlyaWNhbGx5IHdlIHNlZSB0aGF0IGEgZmV3IG1pbnV0ZXMgaXMgZW5vdWdoIHRob3VnaC4gbGV0cyBnaXZlIDEwIHRvIGJlIG9uIHRoZSBzYWZlKHIpIHNpZGUuXG4gIGNvbnN0IHRpbWVvdXRNaW51dGVzID0gMTA7XG5cbiAgY29uc3QgdGltZW91dERhdGUgPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgdGltZW91dE1pbnV0ZXMgKiA2MCAqIDEwMDApO1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IG91dCA9IGF3YWl0IGRvQm9vdHN0cmFwKGVudlNwZWNpZmllciwgZml4dHVyZSwgdHJ1ZSk7XG4gICAgaWYgKG91dC5pbmNsdWRlcyhgRW52aXJvbm1lbnQgJHtlbnZTcGVjaWZpZXJ9IGJvb3RzdHJhcHBlZGApKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKG91dC5pbmNsdWRlcyhgJHtib290c3RyYXBCdWNrZXR9IGFscmVhZHkgZXhpc3RzYCkpIHtcbiAgICAgIC8vIG1pZ2h0IGJlIGFuIHMzIGV2ZW50dWFseSBjb25zaXN0ZW5jeSBpc3N1ZSBkdWUgdG8gcmVjeWNsZWQgZW52aXJvbm1lbnRzLlxuICAgICAgaWYgKERhdGUubm93KCkgPCB0aW1lb3V0RGF0ZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgZml4dHVyZS5sb2coYEJvb3RzdHJhcCBvZiAke2VudlNwZWNpZmllcn0gZmFpbGVkIGR1ZSB0byBidWNrZXQgZXhpc3RlbmNlIGNoZWNrLiBSZXRyeWluZyBpbiAke3JldHJ5QWZ0ZXJTZWNvbmRzfSBzZWNvbmRzLi4uYCk7XG4gICAgICAgIGF3YWl0IHNsZWVwKHJldHJ5QWZ0ZXJTZWNvbmRzICogMTAwMCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCBib290c3RyYXBwaW5nICR7ZW52U3BlY2lmaWVyfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlZmluZWQ8QT4oeDogQSk6IHggaXMgTm9uTnVsbGFibGU8QT4ge1xuICByZXR1cm4geCAhPT0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEluc3RhbGwgdGhlIGdpdmVuIE5QTSBwYWNrYWdlcywgaWRlbnRpZmllZCBieSB0aGVpciBuYW1lcyBhbmQgdmVyc2lvbnNcbiAqXG4gKiBXb3JrcyBieSB3cml0aW5nIHRoZSBwYWNrYWdlcyB0byBhIGBwYWNrYWdlLmpzb25gIGZpbGUsIGFuZFxuICogdGhlbiBydW5uaW5nIE5QTTcncyBcImluc3RhbGxcIiBvbiBpdC4gVGhlIHVzZSBvZiBOUE03IHdpbGwgYXV0b21hdGljYWxseVxuICogaW5zdGFsbCByZXF1aXJlZCBwZWVyRGVwZW5kZW5jaWVzLlxuICpcbiAqIElmIHdlJ3JlIHJ1bm5pbmcgaW4gUkVQTyBtb2RlIGFuZCB3ZSBmaW5kIHRoZSBwYWNrYWdlIGluIHRoZSBzZXQgb2YgbG9jYWxcbiAqIHBhY2thZ2VzIGluIHRoZSByZXBvc2l0b3J5LCB3ZSdsbCB3cml0ZSB0aGUgZGlyZWN0b3J5IG5hbWUgdG8gYHBhY2thZ2UuanNvbmBcbiAqIHNvIHRoYXQgTlBNIHdpbGwgY3JlYXRlIGEgc3ltbGluayAodGhpcyBhbGxvd3MgcnVubmluZyB0ZXN0cyBhZ2FpbnN0XG4gKiBidWlsdC1idXQtdW5wYWNrYWdlZCBtb2R1bGVzLCBhbmQgc2F2ZXMgZGV2IGN5Y2xlIHRpbWUpLlxuICpcbiAqIEJlIGF3YXJlIHlvdSBNVVNUIGluc3RhbGwgYWxsIHRoZSBwYWNrYWdlcyB5b3UgZGlyZWN0bHkgZGVwZW5kIHVwb24hIEluIHRoZSBjYXNlXG4gKiBvZiBhIHJlcG8vc3ltbGlua2luZyBpbnN0YWxsLCB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcyBXSUxMIE5PVCBiZSBpbnN0YWxsZWQgaW4gdGhlXG4gKiBjdXJyZW50IGRpcmVjdG9yeSdzIGBub2RlX21vZHVsZXNgIGRpcmVjdG9yeSwgYmVjYXVzZSB0aGV5IHdpbGwgYWxyZWFkeSBoYXZlIGJlZW5cbiAqIHN5bWxpbmtlZCBmcm9tIHRoZSBUQVJHRVQgZGlyZWN0b3J5J3MgYG5vZGVfbW9kdWxlc2AgZGlyZWN0b3J5ICh3aGljaCBpcyBzdWZmaWNpZW50XG4gKiBmb3IgTm9kZSdzIGRlcGVuZGVuY3kgbG9va3VwIG1lY2hhbmlzbSkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnN0YWxsTnBtUGFja2FnZXMoZml4dHVyZTogVGVzdEZpeHR1cmUsIHBhY2thZ2VzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gIGlmIChwcm9jZXNzLmVudi5SRVBPX1JPT1QpIHtcbiAgICBjb25zdCBtb25vUmVwbyA9IGF3YWl0IGZpbmRZYXJuUGFja2FnZXMocHJvY2Vzcy5lbnYuUkVQT19ST09UKTtcblxuICAgIC8vIFJlcGxhY2UgdGhlIGluc3RhbGwgdGFyZ2V0IHdpdGggdGhlIHBoeXNpY2FsIGxvY2F0aW9uIG9mIHRoaXMgcGFja2FnZVxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHBhY2thZ2VzKSkge1xuICAgICAgaWYgKGtleSBpbiBtb25vUmVwbykge1xuICAgICAgICBwYWNrYWdlc1trZXldID0gbW9ub1JlcG9ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ3BhY2thZ2UuanNvbicpLCBKU09OLnN0cmluZ2lmeSh7XG4gICAgbmFtZTogJ2Nkay1pbnRlZy10ZXN0cycsXG4gICAgcHJpdmF0ZTogdHJ1ZSxcbiAgICB2ZXJzaW9uOiAnMC4wLjEnLFxuICAgIGRldkRlcGVuZGVuY2llczogcGFja2FnZXMsXG4gIH0sIHVuZGVmaW5lZCwgMiksIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG5cbiAgLy8gd2Ugb2Z0ZW4gRUNPTk5SRVNFVCBmcm9tIE5QTSBzbyBsZXRzIHJldHJ5LiB0aGlzIG1pZ2h0IGJlIGJlY2F1c2Ugb2YgaGlnaCBjb25jdXJyZW5jeVxuICAvLyB3aGljaCBvdmVyd2hlbG1lcyBzeXN0ZW0gcmVzb3VyY2VzLlxuICBjb25zdCB0aW1lb3V0TWludXRlcyA9IDEwO1xuICBjb25zdCB0aW1lb3V0RGF0ZSA9IG5ldyBEYXRlKERhdGUubm93KCkgKyB0aW1lb3V0TWludXRlcyAqIDYwICogMTAwMCk7XG4gIGNvbnN0IHJldHJ5QWZ0ZXJTZWNvbmRzID0gMzA7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICB0cnkge1xuICAgICAgLy8gTm93IGluc3RhbGwgdGhhdCBgcGFja2FnZS5qc29uYCB1c2luZyBOUE03XG4gICAgICBhd2FpdCBmaXh0dXJlLnNoZWxsKFsnbm9kZScsIHJlcXVpcmUucmVzb2x2ZSgnbnBtJyksICdpbnN0YWxsJ10pO1xuICAgICAgYnJlYWs7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoRGF0ZS5ub3coKSA8IHRpbWVvdXREYXRlLmdldFRpbWUoKSAmJiBmaXh0dXJlLm91dHB1dC50b1N0cmluZygpLmluY2x1ZGVzKCdFQ09OTlJFU0VUJyApKSB7XG4gICAgICAgIGZpeHR1cmUubG9nKGBucG0gaW5zdGFsbCBmYWlsZWQgZHVlIHRvIEVDT05OUkVTRVQuIFJldHJ5aW5nIGluICR7cmV0cnlBZnRlclNlY29uZHN9IHNlY29uZHMuLi5gKTtcbiAgICAgICAgYXdhaXQgc2xlZXAocmV0cnlBZnRlclNlY29uZHMgKiAxMDAwKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBBTFJFQURZX0JPT1RTVFJBUFBFRF9JTl9USElTX1JVTiA9IG5ldyBTZXQoKTtcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk-testing/cli-integ",
3
- "version": "3.20.0",
3
+ "version": "3.21.0",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
package/package.json CHANGED
@@ -39,7 +39,7 @@
39
39
  "organization": true
40
40
  },
41
41
  "devDependencies": {
42
- "@aws-cdk/toolkit-lib": "1.12.0",
42
+ "@aws-cdk/toolkit-lib": "1.12.1",
43
43
  "@aws-cdk/yarn-cling": "0.0.0",
44
44
  "@cdklabs/eslint-plugin": "^1.3.5",
45
45
  "@stylistic/eslint-plugin": "^3",
@@ -116,7 +116,7 @@
116
116
  "publishConfig": {
117
117
  "access": "public"
118
118
  },
119
- "version": "3.20.0",
119
+ "version": "3.21.0",
120
120
  "types": "lib/index.d.ts",
121
121
  "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
122
122
  }
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const constants_1 = require("./constants");
4
3
  const lib_1 = require("../../lib");
5
4
  jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
6
5
  (0, lib_1.integTest)('CLI Telemetry --disable does not send to endpoint', (0, lib_1.withDefaultFixture)(async (fixture) => {
7
- const output = await fixture.cdk(['cli-telemetry', '--disable'], { verboseLevel: 3, modEnv: { TELEMETRY_ENDPOINT: constants_1.TELEMETRY_ENDPOINT } });
6
+ const output = await fixture.cdk(['cli-telemetry', '--disable'], { verboseLevel: 3 });
8
7
  // Check the trace that telemetry was not executed successfully
9
8
  expect(output).not.toContain('Telemetry Sent Successfully');
10
9
  // Check the trace that endpoint telemetry was never connected
11
10
  expect(output).toContain('Endpoint Telemetry NOT connected');
12
11
  }));
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNsaS10ZWxlbWV0cnktZGlzYWJsZS1zZW5kcy1uby1kYXRhLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1jbGktdGVsZW1ldHJ5LWRpc2FibGUtc2VuZHMtbm8tZGF0YS5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQ0FBaUQ7QUFDakQsbUNBQTBEO0FBRTFELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCxtREFBbUQsRUFDbkQsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSw4QkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUUxSSwrREFBK0Q7SUFDL0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUU1RCw4REFBOEQ7SUFDOUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBURUxFTUVUUllfRU5EUE9JTlQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgJ0NMSSBUZWxlbWV0cnkgLS1kaXNhYmxlIGRvZXMgbm90IHNlbmQgdG8gZW5kcG9pbnQnLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNkayhbJ2NsaS10ZWxlbWV0cnknLCAnLS1kaXNhYmxlJ10sIHsgdmVyYm9zZUxldmVsOiAzLCBtb2RFbnY6IHsgVEVMRU1FVFJZX0VORFBPSU5UOiBURUxFTUVUUllfRU5EUE9JTlQgfSB9KTtcblxuICAgIC8vIENoZWNrIHRoZSB0cmFjZSB0aGF0IHRlbGVtZXRyeSB3YXMgbm90IGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseVxuICAgIGV4cGVjdChvdXRwdXQpLm5vdC50b0NvbnRhaW4oJ1RlbGVtZXRyeSBTZW50IFN1Y2Nlc3NmdWxseScpO1xuXG4gICAgLy8gQ2hlY2sgdGhlIHRyYWNlIHRoYXQgZW5kcG9pbnQgdGVsZW1ldHJ5IHdhcyBuZXZlciBjb25uZWN0ZWRcbiAgICBleHBlY3Qob3V0cHV0KS50b0NvbnRhaW4oJ0VuZHBvaW50IFRlbGVtZXRyeSBOT1QgY29ubmVjdGVkJyk7XG4gIH0pLFxuKTtcbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNsaS10ZWxlbWV0cnktZGlzYWJsZS1zZW5kcy1uby1kYXRhLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1jbGktdGVsZW1ldHJ5LWRpc2FibGUtc2VuZHMtbm8tZGF0YS5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBMEQ7QUFFMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLG1EQUFtRCxFQUNuRCxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV0RiwrREFBK0Q7SUFDL0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUU1RCw4REFBOEQ7SUFDOUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgJ0NMSSBUZWxlbWV0cnkgLS1kaXNhYmxlIGRvZXMgbm90IHNlbmQgdG8gZW5kcG9pbnQnLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNkayhbJ2NsaS10ZWxlbWV0cnknLCAnLS1kaXNhYmxlJ10sIHsgdmVyYm9zZUxldmVsOiAzIH0pO1xuXG4gICAgLy8gQ2hlY2sgdGhlIHRyYWNlIHRoYXQgdGVsZW1ldHJ5IHdhcyBub3QgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5XG4gICAgZXhwZWN0KG91dHB1dCkubm90LnRvQ29udGFpbignVGVsZW1ldHJ5IFNlbnQgU3VjY2Vzc2Z1bGx5Jyk7XG5cbiAgICAvLyBDaGVjayB0aGUgdHJhY2UgdGhhdCBlbmRwb2ludCB0ZWxlbWV0cnkgd2FzIG5ldmVyIGNvbm5lY3RlZFxuICAgIGV4cGVjdChvdXRwdXQpLnRvQ29udGFpbignRW5kcG9pbnQgVGVsZW1ldHJ5IE5PVCBjb25uZWN0ZWQnKTtcbiAgfSksXG4pO1xuIl19
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const path = require("path");
4
4
  const fs = require("fs-extra");
5
- const constants_1 = require("./constants");
6
5
  const lib_1 = require("../../lib");
7
6
  jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
8
7
  (0, lib_1.integTest)('cdk deploy with telemetry data', (0, lib_1.withDefaultFixture)(async (fixture) => {
@@ -11,7 +10,6 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
11
10
  const deployOutput = await fixture.cdkDeploy('test-1', {
12
11
  telemetryFile,
13
12
  verboseLevel: 3, // trace mode
14
- modEnv: { TELEMETRY_ENDPOINT: constants_1.TELEMETRY_ENDPOINT },
15
13
  });
16
14
  // Check the trace that telemetry was executed successfully
17
15
  expect(deployOutput).toContain('Telemetry Sent Successfully');
@@ -56,4 +54,4 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
56
54
  ]);
57
55
  fs.unlinkSync(telemetryFile);
58
56
  }));
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS10ZWxlbWV0cnkuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWRlcGxveS10ZWxlbWV0cnkuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQiwyQ0FBaUQ7QUFDakQsbUNBQTBEO0FBRTFELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCxnQ0FBZ0MsRUFDaEMsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFFeEUsMENBQTBDO0lBQzFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7UUFDckQsYUFBYTtRQUNiLFlBQVksRUFBRSxDQUFDLEVBQUUsYUFBYTtRQUM5QixNQUFNLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSw4QkFBa0IsRUFBRTtLQUNuRCxDQUFDLENBQUM7SUFFSCwyREFBMkQ7SUFDM0QsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBRTlELE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDNUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNuQixNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDL0IsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQztpQkFDOUIsQ0FBQztnQkFDRixLQUFLLEVBQUUsV0FBVztnQkFDbEIsU0FBUyxFQUFFLE9BQU87YUFDbkIsQ0FBQztZQUNGLFdBQVcsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ25DLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2FBQ3ZDLENBQUM7U0FDSCxDQUFDO1FBQ0YsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9CLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7aUJBQzlCLENBQUM7Z0JBQ0YsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLFNBQVMsRUFBRSxRQUFRO2FBQ3BCLENBQUM7WUFDRixXQUFXLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUNuQyxPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUN2QyxDQUFDO1NBQ0gsQ0FBQztRQUNGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztZQUN0QixLQUFLLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUM3QixPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO29CQUMvQixJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO2lCQUM5QixDQUFDO2dCQUNGLEtBQUssRUFBRSxXQUFXO2dCQUNsQixTQUFTLEVBQUUsUUFBUTthQUNwQixDQUFDO1lBQ0YsV0FBVyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDbkMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7YUFDdkMsQ0FBQztTQUNILENBQUM7S0FDSCxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgVEVMRU1FVFJZX0VORFBPSU5UIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gICdjZGsgZGVwbG95IHdpdGggdGVsZW1ldHJ5IGRhdGEnLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBjb25zdCB0ZWxlbWV0cnlGaWxlID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAndGVsZW1ldHJ5Lmpzb24nKTtcblxuICAgIC8vIERlcGxveSBzdGFjayB3aGlsZSBjb2xsZWN0aW5nIHRlbGVtZXRyeVxuICAgIGNvbnN0IGRlcGxveU91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCd0ZXN0LTEnLCB7XG4gICAgICB0ZWxlbWV0cnlGaWxlLFxuICAgICAgdmVyYm9zZUxldmVsOiAzLCAvLyB0cmFjZSBtb2RlXG4gICAgICBtb2RFbnY6IHsgVEVMRU1FVFJZX0VORFBPSU5UOiBURUxFTUVUUllfRU5EUE9JTlQgfSxcbiAgICB9KTtcblxuICAgIC8vIENoZWNrIHRoZSB0cmFjZSB0aGF0IHRlbGVtZXRyeSB3YXMgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5XG4gICAgZXhwZWN0KGRlcGxveU91dHB1dCkudG9Db250YWluKCdUZWxlbWV0cnkgU2VudCBTdWNjZXNzZnVsbHknKTtcblxuICAgIGNvbnN0IGpzb24gPSBmcy5yZWFkSlNPTlN5bmModGVsZW1ldHJ5RmlsZSk7XG4gICAgZXhwZWN0KGpzb24pLnRvRXF1YWwoW1xuICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICBldmVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNvbW1hbmQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIHBhdGg6IFsnZGVwbG95JywgJyRTVEFDS1NfMSddLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdTWU5USCcsXG4gICAgICAgIH0pLFxuICAgICAgICBpZGVudGlmaWVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGV2ZW50SWQ6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCc6MScpLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICBldmVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNvbW1hbmQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIHBhdGg6IFsnZGVwbG95JywgJyRTVEFDS1NfMSddLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdERVBMT1knLFxuICAgICAgICB9KSxcbiAgICAgICAgaWRlbnRpZmllcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBldmVudElkOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnOjInKSxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgZXZlbnQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBjb21tYW5kOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICBwYXRoOiBbJ2RlcGxveScsICckU1RBQ0tTXzEnXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdGF0ZTogJ1NVQ0NFRURFRCcsXG4gICAgICAgICAgZXZlbnRUeXBlOiAnSU5WT0tFJyxcbiAgICAgICAgfSksXG4gICAgICAgIGlkZW50aWZpZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgZXZlbnRJZDogZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoJzozJyksXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgXSk7XG4gICAgZnMudW5saW5rU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgfSksXG4pO1xuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS10ZWxlbWV0cnkuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWRlcGxveS10ZWxlbWV0cnkuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQixtQ0FBMEQ7QUFFMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLGdDQUFnQyxFQUNoQyxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUV4RSwwQ0FBMEM7SUFDMUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtRQUNyRCxhQUFhO1FBQ2IsWUFBWSxFQUFFLENBQUMsRUFBRSxhQUFhO0tBQy9CLENBQUMsQ0FBQztJQUVILDJEQUEyRDtJQUMzRCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFFOUQsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztZQUN0QixLQUFLLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUM3QixPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO29CQUMvQixJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO2lCQUM5QixDQUFDO2dCQUNGLEtBQUssRUFBRSxXQUFXO2dCQUNsQixTQUFTLEVBQUUsT0FBTzthQUNuQixDQUFDO1lBQ0YsV0FBVyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDbkMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7YUFDdkMsQ0FBQztTQUNILENBQUM7UUFDRixNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDL0IsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQztpQkFDOUIsQ0FBQztnQkFDRixLQUFLLEVBQUUsV0FBVztnQkFDbEIsU0FBUyxFQUFFLFFBQVE7YUFDcEIsQ0FBQztZQUNGLFdBQVcsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ25DLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2FBQ3ZDLENBQUM7U0FDSCxDQUFDO1FBQ0YsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9CLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7aUJBQzlCLENBQUM7Z0JBQ0YsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLFNBQVMsRUFBRSxRQUFRO2FBQ3BCLENBQUM7WUFDRixXQUFXLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUNuQyxPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUN2QyxDQUFDO1NBQ0gsQ0FBQztLQUNILENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgJ2NkayBkZXBsb3kgd2l0aCB0ZWxlbWV0cnkgZGF0YScsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHRlbGVtZXRyeUZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICd0ZWxlbWV0cnkuanNvbicpO1xuXG4gICAgLy8gRGVwbG95IHN0YWNrIHdoaWxlIGNvbGxlY3RpbmcgdGVsZW1ldHJ5XG4gICAgY29uc3QgZGVwbG95T3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ3Rlc3QtMScsIHtcbiAgICAgIHRlbGVtZXRyeUZpbGUsXG4gICAgICB2ZXJib3NlTGV2ZWw6IDMsIC8vIHRyYWNlIG1vZGVcbiAgICB9KTtcblxuICAgIC8vIENoZWNrIHRoZSB0cmFjZSB0aGF0IHRlbGVtZXRyeSB3YXMgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5XG4gICAgZXhwZWN0KGRlcGxveU91dHB1dCkudG9Db250YWluKCdUZWxlbWV0cnkgU2VudCBTdWNjZXNzZnVsbHknKTtcblxuICAgIGNvbnN0IGpzb24gPSBmcy5yZWFkSlNPTlN5bmModGVsZW1ldHJ5RmlsZSk7XG4gICAgZXhwZWN0KGpzb24pLnRvRXF1YWwoW1xuICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICBldmVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNvbW1hbmQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIHBhdGg6IFsnZGVwbG95JywgJyRTVEFDS1NfMSddLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdTWU5USCcsXG4gICAgICAgIH0pLFxuICAgICAgICBpZGVudGlmaWVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGV2ZW50SWQ6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCc6MScpLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICBldmVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNvbW1hbmQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIHBhdGg6IFsnZGVwbG95JywgJyRTVEFDS1NfMSddLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdERVBMT1knLFxuICAgICAgICB9KSxcbiAgICAgICAgaWRlbnRpZmllcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBldmVudElkOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnOjInKSxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgZXZlbnQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBjb21tYW5kOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICBwYXRoOiBbJ2RlcGxveScsICckU1RBQ0tTXzEnXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdGF0ZTogJ1NVQ0NFRURFRCcsXG4gICAgICAgICAgZXZlbnRUeXBlOiAnSU5WT0tFJyxcbiAgICAgICAgfSksXG4gICAgICAgIGlkZW50aWZpZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgZXZlbnRJZDogZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoJzozJyksXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgXSk7XG4gICAgZnMudW5saW5rU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgfSksXG4pO1xuIl19
@@ -2,16 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const path = require("path");
4
4
  const fs = require("fs-extra");
5
- const constants_1 = require("./constants");
6
5
  const lib_1 = require("../../lib");
7
6
  jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
8
7
  (0, lib_1.integTest)('cdk synth with telemetry and validation error leads to invoke failure', (0, lib_1.withDefaultFixture)(async (fixture) => {
9
8
  const telemetryFile = path.join(fixture.integTestDir, `telemetry-${Date.now()}.json`);
10
- const output = await fixture.cdk(['synth', '--unstable=telemetry', `--telemetry-file=${telemetryFile}`], {
9
+ const output = await fixture.cdk(['synth', `--telemetry-file=${telemetryFile}`], {
11
10
  allowErrExit: true,
12
11
  modEnv: {
13
12
  INTEG_STACK_SET: 'stage-with-errors',
14
- TELEMETRY_ENDPOINT: constants_1.TELEMETRY_ENDPOINT,
15
13
  },
16
14
  verboseLevel: 3, // trace mode
17
15
  });
@@ -122,4 +120,4 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
122
120
  ]);
123
121
  fs.unlinkSync(telemetryFile);
124
122
  }));
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXN5bnRoLXRlbGVtZXRyeS13aXRoLWVycm9ycy5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstc3ludGgtdGVsZW1ldHJ5LXdpdGgtZXJyb3JzLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsMkNBQWlEO0FBQ2pELG1DQUEwRDtBQUUxRCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1AsdUVBQXVFLEVBQ3ZFLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxhQUFhLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEYsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixhQUFhLEVBQUUsQ0FBQyxFQUFFO1FBQ3ZHLFlBQVksRUFBRSxJQUFJO1FBQ2xCLE1BQU0sRUFBRTtZQUNOLGVBQWUsRUFBRSxtQkFBbUI7WUFDcEMsa0JBQWtCLEVBQUUsOEJBQWtCO1NBQ3ZDO1FBQ0QsWUFBWSxFQUFFLENBQUMsRUFBRSxhQUFhO0tBQy9CLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUU3QyxrRkFBa0Y7SUFDbEYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBRXhELE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDNUMsTUFBTSxD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KiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBURUxFTUVUUllfRU5EUE9JTlQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgJ2NkayBzeW50aCB3aXRoIHRlbGVtZXRyeSBhbmQgdmFsaWRhdGlvbiBlcnJvciBsZWFkcyB0byBpbnZva2UgZmFpbHVyZScsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHRlbGVtZXRyeUZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsIGB0ZWxlbWV0cnktJHtEYXRlLm5vdygpfS5qc29uYCk7XG4gICAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGsoWydzeW50aCcsICctLXVuc3RhYmxlPXRlbGVtZXRyeScsIGAtLXRlbGVtZXRyeS1maWxlPSR7dGVsZW1ldHJ5RmlsZX1gXSwge1xuICAgICAgYWxsb3dFcnJFeGl0OiB0cnVlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIElOVEVHX1NUQUNLX1NFVDogJ3N0YWdlLXdpdGgtZXJyb3JzJyxcbiAgICAgICAgVEVMRU1FVFJZX0VORFBPSU5UOiBURUxFTUVUUllfRU5EUE9JTlQsXG4gICAgICB9LFxuICAgICAgdmVyYm9zZUxldmVsOiAzLCAvLyB0cmFjZSBtb2RlXG4gICAgfSk7XG5cbiAgICBleHBlY3Qob3V0cHV0KS50b0NvbnRhaW4oJ1RoaXMgaXMgYW4gZXJyb3InKTtcblxuICAgIC8vIENoZWNrIHRoZSB0cmFjZSB0aGF0IHRlbGVtZXRyeSB3YXMgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5IGRlc3BpdGUgZXJyb3IgaW4gc3ludGhcbiAgICBleHBlY3Qob3V0cHV0KS50b0NvbnRhaW4oJ1RlbGVtZXRyeSBTZW50IFN1Y2Nlc3NmdWxseScpO1xuXG4gICAgY29uc3QganNvbiA9IGZzLnJlYWRKU09OU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgICBleHBlY3QoanNvbikudG9FcXVhbChbXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydzeW50aCddLFxuICAgICAgICAgICAgcGFyYW1ldGVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgICB1bnN0YWJsZTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBbJ3RlbGVtZXRyeS1maWxlJ106ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgbG9va3VwczogdHJ1ZSxcbiAgICAgICAgICAgICAgWydpZ25vcmUtZXJyb3JzJ106IGZhbHNlLFxuICAgICAgICAgICAgICBqc29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgZGVidWc6IGZhbHNlLFxuICAgICAgICAgICAgICBzdGFnaW5nOiB0cnVlLFxuICAgICAgICAgICAgICBbJ25vLWNvbG9yJ106IGZhbHNlLFxuICAgICAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksIC8vIGNoYW5nZXMgYmFzZWQgb24gd2hlcmUgdGhpcyBpcyBjYWxsZWRcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcXVpZXQ6IGZhbHNlLFxuICAgICAgICAgICAgICB5ZXM6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgY29udGV4dDoge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdTWU5USCcsXG4gICAgICAgIH0pLFxuICAgICAgICBpZGVudGlmaWVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGluc3RhbGxhdGlvbklkOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBzZXNzaW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHRlbGVtZXRyeVZlcnNpb246ICcxLjAnLFxuICAgICAgICAgIGNka0NsaVZlcnNpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIGNka0xpYnJhcnlWZXJzaW9uOiBmaXh0dXJlLmxpYnJhcnkucmVxdWVzdGVkVmVyc2lvbigpLFxuICAgICAgICAgIHJlZ2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgZXZlbnRJZDogZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoJzoxJyksXG4gICAgICAgICAgdGltZXN0YW1wOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSksXG4gICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgY2k6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIG9zOiB7XG4gICAgICAgICAgICBwbGF0Zm9ybTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgICByZWxlYXNlOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG5vZGVWZXJzaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJvamVjdDoge30sXG4gICAgICAgIGR1cmF0aW9uOiB7XG4gICAgICAgICAgdG90YWw6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydzeW50aCddLFxuICAgICAgICAgICAgcGFyYW1ldGVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgICB1bnN0YWJsZTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBbJ3RlbGVtZXRyeS1maWxlJ106ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgbG9va3VwczogdHJ1ZSxcbiAgICAgICAgICAgICAgWydpZ25vcmUtZXJyb3JzJ106IGZhbHNlLFxuICAgICAgICAgICAgICBqc29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgZGVidWc6IGZhbHNlLFxuICAgICAgICAgICAgICBzdGFnaW5nOiB0cnVlLFxuICAgICAgICAgICAgICBbJ25vLWNvbG9yJ106IGZhbHNlLFxuICAgICAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksIC8vIGNoYW5nZXMgYmFzZWQgb24gd2hlcmUgdGhpcyBpcyBjYWxsZWRcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcXVpZXQ6IGZhbHNlLFxuICAgICAgICAgICAgICB5ZXM6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgY29udGV4dDoge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnRkFJTEVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdJTlZPS0UnLFxuICAgICAgICB9KSxcbiAgICAgICAgaWRlbnRpZmllcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBpbnN0YWxsYXRpb25JZDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgc2Vzc2lvbklkOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICB0ZWxlbWV0cnlWZXJzaW9uOiAnMS4wJyxcbiAgICAgICAgICBjZGtDbGlWZXJzaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBjZGtMaWJyYXJ5VmVyc2lvbjogZml4dHVyZS5saWJyYXJ5LnJlcXVlc3RlZFZlcnNpb24oKSxcbiAgICAgICAgICByZWdpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIGV2ZW50SWQ6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCc6MicpLFxuICAgICAgICAgIHRpbWVzdGFtcDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIGNpOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBvczoge1xuICAgICAgICAgICAgcGxhdGZvcm06IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgICAgcmVsZWFzZTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBub2RlVmVyc2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0sXG4gICAgICAgIHByb2plY3Q6IHt9LFxuICAgICAgICBkdXJhdGlvbjoge1xuICAgICAgICAgIHRvdGFsOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBuYW1lOiAnQXNzZW1ibHlFcnJvcicsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICBdKTtcbiAgICBmcy51bmxpbmtTeW5jKHRlbGVtZXRyeUZpbGUpO1xuICB9KSxcbik7XG5cbiJdfQ==
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXN5bnRoLXRlbGVtZXRyeS13aXRoLWVycm9ycy5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstc3ludGgtdGVsZW1ldHJ5LXdpdGgtZXJyb3JzLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsbUNBQTBEO0FBRTFELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCx1RUFBdUUsRUFDdkUsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGFBQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RixNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLGFBQWEsRUFBRSxDQUFDLEVBQUU7UUFDL0UsWUFBWSxFQUFFLElBQUk7UUFDbEIsTUFBTSxFQUFFO1lBQ04sZUFBZSxFQUFFLG1CQUFtQjtTQUNyQztRQUNELFlBQVksRUFBRSxDQUFDLEVBQUUsYUFBYTtLQUMvQixDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFN0Msa0ZBQWtGO0lBQ2xGLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUV4RCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9CLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDZixVQUFVLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO3dCQUNsQyxRQUFRLEVBQUUsWUFBWTt3QkFDdEIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFlBQVk7d0JBQ2hDLE9BQU8sRUFBRSxJQUFJO3dCQUNiLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSzt3QkFDeEIsSUFBSSxFQUFFLEtBQUs7d0JBQ1gsS0FBSyxFQUFFLEtBQUs7d0JBQ1osT0FBTyxFQUFFLElBQUk7d0JBQ2IsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLO3dCQUNuQixFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLHdDQUF3Qzt3QkFDL0QsVUFBVSxFQUFFLElBQUk7d0JBQ2hCLEtBQUssRUFBRSxLQUFLO3dCQUNaLEdBQUcsRUFBRSxLQUFLO3FCQUNYLENBQUM7b0JBQ0YsTUFBTSxFQUFFO3dCQUNOLE9BQU8sRUFBRSxFQUFFO3FCQUNaO2lCQUNGLENBQUM7Z0JBQ0YsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLFNBQVMsRUFBRSxPQUFPO2FBQ25CLENBQUM7WUFDRixXQUFXLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUNuQyxjQUFjLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDakMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQzVCLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLGFBQWEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNoQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFO2dCQUNyRCxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDekIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RDLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2FBQzdCLENBQUM7WUFDRixXQUFXLEVBQUU7Z0JBQ1gsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JCLEVBQUUsRUFBRTtvQkFDRixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtvQkFDM0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7aUJBQzNCO2dCQUNELFdBQVcsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2FBQy9CO1lBQ0QsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDekI7U0FDRixDQUFDO1FBQ0YsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9CLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDZixVQUFVLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO3dCQUNsQyxRQUFRLEVBQUUsWUFBWTt3QkFDdEIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFlBQVk7d0JBQ2hDLE9BQU8sRUFBRSxJQUFJO3dCQUNiLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSzt3QkFDeEIsSUFBSSxFQUFFLEtBQUs7d0JBQ1gsS0FBSyxFQUFFLEtBQUs7d0JBQ1osT0FBTyxFQUFFLElBQUk7d0JBQ2IsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLO3dCQUNuQixFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLHdDQUF3Qzt3QkFDL0QsVUFBVSxFQUFFLElBQUk7d0JBQ2hCLEtBQUssRUFBRSxLQUFLO3dCQUNaLEdBQUcsRUFBRSxLQUFLO3FCQUNYLENBQUM7b0JBQ0YsTUFBTSxFQUFFO3dCQUNOLE9BQU8sRUFBRSxFQUFFO3FCQUNaO2lCQUNGLENBQUM7Z0JBQ0YsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsU0FBUyxFQUFFLFFBQVE7YUFDcEIsQ0FBQztZQUNGLFdBQVcsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ25DLGNBQWMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNqQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDNUIsZ0JBQWdCLEVBQUUsS0FBSztnQkFDdkIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3JELE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDdEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDN0IsQ0FBQztZQUNGLFdBQVcsRUFBRTtnQkFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDckIsRUFBRSxFQUFFO29CQUNGLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO29CQUMzQixPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtpQkFDM0I7Z0JBQ0QsV0FBVyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDL0I7WUFDRCxPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTthQUN6QjtZQUNELEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsZUFBZTthQUN0QjtTQUNGLENBQUM7S0FDSCxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gICdjZGsgc3ludGggd2l0aCB0ZWxlbWV0cnkgYW5kIHZhbGlkYXRpb24gZXJyb3IgbGVhZHMgdG8gaW52b2tlIGZhaWx1cmUnLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBjb25zdCB0ZWxlbWV0cnlGaWxlID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCBgdGVsZW1ldHJ5LSR7RGF0ZS5ub3coKX0uanNvbmApO1xuICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrKFsnc3ludGgnLCBgLS10ZWxlbWV0cnktZmlsZT0ke3RlbGVtZXRyeUZpbGV9YF0sIHtcbiAgICAgIGFsbG93RXJyRXhpdDogdHJ1ZSxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBJTlRFR19TVEFDS19TRVQ6ICdzdGFnZS13aXRoLWVycm9ycycsXG4gICAgICB9LFxuICAgICAgdmVyYm9zZUxldmVsOiAzLCAvLyB0cmFjZSBtb2RlXG4gICAgfSk7XG5cbiAgICBleHBlY3Qob3V0cHV0KS50b0NvbnRhaW4oJ1RoaXMgaXMgYW4gZXJyb3InKTtcblxuICAgIC8vIENoZWNrIHRoZSB0cmFjZSB0aGF0IHRlbGVtZXRyeSB3YXMgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5IGRlc3BpdGUgZXJyb3IgaW4gc3ludGhcbiAgICBleHBlY3Qob3V0cHV0KS50b0NvbnRhaW4oJ1RlbGVtZXRyeSBTZW50IFN1Y2Nlc3NmdWxseScpO1xuXG4gICAgY29uc3QganNvbiA9IGZzLnJlYWRKU09OU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgICBleHBlY3QoanNvbikudG9FcXVhbChbXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydzeW50aCddLFxuICAgICAgICAgICAgcGFyYW1ldGVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgICB1bnN0YWJsZTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBbJ3RlbGVtZXRyeS1maWxlJ106ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgbG9va3VwczogdHJ1ZSxcbiAgICAgICAgICAgICAgWydpZ25vcmUtZXJyb3JzJ106IGZhbHNlLFxuICAgICAgICAgICAgICBqc29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgZGVidWc6IGZhbHNlLFxuICAgICAgICAgICAgICBzdGFnaW5nOiB0cnVlLFxuICAgICAgICAgICAgICBbJ25vLWNvbG9yJ106IGZhbHNlLFxuICAgICAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksIC8vIGNoYW5nZXMgYmFzZWQgb24gd2hlcmUgdGhpcyBpcyBjYWxsZWRcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcXVpZXQ6IGZhbHNlLFxuICAgICAgICAgICAgICB5ZXM6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgY29udGV4dDoge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdTWU5USCcsXG4gICAgICAgIH0pLFxuICAgICAgICBpZGVudGlmaWVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGluc3RhbGxhdGlvbklkOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBzZXNzaW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHRlbGVtZXRyeVZlcnNpb246ICcxLjAnLFxuICAgICAgICAgIGNka0NsaVZlcnNpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIGNka0xpYnJhcnlWZXJzaW9uOiBmaXh0dXJlLmxpYnJhcnkucmVxdWVzdGVkVmVyc2lvbigpLFxuICAgICAgICAgIHJlZ2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgZXZlbnRJZDogZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoJzoxJyksXG4gICAgICAgICAgdGltZXN0YW1wOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSksXG4gICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgY2k6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIG9zOiB7XG4gICAgICAgICAgICBwbGF0Zm9ybTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgICByZWxlYXNlOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG5vZGVWZXJzaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJvamVjdDoge30sXG4gICAgICAgIGR1cmF0aW9uOiB7XG4gICAgICAgICAgdG90YWw6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydzeW50aCddLFxuICAgICAgICAgICAgcGFyYW1ldGVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgICB1bnN0YWJsZTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBbJ3RlbGVtZXRyeS1maWxlJ106ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgbG9va3VwczogdHJ1ZSxcbiAgICAgICAgICAgICAgWydpZ25vcmUtZXJyb3JzJ106IGZhbHNlLFxuICAgICAgICAgICAgICBqc29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgZGVidWc6IGZhbHNlLFxuICAgICAgICAgICAgICBzdGFnaW5nOiB0cnVlLFxuICAgICAgICAgICAgICBbJ25vLWNvbG9yJ106IGZhbHNlLFxuICAgICAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksIC8vIGNoYW5nZXMgYmFzZWQgb24gd2hlcmUgdGhpcyBpcyBjYWxsZWRcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcXVpZXQ6IGZhbHNlLFxuICAgICAgICAgICAgICB5ZXM6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgY29udGV4dDoge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnRkFJTEVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdJTlZPS0UnLFxuICAgICAgICB9KSxcbiAgICAgICAgaWRlbnRpZmllcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBpbnN0YWxsYXRpb25JZDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgc2Vzc2lvbklkOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICB0ZWxlbWV0cnlWZXJzaW9uOiAnMS4wJyxcbiAgICAgICAgICBjZGtDbGlWZXJzaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBjZGtMaWJyYXJ5VmVyc2lvbjogZml4dHVyZS5saWJyYXJ5LnJlcXVlc3RlZFZlcnNpb24oKSxcbiAgICAgICAgICByZWdpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIGV2ZW50SWQ6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCc6MicpLFxuICAgICAgICAgIHRpbWVzdGFtcDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIGNpOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBvczoge1xuICAgICAgICAgICAgcGxhdGZvcm06IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgICAgcmVsZWFzZTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBub2RlVmVyc2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0sXG4gICAgICAgIHByb2plY3Q6IHt9LFxuICAgICAgICBkdXJhdGlvbjoge1xuICAgICAgICAgIHRvdGFsOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBuYW1lOiAnQXNzZW1ibHlFcnJvcicsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICBdKTtcbiAgICBmcy51bmxpbmtTeW5jKHRlbGVtZXRyeUZpbGUpO1xuICB9KSxcbik7XG5cbiJdfQ==
@@ -2,12 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const path = require("path");
4
4
  const fs = require("fs-extra");
5
- const constants_1 = require("./constants");
6
5
  const lib_1 = require("../../lib");
7
6
  jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
8
7
  (0, lib_1.integTest)('cdk synth with telemetry data', (0, lib_1.withDefaultFixture)(async (fixture) => {
9
8
  const telemetryFile = path.join(fixture.integTestDir, `telemetry-${Date.now()}.json`);
10
- const synthOutput = await fixture.cdk(['synth', fixture.fullStackName('test-1'), '--unstable=telemetry', `--telemetry-file=${telemetryFile}`], { modEnv: { TELEMETRY_ENDPOINT: constants_1.TELEMETRY_ENDPOINT }, verboseLevel: 3 });
9
+ const synthOutput = await fixture.cdk(['synth', fixture.fullStackName('test-1'), `--telemetry-file=${telemetryFile}`], { verboseLevel: 3 });
11
10
  // Check the trace that telemetry was executed successfully
12
11
  expect(synthOutput).toContain('Telemetry Sent Successfully');
13
12
  const json = fs.readJSONSync(telemetryFile);
@@ -112,4 +111,4 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
112
111
  ]);
113
112
  fs.unlinkSync(telemetryFile);
114
113
  }));
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXN5bnRoLXRlbGVtZXRyeS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstc3ludGgtdGVsZW1ldHJ5LmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsMkNBQWlEO0FBQ2pELG1DQUEwRDtBQUUxRCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1AsK0JBQStCLEVBQy9CLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxhQUFhLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFdEYsTUFBTSxXQUFXLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNuQyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixhQUFhLEVBQUUsQ0FBQyxFQUN2RyxFQUFFLE1BQU0sRUFBRSxFQUFFLGtCQUFrQixFQUFFLDhCQUFrQixFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUN4RSxDQUFDO0lBRUYsMkRBQTJEO0lBQzNELE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUU3RCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdC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QUFFLFFBQVE7YUFDcEIsQ0FBQztZQUNGLFdBQVcsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ25DLGNBQWMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNqQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDNUIsZ0JBQWdCLEVBQUUsS0FBSztnQkFDdkIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3JELE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDdEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDN0IsQ0FBQztZQUNGLFdBQVcsRUFBRTtnQkFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDckIsRUFBRSxFQUFFO29CQUNGLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO29CQUMzQixPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtpQkFDM0I7Z0JBQ0QsV0FBVyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDL0I7WUFDRCxPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTthQUN6QjtTQUNGLENBQUM7S0FDSCxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgVEVMRU1FVFJZX0VORFBPSU5UIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gICdjZGsgc3ludGggd2l0aCB0ZWxlbWV0cnkgZGF0YScsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHRlbGVtZXRyeUZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsIGB0ZWxlbWV0cnktJHtEYXRlLm5vdygpfS5qc29uYCk7XG5cbiAgICBjb25zdCBzeW50aE91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrKFxuICAgICAgWydzeW50aCcsIGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgndGVzdC0xJyksICctLXVuc3RhYmxlPXRlbGVtZXRyeScsIGAtLXRlbGVtZXRyeS1maWxlPSR7dGVsZW1ldHJ5RmlsZX1gXSxcbiAgICAgIHsgbW9kRW52OiB7IFRFTEVNRVRSWV9FTkRQT0lOVDogVEVMRU1FVFJZX0VORFBPSU5UIH0sIHZlcmJvc2VMZXZlbDogMyB9LCAvLyB0cmFjZSBtb2RlXG4gICAgKTtcblxuICAgIC8vIENoZWNrIHRoZSB0cmFjZSB0aGF0IHRlbGVtZXRyeSB3YXMgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5XG4gICAgZXhwZWN0KHN5bnRoT3V0cHV0KS50b0NvbnRhaW4oJ1RlbGVtZXRyeSBTZW50IFN1Y2Nlc3NmdWxseScpO1xuXG4gICAgY29uc3QganNvbiA9IGZzLnJlYWRKU09OU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgICBleHBlY3QoanNvbikudG9FcXVhbChbXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydzeW50aCcsICckU1RBQ0tTXzEnXSxcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgICAgdW5zdGFibGU6ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgWyd0ZWxlbWV0cnktZmlsZSddOiAnPHJlZGFjdGVkPicsXG4gICAgICAgICAgICAgIGxvb2t1cHM6IHRydWUsXG4gICAgICAgICAgICAgIFsnaWdub3JlLWVycm9ycyddOiBmYWxzZSxcbiAgICAgICAgICAgICAganNvbjogZmFsc2UsXG4gICAgICAgICAgICAgIGRlYnVnOiBmYWxzZSxcbiAgICAgICAgICAgICAgc3RhZ2luZzogdHJ1ZSxcbiAgICAgICAgICAgICAgWyduby1jb2xvciddOiBmYWxzZSxcbiAgICAgICAgICAgICAgY2k6IGV4cGVjdC5hbnl0aGluZygpLCAvLyBjaGFuZ2VzIGJhc2VkIG9uIHdoZXJlIHRoaXMgaXMgY2FsbGVkXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IHRydWUsXG4gICAgICAgICAgICAgIHF1aWV0OiBmYWxzZSxcbiAgICAgICAgICAgICAgeWVzOiBmYWxzZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdGF0ZTogJ1NVQ0NFRURFRCcsXG4gICAgICAgICAgZXZlbnRUeXBlOiAnU1lOVEgnLFxuICAgICAgICB9KSxcbiAgICAgICAgLy8gc29tZSBvZiB0aGVzZSBjYW4gY2hhbmdlOyBidXQgd2UgYXNzZXJ0IHRoYXQgc29tZSB2YWx1ZSBpcyByZWNvcmRlZFxuICAgICAgICBpZGVudGlmaWVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGluc3RhbGxhdGlvbklkOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBzZXNzaW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHRlbGVtZXRyeVZlcnNpb246ICcxLjAnLFxuICAgICAgICAgIGNka0NsaVZlcnNpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIGNka0xpYnJhcnlWZXJzaW9uOiBmaXh0dXJlLmxpYnJhcnkucmVxdWVzdGVkVmVyc2lvbigpLFxuICAgICAgICAgIHJlZ2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgZXZlbnRJZDogZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoJzoxJyksXG4gICAgICAgICAgdGltZXN0YW1wOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSksXG4gICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgY2k6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIG9zOiB7XG4gICAgICAgICAgICBwbGF0Zm9ybTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgICByZWxlYXNlOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG5vZGVWZXJzaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJvamVjdDoge30sXG4gICAgICAgIGR1cmF0aW9uOiB7XG4gICAgICAgICAgdG90YWw6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydzeW50aCcsICckU1RBQ0tTXzEnXSxcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgICAgdW5zdGFibGU6ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgWyd0ZWxlbWV0cnktZmlsZSddOiAnPHJlZGFjdGVkPicsXG4gICAgICAgICAgICAgIGxvb2t1cHM6IHRydWUsXG4gICAgICAgICAgICAgIFsnaWdub3JlLWVycm9ycyddOiBmYWxzZSxcbiAgICAgICAgICAgICAganNvbjogZmFsc2UsXG4gICAgICAgICAgICAgIGRlYnVnOiBmYWxzZSxcbiAgICAgICAgICAgICAgc3RhZ2luZzogdHJ1ZSxcbiAgICAgICAgICAgICAgWyduby1jb2xvciddOiBmYWxzZSxcbiAgICAgICAgICAgICAgY2k6IGV4cGVjdC5hbnl0aGluZygpLCAvLyBjaGFuZ2VzIGJhc2VkIG9uIHdoZXJlIHRoaXMgaXMgY2FsbGVkXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IHRydWUsXG4gICAgICAgICAgICAgIHF1aWV0OiBmYWxzZSxcbiAgICAgICAgICAgICAgeWVzOiBmYWxzZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdGF0ZTogJ1NVQ0NFRURFRCcsXG4gICAgICAgICAgZXZlbnRUeXBlOiAnSU5WT0tFJyxcbiAgICAgICAgfSksXG4gICAgICAgIGlkZW50aWZpZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgaW5zdGFsbGF0aW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHNlc3Npb25JZDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgdGVsZW1ldHJ5VmVyc2lvbjogJzEuMCcsXG4gICAgICAgICAgY2RrQ2xpVmVyc2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgY2RrTGlicmFyeVZlcnNpb246IGZpeHR1cmUubGlicmFyeS5yZXF1ZXN0ZWRWZXJzaW9uKCksXG4gICAgICAgICAgcmVnaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBldmVudElkOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnOjInKSxcbiAgICAgICAgICB0aW1lc3RhbXA6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9KSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgb3M6IHtcbiAgICAgICAgICAgIHBsYXRmb3JtOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICAgIHJlbGVhc2U6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbm9kZVZlcnNpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9LFxuICAgICAgICBwcm9qZWN0OiB7fSxcbiAgICAgICAgZHVyYXRpb246IHtcbiAgICAgICAgICB0b3RhbDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICBdKTtcbiAgICBmcy51bmxpbmtTeW5jKHRlbGVtZXRyeUZpbGUpO1xuICB9KSxcbik7XG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXN5bnRoLXRlbGVtZXRyeS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstc3ludGgtdGVsZW1ldHJ5LmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsbUNBQTBEO0FBRTFELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCwrQkFBK0IsRUFDL0IsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGFBQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUV0RixNQUFNLFdBQVcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ25DLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsb0JBQW9CLGFBQWEsRUFBRSxDQUFDLEVBQy9FLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUNwQixDQUFDO0lBRUYsMkRBQTJEO0lBQzNELE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUU3RCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9CLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxXQUFX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RUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNqQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDNUIsZ0JBQWdCLEVBQUUsS0FBSztnQkFDdkIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3JELE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDdEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDN0IsQ0FBQztZQUNGLFdBQVcsRUFBRTtnQkFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDckIsRUFBRSxFQUFFO29CQUNGLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO29CQUMzQixPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtpQkFDM0I7Z0JBQ0QsV0FBVyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDL0I7WUFDRCxPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTthQUN6QjtTQUNGLENBQUM7S0FDSCxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gICdjZGsgc3ludGggd2l0aCB0ZWxlbWV0cnkgZGF0YScsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHRlbGVtZXRyeUZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsIGB0ZWxlbWV0cnktJHtEYXRlLm5vdygpfS5qc29uYCk7XG5cbiAgICBjb25zdCBzeW50aE91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrKFxuICAgICAgWydzeW50aCcsIGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgndGVzdC0xJyksIGAtLXRlbGVtZXRyeS1maWxlPSR7dGVsZW1ldHJ5RmlsZX1gXSxcbiAgICAgIHsgdmVyYm9zZUxldmVsOiAzIH0sIC8vIHRyYWNlIG1vZGVcbiAgICApO1xuXG4gICAgLy8gQ2hlY2sgdGhlIHRyYWNlIHRoYXQgdGVsZW1ldHJ5IHdhcyBleGVjdXRlZCBzdWNjZXNzZnVsbHlcbiAgICBleHBlY3Qoc3ludGhPdXRwdXQpLnRvQ29udGFpbignVGVsZW1ldHJ5IFNlbnQgU3VjY2Vzc2Z1bGx5Jyk7XG5cbiAgICBjb25zdCBqc29uID0gZnMucmVhZEpTT05TeW5jKHRlbGVtZXRyeUZpbGUpO1xuICAgIGV4cGVjdChqc29uKS50b0VxdWFsKFtcbiAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgZXZlbnQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBjb21tYW5kOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICBwYXRoOiBbJ3N5bnRoJywgJyRTVEFDS1NfMSddLFxuICAgICAgICAgICAgcGFyYW1ldGVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgICB1bnN0YWJsZTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBbJ3RlbGVtZXRyeS1maWxlJ106ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgbG9va3VwczogdHJ1ZSxcbiAgICAgICAgICAgICAgWydpZ25vcmUtZXJyb3JzJ106IGZhbHNlLFxuICAgICAgICAgICAgICBqc29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgZGVidWc6IGZhbHNlLFxuICAgICAgICAgICAgICBzdGFnaW5nOiB0cnVlLFxuICAgICAgICAgICAgICBbJ25vLWNvbG9yJ106IGZhbHNlLFxuICAgICAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksIC8vIGNoYW5nZXMgYmFzZWQgb24gd2hlcmUgdGhpcyBpcyBjYWxsZWRcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcXVpZXQ6IGZhbHNlLFxuICAgICAgICAgICAgICB5ZXM6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgY29udGV4dDoge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdTWU5USCcsXG4gICAgICAgIH0pLFxuICAgICAgICAvLyBzb21lIG9mIHRoZXNlIGNhbiBjaGFuZ2U7IGJ1dCB3ZSBhc3NlcnQgdGhhdCBzb21lIHZhbHVlIGlzIHJlY29yZGVkXG4gICAgICAgIGlkZW50aWZpZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgaW5zdGFsbGF0aW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHNlc3Npb25JZDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgdGVsZW1ldHJ5VmVyc2lvbjogJzEuMCcsXG4gICAgICAgICAgY2RrQ2xpVmVyc2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgY2RrTGlicmFyeVZlcnNpb246IGZpeHR1cmUubGlicmFyeS5yZXF1ZXN0ZWRWZXJzaW9uKCksXG4gICAgICAgICAgcmVnaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBldmVudElkOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnOjEnKSxcbiAgICAgICAgICB0aW1lc3RhbXA6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9KSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgb3M6IHtcbiAgICAgICAgICAgIHBsYXRmb3JtOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICAgIHJlbGVhc2U6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbm9kZVZlcnNpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9LFxuICAgICAgICBwcm9qZWN0OiB7fSxcbiAgICAgICAgZHVyYXRpb246IHtcbiAgICAgICAgICB0b3RhbDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgZXZlbnQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBjb21tYW5kOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICBwYXRoOiBbJ3N5bnRoJywgJyRTVEFDS1NfMSddLFxuICAgICAgICAgICAgcGFyYW1ldGVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgICB1bnN0YWJsZTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBbJ3RlbGVtZXRyeS1maWxlJ106ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgbG9va3VwczogdHJ1ZSxcbiAgICAgICAgICAgICAgWydpZ25vcmUtZXJyb3JzJ106IGZhbHNlLFxuICAgICAgICAgICAgICBqc29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgZGVidWc6IGZhbHNlLFxuICAgICAgICAgICAgICBzdGFnaW5nOiB0cnVlLFxuICAgICAgICAgICAgICBbJ25vLWNvbG9yJ106IGZhbHNlLFxuICAgICAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksIC8vIGNoYW5nZXMgYmFzZWQgb24gd2hlcmUgdGhpcyBpcyBjYWxsZWRcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcXVpZXQ6IGZhbHNlLFxuICAgICAgICAgICAgICB5ZXM6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgY29udGV4dDoge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdJTlZPS0UnLFxuICAgICAgICB9KSxcbiAgICAgICAgaWRlbnRpZmllcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBpbnN0YWxsYXRpb25JZDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgc2Vzc2lvbklkOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICB0ZWxlbWV0cnlWZXJzaW9uOiAnMS4wJyxcbiAgICAgICAgICBjZGtDbGlWZXJzaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBjZGtMaWJyYXJ5VmVyc2lvbjogZml4dHVyZS5saWJyYXJ5LnJlcXVlc3RlZFZlcnNpb24oKSxcbiAgICAgICAgICByZWdpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIGV2ZW50SWQ6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCc6MicpLFxuICAgICAgICAgIHRpbWVzdGFtcDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIGNpOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBvczoge1xuICAgICAgICAgICAgcGxhdGZvcm06IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgICAgcmVsZWFzZTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBub2RlVmVyc2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0sXG4gICAgICAgIHByb2plY3Q6IHt9LFxuICAgICAgICBkdXJhdGlvbjoge1xuICAgICAgICAgIHRvdGFsOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIF0pO1xuICAgIGZzLnVubGlua1N5bmModGVsZW1ldHJ5RmlsZSk7XG4gIH0pLFxuKTtcbiJdfQ==
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const path = require("path");
4
- const fs = require("fs-extra");
5
- const lib_1 = require("../../../lib");
6
- jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
- (0, lib_1.integTest)('sending cli telemetry to file fails if not invoked with --unstable', (0, lib_1.withDefaultFixture)(async (fixture) => {
8
- const telemetryFile = path.join(fixture.integTestDir, `telemetry-${Date.now()}.json`);
9
- try {
10
- await fixture.cdk(['list', `--telemetry-file=${telemetryFile}`]);
11
- throw new Error('Expected command to fail');
12
- }
13
- catch (error) {
14
- expect(fs.existsSync(telemetryFile)).toBeFalsy();
15
- expect(fixture.output.toString()).toContain('Unstable feature use');
16
- }
17
- }));
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNsaS10ZWxlbWV0cnktc2VuZC10by1maWxlLXVuc3RhYmxlLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1jbGktdGVsZW1ldHJ5LXNlbmQtdG8tZmlsZS11bnN0YWJsZS5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLHNDQUE2RDtBQUU3RCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1Asb0VBQW9FLEVBQ3BFLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxhQUFhLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEYsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLG9CQUFvQixhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqRCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuaW50ZWdUZXN0KFxuICAnc2VuZGluZyBjbGkgdGVsZW1ldHJ5IHRvIGZpbGUgZmFpbHMgaWYgbm90IGludm9rZWQgd2l0aCAtLXVuc3RhYmxlJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3QgdGVsZW1ldHJ5RmlsZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgYHRlbGVtZXRyeS0ke0RhdGUubm93KCl9Lmpzb25gKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZml4dHVyZS5jZGsoWydsaXN0JywgYC0tdGVsZW1ldHJ5LWZpbGU9JHt0ZWxlbWV0cnlGaWxlfWBdKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgY29tbWFuZCB0byBmYWlsJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGV4cGVjdChmcy5leGlzdHNTeW5jKHRlbGVtZXRyeUZpbGUpKS50b0JlRmFsc3koKTtcbiAgICAgIGV4cGVjdChmaXh0dXJlLm91dHB1dC50b1N0cmluZygpKS50b0NvbnRhaW4oJ1Vuc3RhYmxlIGZlYXR1cmUgdXNlJyk7XG4gICAgfVxuICB9KSxcbik7XG4iXX0=
@@ -1 +0,0 @@
1
- export declare const TELEMETRY_ENDPOINT = "https://cdk-cli-telemetry.us-east-1.api.aws/metrics";
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TELEMETRY_ENDPOINT = void 0;
4
- exports.TELEMETRY_ENDPOINT = 'https://cdk-cli-telemetry.us-east-1.api.aws/metrics';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsa0JBQWtCLEdBQUcscURBQXFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgVEVMRU1FVFJZX0VORFBPSU5UID0gJ2h0dHBzOi8vY2RrLWNsaS10ZWxlbWV0cnkudXMtZWFzdC0xLmFwaS5hd3MvbWV0cmljcyc7XG4iXX0=