@macedon-technologies/batman 1.30.0 → 1.31.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.
- package/.jsii +147 -7
- package/API.md +639 -0
- package/README.md +28 -0
- package/build-tools/scan-generated-workflows.ts +2 -0
- package/lib/Application.d.ts +9 -0
- package/lib/Application.js +7 -1
- package/lib/BatmanProject.d.ts +9 -0
- package/lib/BatmanProject.js +4 -3
- package/lib/BootcampApplication.d.ts +9 -0
- package/lib/BootcampApplication.js +7 -1
- package/lib/BootcampProject.js +4 -3
- package/lib/CodeOwnersFile.js +1 -1
- package/lib/PrAutoMergeWorkflow.d.ts +19 -0
- package/lib/PrAutoMergeWorkflow.js +84 -0
- package/lib/ProductionDeployWorkflow.js +1 -1
- package/lib/SoftwareFactoryFiles.js +1 -1
- package/lib/StagingDeployWorkflow.js +3 -2
- package/lib/WorkflowActionVersions.d.ts +7 -0
- package/lib/WorkflowActionVersions.js +2 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +6 -3
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@ const javascript_1 = require("projen/lib/javascript");
|
|
|
7
7
|
const utils_1 = require("./utils");
|
|
8
8
|
const WorkflowActionVersions_1 = require("./WorkflowActionVersions");
|
|
9
9
|
class StagingDeployWorkflow extends projen_1.YamlFile {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.StagingDeployWorkflow", version: "1.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.StagingDeployWorkflow", version: "1.31.0" };
|
|
11
11
|
constructor(project, options) {
|
|
12
12
|
const packageManager = project.package.packageManager;
|
|
13
13
|
const actionVersions = (0, WorkflowActionVersions_1.resolveActionVersions)(options.actionVersions);
|
|
@@ -20,6 +20,7 @@ class StagingDeployWorkflow extends projen_1.YamlFile {
|
|
|
20
20
|
push: {
|
|
21
21
|
branches: ['main'],
|
|
22
22
|
},
|
|
23
|
+
workflow_dispatch: {},
|
|
23
24
|
},
|
|
24
25
|
permissions: {
|
|
25
26
|
'id-token': 'write',
|
|
@@ -114,4 +115,4 @@ class StagingDeployWorkflow extends projen_1.YamlFile {
|
|
|
114
115
|
}
|
|
115
116
|
}
|
|
116
117
|
exports.StagingDeployWorkflow = StagingDeployWorkflow;
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhZ2luZ0RlcGxveVdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N0YWdpbmdEZXBsb3lXb3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQWtDO0FBRWxDLHNEQUEyRDtBQUMzRCxtQ0FBMkQ7QUFDM0QscUVBQXlGO0FBY3pGLE1BQWEscUJBQXNCLFNBQVEsaUJBQVE7O0lBQ2pELFlBQVksT0FBNEIsRUFBRSxPQUFxQztRQUM3RSxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUN0RCxNQUFNLGNBQWMsR0FBRyxJQUFBLDhDQUFxQixFQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyRSxLQUFLLENBQUMsT0FBTyxFQUFFLHNDQUFzQyxFQUFFO1lBQ3JELE1BQU0sRUFBRSxJQUFJO1lBQ1osUUFBUSxFQUFFLElBQUk7WUFDZCxHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsRUFBRSxFQUFFO29CQUNGLElBQUksRUFBRTt3QkFDSixRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUM7cUJBQ25CO29CQUNELGlCQUFpQixFQUFFLEVBQUU7aUJBQ3RCO2dCQUNELFdBQVcsRUFBRTtvQkFDWCxVQUFVLEVBQUUsT0FBTztvQkFDbkIsVUFBVSxFQUFFLE1BQU07aUJBQ25CO2dCQUNELElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUU7d0JBQ04sU0FBUyxFQUFFLGVBQWU7d0JBQzFCLE9BQU8sRUFBRTs0QkFDUDtnQ0FDRSxJQUFJLEVBQUUsVUFBVTtnQ0FDaEIsSUFBSSxFQUFFLGNBQWMsQ0FBQyxRQUFRO2dDQUM3QixJQUFJLEVBQUU7b0NBQ0oscUJBQXFCLEVBQUUsS0FBSztpQ0FDN0I7NkJBQ0Y7NEJBQ0QsR0FBRyxDQUFDLGNBQWMsS0FBSywrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0NBQ2hELElBQUksRUFBRSxZQUFZO29DQUNsQixJQUFJLEVBQUUsY0FBYyxDQUFDLGVBQWU7aUNBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDOzRCQUNSO2dDQUNFLElBQUksRUFBRSxlQUFlO2dDQUNyQixJQUFJLEVBQUUsY0FBYyxDQUFDLFNBQVM7Z0NBQzlCLElBQUksRUFBRTtvQ0FDSixjQUFjLEVBQUUsSUFBSTtvQ0FDcEIsdUJBQXVCLEVBQUUsS0FBSztpQ0FDL0I7NkJBQ0Y7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLDJCQUEyQjtnQ0FDakMsSUFBSSxFQUFFLGNBQWMsQ0FBQyx1QkFBdUI7Z0NBQzVDLElBQUksRUFBRTtvQ0FDSixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsT0FBTztvQ0FDakMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxTQUFTO2lDQUNoQzs2QkFDRjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsc0JBQXNCO2dDQUM1QixHQUFHLEVBQUUsSUFBQSxzQkFBYyxFQUFDLGNBQWMsQ0FBQzs2QkFDcEM7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLG9CQUFvQjtnQ0FDMUIsR0FBRyxFQUFFLCtCQUErQixPQUFPLENBQUMsbUJBQW1CLDRFQUE0RTs2QkFDNUk7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLG1CQUFtQjtnQ0FDekIsRUFBRSxFQUFFLFFBQVE7Z0NBQ1osR0FBRyxFQUFFO29DQUNILFdBQVcsRUFBRSxTQUFTO2lDQUN2QjtnQ0FDRCxHQUFHLEVBQUUsR0FBRyxJQUFBLHdCQUFnQixFQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYyxPQUFPLENBQUMsV0FBVyxtRUFBbUU7NkJBQ3BKOzRCQUNEO2dDQUNFLElBQUksRUFBRSxpQkFBaUI7Z0NBQ3ZCLEVBQUUsRUFBRSxTQUFTO2dDQUNiLEdBQUcsRUFBRTtvQ0FDSCxzRUFBc0U7b0NBQ3RFLG1EQUFtRDtvQ0FDbkQsa0NBQWtDO2lDQUNuQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7NkJBQ2I7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLGNBQWM7Z0NBQ3BCLEVBQUUsRUFBRSxVQUFVO2dDQUNkLEdBQUcsRUFBRTtvQ0FDSCxNQUFNLEVBQUUsbUJBQW1CO29DQUMzQixXQUFXLEVBQUUsMENBQTBDO29DQUN2RCxJQUFJLEVBQUUsMEJBQTBCO29DQUNoQyxNQUFNLEVBQUUsd0JBQXdCO29DQUNoQyxNQUFNLEVBQUUsbUJBQW1CO2lDQUM1QjtnQ0FDRCxHQUFHLEVBQUU7b0NBQ0gsY0FBYztvQ0FDZCxxQ0FBcUM7b0NBQ3JDLGtCQUFrQjtvQ0FDbEIsSUFBSTtvQ0FDSixxRkFBcUY7b0NBQ3JGLGdDQUFnQztvQ0FDaEMsNkRBQTZEO29DQUM3RCxJQUFJO29DQUNKLHdEQUF3RDtvQ0FDeEQsZ0VBQWdFO29DQUNoRSw0Q0FBNEM7b0NBQzVDLDJJQUEySTtpQ0FDNUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzZCQUNiO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQXpHSCxzREEwR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBZYW1sRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgTm9kZVBhY2thZ2VNYW5hZ2VyIH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IGluc3RhbGxDb21tYW5kLCBydW5TY3JpcHRDb21tYW5kIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyByZXNvbHZlQWN0aW9uVmVyc2lvbnMsIFdvcmtmbG93QWN0aW9uVmVyc2lvbnMgfSBmcm9tICcuL1dvcmtmbG93QWN0aW9uVmVyc2lvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdpbmdEZXBsb3lXb3JrZmxvd09wdGlvbnMge1xuICByZWFkb25seSByb2xlQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGF3c1JlZ2lvbjogc3RyaW5nO1xuICByZWFkb25seSBwcm9qZWN0TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBjbGVya1B1Ymxpc2hhYmxlS2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSB0aGlzIHdvcmtmbG93LlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uVmVyc2lvbnM/OiBXb3JrZmxvd0FjdGlvblZlcnNpb25zO1xufVxuXG5leHBvcnQgY2xhc3MgU3RhZ2luZ0RlcGxveVdvcmtmbG93IGV4dGVuZHMgWWFtbEZpbGUge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLCBvcHRpb25zOiBTdGFnaW5nRGVwbG95V29ya2Zsb3dPcHRpb25zKSB7XG4gICAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSBwcm9qZWN0LnBhY2thZ2UucGFja2FnZU1hbmFnZXI7XG4gICAgY29uc3QgYWN0aW9uVmVyc2lvbnMgPSByZXNvbHZlQWN0aW9uVmVyc2lvbnMob3B0aW9ucy5hY3Rpb25WZXJzaW9ucyk7XG4gICAgc3VwZXIocHJvamVjdCwgJy5naXRodWIvd29ya2Zsb3dzL3N0YWdpbmctZGVwbG95LnltbCcsIHtcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgb2JqOiB7XG4gICAgICAgIG5hbWU6ICdTdGFnaW5nIERlcGxveScsXG4gICAgICAgIG9uOiB7XG4gICAgICAgICAgcHVzaDoge1xuICAgICAgICAgICAgYnJhbmNoZXM6IFsnbWFpbiddLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgd29ya2Zsb3dfZGlzcGF0Y2g6IHt9LFxuICAgICAgICB9LFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgICdpZC10b2tlbic6ICd3cml0ZScsXG4gICAgICAgICAgJ2NvbnRlbnRzJzogJ3JlYWQnLFxuICAgICAgICB9LFxuICAgICAgICBqb2JzOiB7XG4gICAgICAgICAgZGVwbG95OiB7XG4gICAgICAgICAgICAncnVucy1vbic6ICd1YnVudHUtbGF0ZXN0JyxcbiAgICAgICAgICAgICdzdGVwcyc6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgICAgICAgdXNlczogYWN0aW9uVmVyc2lvbnMuY2hlY2tvdXQsXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgJ3BlcnNpc3QtY3JlZGVudGlhbHMnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAuLi4ocGFja2FnZU1hbmFnZXIgPT09IE5vZGVQYWNrYWdlTWFuYWdlci5QTlBNID8gW3tcbiAgICAgICAgICAgICAgICBuYW1lOiAnU2V0dXAgcG5wbScsXG4gICAgICAgICAgICAgICAgdXNlczogYWN0aW9uVmVyc2lvbnMucG5wbUFjdGlvblNldHVwLFxuICAgICAgICAgICAgICB9XSA6IFtdKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdTZXR1cCBOb2RlLmpzJyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5zZXR1cE5vZGUsXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgJ25vZGUtdmVyc2lvbic6ICcyNCcsXG4gICAgICAgICAgICAgICAgICAncGFja2FnZS1tYW5hZ2VyLWNhY2hlJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDb25maWd1cmUgQVdTIGNyZWRlbnRpYWxzJyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5jb25maWd1cmVBd3NDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgICAgICAncm9sZS10by1hc3N1bWUnOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgICAgICAgICAgICAgICAnYXdzLXJlZ2lvbic6IG9wdGlvbnMuYXdzUmVnaW9uLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnLFxuICAgICAgICAgICAgICAgIHJ1bjogaW5zdGFsbENvbW1hbmQocGFja2FnZU1hbmFnZXIpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1VwZGF0ZSBjb25maWcuanNvbicsXG4gICAgICAgICAgICAgICAgcnVuOiBganEgJy5jbGVya1B1Ymxpc2hhYmxlS2V5ID0gXCIke29wdGlvbnMuY2xlcmtQdWJsaXNoYWJsZUtleX1cIicgd2ViL3B1YmxpYy9jb25maWcuanNvbiA+IHRtcC5qc29uICYmIG12IHRtcC5qc29uIHdlYi9wdWJsaWMvY29uZmlnLmpzb25gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0RlcGxveSB0byBzdGFnaW5nJyxcbiAgICAgICAgICAgICAgICBpZDogJ2RlcGxveScsXG4gICAgICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgICAgICBEQl9PVkVSUklERTogJ3N0YWdpbmcnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcnVuOiBgJHtydW5TY3JpcHRDb21tYW5kKHBhY2thZ2VNYW5hZ2VyLCAnY2RrJyl9IGRlcGxveSAtZSAke29wdGlvbnMucHJvamVjdE5hbWV9LXN0YWdpbmcgLS1yZXF1aXJlLWFwcHJvdmFsIG5ldmVyIC0tb3V0cHV0cy1maWxlIGNkay1vdXRwdXRzLmpzb25gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0V4dHJhY3Qgb3V0cHV0cycsXG4gICAgICAgICAgICAgICAgaWQ6ICdvdXRwdXRzJyxcbiAgICAgICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgICAgICdXRUJTSVRFX1VSTD0kKGpxIC1yIFxcJy5bXSB8IC5XZWJzaXRlVXJsIC8vIGVtcHR5XFwnIGNkay1vdXRwdXRzLmpzb24pJyxcbiAgICAgICAgICAgICAgICAgICdlY2hvIFwid2Vic2l0ZV91cmw9JFdFQlNJVEVfVVJMXCIgPj4gJEdJVEhVQl9PVVRQVVQnLFxuICAgICAgICAgICAgICAgICAgJ2VjaG8gXCJXZWJzaXRlIFVSTDogJFdFQlNJVEVfVVJMXCInLFxuICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnTm90aWZ5IFNsYWNrJyxcbiAgICAgICAgICAgICAgICBpZjogJ2Fsd2F5cygpJyxcbiAgICAgICAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgICAgICAgIFNUQVRVUzogJyR7eyBqb2Iuc3RhdHVzIH19JyxcbiAgICAgICAgICAgICAgICAgIFdFQlNJVEVfVVJMOiAnJHt7IHN0ZXBzLm91dHB1dHMub3V0cHV0cy53ZWJzaXRlX3VybCB9fScsXG4gICAgICAgICAgICAgICAgICBSRVBPOiAnJHt7IGdpdGh1Yi5yZXBvc2l0b3J5IH19JyxcbiAgICAgICAgICAgICAgICAgIEJSQU5DSDogJyR7eyBnaXRodWIucmVmX25hbWUgfX0nLFxuICAgICAgICAgICAgICAgICAgQ09NTUlUOiAnJHt7IGdpdGh1Yi5zaGEgfX0nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgICAgICAnQ09MT1I9XCJnb29kXCInLFxuICAgICAgICAgICAgICAgICAgJ2lmIFsgXCIkU1RBVFVTXCIgIT0gXCJzdWNjZXNzXCIgXTsgdGhlbicsXG4gICAgICAgICAgICAgICAgICAnICBDT0xPUj1cImRhbmdlclwiJyxcbiAgICAgICAgICAgICAgICAgICdmaScsXG4gICAgICAgICAgICAgICAgICAnTUVTU0FHRT1cIlN0YWdpbmcgRGVwbG95OiAkU1RBVFVTXFxcXG5SZXBvOiAkUkVQT1xcXFxuQnJhbmNoOiAkQlJBTkNIXFxcXG5Db21taXQ6ICRDT01NSVRcIicsXG4gICAgICAgICAgICAgICAgICAnaWYgWyAtbiBcIiRXRUJTSVRFX1VSTFwiIF07IHRoZW4nLFxuICAgICAgICAgICAgICAgICAgJyAgTUVTU0FHRT1cIiRNRVNTQUdFXFxcXG7wn4yQIFdlYnNpdGU6IDwkV0VCU0lURV9VUkx8VmlldyBTaXRlPlwiJyxcbiAgICAgICAgICAgICAgICAgICdmaScsXG4gICAgICAgICAgICAgICAgICAnY3VybCAtWCBQT1NUIGh0dHBzOi8vc2xhY2suY29tL2FwaS9jaGF0LnBvc3RNZXNzYWdlIFxcXFwnLFxuICAgICAgICAgICAgICAgICAgJyAgLUggXCJBdXRob3JpemF0aW9uOiBCZWFyZXIgJHt7IHNlY3JldHMuU0xBQ0tfQk9UX1RPS0VOIH19XCIgXFxcXCcsXG4gICAgICAgICAgICAgICAgICAnICAtSCBcXCdDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb25cXCcgXFxcXCcsXG4gICAgICAgICAgICAgICAgICAnICAtLWRhdGEgXCJ7XFxcXFwiY2hhbm5lbFxcXFxcIjpcXFxcXCIke3sgc2VjcmV0cy5TTEFDS19DSEFOTkVMX0lEIH19XFxcXFwiLFxcXFxcImF0dGFjaG1lbnRzXFxcXFwiOlt7XFxcXFwiY29sb3JcXFxcXCI6XFxcXFwiJENPTE9SXFxcXFwiLFxcXFxcInRleHRcXFxcXCI6XFxcXFwiJE1FU1NBR0VcXFxcXCJ9XX1cIicsXG4gICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -68,6 +68,13 @@ export interface WorkflowActionVersions {
|
|
|
68
68
|
* @default 'amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50' // v6.1.1
|
|
69
69
|
*/
|
|
70
70
|
readonly semanticPullRequest?: string;
|
|
71
|
+
/**
|
|
72
|
+
* The `actions/create-github-app-token` action reference, used by the opt-in
|
|
73
|
+
* pr-auto-merge workflow to mint a GitHub App installation token.
|
|
74
|
+
*
|
|
75
|
+
* @default 'actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1' // v3.2.0
|
|
76
|
+
*/
|
|
77
|
+
readonly createGithubAppToken?: string;
|
|
71
78
|
}
|
|
72
79
|
export declare const DEFAULT_WORKFLOW_ACTION_VERSIONS: Required<WorkflowActionVersions>;
|
|
73
80
|
export declare function resolveActionVersions(overrides?: WorkflowActionVersions): Required<WorkflowActionVersions>;
|
|
@@ -12,6 +12,7 @@ exports.DEFAULT_WORKFLOW_ACTION_VERSIONS = {
|
|
|
12
12
|
uploadArtifact: 'actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a', // v7
|
|
13
13
|
downloadArtifact: 'actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c', // v8
|
|
14
14
|
semanticPullRequest: 'amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50', // v6.1.1
|
|
15
|
+
createGithubAppToken: 'actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1', // v3.2.0
|
|
15
16
|
};
|
|
16
17
|
function resolveActionVersions(overrides) {
|
|
17
18
|
return {
|
|
@@ -19,4 +20,4 @@ function resolveActionVersions(overrides) {
|
|
|
19
20
|
...overrides,
|
|
20
21
|
};
|
|
21
22
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV29ya2Zsb3dBY3Rpb25WZXJzaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Xb3JrZmxvd0FjdGlvblZlcnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXFHQSxzREFLQztBQWxCWSxRQUFBLGdDQUFnQyxHQUFxQztJQUNoRixRQUFRLEVBQUUsMkRBQTJELEVBQUUsU0FBUztJQUNoRixTQUFTLEVBQUUsNkRBQTZELEVBQUUsU0FBUztJQUNuRix1QkFBdUIsRUFBRSxnRkFBZ0YsRUFBRSxTQUFTO0lBQ3BILGVBQWUsRUFBRSw0REFBNEQsRUFBRSxVQUFVO0lBQ3pGLFlBQVksRUFBRSxnRUFBZ0UsRUFBRSxTQUFTO0lBQ3pGLGlCQUFpQixFQUFFLDBFQUEwRSxFQUFFLFNBQVM7SUFDeEcsY0FBYyxFQUFFLGtFQUFrRSxFQUFFLEtBQUs7SUFDekYsZ0JBQWdCLEVBQUUsb0VBQW9FLEVBQUUsS0FBSztJQUM3RixtQkFBbUIsRUFBRSw4RUFBOEUsRUFBRSxTQUFTO0lBQzlHLG9CQUFvQixFQUFFLDBFQUEwRSxFQUFFLFNBQVM7Q0FDNUcsQ0FBQztBQUVGLFNBQWdCLHFCQUFxQixDQUFDLFNBQWtDO0lBQ3RFLE9BQU87UUFDTCxHQUFHLHdDQUFnQztRQUNuQyxHQUFHLFNBQVM7S0FDYixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU0hBLXBpbm5lZCBhY3Rpb24gcmVmZXJlbmNlcyB1c2VkIGJ5IHRoZSBnZW5lcmF0ZWQgZGVwbG95L2NsZWFudXAgd29ya2Zsb3dzLCBhbmQgYXBwbGllZFxuICogdG8gdGhlIHdvcmtmbG93cyBBd3NDZGtUeXBlU2NyaXB0QXBwIGdlbmVyYXRlcyBvbiBpdHMgb3duICh1cGdyYWRlLnltbCwgcHVsbC1yZXF1ZXN0LWxpbnQueW1sKVxuICogdmlhIGBoYXJkZW5Qcm9qZW5HZW5lcmF0ZWRXb3JrZmxvd3NgIOKAlCBzZWUgYFByb2plbldvcmtmbG93SGFyZGVuaW5nLnRzYC5cbiAqXG4gKiB6aXptb3IgZmxhZ3MgdW5waW5uZWQgYHVzZXM6YCByZWZlcmVuY2VzIGFzIGEgaGlnaC1zZXZlcml0eSBmaW5kaW5nXG4gKiAoaHR0cHM6Ly9kb2NzLnppem1vci5zaC9hdWRpdHMvI3VucGlubmVkLXVzZXMpIGJlY2F1c2UgYSBtdXRhYmxlIHRhZyBjYW4gYmVcbiAqIHJlcG9pbnRlZCB0byBkaWZmZXJlbnQgY29kZSBhZnRlciByZXZpZXcuIEV2ZXJ5IGZpZWxkIGhlcmUgY2FuIGJlXG4gKiBvdmVycmlkZGVuIGJ5IGNvbnN1bWVycyB3aG8gbmVlZCBhIGRpZmZlcmVudCBwaW5uZWQgU0hBIChlLmcuIHRvIHBpY2sgdXAgYVxuICogbmV3ZXIgcmVsZWFzZSBiZWZvcmUgdGhpcyBwYWNrYWdlIGRvZXMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93QWN0aW9uVmVyc2lvbnMge1xuICAvKipcbiAgICogVGhlIGBhY3Rpb25zL2NoZWNrb3V0YCBhY3Rpb24gcmVmZXJlbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnYWN0aW9ucy9jaGVja291dEBmYmM2ZjM5OTJkMjRiNzk2ZDVhMDQ4ZmYyNzNmN2ZjYzRhN2I2YzA5JyAvLyB2NS4xLjBcbiAgICovXG4gIHJlYWRvbmx5IGNoZWNrb3V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYGFjdGlvbnMvc2V0dXAtbm9kZWAgYWN0aW9uIHJlZmVyZW5jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2FjdGlvbnMvc2V0dXAtbm9kZUBhMDg1M2MyNDU0NDYyN2Y2NWRkZjI1OWFiZTczYjFkMThhNTkxNDQ0JyAvLyB2NS4wLjBcbiAgICovXG4gIHJlYWRvbmx5IHNldHVwTm9kZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGBhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzYCBhY3Rpb24gcmVmZXJlbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0A3NDc0YmM0NjkwZTI5YTgzOTJhZjYzYzViOThlNzQ0OTUzNmQ1YzNhJyAvLyB2NC4zLjFcbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZ3VyZUF3c0NyZWRlbnRpYWxzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYHBucG0vYWN0aW9uLXNldHVwYCBhY3Rpb24gcmVmZXJlbmNlLCB1c2VkIHdoZW4gdGhlIHByb2plY3QncyBwYWNrYWdlIG1hbmFnZXIgaXMgcG5wbS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ3BucG0vYWN0aW9uLXNldHVwQDA5NzdmZDk5NzI1ZjFkYjQwMDdjY2IyOTI4ZGJiNGU5MGQwNmNjODYnIC8vIHY2LjAuMTBcbiAgICovXG4gIHJlYWRvbmx5IHBucG1BY3Rpb25TZXR1cD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGBhY3Rpb25zL2dpdGh1Yi1zY3JpcHRgIGFjdGlvbiByZWZlcmVuY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhY3Rpb25zL2dpdGh1Yi1zY3JpcHRAZDc0NmZmZTM1NTA4YjE5MTczNTg3ODNiNDc5ZTA0ZmViZDJiOGY3MScgLy8gdjkuMC4wXG4gICAqL1xuICByZWFkb25seSBnaXRodWJTY3JpcHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBgcGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdGAgYWN0aW9uIHJlZmVyZW5jZSwgdXNlZCBieSBwcm9qZW4ncyBidWlsdC1pblxuICAgKiBkZXBlbmRlbmN5LXVwZ3JhZGUgd29ya2Zsb3cgdG8gb3BlbiB0aGUgdXBncmFkZSBQUi5cbiAgICpcbiAgICogQGRlZmF1bHQgJ3BldGVyLWV2YW5zL2NyZWF0ZS1wdWxsLXJlcXVlc3RANWY2OTc4ZmFmMDg5ZDRkMjBiMDBjNzc2Njk4OWQwNzZiYjJmYzdmMScgLy8gdjguMS4xXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVQdWxsUmVxdWVzdD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGBhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdGAgYWN0aW9uIHJlZmVyZW5jZSwgdXNlZCBieSBwcm9qZW4ncyBidWlsdC1pblxuICAgKiBkZXBlbmRlbmN5LXVwZ3JhZGUgd29ya2Zsb3cgdG8gcGFzcyB0aGUgdXBncmFkZSBwYXRjaCBiZXR3ZWVuIGpvYnMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdEAwNDNmYjQ2ZDFhOTNjNzdhYWU2NTZlN2MxYzY0YTg3NWQxZmM2YTBhJyAvLyB2N1xuICAgKi9cbiAgcmVhZG9ubHkgdXBsb2FkQXJ0aWZhY3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBgYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdGAgYWN0aW9uIHJlZmVyZW5jZSwgdXNlZCBieSBwcm9qZW4ncyBidWlsdC1pblxuICAgKiBkZXBlbmRlbmN5LXVwZ3JhZGUgd29ya2Zsb3cgdG8gcGFzcyB0aGUgdXBncmFkZSBwYXRjaCBiZXR3ZWVuIGpvYnMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QDNlNWY0NWIyY2ZiOTE3MjA1NGI0MDg3YTQwZThlMGI1YTU0NjFlN2MnIC8vIHY4XG4gICAqL1xuICByZWFkb25seSBkb3dubG9hZEFydGlmYWN0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYGFtYW5ubi9hY3Rpb24tc2VtYW50aWMtcHVsbC1yZXF1ZXN0YCBhY3Rpb24gcmVmZXJlbmNlLCB1c2VkIGJ5IHByb2plbidzXG4gICAqIGJ1aWx0LWluIHB1bGwtcmVxdWVzdC1saW50IHdvcmtmbG93IHRvIHZhbGlkYXRlIFBSIHRpdGxlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2FtYW5ubi9hY3Rpb24tc2VtYW50aWMtcHVsbC1yZXF1ZXN0QDQ4ZjI1NjI4NGJkNDZjZGFhYjEwNDhjMzcyMTM2MGU4MDgzMzVkNTAnIC8vIHY2LjEuMVxuICAgKi9cbiAgcmVhZG9ubHkgc2VtYW50aWNQdWxsUmVxdWVzdD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGBhY3Rpb25zL2NyZWF0ZS1naXRodWItYXBwLXRva2VuYCBhY3Rpb24gcmVmZXJlbmNlLCB1c2VkIGJ5IHRoZSBvcHQtaW5cbiAgICogcHItYXV0by1tZXJnZSB3b3JrZmxvdyB0byBtaW50IGEgR2l0SHViIEFwcCBpbnN0YWxsYXRpb24gdG9rZW4uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhY3Rpb25zL2NyZWF0ZS1naXRodWItYXBwLXRva2VuQGJjZDJiYTQ5MjE4OTA2NzA0YWI2YzFhYTc5Njk5NmRhNDA5ZDNlYjEnIC8vIHYzLjIuMFxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlR2l0aHViQXBwVG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1dPUktGTE9XX0FDVElPTl9WRVJTSU9OUzogUmVxdWlyZWQ8V29ya2Zsb3dBY3Rpb25WZXJzaW9ucz4gPSB7XG4gIGNoZWNrb3V0OiAnYWN0aW9ucy9jaGVja291dEBmYmM2ZjM5OTJkMjRiNzk2ZDVhMDQ4ZmYyNzNmN2ZjYzRhN2I2YzA5JywgLy8gdjUuMS4wXG4gIHNldHVwTm9kZTogJ2FjdGlvbnMvc2V0dXAtbm9kZUBhMDg1M2MyNDU0NDYyN2Y2NWRkZjI1OWFiZTczYjFkMThhNTkxNDQ0JywgLy8gdjUuMC4wXG4gIGNvbmZpZ3VyZUF3c0NyZWRlbnRpYWxzOiAnYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0A3NDc0YmM0NjkwZTI5YTgzOTJhZjYzYzViOThlNzQ0OTUzNmQ1YzNhJywgLy8gdjQuMy4xXG4gIHBucG1BY3Rpb25TZXR1cDogJ3BucG0vYWN0aW9uLXNldHVwQDA5NzdmZDk5NzI1ZjFkYjQwMDdjY2IyOTI4ZGJiNGU5MGQwNmNjODYnLCAvLyB2Ni4wLjEwXG4gIGdpdGh1YlNjcmlwdDogJ2FjdGlvbnMvZ2l0aHViLXNjcmlwdEBkNzQ2ZmZlMzU1MDhiMTkxNzM1ODc4M2I0NzllMDRmZWJkMmI4ZjcxJywgLy8gdjkuMC4wXG4gIGNyZWF0ZVB1bGxSZXF1ZXN0OiAncGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdEA1ZjY5NzhmYWYwODlkNGQyMGIwMGM3NzY2OTg5ZDA3NmJiMmZjN2YxJywgLy8gdjguMS4xXG4gIHVwbG9hZEFydGlmYWN0OiAnYWN0aW9ucy91cGxvYWQtYXJ0aWZhY3RAMDQzZmI0NmQxYTkzYzc3YWFlNjU2ZTdjMWM2NGE4NzVkMWZjNmEwYScsIC8vIHY3XG4gIGRvd25sb2FkQXJ0aWZhY3Q6ICdhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QDNlNWY0NWIyY2ZiOTE3MjA1NGI0MDg3YTQwZThlMGI1YTU0NjFlN2MnLCAvLyB2OFxuICBzZW1hbnRpY1B1bGxSZXF1ZXN0OiAnYW1hbm5uL2FjdGlvbi1zZW1hbnRpYy1wdWxsLXJlcXVlc3RANDhmMjU2Mjg0YmQ0NmNkYWFiMTA0OGMzNzIxMzYwZTgwODMzNWQ1MCcsIC8vIHY2LjEuMVxuICBjcmVhdGVHaXRodWJBcHBUb2tlbjogJ2FjdGlvbnMvY3JlYXRlLWdpdGh1Yi1hcHAtdG9rZW5AYmNkMmJhNDkyMTg5MDY3MDRhYjZjMWFhNzk2OTk2ZGE0MDlkM2ViMScsIC8vIHYzLjIuMFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVBY3Rpb25WZXJzaW9ucyhvdmVycmlkZXM/OiBXb3JrZmxvd0FjdGlvblZlcnNpb25zKTogUmVxdWlyZWQ8V29ya2Zsb3dBY3Rpb25WZXJzaW9ucz4ge1xuICByZXR1cm4ge1xuICAgIC4uLkRFRkFVTFRfV09SS0ZMT1dfQUNUSU9OX1ZFUlNJT05TLFxuICAgIC4uLm92ZXJyaWRlcyxcbiAgfTtcbn1cbiJdfQ==
|
package/lib/index.d.ts
CHANGED
|
@@ -6,4 +6,5 @@ export { EnvironmentConfig } from './MainFile';
|
|
|
6
6
|
export { ApplicationEnvironmentConfig } from './Application';
|
|
7
7
|
export * from './StagingDeployWorkflow';
|
|
8
8
|
export * from './ProductionDeployWorkflow';
|
|
9
|
+
export * from './PrAutoMergeWorkflow';
|
|
9
10
|
export * from './WorkflowActionVersions';
|
package/lib/index.js
CHANGED
|
@@ -22,5 +22,6 @@ __exportStar(require("./CodeOwnersFile"), exports);
|
|
|
22
22
|
__exportStar(require("./SoftwareFactoryFiles"), exports);
|
|
23
23
|
__exportStar(require("./StagingDeployWorkflow"), exports);
|
|
24
24
|
__exportStar(require("./ProductionDeployWorkflow"), exports);
|
|
25
|
+
__exportStar(require("./PrAutoMergeWorkflow"), exports);
|
|
25
26
|
__exportStar(require("./WorkflowActionVersions"), exports);
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0M7QUFDaEMscURBQTRFO0FBQW5FLGtIQUFBLGVBQWUsT0FBQTtBQUN4QixtREFBaUM7QUFDakMseURBQXVDO0FBR3ZDLDBEQUF3QztBQUN4Qyw2REFBMkM7QUFDM0Msd0RBQXNDO0FBQ3RDLDJEQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vQmF0bWFuUHJvamVjdCc7XG5leHBvcnQgeyBCb290Y2FtcFByb2plY3QsIEJvb3RjYW1wUHJvamVjdE9wdGlvbnMgfSBmcm9tICcuL0Jvb3RjYW1wUHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL0NvZGVPd25lcnNGaWxlJztcbmV4cG9ydCAqIGZyb20gJy4vU29mdHdhcmVGYWN0b3J5RmlsZXMnO1xuZXhwb3J0IHsgRW52aXJvbm1lbnRDb25maWcgfSBmcm9tICcuL01haW5GaWxlJztcbmV4cG9ydCB7IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWcgfSBmcm9tICcuL0FwcGxpY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vU3RhZ2luZ0RlcGxveVdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vUHJvZHVjdGlvbkRlcGxveVdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vUHJBdXRvTWVyZ2VXb3JrZmxvdyc7XG5leHBvcnQgKiBmcm9tICcuL1dvcmtmbG93QWN0aW9uVmVyc2lvbnMnO1xuIl19
|
package/lib/utils.d.ts
CHANGED
|
@@ -34,4 +34,4 @@ export declare function shellPortableSequence(...commands: string[]): string;
|
|
|
34
34
|
*/
|
|
35
35
|
export declare function shellPortableForceDelete(path: string): string;
|
|
36
36
|
export declare function serializeTs(value: any, depth?: number): string;
|
|
37
|
-
export declare function readmeContents(projectName: string, e2eTesting?: boolean, packageManager?: NodePackageManager): string;
|
|
37
|
+
export declare function readmeContents(projectName: string, e2eTesting?: boolean, packageManager?: NodePackageManager, prAutoMerge?: boolean): string;
|
package/lib/utils.js
CHANGED
|
@@ -95,7 +95,7 @@ function serializeTs(value, depth = 1) {
|
|
|
95
95
|
}
|
|
96
96
|
return JSON.stringify(value);
|
|
97
97
|
}
|
|
98
|
-
function readmeContents(projectName, e2eTesting = true, packageManager = javascript_1.NodePackageManager.YARN_CLASSIC) {
|
|
98
|
+
function readmeContents(projectName, e2eTesting = true, packageManager = javascript_1.NodePackageManager.YARN_CLASSIC, prAutoMerge = false) {
|
|
99
99
|
const testE2eCommand = runScriptCommand(packageManager, 'test:e2e');
|
|
100
100
|
return [
|
|
101
101
|
`# ${projectName}`,
|
|
@@ -141,7 +141,10 @@ function readmeContents(projectName, e2eTesting = true, packageManager = javascr
|
|
|
141
141
|
'|------|---------|',
|
|
142
142
|
'| `pr-deploy.yml` | On pull request open/update — deploys a per-PR dev stack |',
|
|
143
143
|
'| `pr-cleanup.yml` | On pull request close — tears down the per-PR dev stack |',
|
|
144
|
-
'| `staging-deploy.yml` | On push to `main
|
|
144
|
+
'| `staging-deploy.yml` | On push to `main`, or manually triggered — deploys to staging |',
|
|
145
|
+
...(prAutoMerge ? [
|
|
146
|
+
'| `pr-auto-merge.yml` | On pull request open/reopen/ready for review — turns on squash auto-merge with a GitHub App token |',
|
|
147
|
+
] : []),
|
|
145
148
|
'| `production-deploy.yml` | Manually triggered — deploys to production |',
|
|
146
149
|
'',
|
|
147
150
|
'---',
|
|
@@ -286,4 +289,4 @@ function readmeContents(projectName, e2eTesting = true, packageManager = javascr
|
|
|
286
289
|
'This updates all managed files to the latest Batman standards. Your editable sample files are never touched.',
|
|
287
290
|
].join('\n');
|
|
288
291
|
}
|
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSw0Q0FZQztBQU1ELHdDQVdDO0FBV0QsNERBT0M7QUFVRCxzREFFQztBQU9ELDREQUVDO0FBRUQsa0NBZ0JDO0FBRUQsd0NBa01DO0FBL1JELHNEQUEyRDtBQUUzRDs7R0FFRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLGNBQWtDLEVBQUUsTUFBYztJQUNqRixRQUFRLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssK0JBQWtCLENBQUMsR0FBRztZQUN6QixPQUFPLFdBQVcsTUFBTSxFQUFFLENBQUM7UUFDN0IsS0FBSywrQkFBa0IsQ0FBQyxHQUFHO1lBQ3pCLE9BQU8sV0FBVyxNQUFNLEVBQUUsQ0FBQztRQUM3QixLQUFLLCtCQUFrQixDQUFDLElBQUk7WUFDMUIsT0FBTyxRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQzFCO1lBQ0Usb0ZBQW9GO1lBQ3BGLE9BQU8sUUFBUSxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxjQUFrQztJQUMvRCxRQUFRLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssK0JBQWtCLENBQUMsR0FBRztZQUN6QixPQUFPLFFBQVEsQ0FBQztRQUNsQixLQUFLLCtCQUFrQixDQUFDLEdBQUc7WUFDekIsT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxLQUFLLCtCQUFrQixDQUFDLElBQUk7WUFDMUIsT0FBTyxnQ0FBZ0MsQ0FBQztRQUMxQztZQUNFLE9BQU8sZ0NBQWdDLENBQUM7SUFDNUMsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLHdCQUF3QjtJQUN0QyxPQUFPO1FBQ0wsbUdBQW1HO1FBQ25HLG9EQUFvRDtRQUNwRCwrQ0FBK0M7UUFDL0MsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDO0FB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O1FBQ1osS0FBSztRQUNMLEVBQUU7UUFDRiw4R0FBOEc7S0FDL0csQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZVBhY2thZ2VNYW5hZ2VyIH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBjb21tYW5kIHVzZWQgdG8gcnVuIGEgcGFja2FnZS5qc29uIHNjcmlwdCBmb3IgdGhlIGdpdmVuIHBhY2thZ2UgbWFuYWdlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1blNjcmlwdENvbW1hbmQocGFja2FnZU1hbmFnZXI6IE5vZGVQYWNrYWdlTWFuYWdlciwgc2NyaXB0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBzd2l0Y2ggKHBhY2thZ2VNYW5hZ2VyKSB7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuTlBNOlxuICAgICAgcmV0dXJuIGBucG0gcnVuICR7c2NyaXB0fWA7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuQlVOOlxuICAgICAgcmV0dXJuIGBidW4gcnVuICR7c2NyaXB0fWA7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTTpcbiAgICAgIHJldHVybiBgcG5wbSAke3NjcmlwdH1gO1xuICAgIGRlZmF1bHQ6XG4gICAgICAvLyBhbGwgeWFybiB2YXJpYW50cyAoeWFybiwgeWFybjIsIHlhcm5fY2xhc3NpYywgeWFybl9iZXJyeSkgc2hhcmUgdGhlIGB5YXJuYCBiaW5hcnlcbiAgICAgIHJldHVybiBgeWFybiAke3NjcmlwdH1gO1xuICB9XG59XG5cbi8qKlxuICogUmVuZGVycyB0aGUgY29tbWFuZCB1c2VkIHRvIGRvIGEgY2xlYW4sIHJlcHJvZHVjaWJsZSBkZXBlbmRlbmN5IGluc3RhbGwgKGUuZy4gZm9yIENJKVxuICogZm9yIHRoZSBnaXZlbiBwYWNrYWdlIG1hbmFnZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YWxsQ29tbWFuZChwYWNrYWdlTWFuYWdlcjogTm9kZVBhY2thZ2VNYW5hZ2VyKTogc3RyaW5nIHtcbiAgc3dpdGNoIChwYWNrYWdlTWFuYWdlcikge1xuICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTTpcbiAgICAgIHJldHVybiAnbnBtIGNpJztcbiAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5CVU46XG4gICAgICByZXR1cm4gJ2J1biBpbnN0YWxsIC0tZnJvemVuLWxvY2tmaWxlJztcbiAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5QTlBNOlxuICAgICAgcmV0dXJuICdwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGUnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ3lhcm4gaW5zdGFsbCAtLWZyb3plbi1sb2NrZmlsZSc7XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNoIGxpbmVzIHRoYXQgc2FuaXRpemUgYSBgQ0xFQU5fQlJBTkNIX05BTUVgIHZhcmlhYmxlIChhbHJlYWR5IHN0cmlwcGVkIG9mIGFueVxuICogY29udmVudGlvbmFsLWNvbW1pdCBwcmVmaXgpIGludG8gYSB2YWx1ZSBzYWZlIHRvIHVzZSBhcyBhIENsb3VkRm9ybWF0aW9uIHN0YWNrLW5hbWVcbiAqIGZyYWdtZW50OiBjb2xsYXBzZXMgcnVucyBvZiBub24tYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgdG8gYC1gLCB0cmltcyBsZWFkaW5nL3RyYWlsaW5nXG4gKiBgLWAsIGFuZCBwcmVmaXhlcyB3aXRoIGBwci1gIGlmIHRoZSByZXN1bHQgd291bGQgbm90IHN0YXJ0IHdpdGggYSBsZXR0ZXIgKG9yIGlzIGVtcHR5KS5cbiAqXG4gKiBTaGFyZWQgYnkgUHJEZXBsb3lXb3JrZmxvdyBhbmQgUHJDbGVhbnVwV29ya2Zsb3cgc28gYm90aCBkZXJpdmUgdGhlIGlkZW50aWNhbCBzdGFja1xuICogbmFtZSBmb3IgYSBnaXZlbiBicmFuY2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZUJyYW5jaE5hbWVTY3JpcHQoKTogc3RyaW5nW10ge1xuICByZXR1cm4gW1xuICAgICdDTEVBTl9CUkFOQ0hfTkFNRT0kKGVjaG8gXCIkQ0xFQU5fQlJBTkNIX05BTUVcIiB8IHNlZCAtRSBcXCdzL1teQS1aYS16MC05XSsvLS9nOyBzL14tKy8vOyBzLy0rJC8vXFwnKScsXG4gICAgJ2lmIFtbICEgXCIkQ0xFQU5fQlJBTkNIX05BTUVcIiA9fiBeW0EtWmEtel0gXV07IHRoZW4nLFxuICAgICcgIENMRUFOX0JSQU5DSF9OQU1FPVwicHItJHtDTEVBTl9CUkFOQ0hfTkFNRX1cIicsXG4gICAgJ2ZpJyxcbiAgXTtcbn1cblxuLyoqXG4gKiBKb2lucyBjb21tYW5kcyB3aXRoIGA7YCBpbnN0ZWFkIG9mIGAmJmAvYHx8YCBzbyB0aGUgcmVzdWx0IGlzIHZhbGlkIGZvciBhIHN3YW1wXG4gKiBjb21tYW5kL3NoZWxsIG1vZGVsJ3MgYHJ1bjpgIHZhbHVlIG9uIGJvdGggUE9TSVggc2hlbGxzIGFuZCBXaW5kb3dzIFBvd2VyU2hlbGwgNS4xXG4gKiAod2hpY2ggaGFzIG5vIGAmJmAvYHx8YCBjaGFpbiBvcGVyYXRvcnMgYmVmb3JlIHB3c2ggNykuIFVubGlrZSBgJiZgLCBgO2AgZG9lcyBub3RcbiAqIHNob3J0LWNpcmN1aXQgb24gZmFpbHVyZSDigJQgY2FsbGVycyB0aGF0IG5lZWQgZmFpbHVyZSB0byBzdG9wIHRoZSBzZXF1ZW5jZSBzaG91bGQgc3BsaXRcbiAqIGludG8gc2VwYXJhdGUgd29ya2Zsb3cgc3RlcHMgd2l0aCB0aGVpciBvd24gYGFzc2VydGAgZ2F0ZXMgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoaXNcbiAqIGZvciBjb250cm9sIGZsb3cuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaGVsbFBvcnRhYmxlU2VxdWVuY2UoLi4uY29tbWFuZHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNvbW1hbmRzLmpvaW4oJzsgJyk7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIHBvcnRhYmxlIGZvcmNlLWRlbGV0ZSBmb3IgYSBzaW5nbGUgZmlsZSwgZm9yIHVzZSBpbiBhIHN3YW1wIGNvbW1hbmQvc2hlbGxcbiAqIG1vZGVsJ3MgYHJ1bjpgIHZhbHVlIGluIHBsYWNlIG9mIGBybSAtZiA8cGF0aD5gIChhbWJpZ3VvdXMgd2l0aCBQb3dlclNoZWxsIDUuMSdzXG4gKiBgUmVtb3ZlLUl0ZW0gLUZpbHRlcmAgYWxpYXMpLiBNYXRjaGVzIHRoZSBmaXggYWxyZWFkeSB2YWxpZGF0ZWQgaW4gZXhtYW4jMTM2LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hlbGxQb3J0YWJsZUZvcmNlRGVsZXRlKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgbm9kZSAtZSBcInJlcXVpcmUoJ2ZzJykucm1TeW5jKCcke3BhdGh9JywgeyBmb3JjZTogdHJ1ZSB9KVwiYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVRzKHZhbHVlOiBhbnksIGRlcHRoID0gMSk6IHN0cmluZyB7XG4gIGNvbnN0IHBhZCA9ICcgICcucmVwZWF0KGRlcHRoKTtcbiAgY29uc3QgaW5uZXJQYWQgPSAnICAnLnJlcGVhdChkZXB0aCArIDEpO1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgcmV0dXJuIGAnJHt2YWx1ZX0nYDtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBjb25zdCBpdGVtcyA9IHZhbHVlLm1hcCh2ID0+IGAke2lubmVyUGFkfSR7c2VyaWFsaXplVHModiwgZGVwdGggKyAxKX1gKS5qb2luKCcsXFxuJyk7XG4gICAgcmV0dXJuIGBbXFxuJHtpdGVtc30sXFxuJHtwYWR9XWA7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModmFsdWUpXG4gICAgICAubWFwKChbaywgdl0pID0+IGAke2lubmVyUGFkfSR7a306ICR7c2VyaWFsaXplVHModiwgZGVwdGggKyAxKX1gKVxuICAgICAgLmpvaW4oJyxcXG4nKTtcbiAgICByZXR1cm4gYHtcXG4ke2VudHJpZXN9LFxcbiR7cGFkfX1gO1xuICB9XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkbWVDb250ZW50cyhcbiAgcHJvamVjdE5hbWU6IHN0cmluZyxcbiAgZTJlVGVzdGluZyA9IHRydWUsXG4gIHBhY2thZ2VNYW5hZ2VyOiBOb2RlUGFja2FnZU1hbmFnZXIgPSBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTl9DTEFTU0lDLFxuKSB7XG4gIGNvbnN0IHRlc3RFMmVDb21tYW5kID0gcnVuU2NyaXB0Q29tbWFuZChwYWNrYWdlTWFuYWdlciwgJ3Rlc3Q6ZTJlJyk7XG4gIHJldHVybiBbXG4gICAgYCMgJHtwcm9qZWN0TmFtZX1gLFxuICAgICcnLFxuICAgICdUaGlzIHByb2plY3Qgd2FzIGJvb3RzdHJhcHBlZCB3aXRoIFtCYXRtYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9tYWNlZG9uLXRlY2hub2xvZ2llcy9wbGF0Zm9ybS1jb21tb24pLicsXG4gICAgJycsXG4gICAgJyMjIFdoYXQgQmF0bWFuIENyZWF0ZWQnLFxuICAgICcnLFxuICAgICcjIyMgQ0RLIEluZnJhc3RydWN0dXJlIChgc3JjL2ApJyxcbiAgICAnJyxcbiAgICAnfCBGaWxlIHwgRGVzY3JpcHRpb24gfCcsXG4gICAgJ3wtLS0tLS18LS0tLS0tLS0tLS0tLXwnLFxuICAgICd8IGBzcmMvbWFpbi50c2AgfCBDREsgYXBwIGVudHJ5IHBvaW50IOKAlCBpbnN0YW50aWF0ZXMgZGV2LCBzdGFnaW5nLCBhbmQgcHJvZCBgQXBwbGljYXRpb25TdGFja2BzIHwnLFxuICAgICd8IGBzcmMvTG9jYWxEZXZBcHAudHNgIHwgTG9jYWwgZGV2ZWxvcG1lbnQgQ0RLIGFwcCDigJQgdXNlZCBieSBgeWFybiBjZGs6ZGV2YCAtIGRlcGxveXMgdG8gQVdTIGZvciBzbG93ZXIgYnV0IG1vcmUgdGhvcm91Z2ggdGVzdGluZyB8JyxcbiAgICAnfCBgc3JjL0dpdEh1YlJvbGVzLnRzYCB8IENESyBhcHAgZm9yIGRlcGxveWluZyB0aGUgR2l0SHViIE9JREMgSUFNIHJvbGUgKG9uZS10aW1lIGJvb3RzdHJhcCkgfCcsXG4gICAgJ3wgYHNyYy9zdGFja3MvQXBwbGljYXRpb25TdGFjay50c2AgfCBZb3VyIHByaW1hcnkgc3RhY2sg4oCUIGV4dGVuZCBpdCB0byBhZGQgcmVzb3VyY2VzIHwnLFxuICAgICd8IGBzcmMvc3RhY2tzL0Jhc2VBcHBsaWNhdGlvblN0YWNrLnRzYCB8IEJhc2Ugc3RhY2sgd2l0aCBBUEksIHN0YXRpYyB3ZWJzaXRlLCBEYXRhZG9nLCBhbmQgUm91dGUgNTMgd2lyZWQgdXAgfCcsXG4gICAgJ3wgYHNyYy9zdGFja3MvR2l0SHViUm9sZXNTdGFjay50c2AgfCBJQU0gcm9sZSBzdGFjayBmb3IgR2l0SHViIEFjdGlvbnMgT0lEQyBhdXRoZW50aWNhdGlvbiB8JyxcbiAgICAnfCBgc3JjL2NvbnN0cnVjdHMvQXBpLnRzYCB8IEFQSSBHYXRld2F5ICsgTGFtYmRhIGNvbnN0cnVjdCB3aXRoIENsZXJrIEpXVCBhdXRob3JpemVyIHwnLFxuICAgICd8IGBzcmMvY29uc3RydWN0cy9TdGF0aWNXZWJzaXRlLnRzYCB8IENsb3VkRnJvbnQgKyBTMyArIEFDTSArIFJvdXRlIDUzIGNvbnN0cnVjdCB8JyxcbiAgICAnfCBgc3JjL2NvbnN0cnVjdHMvaGFuZGxlci9BcGkuRnVuY3Rpb24udHNgIHwgTGFtYmRhIGhhbmRsZXIgZW50cnkgcG9pbnQsIGJhc2ljIHdyYXBwZXIgYXJvdW5kIEV4cHJlc3MtY29tcGF0aWJsZSBhcHAgY29kZSB8JyxcbiAgICAnfCBgc3JjL2FzcGVjdHMvRGF0YURvZ0FzcGVjdC50c2AgfCBDREsgYXNwZWN0IHRoYXQgd2lyZXMgYWxsIExhbWJkYSBmdW5jdGlvbnMgdG8gRGF0YWRvZyB8JyxcbiAgICAnJyxcbiAgICAnIyMjIEZyb250ZW5kIChgd2ViL2ApJyxcbiAgICAnJyxcbiAgICAnfCBGaWxlIHwgRGVzY3JpcHRpb24gfCcsXG4gICAgJ3wtLS0tLS18LS0tLS0tLS0tLS0tLXwnLFxuICAgICd8IGB3ZWIvc3JjL21haW4udHN4YCB8IFJlYWN0IGFwcCBlbnRyeSBwb2ludCB3aXRoIENsZXJrIGFuZCBSZWFjdCBRdWVyeSBwcm92aWRlcnMgfCcsXG4gICAgJ3wgYHdlYi9zcmMvQXBwLnRzeGAgfCBSb290IGFwcGxpY2F0aW9uIGNvbXBvbmVudCB8JyxcbiAgICAnfCBgd2ViL3NyYy9BcHAuY3NzYCAvIGB3ZWIvc3JjL2luZGV4LmNzc2AgfCBCYXNlIHN0eWxlc2hlZXRzIChUYWlsd2luZCBDU1MgdjQpIHwnLFxuICAgICd8IGB3ZWIvc3JjL2NvbmZpZy50c2AgfCBgdXNlQ29uZmlnKClgIGhvb2sg4oCUIGxvYWRzIHJ1bnRpbWUgY29uZmlnIGZyb20gYGNvbmZpZy5qc29uYCB8JyxcbiAgICAnfCBgd2ViL3NyYy9zZXJ2aWNlcy9BcGlTZXJ2aWNlLnRzYCB8IGB1c2VBcGlRdWVyeSgpYCAvIGB1c2VBcGlNdXRhdGlvbigpYCDigJQgYXV0aGVudGljYXRlZCBBUEkgaG9va3MsIGNhY2hlZCBwZXIgcGF0aCB8JyxcbiAgICAnfCBgd2ViL3NyYy9oZWxwZXJzL2AgfCBgcmVxdWVzdHMudHNgLCBgSHR0cEVycm9yLnRzYCwgYGVycm9ycy50c2AsIGByZXRyeS50c2Ag4oCUIHRoZSByZXF1ZXN0IGFuZCBlcnJvciBoZWxwZXJzIGBBcGlTZXJ2aWNlYCBpcyBidWlsdCBvbiB8JyxcbiAgICAnfCBgd2ViL3B1YmxpYy9jb25maWcuanNvbmAgfCBSdW50aW1lIGNvbmZpZyAoQVBJIGJhc2UgVVJMLCBDbGVyayBwdWJsaXNoYWJsZSBrZXkpIHwnLFxuICAgIC4uLihlMmVUZXN0aW5nID8gW1xuICAgICAgJ3wgYHdlYi9wbGF5d3JpZ2h0LmNvbmZpZy50c2AgfCBQbGF5d3JpZ2h0IGUyZSBjb25maWcg4oCUIHNlZSBgd2ViL2UyZS9SRUFETUUubWRgIHwnLFxuICAgICAgYHwgXFxgd2ViL2UyZS9cXGAgfCBQbGF5d3JpZ2h0IGUyZSBzdWl0ZSAoXFxgJHt0ZXN0RTJlQ29tbWFuZH1cXGApOyBhbHNvIHJ1biBpbiBDSSBhZ2FpbnN0IGVhY2ggUFIncyBkZXBsb3llZCBVUkwgfGAsXG4gICAgXSA6IFtdKSxcbiAgICAnJyxcbiAgICAnIyMjIEdpdEh1YiBBY3Rpb25zIFdvcmtmbG93cyAoYC5naXRodWIvd29ya2Zsb3dzL2ApJyxcbiAgICAnJyxcbiAgICAnfCBGaWxlIHwgVHJpZ2dlciB8JyxcbiAgICAnfC0tLS0tLXwtLS0tLS0tLS18JyxcbiAgICAnfCBgcHItZGVwbG95LnltbGAgfCBPbiBwdWxsIHJlcXVlc3Qgb3Blbi91cGRhdGUg4oCUIGRlcGxveXMgYSBwZXItUFIgZGV2IHN0YWNrIHwnLFxuICAgICd8IGBwci1jbGVhbnVwLnltbGAgfCBPbiBwdWxsIHJlcXVlc3QgY2xvc2Ug4oCUIHRlYXJzIGRvd24gdGhlIHBlci1QUiBkZXYgc3RhY2sgfCcsXG4gICAgJ3wgYHN0YWdpbmctZGVwbG95LnltbGAgfCBPbiBwdXNoIHRvIGBtYWluYCDigJQgZGVwbG95cyB0byBzdGFnaW5nIHwnLFxuICAgICd8IGBwcm9kdWN0aW9uLWRlcGxveS55bWxgIHwgTWFudWFsbHkgdHJpZ2dlcmVkIOKAlCBkZXBsb3lzIHRvIHByb2R1Y3Rpb24gfCcsXG4gICAgJycsXG4gICAgJy0tLScsXG4gICAgJycsXG4gICAgJyMjIEZpbGVzIFlvdSBDYW4gRWRpdCcsXG4gICAgJycsXG4gICAgJ1RoZXNlIGZpbGVzIGFyZSBnZW5lcmF0ZWQgb25jZSBhbmQgbmV2ZXIgb3ZlcndyaXR0ZW4gYnkgQmF0bWFuLiBNb2RpZnkgdGhlbSBmcmVlbHkuJyxcbiAgICAnJyxcbiAgICAnfCBGaWxlIHwgV2hhdCB0byBkbyB3aXRoIGl0IHwnLFxuICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tfCcsXG4gICAgJ3wgYC5wcm9qZW5yYy50cyB8IFRoZSBtYWluIFByb2plbiBjb25maWd1cmF0aW9uIGZpbGUuIEFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzIGZvciBlaXRoZXIgdGhlIEFQSSBvciB0aGUgV2ViIGZyb250ZW5kIG5lZWQgdG8gYmUgYWRkZWQgaGVyZSB8JyxcbiAgICAnfCBgc3JjL3N0YWNrcy9BcHBsaWNhdGlvblN0YWNrLnRzYCB8ICoqU3RhcnQgaGVyZS4qKiBBZGQgQ0RLIGNvbnN0cnVjdHMgdG8gYnVpbGQgeW91ciBpbmZyYXN0cnVjdHVyZSB8JyxcbiAgICAnfCBgc3JjL2FwaS9hcHAudHMgfCBUaGUgbWFpbiBtb25vbGl0aGljIEFQSSBSRVNUIHNlcnZlciBmaWxlLiBNYWluIGZpbGUgeW91IHNob3VsZCBiZSBtb2RpZnlpbmcgfCcsXG4gICAgJ3wgYHdlYi9zcmMvQXBwLnRzeGAgfCBCdWlsZCB5b3VyIFVJIGhlcmUgfCcsXG4gICAgJ3wgYHdlYi9zcmMvQXBwLmNzc2AgLyBgd2ViL3NyYy9pbmRleC5jc3NgIHwgU3R5bGUgeW91ciBhcHBsaWNhdGlvbiB8JyxcbiAgICAnfCBgd2ViL3NyYy9tYWluLnRzeGAgfCBBZGp1c3QgdG9wLWxldmVsIHByb3ZpZGVycyBvciByb3V0aW5nIHwnLFxuICAgICd8IGB3ZWIvc3JjL3NlcnZpY2VzL0FwaVNlcnZpY2UudHNgIC8gYHdlYi9zcmMvaGVscGVycy9gIHwgQWRkIEFQSSBzZXJ2aWNlIGhvb2tzIGFsb25nc2lkZSBgQXBpU2VydmljZS50c2AsIG9yIGFkanVzdCB0aGUgcmVxdWVzdCBoZWxwZXJzIHwnLFxuICAgICd8IGB3ZWIvcHVibGljL2NvbmZpZy5qc29uYCB8IFVwZGF0ZSBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQgKEFQSSBVUkwsIENsZXJrIGtleSkgfCcsXG4gICAgLi4uKGUyZVRlc3RpbmcgPyBbXG4gICAgICAnfCBgd2ViL3BsYXl3cmlnaHQuY29uZmlnLnRzYCAvIGB3ZWIvZTJlL2AgfCBQbGF5d3JpZ2h0IGUyZSBzdWl0ZSDigJQgZXh0ZW5kIGl0IHdpdGggcmVhbCBmbG93czsgc2VlIGB3ZWIvZTJlL1JFQURNRS5tZGAgfCcsXG4gICAgXSA6IFtdKSxcbiAgICAnJyxcbiAgICAnIyMgRmlsZXMgWW91IENhbm5vdCBFZGl0JyxcbiAgICAnJyxcbiAgICAnVGhlc2UgZmlsZXMgYXJlICoqbWFuYWdlZCBieSBCYXRtYW4qKiBhbmQgd2lsbCBiZSBvdmVyd3JpdHRlbiBldmVyeSB0aW1lIGBucHggcHJvamVuYCBydW5zLiBEbyBub3QgZWRpdCB0aGVtIGRpcmVjdGx5IOKAlCBtYWtlIGNoYW5nZXMgaW4gYC5wcm9qZW5yYy50c2AgaW5zdGVhZC4nLFxuICAgICcnLFxuICAgICc+IFshSU1QT1JUQU5UXScsXG4gICAgJz4gSWYgeW91IGhhdmUgQU5ZIGNoYW5nZXMgeW91IHdhbnQgdG8gbWFrZSB0byB0aGVzZSBmaWxlcywgbm90aWZ5ICN0ZWFtLWJhdG1hbiBvbiBTbGFjay4gJyxcbiAgICAnPiBXZSBtYWludGFpbiB0aGVzZSBmaWxlcyBhcyBwYXJ0IG9mIHRoZSBjb3JlIEJhdG1hbiBleHBlcmllbmNlLCBhbmQgeW91ciBmZWVkYmFjayBpcyBjcnVjaWFsIHRvIGVuc3VyZSB0aGV5IG1lZXQgeW91ciBuZWVkcy4nLFxuICAgICcnLFxuICAgICd8IEZpbGUgfCBXaHkgaXRcXCdzIG1hbmFnZWQgfCcsXG4gICAgJ3wtLS0tLS18LS0tLS0tLS0tLS0tLS0tLS18JyxcbiAgICAnfCBgc3JjL3N0YWNrcy9CYXNlQXBwbGljYXRpb25TdGFjay50c2AgfCBDb3JlIHN0YWNrIHdpcmluZyDigJQgdXBkYXRlZCB3aXRoIEJhdG1hbiByZWxlYXNlcyB8JyxcbiAgICAnfCBgc3JjL2FzcGVjdHMvRGF0YURvZ0FzcGVjdC50c2AgfCBEYXRhZG9nIENESyBhc3BlY3QgfCcsXG4gICAgJ3wgYHdlYi92aXRlLmNvbmZpZy50c2AgfCBWaXRlIGNvbmZpZ3VyYXRpb24gfCcsXG4gICAgJ3wgYHdlYi9lc2xpbnQuY29uZmlnLmpzYCB8IEVTTGludCBjb25maWd1cmF0aW9uIHwnLFxuICAgICd8IGB3ZWIvcG9zdGNzcy5jb25maWcuanNgIHwgUG9zdENTUyAvIFRhaWx3aW5kIGNvbmZpZ3VyYXRpb24gfCcsXG4gICAgJ3wgYHdlYi9pbmRleC5odG1sYCB8IEhUTUwgZW50cnkgcG9pbnQgfCcsXG4gICAgJ3wgYHdlYi90c2NvbmZpZy5qc29uYCAvIGB3ZWIvdHNjb25maWcuYXBwLmpzb25gIC8gYHdlYi90c2NvbmZpZy5ub2RlLmpzb25gIHwgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIHwnLFxuICAgICd8IGB3ZWIvc3JjL3ZpdGUtZW52LmQudHNgIHwgVml0ZSB0eXBlIGRlY2xhcmF0aW9ucyB8JyxcbiAgICAnfCBgd2ViL3NyYy9jb25maWcudHNgIHwgUnVudGltZSBjb25maWcgaG9vayDigJQgc2hhcGUgZHJpdmVuIGJ5IGAucHJvamVucmMudHNgIHwnLFxuICAgICd8IGAuZ2l0aHViL0NPREVPV05FUlNgIHwgQ29kZSBvd25lcnNoaXAgcG9saWN5IHwnLFxuICAgICd8IGAuZ2l0aHViL3dvcmtmbG93cy8qLnltbGAgfCBBbGwgQ0kvQ0Qgd29ya2Zsb3dzIHwnLFxuICAgICd8IGBhcmNoaXRlY3R1cmUtcnVsZXMvY2hlY2sudHNgLCBgdHNjb25maWcuanNvbmAsIGBSRUFETUUubWRgIHwgQXJjaGl0ZWN0dXJlIHJ1bGUgZW5naW5lIHwnLFxuICAgICd8IGBhdHRlc3RhdGlvbi9tYW5pZmVzdC50c2AsIGB2ZXJpZnkudHNgLCBgdHNjb25maWcuanNvbmAgfCBQUiBhdHRlc3RhdGlvbiBtZWNoYW5pc20gfCcsXG4gICAgJ3wgYG9wZW5zcGVjLWdhdGVzL2NoZWNrLXRhc2tzLWNvbXBsZXRlLnRzYCwgYHRzY29uZmlnLmpzb25gIHwgT3BlblNwZWMgdGFzay1jb21wbGV0aW9uIGdhdGUgfCcsXG4gICAgJ3wgYHN3YW1wLWJvb3RzdHJhcC9wdWxsLWV4dGVuc2lvbnMudHNgLCBgdHNjb25maWcuanNvbmAgfCBQdWxscyBzd2FtcCBleHRlbnNpb25zIGF0IHRoZWlyIHBpbm5lZCB2ZXJzaW9ucyB8JyxcbiAgICAnfCBgd29ya2Zsb3dzL3dvcmtmbG93LSoueWFtbGAgfCBTd2FtcCB3b3JrZmxvd3MgdGhlIHNvZnR3YXJlIGZhY3RvcnkgcnVucyB8JyxcbiAgICAnJyxcbiAgICAnPiAqKlRpcDoqKiBGaWxlcyB3aXRoIGEgYH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcIm5weCBwcm9qZW5cIi4gfn5gIGhlYWRlciBhcmUgbWFuYWdlZCBmaWxlcy4nLFxuICAgICcnLFxuICAgICcjIyMgU29mdHdhcmUgRmFjdG9yeSAoYG1vZGVscy9gLCBgYXJjaGl0ZWN0dXJlLXJ1bGVzL3J1bGVzLmpzb25gKScsXG4gICAgJycsXG4gICAgJ0JhdG1hbiBhbHNvIHNlZWRzIGEgW3N3YW1wXShodHRwczovL2dpdGh1Yi5jb20vc3dhbXAtY2x1Yi9zd2FtcCkgc29mdHdhcmUnLFxuICAgICdmYWN0b3J5IOKAlCBhIGBAc3dhbXAvc29mdHdhcmUtZmFjdG9yeWAgc3RhdGUgbWFjaGluZSB0aGF0IGRyaXZlcyBhIEdpdEh1YicsXG4gICAgJ2lzc3VlIHRocm91Z2ggaW50YWtlLCBPcGVuU3BlYyBwbGFubmluZywgaW1wbGVtZW50YXRpb24sIHByZS1QUicsXG4gICAgJ3ZlcmlmaWNhdGlvbiwgYW5kIGFuIG9wZW5lZCBQUi4gVGhlIHNlZWQgZmlsZXMgdW5kZXIgYG1vZGVscy8qKi8qLnlhbWxgIGFuZCcsXG4gICAgJ2BhcmNoaXRlY3R1cmUtcnVsZXMvcnVsZXMuanNvbmAgYXJlIGdlbmVyYXRlZCBvbmNlIChsaWtlIHRoZSBmaWxlcyBpbicsXG4gICAgJ1wiRmlsZXMgWW91IENhbiBFZGl0XCIgYWJvdmUpIOKAlCB0dW5lIHRoZSBmYWN0b3J5XFwncyBzdGFnZXMvZ2F0ZXMgb3IgYWRkIHlvdXInLFxuICAgICdvd24gYXJjaGl0ZWN0dXJlIHJ1bGVzIGRpcmVjdGx5IGluIHRob3NlIGZpbGVzLicsXG4gICAgJycsXG4gICAgJ2Bzd2FtcCBpbml0YCBydW5zIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiBgaW5zdGFsbGAvYGluc3RhbGw6Y2lgIChhIHNpbGVudCcsXG4gICAgJ25vLW9wIGlmIGBzd2FtcGAgaXNuXFwndCBvbiBQQVRILCBlLmcuIGluIENJKSwgc28gdGhlIHJlcG8gc3RheXMgaW5pdGlhbGl6ZWQnLFxuICAgICd3aXRob3V0IGEgc2VwYXJhdGUgc3RlcC4nLFxuICAgICcnLFxuICAgICdgc3dhbXBWZXJzaW9uYCBpbiBgLnN3YW1wLnlhbWxgIGlzIHRoZSBtaW5pbXVtIHN3YW1wIENMSSB0aGUgcmVwbyBuZWVkczogdGhlJyxcbiAgICAndmVyc2lvbiBpdCB3YXMgbGFzdCB1cGdyYWRlZCB3aXRoLiBzd2FtcCBkb2VzblxcJ3Qga2VlcCBvbGQgYnVpbGRzLCBzbyBpbnN0YWxsJyxcbiAgICAndGhlIGN1cnJlbnQgYHN0YWJsZWAgcmVsZWFzZSByYXRoZXIgdGhhbiB0aGF0IGV4YWN0IHZlcnNpb246JyxcbiAgICAnJyxcbiAgICAnYGBgYmFzaCcsXG4gICAgJyMgbWFjT1MgLyBMaW51eCcsXG4gICAgJ2N1cmwgLWZzU0wgaHR0cHM6Ly9zd2FtcC5jbHViL2luc3RhbGwuc2ggfCBzaCcsXG4gICAgJycsXG4gICAgJyMgV2luZG93cyAoUG93ZXJTaGVsbCknLFxuICAgICdpcm0gaHR0cHM6Ly9zd2FtcC5jbHViL2luc3RhbGwucHMxIHwgaWV4JyxcbiAgICAnYGBgJyxcbiAgICAnJyxcbiAgICAnT25lLXRpbWUgc2V0dXAgYmV5b25kIHRoYXQsIGFmdGVyIHlvdXIgZmlyc3QgYG5weCBwcm9qZW5gOicsXG4gICAgJycsXG4gICAgJ2BgYGJhc2gnLFxuICAgICcjIFB1bGxzIGVhY2ggZXh0ZW5zaW9uIGF0IHRoZSB2ZXJzaW9uIHBpbm5lZCBpbicsXG4gICAgJyMgZXh0ZW5zaW9ucy9tb2RlbHMvdXBzdHJlYW1fZXh0ZW5zaW9ucy5qc29uIChvciB0aGUgbGF0ZXN0JyxcbiAgICAnIyBzb2Z0d2FyZS1mYWN0b3J5L2dpdGh1YiBleHRlbnNpb25zIGluIGEgcmVwbyB3aXRoIG5vIGxvY2tmaWxlIHlldCksJyxcbiAgICAnIyByZXN0b3JlcyB0aGUgbG9ja2ZpbGUgYW5kIGNvbW1pdHRlZCBza2lsbCBmaWxlcyBmcm9tIGdpdCwgYW5kIGNyZWF0ZXMgdGhlJyxcbiAgICAnIyByZXBvXFwncyBzZWNyZXRzIHZhdWx0JyxcbiAgICAnbnB4IHByb2plbiBzd2FtcDpib290c3RyYXAnLFxuICAgICcnLFxuICAgICcjIFRoZW4gc3RvcmUgYSBHaXRIdWIgdG9rZW4gdGhlIGZhY3RvcnkgY2FuIG9wZW4gUFJzIHdpdGgnLFxuICAgICdzd2FtcCB2YXVsdCBwdXQgPHJlcG8+LXNlY3JldHMgR0lUSFVCX1RPS0VOIC0tcmVmcmVzaC1mcm9tIFwiZ2ggYXV0aCB0b2tlblwiJyxcbiAgICAnYGBgJyxcbiAgICAnJyxcbiAgICAnLS0tJyxcbiAgICAnJyxcbiAgICAnIyMgV2hlcmUgdG8gU3RhcnQnLFxuICAgICcnLFxuICAgICcxLiAqKmBzcmMvc3RhY2tzL0FwcGxpY2F0aW9uU3RhY2sudHNgKiog4oCUIEFkZCB5b3VyIENESyBjb25zdHJ1Y3RzIGhlcmUuIFRoZSBiYXNlIHN0YWNrIGFscmVhZHkgcHJvdmlkZXMgYHRoaXMuYXBpYCwgYHRoaXMuaG9zdGVkWm9uZWAsIGB0aGlzLmRhdGFkb2dgLCBhbmQgKHdoZW4gdGhlIHN0YWNrIGNyZWF0ZXMgb25lKSBgdGhpcy52cGNgIGFzIHByb3RlY3RlZCBwcm9wZXJ0aWVzLicsXG4gICAgJycsXG4gICAgJzIuICoqYHdlYi9gKiog4oCUIEJ1aWxkIHlvdXIgZnJvbnRlbmQuIFN0YXJ0IHdpdGggYHdlYi9zcmMvQXBwLnRzeGAgYW5kIGFkZCBzZXJ2aWNlcyBhbG9uZ3NpZGUgYHdlYi9zcmMvc2VydmljZXMvQXBpU2VydmljZS50c2AuJyxcbiAgICAnJyxcbiAgICAnMy4gKipgc3JjL2FwaS9hcHAudHNgKiog4oCUIEltcGxlbWVudCB5b3VyIGJhY2tlbmQgTGFtYmRhIGhhbmRsZXIgbG9naWMgaGVyZS4nLFxuICAgICcnLFxuICAgICc0LiAqKmAucHJvamVucmMudHNgKiogLSBNYW5hZ2VzIHByb2plY3QgZGVwZW5kZW5jaWVzIGFuZCBjb25maWd1cmF0aW9uLiBSdW4gYG5weCBwcm9qZW5gIGFmdGVyIG1ha2luZyBhbnkgY2hhbmdlcyB0byB0aGlzIGZpbGUuJyxcbiAgICAnLS0tJyxcbiAgICAnJyxcbiAgICAnIyMgRGV2ZWxvcG1lbnQgV29ya2Zsb3cnLFxuICAgICcnLFxuICAgICdgYGBiYXNoJyxcbiAgICAnIyBJbnN0YWxsIGRlcGVuZGVuY2llcycsXG4gICAgJ3lhcm4gaW5zdGFsbCcsXG4gICAgJycsXG4gICAgJyMgU3RhcnQgbG9jYWwgZGV2IHNlcnZlciAoYmFja2VuZCBMYW1iZGEgKyBWaXRlIGZyb250ZW5kIGluIHBhcmFsbGVsKScsXG4gICAgJ3lhcm4gZGV2JyxcbiAgICAnJyxcbiAgICAnIyBEZXBsb3kgYSBwZXJzb25hbCBkZXYgc3RhY2sgdG8gQVdTIGFzIGFuIGFsdGVybmF0aXZlIHRvIGxvY2FsIGRldmVsb3BtZW50LCBwcm92aWRlcyBtb3JlIHRob3JvdWdoIGVuZC10by1lbmQgdGVzdGluZycsXG4gICAgJ3lhcm4gY2RrOmRldiAtLWNvbnRleHQgbG9jYWwtZGV2LXByZWZpeD15b3VyLWhhbmRsZSBkZXBsb3knLFxuICAgICcnLFxuICAgICcjIFJlZGVwbG95IHlvdXIgcGVyc29uYWwgZGV2IHN0YWNrIGZhc3Q6IGFmdGVyIHRoZSBmaXJzdCBkZXBsb3kgYWJvdmUsIGtlZXAnLFxuICAgIFwiIyByZXVzaW5nIHRoZSBzYW1lIHN0YWNrIChkb24ndCBkZWxldGUgaXQgYmV0d2VlbiBicmFuY2hlcykgYW5kIGl0ZXJhdGUgd2l0aFwiLFxuICAgICcjIGhvdHN3YXAtZmFsbGJhY2sgaW5zdGVhZCBvZiBhIGZ1bGwgQ2xvdWRGb3JtYXRpb24gZGVwbG95bWVudCcsXG4gICAgJ3lhcm4gY2RrOmRldjpob3Rzd2FwIC0tY29udGV4dCBsb2NhbC1kZXYtcHJlZml4PXlvdXItaGFuZGxlJyxcbiAgICAnJyxcbiAgICAnIyBSdW4gdGVzdHMnLFxuICAgICd5YXJuIHRlc3QnLFxuICAgICcnLFxuICAgICcjIFJlLXN5bnRoZXNpemUgcHJvamVjdCBmaWxlcyBhZnRlciBlZGl0aW5nIC5wcm9qZW5yYy50cycsXG4gICAgJ25weCBwcm9qZW4nLFxuICAgICdgYGAnLFxuICAgICcnLFxuICAgICc+IFshSU1QT1JUQU5UXScsXG4gICAgJz4gYC0taG90c3dhcC1mYWxsYmFja2AgKHVzZWQgYnkgYGNkazpkZXY6aG90c3dhcGAgYW5kIHRoZSBgd2F0Y2hgIHRhc2spIGlzIGZvcicsXG4gICAgJz4gcGVyc29uYWwgZGV2IHN0YWNrcyBvbmx5IOKAlCBuZXZlciBydW4gaXQgYWdhaW5zdCBzdGFnaW5nIG9yIHByb2QuJyxcbiAgICAnJyxcbiAgICAnLS0tJyxcbiAgICAnJyxcbiAgICAnIyMgVXBncmFkaW5nIEJhdG1hbicsXG4gICAgJycsXG4gICAgJ2BgYGJhc2gnLFxuICAgICd5YXJuIGFkZCBAbWFjZWRvbi10ZWNobm9sb2dpZXMvYmF0bWFuQGxhdGVzdCcsXG4gICAgJ25weCBwcm9qZW4nLFxuICAgICdgYGAnLFxuICAgICcnLFxuICAgICdUaGlzIHVwZGF0ZXMgYWxsIG1hbmFnZWQgZmlsZXMgdG8gdGhlIGxhdGVzdCBCYXRtYW4gc3RhbmRhcmRzLiBZb3VyIGVkaXRhYmxlIHNhbXBsZSBmaWxlcyBhcmUgbmV2ZXIgdG91Y2hlZC4nLFxuICBdLmpvaW4oJ1xcbicpO1xufVxuIl19
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSw0Q0FZQztBQU1ELHdDQVdDO0FBV0QsNERBT0M7QUFVRCxzREFFQztBQU9ELDREQUVDO0FBRUQsa0NBZ0JDO0FBRUQsd0NBc01DO0FBblNELHNEQUEyRDtBQUUzRDs7R0FFRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLGNBQWtDLEVBQUUsTUFBYztJQUNqRixRQUFRLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssK0JBQWtCLENBQUMsR0FBRztZQUN6QixPQUFPLFdBQVcsTUFBTSxFQUFFLENBQUM7UUFDN0IsS0FBSywrQkFBa0IsQ0FBQyxHQUFHO1lBQ3pCLE9BQU8sV0FBVyxNQUFNLEVBQUUsQ0FBQztRQUM3QixLQUFLLCtCQUFrQixDQUFDLElBQUk7WUFDMUIsT0FBTyxRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQzFCO1lBQ0Usb0ZBQW9GO1lBQ3BGLE9BQU8sUUFBUSxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxjQUFrQztJQUMvRCxRQUFRLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssK0JBQWtCLENBQUMsR0FBRztZQUN6QixPQUFPLFFBQVEsQ0FBQztRQUNsQixLQUFLLCtCQUFrQixDQUFDLEdBQUc7WUFDekIsT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxLQUFLLCtCQUFrQixDQUFDLElBQUk7WUFDMUIsT0FBTyxnQ0FBZ0MsQ0FBQztRQUMxQztZQUNFLE9BQU8sZ0NBQWdDLENBQUM7SUFDNUMsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLHdCQUF3QjtJQUN0QyxPQUFPO1FBQ0wsbUdBQW1HO1FBQ25HLG9EQUFvRDtRQUNwRCwrQ0FBK0M7UUFDL0MsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDO0FB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O1FBQ2hGLG9FQUFvRTtRQUNwRSxFQUFFO1FBQ0YsS0FBSztRQUNMLEVBQUU7UUFDRixxQkFBcUI7UUFDckIsRUFBRTtRQUNGLFNBQVM7UUFDVCw4Q0FBOEM7UUFDOUMsWUFBWTtRQUNaLEtBQUs7UUFDTCxFQUFFO1FBQ0YsOEdBQThHO0tBQy9HLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVQYWNrYWdlTWFuYWdlciB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdCc7XG5cbi8qKlxuICogUmVuZGVycyB0aGUgY29tbWFuZCB1c2VkIHRvIHJ1biBhIHBhY2thZ2UuanNvbiBzY3JpcHQgZm9yIHRoZSBnaXZlbiBwYWNrYWdlIG1hbmFnZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5TY3JpcHRDb21tYW5kKHBhY2thZ2VNYW5hZ2VyOiBOb2RlUGFja2FnZU1hbmFnZXIsIHNjcmlwdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgc3dpdGNoIChwYWNrYWdlTWFuYWdlcikge1xuICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTTpcbiAgICAgIHJldHVybiBgbnBtIHJ1biAke3NjcmlwdH1gO1xuICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLkJVTjpcbiAgICAgIHJldHVybiBgYnVuIHJ1biAke3NjcmlwdH1gO1xuICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE06XG4gICAgICByZXR1cm4gYHBucG0gJHtzY3JpcHR9YDtcbiAgICBkZWZhdWx0OlxuICAgICAgLy8gYWxsIHlhcm4gdmFyaWFudHMgKHlhcm4sIHlhcm4yLCB5YXJuX2NsYXNzaWMsIHlhcm5fYmVycnkpIHNoYXJlIHRoZSBgeWFybmAgYmluYXJ5XG4gICAgICByZXR1cm4gYHlhcm4gJHtzY3JpcHR9YDtcbiAgfVxufVxuXG4vKipcbiAqIFJlbmRlcnMgdGhlIGNvbW1hbmQgdXNlZCB0byBkbyBhIGNsZWFuLCByZXByb2R1Y2libGUgZGVwZW5kZW5jeSBpbnN0YWxsIChlLmcuIGZvciBDSSlcbiAqIGZvciB0aGUgZ2l2ZW4gcGFja2FnZSBtYW5hZ2VyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFsbENvbW1hbmQocGFja2FnZU1hbmFnZXI6IE5vZGVQYWNrYWdlTWFuYWdlcik6IHN0cmluZyB7XG4gIHN3aXRjaCAocGFja2FnZU1hbmFnZXIpIHtcbiAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5OUE06XG4gICAgICByZXR1cm4gJ25wbSBjaSc7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuQlVOOlxuICAgICAgcmV0dXJuICdidW4gaW5zdGFsbCAtLWZyb3plbi1sb2NrZmlsZSc7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTTpcbiAgICAgIHJldHVybiAncG5wbSBpbnN0YWxsIC0tZnJvemVuLWxvY2tmaWxlJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICd5YXJuIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGUnO1xuICB9XG59XG5cbi8qKlxuICogQmFzaCBsaW5lcyB0aGF0IHNhbml0aXplIGEgYENMRUFOX0JSQU5DSF9OQU1FYCB2YXJpYWJsZSAoYWxyZWFkeSBzdHJpcHBlZCBvZiBhbnlcbiAqIGNvbnZlbnRpb25hbC1jb21taXQgcHJlZml4KSBpbnRvIGEgdmFsdWUgc2FmZSB0byB1c2UgYXMgYSBDbG91ZEZvcm1hdGlvbiBzdGFjay1uYW1lXG4gKiBmcmFnbWVudDogY29sbGFwc2VzIHJ1bnMgb2Ygbm9uLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIHRvIGAtYCwgdHJpbXMgbGVhZGluZy90cmFpbGluZ1xuICogYC1gLCBhbmQgcHJlZml4ZXMgd2l0aCBgcHItYCBpZiB0aGUgcmVzdWx0IHdvdWxkIG5vdCBzdGFydCB3aXRoIGEgbGV0dGVyIChvciBpcyBlbXB0eSkuXG4gKlxuICogU2hhcmVkIGJ5IFByRGVwbG95V29ya2Zsb3cgYW5kIFByQ2xlYW51cFdvcmtmbG93IHNvIGJvdGggZGVyaXZlIHRoZSBpZGVudGljYWwgc3RhY2tcbiAqIG5hbWUgZm9yIGEgZ2l2ZW4gYnJhbmNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVCcmFuY2hOYW1lU2NyaXB0KCk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIFtcbiAgICAnQ0xFQU5fQlJBTkNIX05BTUU9JChlY2hvIFwiJENMRUFOX0JSQU5DSF9OQU1FXCIgfCBzZWQgLUUgXFwncy9bXkEtWmEtejAtOV0rLy0vZzsgcy9eLSsvLzsgcy8tKyQvL1xcJyknLFxuICAgICdpZiBbWyAhIFwiJENMRUFOX0JSQU5DSF9OQU1FXCIgPX4gXltBLVphLXpdIF1dOyB0aGVuJyxcbiAgICAnICBDTEVBTl9CUkFOQ0hfTkFNRT1cInByLSR7Q0xFQU5fQlJBTkNIX05BTUV9XCInLFxuICAgICdmaScsXG4gIF07XG59XG5cbi8qKlxuICogSm9pbnMgY29tbWFuZHMgd2l0aCBgO2AgaW5zdGVhZCBvZiBgJiZgL2B8fGAgc28gdGhlIHJlc3VsdCBpcyB2YWxpZCBmb3IgYSBzd2FtcFxuICogY29tbWFuZC9zaGVsbCBtb2RlbCdzIGBydW46YCB2YWx1ZSBvbiBib3RoIFBPU0lYIHNoZWxscyBhbmQgV2luZG93cyBQb3dlclNoZWxsIDUuMVxuICogKHdoaWNoIGhhcyBubyBgJiZgL2B8fGAgY2hhaW4gb3BlcmF0b3JzIGJlZm9yZSBwd3NoIDcpLiBVbmxpa2UgYCYmYCwgYDtgIGRvZXMgbm90XG4gKiBzaG9ydC1jaXJjdWl0IG9uIGZhaWx1cmUg4oCUIGNhbGxlcnMgdGhhdCBuZWVkIGZhaWx1cmUgdG8gc3RvcCB0aGUgc2VxdWVuY2Ugc2hvdWxkIHNwbGl0XG4gKiBpbnRvIHNlcGFyYXRlIHdvcmtmbG93IHN0ZXBzIHdpdGggdGhlaXIgb3duIGBhc3NlcnRgIGdhdGVzIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGlzXG4gKiBmb3IgY29udHJvbCBmbG93LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hlbGxQb3J0YWJsZVNlcXVlbmNlKC4uLmNvbW1hbmRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiBjb21tYW5kcy5qb2luKCc7ICcpO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYSBwb3J0YWJsZSBmb3JjZS1kZWxldGUgZm9yIGEgc2luZ2xlIGZpbGUsIGZvciB1c2UgaW4gYSBzd2FtcCBjb21tYW5kL3NoZWxsXG4gKiBtb2RlbCdzIGBydW46YCB2YWx1ZSBpbiBwbGFjZSBvZiBgcm0gLWYgPHBhdGg+YCAoYW1iaWd1b3VzIHdpdGggUG93ZXJTaGVsbCA1LjEnc1xuICogYFJlbW92ZS1JdGVtIC1GaWx0ZXJgIGFsaWFzKS4gTWF0Y2hlcyB0aGUgZml4IGFscmVhZHkgdmFsaWRhdGVkIGluIGV4bWFuIzEzNi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoZWxsUG9ydGFibGVGb3JjZURlbGV0ZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYG5vZGUgLWUgXCJyZXF1aXJlKCdmcycpLnJtU3luYygnJHtwYXRofScsIHsgZm9yY2U6IHRydWUgfSlcImA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVUcyh2YWx1ZTogYW55LCBkZXB0aCA9IDEpOiBzdHJpbmcge1xuICBjb25zdCBwYWQgPSAnICAnLnJlcGVhdChkZXB0aCk7XG4gIGNvbnN0IGlubmVyUGFkID0gJyAgJy5yZXBlYXQoZGVwdGggKyAxKTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHJldHVybiBgJyR7dmFsdWV9J2A7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgY29uc3QgaXRlbXMgPSB2YWx1ZS5tYXAodiA9PiBgJHtpbm5lclBhZH0ke3NlcmlhbGl6ZVRzKHYsIGRlcHRoICsgMSl9YCkuam9pbignLFxcbicpO1xuICAgIHJldHVybiBgW1xcbiR7aXRlbXN9LFxcbiR7cGFkfV1gO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHZhbHVlKVxuICAgICAgLm1hcCgoW2ssIHZdKSA9PiBgJHtpbm5lclBhZH0ke2t9OiAke3NlcmlhbGl6ZVRzKHYsIGRlcHRoICsgMSl9YClcbiAgICAgIC5qb2luKCcsXFxuJyk7XG4gICAgcmV0dXJuIGB7XFxuJHtlbnRyaWVzfSxcXG4ke3BhZH19YDtcbiAgfVxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZG1lQ29udGVudHMoXG4gIHByb2plY3ROYW1lOiBzdHJpbmcsXG4gIGUyZVRlc3RpbmcgPSB0cnVlLFxuICBwYWNrYWdlTWFuYWdlcjogTm9kZVBhY2thZ2VNYW5hZ2VyID0gTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk5fQ0xBU1NJQyxcbiAgcHJBdXRvTWVyZ2UgPSBmYWxzZSxcbikge1xuICBjb25zdCB0ZXN0RTJlQ29tbWFuZCA9IHJ1blNjcmlwdENvbW1hbmQocGFja2FnZU1hbmFnZXIsICd0ZXN0OmUyZScpO1xuICByZXR1cm4gW1xuICAgIGAjICR7cHJvamVjdE5hbWV9YCxcbiAgICAnJyxcbiAgICAnVGhpcyBwcm9qZWN0IHdhcyBib290c3RyYXBwZWQgd2l0aCBbQmF0bWFuXShodHRwczovL2dpdGh1Yi5jb20vbWFjZWRvbi10ZWNobm9sb2dpZXMvcGxhdGZvcm0tY29tbW9uKS4nLFxuICAgICcnLFxuICAgICcjIyBXaGF0IEJhdG1hbiBDcmVhdGVkJyxcbiAgICAnJyxcbiAgICAnIyMjIENESyBJbmZyYXN0cnVjdHVyZSAoYHNyYy9gKScsXG4gICAgJycsXG4gICAgJ3wgRmlsZSB8IERlc2NyaXB0aW9uIHwnLFxuICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS18JyxcbiAgICAnfCBgc3JjL21haW4udHNgIHwgQ0RLIGFwcCBlbnRyeSBwb2ludCDigJQgaW5zdGFudGlhdGVzIGRldiwgc3RhZ2luZywgYW5kIHByb2QgYEFwcGxpY2F0aW9uU3RhY2tgcyB8JyxcbiAgICAnfCBgc3JjL0xvY2FsRGV2QXBwLnRzYCB8IExvY2FsIGRldmVsb3BtZW50IENESyBhcHAg4oCUIHVzZWQgYnkgYHlhcm4gY2RrOmRldmAgLSBkZXBsb3lzIHRvIEFXUyBmb3Igc2xvd2VyIGJ1dCBtb3JlIHRob3JvdWdoIHRlc3RpbmcgfCcsXG4gICAgJ3wgYHNyYy9HaXRIdWJSb2xlcy50c2AgfCBDREsgYXBwIGZvciBkZXBsb3lpbmcgdGhlIEdpdEh1YiBPSURDIElBTSByb2xlIChvbmUtdGltZSBib290c3RyYXApIHwnLFxuICAgICd8IGBzcmMvc3RhY2tzL0FwcGxpY2F0aW9uU3RhY2sudHNgIHwgWW91ciBwcmltYXJ5IHN0YWNrIOKAlCBleHRlbmQgaXQgdG8gYWRkIHJlc291cmNlcyB8JyxcbiAgICAnfCBgc3JjL3N0YWNrcy9CYXNlQXBwbGljYXRpb25TdGFjay50c2AgfCBCYXNlIHN0YWNrIHdpdGggQVBJLCBzdGF0aWMgd2Vic2l0ZSwgRGF0YWRvZywgYW5kIFJvdXRlIDUzIHdpcmVkIHVwIHwnLFxuICAgICd8IGBzcmMvc3RhY2tzL0dpdEh1YlJvbGVzU3RhY2sudHNgIHwgSUFNIHJvbGUgc3RhY2sgZm9yIEdpdEh1YiBBY3Rpb25zIE9JREMgYXV0aGVudGljYXRpb24gfCcsXG4gICAgJ3wgYHNyYy9jb25zdHJ1Y3RzL0FwaS50c2AgfCBBUEkgR2F0ZXdheSArIExhbWJkYSBjb25zdHJ1Y3Qgd2l0aCBDbGVyayBKV1QgYXV0aG9yaXplciB8JyxcbiAgICAnfCBgc3JjL2NvbnN0cnVjdHMvU3RhdGljV2Vic2l0ZS50c2AgfCBDbG91ZEZyb250ICsgUzMgKyBBQ00gKyBSb3V0ZSA1MyBjb25zdHJ1Y3QgfCcsXG4gICAgJ3wgYHNyYy9jb25zdHJ1Y3RzL2hhbmRsZXIvQXBpLkZ1bmN0aW9uLnRzYCB8IExhbWJkYSBoYW5kbGVyIGVudHJ5IHBvaW50LCBiYXNpYyB3cmFwcGVyIGFyb3VuZCBFeHByZXNzLWNvbXBhdGlibGUgYXBwIGNvZGUgfCcsXG4gICAgJ3wgYHNyYy9hc3BlY3RzL0RhdGFEb2dBc3BlY3QudHNgIHwgQ0RLIGFzcGVjdCB0aGF0IHdpcmVzIGFsbCBMYW1iZGEgZnVuY3Rpb25zIHRvIERhdGFkb2cgfCcsXG4gICAgJycsXG4gICAgJyMjIyBGcm9udGVuZCAoYHdlYi9gKScsXG4gICAgJycsXG4gICAgJ3wgRmlsZSB8IERlc2NyaXB0aW9uIHwnLFxuICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS18JyxcbiAgICAnfCBgd2ViL3NyYy9tYWluLnRzeGAgfCBSZWFjdCBhcHAgZW50cnkgcG9pbnQgd2l0aCBDbGVyayBhbmQgUmVhY3QgUXVlcnkgcHJvdmlkZXJzIHwnLFxuICAgICd8IGB3ZWIvc3JjL0FwcC50c3hgIHwgUm9vdCBhcHBsaWNhdGlvbiBjb21wb25lbnQgfCcsXG4gICAgJ3wgYHdlYi9zcmMvQXBwLmNzc2AgLyBgd2ViL3NyYy9pbmRleC5jc3NgIHwgQmFzZSBzdHlsZXNoZWV0cyAoVGFpbHdpbmQgQ1NTIHY0KSB8JyxcbiAgICAnfCBgd2ViL3NyYy9jb25maWcudHNgIHwgYHVzZUNvbmZpZygpYCBob29rIOKAlCBsb2FkcyBydW50aW1lIGNvbmZpZyBmcm9tIGBjb25maWcuanNvbmAgfCcsXG4gICAgJ3wgYHdlYi9zcmMvc2VydmljZXMvQXBpU2VydmljZS50c2AgfCBgdXNlQXBpUXVlcnkoKWAgLyBgdXNlQXBpTXV0YXRpb24oKWAg4oCUIGF1dGhlbnRpY2F0ZWQgQVBJIGhvb2tzLCBjYWNoZWQgcGVyIHBhdGggfCcsXG4gICAgJ3wgYHdlYi9zcmMvaGVscGVycy9gIHwgYHJlcXVlc3RzLnRzYCwgYEh0dHBFcnJvci50c2AsIGBlcnJvcnMudHNgLCBgcmV0cnkudHNgIOKAlCB0aGUgcmVxdWVzdCBhbmQgZXJyb3IgaGVscGVycyBgQXBpU2VydmljZWAgaXMgYnVpbHQgb24gfCcsXG4gICAgJ3wgYHdlYi9wdWJsaWMvY29uZmlnLmpzb25gIHwgUnVudGltZSBjb25maWcgKEFQSSBiYXNlIFVSTCwgQ2xlcmsgcHVibGlzaGFibGUga2V5KSB8JyxcbiAgICAuLi4oZTJlVGVzdGluZyA/IFtcbiAgICAgICd8IGB3ZWIvcGxheXdyaWdodC5jb25maWcudHNgIHwgUGxheXdyaWdodCBlMmUgY29uZmlnIOKAlCBzZWUgYHdlYi9lMmUvUkVBRE1FLm1kYCB8JyxcbiAgICAgIGB8IFxcYHdlYi9lMmUvXFxgIHwgUGxheXdyaWdodCBlMmUgc3VpdGUgKFxcYCR7dGVzdEUyZUNvbW1hbmR9XFxgKTsgYWxzbyBydW4gaW4gQ0kgYWdhaW5zdCBlYWNoIFBSJ3MgZGVwbG95ZWQgVVJMIHxgLFxuICAgIF0gOiBbXSksXG4gICAgJycsXG4gICAgJyMjIyBHaXRIdWIgQWN0aW9ucyBXb3JrZmxvd3MgKGAuZ2l0aHViL3dvcmtmbG93cy9gKScsXG4gICAgJycsXG4gICAgJ3wgRmlsZSB8IFRyaWdnZXIgfCcsXG4gICAgJ3wtLS0tLS18LS0tLS0tLS0tfCcsXG4gICAgJ3wgYHByLWRlcGxveS55bWxgIHwgT24gcHVsbCByZXF1ZXN0IG9wZW4vdXBkYXRlIOKAlCBkZXBsb3lzIGEgcGVyLVBSIGRldiBzdGFjayB8JyxcbiAgICAnfCBgcHItY2xlYW51cC55bWxgIHwgT24gcHVsbCByZXF1ZXN0IGNsb3NlIOKAlCB0ZWFycyBkb3duIHRoZSBwZXItUFIgZGV2IHN0YWNrIHwnLFxuICAgICd8IGBzdGFnaW5nLWRlcGxveS55bWxgIHwgT24gcHVzaCB0byBgbWFpbmAsIG9yIG1hbnVhbGx5IHRyaWdnZXJlZCDigJQgZGVwbG95cyB0byBzdGFnaW5nIHwnLFxuICAgIC4uLihwckF1dG9NZXJnZSA/IFtcbiAgICAgICd8IGBwci1hdXRvLW1lcmdlLnltbGAgfCBPbiBwdWxsIHJlcXVlc3Qgb3Blbi9yZW9wZW4vcmVhZHkgZm9yIHJldmlldyDigJQgdHVybnMgb24gc3F1YXNoIGF1dG8tbWVyZ2Ugd2l0aCBhIEdpdEh1YiBBcHAgdG9rZW4gfCcsXG4gICAgXSA6IFtdKSxcbiAgICAnfCBgcHJvZHVjdGlvbi1kZXBsb3kueW1sYCB8IE1hbnVhbGx5IHRyaWdnZXJlZCDigJQgZGVwbG95cyB0byBwcm9kdWN0aW9uIHwnLFxuICAgICcnLFxuICAgICctLS0nLFxuICAgICcnLFxuICAgICcjIyBGaWxlcyBZb3UgQ2FuIEVkaXQnLFxuICAgICcnLFxuICAgICdUaGVzZSBmaWxlcyBhcmUgZ2VuZXJhdGVkIG9uY2UgYW5kIG5ldmVyIG92ZXJ3cml0dGVuIGJ5IEJhdG1hbi4gTW9kaWZ5IHRoZW0gZnJlZWx5LicsXG4gICAgJycsXG4gICAgJ3wgRmlsZSB8IFdoYXQgdG8gZG8gd2l0aCBpdCB8JyxcbiAgICAnfC0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLXwnLFxuICAgICd8IGAucHJvamVucmMudHMgfCBUaGUgbWFpbiBQcm9qZW4gY29uZmlndXJhdGlvbiBmaWxlLiBBZGRpdGlvbmFsIGRlcGVuZGVuY2llcyBmb3IgZWl0aGVyIHRoZSBBUEkgb3IgdGhlIFdlYiBmcm9udGVuZCBuZWVkIHRvIGJlIGFkZGVkIGhlcmUgfCcsXG4gICAgJ3wgYHNyYy9zdGFja3MvQXBwbGljYXRpb25TdGFjay50c2AgfCAqKlN0YXJ0IGhlcmUuKiogQWRkIENESyBjb25zdHJ1Y3RzIHRvIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgfCcsXG4gICAgJ3wgYHNyYy9hcGkvYXBwLnRzIHwgVGhlIG1haW4gbW9ub2xpdGhpYyBBUEkgUkVTVCBzZXJ2ZXIgZmlsZS4gTWFpbiBmaWxlIHlvdSBzaG91bGQgYmUgbW9kaWZ5aW5nIHwnLFxuICAgICd8IGB3ZWIvc3JjL0FwcC50c3hgIHwgQnVpbGQgeW91ciBVSSBoZXJlIHwnLFxuICAgICd8IGB3ZWIvc3JjL0FwcC5jc3NgIC8gYHdlYi9zcmMvaW5kZXguY3NzYCB8IFN0eWxlIHlvdXIgYXBwbGljYXRpb24gfCcsXG4gICAgJ3wgYHdlYi9zcmMvbWFpbi50c3hgIHwgQWRqdXN0IHRvcC1sZXZlbCBwcm92aWRlcnMgb3Igcm91dGluZyB8JyxcbiAgICAnfCBgd2ViL3NyYy9zZXJ2aWNlcy9BcGlTZXJ2aWNlLnRzYCAvIGB3ZWIvc3JjL2hlbHBlcnMvYCB8IEFkZCBBUEkgc2VydmljZSBob29rcyBhbG9uZ3NpZGUgYEFwaVNlcnZpY2UudHNgLCBvciBhZGp1c3QgdGhlIHJlcXVlc3QgaGVscGVycyB8JyxcbiAgICAnfCBgd2ViL3B1YmxpYy9jb25maWcuanNvbmAgfCBVcGRhdGUgZm9yIGxvY2FsIGRldmVsb3BtZW50IChBUEkgVVJMLCBDbGVyayBrZXkpIHwnLFxuICAgIC4uLihlMmVUZXN0aW5nID8gW1xuICAgICAgJ3wgYHdlYi9wbGF5d3JpZ2h0LmNvbmZpZy50c2AgLyBgd2ViL2UyZS9gIHwgUGxheXdyaWdodCBlMmUgc3VpdGUg4oCUIGV4dGVuZCBpdCB3aXRoIHJlYWwgZmxvd3M7IHNlZSBgd2ViL2UyZS9SRUFETUUubWRgIHwnLFxuICAgIF0gOiBbXSksXG4gICAgJycsXG4gICAgJyMjIEZpbGVzIFlvdSBDYW5ub3QgRWRpdCcsXG4gICAgJycsXG4gICAgJ1RoZXNlIGZpbGVzIGFyZSAqKm1hbmFnZWQgYnkgQmF0bWFuKiogYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4gZXZlcnkgdGltZSBgbnB4IHByb2plbmAgcnVucy4gRG8gbm90IGVkaXQgdGhlbSBkaXJlY3RseSDigJQgbWFrZSBjaGFuZ2VzIGluIGAucHJvamVucmMudHNgIGluc3RlYWQuJyxcbiAgICAnJyxcbiAgICAnPiBbIUlNUE9SVEFOVF0nLFxuICAgICc+IElmIHlvdSBoYXZlIEFOWSBjaGFuZ2VzIHlvdSB3YW50IHRvIG1ha2UgdG8gdGhlc2UgZmlsZXMsIG5vdGlmeSAjdGVhbS1iYXRtYW4gb24gU2xhY2suICcsXG4gICAgJz4gV2UgbWFpbnRhaW4gdGhlc2UgZmlsZXMgYXMgcGFydCBvZiB0aGUgY29yZSBCYXRtYW4gZXhwZXJpZW5jZSwgYW5kIHlvdXIgZmVlZGJhY2sgaXMgY3J1Y2lhbCB0byBlbnN1cmUgdGhleSBtZWV0IHlvdXIgbmVlZHMuJyxcbiAgICAnJyxcbiAgICAnfCBGaWxlIHwgV2h5IGl0XFwncyBtYW5hZ2VkIHwnLFxuICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tfCcsXG4gICAgJ3wgYHNyYy9zdGFja3MvQmFzZUFwcGxpY2F0aW9uU3RhY2sudHNgIHwgQ29yZSBzdGFjayB3aXJpbmcg4oCUIHVwZGF0ZWQgd2l0aCBCYXRtYW4gcmVsZWFzZXMgfCcsXG4gICAgJ3wgYHNyYy9hc3BlY3RzL0RhdGFEb2dBc3BlY3QudHNgIHwgRGF0YWRvZyBDREsgYXNwZWN0IHwnLFxuICAgICd8IGB3ZWIvdml0ZS5jb25maWcudHNgIHwgVml0ZSBjb25maWd1cmF0aW9uIHwnLFxuICAgICd8IGB3ZWIvZXNsaW50LmNvbmZpZy5qc2AgfCBFU0xpbnQgY29uZmlndXJhdGlvbiB8JyxcbiAgICAnfCBgd2ViL3Bvc3Rjc3MuY29uZmlnLmpzYCB8IFBvc3RDU1MgLyBUYWlsd2luZCBjb25maWd1cmF0aW9uIHwnLFxuICAgICd8IGB3ZWIvaW5kZXguaHRtbGAgfCBIVE1MIGVudHJ5IHBvaW50IHwnLFxuICAgICd8IGB3ZWIvdHNjb25maWcuanNvbmAgLyBgd2ViL3RzY29uZmlnLmFwcC5qc29uYCAvIGB3ZWIvdHNjb25maWcubm9kZS5qc29uYCB8IFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiB8JyxcbiAgICAnfCBgd2ViL3NyYy92aXRlLWVudi5kLnRzYCB8IFZpdGUgdHlwZSBkZWNsYXJhdGlvbnMgfCcsXG4gICAgJ3wgYHdlYi9zcmMvY29uZmlnLnRzYCB8IFJ1bnRpbWUgY29uZmlnIGhvb2sg4oCUIHNoYXBlIGRyaXZlbiBieSBgLnByb2plbnJjLnRzYCB8JyxcbiAgICAnfCBgLmdpdGh1Yi9DT0RFT1dORVJTYCB8IENvZGUgb3duZXJzaGlwIHBvbGljeSB8JyxcbiAgICAnfCBgLmdpdGh1Yi93b3JrZmxvd3MvKi55bWxgIHwgQWxsIENJL0NEIHdvcmtmbG93cyB8JyxcbiAgICAnfCBgYXJjaGl0ZWN0dXJlLXJ1bGVzL2NoZWNrLnRzYCwgYHRzY29uZmlnLmpzb25gLCBgUkVBRE1FLm1kYCB8IEFyY2hpdGVjdHVyZSBydWxlIGVuZ2luZSB8JyxcbiAgICAnfCBgYXR0ZXN0YXRpb24vbWFuaWZlc3QudHNgLCBgdmVyaWZ5LnRzYCwgYHRzY29uZmlnLmpzb25gIHwgUFIgYXR0ZXN0YXRpb24gbWVjaGFuaXNtIHwnLFxuICAgICd8IGBvcGVuc3BlYy1nYXRlcy9jaGVjay10YXNrcy1jb21wbGV0ZS50c2AsIGB0c2NvbmZpZy5qc29uYCB8IE9wZW5TcGVjIHRhc2stY29tcGxldGlvbiBnYXRlIHwnLFxuICAgICd8IGBzd2FtcC1ib290c3RyYXAvcHVsbC1leHRlbnNpb25zLnRzYCwgYHRzY29uZmlnLmpzb25gIHwgUHVsbHMgc3dhbXAgZXh0ZW5zaW9ucyBhdCB0aGVpciBwaW5uZWQgdmVyc2lvbnMgfCcsXG4gICAgJ3wgYHdvcmtmbG93cy93b3JrZmxvdy0qLnlhbWxgIHwgU3dhbXAgd29ya2Zsb3dzIHRoZSBzb2Z0d2FyZSBmYWN0b3J5IHJ1bnMgfCcsXG4gICAgJycsXG4gICAgJz4gKipUaXA6KiogRmlsZXMgd2l0aCBhIGB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJucHggcHJvamVuXCIuIH5+YCBoZWFkZXIgYXJlIG1hbmFnZWQgZmlsZXMuJyxcbiAgICAnJyxcbiAgICAnIyMjIFNvZnR3YXJlIEZhY3RvcnkgKGBtb2RlbHMvYCwgYGFyY2hpdGVjdHVyZS1ydWxlcy9ydWxlcy5qc29uYCknLFxuICAgICcnLFxuICAgICdCYXRtYW4gYWxzbyBzZWVkcyBhIFtzd2FtcF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YW1wLWNsdWIvc3dhbXApIHNvZnR3YXJlJyxcbiAgICAnZmFjdG9yeSDigJQgYSBgQHN3YW1wL3NvZnR3YXJlLWZhY3RvcnlgIHN0YXRlIG1hY2hpbmUgdGhhdCBkcml2ZXMgYSBHaXRIdWInLFxuICAgICdpc3N1ZSB0aHJvdWdoIGludGFrZSwgT3BlblNwZWMgcGxhbm5pbmcsIGltcGxlbWVudGF0aW9uLCBwcmUtUFInLFxuICAgICd2ZXJpZmljYXRpb24sIGFuZCBhbiBvcGVuZWQgUFIuIFRoZSBzZWVkIGZpbGVzIHVuZGVyIGBtb2RlbHMvKiovKi55YW1sYCBhbmQnLFxuICAgICdgYXJjaGl0ZWN0dXJlLXJ1bGVzL3J1bGVzLmpzb25gIGFyZSBnZW5lcmF0ZWQgb25jZSAobGlrZSB0aGUgZmlsZXMgaW4nLFxuICAgICdcIkZpbGVzIFlvdSBDYW4gRWRpdFwiIGFib3ZlKSDigJQgdHVuZSB0aGUgZmFjdG9yeVxcJ3Mgc3RhZ2VzL2dhdGVzIG9yIGFkZCB5b3VyJyxcbiAgICAnb3duIGFyY2hpdGVjdHVyZSBydWxlcyBkaXJlY3RseSBpbiB0aG9zZSBmaWxlcy4nLFxuICAgICcnLFxuICAgICdgc3dhbXAgaW5pdGAgcnVucyBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgYGluc3RhbGxgL2BpbnN0YWxsOmNpYCAoYSBzaWxlbnQnLFxuICAgICduby1vcCBpZiBgc3dhbXBgIGlzblxcJ3Qgb24gUEFUSCwgZS5nLiBpbiBDSSksIHNvIHRoZSByZXBvIHN0YXlzIGluaXRpYWxpemVkJyxcbiAgICAnd2l0aG91dCBhIHNlcGFyYXRlIHN0ZXAuJyxcbiAgICAnJyxcbiAgICAnYHN3YW1wVmVyc2lvbmAgaW4gYC5zd2FtcC55YW1sYCBpcyB0aGUgbWluaW11bSBzd2FtcCBDTEkgdGhlIHJlcG8gbmVlZHM6IHRoZScsXG4gICAgJ3ZlcnNpb24gaXQgd2FzIGxhc3QgdXBncmFkZWQgd2l0aC4gc3dhbXAgZG9lc25cXCd0IGtlZXAgb2xkIGJ1aWxkcywgc28gaW5zdGFsbCcsXG4gICAgJ3RoZSBjdXJyZW50IGBzdGFibGVgIHJlbGVhc2UgcmF0aGVyIHRoYW4gdGhhdCBleGFjdCB2ZXJzaW9uOicsXG4gICAgJycsXG4gICAgJ2BgYGJhc2gnLFxuICAgICcjIG1hY09TIC8gTGludXgnLFxuICAgICdjdXJsIC1mc1NMIGh0dHBzOi8vc3dhbXAuY2x1Yi9pbnN0YWxsLnNoIHwgc2gnLFxuICAgICcnLFxuICAgICcjIFdpbmRvd3MgKFBvd2VyU2hlbGwpJyxcbiAgICAnaXJtIGh0dHBzOi8vc3dhbXAuY2x1Yi9pbnN0YWxsLnBzMSB8IGlleCcsXG4gICAgJ2BgYCcsXG4gICAgJycsXG4gICAgJ09uZS10aW1lIHNldHVwIGJleW9uZCB0aGF0LCBhZnRlciB5b3VyIGZpcnN0IGBucHggcHJvamVuYDonLFxuICAgICcnLFxuICAgICdgYGBiYXNoJyxcbiAgICAnIyBQdWxscyBlYWNoIGV4dGVuc2lvbiBhdCB0aGUgdmVyc2lvbiBwaW5uZWQgaW4nLFxuICAgICcjIGV4dGVuc2lvbnMvbW9kZWxzL3Vwc3RyZWFtX2V4dGVuc2lvbnMuanNvbiAob3IgdGhlIGxhdGVzdCcsXG4gICAgJyMgc29mdHdhcmUtZmFjdG9yeS9naXRodWIgZXh0ZW5zaW9ucyBpbiBhIHJlcG8gd2l0aCBubyBsb2NrZmlsZSB5ZXQpLCcsXG4gICAgJyMgcmVzdG9yZXMgdGhlIGxvY2tmaWxlIGFuZCBjb21taXR0ZWQgc2tpbGwgZmlsZXMgZnJvbSBnaXQsIGFuZCBjcmVhdGVzIHRoZScsXG4gICAgJyMgcmVwb1xcJ3Mgc2VjcmV0cyB2YXVsdCcsXG4gICAgJ25weCBwcm9qZW4gc3dhbXA6Ym9vdHN0cmFwJyxcbiAgICAnJyxcbiAgICAnIyBUaGVuIHN0b3JlIGEgR2l0SHViIHRva2VuIHRoZSBmYWN0b3J5IGNhbiBvcGVuIFBScyB3aXRoJyxcbiAgICAnc3dhbXAgdmF1bHQgcHV0IDxyZXBvPi1zZWNyZXRzIEdJVEhVQl9UT0tFTiAtLXJlZnJlc2gtZnJvbSBcImdoIGF1dGggdG9rZW5cIicsXG4gICAgJ2BgYCcsXG4gICAgJycsXG4gICAgJy0tLScsXG4gICAgJycsXG4gICAgJyMjIFdoZXJlIHRvIFN0YXJ0JyxcbiAgICAnJyxcbiAgICAnMS4gKipgc3JjL3N0YWNrcy9BcHBsaWNhdGlvblN0YWNrLnRzYCoqIOKAlCBBZGQgeW91ciBDREsgY29uc3RydWN0cyBoZXJlLiBUaGUgYmFzZSBzdGFjayBhbHJlYWR5IHByb3ZpZGVzIGB0aGlzLmFwaWAsIGB0aGlzLmhvc3RlZFpvbmVgLCBgdGhpcy5kYXRhZG9nYCwgYW5kICh3aGVuIHRoZSBzdGFjayBjcmVhdGVzIG9uZSkgYHRoaXMudnBjYCBhcyBwcm90ZWN0ZWQgcHJvcGVydGllcy4nLFxuICAgICcnLFxuICAgICcyLiAqKmB3ZWIvYCoqIOKAlCBCdWlsZCB5b3VyIGZyb250ZW5kLiBTdGFydCB3aXRoIGB3ZWIvc3JjL0FwcC50c3hgIGFuZCBhZGQgc2VydmljZXMgYWxvbmdzaWRlIGB3ZWIvc3JjL3NlcnZpY2VzL0FwaVNlcnZpY2UudHNgLicsXG4gICAgJycsXG4gICAgJzMuICoqYHNyYy9hcGkvYXBwLnRzYCoqIOKAlCBJbXBsZW1lbnQgeW91ciBiYWNrZW5kIExhbWJkYSBoYW5kbGVyIGxvZ2ljIGhlcmUuJyxcbiAgICAnJyxcbiAgICAnNC4gKipgLnByb2plbnJjLnRzYCoqIC0gTWFuYWdlcyBwcm9qZWN0IGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbi4gUnVuIGBucHggcHJvamVuYCBhZnRlciBtYWtpbmcgYW55IGNoYW5nZXMgdG8gdGhpcyBmaWxlLicsXG4gICAgJy0tLScsXG4gICAgJycsXG4gICAgJyMjIERldmVsb3BtZW50IFdvcmtmbG93JyxcbiAgICAnJyxcbiAgICAnYGBgYmFzaCcsXG4gICAgJyMgSW5zdGFsbCBkZXBlbmRlbmNpZXMnLFxuICAgICd5YXJuIGluc3RhbGwnLFxuICAgICcnLFxuICAgICcjIFN0YXJ0IGxvY2FsIGRldiBzZXJ2ZXIgKGJhY2tlbmQgTGFtYmRhICsgVml0ZSBmcm9udGVuZCBpbiBwYXJhbGxlbCknLFxuICAgICd5YXJuIGRldicsXG4gICAgJycsXG4gICAgJyMgRGVwbG95IGEgcGVyc29uYWwgZGV2IHN0YWNrIHRvIEFXUyBhcyBhbiBhbHRlcm5hdGl2ZSB0byBsb2NhbCBkZXZlbG9wbWVudCwgcHJvdmlkZXMgbW9yZSB0aG9yb3VnaCBlbmQtdG8tZW5kIHRlc3RpbmcnLFxuICAgICd5YXJuIGNkazpkZXYgLS1jb250ZXh0IGxvY2FsLWRldi1wcmVmaXg9eW91ci1oYW5kbGUgZGVwbG95JyxcbiAgICAnJyxcbiAgICAnIyBSZWRlcGxveSB5b3VyIHBlcnNvbmFsIGRldiBzdGFjayBmYXN0OiBhZnRlciB0aGUgZmlyc3QgZGVwbG95IGFib3ZlLCBrZWVwJyxcbiAgICBcIiMgcmV1c2luZyB0aGUgc2FtZSBzdGFjayAoZG9uJ3QgZGVsZXRlIGl0IGJldHdlZW4gYnJhbmNoZXMpIGFuZCBpdGVyYXRlIHdpdGhcIixcbiAgICAnIyBob3Rzd2FwLWZhbGxiYWNrIGluc3RlYWQgb2YgYSBmdWxsIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnQnLFxuICAgICd5YXJuIGNkazpkZXY6aG90c3dhcCAtLWNvbnRleHQgbG9jYWwtZGV2LXByZWZpeD15b3VyLWhhbmRsZScsXG4gICAgJycsXG4gICAgJyMgUnVuIHRlc3RzJyxcbiAgICAneWFybiB0ZXN0JyxcbiAgICAnJyxcbiAgICAnIyBSZS1zeW50aGVzaXplIHByb2plY3QgZmlsZXMgYWZ0ZXIgZWRpdGluZyAucHJvamVucmMudHMnLFxuICAgICducHggcHJvamVuJyxcbiAgICAnYGBgJyxcbiAgICAnJyxcbiAgICAnPiBbIUlNUE9SVEFOVF0nLFxuICAgICc+IGAtLWhvdHN3YXAtZmFsbGJhY2tgICh1c2VkIGJ5IGBjZGs6ZGV2OmhvdHN3YXBgIGFuZCB0aGUgYHdhdGNoYCB0YXNrKSBpcyBmb3InLFxuICAgICc+IHBlcnNvbmFsIGRldiBzdGFja3Mgb25seSDigJQgbmV2ZXIgcnVuIGl0IGFnYWluc3Qgc3RhZ2luZyBvciBwcm9kLicsXG4gICAgJycsXG4gICAgJy0tLScsXG4gICAgJycsXG4gICAgJyMjIFVwZ3JhZGluZyBCYXRtYW4nLFxuICAgICcnLFxuICAgICdgYGBiYXNoJyxcbiAgICAneWFybiBhZGQgQG1hY2Vkb24tdGVjaG5vbG9naWVzL2JhdG1hbkBsYXRlc3QnLFxuICAgICducHggcHJvamVuJyxcbiAgICAnYGBgJyxcbiAgICAnJyxcbiAgICAnVGhpcyB1cGRhdGVzIGFsbCBtYW5hZ2VkIGZpbGVzIHRvIHRoZSBsYXRlc3QgQmF0bWFuIHN0YW5kYXJkcy4gWW91ciBlZGl0YWJsZSBzYW1wbGUgZmlsZXMgYXJlIG5ldmVyIHRvdWNoZWQuJyxcbiAgXS5qb2luKCdcXG4nKTtcbn1cbiJdfQ==
|