@codedrifters/configulator 0.0.73 → 0.0.75
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.
|
@@ -79,6 +79,14 @@ export interface PnpmWorkspaceOptions {
|
|
|
79
79
|
* @default none (empty array)
|
|
80
80
|
*/
|
|
81
81
|
readonly ignoredBuiltDependencies?: Array<string>;
|
|
82
|
+
/**
|
|
83
|
+
* Additional subproject paths to include in the workspace packages array.
|
|
84
|
+
* These will be combined with any subprojects discovered via projen's
|
|
85
|
+
* project.subprojects property. Paths should be relative to the project root.
|
|
86
|
+
*
|
|
87
|
+
* @default none (empty array)
|
|
88
|
+
*/
|
|
89
|
+
readonly subprojects?: Array<string>;
|
|
82
90
|
}
|
|
83
91
|
export declare class PnpmWorkspace extends Component {
|
|
84
92
|
/**
|
|
@@ -141,5 +149,11 @@ export declare class PnpmWorkspace extends Component {
|
|
|
141
149
|
* https://pnpm.io/settings#ignoredbuiltdependencies
|
|
142
150
|
*/
|
|
143
151
|
ignoredBuiltDependencies: Array<string>;
|
|
152
|
+
/**
|
|
153
|
+
* Additional subproject paths to include in the workspace packages array.
|
|
154
|
+
* These will be combined with any subprojects discovered via projen's
|
|
155
|
+
* project.subprojects property.
|
|
156
|
+
*/
|
|
157
|
+
subprojects: Array<string>;
|
|
144
158
|
constructor(project: Project, options?: PnpmWorkspaceOptions);
|
|
145
159
|
}
|
|
@@ -80,6 +80,10 @@ class PnpmWorkspace extends projen_1.Component {
|
|
|
80
80
|
this.ignoredBuiltDependencies = options.ignoredBuiltDependencies
|
|
81
81
|
? options.ignoredBuiltDependencies
|
|
82
82
|
: [];
|
|
83
|
+
/**
|
|
84
|
+
* Store additional subproject paths if provided
|
|
85
|
+
*/
|
|
86
|
+
this.subprojects = options.subprojects ?? [];
|
|
83
87
|
/**
|
|
84
88
|
* In case that this file is in a package, don't package it.
|
|
85
89
|
*/
|
|
@@ -92,14 +96,27 @@ class PnpmWorkspace extends projen_1.Component {
|
|
|
92
96
|
const pnpmConfig = {};
|
|
93
97
|
const packages = new Array();
|
|
94
98
|
/**
|
|
95
|
-
*
|
|
96
|
-
|
|
99
|
+
* Add projen subprojects to the packages array.
|
|
100
|
+
*/
|
|
101
|
+
for (const subproject of project.subprojects) {
|
|
102
|
+
// grab the relative out directory
|
|
103
|
+
packages.push((0, path_1.relative)(this.project.outdir, subproject.outdir));
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Add additional subproject paths provided via options.
|
|
107
|
+
* Use a Set to deduplicate paths to avoid including the same
|
|
108
|
+
* subproject multiple times.
|
|
109
|
+
*/
|
|
110
|
+
const packageSet = new Set(packages);
|
|
111
|
+
for (const subprojectPath of this.subprojects) {
|
|
112
|
+
packageSet.add(subprojectPath);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Convert back to array if we added any additional paths
|
|
97
116
|
*/
|
|
98
|
-
if (this.
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
packages.push((0, path_1.relative)(this.project.outdir, subproject.outdir));
|
|
102
|
-
}
|
|
117
|
+
if (this.subprojects.length > 0) {
|
|
118
|
+
packages.length = 0;
|
|
119
|
+
packages.push(...packageSet);
|
|
103
120
|
}
|
|
104
121
|
/**
|
|
105
122
|
* Set minimum release age.
|
|
@@ -135,4 +152,4 @@ class PnpmWorkspace extends projen_1.Component {
|
|
|
135
152
|
}
|
|
136
153
|
}
|
|
137
154
|
exports.PnpmWorkspace = PnpmWorkspace;
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG5wbS13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcG5wbS9wbnBtLXdvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBZ0M7QUFDaEMsbUNBQXNEO0FBR3REOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRztJQUNqQyxTQUFTLEVBQUUsQ0FBQztJQUNaLFFBQVEsRUFBRSxFQUFFO0lBQ1osU0FBUyxFQUFFLEdBQUc7SUFDZCxZQUFZLEVBQUUsR0FBRztJQUNqQixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxJQUFJO0lBQ2QsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQztBQXVFRixNQUFhLGFBQWMsU0FBUSxrQkFBUztJQUMxQzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQWdCO1FBQy9CLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUFzQixFQUFFLENBQ3JELENBQUMsWUFBWSxhQUFhLENBQUM7UUFDN0IsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQTJERCxZQUFZLE9BQWdCLEVBQUUsVUFBZ0MsRUFBRTtRQUM5RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZjs7Ozs7Ozs7b0ZBUTRFO1FBRTVFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2RTs7Ozs7Ozs7Ozs7V0FXRztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxxQkFBcUIsQ0FBQztRQUUxRDs7V0FFRztRQUNILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCO1lBQ2hELENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCO1lBQzNCLENBQUMsQ0FBQywyQkFBbUIsQ0FBQyxPQUFPLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsT0FBTyxDQUFDLHdCQUF3QjtZQUM5RCxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQztZQUMxRCxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXhCOztXQUVHO1FBQ0gsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxxQkFBcUI7WUFDeEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUI7WUFDL0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQOztXQUVHO1FBQ0gsSUFBSSxDQUFDLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyx3QkFBd0I7WUFDOUQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx3QkFBd0I7WUFDbEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQOztXQUVHO1FBQ0gsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV4Qzs7V0FFRztRQUNILElBQUksaUJBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDeEMsR0FBRyxFQUFFLEdBQUcsRUFBRTtnQkFDUixNQUFNLFVBQVUsR0FBUSxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7Z0JBRXJDOzs7bUJBR0c7Z0JBQ0gsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3hDLEtBQUssTUFBTSxVQUFVLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUM3QyxrQ0FBa0M7d0JBQ2xDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBQSxlQUFRLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ2xFLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRDs7bUJBRUc7Z0JBQ0gsVUFBVSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztnQkFFdEQ7O21CQUVHO2dCQUNILElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDN0MsVUFBVSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztnQkFDdEUsQ0FBQztnQkFFRDs7bUJBRUc7Z0JBQ0gsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUMxQyxVQUFVLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO2dCQUNoRSxDQUFDO2dCQUVEOzttQkFFRztnQkFDSCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzdDLFVBQVUsQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3JFLENBQUM7Z0JBRUQ7O21CQUVHO2dCQUNILE9BQU87b0JBQ0wsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzVDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUN6QyxDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTVMRCxzQ0E0TEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWxhdGl2ZSB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIFByb2plY3QsIFlhbWxGaWxlIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgVmFsdWVPZiB9IGZyb20gXCJ0eXBlLWZlc3RcIjtcblxuLyoqXG4gKiBQcmVkZWZpbmVkIG1pbmltdW0gcmVsZWFzZSBhZ2UgdmFsdWVzIGluIG1pbnV0ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBNSU1JTVVNX1JFTEVBU0VfQUdFID0ge1xuICBaRVJPX0RBWVM6IDAsXG4gIE9ORV9IT1VSOiA2MCxcbiAgU0lYX0hPVVJTOiAzNjAsXG4gIFRXRUxWRV9IT1VSUzogNzIwLFxuICBPTkVfREFZOiAxNDQwLFxuICBUV09fREFZUzogMjg4MCxcbiAgVEhSRUVfREFZUzogNDMyMCxcbiAgRk9VUl9EQVlTOiA1NzYwLFxuICBGSVZFX0RBWVM6IDcyMDAsXG4gIFNJWF9EQVlTOiA4NjQwLFxuICBPTkVfV0VFSzogMTAwODAsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBucG1Xb3Jrc3BhY2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbGVuYW1lIGZvciB0aGUgcG5wbSB3b3Jrc3BhY2UgZmlsZS4gVGhpcyBzaG91bGQgcHJvYmFibHkgbmV2ZXIgY2hhbmdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInBucG0td29ya3NwYWNlLnlhbWxcIlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRvIHJlZHVjZSB0aGUgcmlzayBvZiBpbnN0YWxsaW5nIGNvbXByb21pc2VkIHBhY2thZ2VzLCB5b3UgY2FuIGRlbGF5IHRoZVxuICAgKiBpbnN0YWxsYXRpb24gb2YgbmV3bHkgcHVibGlzaGVkIHZlcnNpb25zLiBJbiBtb3N0IGNhc2VzLCBtYWxpY2lvdXMgcmVsZWFzZXNcbiAgICogYXJlIGRpc2NvdmVyZWQgYW5kIHJlbW92ZWQgZnJvbSB0aGUgcmVnaXN0cnkgd2l0aGluIGFuIGhvdXIuXG4gICAqXG4gICAqIG1pbmltdW1SZWxlYXNlQWdlIGRlZmluZXMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIG1pbnV0ZXMgdGhhdCBtdXN0IHBhc3NcbiAgICogYWZ0ZXIgYSB2ZXJzaW9uIGlzIHB1Ymxpc2hlZCBiZWZvcmUgcG5wbSB3aWxsIGluc3RhbGwgaXQuIFRoaXMgYXBwbGllcyB0b1xuICAgKiBhbGwgZGVwZW5kZW5jaWVzLCBpbmNsdWRpbmcgdHJhbnNpdGl2ZSBvbmVzLlxuICAgKlxuICAgKiBOb3RlOiB0aGlzIHNob3VsZCBtYXRjaCBkZXBzVXBncmFkZU9wdGlvbnMuY29vbGRvd24gaW4gdGhlIHByb2plY3QgY29uZmlnLlxuICAgKlxuICAgKiBTZWU6IGh0dHBzOi8vcG5wbS5pby9zZXR0aW5ncyNtaW5pbXVtcmVsZWFzZWFnZVxuICAgKlxuICAgKiBAZGVmYXVsdCBNSU1JTVVNX1JFTEVBU0VfQUdFLk9ORV9EQVlcbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1SZWxlYXNlQWdlPzogVmFsdWVPZjx0eXBlb2YgTUlNSU1VTV9SRUxFQVNFX0FHRT47XG5cbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgbWluaW11bVJlbGVhc2VBZ2UgYnV0IG5lZWQgY2VydGFpbiBkZXBlbmRlbmNpZXMgdG8gYWx3YXlzXG4gICAqIGluc3RhbGwgdGhlIG5ld2VzdCB2ZXJzaW9uIGltbWVkaWF0ZWx5LCB5b3UgY2FuIGxpc3QgdGhlbSB1bmRlclxuICAgKiBtaW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGUuIFRoZSBleGNsdXNpb24gd29ya3MgYnkgcGFja2FnZSBuYW1lIGFuZCBhcHBsaWVzXG4gICAqIHRvIGFsbCB2ZXJzaW9ucyBvZiB0aGF0IHBhY2thZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZXhjbHVzaW9ucyAoZW1wdHkgYXJyYXkpXG4gICAqXG4gICAqIFNlZTogaHR0cHM6Ly9wbnBtLmlvL3NldHRpbmdzI21pbmltdW1yZWxlYXNlYWdlZXhjbHVkZVxuICAgKi9cbiAgcmVhZG9ubHkgbWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlPzogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhY2thZ2UgbmFtZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBleGVjdXRlIFwicHJlaW5zdGFsbFwiLFxuICAgKiBcImluc3RhbGxcIiwgYW5kL29yIFwicG9zdGluc3RhbGxcIiBzY3JpcHRzIGR1cmluZyBpbnN0YWxsYXRpb24uIE9ubHkgdGhlXG4gICAqIHBhY2thZ2VzIGxpc3RlZCBpbiB0aGlzIGFycmF5IHdpbGwgYmUgYWJsZSB0byBydW4gdGhvc2UgbGlmZWN5Y2xlIHNjcmlwdHMuXG4gICAqIElmIG9ubHlCdWlsdERlcGVuZGVuY2llc0ZpbGUgYW5kIG5ldmVyQnVpbHREZXBlbmRlbmNpZXMgYXJlIG9taXR0ZWQsIHRoaXNcbiAgICogY29uZmlndXJhdGlvbiBvcHRpb24gd2lsbCBkZWZhdWx0IHRvIGJsb2NraW5nIGFsbCBpbnN0YWxsIHNjcmlwdHMuXG4gICAqXG4gICAqIFlvdSBtYXkgcmVzdHJpY3QgYWxsb3dhbmNlcyB0byBzcGVjaWZpYyB2ZXJzaW9ucyAoYW5kIGxpc3RzIG9mIHZlcnNpb25zXG4gICAqIHVzaW5nIGEgZGlzanVuY3Rpb24gd2l0aCB8fCkuIFdoZW4gdmVyc2lvbnMgYXJlIHNwZWNpZmllZCwgb25seSB0aG9zZVxuICAgKiB2ZXJzaW9ucyBvZiB0aGUgcGFja2FnZSBtYXkgcnVuIGxpZmVjeWNsZSBzY3JpcHRzOlxuICAgKlxuICAgKiBTZWU6IGh0dHBzOi8vcG5wbS5pby9zZXR0aW5ncyNvbmx5YnVpbHRkZXBlbmRlbmNpZXNcbiAgICpcbiAgICogQGRlZmF1bHQgbm9uZSAoZW1wdHkgYXJyYXkpXG4gICAqL1xuICByZWFkb25seSBvbmx5QnVpbHREZXBlbmRlbmNpZXM/OiBBcnJheTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgcGFja2FnZSBuYW1lcyB0aGF0IGFyZSBOT1QgYWxsb3dlZCB0byBleGVjdXRlIFwicHJlaW5zdGFsbFwiLFxuICAgKiBcImluc3RhbGxcIiwgYW5kL29yIFwicG9zdGluc3RhbGxcIiBzY3JpcHRzIGR1cmluZyBpbnN0YWxsYXRpb24gYW5kIHdpbGwgbm90XG4gICAqIHdhcm4gb3IgYXNrIHRvIGJlIGV4ZWN1dGVkLlxuICAgKlxuICAgKiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIGhpZGUgdGhlIHdhcm5pbmcgYmVjYXVzZSB5b3Uga25vdyB0aGVcbiAgICogbGlmZWN5Y2xlIHNjcmlwdHMgYXJlIG5vdCBuZWVkZWQuXG4gICAqXG4gICAqIGh0dHBzOi8vcG5wbS5pby9zZXR0aW5ncyNpZ25vcmVkYnVpbHRkZXBlbmRlbmNpZXNcbiAgICpcbiAgICogQGRlZmF1bHQgbm9uZSAoZW1wdHkgYXJyYXkpXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVkQnVpbHREZXBlbmRlbmNpZXM/OiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQgY2xhc3MgUG5wbVdvcmtzcGFjZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIHBucG0gd29ya3NwYWNlIGNvbXBvbmVudCBvZiBhIHByb2plY3QuIElmIGl0IGRvZXMgbm90IGV4aXN0LFxuICAgKiByZXR1cm4gdW5kZWZpbmVkLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvamVjdFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihwcm9qZWN0OiBQcm9qZWN0KTogUG5wbVdvcmtzcGFjZSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNEZWZpbmVkID0gKGM6IENvbXBvbmVudCk6IGMgaXMgUG5wbVdvcmtzcGFjZSA9PlxuICAgICAgYyBpbnN0YW5jZW9mIFBucG1Xb3Jrc3BhY2U7XG4gICAgcmV0dXJuIHByb2plY3Qucm9vdC5jb21wb25lbnRzLmZpbmQoaXNEZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWxlbmFtZSBmb3IgdGhlIHBucG0gd29ya3NwYWNlIGZpbGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVG8gcmVkdWNlIHRoZSByaXNrIG9mIGluc3RhbGxpbmcgY29tcHJvbWlzZWQgcGFja2FnZXMsIHlvdSBjYW4gZGVsYXkgdGhlXG4gICAqIGluc3RhbGxhdGlvbiBvZiBuZXdseSBwdWJsaXNoZWQgdmVyc2lvbnMuIEluIG1vc3QgY2FzZXMsIG1hbGljaW91cyByZWxlYXNlc1xuICAgKiBhcmUgZGlzY292ZXJlZCBhbmQgcmVtb3ZlZCBmcm9tIHRoZSByZWdpc3RyeSB3aXRoaW4gYW4gaG91ci5cbiAgICpcbiAgICogbWluaW11bVJlbGVhc2VBZ2UgZGVmaW5lcyB0aGUgbWluaW11bSBudW1iZXIgb2YgbWludXRlcyB0aGF0IG11c3QgcGFzc1xuICAgKiBhZnRlciBhIHZlcnNpb24gaXMgcHVibGlzaGVkIGJlZm9yZSBwbnBtIHdpbGwgaW5zdGFsbCBpdC4gVGhpcyBhcHBsaWVzIHRvXG4gICAqIGFsbCBkZXBlbmRlbmNpZXMsIGluY2x1ZGluZyB0cmFuc2l0aXZlIG9uZXMuXG4gICAqXG4gICAqIE5vdGU6IHRoaXMgc2hvdWxkIG1hdGNoIGRlcHNVcGdyYWRlT3B0aW9ucy5jb29sZG93biBpbiB0aGUgcHJvamVjdCBjb25maWcuXG4gICAqXG4gICAqIFNlZTogaHR0cHM6Ly9wbnBtLmlvL3NldHRpbmdzI21pbmltdW1yZWxlYXNlYWdlXG4gICAqL1xuICBwdWJsaWMgbWluaW11bVJlbGVhc2VBZ2U6IFZhbHVlT2Y8dHlwZW9mIE1JTUlNVU1fUkVMRUFTRV9BR0U+O1xuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IG1pbmltdW1SZWxlYXNlQWdlIGJ1dCBuZWVkIGNlcnRhaW4gZGVwZW5kZW5jaWVzIHRvIGFsd2F5c1xuICAgKiBpbnN0YWxsIHRoZSBuZXdlc3QgdmVyc2lvbiBpbW1lZGlhdGVseSwgeW91IGNhbiBsaXN0IHRoZW0gdW5kZXJcbiAgICogbWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlLiBUaGUgZXhjbHVzaW9uIHdvcmtzIGJ5IHBhY2thZ2UgbmFtZSBhbmQgYXBwbGllc1xuICAgKiB0byBhbGwgdmVyc2lvbnMgb2YgdGhhdCBwYWNrYWdlLlxuICAgKlxuICAgKiBTZWU6IGh0dHBzOi8vcG5wbS5pby9zZXR0aW5ncyNtaW5pbXVtcmVsZWFzZWFnZWV4Y2x1ZGVcbiAgICovXG4gIHB1YmxpYyBtaW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGU6IEFycmF5PHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYWNrYWdlIG5hbWVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZXhlY3V0ZSBcInByZWluc3RhbGxcIixcbiAgICogXCJpbnN0YWxsXCIsIGFuZC9vciBcInBvc3RpbnN0YWxsXCIgc2NyaXB0cyBkdXJpbmcgaW5zdGFsbGF0aW9uLiBPbmx5IHRoZVxuICAgKiBwYWNrYWdlcyBsaXN0ZWQgaW4gdGhpcyBhcnJheSB3aWxsIGJlIGFibGUgdG8gcnVuIHRob3NlIGxpZmVjeWNsZSBzY3JpcHRzLlxuICAgKiBJZiBvbmx5QnVpbHREZXBlbmRlbmNpZXNGaWxlIGFuZCBuZXZlckJ1aWx0RGVwZW5kZW5jaWVzIGFyZSBvbWl0dGVkLCB0aGlzXG4gICAqIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdpbGwgZGVmYXVsdCB0byBibG9ja2luZyBhbGwgaW5zdGFsbCBzY3JpcHRzLlxuICAgKlxuICAgKiBZb3UgbWF5IHJlc3RyaWN0IGFsbG93YW5jZXMgdG8gc3BlY2lmaWMgdmVyc2lvbnMgKGFuZCBsaXN0cyBvZiB2ZXJzaW9uc1xuICAgKiB1c2luZyBhIGRpc2p1bmN0aW9uIHdpdGggfHwpLiBXaGVuIHZlcnNpb25zIGFyZSBzcGVjaWZpZWQsIG9ubHkgdGhvc2VcbiAgICogdmVyc2lvbnMgb2YgdGhlIHBhY2thZ2UgbWF5IHJ1biBsaWZlY3ljbGUgc2NyaXB0czpcbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vc2V0dGluZ3Mjb25seWJ1aWx0ZGVwZW5kZW5jaWVzXG4gICAqL1xuICBwdWJsaWMgb25seUJ1aWx0RGVwZW5kZW5jaWVzOiBBcnJheTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgcGFja2FnZSBuYW1lcyB0aGF0IGFyZSBOT1QgYWxsb3dlZCB0byBleGVjdXRlIFwicHJlaW5zdGFsbFwiLFxuICAgKiBcImluc3RhbGxcIiwgYW5kL29yIFwicG9zdGluc3RhbGxcIiBzY3JpcHRzIGR1cmluZyBpbnN0YWxsYXRpb24gYW5kIHdpbGwgbm90XG4gICAqIHdhcm4gb3IgYXNrIHRvIGJlIGV4ZWN1dGVkLlxuICAgKlxuICAgKiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIGhpZGUgdGhlIHdhcm5pbmcgYmVjYXVzZSB5b3Uga25vdyB0aGVcbiAgICogbGlmZWN5Y2xlIHNjcmlwdHMgYXJlIG5vdCBuZWVkZWQuXG4gICAqXG4gICAqIGh0dHBzOi8vcG5wbS5pby9zZXR0aW5ncyNpZ25vcmVkYnVpbHRkZXBlbmRlbmNpZXNcbiAgICovXG4gIHB1YmxpYyBpZ25vcmVkQnVpbHREZXBlbmRlbmNpZXM6IEFycmF5PHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogUG5wbVdvcmtzcGFjZU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogQ0xFQVIgcGFja2FnZSxqc29uXG4gICAgICpcbiAgICAgKiBJdCBhcHBlYXJzIHRoYXQgaWYgQU5ZIHBucG0gc2V0dGluZ3MgZXhpc3QgaW4gdGhlIHBhY2thZ2UuanNvbiBmaWxlLCBhbGxcbiAgICAgKiBvZiB0aGUgc2V0dGluZyBpbiB0aGUgcG5wbS13b3Jrc3BhY2UueWFtbCBmaWxlIGFyZSBpZ25vcmVkLiBzbyB3ZSBuZWVkIHRvXG4gICAgICogY2xlYXIgb3V0IGFueXRoaW5nIHRoYXQgd2FzIHBsYWNlZCBpbnRvIHRoZSBwYWNrYWdlLmpzb24gZmlsZS5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHByb2plY3QudHJ5RmluZE9iamVjdEZpbGUoXCJwYWNrYWdlLmpzb25cIik/LmFkZERlbGV0aW9uT3ZlcnJpZGUoXCJwbnBtXCIpO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqIFxuICAgICAqIFNldHVwIHBucG0td29ya3NwYWNlLnlhbWwgZmlsZS5cbiAgICAgKiBcbiAgICAgKiBOb3cgdGhhdCB0aGUgcGFja2FnZS5qc29uIGZpbGUgaXMgY2xlYXJlZCBvZiBhbnkgcG5wbSBzZXR0aW5ncywgd2UgY2FuXG4gICAgICogc2FmZWx5IHdyaXRlIHNldHRpbmdzIHRvIHRoZSBwbnBtLXdvcmtzcGFjZS55YW1sIGZpbGUuXG4gICAgICogXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiAgICAvKipcbiAgICAgKiBTZXQgZmlsZW5hbWUgdG8gZGVmYXVsdCBpZiBub3QgcHJvdmlkZWQuXG4gICAgICovXG4gICAgdGhpcy5maWxlTmFtZSA9IG9wdGlvbnMuZmlsZU5hbWUgPz8gXCJwbnBtLXdvcmtzcGFjZS55YW1sXCI7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgbWluaW11bSByZWxlYXNlIGFnZSB0byBkZWZhdWx0IGlmIG5vdCBwcm92aWRlZFxuICAgICAqL1xuICAgIHRoaXMubWluaW11bVJlbGVhc2VBZ2UgPSBvcHRpb25zLm1pbmltdW1SZWxlYXNlQWdlXG4gICAgICA/IG9wdGlvbnMubWluaW11bVJlbGVhc2VBZ2VcbiAgICAgIDogTUlNSU1VTV9SRUxFQVNFX0FHRS5PTkVfREFZO1xuXG4gICAgLyoqXG4gICAgICogU2V0IG1pbmltdW0gcmVsZWFzZSBhZ2UgZXhjbHVkZSB0byBlbXB0eSBhcnJheSBpZiBub3QgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLm1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZSA9IG9wdGlvbnMubWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlXG4gICAgICA/IFtcIkBjb2RlZHJpZnRlcnMvKlwiLCAuLi5vcHRpb25zLm1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZV1cbiAgICAgIDogW1wiQGNvZGVkcmlmdGVycy8qXCJdO1xuXG4gICAgLyoqXG4gICAgICogU2V0IG9ubHkgYnVpbHQgZGVwZW5kZW5jaWVzIHRvIGVtcHR5IGFycmF5IGlmIG5vdCBwcm92aWRlZFxuICAgICAqL1xuICAgIHRoaXMub25seUJ1aWx0RGVwZW5kZW5jaWVzID0gb3B0aW9ucy5vbmx5QnVpbHREZXBlbmRlbmNpZXNcbiAgICAgID8gb3B0aW9ucy5vbmx5QnVpbHREZXBlbmRlbmNpZXNcbiAgICAgIDogW107XG5cbiAgICAvKipcbiAgICAgKiBTZXQgaWdub3JlZCBidWlsdCBkZXBlbmRlbmNpZXMgdG8gZW1wdHkgYXJyYXkgaWYgbm90IHByb3ZpZGVkXG4gICAgICovXG4gICAgdGhpcy5pZ25vcmVkQnVpbHREZXBlbmRlbmNpZXMgPSBvcHRpb25zLmlnbm9yZWRCdWlsdERlcGVuZGVuY2llc1xuICAgICAgPyBvcHRpb25zLmlnbm9yZWRCdWlsdERlcGVuZGVuY2llc1xuICAgICAgOiBbXTtcblxuICAgIC8qKlxuICAgICAqIEluIGNhc2UgdGhhdCB0aGlzIGZpbGUgaXMgaW4gYSBwYWNrYWdlLCBkb24ndCBwYWNrYWdlIGl0LlxuICAgICAqL1xuICAgIHByb2plY3QuYWRkUGFja2FnZUlnbm9yZSh0aGlzLmZpbGVOYW1lKTtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIHBucG0gd29ya3NwYWNlIGZpbGVcbiAgICAgKi9cbiAgICBuZXcgWWFtbEZpbGUodGhpcy5wcm9qZWN0LCB0aGlzLmZpbGVOYW1lLCB7XG4gICAgICBvYmo6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcG5wbUNvbmZpZzogYW55ID0ge307XG4gICAgICAgIGNvbnN0IHBhY2thZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgYW55IHN1YnByb2plY3RzIGV4aXN0LCBvdXRwdXQgYWxsIHN1YnByb2plY3RzIGluIHRoZSB3b3Jrc3BhY2UgYXNcbiAgICAgICAgICogcGFja2FnZXMuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5wcm9qZWN0LnN1YnByb2plY3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHN1YnByb2plY3Qgb2YgcHJvamVjdC5zdWJwcm9qZWN0cykge1xuICAgICAgICAgICAgLy8gZ3JhYiB0aGUgcmVsYXRpdmUgb3V0IGRpcmVjdG9yeVxuICAgICAgICAgICAgcGFja2FnZXMucHVzaChyZWxhdGl2ZSh0aGlzLnByb2plY3Qub3V0ZGlyLCBzdWJwcm9qZWN0Lm91dGRpcikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZXQgbWluaW11bSByZWxlYXNlIGFnZS5cbiAgICAgICAgICovXG4gICAgICAgIHBucG1Db25maWcubWluaW11bVJlbGVhc2VBZ2UgPSB0aGlzLm1pbmltdW1SZWxlYXNlQWdlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZXQgbWluaW11bSByZWxlYXNlIGFnZSBleGNsdWRlIGlmIGFueSBhcmUgcHJvdmlkZWQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5taW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHBucG1Db25maWcubWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlID0gdGhpcy5taW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGU7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogU2V0IG9ubHkgYnVpbHQgZGVwZW5kZW5jaWVzIGlmIGFueSBhcmUgcHJvdmlkZWQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5vbmx5QnVpbHREZXBlbmRlbmNpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHBucG1Db25maWcub25seUJ1aWx0RGVwZW5kZW5jaWVzID0gdGhpcy5vbmx5QnVpbHREZXBlbmRlbmNpZXM7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogU2V0IGlnbm9yZWQgYnVpbHQgZGVwZW5kZW5jaWVzIGlmIGFueSBhcmUgcHJvdmlkZWQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5pZ25vcmVkQnVpbHREZXBlbmRlbmNpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHBucG1Db25maWcuaWdub3JlQnVpbHREZXBlbmRlbmNpZXMgPSB0aGlzLmlnbm9yZWRCdWlsdERlcGVuZGVuY2llcztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZXR1cm4gdGhlIGZpbmFsIHBucG0gY29uZmlnIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uKHBhY2thZ2VzLmxlbmd0aCA+IDAgPyB7IHBhY2thZ2VzIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHBucG1Db25maWcgPyB7IC4uLnBucG1Db25maWcgfSA6IHt9KSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG5wbS13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcG5wbS9wbnBtLXdvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBZ0M7QUFDaEMsbUNBQXNEO0FBR3REOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRztJQUNqQyxTQUFTLEVBQUUsQ0FBQztJQUNaLFFBQVEsRUFBRSxFQUFFO0lBQ1osU0FBUyxFQUFFLEdBQUc7SUFDZCxZQUFZLEVBQUUsR0FBRztJQUNqQixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxJQUFJO0lBQ2QsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQztBQWdGRixNQUFhLGFBQWMsU0FBUSxrQkFBUztJQUMxQzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQWdCO1FBQy9CLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUFzQixFQUFFLENBQ3JELENBQUMsWUFBWSxhQUFhLENBQUM7UUFDN0IsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQWtFRCxZQUFZLE9BQWdCLEVBQUUsVUFBZ0MsRUFBRTtRQUM5RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZjs7Ozs7Ozs7b0ZBUTRFO1FBRTVFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2RTs7Ozs7Ozs7Ozs7V0FXRztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxxQkFBcUIsQ0FBQztRQUUxRDs7V0FFRztRQUNILElBQUksQ0FBQyxp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QUFPO29CQUNMLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM1QyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDekMsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF2TkQsc0NBdU5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVsYXRpdmUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9qZWN0LCBZYW1sRmlsZSB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IFZhbHVlT2YgfSBmcm9tIFwidHlwZS1mZXN0XCI7XG5cbi8qKlxuICogUHJlZGVmaW5lZCBtaW5pbXVtIHJlbGVhc2UgYWdlIHZhbHVlcyBpbiBtaW51dGVzLlxuICovXG5leHBvcnQgY29uc3QgTUlNSU1VTV9SRUxFQVNFX0FHRSA9IHtcbiAgWkVST19EQVlTOiAwLFxuICBPTkVfSE9VUjogNjAsXG4gIFNJWF9IT1VSUzogMzYwLFxuICBUV0VMVkVfSE9VUlM6IDcyMCxcbiAgT05FX0RBWTogMTQ0MCxcbiAgVFdPX0RBWVM6IDI4ODAsXG4gIFRIUkVFX0RBWVM6IDQzMjAsXG4gIEZPVVJfREFZUzogNTc2MCxcbiAgRklWRV9EQVlTOiA3MjAwLFxuICBTSVhfREFZUzogODY0MCxcbiAgT05FX1dFRUs6IDEwMDgwLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBQbnBtV29ya3NwYWNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBGaWxlbmFtZSBmb3IgdGhlIHBucG0gd29ya3NwYWNlIGZpbGUuIFRoaXMgc2hvdWxkIHByb2JhYmx5IG5ldmVyIGNoYW5nZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJwbnBtLXdvcmtzcGFjZS55YW1sXCJcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUbyByZWR1Y2UgdGhlIHJpc2sgb2YgaW5zdGFsbGluZyBjb21wcm9taXNlZCBwYWNrYWdlcywgeW91IGNhbiBkZWxheSB0aGVcbiAgICogaW5zdGFsbGF0aW9uIG9mIG5ld2x5IHB1Ymxpc2hlZCB2ZXJzaW9ucy4gSW4gbW9zdCBjYXNlcywgbWFsaWNpb3VzIHJlbGVhc2VzXG4gICAqIGFyZSBkaXNjb3ZlcmVkIGFuZCByZW1vdmVkIGZyb20gdGhlIHJlZ2lzdHJ5IHdpdGhpbiBhbiBob3VyLlxuICAgKlxuICAgKiBtaW5pbXVtUmVsZWFzZUFnZSBkZWZpbmVzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBtaW51dGVzIHRoYXQgbXVzdCBwYXNzXG4gICAqIGFmdGVyIGEgdmVyc2lvbiBpcyBwdWJsaXNoZWQgYmVmb3JlIHBucG0gd2lsbCBpbnN0YWxsIGl0LiBUaGlzIGFwcGxpZXMgdG9cbiAgICogYWxsIGRlcGVuZGVuY2llcywgaW5jbHVkaW5nIHRyYW5zaXRpdmUgb25lcy5cbiAgICpcbiAgICogTm90ZTogdGhpcyBzaG91bGQgbWF0Y2ggZGVwc1VwZ3JhZGVPcHRpb25zLmNvb2xkb3duIGluIHRoZSBwcm9qZWN0IGNvbmZpZy5cbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vc2V0dGluZ3MjbWluaW11bXJlbGVhc2VhZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgTUlNSU1VTV9SRUxFQVNFX0FHRS5PTkVfREFZXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtUmVsZWFzZUFnZT86IFZhbHVlT2Y8dHlwZW9mIE1JTUlNVU1fUkVMRUFTRV9BR0U+O1xuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IG1pbmltdW1SZWxlYXNlQWdlIGJ1dCBuZWVkIGNlcnRhaW4gZGVwZW5kZW5jaWVzIHRvIGFsd2F5c1xuICAgKiBpbnN0YWxsIHRoZSBuZXdlc3QgdmVyc2lvbiBpbW1lZGlhdGVseSwgeW91IGNhbiBsaXN0IHRoZW0gdW5kZXJcbiAgICogbWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlLiBUaGUgZXhjbHVzaW9uIHdvcmtzIGJ5IHBhY2thZ2UgbmFtZSBhbmQgYXBwbGllc1xuICAgKiB0byBhbGwgdmVyc2lvbnMgb2YgdGhhdCBwYWNrYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGV4Y2x1c2lvbnMgKGVtcHR5IGFycmF5KVxuICAgKlxuICAgKiBTZWU6IGh0dHBzOi8vcG5wbS5pby9zZXR0aW5ncyNtaW5pbXVtcmVsZWFzZWFnZWV4Y2x1ZGVcbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZT86IEFycmF5PHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYWNrYWdlIG5hbWVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZXhlY3V0ZSBcInByZWluc3RhbGxcIixcbiAgICogXCJpbnN0YWxsXCIsIGFuZC9vciBcInBvc3RpbnN0YWxsXCIgc2NyaXB0cyBkdXJpbmcgaW5zdGFsbGF0aW9uLiBPbmx5IHRoZVxuICAgKiBwYWNrYWdlcyBsaXN0ZWQgaW4gdGhpcyBhcnJheSB3aWxsIGJlIGFibGUgdG8gcnVuIHRob3NlIGxpZmVjeWNsZSBzY3JpcHRzLlxuICAgKiBJZiBvbmx5QnVpbHREZXBlbmRlbmNpZXNGaWxlIGFuZCBuZXZlckJ1aWx0RGVwZW5kZW5jaWVzIGFyZSBvbWl0dGVkLCB0aGlzXG4gICAqIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdpbGwgZGVmYXVsdCB0byBibG9ja2luZyBhbGwgaW5zdGFsbCBzY3JpcHRzLlxuICAgKlxuICAgKiBZb3UgbWF5IHJlc3RyaWN0IGFsbG93YW5jZXMgdG8gc3BlY2lmaWMgdmVyc2lvbnMgKGFuZCBsaXN0cyBvZiB2ZXJzaW9uc1xuICAgKiB1c2luZyBhIGRpc2p1bmN0aW9uIHdpdGggfHwpLiBXaGVuIHZlcnNpb25zIGFyZSBzcGVjaWZpZWQsIG9ubHkgdGhvc2VcbiAgICogdmVyc2lvbnMgb2YgdGhlIHBhY2thZ2UgbWF5IHJ1biBsaWZlY3ljbGUgc2NyaXB0czpcbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vc2V0dGluZ3Mjb25seWJ1aWx0ZGVwZW5kZW5jaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmUgKGVtcHR5IGFycmF5KVxuICAgKi9cbiAgcmVhZG9ubHkgb25seUJ1aWx0RGVwZW5kZW5jaWVzPzogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhY2thZ2UgbmFtZXMgdGhhdCBhcmUgTk9UIGFsbG93ZWQgdG8gZXhlY3V0ZSBcInByZWluc3RhbGxcIixcbiAgICogXCJpbnN0YWxsXCIsIGFuZC9vciBcInBvc3RpbnN0YWxsXCIgc2NyaXB0cyBkdXJpbmcgaW5zdGFsbGF0aW9uIGFuZCB3aWxsIG5vdFxuICAgKiB3YXJuIG9yIGFzayB0byBiZSBleGVjdXRlZC5cbiAgICpcbiAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3Ugd2FudCB0byBoaWRlIHRoZSB3YXJuaW5nIGJlY2F1c2UgeW91IGtub3cgdGhlXG4gICAqIGxpZmVjeWNsZSBzY3JpcHRzIGFyZSBub3QgbmVlZGVkLlxuICAgKlxuICAgKiBodHRwczovL3BucG0uaW8vc2V0dGluZ3MjaWdub3JlZGJ1aWx0ZGVwZW5kZW5jaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmUgKGVtcHR5IGFycmF5KVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlZEJ1aWx0RGVwZW5kZW5jaWVzPzogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdWJwcm9qZWN0IHBhdGhzIHRvIGluY2x1ZGUgaW4gdGhlIHdvcmtzcGFjZSBwYWNrYWdlcyBhcnJheS5cbiAgICogVGhlc2Ugd2lsbCBiZSBjb21iaW5lZCB3aXRoIGFueSBzdWJwcm9qZWN0cyBkaXNjb3ZlcmVkIHZpYSBwcm9qZW4nc1xuICAgKiBwcm9qZWN0LnN1YnByb2plY3RzIHByb3BlcnR5LiBQYXRocyBzaG91bGQgYmUgcmVsYXRpdmUgdG8gdGhlIHByb2plY3Qgcm9vdC5cbiAgICpcbiAgICogQGRlZmF1bHQgbm9uZSAoZW1wdHkgYXJyYXkpXG4gICAqL1xuICByZWFkb25seSBzdWJwcm9qZWN0cz86IEFycmF5PHN0cmluZz47XG59XG5cbmV4cG9ydCBjbGFzcyBQbnBtV29ya3NwYWNlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIEdldCB0aGUgcG5wbSB3b3Jrc3BhY2UgY29tcG9uZW50IG9mIGEgcHJvamVjdC4gSWYgaXQgZG9lcyBub3QgZXhpc3QsXG4gICAqIHJldHVybiB1bmRlZmluZWQuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9qZWN0XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IFByb2plY3QpOiBQbnBtV29ya3NwYWNlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0RlZmluZWQgPSAoYzogQ29tcG9uZW50KTogYyBpcyBQbnBtV29ya3NwYWNlID0+XG4gICAgICBjIGluc3RhbmNlb2YgUG5wbVdvcmtzcGFjZTtcbiAgICByZXR1cm4gcHJvamVjdC5yb290LmNvbXBvbmVudHMuZmluZChpc0RlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbGVuYW1lIGZvciB0aGUgcG5wbSB3b3Jrc3BhY2UgZmlsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUbyByZWR1Y2UgdGhlIHJpc2sgb2YgaW5zdGFsbGluZyBjb21wcm9taXNlZCBwYWNrYWdlcywgeW91IGNhbiBkZWxheSB0aGVcbiAgICogaW5zdGFsbGF0aW9uIG9mIG5ld2x5IHB1Ymxpc2hlZCB2ZXJzaW9ucy4gSW4gbW9zdCBjYXNlcywgbWFsaWNpb3VzIHJlbGVhc2VzXG4gICAqIGFyZSBkaXNjb3ZlcmVkIGFuZCByZW1vdmVkIGZyb20gdGhlIHJlZ2lzdHJ5IHdpdGhpbiBhbiBob3VyLlxuICAgKlxuICAgKiBtaW5pbXVtUmVsZWFzZUFnZSBkZWZpbmVzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBtaW51dGVzIHRoYXQgbXVzdCBwYXNzXG4gICAqIGFmdGVyIGEgdmVyc2lvbiBpcyBwdWJsaXNoZWQgYmVmb3JlIHBucG0gd2lsbCBpbnN0YWxsIGl0LiBUaGlzIGFwcGxpZXMgdG9cbiAgICogYWxsIGRlcGVuZGVuY2llcywgaW5jbHVkaW5nIHRyYW5zaXRpdmUgb25lcy5cbiAgICpcbiAgICogTm90ZTogdGhpcyBzaG91bGQgbWF0Y2ggZGVwc1VwZ3JhZGVPcHRpb25zLmNvb2xkb3duIGluIHRoZSBwcm9qZWN0IGNvbmZpZy5cbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vc2V0dGluZ3MjbWluaW11bXJlbGVhc2VhZ2VcbiAgICovXG4gIHB1YmxpYyBtaW5pbXVtUmVsZWFzZUFnZTogVmFsdWVPZjx0eXBlb2YgTUlNSU1VTV9SRUxFQVNFX0FHRT47XG5cbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgbWluaW11bVJlbGVhc2VBZ2UgYnV0IG5lZWQgY2VydGFpbiBkZXBlbmRlbmNpZXMgdG8gYWx3YXlzXG4gICAqIGluc3RhbGwgdGhlIG5ld2VzdCB2ZXJzaW9uIGltbWVkaWF0ZWx5LCB5b3UgY2FuIGxpc3QgdGhlbSB1bmRlclxuICAgKiBtaW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGUuIFRoZSBleGNsdXNpb24gd29ya3MgYnkgcGFja2FnZSBuYW1lIGFuZCBhcHBsaWVzXG4gICAqIHRvIGFsbCB2ZXJzaW9ucyBvZiB0aGF0IHBhY2thZ2UuXG4gICAqXG4gICAqIFNlZTogaHR0cHM6Ly9wbnBtLmlvL3NldHRpbmdzI21pbmltdW1yZWxlYXNlYWdlZXhjbHVkZVxuICAgKi9cbiAgcHVibGljIG1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZTogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhY2thZ2UgbmFtZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBleGVjdXRlIFwicHJlaW5zdGFsbFwiLFxuICAgKiBcImluc3RhbGxcIiwgYW5kL29yIFwicG9zdGluc3RhbGxcIiBzY3JpcHRzIGR1cmluZyBpbnN0YWxsYXRpb24uIE9ubHkgdGhlXG4gICAqIHBhY2thZ2VzIGxpc3RlZCBpbiB0aGlzIGFycmF5IHdpbGwgYmUgYWJsZSB0byBydW4gdGhvc2UgbGlmZWN5Y2xlIHNjcmlwdHMuXG4gICAqIElmIG9ubHlCdWlsdERlcGVuZGVuY2llc0ZpbGUgYW5kIG5ldmVyQnVpbHREZXBlbmRlbmNpZXMgYXJlIG9taXR0ZWQsIHRoaXNcbiAgICogY29uZmlndXJhdGlvbiBvcHRpb24gd2lsbCBkZWZhdWx0IHRvIGJsb2NraW5nIGFsbCBpbnN0YWxsIHNjcmlwdHMuXG4gICAqXG4gICAqIFlvdSBtYXkgcmVzdHJpY3QgYWxsb3dhbmNlcyB0byBzcGVjaWZpYyB2ZXJzaW9ucyAoYW5kIGxpc3RzIG9mIHZlcnNpb25zXG4gICAqIHVzaW5nIGEgZGlzanVuY3Rpb24gd2l0aCB8fCkuIFdoZW4gdmVyc2lvbnMgYXJlIHNwZWNpZmllZCwgb25seSB0aG9zZVxuICAgKiB2ZXJzaW9ucyBvZiB0aGUgcGFja2FnZSBtYXkgcnVuIGxpZmVjeWNsZSBzY3JpcHRzOlxuICAgKlxuICAgKiBTZWU6IGh0dHBzOi8vcG5wbS5pby9zZXR0aW5ncyNvbmx5YnVpbHRkZXBlbmRlbmNpZXNcbiAgICovXG4gIHB1YmxpYyBvbmx5QnVpbHREZXBlbmRlbmNpZXM6IEFycmF5PHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYWNrYWdlIG5hbWVzIHRoYXQgYXJlIE5PVCBhbGxvd2VkIHRvIGV4ZWN1dGUgXCJwcmVpbnN0YWxsXCIsXG4gICAqIFwiaW5zdGFsbFwiLCBhbmQvb3IgXCJwb3N0aW5zdGFsbFwiIHNjcmlwdHMgZHVyaW5nIGluc3RhbGxhdGlvbiBhbmQgd2lsbCBub3RcbiAgICogd2FybiBvciBhc2sgdG8gYmUgZXhlY3V0ZWQuXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZnVsIHdoZW4geW91IHdhbnQgdG8gaGlkZSB0aGUgd2FybmluZyBiZWNhdXNlIHlvdSBrbm93IHRoZVxuICAgKiBsaWZlY3ljbGUgc2NyaXB0cyBhcmUgbm90IG5lZWRlZC5cbiAgICpcbiAgICogaHR0cHM6Ly9wbnBtLmlvL3NldHRpbmdzI2lnbm9yZWRidWlsdGRlcGVuZGVuY2llc1xuICAgKi9cbiAgcHVibGljIGlnbm9yZWRCdWlsdERlcGVuZGVuY2llczogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdWJwcm9qZWN0IHBhdGhzIHRvIGluY2x1ZGUgaW4gdGhlIHdvcmtzcGFjZSBwYWNrYWdlcyBhcnJheS5cbiAgICogVGhlc2Ugd2lsbCBiZSBjb21iaW5lZCB3aXRoIGFueSBzdWJwcm9qZWN0cyBkaXNjb3ZlcmVkIHZpYSBwcm9qZW4nc1xuICAgKiBwcm9qZWN0LnN1YnByb2plY3RzIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIHN1YnByb2plY3RzOiBBcnJheTxzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IFBucG1Xb3Jrc3BhY2VPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIENMRUFSIHBhY2thZ2UsanNvblxuICAgICAqXG4gICAgICogSXQgYXBwZWFycyB0aGF0IGlmIEFOWSBwbnBtIHNldHRpbmdzIGV4aXN0IGluIHRoZSBwYWNrYWdlLmpzb24gZmlsZSwgYWxsXG4gICAgICogb2YgdGhlIHNldHRpbmcgaW4gdGhlIHBucG0td29ya3NwYWNlLnlhbWwgZmlsZSBhcmUgaWdub3JlZC4gc28gd2UgbmVlZCB0b1xuICAgICAqIGNsZWFyIG91dCBhbnl0aGluZyB0aGF0IHdhcyBwbGFjZWQgaW50byB0aGUgcGFja2FnZS5qc29uIGZpbGUuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBwcm9qZWN0LnRyeUZpbmRPYmplY3RGaWxlKFwicGFja2FnZS5qc29uXCIpPy5hZGREZWxldGlvbk92ZXJyaWRlKFwicG5wbVwiKTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiBcbiAgICAgKiBTZXR1cCBwbnBtLXdvcmtzcGFjZS55YW1sIGZpbGUuXG4gICAgICogXG4gICAgICogTm93IHRoYXQgdGhlIHBhY2thZ2UuanNvbiBmaWxlIGlzIGNsZWFyZWQgb2YgYW55IHBucG0gc2V0dGluZ3MsIHdlIGNhblxuICAgICAqIHNhZmVseSB3cml0ZSBzZXR0aW5ncyB0byB0aGUgcG5wbS13b3Jrc3BhY2UueWFtbCBmaWxlLlxuICAgICAqIFxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4gICAgLyoqXG4gICAgICogU2V0IGZpbGVuYW1lIHRvIGRlZmF1bHQgaWYgbm90IHByb3ZpZGVkLlxuICAgICAqL1xuICAgIHRoaXMuZmlsZU5hbWUgPSBvcHRpb25zLmZpbGVOYW1lID8/IFwicG5wbS13b3Jrc3BhY2UueWFtbFwiO1xuXG4gICAgLyoqXG4gICAgICogU2V0IG1pbmltdW0gcmVsZWFzZSBhZ2UgdG8gZGVmYXVsdCBpZiBub3QgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLm1pbmltdW1SZWxlYXNlQWdlID0gb3B0aW9ucy5taW5pbXVtUmVsZWFzZUFnZVxuICAgICAgPyBvcHRpb25zLm1pbmltdW1SZWxlYXNlQWdlXG4gICAgICA6IE1JTUlNVU1fUkVMRUFTRV9BR0UuT05FX0RBWTtcblxuICAgIC8qKlxuICAgICAqIFNldCBtaW5pbXVtIHJlbGVhc2UgYWdlIGV4Y2x1ZGUgdG8gZW1wdHkgYXJyYXkgaWYgbm90IHByb3ZpZGVkXG4gICAgICovXG4gICAgdGhpcy5taW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGUgPSBvcHRpb25zLm1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZVxuICAgICAgPyBbXCJAY29kZWRyaWZ0ZXJzLypcIiwgLi4ub3B0aW9ucy5taW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGVdXG4gICAgICA6IFtcIkBjb2RlZHJpZnRlcnMvKlwiXTtcblxuICAgIC8qKlxuICAgICAqIFNldCBvbmx5IGJ1aWx0IGRlcGVuZGVuY2llcyB0byBlbXB0eSBhcnJheSBpZiBub3QgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLm9ubHlCdWlsdERlcGVuZGVuY2llcyA9IG9wdGlvbnMub25seUJ1aWx0RGVwZW5kZW5jaWVzXG4gICAgICA/IG9wdGlvbnMub25seUJ1aWx0RGVwZW5kZW5jaWVzXG4gICAgICA6IFtdO1xuXG4gICAgLyoqXG4gICAgICogU2V0IGlnbm9yZWQgYnVpbHQgZGVwZW5kZW5jaWVzIHRvIGVtcHR5IGFycmF5IGlmIG5vdCBwcm92aWRlZFxuICAgICAqL1xuICAgIHRoaXMuaWdub3JlZEJ1aWx0RGVwZW5kZW5jaWVzID0gb3B0aW9ucy5pZ25vcmVkQnVpbHREZXBlbmRlbmNpZXNcbiAgICAgID8gb3B0aW9ucy5pZ25vcmVkQnVpbHREZXBlbmRlbmNpZXNcbiAgICAgIDogW107XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZSBhZGRpdGlvbmFsIHN1YnByb2plY3QgcGF0aHMgaWYgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLnN1YnByb2plY3RzID0gb3B0aW9ucy5zdWJwcm9qZWN0cyA/PyBbXTtcblxuICAgIC8qKlxuICAgICAqIEluIGNhc2UgdGhhdCB0aGlzIGZpbGUgaXMgaW4gYSBwYWNrYWdlLCBkb24ndCBwYWNrYWdlIGl0LlxuICAgICAqL1xuICAgIHByb2plY3QuYWRkUGFja2FnZUlnbm9yZSh0aGlzLmZpbGVOYW1lKTtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIHBucG0gd29ya3NwYWNlIGZpbGVcbiAgICAgKi9cbiAgICBuZXcgWWFtbEZpbGUodGhpcy5wcm9qZWN0LCB0aGlzLmZpbGVOYW1lLCB7XG4gICAgICBvYmo6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcG5wbUNvbmZpZzogYW55ID0ge307XG4gICAgICAgIGNvbnN0IHBhY2thZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQWRkIHByb2plbiBzdWJwcm9qZWN0cyB0byB0aGUgcGFja2FnZXMgYXJyYXkuXG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGNvbnN0IHN1YnByb2plY3Qgb2YgcHJvamVjdC5zdWJwcm9qZWN0cykge1xuICAgICAgICAgIC8vIGdyYWIgdGhlIHJlbGF0aXZlIG91dCBkaXJlY3RvcnlcbiAgICAgICAgICBwYWNrYWdlcy5wdXNoKHJlbGF0aXZlKHRoaXMucHJvamVjdC5vdXRkaXIsIHN1YnByb2plY3Qub3V0ZGlyKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQWRkIGFkZGl0aW9uYWwgc3VicHJvamVjdCBwYXRocyBwcm92aWRlZCB2aWEgb3B0aW9ucy5cbiAgICAgICAgICogVXNlIGEgU2V0IHRvIGRlZHVwbGljYXRlIHBhdGhzIHRvIGF2b2lkIGluY2x1ZGluZyB0aGUgc2FtZVxuICAgICAgICAgKiBzdWJwcm9qZWN0IG11bHRpcGxlIHRpbWVzLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgcGFja2FnZVNldCA9IG5ldyBTZXQocGFja2FnZXMpO1xuICAgICAgICBmb3IgKGNvbnN0IHN1YnByb2plY3RQYXRoIG9mIHRoaXMuc3VicHJvamVjdHMpIHtcbiAgICAgICAgICBwYWNrYWdlU2V0LmFkZChzdWJwcm9qZWN0UGF0aCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQ29udmVydCBiYWNrIHRvIGFycmF5IGlmIHdlIGFkZGVkIGFueSBhZGRpdGlvbmFsIHBhdGhzXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5zdWJwcm9qZWN0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcGFja2FnZXMubGVuZ3RoID0gMDtcbiAgICAgICAgICBwYWNrYWdlcy5wdXNoKC4uLnBhY2thZ2VTZXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCBtaW5pbXVtIHJlbGVhc2UgYWdlLlxuICAgICAgICAgKi9cbiAgICAgICAgcG5wbUNvbmZpZy5taW5pbXVtUmVsZWFzZUFnZSA9IHRoaXMubWluaW11bVJlbGVhc2VBZ2U7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCBtaW5pbXVtIHJlbGVhc2UgYWdlIGV4Y2x1ZGUgaWYgYW55IGFyZSBwcm92aWRlZC5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLm1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcG5wbUNvbmZpZy5taW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGUgPSB0aGlzLm1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZXQgb25seSBidWlsdCBkZXBlbmRlbmNpZXMgaWYgYW55IGFyZSBwcm92aWRlZC5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLm9ubHlCdWlsdERlcGVuZGVuY2llcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcG5wbUNvbmZpZy5vbmx5QnVpbHREZXBlbmRlbmNpZXMgPSB0aGlzLm9ubHlCdWlsdERlcGVuZGVuY2llcztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZXQgaWdub3JlZCBidWlsdCBkZXBlbmRlbmNpZXMgaWYgYW55IGFyZSBwcm92aWRlZC5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLmlnbm9yZWRCdWlsdERlcGVuZGVuY2llcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcG5wbUNvbmZpZy5pZ25vcmVCdWlsdERlcGVuZGVuY2llcyA9IHRoaXMuaWdub3JlZEJ1aWx0RGVwZW5kZW5jaWVzO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybiB0aGUgZmluYWwgcG5wbSBjb25maWcgb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi4ocGFja2FnZXMubGVuZ3RoID4gMCA/IHsgcGFja2FnZXMgfSA6IHt9KSxcbiAgICAgICAgICAuLi4ocG5wbUNvbmZpZyA/IHsgLi4ucG5wbUNvbmZpZyB9IDoge30pLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -271,8 +271,11 @@ class AwsDeployWorkflow extends projen_1.Component {
|
|
|
271
271
|
const branchFilterCondition = this.buildBranchFilterCondition(target.branches);
|
|
272
272
|
// Combine with the existing build mutation check
|
|
273
273
|
const jobCondition = branchFilterCondition
|
|
274
|
-
?
|
|
275
|
-
|
|
274
|
+
? [
|
|
275
|
+
"${{ !needs.build.outputs.self_mutation_happened }}",
|
|
276
|
+
`(${branchFilterCondition})`,
|
|
277
|
+
].join(" && ")
|
|
278
|
+
: "${{ !needs.build.outputs.self_mutation_happened }}";
|
|
276
279
|
this.buildWorkflow.addPostBuildJob(deployJobName, {
|
|
277
280
|
name: `Deploy ${this.project.name} ${target.awsStageType}/${target.awsEnvironmentType}/${target.account}/${target.region}`,
|
|
278
281
|
needs: [
|
|
@@ -306,4 +309,4 @@ class AwsDeployWorkflow extends projen_1.Component {
|
|
|
306
309
|
}
|
|
307
310
|
}
|
|
308
311
|
exports.AwsDeployWorkflow = AwsDeployWorkflow;
|
|
309
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlcGxveS13b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93b3JrZmxvd3MvYXdzLWRlcGxveS13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFFbkMsNENBQXVFO0FBQ3ZFLDhDQUEyQztBQUMzQyx1RUFBMkU7QUFFM0UsZ0NBQTZDO0FBQzdDLHdFQU1zQztBQUV0QywwQ0FBOEM7QUFDOUMsb0NBQXdEO0FBQ3hELDBDQUFzQztBQUV6QixRQUFBLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztBQWtDOUMsTUFBYSxpQkFBa0IsU0FBUSxrQkFBUztJQUN2QyxNQUFNLENBQUMsRUFBRSxDQUNkLE9BQTRCLEVBQzVCLGFBQTRCO1FBRTVCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUEwQixFQUFFLENBQ3pELENBQUMsWUFBWSxpQkFBaUIsSUFBSSxDQUFDLENBQUMsYUFBYSxLQUFLLGFBQWEsQ0FBQztRQUN0RSxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUF1Q0QsWUFDUyxPQUE0QixFQUNuQyxVQUFpQyxFQUFFO1FBRW5DLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhSLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBNUJyQzs7OztXQUlHO1FBQ0ksdUJBQWtCLEdBQXVCLDRDQUFvQixDQUFDLE9BQU8sQ0FBQztRQXdQdEUsY0FBUyxHQUFHLEdBQW1CLEVBQUU7WUFDdEMsT0FBTztnQkFDTDtvQkFDRSxJQUFJLEVBQUUsWUFBWTtvQkFDbEIsSUFBSSxFQUFFLHVCQUF1QjtvQkFDN0IsSUFBSSxFQUFFO3dCQUNKLENBQUMsY0FBYyxDQUFDLEVBQUUsa0JBQU8sQ0FBQyxjQUFjO3FCQUN6QztvQkFDRCxnRUFBZ0U7b0JBQ2hFLGNBQWMsRUFBRSxDQUFDO2lCQUNsQjthQUNGLENBQUM7UUFDSixDQUFDLENB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TUFBTSxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsa0JBQWtCLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUMxSCxLQUFLLEVBQUU7b0JBQ0wsT0FBTztvQkFDUCxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDbkMsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLENBQUMsQ0FBQztpQkFDSDtnQkFDRCxNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBQ3pCLFdBQVcsRUFBRTtvQkFDWCxRQUFRLEVBQUUsK0JBQWEsQ0FBQyxJQUFJO29CQUM1QixPQUFPLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO2lCQUM3QjtnQkFDRCxXQUFXLEVBQUUsYUFBYTtnQkFDMUIsRUFBRSxFQUFFLFlBQVk7Z0JBQ2hCLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNyQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFpSEQsYUFBYTtRQUNYOztXQUVHO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxpQkFBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO2dCQUNuQyxJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixHQUFHLEVBQUUsY0FBYyx5QkFBaUIsRUFBRTthQUN2QyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQTdZRCw4Q0E2WUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSBcInByb2plbi9saWIvYXdzY2RrXCI7XG5pbXBvcnQgeyBCdWlsZFdvcmtmbG93LCBCdWlsZFdvcmtmbG93T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2J1aWxkXCI7XG5pbXBvcnQgeyBHaXRIdWIgfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWJcIjtcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24sIEpvYlN0ZXAgfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCI7XG5pbXBvcnQgeyBWYWx1ZU9mIH0gZnJvbSBcInR5cGUtZmVzdFwiO1xuaW1wb3J0IHsgQXdzRGVwbG95bWVudENvbmZpZyB9IGZyb20gXCIuLi9hd3NcIjtcbmltcG9ydCB7XG4gIEFXU19FTlZJUk9OTUVOVF9UWVBFLFxuICBBV1NfU1RBR0VfVFlQRSxcbiAgQXdzRGVwbG95bWVudFRhcmdldCxcbiAgQXdzRW52aXJvbm1lbnRUeXBlLFxuICBBd3NTdGFnZVR5cGUsXG59IGZyb20gXCIuLi9hd3MvYXdzLWRlcGxveW1lbnQtdGFyZ2V0XCI7XG5pbXBvcnQgeyBHaXRCcmFuY2ggfSBmcm9tIFwiLi4vZ2l0XCI7XG5pbXBvcnQgeyBNb25vcmVwb1Byb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdHNcIjtcbmltcG9ydCB7IFJPT1RfQ0lfVEFTS19OQU1FLCBUdXJib1JlcG8gfSBmcm9tIFwiLi4vdHVyYm9cIjtcbmltcG9ydCB7IFZFUlNJT04gfSBmcm9tIFwiLi4vdmVyc2lvbnNcIjtcblxuZXhwb3J0IGNvbnN0IFBST0RfREVQTE9ZX05BTUUgPSBcInByb2QtZGVwbG95XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95V29ya2Zsb3dPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoYXQgdHlwZSBvZiBkZXBsb3kgaXMgdGhpcyB3b3JrZmxvdyBmb3I/XG4gICAqXG4gICAqIEBkZWZhdWx0IEFXU19TVEFHRV9UWVBFLkRFVlxuICAgKi9cbiAgcmVhZG9ubHkgYXdzU3RhZ2VUeXBlPzogVmFsdWVPZjx0eXBlb2YgQVdTX1NUQUdFX1RZUEU+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbGx5IGZlZWQgYSBsaXN0IG9mIHRhcmdldHMgdG8gZGVwbG95IHRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBkaXNjb3ZlcnMgYWxsIHRhcmdldHMgdXNpbmcgc3RhZ2VUeXBlXG4gICAqL1xuICByZWFkb25seSBhd3NEZXBsb3ltZW50VGFyZ2V0cz86IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+O1xuXG4gIC8qKlxuICAgKiBFeGlzdGluZyB3b3JrZmxvdywgdXNlZnVsIGlmIHdlJ3JlIHRhY2tpbmcgZGVwbG95bWVudHMgb250byBhbiBleGlzdGluZ1xuICAgKiBidWlsZCB3b3JrZmxvd1xuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRXb3JrZmxvdz86IEJ1aWxkV29ya2Zsb3c7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHRoZSBidWlsZCB3b3JrZmxvdywgaWYgbm8gYnVpbGQgd29ya2Zsb3cgaXMgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBidWlsZFdvcmtmbG93T3B0aW9ucz86IFBhcnRpYWw8QnVpbGRXb3JrZmxvd09wdGlvbnM+O1xuXG4gIC8qKlxuICAgKiBQcm9qZWN0cyB0aGF0IHNob3VsZCBjb21wbGV0ZSBkZXBsb3ltZW50IGJlZm9yZSB0aGlzIG9uZSBzdGFydHMuXG4gICAqL1xuICByZWFkb25seSBkZXBsb3lBZnRlclRhcmdldHM/OiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0Pjtcbn1cblxuZXhwb3J0IGNsYXNzIEF3c0RlcGxveVdvcmtmbG93IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHN0YXRpYyBvZihcbiAgICBwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLFxuICAgIGJ1aWxkV29ya2Zsb3c6IEJ1aWxkV29ya2Zsb3csXG4gICk6IEF3c0RlcGxveVdvcmtmbG93IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0RlZmluZWQgPSAoYzogQ29tcG9uZW50KTogYyBpcyBBd3NEZXBsb3lXb3JrZmxvdyA9PlxuICAgICAgYyBpbnN0YW5jZW9mIEF3c0RlcGxveVdvcmtmbG93ICYmIGMuYnVpbGRXb3JrZmxvdyA9PT0gYnVpbGRXb3JrZmxvdztcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNEZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBwcm9qZWN0IGZvciB0aGlzIGRlcGxveSB3b3JrZmxvdy4gTXVzdCBiZSBhIG1vbm9yZXBvIHByb2plY3QuXG4gICAqL1xuICBwcml2YXRlIHJvb3RQcm9qZWN0OiBNb25vcmVwb1Byb2plY3Q7XG5cbiAgLyoqXG4gICAqIFdoYXQgdHlwZSBvZiBkZXBsb3kgaXMgdGhpcyB3b3JrZmxvdyBmb3I/XG4gICAqL1xuICBwdWJsaWMgYXdzU3RhZ2VUeXBlOiBBd3NTdGFnZVR5cGU7XG5cbiAgLyoqXG4gICAqIEFXUyBlbnZpcm9ubWVudCB0eXBlLCBzdWNoIGFzIHByaW1hcnkgb3Igc2Vjb25kYXJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAncHJpbWFyeScgKHRoaXMgaXMgdGhlIG9ubHkgdHlwZSBzdXBwb3J0ZWQgY3VycmVudGx5KVxuICAgKi9cbiAgcHVibGljIGF3c0Vudmlyb25tZW50VHlwZTogQXdzRW52aXJvbm1lbnRUeXBlID0gQVdTX0VOVklST05NRU5UX1RZUEUuUFJJTUFSWTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgdGFyZ2V0cyB0byBkZXBsb3kgdG8uXG4gICAqL1xuICByZWFkb25seSBhd3NEZXBsb3ltZW50VGFyZ2V0czogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD47XG5cbiAgLyoqXG4gICAqIEhvbGQgdGhlIGRlcGxveSB3b3JrZmxvdyBzbyB3ZSBjYW4gYWRkIHRvIGl0IGluIHByZVN5bnRoXG4gICAqL1xuICBwdWJsaWMgYnVpbGRXb3JrZmxvdzogQnVpbGRXb3JrZmxvdztcblxuICAvKipcbiAgICogV2FzIHRoaXMgd29ya2Zsb3cgY3JlYXRlZCBleHRlcm5hbGx5P1xuICAgKi9cbiAgcHVibGljIGV4dGVybmFsV29ya2Zsb3c6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFByb2plY3RzIHRoYXQgc2hvdWxkIGNvbXBsZXRlIGRlcGxveW1lbnQgYmVmb3JlIHRoaXMgb25lIHN0YXJ0cy5cbiAgICovXG4gIHB1YmxpYyBkZXBsb3lBZnRlclRhcmdldHM6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLFxuICAgIG9wdGlvbnM6IERlcGxveVdvcmtmbG93T3B0aW9ucyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIFJvb3QgcHJvamVjdCBjaGVja1xuICAgICAqXG4gICAgICogRGV0ZWN0IHRoZSByb290IHByb2plY3QgYW5kIGVuc3VyZSBpdCdzIG9mIHR5cGUgTW9ub3JlcG9Qcm9qZWN0LlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgaWYgKCEocHJvamVjdC5yb290IGluc3RhbmNlb2YgTW9ub3JlcG9Qcm9qZWN0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkF3c0RlcGxveVdvcmtmbG93IHJlcXVpcmVzIHRoZSByb290IHByb2plY3QgdG8gYmUgYSBNb25vcmVwb1Byb2plY3RcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5yb290UHJvamVjdCA9IHByb2plY3Qucm9vdDtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIEdpdEh1YiBDaGVja1xuICAgICAqXG4gICAgICogTWFrZSBzdXJlIGdpdGh1YiBjb25maWcgaXMgYWN0aXZlIGluIHRoZSBwcm9qZWN0LiBUaGlzIGlzIHRvIGVuc3VyZSBhbGxcbiAgICAgKiB3b3JrZmxvd3Mgd2lsbCBiZSBvdXRwdXQgcHJvcGVybHkgZHVyaW5nIHN5bnRoLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgZ2l0aHViID0gR2l0SHViLm9mKHRoaXMucm9vdFByb2plY3QpO1xuXG4gICAgaWYgKCFnaXRodWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJBd3NEZXBsb3lXb3JrZmxvdyByZXF1aXJlcyBhIEdpdEh1YiBjb21wb25lbnQgaW4gdGhlIHJvb3QgcHJvamVjdFwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBUdXJib1JlcG8gQ2hlY2tcbiAgICAgKlxuICAgICAqIElmIHR1cmJvIGlzIGVuYWJsZWQsIHdlIG1heSBuZWVkIHRoZSBvcHRpb25zIGxhdGVyIGluIHRoaXMgZmlsZS5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGNvbnN0IHR1cmJvID0gVHVyYm9SZXBvLm9mKHRoaXMucm9vdFByb2plY3QpO1xuICAgIGNvbnN0IGJ1aWxkV29ya2Zsb3dPcHRpb25zOiBQYXJ0aWFsPEJ1aWxkV29ya2Zsb3dPcHRpb25zPiA9XG4gICAgICB0dXJibz8ucmVtb3RlQ2FjaGVPcHRpb25zXG4gICAgICAgID8gVHVyYm9SZXBvLmJ1aWxkV29ya2Zsb3dPcHRpb25zKHR1cmJvLnJlbW90ZUNhY2hlT3B0aW9ucylcbiAgICAgICAgOiB7fTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIFdvcmtmbG93IERlcGxveSBUeXBlXG4gICAgICpcbiAgICAgKiBXaGF0IHR5cGUgb2YgZW52aXJvbm1lbnRzIGFyZSB3ZSBkZXBsb3lpbmcgaW50bz8gV2UnbGwgZGVmYXVsdCB0byBkZXYgdG9cbiAgICAgKiBiZSBzYWZlLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgdGhpcy5hd3NTdGFnZVR5cGUgPSBvcHRpb25zLmF3c1N0YWdlVHlwZSA/PyBBV1NfU1RBR0VfVFlQRS5ERVY7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBXb3JrZmxvdyBEZXBsb3kgVGFyZ2V0c1xuICAgICAqXG4gICAgICogVXNlIHByb3ZpZGVkIHRhcmdldHMgb3IgZGlzY292ZXIgdGhlbSBiYXNlZCBvbiB0aGUgZGVwbG95IHR5cGUuIE9ubHlcbiAgICAgKiBpbmNsdWRlIHRhcmdldHMgdGhhdCBhcmUgbWFya2VkIGZvciBDSS9DRC5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMgPVxuICAgICAgb3B0aW9ucy5hd3NEZXBsb3ltZW50VGFyZ2V0cyA/P1xuICAgICAgQXdzRGVwbG95bWVudENvbmZpZy5vZihwcm9qZWN0KT8uYXdzRGVwbG95bWVudFRhcmdldHMuZmlsdGVyKFxuICAgICAgICAodGFyZ2V0KSA9PlxuICAgICAgICAgIHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IHRoaXMuYXdzU3RhZ2VUeXBlICYmIHRhcmdldC5jaURlcGxveW1lbnQsXG4gICAgICApID8/XG4gICAgICBbXTtcblxuICAgIHRoaXMuZGVwbG95QWZ0ZXJUYXJnZXRzID0gb3B0aW9ucy5kZXBsb3lBZnRlclRhcmdldHMgPz8gW107XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBCdWlsZCBXb3JrZmxvdyBPcHRpb25zXG4gICAgICpcbiAgICAgKiBDYW4ndCB1c2UgdGhlIG9wdGlvbnMgaWYgYW4gZXhpc3Rpbmcgd29ya2Zsb3cgd2FzIHBhc3NlZCBpbi5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGlmIChvcHRpb25zLmJ1aWxkV29ya2Zsb3cgJiYgb3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkNhbm5vdCBwcm92aWRlIGJvdGggYnVpbGRXb3JrZmxvdyBhbmQgYnVpbGRXb3JrZmxvd09wdGlvbnNcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5leHRlcm5hbFdvcmtmbG93ID0gISFvcHRpb25zLmJ1aWxkV29ya2Zsb3c7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBCdWlsZCBXb3JrZmxvd1xuICAgICAqXG4gICAgICogQ3JlYXRlIGEgd29ya2Zsb3cgZWl0aGVyIGJhc2VkIG9uIGlucHV0IG9yIGZyb20gc2NyYXRjaC5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHRoaXMuYnVpbGRXb3JrZmxvdyA9XG4gICAgICBvcHRpb25zLmJ1aWxkV29ya2Zsb3cgPz9cbiAgICAgIG5ldyBCdWlsZFdvcmtmbG93KHRoaXMucm9vdFByb2plY3QsIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5hbWUgYmFzZWQgb24gcHJvamVjdCBhbmQgZW52aXJvbm1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICBuYW1lOlxuICAgICAgICAgIG9wdGlvbnMuYnVpbGRXb3JrZmxvd09wdGlvbnM/Lm5hbWUgPz9cbiAgICAgICAgICBbXG4gICAgICAgICAgICBcImRlcGxveVwiLFxuICAgICAgICAgICAgcHJvamVjdC5uYW1lLFxuICAgICAgICAgICAgdGhpcy5hd3NTdGFnZVR5cGUsXG4gICAgICAgICAgICB0aGlzLmF3c0Vudmlyb25tZW50VHlwZSxcbiAgICAgICAgICBdLmpvaW4oXCItXCIpLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVc2UgdGhlIHJvb3QgcHJvamVjdHMgYnVpbGQgdGFzay5cbiAgICAgICAgICovXG4gICAgICAgIGJ1aWxkVGFzazogdGhpcy5yb290UHJvamVjdC5idWlsZFRhc2ssXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZSBwdXNoIHRyaWdnZXJzIGJhc2VkIG4gdGhlIGJyYW5jaCBjb25maWcgZm9yIGVhY2ggZW52aXJvbm1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICB3b3JrZmxvd1RyaWdnZXJzOiB7XG4gICAgICAgICAgcHVzaDoge1xuICAgICAgICAgICAgYnJhbmNoZXM6IFtcbiAgICAgICAgICAgICAgLi4udGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5mbGF0TWFwKCh0KSA9PlxuICAgICAgICAgICAgICAgIHQuYnJhbmNoZXMubWFwKChiKSA9PiBiLmJyYW5jaCksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge30sXG4gICAgICAgICAgLi4ub3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucz8ud29ya2Zsb3dUcmlnZ2VycyxcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogTmV2ZXIgYWxsb3cgbXV0YXRpb25zIGZvciBkZXBsb3lzLiBUaGlzIHNob3VsZCBoYXZlIGJlZW4gaGFuZGxlZFxuICAgICAgICAgKiBkdXJpbmcgYnVpbGQuXG4gICAgICAgICAqL1xuICAgICAgICBtdXRhYmxlQnVpbGQ6IGZhbHNlLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEbyB0aGlzIHByZS1tZXJnZSBvZiBwZXJtaXNzaW9ucyBhbmQgYnVpbGQgc3RlcHNcbiAgICAgICAgICovXG4gICAgICAgIC4uLm9wdGlvbnMuYnVpbGRXb3JrZmxvd09wdGlvbnMsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNvbWUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgcmVxdWlyZWQgd2hlbiB0dXJibydzIGludm9sdmVkLlxuICAgICAgICAgKi9cbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICAuLi5vcHRpb25zLmJ1aWxkV29ya2Zsb3dPcHRpb25zPy5wZXJtaXNzaW9ucyxcbiAgICAgICAgICAuLi5idWlsZFdvcmtmbG93T3B0aW9ucz8ucGVybWlzc2lvbnMsXG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFzc2VtYmxlIGFsbCBwcmUtYnVpbGQgc3RlcHNcbiAgICAgICAgICovXG4gICAgICAgIHByZUJ1aWxkU3RlcHM6IFtcbiAgICAgICAgICAuLi50aGlzLnNldHVwUG5wbSgpLFxuICAgICAgICAgIC4uLnRoaXMuc2V0dXBOb2RlKCksXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJJbnN0YWxsIGRlcGVuZGVuY2llc1wiLFxuICAgICAgICAgICAgcnVuOiBcInBucG0gaSAtLW5vLWZyb3plbi1sb2NrZmlsZVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uKG9wdGlvbnMuYnVpbGRXb3JrZmxvd09wdGlvbnM/LnByZUJ1aWxkU3RlcHMgPz8gW10pLFxuICAgICAgICAgIC4uLihidWlsZFdvcmtmbG93T3B0aW9ucz8ucHJlQnVpbGRTdGVwcyA/PyBbXSksXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIEFkZCBEZXBsb3ltZW50cyB0byB3b3JrZmxvd1xuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgYnVpbGRKb2JOYW1lID0gKHRhcmdldDogQXdzRGVwbG95bWVudFRhcmdldCkgPT4ge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgdGFyZ2V0LmF3c1N0YWdlVHlwZSxcbiAgICAgICAgdGFyZ2V0LmF3c0Vudmlyb25tZW50VHlwZSxcbiAgICAgICAgXCJkZXBsb3lcIixcbiAgICAgICAgdGFyZ2V0LnByb2plY3QubmFtZSxcbiAgICAgICAgdGFyZ2V0LmFjY291bnQsXG4gICAgICAgIHRhcmdldC5yZWdpb24sXG4gICAgICBdLmpvaW4oXCItXCIpO1xuICAgIH07XG5cbiAgICB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4ge1xuICAgICAgY29uc3QgZGVwbG95Sm9iTmFtZSA9IGJ1aWxkSm9iTmFtZSh0YXJnZXQpO1xuXG4gICAgICAvLyBCdWlsZCB0aGUgYnJhbmNoIGZpbHRlciBjb25kaXRpb25cbiAgICAgIGNvbnN0IGJyYW5jaEZpbHRlckNvbmRpdGlvbiA9IHRoaXMuYnVpbGRCcmFuY2hGaWx0ZXJDb25kaXRpb24oXG4gICAgICAgIHRhcmdldC5icmFuY2hlcyxcbiAgICAgICk7XG5cbiAgICAgIC8vIENvbWJpbmUgd2l0aCB0aGUgZXhpc3RpbmcgYnVpbGQgbXV0YXRpb24gY2hlY2tcbiAgICAgIGNvbnN0IGpvYkNvbmRpdGlvbiA9IGJyYW5jaEZpbHRlckNvbmRpdGlvblxuICAgICAgICA/IGAhbmVlZHMuYnVpbGQub3V0cHV0cy5zZWxmX211dGF0aW9uX2hhcHBlbmVkICYmICgke2JyYW5jaEZpbHRlckNvbmRpdGlvbn0pYFxuICAgICAgICA6IGAhbmVlZHMuYnVpbGQub3V0cHV0cy5zZWxmX211dGF0aW9uX2hhcHBlbmVkYDtcblxuICAgICAgdGhpcy5idWlsZFdvcmtmbG93LmFkZFBvc3RCdWlsZEpvYihkZXBsb3lKb2JOYW1lLCB7XG4gICAgICAgIG5hbWU6IGBEZXBsb3kgJHt0aGlzLnByb2plY3QubmFtZX0gJHt0YXJnZXQuYXdzU3RhZ2VUeXBlfS8ke3RhcmdldC5hd3NFbnZpcm9ubWVudFR5cGV9LyR7dGFyZ2V0LmFjY291bnR9LyR7dGFyZ2V0LnJlZ2lvbn1gLFxuICAgICAgICBuZWVkczogW1xuICAgICAgICAgIFwiYnVpbGRcIixcbiAgICAgICAgICAuLi50aGlzLmRlcGxveUFmdGVyVGFyZ2V0cy5tYXAoKHApID0+IHtcbiAgICAgICAgICAgIHJldHVybiBidWlsZEpvYk5hbWUocCk7XG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIHJ1bnNPbjogW1widWJ1bnR1LWxhdGVzdFwiXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICAgIGlkVG9rZW46IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbmN1cnJlbmN5OiBkZXBsb3lKb2JOYW1lLFxuICAgICAgICBpZjogam9iQ29uZGl0aW9uLFxuICAgICAgICBzdGVwczogWy4uLnRoaXMuZGVwbG95U3RlcHModGFyZ2V0KV0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXR1cE5vZGUgPSAoKTogQXJyYXk8Sm9iU3RlcD4gPT4ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgTm9kZVwiLFxuICAgICAgICB1c2VzOiBcImFjdGlvbnMvc2V0dXAtbm9kZUB2NFwiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgW1wibm9kZS12ZXJzaW9uXCJdOiBWRVJTSU9OLk5PREVfV09SS0ZMT1dTLFxuICAgICAgICB9LFxuICAgICAgICAvLyBvY2Nhc2lvbmFsbHkgdGhpcyBzdGVwIGZhaWxzIGR1ZSB0byBpbnRlcm5hbCBpc3N1ZXMgYXQgZ2l0aHViXG4gICAgICAgIHRpbWVvdXRNaW51dGVzOiAxLFxuICAgICAgfSxcbiAgICBdO1xuICB9O1xuXG4gIHB1YmxpYyBzZXR1cFBucG0gPSAoKTogQXJyYXk8Sm9iU3RlcD4gPT4ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgUE5QTVwiLFxuICAgICAgICB1c2VzOiBcInBucG0vYWN0aW9uLXNldHVwQHYzXCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICB2ZXJzaW9uOiBWRVJTSU9OLlBOUE1fVkVSU0lPTixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcblxuICAvKipcbiAgICogQnVpbGRzIGEgR2l0SHViIEFjdGlvbnMgY29uZGl0aW9uIHN0cmluZyB0aGF0IGNoZWNrcyBpZiB0aGUgY3VycmVudCBicmFuY2hcbiAgICogbWF0Y2hlcyBhbnkgb2YgdGhlIHByb3ZpZGVkIGJyYW5jaCBwYXR0ZXJucy5cbiAgICpcbiAgICogSGFuZGxlcyBib3RoIGV4YWN0IG1hdGNoZXMgKGUuZy4sIFwibWFpblwiKSBhbmQgZ2xvYiBwYXR0ZXJucyAoZS5nLiwgXCJmZWF0dXJlLypcIikuXG4gICAqIEFsc28gYWxsb3dzIHdvcmtmbG93X2Rpc3BhdGNoIChtYW51YWwgcnVucykgdG8gcHJvY2VlZC5cbiAgICpcbiAgICogQHBhcmFtIGJyYW5jaGVzIEFycmF5IG9mIEdpdEJyYW5jaCBvYmplY3RzIHdpdGggYnJhbmNoIHBhdHRlcm5zXG4gICAqIEByZXR1cm5zIENvbmRpdGlvbiBzdHJpbmcgb3IgZW1wdHkgc3RyaW5nIGlmIG5vIGJyYW5jaGVzIHByb3ZpZGVkXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkQnJhbmNoRmlsdGVyQ29uZGl0aW9uID0gKGJyYW5jaGVzOiBBcnJheTxHaXRCcmFuY2g+KTogc3RyaW5nID0+IHtcbiAgICBpZiAoIWJyYW5jaGVzIHx8IGJyYW5jaGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZGl0aW9uczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgLy8gQWx3YXlzIGFsbG93IHdvcmtmbG93X2Rpc3BhdGNoIChtYW51YWwgd29ya2Zsb3cgcnVucylcbiAgICBjb25kaXRpb25zLnB1c2goXCJnaXRodWIuZXZlbnRfbmFtZSA9PSAnd29ya2Zsb3dfZGlzcGF0Y2gnXCIpO1xuXG4gICAgZm9yIChjb25zdCBicmFuY2ggb2YgYnJhbmNoZXMpIHtcbiAgICAgIGNvbnN0IGJyYW5jaFBhdHRlcm4gPSBicmFuY2guYnJhbmNoO1xuXG4gICAgICAvLyBIYW5kbGUgZ2xvYiBwYXR0ZXJucyAoZS5nLiwgXCJmZWF0dXJlLypcIilcbiAgICAgIGlmIChicmFuY2hQYXR0ZXJuLmluY2x1ZGVzKFwiKlwiKSkge1xuICAgICAgICAvLyBSZXBsYWNlICogd2l0aCBwcm9wZXIgc3RhcnRzV2l0aCBjaGVja1xuICAgICAgICBjb25zdCBwcmVmaXggPSBicmFuY2hQYXR0ZXJuLnJlcGxhY2UoL1xcKi4qJC8sIFwiXCIpO1xuICAgICAgICBjb25kaXRpb25zLnB1c2goYHN0YXJ0c1dpdGgoZ2l0aHViLnJlZiwgJ3JlZnMvaGVhZHMvJHtwcmVmaXh9JylgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEV4YWN0IG1hdGNoXG4gICAgICAgIGNvbmRpdGlvbnMucHVzaChgZ2l0aHViLnJlZiA9PSAncmVmcy9oZWFkcy8ke2JyYW5jaFBhdHRlcm59J2ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENvbWJpbmUgYWxsIGNvbmRpdGlvbnMgd2l0aCBPUlxuICAgIHJldHVybiBjb25kaXRpb25zLmpvaW4oXCIgfHwgXCIpO1xuICB9O1xuXG4gIHByaXZhdGUgZGVwbG95U3RlcHMgPSAodGFyZ2V0OiBBd3NEZXBsb3ltZW50VGFyZ2V0KTogQXJyYXk8Sm9iU3RlcD4gPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGF3c1N0YWdlVHlwZSxcbiAgICAgIGF3c0Vudmlyb25tZW50VHlwZSxcbiAgICAgIGFjY291bnQsXG4gICAgICByZWdpb24sXG4gICAgICBjaURlcGxveW1lbnRDb25maWcsXG4gICAgICBhd3NEZXBsb3ltZW50Q29uZmlnLFxuICAgIH0gPSB0YXJnZXQ7XG4gICAgY29uc3QgeyByb2xlQXJuLCBzdGFja1BhdHRlcm4gfSA9IGNpRGVwbG95bWVudENvbmZpZyA/PyB7fTtcbiAgICBjb25zdCB7IHJvb3RDZGtPdXQgfSA9IGF3c0RlcGxveW1lbnRDb25maWc7XG5cbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5zZXR1cFBucG0oKSxcbiAgICAgIC4uLnRoaXMuc2V0dXBOb2RlKCksXG5cbiAgICAgIC8qKlxuICAgICAgICogSW5zdGFsbCBDREtcbiAgICAgICAqL1xuICAgICAge1xuICAgICAgICBuYW1lOiBcIkluc3RhbGwgQ0RLXCIsXG4gICAgICAgIHJ1bjogXCJwbnBtIGFkZCBhd3MtY2RrXCIsXG4gICAgICB9LFxuXG4gICAgICAvKipcbiAgICAgICAqIENvbmZpZ3VyZSBBV1MgY3JlZHMuXG4gICAgICAgKi9cbiAgICAgIHtcbiAgICAgICAgbmFtZTogYEFXUyBDcmVkcyAke2F3c1N0YWdlVHlwZX0vJHthd3NFbnZpcm9ubWVudFR5cGV9LyR7YWNjb3VudH0vJHtyZWdpb259YCxcbiAgICAgICAgdXNlczogXCJhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzQHY0XCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICBcInJvbGUtdG8tYXNzdW1lXCI6IHJvbGVBcm4sXG4gICAgICAgICAgXCJhd3MtcmVnaW9uXCI6IHJlZ2lvbixcbiAgICAgICAgICBcInJvbGUtZHVyYXRpb24tc2Vjb25kc1wiOiA5MDAsIC8vIDE1IG1pbnV0ZXNcbiAgICAgICAgfSxcbiAgICAgIH0sXG5cbiAgICAgIC8qKlxuICAgICAgICogUnVuIENESyBEZXBsb3lcbiAgICAgICAqL1xuICAgICAge1xuICAgICAgICBuYW1lOiBgRGVwbG95ICR7YXdzU3RhZ2VUeXBlfS8ke2F3c0Vudmlyb25tZW50VHlwZX0vJHthY2NvdW50fS8ke3JlZ2lvbn1gLFxuICAgICAgICBydW46IGBwbnBtIGRseCBhd3MtY2RrIGRlcGxveSAtLW5vLXJvbGxiYWNrIC0tcmVxdWlyZS1hcHByb3ZhbD1uZXZlciAtLWFwcD0ke3Jvb3RDZGtPdXR9IFwiJHtzdGFja1BhdHRlcm59XCJgLFxuICAgICAgfSxcbiAgICBdO1xuICB9O1xuXG4gIHByZVN5bnRoZXNpemUoKTogdm9pZCB7XG4gICAgLyoqXG4gICAgICogRW5zdXJlIHR1cmJvIGlzIGFjdGl2ZSB3aGVuIG5lZWRlZC5cbiAgICAgKi9cbiAgICBpZiAoIXRoaXMuZXh0ZXJuYWxXb3JrZmxvdyAmJiBUdXJib1JlcG8ub2YodGhpcy5yb290UHJvamVjdCkpIHtcbiAgICAgIHRoaXMuYnVpbGRXb3JrZmxvdy5hZGRQb3N0QnVpbGRTdGVwcyh7XG4gICAgICAgIG5hbWU6IFwiQnVpbGQgU3ViIFByb2plY3RzXCIsXG4gICAgICAgIHJ1bjogYG5weCBwcm9qZW4gJHtST09UX0NJX1RBU0tfTkFNRX1gLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3VwZXIucHJlU3ludGhlc2l6ZSgpO1xuICB9XG59XG4iXX0=
|
|
312
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlcGxveS13b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93b3JrZmxvd3MvYXdzLWRlcGxveS13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFFbkMsNENBQXVFO0FBQ3ZFLDhDQUEyQztBQUMzQyx1RUFBMkU7QUFFM0UsZ0NBQTZDO0FBQzdDLHdFQU1zQztBQUV0QywwQ0FBOEM7QUFDOUMsb0NBQXdEO0FBQ3hELDBDQUFzQztBQUV6QixRQUFBLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztBQWtDOUMsTUFBYSxpQkFBa0IsU0FBUSxrQkFBUztJQUN2QyxNQUFNLENBQUMsRUFBRSxDQUNkLE9BQTRCLEVBQzVCLGFBQTRCO1FBRTVCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUEwQixFQUFFLENBQ3pELENBQUMsWUFBWSxpQkFBaUIsSUFBSSxDQUFDLENBQUMsYUFBYSxLQUFLLGFBQWEsQ0FBQztRQUN0RSxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUF1Q0QsWUFDUyxPQUE0QixFQUNuQyxVQUFpQyxFQUFFO1FBRW5DLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhSLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBNUJyQzs7OztXQUlHO1FBQ0ksdUJBQWtCLEdBQXVCLDRDQUFvQixDQUFDLE9BQU8sQ0FBQztRQTJQdEUsY0FBUyxHQUFHLEdBQW1CLEVBQUU7WUFDdEMsT0FBTztnQkFDTDtvQkFDRSxJQUFJLEVBQUUsWUFBWTtvQkFDbEIsSUFBSSxFQUFFLHVCQUF1QjtvQkFDN0IsSUFBSSxFQUFFO3dCQUNKLENBQUMsY0FBYyxDQUFDLEVBQUUsa0JBQU8sQ0FBQyxjQUFjO3FCQUN6QztvQkFDRCxnRUFBZ0U7b0JBQ2hFLGNBQWMsRUFBRSxDQUFDO2lCQUNsQjthQUNGLENBQUM7UUFDSixDQUFDLENBQUM7UUFFSyxjQUFTLEdBQUcsR0FBbUIsRUFBRTtZQUN0QyxPQUFPO2dCQUNMO29CQUNFLElBQUksRUFBRSxZQUFZO29CQUNsQixJQUFJLEVBQUUsc0JBQXNCO29CQUM1QixJQUFJLEVBQUU7d0JBQ0osT0FBTyxFQUFFLGtCQUFPLENBQUMsWUFBWTtxQkFDOUI7aUJBQ0Y7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7OztXQVNHO1FBQ0ssK0JBQTBCLEdBQUcsQ0FBQyxRQUEwQixFQUFVLEVBQUU7WUFDMUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFFRCxNQUFNLFVBQVUsR0FBa0IsRUFBRSxDQUFDO1lBRXJDLHdEQUF3RDtZQUN4RCxVQUFVLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7WUFFNUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFFcEMsMkNBQTJDO2dCQUMzQyxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDaEMseUNBQXlDO29CQUN6QyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDbEQsVUFBVSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsTUFBTSxJQUFJLENBQUMsQ0FBQztnQkFDcEUsQ0FBQztxQkFBTSxDQUFDO29CQUNOLGNBQWM7b0JBQ2QsVUFBVSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsYUFBYSxHQUFHLENBQUMsQ0FBQztnQkFDakUsQ0FBQztZQUNILENBQUM7WUFFRCxpQ0FBaUM7WUFDakMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQztRQUVNLGdCQUFXLEdBQUcsQ0FBQyxNQUEyQixFQUFrQixFQUFFO1lBQ3BFLE1BQU0sRUFDSixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLE9BQU8sRUFDUCxNQUFNLEVBQ04sa0JBQWtCLEVBQ2xCLG1CQUFtQixHQUNwQixHQUFHLE1BQU0sQ0FBQztZQUNYLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsa0JBQWtCLElBQUksRUFBRSxDQUFDO1lBQzNELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQztZQUUzQyxPQUFPO2dCQUNMLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbkIsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUVuQjs7bUJBRUc7Z0JBQ0g7b0JBQ0UsSUFBSSxFQUFFLGFBQWE7b0JBQ25CLEdBQUcsRUFBRSxrQkFBa0I7aUJBQ3hCO2dCQUVEOzttQkFFRztnQkFDSDtvQkFDRSxJQUFJLEVBQUUsYUFBYSxZQUFZLElBQUksa0JBQWtCLElBQUksT0FBTyxJQUFJLE1BQU0sRUFBRTtvQkFDNUUsSUFBSSxFQUFFLDBDQUEwQztvQkFDaEQsSUFBSSxFQUFFO3dCQUNKLGdCQUFnQixFQUFFLE9BQU87d0JBQ3pCLFlBQVksRUFBRSxNQUFNO3dCQUNwQix1QkFBdUIsRUFBRSxHQUFHLEVBQUUsYUFBYTtxQkFDNUM7aUJBQ0Y7Z0JBRUQ7O21CQUVHO2dCQUNIO29CQUNFLElBQUksRUFBRSxVQUFVLFlBQVksSUFBSSxrQkFBa0IsSUFBSSxPQUFPLElBQUksTUFBTSxFQUFFO29CQUN6RSxHQUFHLEVBQUUsd0VBQXdFLFVBQVUsS0FBSyxZQUFZLEdBQUc7aUJBQzVHO2FBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQztRQTVVQTs7Ozs7O29GQU00RTtRQUU1RSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxZQUFZLDBCQUFlLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQ2IscUVBQXFFLENBQ3RFLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBRWhDOzs7Ozs7O29GQU80RTtRQUU1RSxNQUFNLE1BQU0sR0FBRyxlQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUNiLG1FQUFtRSxDQUNwRSxDQUFDO1FBQ0osQ0FBQztRQUVEOzs7Ozs7b0ZBTTRFO1FBRTVFLE1BQU0sS0FBSyxHQUFHLGlCQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3QyxNQUFNLG9CQUFvQixHQUN4QixLQUFLLEVBQUUsa0JBQWtCO1lBQ3ZCLENBQUMsQ0FBQyxpQkFBUyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztZQUMxRCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVQ7Ozs7Ozs7b0ZBTzRFO1FBRTVFLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxzQ0FBYyxDQUFDLEdBQUcsQ0FBQztRQUUvRDs7Ozs7OztvRkFPNEU7UUFFNUUsSUFBSSxDQUFDLG9CQUFvQjtZQUN2QixPQUFPLENBQUMsb0JBQW9CO2dCQUM1Qix5QkFBbUIsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsTUFBTSxDQUMxRCxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ1QsTUFBTSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQ25FO2dCQUNELEVBQUUsQ0FBQztRQUVMLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDO1FBRTNEOzs7Ozs7b0ZBTTRFO1FBRTVFLElBQUksT0FBTyxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUMxRCxNQUFNLElBQUksS0FBSyxDQUNiLDREQUE0RCxDQUM3RCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUVoRDs7Ozs7O29GQU00RTtRQUU1RSxJQUFJLENBQUMsYUFBYTtZQUNoQixPQUFPLENBQUMsYUFBYTtnQkFDckIsSUFBSSxxQkFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7b0JBQ2xDOzt1QkFFRztvQkFDSCxJQUFJLEVBQ0YsT0FBTyxDQUFDLG9CQUFvQixFQUFFLElBQUk7d0JBQ2xDOzRCQUNFLFFBQVE7NEJBQ1IsT0FBTyxDQUFDLElBQUk7NEJBQ1osSUFBSSxDQUFDLFlBQVk7NEJBQ2pCLElBQUksQ0FBQyxrQkFBa0I7eUJBQ3hCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFFYjs7dUJBRUc7b0JBQ0gsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUztvQkFFckM7O3VCQUVHO29CQUNILGdCQUFnQixFQUFFO3dCQUNoQixJQUFJLEVBQUU7NEJBQ0osUUFBUSxFQUFFO2dDQUNSLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3pDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQ2hDOzZCQUNGO3lCQUNGO3dCQUNELGdCQUFnQixFQUFFLEVBQUU7d0JBQ3BCLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixFQUFFLGdCQUFnQjtxQkFDbEQ7b0JBRUQ7Ozt1QkFHRztvQkFDSCxZQUFZLEVBQUUsS0FBSztvQkFFbkI7O3VCQUVHO29CQUNILEdBQUcsT0FBTyxDQUFDLG9CQUFvQjtvQkFFL0I7O3VCQUVHO29CQUNILFdBQVcsRUFBRTt3QkFDWCxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxXQUFXO3dCQUM1QyxHQUFHLG9CQUFvQixFQUFFLFdBQVc7cUJBQ3JDO29CQUVEOzt1QkFFRztvQkFDSCxhQUFhLEVBQUU7d0JBQ2IsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFO3dCQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7d0JBQ25COzRCQUNFLElBQUksRUFBRSxzQkFBc0I7NEJBQzVCLEdBQUcsRUFBRSw2QkFBNkI7eUJBQ25DO3dCQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQzt3QkFDdEQsR0FBRyxDQUFDLG9CQUFvQixFQUFFLGFBQWEsSUFBSSxFQUFFLENBQUM7cUJBQy9DO2lCQUNGLENBQUMsQ0FBQztRQUVMOzs7O29GQUk0RTtRQUU1RSxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQTJCLEVBQUUsRUFBRTtZQUNuRCxPQUFPO2dCQUNMLE1BQU0sQ0FBQyxZQUFZO2dCQUNuQixNQUFNLENBQUMsa0JBQWtCO2dCQUN6QixRQUFRO2dCQUNSLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSTtnQkFDbkIsTUFBTSxDQUFDLE9BQU87Z0JBQ2QsTUFBTSxDQUFDLE1BQU07YUFDZCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFM0Msb0NBQW9DO1lBQ3BDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUMzRCxNQUFNLENBQUMsUUFBUSxDQUNoQixDQUFDO1lBRUYsaURBQWlEO1lBQ2pELE1BQU0sWUFBWSxHQUFHLHFCQUFxQjtnQkFDeEMsQ0FBQyxDQUFDO29CQUNFLG9EQUFvRDtvQkFDcEQsSUFBSSxxQkFBcUIsR0FBRztpQkFDN0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUNoQixDQUFDLENBQUMsb0RBQW9ELENBQUM7WUFFekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFO2dCQUNoRCxJQUFJLEVBQUUsVUFBVSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQzFILEtBQUssRUFBRTtvQkFDTCxPQUFPO29CQUNQLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUNuQyxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDekIsQ0FBQyxDQUFDO2lCQUNIO2dCQUNELE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDekIsV0FBVyxFQUFFO29CQUNYLFFBQVEsRUFBRSwrQkFBYSxDQUFDLElBQUk7b0JBQzVCLE9BQU8sRUFBRSwrQkFBYSxDQUFDLEtBQUs7aUJBQzdCO2dCQUNELFdBQVcsRUFBRSxhQUFhO2dCQUMxQixFQUFFLEVBQUUsWUFBWTtnQkFDaEIsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3JDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQWlIRCxhQUFhO1FBQ1g7O1dBRUc7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLGlCQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7Z0JBQ25DLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLEdBQUcsRUFBRSxjQUFjLHlCQUFpQixFQUFFO2FBQ3ZDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBaFpELDhDQWdaQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IEF3c0Nka1R5cGVTY3JpcHRBcHAgfSBmcm9tIFwicHJvamVuL2xpYi9hd3NjZGtcIjtcbmltcG9ydCB7IEJ1aWxkV29ya2Zsb3csIEJ1aWxkV29ya2Zsb3dPcHRpb25zIH0gZnJvbSBcInByb2plbi9saWIvYnVpbGRcIjtcbmltcG9ydCB7IEdpdEh1YiB9IGZyb20gXCJwcm9qZW4vbGliL2dpdGh1YlwiO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiwgSm9iU3RlcCB9IGZyb20gXCJwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IFZhbHVlT2YgfSBmcm9tIFwidHlwZS1mZXN0XCI7XG5pbXBvcnQgeyBBd3NEZXBsb3ltZW50Q29uZmlnIH0gZnJvbSBcIi4uL2F3c1wiO1xuaW1wb3J0IHtcbiAgQVdTX0VOVklST05NRU5UX1RZUEUsXG4gIEFXU19TVEFHRV9UWVBFLFxuICBBd3NEZXBsb3ltZW50VGFyZ2V0LFxuICBBd3NFbnZpcm9ubWVudFR5cGUsXG4gIEF3c1N0YWdlVHlwZSxcbn0gZnJvbSBcIi4uL2F3cy9hd3MtZGVwbG95bWVudC10YXJnZXRcIjtcbmltcG9ydCB7IEdpdEJyYW5jaCB9IGZyb20gXCIuLi9naXRcIjtcbmltcG9ydCB7IE1vbm9yZXBvUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0c1wiO1xuaW1wb3J0IHsgUk9PVF9DSV9UQVNLX05BTUUsIFR1cmJvUmVwbyB9IGZyb20gXCIuLi90dXJib1wiO1xuaW1wb3J0IHsgVkVSU0lPTiB9IGZyb20gXCIuLi92ZXJzaW9uc1wiO1xuXG5leHBvcnQgY29uc3QgUFJPRF9ERVBMT1lfTkFNRSA9IFwicHJvZC1kZXBsb3lcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEZXBsb3lXb3JrZmxvd09wdGlvbnMge1xuICAvKipcbiAgICogV2hhdCB0eXBlIG9mIGRlcGxveSBpcyB0aGlzIHdvcmtmbG93IGZvcj9cbiAgICpcbiAgICogQGRlZmF1bHQgQVdTX1NUQUdFX1RZUEUuREVWXG4gICAqL1xuICByZWFkb25seSBhd3NTdGFnZVR5cGU/OiBWYWx1ZU9mPHR5cGVvZiBBV1NfU1RBR0VfVFlQRT47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgZmVlZCBhIGxpc3Qgb2YgdGFyZ2V0cyB0byBkZXBsb3kgdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGRpc2NvdmVycyBhbGwgdGFyZ2V0cyB1c2luZyBzdGFnZVR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGF3c0RlcGxveW1lbnRUYXJnZXRzPzogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD47XG5cbiAgLyoqXG4gICAqIEV4aXN0aW5nIHdvcmtmbG93LCB1c2VmdWwgaWYgd2UncmUgdGFja2luZyBkZXBsb3ltZW50cyBvbnRvIGFuIGV4aXN0aW5nXG4gICAqIGJ1aWxkIHdvcmtmbG93XG4gICAqL1xuICByZWFkb25seSBidWlsZFdvcmtmbG93PzogQnVpbGRXb3JrZmxvdztcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgdGhlIGJ1aWxkIHdvcmtmbG93LCBpZiBubyBidWlsZCB3b3JrZmxvdyBpcyBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkV29ya2Zsb3dPcHRpb25zPzogUGFydGlhbDxCdWlsZFdvcmtmbG93T3B0aW9ucz47XG5cbiAgLyoqXG4gICAqIFByb2plY3RzIHRoYXQgc2hvdWxkIGNvbXBsZXRlIGRlcGxveW1lbnQgYmVmb3JlIHRoaXMgb25lIHN0YXJ0cy5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveUFmdGVyVGFyZ2V0cz86IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+O1xufVxuXG5leHBvcnQgY2xhc3MgQXdzRGVwbG95V29ya2Zsb3cgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgc3RhdGljIG9mKFxuICAgIHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsXG4gICAgYnVpbGRXb3JrZmxvdzogQnVpbGRXb3JrZmxvdyxcbiAgKTogQXdzRGVwbG95V29ya2Zsb3cgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzRGVmaW5lZCA9IChjOiBDb21wb25lbnQpOiBjIGlzIEF3c0RlcGxveVdvcmtmbG93ID0+XG4gICAgICBjIGluc3RhbmNlb2YgQXdzRGVwbG95V29ya2Zsb3cgJiYgYy5idWlsZFdvcmtmbG93ID09PSBidWlsZFdvcmtmbG93O1xuICAgIHJldHVybiBwcm9qZWN0LmNvbXBvbmVudHMuZmluZChpc0RlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByb290IHByb2plY3QgZm9yIHRoaXMgZGVwbG95IHdvcmtmbG93LiBNdXN0IGJlIGEgbW9ub3JlcG8gcHJvamVjdC5cbiAgICovXG4gIHByaXZhdGUgcm9vdFByb2plY3Q6IE1vbm9yZXBvUHJvamVjdDtcblxuICAvKipcbiAgICogV2hhdCB0eXBlIG9mIGRlcGxveSBpcyB0aGlzIHdvcmtmbG93IGZvcj9cbiAgICovXG4gIHB1YmxpYyBhd3NTdGFnZVR5cGU6IEF3c1N0YWdlVHlwZTtcblxuICAvKipcbiAgICogQVdTIGVudmlyb25tZW50IHR5cGUsIHN1Y2ggYXMgcHJpbWFyeSBvciBzZWNvbmRhcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdwcmltYXJ5JyAodGhpcyBpcyB0aGUgb25seSB0eXBlIHN1cHBvcnRlZCBjdXJyZW50bHkpXG4gICAqL1xuICBwdWJsaWMgYXdzRW52aXJvbm1lbnRUeXBlOiBBd3NFbnZpcm9ubWVudFR5cGUgPSBBV1NfRU5WSVJPTk1FTlRfVFlQRS5QUklNQVJZO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiB0YXJnZXRzIHRvIGRlcGxveSB0by5cbiAgICovXG4gIHJlYWRvbmx5IGF3c0RlcGxveW1lbnRUYXJnZXRzOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PjtcblxuICAvKipcbiAgICogSG9sZCB0aGUgZGVwbG95IHdvcmtmbG93IHNvIHdlIGNhbiBhZGQgdG8gaXQgaW4gcHJlU3ludGhcbiAgICovXG4gIHB1YmxpYyBidWlsZFdvcmtmbG93OiBCdWlsZFdvcmtmbG93O1xuXG4gIC8qKlxuICAgKiBXYXMgdGhpcyB3b3JrZmxvdyBjcmVhdGVkIGV4dGVybmFsbHk/XG4gICAqL1xuICBwdWJsaWMgZXh0ZXJuYWxXb3JrZmxvdzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJvamVjdHMgdGhhdCBzaG91bGQgY29tcGxldGUgZGVwbG95bWVudCBiZWZvcmUgdGhpcyBvbmUgc3RhcnRzLlxuICAgKi9cbiAgcHVibGljIGRlcGxveUFmdGVyVGFyZ2V0czogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsXG4gICAgb3B0aW9uczogRGVwbG95V29ya2Zsb3dPcHRpb25zID0ge30sXG4gICkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogUm9vdCBwcm9qZWN0IGNoZWNrXG4gICAgICpcbiAgICAgKiBEZXRlY3QgdGhlIHJvb3QgcHJvamVjdCBhbmQgZW5zdXJlIGl0J3Mgb2YgdHlwZSBNb25vcmVwb1Byb2plY3QuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBpZiAoIShwcm9qZWN0LnJvb3QgaW5zdGFuY2VvZiBNb25vcmVwb1Byb2plY3QpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQXdzRGVwbG95V29ya2Zsb3cgcmVxdWlyZXMgdGhlIHJvb3QgcHJvamVjdCB0byBiZSBhIE1vbm9yZXBvUHJvamVjdFwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnJvb3RQcm9qZWN0ID0gcHJvamVjdC5yb290O1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogR2l0SHViIENoZWNrXG4gICAgICpcbiAgICAgKiBNYWtlIHN1cmUgZ2l0aHViIGNvbmZpZyBpcyBhY3RpdmUgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdG8gZW5zdXJlIGFsbFxuICAgICAqIHdvcmtmbG93cyB3aWxsIGJlIG91dHB1dCBwcm9wZXJseSBkdXJpbmcgc3ludGguXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBjb25zdCBnaXRodWIgPSBHaXRIdWIub2YodGhpcy5yb290UHJvamVjdCk7XG5cbiAgICBpZiAoIWdpdGh1Yikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkF3c0RlcGxveVdvcmtmbG93IHJlcXVpcmVzIGEgR2l0SHViIGNvbXBvbmVudCBpbiB0aGUgcm9vdCBwcm9qZWN0XCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIFR1cmJvUmVwbyBDaGVja1xuICAgICAqXG4gICAgICogSWYgdHVyYm8gaXMgZW5hYmxlZCwgd2UgbWF5IG5lZWQgdGhlIG9wdGlvbnMgbGF0ZXIgaW4gdGhpcyBmaWxlLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgdHVyYm8gPSBUdXJib1JlcG8ub2YodGhpcy5yb290UHJvamVjdCk7XG4gICAgY29uc3QgYnVpbGRXb3JrZmxvd09wdGlvbnM6IFBhcnRpYWw8QnVpbGRXb3JrZmxvd09wdGlvbnM+ID1cbiAgICAgIHR1cmJvPy5yZW1vdGVDYWNoZU9wdGlvbnNcbiAgICAgICAgPyBUdXJib1JlcG8uYnVpbGRXb3JrZmxvd09wdGlvbnModHVyYm8ucmVtb3RlQ2FjaGVPcHRpb25zKVxuICAgICAgICA6IHt9O1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogV29ya2Zsb3cgRGVwbG95IFR5cGVcbiAgICAgKlxuICAgICAqIFdoYXQgdHlwZSBvZiBlbnZpcm9ubWVudHMgYXJlIHdlIGRlcGxveWluZyBpbnRvPyBXZSdsbCBkZWZhdWx0IHRvIGRldiB0b1xuICAgICAqIGJlIHNhZmUuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICB0aGlzLmF3c1N0YWdlVHlwZSA9IG9wdGlvbnMuYXdzU3RhZ2VUeXBlID8/IEFXU19TVEFHRV9UWVBFLkRFVjtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIFdvcmtmbG93IERlcGxveSBUYXJnZXRzXG4gICAgICpcbiAgICAgKiBVc2UgcHJvdmlkZWQgdGFyZ2V0cyBvciBkaXNjb3ZlciB0aGVtIGJhc2VkIG9uIHRoZSBkZXBsb3kgdHlwZS4gT25seVxuICAgICAqIGluY2x1ZGUgdGFyZ2V0cyB0aGF0IGFyZSBtYXJrZWQgZm9yIENJL0NELlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cyA9XG4gICAgICBvcHRpb25zLmF3c0RlcGxveW1lbnRUYXJnZXRzID8/XG4gICAgICBBd3NEZXBsb3ltZW50Q29uZmlnLm9mKHByb2plY3QpPy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAgICh0YXJnZXQpID0+XG4gICAgICAgICAgdGFyZ2V0LmF3c1N0YWdlVHlwZSA9PT0gdGhpcy5hd3NTdGFnZVR5cGUgJiYgdGFyZ2V0LmNpRGVwbG95bWVudCxcbiAgICAgICkgPz9cbiAgICAgIFtdO1xuXG4gICAgdGhpcy5kZXBsb3lBZnRlclRhcmdldHMgPSBvcHRpb25zLmRlcGxveUFmdGVyVGFyZ2V0cyA/PyBbXTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIEJ1aWxkIFdvcmtmbG93IE9wdGlvbnNcbiAgICAgKlxuICAgICAqIENhbid0IHVzZSB0aGUgb3B0aW9ucyBpZiBhbiBleGlzdGluZyB3b3JrZmxvdyB3YXMgcGFzc2VkIGluLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgaWYgKG9wdGlvbnMuYnVpbGRXb3JrZmxvdyAmJiBvcHRpb25zLmJ1aWxkV29ya2Zsb3dPcHRpb25zKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ2Fubm90IHByb3ZpZGUgYm90aCBidWlsZFdvcmtmbG93IGFuZCBidWlsZFdvcmtmbG93T3B0aW9uc1wiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmV4dGVybmFsV29ya2Zsb3cgPSAhIW9wdGlvbnMuYnVpbGRXb3JrZmxvdztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIEJ1aWxkIFdvcmtmbG93XG4gICAgICpcbiAgICAgKiBDcmVhdGUgYSB3b3JrZmxvdyBlaXRoZXIgYmFzZWQgb24gaW5wdXQgb3IgZnJvbSBzY3JhdGNoLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgdGhpcy5idWlsZFdvcmtmbG93ID1cbiAgICAgIG9wdGlvbnMuYnVpbGRXb3JrZmxvdyA/P1xuICAgICAgbmV3IEJ1aWxkV29ya2Zsb3codGhpcy5yb290UHJvamVjdCwge1xuICAgICAgICAvKipcbiAgICAgICAgICogTmFtZSBiYXNlZCBvbiBwcm9qZWN0IGFuZCBlbnZpcm9ubWVudC5cbiAgICAgICAgICovXG4gICAgICAgIG5hbWU6XG4gICAgICAgICAgb3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucz8ubmFtZSA/P1xuICAgICAgICAgIFtcbiAgICAgICAgICAgIFwiZGVwbG95XCIsXG4gICAgICAgICAgICBwcm9qZWN0Lm5hbWUsXG4gICAgICAgICAgICB0aGlzLmF3c1N0YWdlVHlwZSxcbiAgICAgICAgICAgIHRoaXMuYXdzRW52aXJvbm1lbnRUeXBlLFxuICAgICAgICAgIF0uam9pbihcIi1cIiksXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZSB0aGUgcm9vdCBwcm9qZWN0cyBidWlsZCB0YXNrLlxuICAgICAgICAgKi9cbiAgICAgICAgYnVpbGRUYXNrOiB0aGlzLnJvb3RQcm9qZWN0LmJ1aWxkVGFzayxcblxuICAgICAgICAvKipcbiAgICAgICAgICogVXNlIHB1c2ggdHJpZ2dlcnMgYmFzZWQgbiB0aGUgYnJhbmNoIGNvbmZpZyBmb3IgZWFjaCBlbnZpcm9ubWVudC5cbiAgICAgICAgICovXG4gICAgICAgIHdvcmtmbG93VHJpZ2dlcnM6IHtcbiAgICAgICAgICBwdXNoOiB7XG4gICAgICAgICAgICBicmFuY2hlczogW1xuICAgICAgICAgICAgICAuLi50aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZsYXRNYXAoKHQpID0+XG4gICAgICAgICAgICAgICAgdC5icmFuY2hlcy5tYXAoKGIpID0+IGIuYnJhbmNoKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSxcbiAgICAgICAgICAuLi5vcHRpb25zLmJ1aWxkV29ya2Zsb3dPcHRpb25zPy53b3JrZmxvd1RyaWdnZXJzLFxuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBOZXZlciBhbGxvdyBtdXRhdGlvbnMgZm9yIGRlcGxveXMuIFRoaXMgc2hvdWxkIGhhdmUgYmVlbiBoYW5kbGVkXG4gICAgICAgICAqIGR1cmluZyBidWlsZC5cbiAgICAgICAgICovXG4gICAgICAgIG11dGFibGVCdWlsZDogZmFsc2UsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERvIHRoaXMgcHJlLW1lcmdlIG9mIHBlcm1pc3Npb25zIGFuZCBidWlsZCBzdGVwc1xuICAgICAgICAgKi9cbiAgICAgICAgLi4ub3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogU29tZSBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIG1heSBiZSByZXF1aXJlZCB3aGVuIHR1cmJvJ3MgaW52b2x2ZWQuXG4gICAgICAgICAqL1xuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIC4uLm9wdGlvbnMuYnVpbGRXb3JrZmxvd09wdGlvbnM/LnBlcm1pc3Npb25zLFxuICAgICAgICAgIC4uLmJ1aWxkV29ya2Zsb3dPcHRpb25zPy5wZXJtaXNzaW9ucyxcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogQXNzZW1ibGUgYWxsIHByZS1idWlsZCBzdGVwc1xuICAgICAgICAgKi9cbiAgICAgICAgcHJlQnVpbGRTdGVwczogW1xuICAgICAgICAgIC4uLnRoaXMuc2V0dXBQbnBtKCksXG4gICAgICAgICAgLi4udGhpcy5zZXR1cE5vZGUoKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkluc3RhbGwgZGVwZW5kZW5jaWVzXCIsXG4gICAgICAgICAgICBydW46IFwicG5wbSBpIC0tbm8tZnJvemVuLWxvY2tmaWxlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi4ob3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucz8ucHJlQnVpbGRTdGVwcyA/PyBbXSksXG4gICAgICAgICAgLi4uKGJ1aWxkV29ya2Zsb3dPcHRpb25zPy5wcmVCdWlsZFN0ZXBzID8/IFtdKSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogQWRkIERlcGxveW1lbnRzIHRvIHdvcmtmbG93XG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBjb25zdCBidWlsZEpvYk5hbWUgPSAodGFyZ2V0OiBBd3NEZXBsb3ltZW50VGFyZ2V0KSA9PiB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB0YXJnZXQuYXdzU3RhZ2VUeXBlLFxuICAgICAgICB0YXJnZXQuYXdzRW52aXJvbm1lbnRUeXBlLFxuICAgICAgICBcImRlcGxveVwiLFxuICAgICAgICB0YXJnZXQucHJvamVjdC5uYW1lLFxuICAgICAgICB0YXJnZXQuYWNjb3VudCxcbiAgICAgICAgdGFyZ2V0LnJlZ2lvbixcbiAgICAgIF0uam9pbihcIi1cIik7XG4gICAgfTtcblxuICAgIHRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMuZm9yRWFjaCgodGFyZ2V0KSA9PiB7XG4gICAgICBjb25zdCBkZXBsb3lKb2JOYW1lID0gYnVpbGRKb2JOYW1lKHRhcmdldCk7XG5cbiAgICAgIC8vIEJ1aWxkIHRoZSBicmFuY2ggZmlsdGVyIGNvbmRpdGlvblxuICAgICAgY29uc3QgYnJhbmNoRmlsdGVyQ29uZGl0aW9uID0gdGhpcy5idWlsZEJyYW5jaEZpbHRlckNvbmRpdGlvbihcbiAgICAgICAgdGFyZ2V0LmJyYW5jaGVzLFxuICAgICAgKTtcblxuICAgICAgLy8gQ29tYmluZSB3aXRoIHRoZSBleGlzdGluZyBidWlsZCBtdXRhdGlvbiBjaGVja1xuICAgICAgY29uc3Qgam9iQ29uZGl0aW9uID0gYnJhbmNoRmlsdGVyQ29uZGl0aW9uXG4gICAgICAgID8gW1xuICAgICAgICAgICAgXCIke3sgIW5lZWRzLmJ1aWxkLm91dHB1dHMuc2VsZl9tdXRhdGlvbl9oYXBwZW5lZCB9fVwiLFxuICAgICAgICAgICAgYCgke2JyYW5jaEZpbHRlckNvbmRpdGlvbn0pYCxcbiAgICAgICAgICBdLmpvaW4oXCIgJiYgXCIpXG4gICAgICAgIDogXCIke3sgIW5lZWRzLmJ1aWxkLm91dHB1dHMuc2VsZl9tdXRhdGlvbl9oYXBwZW5lZCB9fVwiO1xuXG4gICAgICB0aGlzLmJ1aWxkV29ya2Zsb3cuYWRkUG9zdEJ1aWxkSm9iKGRlcGxveUpvYk5hbWUsIHtcbiAgICAgICAgbmFtZTogYERlcGxveSAke3RoaXMucHJvamVjdC5uYW1lfSAke3RhcmdldC5hd3NTdGFnZVR5cGV9LyR7dGFyZ2V0LmF3c0Vudmlyb25tZW50VHlwZX0vJHt0YXJnZXQuYWNjb3VudH0vJHt0YXJnZXQucmVnaW9ufWAsXG4gICAgICAgIG5lZWRzOiBbXG4gICAgICAgICAgXCJidWlsZFwiLFxuICAgICAgICAgIC4uLnRoaXMuZGVwbG95QWZ0ZXJUYXJnZXRzLm1hcCgocCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGJ1aWxkSm9iTmFtZShwKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgICAgcnVuc09uOiBbXCJ1YnVudHUtbGF0ZXN0XCJdLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgICAgaWRUb2tlbjogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgfSxcbiAgICAgICAgY29uY3VycmVuY3k6IGRlcGxveUpvYk5hbWUsXG4gICAgICAgIGlmOiBqb2JDb25kaXRpb24sXG4gICAgICAgIHN0ZXBzOiBbLi4udGhpcy5kZXBsb3lTdGVwcyh0YXJnZXQpXSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldHVwTm9kZSA9ICgpOiBBcnJheTxKb2JTdGVwPiA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBOb2RlXCIsXG4gICAgICAgIHVzZXM6IFwiYWN0aW9ucy9zZXR1cC1ub2RlQHY0XCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICBbXCJub2RlLXZlcnNpb25cIl06IFZFUlNJT04uTk9ERV9XT1JLRkxPV1MsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIG9jY2FzaW9uYWxseSB0aGlzIHN0ZXAgZmFpbHMgZHVlIHRvIGludGVybmFsIGlzc3VlcyBhdCBnaXRodWJcbiAgICAgICAgdGltZW91dE1pbnV0ZXM6IDEsXG4gICAgICB9LFxuICAgIF07XG4gIH07XG5cbiAgcHVibGljIHNldHVwUG5wbSA9ICgpOiBBcnJheTxKb2JTdGVwPiA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBQTlBNXCIsXG4gICAgICAgIHVzZXM6IFwicG5wbS9hY3Rpb24tc2V0dXBAdjNcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIHZlcnNpb246IFZFUlNJT04uUE5QTV9WRVJTSU9OLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICB9O1xuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBHaXRIdWIgQWN0aW9ucyBjb25kaXRpb24gc3RyaW5nIHRoYXQgY2hlY2tzIGlmIHRoZSBjdXJyZW50IGJyYW5jaFxuICAgKiBtYXRjaGVzIGFueSBvZiB0aGUgcHJvdmlkZWQgYnJhbmNoIHBhdHRlcm5zLlxuICAgKlxuICAgKiBIYW5kbGVzIGJvdGggZXhhY3QgbWF0Y2hlcyAoZS5nLiwgXCJtYWluXCIpIGFuZCBnbG9iIHBhdHRlcm5zIChlLmcuLCBcImZlYXR1cmUvKlwiKS5cbiAgICogQWxzbyBhbGxvd3Mgd29ya2Zsb3dfZGlzcGF0Y2ggKG1hbnVhbCBydW5zKSB0byBwcm9jZWVkLlxuICAgKlxuICAgKiBAcGFyYW0gYnJhbmNoZXMgQXJyYXkgb2YgR2l0QnJhbmNoIG9iamVjdHMgd2l0aCBicmFuY2ggcGF0dGVybnNcbiAgICogQHJldHVybnMgQ29uZGl0aW9uIHN0cmluZyBvciBlbXB0eSBzdHJpbmcgaWYgbm8gYnJhbmNoZXMgcHJvdmlkZWRcbiAgICovXG4gIHByaXZhdGUgYnVpbGRCcmFuY2hGaWx0ZXJDb25kaXRpb24gPSAoYnJhbmNoZXM6IEFycmF5PEdpdEJyYW5jaD4pOiBzdHJpbmcgPT4ge1xuICAgIGlmICghYnJhbmNoZXMgfHwgYnJhbmNoZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG5cbiAgICBjb25zdCBjb25kaXRpb25zOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgICAvLyBBbHdheXMgYWxsb3cgd29ya2Zsb3dfZGlzcGF0Y2ggKG1hbnVhbCB3b3JrZmxvdyBydW5zKVxuICAgIGNvbmRpdGlvbnMucHVzaChcImdpdGh1Yi5ldmVudF9uYW1lID09ICd3b3JrZmxvd19kaXNwYXRjaCdcIik7XG5cbiAgICBmb3IgKGNvbnN0IGJyYW5jaCBvZiBicmFuY2hlcykge1xuICAgICAgY29uc3QgYnJhbmNoUGF0dGVybiA9IGJyYW5jaC5icmFuY2g7XG5cbiAgICAgIC8vIEhhbmRsZSBnbG9iIHBhdHRlcm5zIChlLmcuLCBcImZlYXR1cmUvKlwiKVxuICAgICAgaWYgKGJyYW5jaFBhdHRlcm4uaW5jbHVkZXMoXCIqXCIpKSB7XG4gICAgICAgIC8vIFJlcGxhY2UgKiB3aXRoIHByb3BlciBzdGFydHNXaXRoIGNoZWNrXG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGJyYW5jaFBhdHRlcm4ucmVwbGFjZSgvXFwqLiokLywgXCJcIik7XG4gICAgICAgIGNvbmRpdGlvbnMucHVzaChgc3RhcnRzV2l0aChnaXRodWIucmVmLCAncmVmcy9oZWFkcy8ke3ByZWZpeH0nKWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRXhhY3QgbWF0Y2hcbiAgICAgICAgY29uZGl0aW9ucy5wdXNoKGBnaXRodWIucmVmID09ICdyZWZzL2hlYWRzLyR7YnJhbmNoUGF0dGVybn0nYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ29tYmluZSBhbGwgY29uZGl0aW9ucyB3aXRoIE9SXG4gICAgcmV0dXJuIGNvbmRpdGlvbnMuam9pbihcIiB8fCBcIik7XG4gIH07XG5cbiAgcHJpdmF0ZSBkZXBsb3lTdGVwcyA9ICh0YXJnZXQ6IEF3c0RlcGxveW1lbnRUYXJnZXQpOiBBcnJheTxKb2JTdGVwPiA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgYXdzU3RhZ2VUeXBlLFxuICAgICAgYXdzRW52aXJvbm1lbnRUeXBlLFxuICAgICAgYWNjb3VudCxcbiAgICAgIHJlZ2lvbixcbiAgICAgIGNpRGVwbG95bWVudENvbmZpZyxcbiAgICAgIGF3c0RlcGxveW1lbnRDb25maWcsXG4gICAgfSA9IHRhcmdldDtcbiAgICBjb25zdCB7IHJvbGVBcm4sIHN0YWNrUGF0dGVybiB9ID0gY2lEZXBsb3ltZW50Q29uZmlnID8/IHt9O1xuICAgIGNvbnN0IHsgcm9vdENka091dCB9ID0gYXdzRGVwbG95bWVudENvbmZpZztcblxuICAgIHJldHVybiBbXG4gICAgICAuLi50aGlzLnNldHVwUG5wbSgpLFxuICAgICAgLi4udGhpcy5zZXR1cE5vZGUoKSxcblxuICAgICAgLyoqXG4gICAgICAgKiBJbnN0YWxsIENES1xuICAgICAgICovXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiSW5zdGFsbCBDREtcIixcbiAgICAgICAgcnVuOiBcInBucG0gYWRkIGF3cy1jZGtcIixcbiAgICAgIH0sXG5cbiAgICAgIC8qKlxuICAgICAgICogQ29uZmlndXJlIEFXUyBjcmVkcy5cbiAgICAgICAqL1xuICAgICAge1xuICAgICAgICBuYW1lOiBgQVdTIENyZWRzICR7YXdzU3RhZ2VUeXBlfS8ke2F3c0Vudmlyb25tZW50VHlwZX0vJHthY2NvdW50fS8ke3JlZ2lvbn1gLFxuICAgICAgICB1c2VzOiBcImF3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNAdjRcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIFwicm9sZS10by1hc3N1bWVcIjogcm9sZUFybixcbiAgICAgICAgICBcImF3cy1yZWdpb25cIjogcmVnaW9uLFxuICAgICAgICAgIFwicm9sZS1kdXJhdGlvbi1zZWNvbmRzXCI6IDkwMCwgLy8gMTUgbWludXRlc1xuICAgICAgICB9LFxuICAgICAgfSxcblxuICAgICAgLyoqXG4gICAgICAgKiBSdW4gQ0RLIERlcGxveVxuICAgICAgICovXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGBEZXBsb3kgJHthd3NTdGFnZVR5cGV9LyR7YXdzRW52aXJvbm1lbnRUeXBlfS8ke2FjY291bnR9LyR7cmVnaW9ufWAsXG4gICAgICAgIHJ1bjogYHBucG0gZGx4IGF3cy1jZGsgZGVwbG95IC0tbm8tcm9sbGJhY2sgLS1yZXF1aXJlLWFwcHJvdmFsPW5ldmVyIC0tYXBwPSR7cm9vdENka091dH0gXCIke3N0YWNrUGF0dGVybn1cImAsXG4gICAgICB9LFxuICAgIF07XG4gIH07XG5cbiAgcHJlU3ludGhlc2l6ZSgpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBFbnN1cmUgdHVyYm8gaXMgYWN0aXZlIHdoZW4gbmVlZGVkLlxuICAgICAqL1xuICAgIGlmICghdGhpcy5leHRlcm5hbFdvcmtmbG93ICYmIFR1cmJvUmVwby5vZih0aGlzLnJvb3RQcm9qZWN0KSkge1xuICAgICAgdGhpcy5idWlsZFdvcmtmbG93LmFkZFBvc3RCdWlsZFN0ZXBzKHtcbiAgICAgICAgbmFtZTogXCJCdWlsZCBTdWIgUHJvamVjdHNcIixcbiAgICAgICAgcnVuOiBgbnB4IHByb2plbiAke1JPT1RfQ0lfVEFTS19OQU1FfWAsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBzdXBlci5wcmVTeW50aGVzaXplKCk7XG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED