cdk8s-aws-cdk 0.0.501 → 0.0.503
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 +3 -3
- package/examples/rds-db-instance/cdk.out/RdsDBInstanceStack.template.json +2 -2
- package/lib/adapter.js +42 -10
- package/lib/chart.js +39 -7
- package/lib/imports/cloudcontrol.services.k8s.aws.js +8 -8
- package/lib/imports/dynamotables-dynamodb.services.k8s.aws.js +8 -8
- package/lib/imports/ec2securitygroups-ec2.services.k8s.aws.js +8 -8
- package/lib/imports/fieldexports-services.k8s.aws.js +8 -8
- package/lib/imports/iampolicies-iam.services.k8s.aws.js +8 -8
- package/lib/imports/iamroles-iam.services.k8s.aws.js +8 -8
- package/lib/imports/k8s.js +984 -982
- package/lib/imports/lambdaeventsourcemappings-lambda.services.k8s.aws.js +8 -8
- package/lib/imports/lambdafunctions-lambda.services.k8s.aws.js +8 -8
- package/lib/imports/rdsdbinstances-rds.services.k8s.aws.js +8 -8
- package/lib/imports/rdsdbsubnetgroups-rds.services.k8s.aws.js +8 -8
- package/lib/imports/s3buckets-s3.services.k8s.aws.js +8 -8
- package/lib/imports/sfnmachines-sfn.services.k8s.aws.js +8 -8
- package/lib/imports/snstopics-sns.services.k8s.aws.js +8 -8
- package/lib/mappers/base.js +4 -5
- package/lib/mappers/ec2-security-group.js +43 -15
- package/lib/mappers/iam-policy.js +43 -15
- package/lib/mappers/iam-role.js +43 -15
- package/lib/mappers/lambda-function.js +43 -15
- package/lib/mappers/rds-db-instance.js +53 -25
- package/lib/mappers/rds-db-subnet-group.js +43 -15
- package/lib/mappers/s3-bucket.js +43 -15
- package/package.json +9 -13
|
@@ -24,6 +24,13 @@ const cdk8s_1 = require("cdk8s");
|
|
|
24
24
|
* @schema Table
|
|
25
25
|
*/
|
|
26
26
|
class Table extends cdk8s_1.ApiObject {
|
|
27
|
+
/**
|
|
28
|
+
* Returns the apiVersion and kind for "Table"
|
|
29
|
+
*/
|
|
30
|
+
static GVK = {
|
|
31
|
+
apiVersion: 'dynamodb.services.k8s.aws/v1alpha1',
|
|
32
|
+
kind: 'Table',
|
|
33
|
+
};
|
|
27
34
|
/**
|
|
28
35
|
* Renders a Kubernetes manifest for "Table".
|
|
29
36
|
*
|
|
@@ -61,13 +68,6 @@ class Table extends cdk8s_1.ApiObject {
|
|
|
61
68
|
}
|
|
62
69
|
}
|
|
63
70
|
exports.Table = Table;
|
|
64
|
-
/**
|
|
65
|
-
* Returns the apiVersion and kind for "Table"
|
|
66
|
-
*/
|
|
67
|
-
Table.GVK = {
|
|
68
|
-
apiVersion: 'dynamodb.services.k8s.aws/v1alpha1',
|
|
69
|
-
kind: 'Table',
|
|
70
|
-
};
|
|
71
71
|
/**
|
|
72
72
|
* Converts an object of type 'TableProps' to JSON representation.
|
|
73
73
|
*/
|
|
@@ -306,4 +306,4 @@ function toJson_TableSpecLocalSecondaryIndexesProjection(obj) {
|
|
|
306
306
|
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
307
307
|
}
|
|
308
308
|
/* eslint-enable max-len, quote-props */
|
|
309
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1vdGFibGVzLWR5bmFtb2RiLnNlcnZpY2VzLms4cy5hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0cy9keW5hbW90YWJsZXMtZHluYW1vZGIuc2VydmljZXMuazhzLmF3cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtRkEsOENBUUM7QUEyR0QsNENBZ0JDO0FBeUJELG9GQVFDO0FBd0NELHdGQVVDO0FBMkJELDhEQVFDO0FBZ0NELHNGQVNDO0FBMkJELHNGQVFDO0FBOEJELDRFQVNDO0FBMkJELGtGQVFDO0FBMkJELG9EQVFDO0FBMkJELDBHQVFDO0FBeUJELDRHQVFDO0FBMEJELGtJQVFDO0FBMkJELHdHQVFDO0FBeUJELDBHQVFDO0FBL3FCRCxxQkFBcUI7QUFDckIsaUNBQXVFO0FBSXZFOzs7O0dBSUc7QUFDSCxNQUFhLEtBQU0sU0FBUSxpQkFBUztJQVNsQzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQW9CLEVBQUU7UUFDM0MsT0FBTztZQUNMLEdBQUcsS0FBSyxDQUFDLEdBQUc7WUFDWixHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQztTQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBbUIsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBb0IsRUFBRTtRQUNyRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSyxDQUFDLEdBQUc7WUFDWixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1gsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWhDLE9BQU87WUFDTCxHQUFHLEtBQUssQ0FBQyxHQUFHO1lBQ1osR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7U0FDL0IsQ0FBQztJQUNKLENBQUM7O0FBOUNILHNCQStDQztBQTlD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QUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQXFCRDs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQiwrQ0FBK0MsQ0FBQyxHQUF5RDtJQUN2SCxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE9BQU8sU0FBUyxDQUFDO0lBQUMsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckQsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLGNBQWM7S0FDckMsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBQ0Qsd0NBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZ2VuZXJhdGVkIGJ5IGNkazhzXG5pbXBvcnQgeyBBcGlPYmplY3QsIEFwaU9iamVjdE1ldGFkYXRhLCBHcm91cFZlcnNpb25LaW5kIH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cblxuLyoqXG4gKiBUYWJsZSBpcyB0aGUgU2NoZW1hIGZvciB0aGUgVGFibGVzIEFQSVxuICpcbiAqIEBzY2hlbWEgVGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIFRhYmxlIGV4dGVuZHMgQXBpT2JqZWN0IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGFwaVZlcnNpb24gYW5kIGtpbmQgZm9yIFwiVGFibGVcIlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHVks6IEdyb3VwVmVyc2lvbktpbmQgPSB7XG4gICAgYXBpVmVyc2lvbjogJ2R5bmFtb2RiLnNlcnZpY2VzLms4cy5hd3MvdjFhbHBoYTEnLFxuICAgIGtpbmQ6ICdUYWJsZScsXG4gIH07XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgYSBLdWJlcm5ldGVzIG1hbmlmZXN0IGZvciBcIlRhYmxlXCIuXG4gICAqXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW5saW5lIHJlc291cmNlIG1hbmlmZXN0cyBpbnNpZGUgb3RoZXIgb2JqZWN0cyAoZS5nLiBhcyB0ZW1wbGF0ZXMpLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFuaWZlc3QocHJvcHM6IFRhYmxlUHJvcHMgPSB7fSk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLlRhYmxlLkdWSyxcbiAgICAgIC4uLnRvSnNvbl9UYWJsZVByb3BzKHByb3BzKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBcIlRhYmxlXCIgQVBJIG9iamVjdFxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIG9iamVjdFxuICAgKiBAcGFyYW0gaWQgYSBzY29wZS1sb2NhbCBuYW1lIGZvciB0aGUgb2JqZWN0XG4gICAqIEBwYXJhbSBwcm9wcyBpbml0aWFsaXphdGlvbiBwcm9wc1xuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUYWJsZVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLlRhYmxlLkdWSyxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIG9iamVjdCB0byBLdWJlcm5ldGVzIEpTT04uXG4gICAqL1xuICBwdWJsaWMgdG9Kc29uKCk6IGFueSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBzdXBlci50b0pzb24oKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5UYWJsZS5HVkssXG4gICAgICAuLi50b0pzb25fVGFibGVQcm9wcyhyZXNvbHZlZCksXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFRhYmxlIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBUYWJsZXMgQVBJXG4gKlxuICogQHNjaGVtYSBUYWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlUHJvcHMge1xuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZSNtZXRhZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBBcGlPYmplY3RNZXRhZGF0YTtcblxuICAvKipcbiAgICogVGFibGVTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgVGFibGUuXG4gICAqXG4gICAqIEBzY2hlbWEgVGFibGUjc3BlY1xuICAgKi9cbiAgcmVhZG9ubHkgc3BlYz86IFRhYmxlU3BlYztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdUYWJsZVByb3BzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9UYWJsZVByb3BzKG9iajogVGFibGVQcm9wcyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ21ldGFkYXRhJzogb2JqLm1ldGFkYXRhLFxuICAgICdzcGVjJzogdG9Kc29uX1RhYmxlU3BlYyhvYmouc3BlYyksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogVGFibGVTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgVGFibGUuXG4gKlxuICogQHNjaGVtYSBUYWJsZVNwZWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVNwZWMge1xuICAvKipcbiAgICogQW4gYXJyYXkgb2YgYXR0cmlidXRlcyB0aGF0IGRlc2NyaWJlIHRoZSBrZXkgc2NoZW1hIGZvciB0aGUgdGFibGUgYW5kIGluZGV4ZXMuXG4gICAqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjI2F0dHJpYnV0ZURlZmluaXRpb25zXG4gICAqL1xuICByZWFkb25seSBhdHRyaWJ1dGVEZWZpbml0aW9uczogVGFibGVTcGVjQXR0cmlidXRlRGVmaW5pdGlvbnNbXTtcblxuICAvKipcbiAgICogQ29udHJvbHMgaG93IHlvdSBhcmUgY2hhcmdlZCBmb3IgcmVhZCBhbmQgd3JpdGUgdGhyb3VnaHB1dCBhbmQgaG93IHlvdSBtYW5hZ2UgY2FwYWNpdHkuIFRoaXMgc2V0dGluZyBjYW4gYmUgY2hhbmdlZCBsYXRlci5cbiAgICogKiBQUk9WSVNJT05FRCAtIFdlIHJlY29tbWVuZCB1c2luZyBQUk9WSVNJT05FRCBmb3IgcHJlZGljdGFibGUgd29ya2xvYWRzLiAgICBQUk9WSVNJT05FRCBzZXRzIHRoZSBiaWxsaW5nIG1vZGUgdG8gUHJvdmlzaW9uZWQgTW9kZSAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Ib3dJdFdvcmtzLlJlYWRXcml0ZUNhcGFjaXR5TW9kZS5odG1sI0hvd0l0V29ya3MuUHJvdmlzaW9uZWRUaHJvdWdocHV0Lk1hbnVhbCkuXG4gICAqICogUEFZX1BFUl9SRVFVRVNUIC0gV2UgcmVjb21tZW5kIHVzaW5nIFBBWV9QRVJfUkVRVUVTVCBmb3IgdW5wcmVkaWN0YWJsZSAgICB3b3JrbG9hZHMuIFBBWV9QRVJfUkVRVUVTVCBzZXRzIHRoZSBiaWxsaW5nIG1vZGUgdG8gT24tRGVtYW5kIE1vZGUgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvSG93SXRXb3Jrcy5SZWFkV3JpdGVDYXBhY2l0eU1vZGUuaHRtbCNIb3dJdFdvcmtzLk9uRGVtYW5kKS5cbiAgICpcbiAgICogQHNjaGVtYSBUYWJsZVNwZWMjYmlsbGluZ01vZGVcbiAgICovXG4gIHJlYWRvbmx5IGJpbGxpbmdNb2RlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPbmUgb3IgbW9yZSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4ZXMgKHRoZSBtYXhpbXVtIGlzIDIwKSB0byBiZSBjcmVhdGVkIG9uIHRoZSB0YWJsZS4gRWFjaCBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4IGluIHRoZSBhcnJheSBpbmNsdWRlcyB0aGUgZm9sbG93aW5nOlxuICAgKiAqIEluZGV4TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LiBNdXN0IGJlIHVuaXF1ZSBvbmx5ICAgIGZvciB0aGlzIHRhYmxlLlxuICAgKiAqIEtleVNjaGVtYSAtIFNwZWNpZmllcyB0aGUga2V5IHNjaGVtYSBmb3IgdGhlIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguXG4gICAqICogUHJvamVjdGlvbiAtIFNwZWNpZmllcyBhdHRyaWJ1dGVzIHRoYXQgYXJlIGNvcGllZCAocHJvamVjdGVkKSBmcm9tIHRoZSAgICB0YWJsZSBpbnRvIHRoZSBpbmRleC4gVGhlc2UgYXJlIGluIGFkZGl0aW9uIHRvIHRoZSBwcmltYXJ5IGtleSBhdHRyaWJ1dGVzICAgIGFuZCBpbmRleCBrZXkgYXR0cmlidXRlcywgd2hpY2ggYXJlIGF1dG9tYXRpY2FsbHkgcHJvamVjdGVkLiBFYWNoIGF0dHJpYnV0ZSAgICBzcGVjaWZpY2F0aW9uIGlzIGNvbXBvc2VkIG9mOiBQcm9qZWN0aW9uVHlwZSAtIE9uZSBvZiB0aGUgZm9sbG93aW5nOiBLRVlTX09OTFkgICAgLSBPbmx5IHRoZSBpbmRleCBhbmQgcHJpbWFyeSBrZXlzIGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXguIElOQ0xVREUgICAgLSBPbmx5IHRoZSBzcGVjaWZpZWQgdGFibGUgYXR0cmlidXRlcyBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LiBUaGUgICAgbGlzdCBvZiBwcm9qZWN0ZWQgYXR0cmlidXRlcyBpcyBpbiBOb25LZXlBdHRyaWJ1dGVzLiBBTEwgLSBBbGwgb2YgdGhlICAgIHRhYmxlIGF0dHJpYnV0ZXMgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleC4gTm9uS2V5QXR0cmlidXRlcyAtIEEgbGlzdCAgICBvZiBvbmUgb3IgbW9yZSBub24ta2V5IGF0dHJpYnV0ZSBuYW1lcyB0aGF0IGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgc2Vjb25kYXJ5ICAgIGluZGV4LiBUaGUgdG90YWwgY291bnQgb2YgYXR0cmlidXRlcyBwcm92aWRlZCBpbiBOb25LZXlBdHRyaWJ1dGVzLCBzdW1tZWQgICAgYWNyb3NzIGFsbCBvZiB0aGUgc2Vjb25kYXJ5IGluZGV4ZXMsIG11c3Qgbm90IGV4Y2VlZCAxMDAuIElmIHlvdSBwcm9qZWN0ICAgIHRoZSBzYW1lIGF0dHJpYnV0ZSBpbnRvIHR3byBkaWZmZXJlbnQgaW5kZXhlcywgdGhpcyBjb3VudHMgYXMgdHdvIGRpc3RpbmN0ICAgIGF0dHJpYnV0ZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdG90YWwuXG4gICAqICogUHJvdmlzaW9uZWRUaHJvdWdocHV0IC0gVGhlIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgc2V0dGluZ3MgZm9yIHRoZSAgICBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LCBjb25zaXN0aW5nIG9mIHJlYWQgYW5kIHdyaXRlIGNhcGFjaXR5IHVuaXRzLlxuICAgKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlYyNnbG9iYWxTZWNvbmRhcnlJbmRleGVzXG4gICAqL1xuICByZWFkb25seSBnbG9iYWxTZWNvbmRhcnlJbmRleGVzPzogVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGF0dHJpYnV0ZXMgdGhhdCBtYWtlIHVwIHRoZSBwcmltYXJ5IGtleSBmb3IgYSB0YWJsZSBvciBhbiBpbmRleC4gVGhlIGF0dHJpYnV0ZXMgaW4gS2V5U2NoZW1hIG11c3QgYWxzbyBiZSBkZWZpbmVkIGluIHRoZSBBdHRyaWJ1dGVEZWZpbml0aW9ucyBhcnJheS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBEYXRhIE1vZGVsIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0RhdGFNb2RlbC5odG1sKSBpbiB0aGUgQW1hem9uIER5bmFtb0RCIERldmVsb3BlciBHdWlkZS5cbiAgICogRWFjaCBLZXlTY2hlbWFFbGVtZW50IGluIHRoZSBhcnJheSBpcyBjb21wb3NlZCBvZjpcbiAgICogKiBBdHRyaWJ1dGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhpcyBrZXkgYXR0cmlidXRlLlxuICAgKiAqIEtleVR5cGUgLSBUaGUgcm9sZSB0aGF0IHRoZSBrZXkgYXR0cmlidXRlIHdpbGwgYXNzdW1lOiBIQVNIIC0gcGFydGl0aW9uICAgIGtleSBSQU5HRSAtIHNvcnQga2V5XG4gICAqIFRoZSBwYXJ0aXRpb24ga2V5IG9mIGFuIGl0ZW0gaXMgYWxzbyBrbm93biBhcyBpdHMgaGFzaCBhdHRyaWJ1dGUuIFRoZSB0ZXJtIFwiaGFzaCBhdHRyaWJ1dGVcIiBkZXJpdmVzIGZyb20gdGhlIER5bmFtb0RCIHVzYWdlIG9mIGFuIGludGVybmFsIGhhc2ggZnVuY3Rpb24gdG8gZXZlbmx5IGRpc3RyaWJ1dGUgZGF0YSBpdGVtcyBhY3Jvc3MgcGFydGl0aW9ucywgYmFzZWQgb24gdGhlaXIgcGFydGl0aW9uIGtleSB2YWx1ZXMuXG4gICAqIFRoZSBzb3J0IGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzIHJhbmdlIGF0dHJpYnV0ZS4gVGhlIHRlcm0gXCJyYW5nZSBhdHRyaWJ1dGVcIiBkZXJpdmVzIGZyb20gdGhlIHdheSBEeW5hbW9EQiBzdG9yZXMgaXRlbXMgd2l0aCB0aGUgc2FtZSBwYXJ0aXRpb24ga2V5IHBoeXNpY2FsbHkgY2xvc2UgdG9nZXRoZXIsIGluIHNvcnRlZCBvcmRlciBieSB0aGUgc29ydCBrZXkgdmFsdWUuXG4gICAqIEZvciBhIHNpbXBsZSBwcmltYXJ5IGtleSAocGFydGl0aW9uIGtleSksIHlvdSBtdXN0IHByb3ZpZGUgZXhhY3RseSBvbmUgZWxlbWVudCB3aXRoIGEgS2V5VHlwZSBvZiBIQVNILlxuICAgKiBGb3IgYSBjb21wb3NpdGUgcHJpbWFyeSBrZXkgKHBhcnRpdGlvbiBrZXkgYW5kIHNvcnQga2V5KSwgeW91IG11c3QgcHJvdmlkZSBleGFjdGx5IHR3byBlbGVtZW50cywgaW4gdGhpcyBvcmRlcjogVGhlIGZpcnN0IGVsZW1lbnQgbXVzdCBoYXZlIGEgS2V5VHlwZSBvZiBIQVNILCBhbmQgdGhlIHNlY29uZCBlbGVtZW50IG11c3QgaGF2ZSBhIEtleVR5cGUgb2YgUkFOR0UuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgV29ya2luZyB3aXRoIFRhYmxlcyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Xb3JraW5nV2l0aFRhYmxlcy5odG1sI1dvcmtpbmdXaXRoVGFibGVzLnByaW1hcnkua2V5KSBpbiB0aGUgQW1hem9uIER5bmFtb0RCIERldmVsb3BlciBHdWlkZS5cbiAgICpcbiAgICogQHNjaGVtYSBUYWJsZVNwZWMja2V5U2NoZW1hXG4gICAqL1xuICByZWFkb25seSBrZXlTY2hlbWE6IFRhYmxlU3BlY0tleVNjaGVtYVtdO1xuXG4gIC8qKlxuICAgKiBPbmUgb3IgbW9yZSBsb2NhbCBzZWNvbmRhcnkgaW5kZXhlcyAodGhlIG1heGltdW0gaXMgNSkgdG8gYmUgY3JlYXRlZCBvbiB0aGUgdGFibGUuIEVhY2ggaW5kZXggaXMgc2NvcGVkIHRvIGEgZ2l2ZW4gcGFydGl0aW9uIGtleSB2YWx1ZS4gVGhlcmUgaXMgYSAxMCBHQiBzaXplIGxpbWl0IHBlciBwYXJ0aXRpb24ga2V5IHZhbHVlOyBvdGhlcndpc2UsIHRoZSBzaXplIG9mIGEgbG9jYWwgc2Vjb25kYXJ5IGluZGV4IGlzIHVuY29uc3RyYWluZWQuXG4gICAqIEVhY2ggbG9jYWwgc2Vjb25kYXJ5IGluZGV4IGluIHRoZSBhcnJheSBpbmNsdWRlcyB0aGUgZm9sbG93aW5nOlxuICAgKiAqIEluZGV4TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBsb2NhbCBzZWNvbmRhcnkgaW5kZXguIE11c3QgYmUgdW5pcXVlIG9ubHkgICAgZm9yIHRoaXMgdGFibGUuXG4gICAqICogS2V5U2NoZW1hIC0gU3BlY2lmaWVzIHRoZSBrZXkgc2NoZW1hIGZvciB0aGUgbG9jYWwgc2Vjb25kYXJ5IGluZGV4LiAgICBUaGUga2V5IHNjaGVtYSBtdXN0IGJlZ2luIHdpdGggdGhlIHNhbWUgcGFydGl0aW9uIGtleSBhcyB0aGUgdGFibGUuXG4gICAqICogUHJvamVjdGlvbiAtIFNwZWNpZmllcyBhdHRyaWJ1dGVzIHRoYXQgYXJlIGNvcGllZCAocHJvamVjdGVkKSBmcm9tIHRoZSAgICB0YWJsZSBpbnRvIHRoZSBpbmRleC4gVGhlc2UgYXJlIGluIGFkZGl0aW9uIHRvIHRoZSBwcmltYXJ5IGtleSBhdHRyaWJ1dGVzICAgIGFuZCBpbmRleCBrZXkgYXR0cmlidXRlcywgd2hpY2ggYXJlIGF1dG9tYXRpY2FsbHkgcHJvamVjdGVkLiBFYWNoIGF0dHJpYnV0ZSAgICBzcGVjaWZpY2F0aW9uIGlzIGNvbXBvc2VkIG9mOiBQcm9qZWN0aW9uVHlwZSAtIE9uZSBvZiB0aGUgZm9sbG93aW5nOiBLRVlTX09OTFkgICAgLSBPbmx5IHRoZSBpbmRleCBhbmQgcHJpbWFyeSBrZXlzIGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXguIElOQ0xVREUgICAgLSBPbmx5IHRoZSBzcGVjaWZpZWQgdGFibGUgYXR0cmlidXRlcyBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LiBUaGUgICAgbGlzdCBvZiBwcm9qZWN0ZWQgYXR0cmlidXRlcyBpcyBpbiBOb25LZXlBdHRyaWJ1dGVzLiBBTEwgLSBBbGwgb2YgdGhlICAgIHRhYmxlIGF0dHJpYnV0ZXMgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleC4gTm9uS2V5QXR0cmlidXRlcyAtIEEgbGlzdCAgICBvZiBvbmUgb3IgbW9yZSBub24ta2V5IGF0dHJpYnV0ZSBuYW1lcyB0aGF0IGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgc2Vjb25kYXJ5ICAgIGluZGV4LiBUaGUgdG90YWwgY291bnQgb2YgYXR0cmlidXRlcyBwcm92aWRlZCBpbiBOb25LZXlBdHRyaWJ1dGVzLCBzdW1tZWQgICAgYWNyb3NzIGFsbCBvZiB0aGUgc2Vjb25kYXJ5IGluZGV4ZXMsIG11c3Qgbm90IGV4Y2VlZCAxMDAuIElmIHlvdSBwcm9qZWN0ICAgIHRoZSBzYW1lIGF0dHJpYnV0ZSBpbnRvIHR3byBkaWZmZXJlbnQgaW5kZXhlcywgdGhpcyBjb3VudHMgYXMgdHdvIGRpc3RpbmN0ICAgIGF0dHJpYnV0ZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdG90YWwuXG4gICAqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjI2xvY2FsU2Vjb25kYXJ5SW5kZXhlc1xuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxTZWNvbmRhcnlJbmRleGVzPzogVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzW107XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgc2V0dGluZ3MgZm9yIGEgc3BlY2lmaWVkIHRhYmxlIG9yIGluZGV4LiBUaGUgc2V0dGluZ3MgY2FuIGJlIG1vZGlmaWVkIHVzaW5nIHRoZSBVcGRhdGVUYWJsZSBvcGVyYXRpb24uXG4gICAqIElmIHlvdSBzZXQgQmlsbGluZ01vZGUgYXMgUFJPVklTSU9ORUQsIHlvdSBtdXN0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS4gSWYgeW91IHNldCBCaWxsaW5nTW9kZSBhcyBQQVlfUEVSX1JFUVVFU1QsIHlvdSBjYW5ub3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LlxuICAgKiBGb3IgY3VycmVudCBtaW5pbXVtIGFuZCBtYXhpbXVtIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgdmFsdWVzLCBzZWUgU2VydmljZSwgQWNjb3VudCwgYW5kIFRhYmxlIFF1b3RhcyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9MaW1pdHMuaHRtbCkgaW4gdGhlIEFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUuXG4gICAqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjI3Byb3Zpc2lvbmVkVGhyb3VnaHB1dFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlzaW9uZWRUaHJvdWdocHV0PzogVGFibGVTcGVjUHJvdmlzaW9uZWRUaHJvdWdocHV0O1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSBzZXR0aW5ncyB1c2VkIHRvIGVuYWJsZSBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uLlxuICAgKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlYyNzc2VTcGVjaWZpY2F0aW9uXG4gICAqL1xuICByZWFkb25seSBzc2VTcGVjaWZpY2F0aW9uPzogVGFibGVTcGVjU3NlU3BlY2lmaWNhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHNldHRpbmdzIGZvciBEeW5hbW9EQiBTdHJlYW1zIG9uIHRoZSB0YWJsZS4gVGhlc2Ugc2V0dGluZ3MgY29uc2lzdCBvZjpcbiAgICogKiBTdHJlYW1FbmFibGVkIC0gSW5kaWNhdGVzIHdoZXRoZXIgRHluYW1vREIgU3RyZWFtcyBpcyB0byBiZSBlbmFibGVkICAgICh0cnVlKSBvciBkaXNhYmxlZCAoZmFsc2UpLlxuICAgKiAqIFN0cmVhbVZpZXdUeXBlIC0gV2hlbiBhbiBpdGVtIGluIHRoZSB0YWJsZSBpcyBtb2RpZmllZCwgU3RyZWFtVmlld1R5cGUgICAgZGV0ZXJtaW5lcyB3aGF0IGluZm9ybWF0aW9uIGlzIHdyaXR0ZW4gdG8gdGhlIHRhYmxlJ3Mgc3RyZWFtLiBWYWxpZCB2YWx1ZXMgICAgZm9yIFN0cmVhbVZpZXdUeXBlIGFyZTogS0VZU19PTkxZIC0gT25seSB0aGUga2V5IGF0dHJpYnV0ZXMgb2YgdGhlIG1vZGlmaWVkICAgIGl0ZW0gYXJlIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS4gTkVXX0lNQUdFIC0gVGhlIGVudGlyZSBpdGVtLCBhcyBpdCBhcHBlYXJzICAgIGFmdGVyIGl0IHdhcyBtb2RpZmllZCwgaXMgd3JpdHRlbiB0byB0aGUgc3RyZWFtLiBPTERfSU1BR0UgLSBUaGUgZW50aXJlICAgIGl0ZW0sIGFzIGl0IGFwcGVhcmVkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQsIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS4gICAgTkVXX0FORF9PTERfSU1BR0VTIC0gQm90aCB0aGUgbmV3IGFuZCB0aGUgb2xkIGl0ZW0gaW1hZ2VzIG9mIHRoZSBpdGVtICAgIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjI3N0cmVhbVNwZWNpZmljYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0cmVhbVNwZWNpZmljYXRpb24/OiBUYWJsZVNwZWNTdHJlYW1TcGVjaWZpY2F0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGFibGUgdG8gY3JlYXRlLlxuICAgKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlYyN0YWJsZU5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2Yga2V5LXZhbHVlIHBhaXJzIHRvIGxhYmVsIHRoZSB0YWJsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBUYWdnaW5nIGZvciBEeW5hbW9EQiAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9UYWdnaW5nLmh0bWwpLlxuICAgKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlYyN0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFibGVTcGVjVGFnc1tdO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1RhYmxlU3BlYycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fVGFibGVTcGVjKG9iajogVGFibGVTcGVjIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnYXR0cmlidXRlRGVmaW5pdGlvbnMnOiBvYmouYXR0cmlidXRlRGVmaW5pdGlvbnM/Lm1hcCh5ID0+IHRvSnNvbl9UYWJsZVNwZWNBdHRyaWJ1dGVEZWZpbml0aW9ucyh5KSksXG4gICAgJ2JpbGxpbmdNb2RlJzogb2JqLmJpbGxpbmdNb2RlLFxuICAgICdnbG9iYWxTZWNvbmRhcnlJbmRleGVzJzogb2JqLmdsb2JhbFNlY29uZGFyeUluZGV4ZXM/Lm1hcCh5ID0+IHRvSnNvbl9UYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzKHkpKSxcbiAgICAna2V5U2NoZW1hJzogb2JqLmtleVNjaGVtYT8ubWFwKHkgPT4gdG9Kc29uX1RhYmxlU3BlY0tleVNjaGVtYSh5KSksXG4gICAgJ2xvY2FsU2Vjb25kYXJ5SW5kZXhlcyc6IG9iai5sb2NhbFNlY29uZGFyeUluZGV4ZXM/Lm1hcCh5ID0+IHRvSnNvbl9UYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXMoeSkpLFxuICAgICdwcm92aXNpb25lZFRocm91Z2hwdXQnOiB0b0pzb25fVGFibGVTcGVjUHJvdmlzaW9uZWRUaHJvdWdocHV0KG9iai5wcm92aXNpb25lZFRocm91Z2hwdXQpLFxuICAgICdzc2VTcGVjaWZpY2F0aW9uJzogdG9Kc29uX1RhYmxlU3BlY1NzZVNwZWNpZmljYXRpb24ob2JqLnNzZVNwZWNpZmljYXRpb24pLFxuICAgICdzdHJlYW1TcGVjaWZpY2F0aW9uJzogdG9Kc29uX1RhYmxlU3BlY1N0cmVhbVNwZWNpZmljYXRpb24ob2JqLnN0cmVhbVNwZWNpZmljYXRpb24pLFxuICAgICd0YWJsZU5hbWUnOiBvYmoudGFibGVOYW1lLFxuICAgICd0YWdzJzogb2JqLnRhZ3M/Lm1hcCh5ID0+IHRvSnNvbl9UYWJsZVNwZWNUYWdzKHkpKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGF0dHJpYnV0ZSBmb3IgZGVzY3JpYmluZyB0aGUga2V5IHNjaGVtYSBmb3IgdGhlIHRhYmxlIGFuZCBpbmRleGVzLlxuICpcbiAqIEBzY2hlbWEgVGFibGVTcGVjQXR0cmlidXRlRGVmaW5pdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVNwZWNBdHRyaWJ1dGVEZWZpbml0aW9ucyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY0F0dHJpYnV0ZURlZmluaXRpb25zI2F0dHJpYnV0ZU5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjQXR0cmlidXRlRGVmaW5pdGlvbnMjYXR0cmlidXRlVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgYXR0cmlidXRlVHlwZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdUYWJsZVNwZWNBdHRyaWJ1dGVEZWZpbml0aW9ucycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fVGFibGVTcGVjQXR0cmlidXRlRGVmaW5pdGlvbnMob2JqOiBUYWJsZVNwZWNBdHRyaWJ1dGVEZWZpbml0aW9ucyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2F0dHJpYnV0ZU5hbWUnOiBvYmouYXR0cmlidXRlTmFtZSxcbiAgICAnYXR0cmlidXRlVHlwZSc6IG9iai5hdHRyaWJ1dGVUeXBlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByb3BlcnRpZXMgb2YgYSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICpcbiAqIEBzY2hlbWEgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXMge1xuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzI2luZGV4TmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5kZXhOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXMja2V5U2NoZW1hXG4gICAqL1xuICByZWFkb25seSBrZXlTY2hlbWE/OiBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzS2V5U2NoZW1hW107XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYXR0cmlidXRlcyB0aGF0IGFyZSBjb3BpZWQgKHByb2plY3RlZCkgZnJvbSB0aGUgdGFibGUgaW50byBhbiBpbmRleC4gVGhlc2UgYXJlIGluIGFkZGl0aW9uIHRvIHRoZSBwcmltYXJ5IGtleSBhdHRyaWJ1dGVzIGFuZCBpbmRleCBrZXkgYXR0cmlidXRlcywgd2hpY2ggYXJlIGF1dG9tYXRpY2FsbHkgcHJvamVjdGVkLlxuICAgKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXMjcHJvamVjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdGlvbj86IFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNQcm9qZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSBwcm92aXNpb25lZCB0aHJvdWdocHV0IHNldHRpbmdzIGZvciBhIHNwZWNpZmllZCB0YWJsZSBvciBpbmRleC4gVGhlIHNldHRpbmdzIGNhbiBiZSBtb2RpZmllZCB1c2luZyB0aGUgVXBkYXRlVGFibGUgb3BlcmF0aW9uLlxuICAgKiBGb3IgY3VycmVudCBtaW5pbXVtIGFuZCBtYXhpbXVtIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgdmFsdWVzLCBzZWUgU2VydmljZSwgQWNjb3VudCwgYW5kIFRhYmxlIFF1b3RhcyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9MaW1pdHMuaHRtbCkgaW4gdGhlIEFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUuXG4gICAqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcyNwcm92aXNpb25lZFRocm91Z2hwdXRcbiAgICovXG4gIHJlYWRvbmx5IHByb3Zpc2lvbmVkVGhyb3VnaHB1dD86IFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNQcm92aXNpb25lZFRocm91Z2hwdXQ7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcyhvYmo6IFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXMgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdpbmRleE5hbWUnOiBvYmouaW5kZXhOYW1lLFxuICAgICdrZXlTY2hlbWEnOiBvYmoua2V5U2NoZW1hPy5tYXAoeSA9PiB0b0pzb25fVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc0tleVNjaGVtYSh5KSksXG4gICAgJ3Byb2plY3Rpb24nOiB0b0pzb25fVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb2plY3Rpb24ob2JqLnByb2plY3Rpb24pLFxuICAgICdwcm92aXNpb25lZFRocm91Z2hwdXQnOiB0b0pzb25fVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb3Zpc2lvbmVkVGhyb3VnaHB1dChvYmoucHJvdmlzaW9uZWRUaHJvdWdocHV0KSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2luZ2xlIGVsZW1lbnQgb2YgYSBrZXkgc2NoZW1hLiBBIGtleSBzY2hlbWEgc3BlY2lmaWVzIHRoZSBhdHRyaWJ1dGVzIHRoYXQgbWFrZSB1cCB0aGUgcHJpbWFyeSBrZXkgb2YgYSB0YWJsZSwgb3IgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIGFuIGluZGV4LlxuICogQSBLZXlTY2hlbWFFbGVtZW50IHJlcHJlc2VudHMgZXhhY3RseSBvbmUgYXR0cmlidXRlIG9mIHRoZSBwcmltYXJ5IGtleS4gRm9yIGV4YW1wbGUsIGEgc2ltcGxlIHByaW1hcnkga2V5IHdvdWxkIGJlIHJlcHJlc2VudGVkIGJ5IG9uZSBLZXlTY2hlbWFFbGVtZW50IChmb3IgdGhlIHBhcnRpdGlvbiBrZXkpLiBBIGNvbXBvc2l0ZSBwcmltYXJ5IGtleSB3b3VsZCByZXF1aXJlIG9uZSBLZXlTY2hlbWFFbGVtZW50IGZvciB0aGUgcGFydGl0aW9uIGtleSwgYW5kIGFub3RoZXIgS2V5U2NoZW1hRWxlbWVudCBmb3IgdGhlIHNvcnQga2V5LlxuICogQSBLZXlTY2hlbWFFbGVtZW50IG11c3QgYmUgYSBzY2FsYXIsIHRvcC1sZXZlbCBhdHRyaWJ1dGUgKG5vdCBhIG5lc3RlZCBhdHRyaWJ1dGUpLiBUaGUgZGF0YSB0eXBlIG11c3QgYmUgb25lIG9mIFN0cmluZywgTnVtYmVyLCBvciBCaW5hcnkuIFRoZSBhdHRyaWJ1dGUgY2Fubm90IGJlIG5lc3RlZCB3aXRoaW4gYSBMaXN0IG9yIGEgTWFwLlxuICpcbiAqIEBzY2hlbWEgVGFibGVTcGVjS2V5U2NoZW1hXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTcGVjS2V5U2NoZW1hIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjS2V5U2NoZW1hI2F0dHJpYnV0ZU5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjS2V5U2NoZW1hI2tleVR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGtleVR5cGU/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnVGFibGVTcGVjS2V5U2NoZW1hJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9UYWJsZVNwZWNLZXlTY2hlbWEob2JqOiBUYWJsZVNwZWNLZXlTY2hlbWEgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdhdHRyaWJ1dGVOYW1lJzogb2JqLmF0dHJpYnV0ZU5hbWUsXG4gICAgJ2tleVR5cGUnOiBvYmoua2V5VHlwZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBwcm9wZXJ0aWVzIG9mIGEgbG9jYWwgc2Vjb25kYXJ5IGluZGV4LlxuICpcbiAqIEBzY2hlbWEgVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzI2luZGV4TmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5kZXhOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY0xvY2FsU2Vjb25kYXJ5SW5kZXhlcyNrZXlTY2hlbWFcbiAgICovXG4gIHJlYWRvbmx5IGtleVNjaGVtYT86IFRhYmxlU3BlY0xvY2FsU2Vjb25kYXJ5SW5kZXhlc0tleVNjaGVtYVtdO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGF0dHJpYnV0ZXMgdGhhdCBhcmUgY29waWVkIChwcm9qZWN0ZWQpIGZyb20gdGhlIHRhYmxlIGludG8gYW4gaW5kZXguIFRoZXNlIGFyZSBpbiBhZGRpdGlvbiB0byB0aGUgcHJpbWFyeSBrZXkgYXR0cmlidXRlcyBhbmQgaW5kZXgga2V5IGF0dHJpYnV0ZXMsIHdoaWNoIGFyZSBhdXRvbWF0aWNhbGx5IHByb2plY3RlZC5cbiAgICpcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXMjcHJvamVjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdGlvbj86IFRhYmxlU3BlY0xvY2FsU2Vjb25kYXJ5SW5kZXhlc1Byb2plY3Rpb247XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9UYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXMob2JqOiBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXMgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdpbmRleE5hbWUnOiBvYmouaW5kZXhOYW1lLFxuICAgICdrZXlTY2hlbWEnOiBvYmoua2V5U2NoZW1hPy5tYXAoeSA9PiB0b0pzb25fVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzS2V5U2NoZW1hKHkpKSxcbiAgICAncHJvamVjdGlvbic6IHRvSnNvbl9UYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNQcm9qZWN0aW9uKG9iai5wcm9qZWN0aW9uKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBwcm92aXNpb25lZCB0aHJvdWdocHV0IHNldHRpbmdzIGZvciBhIHNwZWNpZmllZCB0YWJsZSBvciBpbmRleC4gVGhlIHNldHRpbmdzIGNhbiBiZSBtb2RpZmllZCB1c2luZyB0aGUgVXBkYXRlVGFibGUgb3BlcmF0aW9uLlxuICogSWYgeW91IHNldCBCaWxsaW5nTW9kZSBhcyBQUk9WSVNJT05FRCwgeW91IG11c3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LiBJZiB5b3Ugc2V0IEJpbGxpbmdNb2RlIGFzIFBBWV9QRVJfUkVRVUVTVCwgeW91IGNhbm5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuXG4gKiBGb3IgY3VycmVudCBtaW5pbXVtIGFuZCBtYXhpbXVtIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgdmFsdWVzLCBzZWUgU2VydmljZSwgQWNjb3VudCwgYW5kIFRhYmxlIFF1b3RhcyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9MaW1pdHMuaHRtbCkgaW4gdGhlIEFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUuXG4gKlxuICogQHNjaGVtYSBUYWJsZVNwZWNQcm92aXNpb25lZFRocm91Z2hwdXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVNwZWNQcm92aXNpb25lZFRocm91Z2hwdXQge1xuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNQcm92aXNpb25lZFRocm91Z2hwdXQjcmVhZENhcGFjaXR5VW5pdHNcbiAgICovXG4gIHJlYWRvbmx5IHJlYWRDYXBhY2l0eVVuaXRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY1Byb3Zpc2lvbmVkVGhyb3VnaHB1dCN3cml0ZUNhcGFjaXR5VW5pdHNcbiAgICovXG4gIHJlYWRvbmx5IHdyaXRlQ2FwYWNpdHlVbml0cz86IG51bWJlcjtcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdUYWJsZVNwZWNQcm92aXNpb25lZFRocm91Z2hwdXQnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1RhYmxlU3BlY1Byb3Zpc2lvbmVkVGhyb3VnaHB1dChvYmo6IFRhYmxlU3BlY1Byb3Zpc2lvbmVkVGhyb3VnaHB1dCB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ3JlYWRDYXBhY2l0eVVuaXRzJzogb2JqLnJlYWRDYXBhY2l0eVVuaXRzLFxuICAgICd3cml0ZUNhcGFjaXR5VW5pdHMnOiBvYmoud3JpdGVDYXBhY2l0eVVuaXRzLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHNldHRpbmdzIHVzZWQgdG8gZW5hYmxlIHNlcnZlci1zaWRlIGVuY3J5cHRpb24uXG4gKlxuICogQHNjaGVtYSBUYWJsZVNwZWNTc2VTcGVjaWZpY2F0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTcGVjU3NlU3BlY2lmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY1NzZVNwZWNpZmljYXRpb24jZW5hYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjU3NlU3BlY2lmaWNhdGlvbiNrbXNNYXN0ZXJLZXlJRFxuICAgKi9cbiAgcmVhZG9ubHkga21zTWFzdGVyS2V5SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjU3NlU3BlY2lmaWNhdGlvbiNzc2VUeXBlXG4gICAqL1xuICByZWFkb25seSBzc2VUeXBlPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1RhYmxlU3BlY1NzZVNwZWNpZmljYXRpb24nIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1RhYmxlU3BlY1NzZVNwZWNpZmljYXRpb24ob2JqOiBUYWJsZVNwZWNTc2VTcGVjaWZpY2F0aW9uIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnZW5hYmxlZCc6IG9iai5lbmFibGVkLFxuICAgICdrbXNNYXN0ZXJLZXlJRCc6IG9iai5rbXNNYXN0ZXJLZXlJZCxcbiAgICAnc3NlVHlwZSc6IG9iai5zc2VUeXBlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFRoZSBzZXR0aW5ncyBmb3IgRHluYW1vREIgU3RyZWFtcyBvbiB0aGUgdGFibGUuIFRoZXNlIHNldHRpbmdzIGNvbnNpc3Qgb2Y6XG4gKiAqIFN0cmVhbUVuYWJsZWQgLSBJbmRpY2F0ZXMgd2hldGhlciBEeW5hbW9EQiBTdHJlYW1zIGlzIHRvIGJlIGVuYWJsZWQgICAgKHRydWUpIG9yIGRpc2FibGVkIChmYWxzZSkuXG4gKiAqIFN0cmVhbVZpZXdUeXBlIC0gV2hlbiBhbiBpdGVtIGluIHRoZSB0YWJsZSBpcyBtb2RpZmllZCwgU3RyZWFtVmlld1R5cGUgICAgZGV0ZXJtaW5lcyB3aGF0IGluZm9ybWF0aW9uIGlzIHdyaXR0ZW4gdG8gdGhlIHRhYmxlJ3Mgc3RyZWFtLiBWYWxpZCB2YWx1ZXMgICAgZm9yIFN0cmVhbVZpZXdUeXBlIGFyZTogS0VZU19PTkxZIC0gT25seSB0aGUga2V5IGF0dHJpYnV0ZXMgb2YgdGhlIG1vZGlmaWVkICAgIGl0ZW0gYXJlIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS4gTkVXX0lNQUdFIC0gVGhlIGVudGlyZSBpdGVtLCBhcyBpdCBhcHBlYXJzICAgIGFmdGVyIGl0IHdhcyBtb2RpZmllZCwgaXMgd3JpdHRlbiB0byB0aGUgc3RyZWFtLiBPTERfSU1BR0UgLSBUaGUgZW50aXJlICAgIGl0ZW0sIGFzIGl0IGFwcGVhcmVkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQsIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS4gICAgTkVXX0FORF9PTERfSU1BR0VTIC0gQm90aCB0aGUgbmV3IGFuZCB0aGUgb2xkIGl0ZW0gaW1hZ2VzIG9mIHRoZSBpdGVtICAgIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gKlxuICogQHNjaGVtYSBUYWJsZVNwZWNTdHJlYW1TcGVjaWZpY2F0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTcGVjU3RyZWFtU3BlY2lmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY1N0cmVhbVNwZWNpZmljYXRpb24jc3RyZWFtRW5hYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjU3RyZWFtU3BlY2lmaWNhdGlvbiNzdHJlYW1WaWV3VHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtVmlld1R5cGU/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnVGFibGVTcGVjU3RyZWFtU3BlY2lmaWNhdGlvbicgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fVGFibGVTcGVjU3RyZWFtU3BlY2lmaWNhdGlvbihvYmo6IFRhYmxlU3BlY1N0cmVhbVNwZWNpZmljYXRpb24gfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdzdHJlYW1FbmFibGVkJzogb2JqLnN0cmVhbUVuYWJsZWQsXG4gICAgJ3N0cmVhbVZpZXdUeXBlJzogb2JqLnN0cmVhbVZpZXdUeXBlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIERlc2NyaWJlcyBhIHRhZy4gQSB0YWcgaXMgYSBrZXktdmFsdWUgcGFpci4gWW91IGNhbiBhZGQgdXAgdG8gNTAgdGFncyB0byBhIHNpbmdsZSBEeW5hbW9EQiB0YWJsZS5cbiAqIEFXUy1hc3NpZ25lZCB0YWcgbmFtZXMgYW5kIHZhbHVlcyBhcmUgYXV0b21hdGljYWxseSBhc3NpZ25lZCB0aGUgYXdzOiBwcmVmaXgsIHdoaWNoIHRoZSB1c2VyIGNhbm5vdCBhc3NpZ24uIEFXUy1hc3NpZ25lZCB0YWcgbmFtZXMgZG8gbm90IGNvdW50IHRvd2FyZHMgdGhlIHRhZyBsaW1pdCBvZiA1MC4gVXNlci1hc3NpZ25lZCB0YWcgbmFtZXMgaGF2ZSB0aGUgcHJlZml4IHVzZXI6IGluIHRoZSBDb3N0IEFsbG9jYXRpb24gUmVwb3J0LiBZb3UgY2Fubm90IGJhY2tkYXRlIHRoZSBhcHBsaWNhdGlvbiBvZiBhIHRhZy5cbiAqIEZvciBhbiBvdmVydmlldyBvbiB0YWdnaW5nIER5bmFtb0RCIHJlc291cmNlcywgc2VlIFRhZ2dpbmcgZm9yIER5bmFtb0RCIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1RhZ2dpbmcuaHRtbCkgaW4gdGhlIEFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUuXG4gKlxuICogQHNjaGVtYSBUYWJsZVNwZWNUYWdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTcGVjVGFncyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY1RhZ3Mja2V5XG4gICAqL1xuICByZWFkb25seSBrZXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjVGFncyN2YWx1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWU/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnVGFibGVTcGVjVGFncycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fVGFibGVTcGVjVGFncyhvYmo6IFRhYmxlU3BlY1RhZ3MgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdrZXknOiBvYmoua2V5LFxuICAgICd2YWx1ZSc6IG9iai52YWx1ZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2luZ2xlIGVsZW1lbnQgb2YgYSBrZXkgc2NoZW1hLiBBIGtleSBzY2hlbWEgc3BlY2lmaWVzIHRoZSBhdHRyaWJ1dGVzIHRoYXQgbWFrZSB1cCB0aGUgcHJpbWFyeSBrZXkgb2YgYSB0YWJsZSwgb3IgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIGFuIGluZGV4LlxuICogQSBLZXlTY2hlbWFFbGVtZW50IHJlcHJlc2VudHMgZXhhY3RseSBvbmUgYXR0cmlidXRlIG9mIHRoZSBwcmltYXJ5IGtleS4gRm9yIGV4YW1wbGUsIGEgc2ltcGxlIHByaW1hcnkga2V5IHdvdWxkIGJlIHJlcHJlc2VudGVkIGJ5IG9uZSBLZXlTY2hlbWFFbGVtZW50IChmb3IgdGhlIHBhcnRpdGlvbiBrZXkpLiBBIGNvbXBvc2l0ZSBwcmltYXJ5IGtleSB3b3VsZCByZXF1aXJlIG9uZSBLZXlTY2hlbWFFbGVtZW50IGZvciB0aGUgcGFydGl0aW9uIGtleSwgYW5kIGFub3RoZXIgS2V5U2NoZW1hRWxlbWVudCBmb3IgdGhlIHNvcnQga2V5LlxuICogQSBLZXlTY2hlbWFFbGVtZW50IG11c3QgYmUgYSBzY2FsYXIsIHRvcC1sZXZlbCBhdHRyaWJ1dGUgKG5vdCBhIG5lc3RlZCBhdHRyaWJ1dGUpLiBUaGUgZGF0YSB0eXBlIG11c3QgYmUgb25lIG9mIFN0cmluZywgTnVtYmVyLCBvciBCaW5hcnkuIFRoZSBhdHRyaWJ1dGUgY2Fubm90IGJlIG5lc3RlZCB3aXRoaW4gYSBMaXN0IG9yIGEgTWFwLlxuICpcbiAqIEBzY2hlbWEgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc0tleVNjaGVtYVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWEge1xuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzS2V5U2NoZW1hI2F0dHJpYnV0ZU5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc0tleVNjaGVtYSNrZXlUeXBlXG4gICAqL1xuICByZWFkb25seSBrZXlUeXBlPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1RhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWEnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1RhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWEob2JqOiBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzS2V5U2NoZW1hIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnYXR0cmlidXRlTmFtZSc6IG9iai5hdHRyaWJ1dGVOYW1lLFxuICAgICdrZXlUeXBlJzogb2JqLmtleVR5cGUsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogUmVwcmVzZW50cyBhdHRyaWJ1dGVzIHRoYXQgYXJlIGNvcGllZCAocHJvamVjdGVkKSBmcm9tIHRoZSB0YWJsZSBpbnRvIGFuIGluZGV4LiBUaGVzZSBhcmUgaW4gYWRkaXRpb24gdG8gdGhlIHByaW1hcnkga2V5IGF0dHJpYnV0ZXMgYW5kIGluZGV4IGtleSBhdHRyaWJ1dGVzLCB3aGljaCBhcmUgYXV0b21hdGljYWxseSBwcm9qZWN0ZWQuXG4gKlxuICogQHNjaGVtYSBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzUHJvamVjdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNQcm9qZWN0aW9uIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb2plY3Rpb24jbm9uS2V5QXR0cmlidXRlc1xuICAgKi9cbiAgcmVhZG9ubHkgbm9uS2V5QXR0cmlidXRlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNQcm9qZWN0aW9uI3Byb2plY3Rpb25UeXBlXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0aW9uVHlwZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzUHJvamVjdGlvbicgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb2plY3Rpb24ob2JqOiBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzUHJvamVjdGlvbiB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ25vbktleUF0dHJpYnV0ZXMnOiBvYmoubm9uS2V5QXR0cmlidXRlcz8ubWFwKHkgPT4geSksXG4gICAgJ3Byb2plY3Rpb25UeXBlJzogb2JqLnByb2plY3Rpb25UeXBlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgc2V0dGluZ3MgZm9yIGEgc3BlY2lmaWVkIHRhYmxlIG9yIGluZGV4LiBUaGUgc2V0dGluZ3MgY2FuIGJlIG1vZGlmaWVkIHVzaW5nIHRoZSBVcGRhdGVUYWJsZSBvcGVyYXRpb24uXG4gKiBGb3IgY3VycmVudCBtaW5pbXVtIGFuZCBtYXhpbXVtIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgdmFsdWVzLCBzZWUgU2VydmljZSwgQWNjb3VudCwgYW5kIFRhYmxlIFF1b3RhcyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9MaW1pdHMuaHRtbCkgaW4gdGhlIEFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUuXG4gKlxuICogQHNjaGVtYSBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzUHJvdmlzaW9uZWRUaHJvdWdocHV0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb3Zpc2lvbmVkVGhyb3VnaHB1dCB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNQcm92aXNpb25lZFRocm91Z2hwdXQjcmVhZENhcGFjaXR5VW5pdHNcbiAgICovXG4gIHJlYWRvbmx5IHJlYWRDYXBhY2l0eVVuaXRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNQcm92aXNpb25lZFRocm91Z2hwdXQjd3JpdGVDYXBhY2l0eVVuaXRzXG4gICAqL1xuICByZWFkb25seSB3cml0ZUNhcGFjaXR5VW5pdHM/OiBudW1iZXI7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb3Zpc2lvbmVkVGhyb3VnaHB1dCcgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb3Zpc2lvbmVkVGhyb3VnaHB1dChvYmo6IFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNQcm92aXNpb25lZFRocm91Z2hwdXQgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdyZWFkQ2FwYWNpdHlVbml0cyc6IG9iai5yZWFkQ2FwYWNpdHlVbml0cyxcbiAgICAnd3JpdGVDYXBhY2l0eVVuaXRzJzogb2JqLndyaXRlQ2FwYWNpdHlVbml0cyxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2luZ2xlIGVsZW1lbnQgb2YgYSBrZXkgc2NoZW1hLiBBIGtleSBzY2hlbWEgc3BlY2lmaWVzIHRoZSBhdHRyaWJ1dGVzIHRoYXQgbWFrZSB1cCB0aGUgcHJpbWFyeSBrZXkgb2YgYSB0YWJsZSwgb3IgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIGFuIGluZGV4LlxuICogQSBLZXlTY2hlbWFFbGVtZW50IHJlcHJlc2VudHMgZXhhY3RseSBvbmUgYXR0cmlidXRlIG9mIHRoZSBwcmltYXJ5IGtleS4gRm9yIGV4YW1wbGUsIGEgc2ltcGxlIHByaW1hcnkga2V5IHdvdWxkIGJlIHJlcHJlc2VudGVkIGJ5IG9uZSBLZXlTY2hlbWFFbGVtZW50IChmb3IgdGhlIHBhcnRpdGlvbiBrZXkpLiBBIGNvbXBvc2l0ZSBwcmltYXJ5IGtleSB3b3VsZCByZXF1aXJlIG9uZSBLZXlTY2hlbWFFbGVtZW50IGZvciB0aGUgcGFydGl0aW9uIGtleSwgYW5kIGFub3RoZXIgS2V5U2NoZW1hRWxlbWVudCBmb3IgdGhlIHNvcnQga2V5LlxuICogQSBLZXlTY2hlbWFFbGVtZW50IG11c3QgYmUgYSBzY2FsYXIsIHRvcC1sZXZlbCBhdHRyaWJ1dGUgKG5vdCBhIG5lc3RlZCBhdHRyaWJ1dGUpLiBUaGUgZGF0YSB0eXBlIG11c3QgYmUgb25lIG9mIFN0cmluZywgTnVtYmVyLCBvciBCaW5hcnkuIFRoZSBhdHRyaWJ1dGUgY2Fubm90IGJlIG5lc3RlZCB3aXRoaW4gYSBMaXN0IG9yIGEgTWFwLlxuICpcbiAqIEBzY2hlbWEgVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzS2V5U2NoZW1hXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzS2V5U2NoZW1hIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzS2V5U2NoZW1hI2F0dHJpYnV0ZU5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzS2V5U2NoZW1hI2tleVR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGtleVR5cGU/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzS2V5U2NoZW1hJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9UYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWEob2JqOiBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWEgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdhdHRyaWJ1dGVOYW1lJzogb2JqLmF0dHJpYnV0ZU5hbWUsXG4gICAgJ2tleVR5cGUnOiBvYmoua2V5VHlwZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBSZXByZXNlbnRzIGF0dHJpYnV0ZXMgdGhhdCBhcmUgY29waWVkIChwcm9qZWN0ZWQpIGZyb20gdGhlIHRhYmxlIGludG8gYW4gaW5kZXguIFRoZXNlIGFyZSBpbiBhZGRpdGlvbiB0byB0aGUgcHJpbWFyeSBrZXkgYXR0cmlidXRlcyBhbmQgaW5kZXgga2V5IGF0dHJpYnV0ZXMsIHdoaWNoIGFyZSBhdXRvbWF0aWNhbGx5IHByb2plY3RlZC5cbiAqXG4gKiBAc2NoZW1hIFRhYmxlU3BlY0xvY2FsU2Vjb25kYXJ5SW5kZXhlc1Byb2plY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNQcm9qZWN0aW9uIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzUHJvamVjdGlvbiNub25LZXlBdHRyaWJ1dGVzXG4gICAqL1xuICByZWFkb25seSBub25LZXlBdHRyaWJ1dGVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzUHJvamVjdGlvbiNwcm9qZWN0aW9uVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdGlvblR5cGU/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzUHJvamVjdGlvbicgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzUHJvamVjdGlvbihvYmo6IFRhYmxlU3BlY0xvY2FsU2Vjb25kYXJ5SW5kZXhlc1Byb2plY3Rpb24gfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdub25LZXlBdHRyaWJ1dGVzJzogb2JqLm5vbktleUF0dHJpYnV0ZXM/Lm1hcCh5ID0+IHkpLFxuICAgICdwcm9qZWN0aW9uVHlwZSc6IG9iai5wcm9qZWN0aW9uVHlwZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuIl19
|
|
309
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1vdGFibGVzLWR5bmFtb2RiLnNlcnZpY2VzLms4cy5hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0cy9keW5hbW90YWJsZXMtZHluYW1vZGIuc2VydmljZXMuazhzLmF3cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtRkEsOENBUUM7QUEyR0QsNENBZ0JDO0FBeUJELG9GQVFDO0FBd0NELHdGQVVDO0FBMkJELDhEQVFDO0FBZ0NELHNGQVNDO0FBMkJELHNGQVFDO0FBOEJELDRFQVNDO0FBMkJELGtGQVFDO0FBMkJELG9EQVFDO0FBMkJELDBHQVFDO0FBeUJELDRHQVFDO0FBMEJELGtJQVFDO0FBMkJELHdHQVFDO0FBeUJELDBHQVFDO0FBL3FCRCxxQkFBcUI7QUFDckIsaUNBQXVFO0FBSXZFOzs7O0dBSUc7QUFDSCxNQUFhLEtBQU0sU0FBUSxpQkFBUztJQUNsQzs7T0FFRztJQUNJLE1BQU0sQ0FBVSxHQUFHLEdBQXFCO1FBQzdDLFVBQVUsRUFBRSxvQ0FBb0M7UUFDaEQsSUFBSSxFQUFFLE9BQU87S0FDZCxDQUFDO0lBRUY7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFvQixFQUFFO1FBQzNDLE9BQU87WUFDTCxHQUFHLEtBQUssQ0FBQyxHQUFHO1lBQ1osR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQW1CLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQW9CLEVBQUU7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUssQ0FBQyxHQUFHO1lBQ1osR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTTtRQUNYLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVoQyxPQUFPO1lBQ0ws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QyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBcUJEOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLFNBQWdCLCtDQUErQyxDQUFDLEdBQXlEO0lBQ3ZILElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsT0FBTyxTQUFTLENBQUM7SUFBQyxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHO1FBQ2Isa0JBQWtCLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRCxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsY0FBYztLQUNyQyxDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFDRCx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBnZW5lcmF0ZWQgYnkgY2RrOHNcbmltcG9ydCB7IEFwaU9iamVjdCwgQXBpT2JqZWN0TWV0YWRhdGEsIEdyb3VwVmVyc2lvbktpbmQgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuXG4vKipcbiAqIFRhYmxlIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBUYWJsZXMgQVBJXG4gKlxuICogQHNjaGVtYSBUYWJsZVxuICovXG5leHBvcnQgY2xhc3MgVGFibGUgZXh0ZW5kcyBBcGlPYmplY3Qge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYXBpVmVyc2lvbiBhbmQga2luZCBmb3IgXCJUYWJsZVwiXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdWSzogR3JvdXBWZXJzaW9uS2luZCA9IHtcbiAgICBhcGlWZXJzaW9uOiAnZHluYW1vZGIuc2VydmljZXMuazhzLmF3cy92MWFscGhhMScsXG4gICAga2luZDogJ1RhYmxlJyxcbiAgfTtcblxuICAvKipcbiAgICogUmVuZGVycyBhIEt1YmVybmV0ZXMgbWFuaWZlc3QgZm9yIFwiVGFibGVcIi5cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBpbmxpbmUgcmVzb3VyY2UgbWFuaWZlc3RzIGluc2lkZSBvdGhlciBvYmplY3RzIChlLmcuIGFzIHRlbXBsYXRlcykuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBpbml0aWFsaXphdGlvbiBwcm9wc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYW5pZmVzdChwcm9wczogVGFibGVQcm9wcyA9IHt9KTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uVGFibGUuR1ZLLFxuICAgICAgLi4udG9Kc29uX1RhYmxlUHJvcHMocHJvcHMpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lcyBhIFwiVGFibGVcIiBBUEkgb2JqZWN0XG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgb2JqZWN0XG4gICAqIEBwYXJhbSBpZCBhIHNjb3BlLWxvY2FsIG5hbWUgZm9yIHRoZSBvYmplY3RcbiAgICogQHBhcmFtIHByb3BzIGluaXRpYWxpemF0aW9uIHByb3BzXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFRhYmxlUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4uVGFibGUuR1ZLLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgb2JqZWN0IHRvIEt1YmVybmV0ZXMgSlNPTi5cbiAgICovXG4gIHB1YmxpYyB0b0pzb24oKTogYW55IHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHN1cGVyLnRvSnNvbigpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLlRhYmxlLkdWSyxcbiAgICAgIC4uLnRvSnNvbl9UYWJsZVByb3BzKHJlc29sdmVkKSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogVGFibGUgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIFRhYmxlcyBBUElcbiAqXG4gKiBAc2NoZW1hIFRhYmxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVQcm9wcyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlI21ldGFkYXRhXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IEFwaU9iamVjdE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBUYWJsZVNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBUYWJsZS5cbiAgICpcbiAgICogQHNjaGVtYSBUYWJsZSNzcGVjXG4gICAqL1xuICByZWFkb25seSBzcGVjPzogVGFibGVTcGVjO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1RhYmxlUHJvcHMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1RhYmxlUHJvcHMob2JqOiBUYWJsZVByb3BzIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnbWV0YWRhdGEnOiBvYmoubWV0YWRhdGEsXG4gICAgJ3NwZWMnOiB0b0pzb25fVGFibGVTcGVjKG9iai5zcGVjKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBUYWJsZVNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBUYWJsZS5cbiAqXG4gKiBAc2NoZW1hIFRhYmxlU3BlY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU3BlYyB7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBhdHRyaWJ1dGVzIHRoYXQgZGVzY3JpYmUgdGhlIGtleSBzY2hlbWEgZm9yIHRoZSB0YWJsZSBhbmQgaW5kZXhlcy5cbiAgICpcbiAgICogQHNjaGVtYSBUYWJsZVNwZWMjYXR0cmlidXRlRGVmaW5pdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZURlZmluaXRpb25zOiBUYWJsZVNwZWNBdHRyaWJ1dGVEZWZpbml0aW9uc1tdO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyBob3cgeW91IGFyZSBjaGFyZ2VkIGZvciByZWFkIGFuZCB3cml0ZSB0aHJvdWdocHV0IGFuZCBob3cgeW91IG1hbmFnZSBjYXBhY2l0eS4gVGhpcyBzZXR0aW5nIGNhbiBiZSBjaGFuZ2VkIGxhdGVyLlxuICAgKiAqIFBST1ZJU0lPTkVEIC0gV2UgcmVjb21tZW5kIHVzaW5nIFBST1ZJU0lPTkVEIGZvciBwcmVkaWN0YWJsZSB3b3JrbG9hZHMuICAgIFBST1ZJU0lPTkVEIHNldHMgdGhlIGJpbGxpbmcgbW9kZSB0byBQcm92aXNpb25lZCBNb2RlIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0hvd0l0V29ya3MuUmVhZFdyaXRlQ2FwYWNpdHlNb2RlLmh0bWwjSG93SXRXb3Jrcy5Qcm92aXNpb25lZFRocm91Z2hwdXQuTWFudWFsKS5cbiAgICogKiBQQVlfUEVSX1JFUVVFU1QgLSBXZSByZWNvbW1lbmQgdXNpbmcgUEFZX1BFUl9SRVFVRVNUIGZvciB1bnByZWRpY3RhYmxlICAgIHdvcmtsb2Fkcy4gUEFZX1BFUl9SRVFVRVNUIHNldHMgdGhlIGJpbGxpbmcgbW9kZSB0byBPbi1EZW1hbmQgTW9kZSAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Ib3dJdFdvcmtzLlJlYWRXcml0ZUNhcGFjaXR5TW9kZS5odG1sI0hvd0l0V29ya3MuT25EZW1hbmQpLlxuICAgKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlYyNiaWxsaW5nTW9kZVxuICAgKi9cbiAgcmVhZG9ubHkgYmlsbGluZ01vZGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9uZSBvciBtb3JlIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXhlcyAodGhlIG1heGltdW0gaXMgMjApIHRvIGJlIGNyZWF0ZWQgb24gdGhlIHRhYmxlLiBFYWNoIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXggaW4gdGhlIGFycmF5IGluY2x1ZGVzIHRoZSBmb2xsb3dpbmc6XG4gICAqICogSW5kZXhOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguIE11c3QgYmUgdW5pcXVlIG9ubHkgICAgZm9yIHRoaXMgdGFibGUuXG4gICAqICogS2V5U2NoZW1hIC0gU3BlY2lmaWVzIHRoZSBrZXkgc2NoZW1hIGZvciB0aGUgZ2xvYmFsIHNlY29uZGFyeSBpbmRleC5cbiAgICogKiBQcm9qZWN0aW9uIC0gU3BlY2lmaWVzIGF0dHJpYnV0ZXMgdGhhdCBhcmUgY29waWVkIChwcm9qZWN0ZWQpIGZyb20gdGhlICAgIHRhYmxlIGludG8gdGhlIGluZGV4LiBUaGVzZSBhcmUgaW4gYWRkaXRpb24gdG8gdGhlIHByaW1hcnkga2V5IGF0dHJpYnV0ZXMgICAgYW5kIGluZGV4IGtleSBhdHRyaWJ1dGVzLCB3aGljaCBhcmUgYXV0b21hdGljYWxseSBwcm9qZWN0ZWQuIEVhY2ggYXR0cmlidXRlICAgIHNwZWNpZmljYXRpb24gaXMgY29tcG9zZWQgb2Y6IFByb2plY3Rpb25UeXBlIC0gT25lIG9mIHRoZSBmb2xsb3dpbmc6IEtFWVNfT05MWSAgICAtIE9ubHkgdGhlIGluZGV4IGFuZCBwcmltYXJ5IGtleXMgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleC4gSU5DTFVERSAgICAtIE9ubHkgdGhlIHNwZWNpZmllZCB0YWJsZSBhdHRyaWJ1dGVzIGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXguIFRoZSAgICBsaXN0IG9mIHByb2plY3RlZCBhdHRyaWJ1dGVzIGlzIGluIE5vbktleUF0dHJpYnV0ZXMuIEFMTCAtIEFsbCBvZiB0aGUgICAgdGFibGUgYXR0cmlidXRlcyBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LiBOb25LZXlBdHRyaWJ1dGVzIC0gQSBsaXN0ICAgIG9mIG9uZSBvciBtb3JlIG5vbi1rZXkgYXR0cmlidXRlIG5hbWVzIHRoYXQgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBzZWNvbmRhcnkgICAgaW5kZXguIFRoZSB0b3RhbCBjb3VudCBvZiBhdHRyaWJ1dGVzIHByb3ZpZGVkIGluIE5vbktleUF0dHJpYnV0ZXMsIHN1bW1lZCAgICBhY3Jvc3MgYWxsIG9mIHRoZSBzZWNvbmRhcnkgaW5kZXhlcywgbXVzdCBub3QgZXhjZWVkIDEwMC4gSWYgeW91IHByb2plY3QgICAgdGhlIHNhbWUgYXR0cmlidXRlIGludG8gdHdvIGRpZmZlcmVudCBpbmRleGVzLCB0aGlzIGNvdW50cyBhcyB0d28gZGlzdGluY3QgICAgYXR0cmlidXRlcyB3aGVuIGRldGVybWluaW5nIHRoZSB0b3RhbC5cbiAgICogKiBQcm92aXNpb25lZFRocm91Z2hwdXQgLSBUaGUgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBzZXR0aW5ncyBmb3IgdGhlICAgIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXgsIGNvbnNpc3Rpbmcgb2YgcmVhZCBhbmQgd3JpdGUgY2FwYWNpdHkgdW5pdHMuXG4gICAqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjI2dsb2JhbFNlY29uZGFyeUluZGV4ZXNcbiAgICovXG4gIHJlYWRvbmx5IGdsb2JhbFNlY29uZGFyeUluZGV4ZXM/OiBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgYXR0cmlidXRlcyB0aGF0IG1ha2UgdXAgdGhlIHByaW1hcnkga2V5IGZvciBhIHRhYmxlIG9yIGFuIGluZGV4LiBUaGUgYXR0cmlidXRlcyBpbiBLZXlTY2hlbWEgbXVzdCBhbHNvIGJlIGRlZmluZWQgaW4gdGhlIEF0dHJpYnV0ZURlZmluaXRpb25zIGFycmF5LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIERhdGEgTW9kZWwgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvRGF0YU1vZGVsLmh0bWwpIGluIHRoZSBBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlLlxuICAgKiBFYWNoIEtleVNjaGVtYUVsZW1lbnQgaW4gdGhlIGFycmF5IGlzIGNvbXBvc2VkIG9mOlxuICAgKiAqIEF0dHJpYnV0ZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGlzIGtleSBhdHRyaWJ1dGUuXG4gICAqICogS2V5VHlwZSAtIFRoZSByb2xlIHRoYXQgdGhlIGtleSBhdHRyaWJ1dGUgd2lsbCBhc3N1bWU6IEhBU0ggLSBwYXJ0aXRpb24gICAga2V5IFJBTkdFIC0gc29ydCBrZXlcbiAgICogVGhlIHBhcnRpdGlvbiBrZXkgb2YgYW4gaXRlbSBpcyBhbHNvIGtub3duIGFzIGl0cyBoYXNoIGF0dHJpYnV0ZS4gVGhlIHRlcm0gXCJoYXNoIGF0dHJpYnV0ZVwiIGRlcml2ZXMgZnJvbSB0aGUgRHluYW1vREIgdXNhZ2Ugb2YgYW4gaW50ZXJuYWwgaGFzaCBmdW5jdGlvbiB0byBldmVubHkgZGlzdHJpYnV0ZSBkYXRhIGl0ZW1zIGFjcm9zcyBwYXJ0aXRpb25zLCBiYXNlZCBvbiB0aGVpciBwYXJ0aXRpb24ga2V5IHZhbHVlcy5cbiAgICogVGhlIHNvcnQga2V5IG9mIGFuIGl0ZW0gaXMgYWxzbyBrbm93biBhcyBpdHMgcmFuZ2UgYXR0cmlidXRlLiBUaGUgdGVybSBcInJhbmdlIGF0dHJpYnV0ZVwiIGRlcml2ZXMgZnJvbSB0aGUgd2F5IER5bmFtb0RCIHN0b3JlcyBpdGVtcyB3aXRoIHRoZSBzYW1lIHBhcnRpdGlvbiBrZXkgcGh5c2ljYWxseSBjbG9zZSB0b2dldGhlciwgaW4gc29ydGVkIG9yZGVyIGJ5IHRoZSBzb3J0IGtleSB2YWx1ZS5cbiAgICogRm9yIGEgc2ltcGxlIHByaW1hcnkga2V5IChwYXJ0aXRpb24ga2V5KSwgeW91IG11c3QgcHJvdmlkZSBleGFjdGx5IG9uZSBlbGVtZW50IHdpdGggYSBLZXlUeXBlIG9mIEhBU0guXG4gICAqIEZvciBhIGNvbXBvc2l0ZSBwcmltYXJ5IGtleSAocGFydGl0aW9uIGtleSBhbmQgc29ydCBrZXkpLCB5b3UgbXVzdCBwcm92aWRlIGV4YWN0bHkgdHdvIGVsZW1lbnRzLCBpbiB0aGlzIG9yZGVyOiBUaGUgZmlyc3QgZWxlbWVudCBtdXN0IGhhdmUgYSBLZXlUeXBlIG9mIEhBU0gsIGFuZCB0aGUgc2Vjb25kIGVsZW1lbnQgbXVzdCBoYXZlIGEgS2V5VHlwZSBvZiBSQU5HRS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBXb3JraW5nIHdpdGggVGFibGVzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1dvcmtpbmdXaXRoVGFibGVzLmh0bWwjV29ya2luZ1dpdGhUYWJsZXMucHJpbWFyeS5rZXkpIGluIHRoZSBBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlLlxuICAgKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlYyNrZXlTY2hlbWFcbiAgICovXG4gIHJlYWRvbmx5IGtleVNjaGVtYTogVGFibGVTcGVjS2V5U2NoZW1hW107XG5cbiAgLyoqXG4gICAqIE9uZSBvciBtb3JlIGxvY2FsIHNlY29uZGFyeSBpbmRleGVzICh0aGUgbWF4aW11bSBpcyA1KSB0byBiZSBjcmVhdGVkIG9uIHRoZSB0YWJsZS4gRWFjaCBpbmRleCBpcyBzY29wZWQgdG8gYSBnaXZlbiBwYXJ0aXRpb24ga2V5IHZhbHVlLiBUaGVyZSBpcyBhIDEwIEdCIHNpemUgbGltaXQgcGVyIHBhcnRpdGlvbiBrZXkgdmFsdWU7IG90aGVyd2lzZSwgdGhlIHNpemUgb2YgYSBsb2NhbCBzZWNvbmRhcnkgaW5kZXggaXMgdW5jb25zdHJhaW5lZC5cbiAgICogRWFjaCBsb2NhbCBzZWNvbmRhcnkgaW5kZXggaW4gdGhlIGFycmF5IGluY2x1ZGVzIHRoZSBmb2xsb3dpbmc6XG4gICAqICogSW5kZXhOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGxvY2FsIHNlY29uZGFyeSBpbmRleC4gTXVzdCBiZSB1bmlxdWUgb25seSAgICBmb3IgdGhpcyB0YWJsZS5cbiAgICogKiBLZXlTY2hlbWEgLSBTcGVjaWZpZXMgdGhlIGtleSBzY2hlbWEgZm9yIHRoZSBsb2NhbCBzZWNvbmRhcnkgaW5kZXguICAgIFRoZSBrZXkgc2NoZW1hIG11c3QgYmVnaW4gd2l0aCB0aGUgc2FtZSBwYXJ0aXRpb24ga2V5IGFzIHRoZSB0YWJsZS5cbiAgICogKiBQcm9qZWN0aW9uIC0gU3BlY2lmaWVzIGF0dHJpYnV0ZXMgdGhhdCBhcmUgY29waWVkIChwcm9qZWN0ZWQpIGZyb20gdGhlICAgIHRhYmxlIGludG8gdGhlIGluZGV4LiBUaGVzZSBhcmUgaW4gYWRkaXRpb24gdG8gdGhlIHByaW1hcnkga2V5IGF0dHJpYnV0ZXMgICAgYW5kIGluZGV4IGtleSBhdHRyaWJ1dGVzLCB3aGljaCBhcmUgYXV0b21hdGljYWxseSBwcm9qZWN0ZWQuIEVhY2ggYXR0cmlidXRlICAgIHNwZWNpZmljYXRpb24gaXMgY29tcG9zZWQgb2Y6IFByb2plY3Rpb25UeXBlIC0gT25lIG9mIHRoZSBmb2xsb3dpbmc6IEtFWVNfT05MWSAgICAtIE9ubHkgdGhlIGluZGV4IGFuZCBwcmltYXJ5IGtleXMgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleC4gSU5DTFVERSAgICAtIE9ubHkgdGhlIHNwZWNpZmllZCB0YWJsZSBhdHRyaWJ1dGVzIGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXguIFRoZSAgICBsaXN0IG9mIHByb2plY3RlZCBhdHRyaWJ1dGVzIGlzIGluIE5vbktleUF0dHJpYnV0ZXMuIEFMTCAtIEFsbCBvZiB0aGUgICAgdGFibGUgYXR0cmlidXRlcyBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LiBOb25LZXlBdHRyaWJ1dGVzIC0gQSBsaXN0ICAgIG9mIG9uZSBvciBtb3JlIG5vbi1rZXkgYXR0cmlidXRlIG5hbWVzIHRoYXQgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBzZWNvbmRhcnkgICAgaW5kZXguIFRoZSB0b3RhbCBjb3VudCBvZiBhdHRyaWJ1dGVzIHByb3ZpZGVkIGluIE5vbktleUF0dHJpYnV0ZXMsIHN1bW1lZCAgICBhY3Jvc3MgYWxsIG9mIHRoZSBzZWNvbmRhcnkgaW5kZXhlcywgbXVzdCBub3QgZXhjZWVkIDEwMC4gSWYgeW91IHByb2plY3QgICAgdGhlIHNhbWUgYXR0cmlidXRlIGludG8gdHdvIGRpZmZlcmVudCBpbmRleGVzLCB0aGlzIGNvdW50cyBhcyB0d28gZGlzdGluY3QgICAgYXR0cmlidXRlcyB3aGVuIGRldGVybWluaW5nIHRoZSB0b3RhbC5cbiAgICpcbiAgICogQHNjaGVtYSBUYWJsZVNwZWMjbG9jYWxTZWNvbmRhcnlJbmRleGVzXG4gICAqL1xuICByZWFkb25seSBsb2NhbFNlY29uZGFyeUluZGV4ZXM/OiBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNbXTtcblxuICAvKipcbiAgICogUmVwcmVzZW50cyB0aGUgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBzZXR0aW5ncyBmb3IgYSBzcGVjaWZpZWQgdGFibGUgb3IgaW5kZXguIFRoZSBzZXR0aW5ncyBjYW4gYmUgbW9kaWZpZWQgdXNpbmcgdGhlIFVwZGF0ZVRhYmxlIG9wZXJhdGlvbi5cbiAgICogSWYgeW91IHNldCBCaWxsaW5nTW9kZSBhcyBQUk9WSVNJT05FRCwgeW91IG11c3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LiBJZiB5b3Ugc2V0IEJpbGxpbmdNb2RlIGFzIFBBWV9QRVJfUkVRVUVTVCwgeW91IGNhbm5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuXG4gICAqIEZvciBjdXJyZW50IG1pbmltdW0gYW5kIG1heGltdW0gcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCB2YWx1ZXMsIHNlZSBTZXJ2aWNlLCBBY2NvdW50LCBhbmQgVGFibGUgUXVvdGFzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0xpbWl0cy5odG1sKSBpbiB0aGUgQW1hem9uIER5bmFtb0RCIERldmVsb3BlciBHdWlkZS5cbiAgICpcbiAgICogQHNjaGVtYSBUYWJsZVNwZWMjcHJvdmlzaW9uZWRUaHJvdWdocHV0XG4gICAqL1xuICByZWFkb25seSBwcm92aXNpb25lZFRocm91Z2hwdXQ/OiBUYWJsZVNwZWNQcm92aXNpb25lZFRocm91Z2hwdXQ7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIHNldHRpbmdzIHVzZWQgdG8gZW5hYmxlIHNlcnZlci1zaWRlIGVuY3J5cHRpb24uXG4gICAqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjI3NzZVNwZWNpZmljYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHNzZVNwZWNpZmljYXRpb24/OiBUYWJsZVNwZWNTc2VTcGVjaWZpY2F0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0dGluZ3MgZm9yIER5bmFtb0RCIFN0cmVhbXMgb24gdGhlIHRhYmxlLiBUaGVzZSBzZXR0aW5ncyBjb25zaXN0IG9mOlxuICAgKiAqIFN0cmVhbUVuYWJsZWQgLSBJbmRpY2F0ZXMgd2hldGhlciBEeW5hbW9EQiBTdHJlYW1zIGlzIHRvIGJlIGVuYWJsZWQgICAgKHRydWUpIG9yIGRpc2FibGVkIChmYWxzZSkuXG4gICAqICogU3RyZWFtVmlld1R5cGUgLSBXaGVuIGFuIGl0ZW0gaW4gdGhlIHRhYmxlIGlzIG1vZGlmaWVkLCBTdHJlYW1WaWV3VHlwZSAgICBkZXRlcm1pbmVzIHdoYXQgaW5mb3JtYXRpb24gaXMgd3JpdHRlbiB0byB0aGUgdGFibGUncyBzdHJlYW0uIFZhbGlkIHZhbHVlcyAgICBmb3IgU3RyZWFtVmlld1R5cGUgYXJlOiBLRVlTX09OTFkgLSBPbmx5IHRoZSBrZXkgYXR0cmlidXRlcyBvZiB0aGUgbW9kaWZpZWQgICAgaXRlbSBhcmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtLiBORVdfSU1BR0UgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcnMgICAgYWZ0ZXIgaXQgd2FzIG1vZGlmaWVkLCBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0uIE9MRF9JTUFHRSAtIFRoZSBlbnRpcmUgICAgaXRlbSwgYXMgaXQgYXBwZWFyZWQgYmVmb3JlIGl0IHdhcyBtb2RpZmllZCwgaXMgd3JpdHRlbiB0byB0aGUgc3RyZWFtLiAgICBORVdfQU5EX09MRF9JTUFHRVMgLSBCb3RoIHRoZSBuZXcgYW5kIHRoZSBvbGQgaXRlbSBpbWFnZXMgb2YgdGhlIGl0ZW0gICAgYXJlIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAgICpcbiAgICogQHNjaGVtYSBUYWJsZVNwZWMjc3RyZWFtU3BlY2lmaWNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtU3BlY2lmaWNhdGlvbj86IFRhYmxlU3BlY1N0cmVhbVNwZWNpZmljYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSB0byBjcmVhdGUuXG4gICAqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjI3RhYmxlTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBrZXktdmFsdWUgcGFpcnMgdG8gbGFiZWwgdGhlIHRhYmxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFRhZ2dpbmcgZm9yIER5bmFtb0RCIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1RhZ2dpbmcuaHRtbCkuXG4gICAqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjI3RhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiBUYWJsZVNwZWNUYWdzW107XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnVGFibGVTcGVjJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9UYWJsZVNwZWMob2JqOiBUYWJsZVNwZWMgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdhdHRyaWJ1dGVEZWZpbml0aW9ucyc6IG9iai5hdHRyaWJ1dGVEZWZpbml0aW9ucz8ubWFwKHkgPT4gdG9Kc29uX1RhYmxlU3BlY0F0dHJpYnV0ZURlZmluaXRpb25zKHkpKSxcbiAgICAnYmlsbGluZ01vZGUnOiBvYmouYmlsbGluZ01vZGUsXG4gICAgJ2dsb2JhbFNlY29uZGFyeUluZGV4ZXMnOiBvYmouZ2xvYmFsU2Vjb25kYXJ5SW5kZXhlcz8ubWFwKHkgPT4gdG9Kc29uX1RhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXMoeSkpLFxuICAgICdrZXlTY2hlbWEnOiBvYmoua2V5U2NoZW1hPy5tYXAoeSA9PiB0b0pzb25fVGFibGVTcGVjS2V5U2NoZW1hKHkpKSxcbiAgICAnbG9jYWxTZWNvbmRhcnlJbmRleGVzJzogb2JqLmxvY2FsU2Vjb25kYXJ5SW5kZXhlcz8ubWFwKHkgPT4gdG9Kc29uX1RhYmxlU3BlY0xvY2FsU2Vjb25kYXJ5SW5kZXhlcyh5KSksXG4gICAgJ3Byb3Zpc2lvbmVkVGhyb3VnaHB1dCc6IHRvSnNvbl9UYWJsZVNwZWNQcm92aXNpb25lZFRocm91Z2hwdXQob2JqLnByb3Zpc2lvbmVkVGhyb3VnaHB1dCksXG4gICAgJ3NzZVNwZWNpZmljYXRpb24nOiB0b0pzb25fVGFibGVTcGVjU3NlU3BlY2lmaWNhdGlvbihvYmouc3NlU3BlY2lmaWNhdGlvbiksXG4gICAgJ3N0cmVhbVNwZWNpZmljYXRpb24nOiB0b0pzb25fVGFibGVTcGVjU3RyZWFtU3BlY2lmaWNhdGlvbihvYmouc3RyZWFtU3BlY2lmaWNhdGlvbiksXG4gICAgJ3RhYmxlTmFtZSc6IG9iai50YWJsZU5hbWUsXG4gICAgJ3RhZ3MnOiBvYmoudGFncz8ubWFwKHkgPT4gdG9Kc29uX1RhYmxlU3BlY1RhZ3MoeSkpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gYXR0cmlidXRlIGZvciBkZXNjcmliaW5nIHRoZSBrZXkgc2NoZW1hIGZvciB0aGUgdGFibGUgYW5kIGluZGV4ZXMuXG4gKlxuICogQHNjaGVtYSBUYWJsZVNwZWNBdHRyaWJ1dGVEZWZpbml0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU3BlY0F0dHJpYnV0ZURlZmluaXRpb25zIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjQXR0cmlidXRlRGVmaW5pdGlvbnMjYXR0cmlidXRlTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgYXR0cmlidXRlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNBdHRyaWJ1dGVEZWZpbml0aW9ucyNhdHRyaWJ1dGVUeXBlXG4gICAqL1xuICByZWFkb25seSBhdHRyaWJ1dGVUeXBlPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1RhYmxlU3BlY0F0dHJpYnV0ZURlZmluaXRpb25zJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9UYWJsZVNwZWNBdHRyaWJ1dGVEZWZpbml0aW9ucyhvYmo6IFRhYmxlU3BlY0F0dHJpYnV0ZURlZmluaXRpb25zIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnYXR0cmlidXRlTmFtZSc6IG9iai5hdHRyaWJ1dGVOYW1lLFxuICAgICdhdHRyaWJ1dGVUeXBlJzogb2JqLmF0dHJpYnV0ZVR5cGUsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgcHJvcGVydGllcyBvZiBhIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguXG4gKlxuICogQHNjaGVtYSBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXMjaW5kZXhOYW1lXG4gICAqL1xuICByZWFkb25seSBpbmRleE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcyNrZXlTY2hlbWFcbiAgICovXG4gIHJlYWRvbmx5IGtleVNjaGVtYT86IFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWFbXTtcblxuICAvKipcbiAgICogUmVwcmVzZW50cyBhdHRyaWJ1dGVzIHRoYXQgYXJlIGNvcGllZCAocHJvamVjdGVkKSBmcm9tIHRoZSB0YWJsZSBpbnRvIGFuIGluZGV4LiBUaGVzZSBhcmUgaW4gYWRkaXRpb24gdG8gdGhlIHByaW1hcnkga2V5IGF0dHJpYnV0ZXMgYW5kIGluZGV4IGtleSBhdHRyaWJ1dGVzLCB3aGljaCBhcmUgYXV0b21hdGljYWxseSBwcm9qZWN0ZWQuXG4gICAqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcyNwcm9qZWN0aW9uXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0aW9uPzogVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb2plY3Rpb247XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgc2V0dGluZ3MgZm9yIGEgc3BlY2lmaWVkIHRhYmxlIG9yIGluZGV4LiBUaGUgc2V0dGluZ3MgY2FuIGJlIG1vZGlmaWVkIHVzaW5nIHRoZSBVcGRhdGVUYWJsZSBvcGVyYXRpb24uXG4gICAqIEZvciBjdXJyZW50IG1pbmltdW0gYW5kIG1heGltdW0gcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCB2YWx1ZXMsIHNlZSBTZXJ2aWNlLCBBY2NvdW50LCBhbmQgVGFibGUgUXVvdGFzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0xpbWl0cy5odG1sKSBpbiB0aGUgQW1hem9uIER5bmFtb0RCIERldmVsb3BlciBHdWlkZS5cbiAgICpcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzI3Byb3Zpc2lvbmVkVGhyb3VnaHB1dFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlzaW9uZWRUaHJvdWdocHV0PzogVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb3Zpc2lvbmVkVGhyb3VnaHB1dDtcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9UYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzKG9iajogVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2luZGV4TmFtZSc6IG9iai5pbmRleE5hbWUsXG4gICAgJ2tleVNjaGVtYSc6IG9iai5rZXlTY2hlbWE/Lm1hcCh5ID0+IHRvSnNvbl9UYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzS2V5U2NoZW1hKHkpKSxcbiAgICAncHJvamVjdGlvbic6IHRvSnNvbl9UYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzUHJvamVjdGlvbihvYmoucHJvamVjdGlvbiksXG4gICAgJ3Byb3Zpc2lvbmVkVGhyb3VnaHB1dCc6IHRvSnNvbl9UYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzUHJvdmlzaW9uZWRUaHJvdWdocHV0KG9iai5wcm92aXNpb25lZFRocm91Z2hwdXQpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgZWxlbWVudCBvZiBhIGtleSBzY2hlbWEuIEEga2V5IHNjaGVtYSBzcGVjaWZpZXMgdGhlIGF0dHJpYnV0ZXMgdGhhdCBtYWtlIHVwIHRoZSBwcmltYXJ5IGtleSBvZiBhIHRhYmxlLCBvciB0aGUga2V5IGF0dHJpYnV0ZXMgb2YgYW4gaW5kZXguXG4gKiBBIEtleVNjaGVtYUVsZW1lbnQgcmVwcmVzZW50cyBleGFjdGx5IG9uZSBhdHRyaWJ1dGUgb2YgdGhlIHByaW1hcnkga2V5LiBGb3IgZXhhbXBsZSwgYSBzaW1wbGUgcHJpbWFyeSBrZXkgd291bGQgYmUgcmVwcmVzZW50ZWQgYnkgb25lIEtleVNjaGVtYUVsZW1lbnQgKGZvciB0aGUgcGFydGl0aW9uIGtleSkuIEEgY29tcG9zaXRlIHByaW1hcnkga2V5IHdvdWxkIHJlcXVpcmUgb25lIEtleVNjaGVtYUVsZW1lbnQgZm9yIHRoZSBwYXJ0aXRpb24ga2V5LCBhbmQgYW5vdGhlciBLZXlTY2hlbWFFbGVtZW50IGZvciB0aGUgc29ydCBrZXkuXG4gKiBBIEtleVNjaGVtYUVsZW1lbnQgbXVzdCBiZSBhIHNjYWxhciwgdG9wLWxldmVsIGF0dHJpYnV0ZSAobm90IGEgbmVzdGVkIGF0dHJpYnV0ZSkuIFRoZSBkYXRhIHR5cGUgbXVzdCBiZSBvbmUgb2YgU3RyaW5nLCBOdW1iZXIsIG9yIEJpbmFyeS4gVGhlIGF0dHJpYnV0ZSBjYW5ub3QgYmUgbmVzdGVkIHdpdGhpbiBhIExpc3Qgb3IgYSBNYXAuXG4gKlxuICogQHNjaGVtYSBUYWJsZVNwZWNLZXlTY2hlbWFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVNwZWNLZXlTY2hlbWEge1xuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNLZXlTY2hlbWEjYXR0cmlidXRlTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgYXR0cmlidXRlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNLZXlTY2hlbWEja2V5VHlwZVxuICAgKi9cbiAgcmVhZG9ubHkga2V5VHlwZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdUYWJsZVNwZWNLZXlTY2hlbWEnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1RhYmxlU3BlY0tleVNjaGVtYShvYmo6IFRhYmxlU3BlY0tleVNjaGVtYSB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2F0dHJpYnV0ZU5hbWUnOiBvYmouYXR0cmlidXRlTmFtZSxcbiAgICAna2V5VHlwZSc6IG9iai5rZXlUeXBlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByb3BlcnRpZXMgb2YgYSBsb2NhbCBzZWNvbmRhcnkgaW5kZXguXG4gKlxuICogQHNjaGVtYSBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXMge1xuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXMjaW5kZXhOYW1lXG4gICAqL1xuICByZWFkb25seSBpbmRleE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzI2tleVNjaGVtYVxuICAgKi9cbiAgcmVhZG9ubHkga2V5U2NoZW1hPzogVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzS2V5U2NoZW1hW107XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYXR0cmlidXRlcyB0aGF0IGFyZSBjb3BpZWQgKHByb2plY3RlZCkgZnJvbSB0aGUgdGFibGUgaW50byBhbiBpbmRleC4gVGhlc2UgYXJlIGluIGFkZGl0aW9uIHRvIHRoZSBwcmltYXJ5IGtleSBhdHRyaWJ1dGVzIGFuZCBpbmRleCBrZXkgYXR0cmlidXRlcywgd2hpY2ggYXJlIGF1dG9tYXRpY2FsbHkgcHJvamVjdGVkLlxuICAgKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY0xvY2FsU2Vjb25kYXJ5SW5kZXhlcyNwcm9qZWN0aW9uXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0aW9uPzogVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzUHJvamVjdGlvbjtcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1RhYmxlU3BlY0xvY2FsU2Vjb25kYXJ5SW5kZXhlcyhvYmo6IFRhYmxlU3BlY0xvY2FsU2Vjb25kYXJ5SW5kZXhlcyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2luZGV4TmFtZSc6IG9iai5pbmRleE5hbWUsXG4gICAgJ2tleVNjaGVtYSc6IG9iai5rZXlTY2hlbWE/Lm1hcCh5ID0+IHRvSnNvbl9UYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWEoeSkpLFxuICAgICdwcm9qZWN0aW9uJzogdG9Kc29uX1RhYmxlU3BlY0xvY2FsU2Vjb25kYXJ5SW5kZXhlc1Byb2plY3Rpb24ob2JqLnByb2plY3Rpb24pLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgc2V0dGluZ3MgZm9yIGEgc3BlY2lmaWVkIHRhYmxlIG9yIGluZGV4LiBUaGUgc2V0dGluZ3MgY2FuIGJlIG1vZGlmaWVkIHVzaW5nIHRoZSBVcGRhdGVUYWJsZSBvcGVyYXRpb24uXG4gKiBJZiB5b3Ugc2V0IEJpbGxpbmdNb2RlIGFzIFBST1ZJU0lPTkVELCB5b3UgbXVzdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIElmIHlvdSBzZXQgQmlsbGluZ01vZGUgYXMgUEFZX1BFUl9SRVFVRVNULCB5b3UgY2Fubm90IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS5cbiAqIEZvciBjdXJyZW50IG1pbmltdW0gYW5kIG1heGltdW0gcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCB2YWx1ZXMsIHNlZSBTZXJ2aWNlLCBBY2NvdW50LCBhbmQgVGFibGUgUXVvdGFzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0xpbWl0cy5odG1sKSBpbiB0aGUgQW1hem9uIER5bmFtb0RCIERldmVsb3BlciBHdWlkZS5cbiAqXG4gKiBAc2NoZW1hIFRhYmxlU3BlY1Byb3Zpc2lvbmVkVGhyb3VnaHB1dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU3BlY1Byb3Zpc2lvbmVkVGhyb3VnaHB1dCB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY1Byb3Zpc2lvbmVkVGhyb3VnaHB1dCNyZWFkQ2FwYWNpdHlVbml0c1xuICAgKi9cbiAgcmVhZG9ubHkgcmVhZENhcGFjaXR5VW5pdHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjUHJvdmlzaW9uZWRUaHJvdWdocHV0I3dyaXRlQ2FwYWNpdHlVbml0c1xuICAgKi9cbiAgcmVhZG9ubHkgd3JpdGVDYXBhY2l0eVVuaXRzPzogbnVtYmVyO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1RhYmxlU3BlY1Byb3Zpc2lvbmVkVGhyb3VnaHB1dCcgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fVGFibGVTcGVjUHJvdmlzaW9uZWRUaHJvdWdocHV0KG9iajogVGFibGVTcGVjUHJvdmlzaW9uZWRUaHJvdWdocHV0IHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAncmVhZENhcGFjaXR5VW5pdHMnOiBvYmoucmVhZENhcGFjaXR5VW5pdHMsXG4gICAgJ3dyaXRlQ2FwYWNpdHlVbml0cyc6IG9iai53cml0ZUNhcGFjaXR5VW5pdHMsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgc2V0dGluZ3MgdXNlZCB0byBlbmFibGUgc2VydmVyLXNpZGUgZW5jcnlwdGlvbi5cbiAqXG4gKiBAc2NoZW1hIFRhYmxlU3BlY1NzZVNwZWNpZmljYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVNwZWNTc2VTcGVjaWZpY2F0aW9uIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjU3NlU3BlY2lmaWNhdGlvbiNlbmFibGVkXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNTc2VTcGVjaWZpY2F0aW9uI2ttc01hc3RlcktleUlEXG4gICAqL1xuICByZWFkb25seSBrbXNNYXN0ZXJLZXlJZD86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNTc2VTcGVjaWZpY2F0aW9uI3NzZVR5cGVcbiAgICovXG4gIHJlYWRvbmx5IHNzZVR5cGU/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnVGFibGVTcGVjU3NlU3BlY2lmaWNhdGlvbicgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fVGFibGVTcGVjU3NlU3BlY2lmaWNhdGlvbihvYmo6IFRhYmxlU3BlY1NzZVNwZWNpZmljYXRpb24gfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdlbmFibGVkJzogb2JqLmVuYWJsZWQsXG4gICAgJ2ttc01hc3RlcktleUlEJzogb2JqLmttc01hc3RlcktleUlkLFxuICAgICdzc2VUeXBlJzogb2JqLnNzZVR5cGUsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogVGhlIHNldHRpbmdzIGZvciBEeW5hbW9EQiBTdHJlYW1zIG9uIHRoZSB0YWJsZS4gVGhlc2Ugc2V0dGluZ3MgY29uc2lzdCBvZjpcbiAqICogU3RyZWFtRW5hYmxlZCAtIEluZGljYXRlcyB3aGV0aGVyIER5bmFtb0RCIFN0cmVhbXMgaXMgdG8gYmUgZW5hYmxlZCAgICAodHJ1ZSkgb3IgZGlzYWJsZWQgKGZhbHNlKS5cbiAqICogU3RyZWFtVmlld1R5cGUgLSBXaGVuIGFuIGl0ZW0gaW4gdGhlIHRhYmxlIGlzIG1vZGlmaWVkLCBTdHJlYW1WaWV3VHlwZSAgICBkZXRlcm1pbmVzIHdoYXQgaW5mb3JtYXRpb24gaXMgd3JpdHRlbiB0byB0aGUgdGFibGUncyBzdHJlYW0uIFZhbGlkIHZhbHVlcyAgICBmb3IgU3RyZWFtVmlld1R5cGUgYXJlOiBLRVlTX09OTFkgLSBPbmx5IHRoZSBrZXkgYXR0cmlidXRlcyBvZiB0aGUgbW9kaWZpZWQgICAgaXRlbSBhcmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtLiBORVdfSU1BR0UgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcnMgICAgYWZ0ZXIgaXQgd2FzIG1vZGlmaWVkLCBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0uIE9MRF9JTUFHRSAtIFRoZSBlbnRpcmUgICAgaXRlbSwgYXMgaXQgYXBwZWFyZWQgYmVmb3JlIGl0IHdhcyBtb2RpZmllZCwgaXMgd3JpdHRlbiB0byB0aGUgc3RyZWFtLiAgICBORVdfQU5EX09MRF9JTUFHRVMgLSBCb3RoIHRoZSBuZXcgYW5kIHRoZSBvbGQgaXRlbSBpbWFnZXMgb2YgdGhlIGl0ZW0gICAgYXJlIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAqXG4gKiBAc2NoZW1hIFRhYmxlU3BlY1N0cmVhbVNwZWNpZmljYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVNwZWNTdHJlYW1TcGVjaWZpY2F0aW9uIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjU3RyZWFtU3BlY2lmaWNhdGlvbiNzdHJlYW1FbmFibGVkXG4gICAqL1xuICByZWFkb25seSBzdHJlYW1FbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNTdHJlYW1TcGVjaWZpY2F0aW9uI3N0cmVhbVZpZXdUeXBlXG4gICAqL1xuICByZWFkb25seSBzdHJlYW1WaWV3VHlwZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdUYWJsZVNwZWNTdHJlYW1TcGVjaWZpY2F0aW9uJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9UYWJsZVNwZWNTdHJlYW1TcGVjaWZpY2F0aW9uKG9iajogVGFibGVTcGVjU3RyZWFtU3BlY2lmaWNhdGlvbiB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ3N0cmVhbUVuYWJsZWQnOiBvYmouc3RyZWFtRW5hYmxlZCxcbiAgICAnc3RyZWFtVmlld1R5cGUnOiBvYmouc3RyZWFtVmlld1R5cGUsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogRGVzY3JpYmVzIGEgdGFnLiBBIHRhZyBpcyBhIGtleS12YWx1ZSBwYWlyLiBZb3UgY2FuIGFkZCB1cCB0byA1MCB0YWdzIHRvIGEgc2luZ2xlIER5bmFtb0RCIHRhYmxlLlxuICogQVdTLWFzc2lnbmVkIHRhZyBuYW1lcyBhbmQgdmFsdWVzIGFyZSBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIHRoZSBhd3M6IHByZWZpeCwgd2hpY2ggdGhlIHVzZXIgY2Fubm90IGFzc2lnbi4gQVdTLWFzc2lnbmVkIHRhZyBuYW1lcyBkbyBub3QgY291bnQgdG93YXJkcyB0aGUgdGFnIGxpbWl0IG9mIDUwLiBVc2VyLWFzc2lnbmVkIHRhZyBuYW1lcyBoYXZlIHRoZSBwcmVmaXggdXNlcjogaW4gdGhlIENvc3QgQWxsb2NhdGlvbiBSZXBvcnQuIFlvdSBjYW5ub3QgYmFja2RhdGUgdGhlIGFwcGxpY2F0aW9uIG9mIGEgdGFnLlxuICogRm9yIGFuIG92ZXJ2aWV3IG9uIHRhZ2dpbmcgRHluYW1vREIgcmVzb3VyY2VzLCBzZWUgVGFnZ2luZyBmb3IgRHluYW1vREIgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvVGFnZ2luZy5odG1sKSBpbiB0aGUgQW1hem9uIER5bmFtb0RCIERldmVsb3BlciBHdWlkZS5cbiAqXG4gKiBAc2NoZW1hIFRhYmxlU3BlY1RhZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVNwZWNUYWdzIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjVGFncyNrZXlcbiAgICovXG4gIHJlYWRvbmx5IGtleT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNUYWdzI3ZhbHVlXG4gICAqL1xuICByZWFkb25seSB2YWx1ZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdUYWJsZVNwZWNUYWdzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9UYWJsZVNwZWNUYWdzKG9iajogVGFibGVTcGVjVGFncyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2tleSc6IG9iai5rZXksXG4gICAgJ3ZhbHVlJzogb2JqLnZhbHVlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgZWxlbWVudCBvZiBhIGtleSBzY2hlbWEuIEEga2V5IHNjaGVtYSBzcGVjaWZpZXMgdGhlIGF0dHJpYnV0ZXMgdGhhdCBtYWtlIHVwIHRoZSBwcmltYXJ5IGtleSBvZiBhIHRhYmxlLCBvciB0aGUga2V5IGF0dHJpYnV0ZXMgb2YgYW4gaW5kZXguXG4gKiBBIEtleVNjaGVtYUVsZW1lbnQgcmVwcmVzZW50cyBleGFjdGx5IG9uZSBhdHRyaWJ1dGUgb2YgdGhlIHByaW1hcnkga2V5LiBGb3IgZXhhbXBsZSwgYSBzaW1wbGUgcHJpbWFyeSBrZXkgd291bGQgYmUgcmVwcmVzZW50ZWQgYnkgb25lIEtleVNjaGVtYUVsZW1lbnQgKGZvciB0aGUgcGFydGl0aW9uIGtleSkuIEEgY29tcG9zaXRlIHByaW1hcnkga2V5IHdvdWxkIHJlcXVpcmUgb25lIEtleVNjaGVtYUVsZW1lbnQgZm9yIHRoZSBwYXJ0aXRpb24ga2V5LCBhbmQgYW5vdGhlciBLZXlTY2hlbWFFbGVtZW50IGZvciB0aGUgc29ydCBrZXkuXG4gKiBBIEtleVNjaGVtYUVsZW1lbnQgbXVzdCBiZSBhIHNjYWxhciwgdG9wLWxldmVsIGF0dHJpYnV0ZSAobm90IGEgbmVzdGVkIGF0dHJpYnV0ZSkuIFRoZSBkYXRhIHR5cGUgbXVzdCBiZSBvbmUgb2YgU3RyaW5nLCBOdW1iZXIsIG9yIEJpbmFyeS4gVGhlIGF0dHJpYnV0ZSBjYW5ub3QgYmUgbmVzdGVkIHdpdGhpbiBhIExpc3Qgb3IgYSBNYXAuXG4gKlxuICogQHNjaGVtYSBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzS2V5U2NoZW1hXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc0tleVNjaGVtYSB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWEjYXR0cmlidXRlTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgYXR0cmlidXRlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzS2V5U2NoZW1hI2tleVR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGtleVR5cGU/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc0tleVNjaGVtYScgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc0tleVNjaGVtYShvYmo6IFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWEgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdhdHRyaWJ1dGVOYW1lJzogb2JqLmF0dHJpYnV0ZU5hbWUsXG4gICAgJ2tleVR5cGUnOiBvYmoua2V5VHlwZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBSZXByZXNlbnRzIGF0dHJpYnV0ZXMgdGhhdCBhcmUgY29waWVkIChwcm9qZWN0ZWQpIGZyb20gdGhlIHRhYmxlIGludG8gYW4gaW5kZXguIFRoZXNlIGFyZSBpbiBhZGRpdGlvbiB0byB0aGUgcHJpbWFyeSBrZXkgYXR0cmlidXRlcyBhbmQgaW5kZXgga2V5IGF0dHJpYnV0ZXMsIHdoaWNoIGFyZSBhdXRvbWF0aWNhbGx5IHByb2plY3RlZC5cbiAqXG4gKiBAc2NoZW1hIFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNQcm9qZWN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb2plY3Rpb24ge1xuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzUHJvamVjdGlvbiNub25LZXlBdHRyaWJ1dGVzXG4gICAqL1xuICByZWFkb25seSBub25LZXlBdHRyaWJ1dGVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb2plY3Rpb24jcHJvamVjdGlvblR5cGVcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3Rpb25UeXBlPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1RhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNQcm9qZWN0aW9uJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9UYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzUHJvamVjdGlvbihvYmo6IFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNQcm9qZWN0aW9uIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnbm9uS2V5QXR0cmlidXRlcyc6IG9iai5ub25LZXlBdHRyaWJ1dGVzPy5tYXAoeSA9PiB5KSxcbiAgICAncHJvamVjdGlvblR5cGUnOiBvYmoucHJvamVjdGlvblR5cGUsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBzZXR0aW5ncyBmb3IgYSBzcGVjaWZpZWQgdGFibGUgb3IgaW5kZXguIFRoZSBzZXR0aW5ncyBjYW4gYmUgbW9kaWZpZWQgdXNpbmcgdGhlIFVwZGF0ZVRhYmxlIG9wZXJhdGlvbi5cbiAqIEZvciBjdXJyZW50IG1pbmltdW0gYW5kIG1heGltdW0gcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCB2YWx1ZXMsIHNlZSBTZXJ2aWNlLCBBY2NvdW50LCBhbmQgVGFibGUgUXVvdGFzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0xpbWl0cy5odG1sKSBpbiB0aGUgQW1hem9uIER5bmFtb0RCIERldmVsb3BlciBHdWlkZS5cbiAqXG4gKiBAc2NoZW1hIFRhYmxlU3BlY0dsb2JhbFNlY29uZGFyeUluZGV4ZXNQcm92aXNpb25lZFRocm91Z2hwdXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzUHJvdmlzaW9uZWRUaHJvdWdocHV0IHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb3Zpc2lvbmVkVGhyb3VnaHB1dCNyZWFkQ2FwYWNpdHlVbml0c1xuICAgKi9cbiAgcmVhZG9ubHkgcmVhZENhcGFjaXR5VW5pdHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb3Zpc2lvbmVkVGhyb3VnaHB1dCN3cml0ZUNhcGFjaXR5VW5pdHNcbiAgICovXG4gIHJlYWRvbmx5IHdyaXRlQ2FwYWNpdHlVbml0cz86IG51bWJlcjtcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdUYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzUHJvdmlzaW9uZWRUaHJvdWdocHV0JyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9UYWJsZVNwZWNHbG9iYWxTZWNvbmRhcnlJbmRleGVzUHJvdmlzaW9uZWRUaHJvdWdocHV0KG9iajogVGFibGVTcGVjR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1Byb3Zpc2lvbmVkVGhyb3VnaHB1dCB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ3JlYWRDYXBhY2l0eVVuaXRzJzogb2JqLnJlYWRDYXBhY2l0eVVuaXRzLFxuICAgICd3cml0ZUNhcGFjaXR5VW5pdHMnOiBvYmoud3JpdGVDYXBhY2l0eVVuaXRzLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgZWxlbWVudCBvZiBhIGtleSBzY2hlbWEuIEEga2V5IHNjaGVtYSBzcGVjaWZpZXMgdGhlIGF0dHJpYnV0ZXMgdGhhdCBtYWtlIHVwIHRoZSBwcmltYXJ5IGtleSBvZiBhIHRhYmxlLCBvciB0aGUga2V5IGF0dHJpYnV0ZXMgb2YgYW4gaW5kZXguXG4gKiBBIEtleVNjaGVtYUVsZW1lbnQgcmVwcmVzZW50cyBleGFjdGx5IG9uZSBhdHRyaWJ1dGUgb2YgdGhlIHByaW1hcnkga2V5LiBGb3IgZXhhbXBsZSwgYSBzaW1wbGUgcHJpbWFyeSBrZXkgd291bGQgYmUgcmVwcmVzZW50ZWQgYnkgb25lIEtleVNjaGVtYUVsZW1lbnQgKGZvciB0aGUgcGFydGl0aW9uIGtleSkuIEEgY29tcG9zaXRlIHByaW1hcnkga2V5IHdvdWxkIHJlcXVpcmUgb25lIEtleVNjaGVtYUVsZW1lbnQgZm9yIHRoZSBwYXJ0aXRpb24ga2V5LCBhbmQgYW5vdGhlciBLZXlTY2hlbWFFbGVtZW50IGZvciB0aGUgc29ydCBrZXkuXG4gKiBBIEtleVNjaGVtYUVsZW1lbnQgbXVzdCBiZSBhIHNjYWxhciwgdG9wLWxldmVsIGF0dHJpYnV0ZSAobm90IGEgbmVzdGVkIGF0dHJpYnV0ZSkuIFRoZSBkYXRhIHR5cGUgbXVzdCBiZSBvbmUgb2YgU3RyaW5nLCBOdW1iZXIsIG9yIEJpbmFyeS4gVGhlIGF0dHJpYnV0ZSBjYW5ub3QgYmUgbmVzdGVkIHdpdGhpbiBhIExpc3Qgb3IgYSBNYXAuXG4gKlxuICogQHNjaGVtYSBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWEge1xuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWEjYXR0cmlidXRlTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgYXR0cmlidXRlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWEja2V5VHlwZVxuICAgKi9cbiAgcmVhZG9ubHkga2V5VHlwZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNLZXlTY2hlbWEnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1RhYmxlU3BlY0xvY2FsU2Vjb25kYXJ5SW5kZXhlc0tleVNjaGVtYShvYmo6IFRhYmxlU3BlY0xvY2FsU2Vjb25kYXJ5SW5kZXhlc0tleVNjaGVtYSB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2F0dHJpYnV0ZU5hbWUnOiBvYmouYXR0cmlidXRlTmFtZSxcbiAgICAna2V5VHlwZSc6IG9iai5rZXlUeXBlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYXR0cmlidXRlcyB0aGF0IGFyZSBjb3BpZWQgKHByb2plY3RlZCkgZnJvbSB0aGUgdGFibGUgaW50byBhbiBpbmRleC4gVGhlc2UgYXJlIGluIGFkZGl0aW9uIHRvIHRoZSBwcmltYXJ5IGtleSBhdHRyaWJ1dGVzIGFuZCBpbmRleCBrZXkgYXR0cmlidXRlcywgd2hpY2ggYXJlIGF1dG9tYXRpY2FsbHkgcHJvamVjdGVkLlxuICpcbiAqIEBzY2hlbWEgVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzUHJvamVjdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU3BlY0xvY2FsU2Vjb25kYXJ5SW5kZXhlc1Byb2plY3Rpb24ge1xuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNQcm9qZWN0aW9uI25vbktleUF0dHJpYnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IG5vbktleUF0dHJpYnV0ZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQHNjaGVtYSBUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNQcm9qZWN0aW9uI3Byb2plY3Rpb25UeXBlXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0aW9uVHlwZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdUYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNQcm9qZWN0aW9uJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9UYWJsZVNwZWNMb2NhbFNlY29uZGFyeUluZGV4ZXNQcm9qZWN0aW9uKG9iajogVGFibGVTcGVjTG9jYWxTZWNvbmRhcnlJbmRleGVzUHJvamVjdGlvbiB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ25vbktleUF0dHJpYnV0ZXMnOiBvYmoubm9uS2V5QXR0cmlidXRlcz8ubWFwKHkgPT4geSksXG4gICAgJ3Byb2plY3Rpb25UeXBlJzogb2JqLnByb2plY3Rpb25UeXBlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4iXX0=
|
|
@@ -15,6 +15,13 @@ const cdk8s_1 = require("cdk8s");
|
|
|
15
15
|
* @schema SecurityGroup
|
|
16
16
|
*/
|
|
17
17
|
class SecurityGroup extends cdk8s_1.ApiObject {
|
|
18
|
+
/**
|
|
19
|
+
* Returns the apiVersion and kind for "SecurityGroup"
|
|
20
|
+
*/
|
|
21
|
+
static GVK = {
|
|
22
|
+
apiVersion: 'ec2.services.k8s.aws/v1alpha1',
|
|
23
|
+
kind: 'SecurityGroup',
|
|
24
|
+
};
|
|
18
25
|
/**
|
|
19
26
|
* Renders a Kubernetes manifest for "SecurityGroup".
|
|
20
27
|
*
|
|
@@ -52,13 +59,6 @@ class SecurityGroup extends cdk8s_1.ApiObject {
|
|
|
52
59
|
}
|
|
53
60
|
}
|
|
54
61
|
exports.SecurityGroup = SecurityGroup;
|
|
55
|
-
/**
|
|
56
|
-
* Returns the apiVersion and kind for "SecurityGroup"
|
|
57
|
-
*/
|
|
58
|
-
SecurityGroup.GVK = {
|
|
59
|
-
apiVersion: 'ec2.services.k8s.aws/v1alpha1',
|
|
60
|
-
kind: 'SecurityGroup',
|
|
61
|
-
};
|
|
62
62
|
/**
|
|
63
63
|
* Converts an object of type 'SecurityGroupProps' to JSON representation.
|
|
64
64
|
*/
|
|
@@ -151,4 +151,4 @@ function toJson_SecurityGroupSpecVpcRefFrom(obj) {
|
|
|
151
151
|
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
152
152
|
}
|
|
153
153
|
/* eslint-enable max-len, quote-props */
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWMyc2VjdXJpdHlncm91cHMtZWMyLnNlcnZpY2VzLms4cy5hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0cy9lYzJzZWN1cml0eWdyb3Vwcy1lYzIuc2VydmljZXMuazhzLmF3cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvRkEsOERBUUM7QUF5REQsNERBV0M7QUF5QkQsOEZBUUM7QUFzQkQsd0VBT0M7QUF5QkQsc0dBUUM7QUFvQkQsZ0ZBT0M7QUExUkQscUJBQXFCO0FBQ3JCLGlDQUF1RTtBQUl2RTs7OztHQUlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsaUJBQVM7SUFTMUM7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUE0QixFQUFFO1FBQ25ELE9BQU87WUFDTCxHQUFHLGFBQWEsQ0FBQyxHQUFHO1lBQ3BCLEdBQUcseUJBQXlCLENBQUMsS0FBSyxDQUFDO1NBQ3BDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUE0QixFQUFFO1FBQzdFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxhQUFhLENBQUMsR0FBRztZQUNwQixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1gsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWhDLE9BQU87WUFDTCxHQUFHLGFBQWEsQ0FBQyxHQUFHO1lBQ3BCLEdBQUcseUJBQXlCLENBQUMsUUFBUSxDQUFDO1NBQ3ZDLENBQUM7SUFDSixDQUFDOztBQTlDSCxzQ0ErQ0M7QUE5Q0M7O0dBRUc7QUFDb0IsaUJBQUcsR0FBcUI7SUFDN0MsVUFBVSxFQUFFLCtCQUErQjtJQUMzQyxJQUFJLEVBQUUsZUFBZTtDQUN0QixDQUFDO0FBK0RKOztHQUVHO0FBQ0gseUNBQXlDO0FB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QUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQWdCRDs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQixrQ0FBa0MsQ0FBQyxHQUE0QztJQUM3RixJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE9BQU8sU0FBUyxDQUFDO0lBQUMsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTtLQUNqQixDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFDRCx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBnZW5lcmF0ZWQgYnkgY2RrOHNcbmltcG9ydCB7IEFwaU9iamVjdCwgQXBpT2JqZWN0TWV0YWRhdGEsIEdyb3VwVmVyc2lvbktpbmQgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuXG4vKipcbiAqIFNlY3VyaXR5R3JvdXAgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIFNlY3VyaXR5R3JvdXBzIEFQSVxuICpcbiAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFxuICovXG5leHBvcnQgY2xhc3MgU2VjdXJpdHlHcm91cCBleHRlbmRzIEFwaU9iamVjdCB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhcGlWZXJzaW9uIGFuZCBraW5kIGZvciBcIlNlY3VyaXR5R3JvdXBcIlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHVks6IEdyb3VwVmVyc2lvbktpbmQgPSB7XG4gICAgYXBpVmVyc2lvbjogJ2VjMi5zZXJ2aWNlcy5rOHMuYXdzL3YxYWxwaGExJyxcbiAgICBraW5kOiAnU2VjdXJpdHlHcm91cCcsXG4gIH07XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgYSBLdWJlcm5ldGVzIG1hbmlmZXN0IGZvciBcIlNlY3VyaXR5R3JvdXBcIi5cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBpbmxpbmUgcmVzb3VyY2UgbWFuaWZlc3RzIGluc2lkZSBvdGhlciBvYmplY3RzIChlLmcuIGFzIHRlbXBsYXRlcykuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBpbml0aWFsaXphdGlvbiBwcm9wc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYW5pZmVzdChwcm9wczogU2VjdXJpdHlHcm91cFByb3BzID0ge30pOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5TZWN1cml0eUdyb3VwLkdWSyxcbiAgICAgIC4uLnRvSnNvbl9TZWN1cml0eUdyb3VwUHJvcHMocHJvcHMpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lcyBhIFwiU2VjdXJpdHlHcm91cFwiIEFQSSBvYmplY3RcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBvYmplY3RcbiAgICogQHBhcmFtIGlkIGEgc2NvcGUtbG9jYWwgbmFtZSBmb3IgdGhlIG9iamVjdFxuICAgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHNcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VjdXJpdHlHcm91cFByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLlNlY3VyaXR5R3JvdXAuR1ZLLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgb2JqZWN0IHRvIEt1YmVybmV0ZXMgSlNPTi5cbiAgICovXG4gIHB1YmxpYyB0b0pzb24oKTogYW55IHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHN1cGVyLnRvSnNvbigpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLlNlY3VyaXR5R3JvdXAuR1ZLLFxuICAgICAgLi4udG9Kc29uX1NlY3VyaXR5R3JvdXBQcm9wcyhyZXNvbHZlZCksXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFNlY3VyaXR5R3JvdXAgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIFNlY3VyaXR5R3JvdXBzIEFQSVxuICpcbiAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5R3JvdXBQcm9wcyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFNlY3VyaXR5R3JvdXAjbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogQXBpT2JqZWN0TWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIFNlY3VyaXR5R3JvdXBTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgU2VjdXJpdHlHcm91cC5cbiAgICogRGVzY3JpYmVzIGEgc2VjdXJpdHkgZ3JvdXAuXG4gICAqXG4gICAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cCNzcGVjXG4gICAqL1xuICByZWFkb25seSBzcGVjPzogU2VjdXJpdHlHcm91cFNwZWM7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnU2VjdXJpdHlHcm91cFByb3BzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9TZWN1cml0eUdyb3VwUHJvcHMob2JqOiBTZWN1cml0eUdyb3VwUHJvcHMgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdtZXRhZGF0YSc6IG9iai5tZXRhZGF0YSxcbiAgICAnc3BlYyc6IHRvSnNvbl9TZWN1cml0eUdyb3VwU3BlYyhvYmouc3BlYyksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogU2VjdXJpdHlHcm91cFNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBTZWN1cml0eUdyb3VwLlxuICogRGVzY3JpYmVzIGEgc2VjdXJpdHkgZ3JvdXAuXG4gKlxuICogQHNjaGVtYSBTZWN1cml0eUdyb3VwU3BlY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5R3JvdXBTcGVjIHtcbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gZm9yIHRoZSBzZWN1cml0eSBncm91cC4gVGhpcyBpcyBpbmZvcm1hdGlvbmFsIG9ubHkuXG4gICAqIENvbnN0cmFpbnRzOiBVcCB0byAyNTUgY2hhcmFjdGVycyBpbiBsZW5ndGhcbiAgICogQ29uc3RyYWludHMgZm9yIEVDMi1DbGFzc2ljOiBBU0NJSSBjaGFyYWN0ZXJzXG4gICAqIENvbnN0cmFpbnRzIGZvciBFQzItVlBDOiBhLXosIEEtWiwgMC05LCBzcGFjZXMsIGFuZCAuXy06LygpIyxAW10rPSY7e30hJCpcbiAgICpcbiAgICogQHNjaGVtYSBTZWN1cml0eUdyb3VwU3BlYyNkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlY3VyaXR5IGdyb3VwLlxuICAgKiBDb25zdHJhaW50czogVXAgdG8gMjU1IGNoYXJhY3RlcnMgaW4gbGVuZ3RoLiBDYW5ub3Qgc3RhcnQgd2l0aCBzZy0uXG4gICAqIENvbnN0cmFpbnRzIGZvciBFQzItQ2xhc3NpYzogQVNDSUkgY2hhcmFjdGVyc1xuICAgKiBDb25zdHJhaW50cyBmb3IgRUMyLVZQQzogYS16LCBBLVosIDAtOSwgc3BhY2VzLCBhbmQgLl8tOi8oKSMsQFtdKz0mO3t9ISQqXG4gICAqXG4gICAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFNwZWMjbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFncyB0byBhc3NpZ24gdG8gdGhlIHNlY3VyaXR5IGdyb3VwLlxuICAgKlxuICAgKiBAc2NoZW1hIFNlY3VyaXR5R3JvdXBTcGVjI3RhZ1NwZWNpZmljYXRpb25zXG4gICAqL1xuICByZWFkb25seSB0YWdTcGVjaWZpY2F0aW9ucz86IFNlY3VyaXR5R3JvdXBTcGVjVGFnU3BlY2lmaWNhdGlvbnNbXTtcblxuICAvKipcbiAgICogW0VDMi1WUENdIFRoZSBJRCBvZiB0aGUgVlBDLiBSZXF1aXJlZCBmb3IgRUMyLVZQQy5cbiAgICpcbiAgICogQHNjaGVtYSBTZWN1cml0eUdyb3VwU3BlYyN2cGNJRFxuICAgKi9cbiAgcmVhZG9ubHkgdnBjSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFXU1Jlc291cmNlUmVmZXJlbmNlV3JhcHBlciBwcm92aWRlcyBhIHdyYXBwZXIgYXJvdW5kICpBV1NSZXNvdXJjZVJlZmVyZW5jZSB0eXBlIHRvIHByb3ZpZGUgbW9yZSB1c2VyIGZyaWVuZGx5IHN5bnRheCBmb3IgcmVmZXJlbmNlcyB1c2luZyAnZnJvbScgZmllbGQgRXg6IEFQSUlEUmVmOiAgIGZyb206ICAgICBuYW1lOiBteS1hcGlcbiAgICpcbiAgICogQHNjaGVtYSBTZWN1cml0eUdyb3VwU3BlYyN2cGNSZWZcbiAgICovXG4gIHJlYWRvbmx5IHZwY1JlZj86IFNlY3VyaXR5R3JvdXBTcGVjVnBjUmVmO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1NlY3VyaXR5R3JvdXBTcGVjJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9TZWN1cml0eUdyb3VwU3BlYyhvYmo6IFNlY3VyaXR5R3JvdXBTcGVjIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnZGVzY3JpcHRpb24nOiBvYmouZGVzY3JpcHRpb24sXG4gICAgJ25hbWUnOiBvYmoubmFtZSxcbiAgICAndGFnU3BlY2lmaWNhdGlvbnMnOiBvYmoudGFnU3BlY2lmaWNhdGlvbnM/Lm1hcCh5ID0+IHRvSnNvbl9TZWN1cml0eUdyb3VwU3BlY1RhZ1NwZWNpZmljYXRpb25zKHkpKSxcbiAgICAndnBjSUQnOiBvYmoudnBjSWQsXG4gICAgJ3ZwY1JlZic6IHRvSnNvbl9TZWN1cml0eUdyb3VwU3BlY1ZwY1JlZihvYmoudnBjUmVmKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBUaGUgdGFncyB0byBhcHBseSB0byBhIHJlc291cmNlIHdoZW4gdGhlIHJlc291cmNlIGlzIGJlaW5nIGNyZWF0ZWQuXG4gKlxuICogQHNjaGVtYSBTZWN1cml0eUdyb3VwU3BlY1RhZ1NwZWNpZmljYXRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cFNwZWNUYWdTcGVjaWZpY2F0aW9ucyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFNlY3VyaXR5R3JvdXBTcGVjVGFnU3BlY2lmaWNhdGlvbnMjcmVzb3VyY2VUeXBlXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZVR5cGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFNwZWNUYWdTcGVjaWZpY2F0aW9ucyN0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogU2VjdXJpdHlHcm91cFNwZWNUYWdTcGVjaWZpY2F0aW9uc1RhZ3NbXTtcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdTZWN1cml0eUdyb3VwU3BlY1RhZ1NwZWNpZmljYXRpb25zJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9TZWN1cml0eUdyb3VwU3BlY1RhZ1NwZWNpZmljYXRpb25zKG9iajogU2VjdXJpdHlHcm91cFNwZWNUYWdTcGVjaWZpY2F0aW9ucyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ3Jlc291cmNlVHlwZSc6IG9iai5yZXNvdXJjZVR5cGUsXG4gICAgJ3RhZ3MnOiBvYmoudGFncz8ubWFwKHkgPT4gdG9Kc29uX1NlY3VyaXR5R3JvdXBTcGVjVGFnU3BlY2lmaWNhdGlvbnNUYWdzKHkpKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBBV1NSZXNvdXJjZVJlZmVyZW5jZVdyYXBwZXIgcHJvdmlkZXMgYSB3cmFwcGVyIGFyb3VuZCAqQVdTUmVzb3VyY2VSZWZlcmVuY2UgdHlwZSB0byBwcm92aWRlIG1vcmUgdXNlciBmcmllbmRseSBzeW50YXggZm9yIHJlZmVyZW5jZXMgdXNpbmcgJ2Zyb20nIGZpZWxkIEV4OiBBUElJRFJlZjogICBmcm9tOiAgICAgbmFtZTogbXktYXBpXG4gKlxuICogQHNjaGVtYSBTZWN1cml0eUdyb3VwU3BlY1ZwY1JlZlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5R3JvdXBTcGVjVnBjUmVmIHtcbiAgLyoqXG4gICAqIEFXU1Jlc291cmNlUmVmZXJlbmNlIHByb3ZpZGVzIGFsbCB0aGUgdmFsdWVzIG5lY2Vzc2FyeSB0byByZWZlcmVuY2UgYW5vdGhlciBrOHMgcmVzb3VyY2UgZm9yIGZpbmRpbmcgdGhlIGlkZW50aWZpZXIoSWQvQVJOL05hbWUpXG4gICAqXG4gICAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFNwZWNWcGNSZWYjZnJvbVxuICAgKi9cbiAgcmVhZG9ubHkgZnJvbT86IFNlY3VyaXR5R3JvdXBTcGVjVnBjUmVmRnJvbTtcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdTZWN1cml0eUdyb3VwU3BlY1ZwY1JlZicgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fU2VjdXJpdHlHcm91cFNwZWNWcGNSZWYob2JqOiBTZWN1cml0eUdyb3VwU3BlY1ZwY1JlZiB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2Zyb20nOiB0b0pzb25fU2VjdXJpdHlHcm91cFNwZWNWcGNSZWZGcm9tKG9iai5mcm9tKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBEZXNjcmliZXMgYSB0YWcuXG4gKlxuICogQHNjaGVtYSBTZWN1cml0eUdyb3VwU3BlY1RhZ1NwZWNpZmljYXRpb25zVGFnc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5R3JvdXBTcGVjVGFnU3BlY2lmaWNhdGlvbnNUYWdzIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFNwZWNUYWdTcGVjaWZpY2F0aW9uc1RhZ3Mja2V5XG4gICAqL1xuICByZWFkb25seSBrZXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFNwZWNUYWdTcGVjaWZpY2F0aW9uc1RhZ3MjdmFsdWVcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1NlY3VyaXR5R3JvdXBTcGVjVGFnU3BlY2lmaWNhdGlvbnNUYWdzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9TZWN1cml0eUdyb3VwU3BlY1RhZ1NwZWNpZmljYXRpb25zVGFncyhvYmo6IFNlY3VyaXR5R3JvdXBTcGVjVGFnU3BlY2lmaWNhdGlvbnNUYWdzIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAna2V5Jzogb2JqLmtleSxcbiAgICAndmFsdWUnOiBvYmoudmFsdWUsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQVdTUmVzb3VyY2VSZWZlcmVuY2UgcHJvdmlkZXMgYWxsIHRoZSB2YWx1ZXMgbmVjZXNzYXJ5IHRvIHJlZmVyZW5jZSBhbm90aGVyIGs4cyByZXNvdXJjZSBmb3IgZmluZGluZyB0aGUgaWRlbnRpZmllcihJZC9BUk4vTmFtZSlcbiAqXG4gKiBAc2NoZW1hIFNlY3VyaXR5R3JvdXBTcGVjVnBjUmVmRnJvbVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5R3JvdXBTcGVjVnBjUmVmRnJvbSB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFNlY3VyaXR5R3JvdXBTcGVjVnBjUmVmRnJvbSNuYW1lXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1NlY3VyaXR5R3JvdXBTcGVjVnBjUmVmRnJvbScgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fU2VjdXJpdHlHcm91cFNwZWNWcGNSZWZGcm9tKG9iajogU2VjdXJpdHlHcm91cFNwZWNWcGNSZWZGcm9tIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnbmFtZSc6IG9iai5uYW1lLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4iXX0=
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWMyc2VjdXJpdHlncm91cHMtZWMyLnNlcnZpY2VzLms4cy5hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0cy9lYzJzZWN1cml0eWdyb3Vwcy1lYzIuc2VydmljZXMuazhzLmF3cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvRkEsOERBUUM7QUF5REQsNERBV0M7QUF5QkQsOEZBUUM7QUFzQkQsd0VBT0M7QUF5QkQsc0dBUUM7QUFvQkQsZ0ZBT0M7QUExUkQscUJBQXFCO0FBQ3JCLGlDQUF1RTtBQUl2RTs7OztHQUlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsaUJBQVM7SUFDMUM7O09BRUc7SUFDSSxNQUFNLENBQVUsR0FBRyxHQUFxQjtRQUM3QyxVQUFVLEVBQUUsK0JBQStCO1FBQzNDLElBQUksRUFBRSxlQUFlO0tBQ3RCLENBQUM7SUFFRjs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQTRCLEVBQUU7UUFDbkQsT0FBTztZQUNMLEdBQUcsYUFBYSxDQUFDLEdBQUc7WUFDcEIsR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLENBQUM7U0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQW1CLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQTRCLEVBQUU7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLGFBQWEsQ0FBQyxHQUFHO1lBQ3BCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU07UUFDWCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFaEMsT0FBTztZQUNMLEdBQUcsYUFBYSxDQUFDLEdBQUc7WUFDcEIsR0FBRyx5QkFBeUIsQ0FBQyxRQUFRLENBQUM7U0FDdkMsQ0FBQztJQUNKLENBQUM7O0FBOUNILHNDQStDQztBQXVCRDs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQix5QkFBeUIsQ0FBQyxHQUFtQztJQUMzRSxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE9BQU8sU0FBUyxDQUFDO0lBQUMsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLFVBQVUsRUFBRSxHQUFHLENBQUMsUUFBUTtRQUN4QixNQUFNLEVBQUUsd0JBQXdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztLQUMzQyxDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFxREQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0Isd0JBQXdCLENBQUMsR0FBa0M7SUFDekUsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxPQUFPLFNBQVMsQ0FBQztJQUFDLENBQUM7SUFDNUMsTUFBTSxNQUFNLEdBQUc7UUFDYixhQUFhLEVBQUUsR0FBRyxDQUFDLFdBQVc7UUFDOUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1FBQ2hCLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRyxPQUFPLEVBQUUsR0FBRyxDQUFDLEtBQUs7UUFDbEIsUUFBUSxFQUFFLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7S0FDckQsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBcUJEOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLFNBQWdCLHlDQUF5QyxDQUFDLEdBQW1EO0lBQzNHLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsT0FBTyxTQUFTLENBQUM7SUFBQyxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHO1FBQ2IsY0FBYyxFQUFFLEdBQUcsQ0FBQyxZQUFZO1FBQ2hDLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLDZDQUE2QyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzdFLENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQWtCRDs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQiw4QkFBOEIsQ0FBQyxHQUF3QztJQUNyRixJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE9BQU8sU0FBUyxDQUFDO0lBQUMsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLE1BQU0sRUFBRSxrQ0FBa0MsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0tBQ3JELENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQXFCRDs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQiw2Q0FBNkMsQ0FBQyxHQUF1RDtJQUNuSCxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE9BQU8sU0FBUyxDQUFDO0lBQUMsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRztRQUNkLE9BQU8sRUFBRSxHQUFHLENBQUMsS0FBSztLQUNuQixDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFnQkQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0Isa0NBQWtDLENBQUMsR0FBNEM7SUFDN0YsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxPQUFPLFNBQVMsQ0FBQztJQUFDLENBQUM7SUFDNUMsTUFBTSxNQUFNLEdBQUc7UUFDYixNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUk7S0FDakIsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBQ0Qsd0NBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZ2VuZXJhdGVkIGJ5IGNkazhzXG5pbXBvcnQgeyBBcGlPYmplY3QsIEFwaU9iamVjdE1ldGFkYXRhLCBHcm91cFZlcnNpb25LaW5kIH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cblxuLyoqXG4gKiBTZWN1cml0eUdyb3VwIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBTZWN1cml0eUdyb3VwcyBBUElcbiAqXG4gKiBAc2NoZW1hIFNlY3VyaXR5R3JvdXBcbiAqL1xuZXhwb3J0IGNsYXNzIFNlY3VyaXR5R3JvdXAgZXh0ZW5kcyBBcGlPYmplY3Qge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYXBpVmVyc2lvbiBhbmQga2luZCBmb3IgXCJTZWN1cml0eUdyb3VwXCJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR1ZLOiBHcm91cFZlcnNpb25LaW5kID0ge1xuICAgIGFwaVZlcnNpb246ICdlYzIuc2VydmljZXMuazhzLmF3cy92MWFscGhhMScsXG4gICAga2luZDogJ1NlY3VyaXR5R3JvdXAnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBSZW5kZXJzIGEgS3ViZXJuZXRlcyBtYW5pZmVzdCBmb3IgXCJTZWN1cml0eUdyb3VwXCIuXG4gICAqXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW5saW5lIHJlc291cmNlIG1hbmlmZXN0cyBpbnNpZGUgb3RoZXIgb2JqZWN0cyAoZS5nLiBhcyB0ZW1wbGF0ZXMpLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFuaWZlc3QocHJvcHM6IFNlY3VyaXR5R3JvdXBQcm9wcyA9IHt9KTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uU2VjdXJpdHlHcm91cC5HVkssXG4gICAgICAuLi50b0pzb25fU2VjdXJpdHlHcm91cFByb3BzKHByb3BzKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBcIlNlY3VyaXR5R3JvdXBcIiBBUEkgb2JqZWN0XG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgb2JqZWN0XG4gICAqIEBwYXJhbSBpZCBhIHNjb3BlLWxvY2FsIG5hbWUgZm9yIHRoZSBvYmplY3RcbiAgICogQHBhcmFtIHByb3BzIGluaXRpYWxpemF0aW9uIHByb3BzXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNlY3VyaXR5R3JvdXBQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5TZWN1cml0eUdyb3VwLkdWSyxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIG9iamVjdCB0byBLdWJlcm5ldGVzIEpTT04uXG4gICAqL1xuICBwdWJsaWMgdG9Kc29uKCk6IGFueSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBzdXBlci50b0pzb24oKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5TZWN1cml0eUdyb3VwLkdWSyxcbiAgICAgIC4uLnRvSnNvbl9TZWN1cml0eUdyb3VwUHJvcHMocmVzb2x2ZWQpLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBTZWN1cml0eUdyb3VwIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBTZWN1cml0eUdyb3VwcyBBUElcbiAqXG4gKiBAc2NoZW1hIFNlY3VyaXR5R3JvdXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eUdyb3VwUHJvcHMge1xuICAvKipcbiAgICogQHNjaGVtYSBTZWN1cml0eUdyb3VwI21ldGFkYXRhXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IEFwaU9iamVjdE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eUdyb3VwU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIFNlY3VyaXR5R3JvdXAuXG4gICAqIERlc2NyaWJlcyBhIHNlY3VyaXR5IGdyb3VwLlxuICAgKlxuICAgKiBAc2NoZW1hIFNlY3VyaXR5R3JvdXAjc3BlY1xuICAgKi9cbiAgcmVhZG9ubHkgc3BlYz86IFNlY3VyaXR5R3JvdXBTcGVjO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1NlY3VyaXR5R3JvdXBQcm9wcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fU2VjdXJpdHlHcm91cFByb3BzKG9iajogU2VjdXJpdHlHcm91cFByb3BzIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnbWV0YWRhdGEnOiBvYmoubWV0YWRhdGEsXG4gICAgJ3NwZWMnOiB0b0pzb25fU2VjdXJpdHlHcm91cFNwZWMob2JqLnNwZWMpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFNlY3VyaXR5R3JvdXBTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgU2VjdXJpdHlHcm91cC5cbiAqIERlc2NyaWJlcyBhIHNlY3VyaXR5IGdyb3VwLlxuICpcbiAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFNwZWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eUdyb3VwU3BlYyB7XG4gIC8qKlxuICAgKiBBIGRlc2NyaXB0aW9uIGZvciB0aGUgc2VjdXJpdHkgZ3JvdXAuIFRoaXMgaXMgaW5mb3JtYXRpb25hbCBvbmx5LlxuICAgKiBDb25zdHJhaW50czogVXAgdG8gMjU1IGNoYXJhY3RlcnMgaW4gbGVuZ3RoXG4gICAqIENvbnN0cmFpbnRzIGZvciBFQzItQ2xhc3NpYzogQVNDSUkgY2hhcmFjdGVyc1xuICAgKiBDb25zdHJhaW50cyBmb3IgRUMyLVZQQzogYS16LCBBLVosIDAtOSwgc3BhY2VzLCBhbmQgLl8tOi8oKSMsQFtdKz0mO3t9ISQqXG4gICAqXG4gICAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFNwZWMjZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzZWN1cml0eSBncm91cC5cbiAgICogQ29uc3RyYWludHM6IFVwIHRvIDI1NSBjaGFyYWN0ZXJzIGluIGxlbmd0aC4gQ2Fubm90IHN0YXJ0IHdpdGggc2ctLlxuICAgKiBDb25zdHJhaW50cyBmb3IgRUMyLUNsYXNzaWM6IEFTQ0lJIGNoYXJhY3RlcnNcbiAgICogQ29uc3RyYWludHMgZm9yIEVDMi1WUEM6IGEteiwgQS1aLCAwLTksIHNwYWNlcywgYW5kIC5fLTovKCkjLEBbXSs9Jjt7fSEkKlxuICAgKlxuICAgKiBAc2NoZW1hIFNlY3VyaXR5R3JvdXBTcGVjI25hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhZ3MgdG8gYXNzaWduIHRvIHRoZSBzZWN1cml0eSBncm91cC5cbiAgICpcbiAgICogQHNjaGVtYSBTZWN1cml0eUdyb3VwU3BlYyN0YWdTcGVjaWZpY2F0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgdGFnU3BlY2lmaWNhdGlvbnM/OiBTZWN1cml0eUdyb3VwU3BlY1RhZ1NwZWNpZmljYXRpb25zW107XG5cbiAgLyoqXG4gICAqIFtFQzItVlBDXSBUaGUgSUQgb2YgdGhlIFZQQy4gUmVxdWlyZWQgZm9yIEVDMi1WUEMuXG4gICAqXG4gICAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFNwZWMjdnBjSURcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBV1NSZXNvdXJjZVJlZmVyZW5jZVdyYXBwZXIgcHJvdmlkZXMgYSB3cmFwcGVyIGFyb3VuZCAqQVdTUmVzb3VyY2VSZWZlcmVuY2UgdHlwZSB0byBwcm92aWRlIG1vcmUgdXNlciBmcmllbmRseSBzeW50YXggZm9yIHJlZmVyZW5jZXMgdXNpbmcgJ2Zyb20nIGZpZWxkIEV4OiBBUElJRFJlZjogICBmcm9tOiAgICAgbmFtZTogbXktYXBpXG4gICAqXG4gICAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFNwZWMjdnBjUmVmXG4gICAqL1xuICByZWFkb25seSB2cGNSZWY/OiBTZWN1cml0eUdyb3VwU3BlY1ZwY1JlZjtcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdTZWN1cml0eUdyb3VwU3BlYycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fU2VjdXJpdHlHcm91cFNwZWMob2JqOiBTZWN1cml0eUdyb3VwU3BlYyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2Rlc2NyaXB0aW9uJzogb2JqLmRlc2NyaXB0aW9uLFxuICAgICduYW1lJzogb2JqLm5hbWUsXG4gICAgJ3RhZ1NwZWNpZmljYXRpb25zJzogb2JqLnRhZ1NwZWNpZmljYXRpb25zPy5tYXAoeSA9PiB0b0pzb25fU2VjdXJpdHlHcm91cFNwZWNUYWdTcGVjaWZpY2F0aW9ucyh5KSksXG4gICAgJ3ZwY0lEJzogb2JqLnZwY0lkLFxuICAgICd2cGNSZWYnOiB0b0pzb25fU2VjdXJpdHlHcm91cFNwZWNWcGNSZWYob2JqLnZwY1JlZiksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogVGhlIHRhZ3MgdG8gYXBwbHkgdG8gYSByZXNvdXJjZSB3aGVuIHRoZSByZXNvdXJjZSBpcyBiZWluZyBjcmVhdGVkLlxuICpcbiAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFNwZWNUYWdTcGVjaWZpY2F0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5R3JvdXBTcGVjVGFnU3BlY2lmaWNhdGlvbnMge1xuICAvKipcbiAgICogQHNjaGVtYSBTZWN1cml0eUdyb3VwU3BlY1RhZ1NwZWNpZmljYXRpb25zI3Jlc291cmNlVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VUeXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIFNlY3VyaXR5R3JvdXBTcGVjVGFnU3BlY2lmaWNhdGlvbnMjdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IFNlY3VyaXR5R3JvdXBTcGVjVGFnU3BlY2lmaWNhdGlvbnNUYWdzW107XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnU2VjdXJpdHlHcm91cFNwZWNUYWdTcGVjaWZpY2F0aW9ucycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fU2VjdXJpdHlHcm91cFNwZWNUYWdTcGVjaWZpY2F0aW9ucyhvYmo6IFNlY3VyaXR5R3JvdXBTcGVjVGFnU3BlY2lmaWNhdGlvbnMgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdyZXNvdXJjZVR5cGUnOiBvYmoucmVzb3VyY2VUeXBlLFxuICAgICd0YWdzJzogb2JqLnRhZ3M/Lm1hcCh5ID0+IHRvSnNvbl9TZWN1cml0eUdyb3VwU3BlY1RhZ1NwZWNpZmljYXRpb25zVGFncyh5KSksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQVdTUmVzb3VyY2VSZWZlcmVuY2VXcmFwcGVyIHByb3ZpZGVzIGEgd3JhcHBlciBhcm91bmQgKkFXU1Jlc291cmNlUmVmZXJlbmNlIHR5cGUgdG8gcHJvdmlkZSBtb3JlIHVzZXIgZnJpZW5kbHkgc3ludGF4IGZvciByZWZlcmVuY2VzIHVzaW5nICdmcm9tJyBmaWVsZCBFeDogQVBJSURSZWY6ICAgZnJvbTogICAgIG5hbWU6IG15LWFwaVxuICpcbiAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFNwZWNWcGNSZWZcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eUdyb3VwU3BlY1ZwY1JlZiB7XG4gIC8qKlxuICAgKiBBV1NSZXNvdXJjZVJlZmVyZW5jZSBwcm92aWRlcyBhbGwgdGhlIHZhbHVlcyBuZWNlc3NhcnkgdG8gcmVmZXJlbmNlIGFub3RoZXIgazhzIHJlc291cmNlIGZvciBmaW5kaW5nIHRoZSBpZGVudGlmaWVyKElkL0FSTi9OYW1lKVxuICAgKlxuICAgKiBAc2NoZW1hIFNlY3VyaXR5R3JvdXBTcGVjVnBjUmVmI2Zyb21cbiAgICovXG4gIHJlYWRvbmx5IGZyb20/OiBTZWN1cml0eUdyb3VwU3BlY1ZwY1JlZkZyb207XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnU2VjdXJpdHlHcm91cFNwZWNWcGNSZWYnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1NlY3VyaXR5R3JvdXBTcGVjVnBjUmVmKG9iajogU2VjdXJpdHlHcm91cFNwZWNWcGNSZWYgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdmcm9tJzogdG9Kc29uX1NlY3VyaXR5R3JvdXBTcGVjVnBjUmVmRnJvbShvYmouZnJvbSksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogRGVzY3JpYmVzIGEgdGFnLlxuICpcbiAqIEBzY2hlbWEgU2VjdXJpdHlHcm91cFNwZWNUYWdTcGVjaWZpY2F0aW9uc1RhZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eUdyb3VwU3BlY1RhZ1NwZWNpZmljYXRpb25zVGFncyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFNlY3VyaXR5R3JvdXBTcGVjVGFnU3BlY2lmaWNhdGlvbnNUYWdzI2tleVxuICAgKi9cbiAgcmVhZG9ubHkga2V5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIFNlY3VyaXR5R3JvdXBTcGVjVGFnU3BlY2lmaWNhdGlvbnNUYWdzI3ZhbHVlXG4gICAqL1xuICByZWFkb25seSB2YWx1ZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdTZWN1cml0eUdyb3VwU3BlY1RhZ1NwZWNpZmljYXRpb25zVGFncycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fU2VjdXJpdHlHcm91cFNwZWNUYWdTcGVjaWZpY2F0aW9uc1RhZ3Mob2JqOiBTZWN1cml0eUdyb3VwU3BlY1RhZ1NwZWNpZmljYXRpb25zVGFncyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2tleSc6IG9iai5rZXksXG4gICAgJ3ZhbHVlJzogb2JqLnZhbHVlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEFXU1Jlc291cmNlUmVmZXJlbmNlIHByb3ZpZGVzIGFsbCB0aGUgdmFsdWVzIG5lY2Vzc2FyeSB0byByZWZlcmVuY2UgYW5vdGhlciBrOHMgcmVzb3VyY2UgZm9yIGZpbmRpbmcgdGhlIGlkZW50aWZpZXIoSWQvQVJOL05hbWUpXG4gKlxuICogQHNjaGVtYSBTZWN1cml0eUdyb3VwU3BlY1ZwY1JlZkZyb21cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eUdyb3VwU3BlY1ZwY1JlZkZyb20ge1xuICAvKipcbiAgICogQHNjaGVtYSBTZWN1cml0eUdyb3VwU3BlY1ZwY1JlZkZyb20jbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdTZWN1cml0eUdyb3VwU3BlY1ZwY1JlZkZyb20nIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX1NlY3VyaXR5R3JvdXBTcGVjVnBjUmVmRnJvbShvYmo6IFNlY3VyaXR5R3JvdXBTcGVjVnBjUmVmRnJvbSB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ25hbWUnOiBvYmoubmFtZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuIl19
|
|
@@ -14,6 +14,13 @@ const cdk8s_1 = require("cdk8s");
|
|
|
14
14
|
* @schema FieldExport
|
|
15
15
|
*/
|
|
16
16
|
class FieldExport extends cdk8s_1.ApiObject {
|
|
17
|
+
/**
|
|
18
|
+
* Returns the apiVersion and kind for "FieldExport"
|
|
19
|
+
*/
|
|
20
|
+
static GVK = {
|
|
21
|
+
apiVersion: 'services.k8s.aws/v1alpha1',
|
|
22
|
+
kind: 'FieldExport',
|
|
23
|
+
};
|
|
17
24
|
/**
|
|
18
25
|
* Renders a Kubernetes manifest for "FieldExport".
|
|
19
26
|
*
|
|
@@ -51,13 +58,6 @@ class FieldExport extends cdk8s_1.ApiObject {
|
|
|
51
58
|
}
|
|
52
59
|
}
|
|
53
60
|
exports.FieldExport = FieldExport;
|
|
54
|
-
/**
|
|
55
|
-
* Returns the apiVersion and kind for "FieldExport"
|
|
56
|
-
*/
|
|
57
|
-
FieldExport.GVK = {
|
|
58
|
-
apiVersion: 'services.k8s.aws/v1alpha1',
|
|
59
|
-
kind: 'FieldExport',
|
|
60
|
-
};
|
|
61
61
|
/**
|
|
62
62
|
* Converts an object of type 'FieldExportProps' to JSON representation.
|
|
63
63
|
*/
|
|
@@ -148,4 +148,4 @@ var FieldExportSpecToKind;
|
|
|
148
148
|
/** secret */
|
|
149
149
|
FieldExportSpecToKind["SECRET"] = "secret";
|
|
150
150
|
})(FieldExportSpecToKind || (exports.FieldExportSpecToKind = FieldExportSpecToKind = {}));
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRleHBvcnRzLXNlcnZpY2VzLms4cy5hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0cy9maWVsZGV4cG9ydHMtc2VydmljZXMuazhzLmF3cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtRkEsMERBUUM7QUE2QkQsd0RBUUM7QUEyQkQsZ0VBUUM7QUFrQ0QsNERBU0M7QUE4QkQsZ0ZBU0M7QUFyUEQscUJBQXFCO0FBQ3JCLGlDQUF1RTtBQUl2RTs7OztHQUlHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsaUJBQVM7SUFTeEM7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUEwQixFQUFFO1FBQ2pELE9BQU87WUFDTCxHQUFHLFdBQVcsQ0FBQyxHQUFHO1lBQ2xCLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUEwQixFQUFFO1FBQzNFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxXQUFXLENBQUMsR0FBRztZQUNsQixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1gsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWhDLE9BQU87WUFDTCxHQUFHLFdBQVcsQ0FBQyxHQUFHO1lBQ2xCLEdBQUcsdUJBQXVCLENBQUMsUUFBUSxDQUFDO1NBQ3JDLENBQUM7SUFDSixDQUFDOztBQTlDSCxrQ0ErQ0M7QUE5Q0M7O0dBRUc7QUFDb0IsZUFBRyxHQUFxQjtJQUM3QyxVQUFVLEVBQUUsMkJBQTJCO0lBQ3ZDLElBQUksRUFBRSxhQUFhO0NBQ3BCLENBQUM7QUE4REo7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IsdUJBQXVCLENBQUMsR0FBaUM7SUFD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QUFnQjtJQUNoQixnREFBdUIsQ0FBQTtJQUN2QixhQUFhO0lBQ2IsMENBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLHFCQUFxQixxQ0FBckIscUJBQXFCLFFBS2hDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZ2VuZXJhdGVkIGJ5IGNkazhzXG5pbXBvcnQgeyBBcGlPYmplY3QsIEFwaU9iamVjdE1ldGFkYXRhLCBHcm91cFZlcnNpb25LaW5kIH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cblxuLyoqXG4gKiBGaWVsZEV4cG9ydCBpcyB0aGUgc2NoZW1hIGZvciB0aGUgRmllbGRFeHBvcnQgQVBJLlxuICpcbiAqIEBzY2hlbWEgRmllbGRFeHBvcnRcbiAqL1xuZXhwb3J0IGNsYXNzIEZpZWxkRXhwb3J0IGV4dGVuZHMgQXBpT2JqZWN0IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGFwaVZlcnNpb24gYW5kIGtpbmQgZm9yIFwiRmllbGRFeHBvcnRcIlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHVks6IEdyb3VwVmVyc2lvbktpbmQgPSB7XG4gICAgYXBpVmVyc2lvbjogJ3NlcnZpY2VzLms4cy5hd3MvdjFhbHBoYTEnLFxuICAgIGtpbmQ6ICdGaWVsZEV4cG9ydCcsXG4gIH07XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgYSBLdWJlcm5ldGVzIG1hbmlmZXN0IGZvciBcIkZpZWxkRXhwb3J0XCIuXG4gICAqXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW5saW5lIHJlc291cmNlIG1hbmlmZXN0cyBpbnNpZGUgb3RoZXIgb2JqZWN0cyAoZS5nLiBhcyB0ZW1wbGF0ZXMpLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFuaWZlc3QocHJvcHM6IEZpZWxkRXhwb3J0UHJvcHMgPSB7fSk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLkZpZWxkRXhwb3J0LkdWSyxcbiAgICAgIC4uLnRvSnNvbl9GaWVsZEV4cG9ydFByb3BzKHByb3BzKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBcIkZpZWxkRXhwb3J0XCIgQVBJIG9iamVjdFxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIG9iamVjdFxuICAgKiBAcGFyYW0gaWQgYSBzY29wZS1sb2NhbCBuYW1lIGZvciB0aGUgb2JqZWN0XG4gICAqIEBwYXJhbSBwcm9wcyBpbml0aWFsaXphdGlvbiBwcm9wc1xuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBGaWVsZEV4cG9ydFByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLkZpZWxkRXhwb3J0LkdWSyxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIG9iamVjdCB0byBLdWJlcm5ldGVzIEpTT04uXG4gICAqL1xuICBwdWJsaWMgdG9Kc29uKCk6IGFueSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBzdXBlci50b0pzb24oKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5GaWVsZEV4cG9ydC5HVkssXG4gICAgICAuLi50b0pzb25fRmllbGRFeHBvcnRQcm9wcyhyZXNvbHZlZCksXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEZpZWxkRXhwb3J0IGlzIHRoZSBzY2hlbWEgZm9yIHRoZSBGaWVsZEV4cG9ydCBBUEkuXG4gKlxuICogQHNjaGVtYSBGaWVsZEV4cG9ydFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkRXhwb3J0UHJvcHMge1xuICAvKipcbiAgICogQHNjaGVtYSBGaWVsZEV4cG9ydCNtZXRhZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBBcGlPYmplY3RNZXRhZGF0YTtcblxuICAvKipcbiAgICogRmllbGRFeHBvcnRTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgdGhlIEZpZWxkRXhwb3J0LlxuICAgKlxuICAgKiBAc2NoZW1hIEZpZWxkRXhwb3J0I3NwZWNcbiAgICovXG4gIHJlYWRvbmx5IHNwZWM/OiBGaWVsZEV4cG9ydFNwZWM7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRmllbGRFeHBvcnRQcm9wcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRmllbGRFeHBvcnRQcm9wcyhvYmo6IEZpZWxkRXhwb3J0UHJvcHMgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdtZXRhZGF0YSc6IG9iai5tZXRhZGF0YSxcbiAgICAnc3BlYyc6IHRvSnNvbl9GaWVsZEV4cG9ydFNwZWMob2JqLnNwZWMpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEZpZWxkRXhwb3J0U3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIHRoZSBGaWVsZEV4cG9ydC5cbiAqXG4gKiBAc2NoZW1hIEZpZWxkRXhwb3J0U3BlY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkRXhwb3J0U3BlYyB7XG4gIC8qKlxuICAgKiBSZXNvdXJjZUZpZWxkU2VsZWN0b3IgcHJvdmlkZXMgdGhlIHZhbHVlcyBuZWNlc3NhcnkgdG8gaWRlbnRpZnkgYW4gaW5kaXZpZHVhbCBmaWVsZCBvbiBhbiBpbmRpdmlkdWFsIEs4cyByZXNvdXJjZS5cbiAgICpcbiAgICogQHNjaGVtYSBGaWVsZEV4cG9ydFNwZWMjZnJvbVxuICAgKi9cbiAgcmVhZG9ubHkgZnJvbTogRmllbGRFeHBvcnRTcGVjRnJvbTtcblxuICAvKipcbiAgICogRmllbGRFeHBvcnRUYXJnZXQgcHJvdmlkZXMgdGhlIHZhbHVlcyBuZWNlc3NhcnkgdG8gaWRlbnRpZnkgdGhlIG91dHB1dCBwYXRoIGZvciBhIGZpZWxkIGV4cG9ydC5cbiAgICpcbiAgICogQHNjaGVtYSBGaWVsZEV4cG9ydFNwZWMjdG9cbiAgICovXG4gIHJlYWRvbmx5IHRvOiBGaWVsZEV4cG9ydFNwZWNUbztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdGaWVsZEV4cG9ydFNwZWMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0ZpZWxkRXhwb3J0U3BlYyhvYmo6IEZpZWxkRXhwb3J0U3BlYyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2Zyb20nOiB0b0pzb25fRmllbGRFeHBvcnRTcGVjRnJvbShvYmouZnJvbSksXG4gICAgJ3RvJzogdG9Kc29uX0ZpZWxkRXhwb3J0U3BlY1RvKG9iai50byksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogUmVzb3VyY2VGaWVsZFNlbGVjdG9yIHByb3ZpZGVzIHRoZSB2YWx1ZXMgbmVjZXNzYXJ5IHRvIGlkZW50aWZ5IGFuIGluZGl2aWR1YWwgZmllbGQgb24gYW4gaW5kaXZpZHVhbCBLOHMgcmVzb3VyY2UuXG4gKlxuICogQHNjaGVtYSBGaWVsZEV4cG9ydFNwZWNGcm9tXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRFeHBvcnRTcGVjRnJvbSB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIEZpZWxkRXhwb3J0U3BlY0Zyb20jcGF0aFxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lc3BhY2VkUmVzb3VyY2UgcHJvdmlkZXMgYWxsIHRoZSB2YWx1ZXMgbmVjZXNzYXJ5IHRvIGlkZW50aWZ5IGFuIEFDSyByZXNvdXJjZSBvZiBhIGdpdmVuIHR5cGUgKHdpdGhpbiB0aGUgc2FtZSBuYW1lc3BhY2UgYXMgdGhlIGN1c3RvbSByZXNvdXJjZSBjb250YWluaW5nIHRoaXMgdHlwZSkuXG4gICAqXG4gICAqIEBzY2hlbWEgRmllbGRFeHBvcnRTcGVjRnJvbSNyZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2U6IEZpZWxkRXhwb3J0U3BlY0Zyb21SZXNvdXJjZTtcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdGaWVsZEV4cG9ydFNwZWNGcm9tJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9GaWVsZEV4cG9ydFNwZWNGcm9tKG9iajogRmllbGRFeHBvcnRTcGVjRnJvbSB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ3BhdGgnOiBvYmoucGF0aCxcbiAgICAncmVzb3VyY2UnOiB0b0pzb25fRmllbGRFeHBvcnRTcGVjRnJvbVJlc291cmNlKG9iai5yZXNvdXJjZSksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogRmllbGRFeHBvcnRUYXJnZXQgcHJvdmlkZXMgdGhlIHZhbHVlcyBuZWNlc3NhcnkgdG8gaWRlbnRpZnkgdGhlIG91dHB1dCBwYXRoIGZvciBhIGZpZWxkIGV4cG9ydC5cbiAqXG4gKiBAc2NoZW1hIEZpZWxkRXhwb3J0U3BlY1RvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRFeHBvcnRTcGVjVG8ge1xuICAvKipcbiAgICogRmllbGRFeHBvcnRPdXRwdXRUeXBlIHJlcHJlc2VudHMgYWxsIHR5cGVzIHRoYXQgY2FuIGJlIHByb2R1Y2VkIGJ5IGEgZmllbGQgZXhwb3J0IG9wZXJhdGlvblxuICAgKlxuICAgKiBAc2NoZW1hIEZpZWxkRXhwb3J0U3BlY1RvI2tpbmRcbiAgICovXG4gIHJlYWRvbmx5IGtpbmQ6IEZpZWxkRXhwb3J0U3BlY1RvS2luZDtcblxuICAvKipcbiAgICogQHNjaGVtYSBGaWVsZEV4cG9ydFNwZWNUbyNuYW1lXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWVzcGFjZSBpcyBtYXJrZWQgYXMgb3B0aW9uYWwsIHNvIHdlIGNhbm5vdCBjb21wb3NlIGBOYW1lc3BhY2VkTmFtZWBcbiAgICpcbiAgICogQHNjaGVtYSBGaWVsZEV4cG9ydFNwZWNUbyNuYW1lc3BhY2VcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdGaWVsZEV4cG9ydFNwZWNUbycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRmllbGRFeHBvcnRTcGVjVG8ob2JqOiBGaWVsZEV4cG9ydFNwZWNUbyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2tpbmQnOiBvYmoua2luZCxcbiAgICAnbmFtZSc6IG9iai5uYW1lLFxuICAgICduYW1lc3BhY2UnOiBvYmoubmFtZXNwYWNlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIE5hbWVzcGFjZWRSZXNvdXJjZSBwcm92aWRlcyBhbGwgdGhlIHZhbHVlcyBuZWNlc3NhcnkgdG8gaWRlbnRpZnkgYW4gQUNLIHJlc291cmNlIG9mIGEgZ2l2ZW4gdHlwZSAod2l0aGluIHRoZSBzYW1lIG5hbWVzcGFjZSBhcyB0aGUgY3VzdG9tIHJlc291cmNlIGNvbnRhaW5pbmcgdGhpcyB0eXBlKS5cbiAqXG4gKiBAc2NoZW1hIEZpZWxkRXhwb3J0U3BlY0Zyb21SZXNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkRXhwb3J0U3BlY0Zyb21SZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIEZpZWxkRXhwb3J0U3BlY0Zyb21SZXNvdXJjZSNncm91cFxuICAgKi9cbiAgcmVhZG9ubHkgZ3JvdXA6IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBGaWVsZEV4cG9ydFNwZWNGcm9tUmVzb3VyY2Uja2luZFxuICAgKi9cbiAgcmVhZG9ubHkga2luZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIEZpZWxkRXhwb3J0U3BlY0Zyb21SZXNvdXJjZSNuYW1lXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRmllbGRFeHBvcnRTcGVjRnJvbVJlc291cmNlJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9GaWVsZEV4cG9ydFNwZWNGcm9tUmVzb3VyY2Uob2JqOiBGaWVsZEV4cG9ydFNwZWNGcm9tUmVzb3VyY2UgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdncm91cCc6IG9iai5ncm91cCxcbiAgICAna2luZCc6IG9iai5raW5kLFxuICAgICduYW1lJzogb2JqLm5hbWUsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogRmllbGRFeHBvcnRPdXRwdXRUeXBlIHJlcHJlc2VudHMgYWxsIHR5cGVzIHRoYXQgY2FuIGJlIHByb2R1Y2VkIGJ5IGEgZmllbGQgZXhwb3J0IG9wZXJhdGlvblxuICpcbiAqIEBzY2hlbWEgRmllbGRFeHBvcnRTcGVjVG9LaW5kXG4gKi9cbmV4cG9ydCBlbnVtIEZpZWxkRXhwb3J0U3BlY1RvS2luZCB7XG4gIC8qKiBjb25maWdtYXAgKi9cbiAgQ09ORklHTUFQID0gJ2NvbmZpZ21hcCcsXG4gIC8qKiBzZWNyZXQgKi9cbiAgU0VDUkVUID0gJ3NlY3JldCcsXG59XG5cbiJdfQ==
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRleHBvcnRzLXNlcnZpY2VzLms4cy5hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0cy9maWVsZGV4cG9ydHMtc2VydmljZXMuazhzLmF3cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtRkEsMERBUUM7QUE2QkQsd0RBUUM7QUEyQkQsZ0VBUUM7QUFrQ0QsNERBU0M7QUE4QkQsZ0ZBU0M7QUFyUEQscUJBQXFCO0FBQ3JCLGlDQUF1RTtBQUl2RTs7OztHQUlHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsaUJBQVM7SUFDeEM7O09BRUc7SUFDSSxNQUFNLENBQVUsR0FBRyxHQUFxQjtRQUM3QyxVQUFVLEVBQUUsMkJBQTJCO1FBQ3ZDLElBQUksRUFBRSxhQUFhO0tBQ3BCLENBQUM7SUFFRjs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQTBCLEVBQUU7UUFDakQsT0FBTztZQUNMLEdBQUcsV0FBVyxDQUFDLEdBQUc7WUFDbEIsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUM7U0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQW1CLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQTBCLEVBQUU7UUFDM0UsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLFdBQVcsQ0FBQyxHQUFHO1lBQ2xCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU07UUFDWCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFaEMsT0FBTztZQUNMLEdBQUcsV0FBVyxDQUFDLEdBQUc7WUFDbEIsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7U0FDckMsQ0FBQztJQUNKLENBQUM7O0FBOUNILGtDQStDQztBQXNCRDs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQix1QkFBdUIsQ0FBQyxH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SUFDL0IsZ0JBQWdCO0lBQ2hCLGdEQUF1QixDQUFBO0lBQ3ZCLGFBQWE7SUFDYiwwQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTFcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFLaEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBnZW5lcmF0ZWQgYnkgY2RrOHNcbmltcG9ydCB7IEFwaU9iamVjdCwgQXBpT2JqZWN0TWV0YWRhdGEsIEdyb3VwVmVyc2lvbktpbmQgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuXG4vKipcbiAqIEZpZWxkRXhwb3J0IGlzIHRoZSBzY2hlbWEgZm9yIHRoZSBGaWVsZEV4cG9ydCBBUEkuXG4gKlxuICogQHNjaGVtYSBGaWVsZEV4cG9ydFxuICovXG5leHBvcnQgY2xhc3MgRmllbGRFeHBvcnQgZXh0ZW5kcyBBcGlPYmplY3Qge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYXBpVmVyc2lvbiBhbmQga2luZCBmb3IgXCJGaWVsZEV4cG9ydFwiXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdWSzogR3JvdXBWZXJzaW9uS2luZCA9IHtcbiAgICBhcGlWZXJzaW9uOiAnc2VydmljZXMuazhzLmF3cy92MWFscGhhMScsXG4gICAga2luZDogJ0ZpZWxkRXhwb3J0JyxcbiAgfTtcblxuICAvKipcbiAgICogUmVuZGVycyBhIEt1YmVybmV0ZXMgbWFuaWZlc3QgZm9yIFwiRmllbGRFeHBvcnRcIi5cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBpbmxpbmUgcmVzb3VyY2UgbWFuaWZlc3RzIGluc2lkZSBvdGhlciBvYmplY3RzIChlLmcuIGFzIHRlbXBsYXRlcykuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBpbml0aWFsaXphdGlvbiBwcm9wc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYW5pZmVzdChwcm9wczogRmllbGRFeHBvcnRQcm9wcyA9IHt9KTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uRmllbGRFeHBvcnQuR1ZLLFxuICAgICAgLi4udG9Kc29uX0ZpZWxkRXhwb3J0UHJvcHMocHJvcHMpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lcyBhIFwiRmllbGRFeHBvcnRcIiBBUEkgb2JqZWN0XG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgb2JqZWN0XG4gICAqIEBwYXJhbSBpZCBhIHNjb3BlLWxvY2FsIG5hbWUgZm9yIHRoZSBvYmplY3RcbiAgICogQHBhcmFtIHByb3BzIGluaXRpYWxpemF0aW9uIHByb3BzXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEZpZWxkRXhwb3J0UHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4uRmllbGRFeHBvcnQuR1ZLLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgb2JqZWN0IHRvIEt1YmVybmV0ZXMgSlNPTi5cbiAgICovXG4gIHB1YmxpYyB0b0pzb24oKTogYW55IHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHN1cGVyLnRvSnNvbigpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLkZpZWxkRXhwb3J0LkdWSyxcbiAgICAgIC4uLnRvSnNvbl9GaWVsZEV4cG9ydFByb3BzKHJlc29sdmVkKSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogRmllbGRFeHBvcnQgaXMgdGhlIHNjaGVtYSBmb3IgdGhlIEZpZWxkRXhwb3J0IEFQSS5cbiAqXG4gKiBAc2NoZW1hIEZpZWxkRXhwb3J0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRFeHBvcnRQcm9wcyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIEZpZWxkRXhwb3J0I21ldGFkYXRhXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IEFwaU9iamVjdE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBGaWVsZEV4cG9ydFNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiB0aGUgRmllbGRFeHBvcnQuXG4gICAqXG4gICAqIEBzY2hlbWEgRmllbGRFeHBvcnQjc3BlY1xuICAgKi9cbiAgcmVhZG9ubHkgc3BlYz86IEZpZWxkRXhwb3J0U3BlYztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdGaWVsZEV4cG9ydFByb3BzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9GaWVsZEV4cG9ydFByb3BzKG9iajogRmllbGRFeHBvcnRQcm9wcyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ21ldGFkYXRhJzogb2JqLm1ldGFkYXRhLFxuICAgICdzcGVjJzogdG9Kc29uX0ZpZWxkRXhwb3J0U3BlYyhvYmouc3BlYyksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogRmllbGRFeHBvcnRTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgdGhlIEZpZWxkRXhwb3J0LlxuICpcbiAqIEBzY2hlbWEgRmllbGRFeHBvcnRTcGVjXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRFeHBvcnRTcGVjIHtcbiAgLyoqXG4gICAqIFJlc291cmNlRmllbGRTZWxlY3RvciBwcm92aWRlcyB0aGUgdmFsdWVzIG5lY2Vzc2FyeSB0byBpZGVudGlmeSBhbiBpbmRpdmlkdWFsIGZpZWxkIG9uIGFuIGluZGl2aWR1YWwgSzhzIHJlc291cmNlLlxuICAgKlxuICAgKiBAc2NoZW1hIEZpZWxkRXhwb3J0U3BlYyNmcm9tXG4gICAqL1xuICByZWFkb25seSBmcm9tOiBGaWVsZEV4cG9ydFNwZWNGcm9tO1xuXG4gIC8qKlxuICAgKiBGaWVsZEV4cG9ydFRhcmdldCBwcm92aWRlcyB0aGUgdmFsdWVzIG5lY2Vzc2FyeSB0byBpZGVudGlmeSB0aGUgb3V0cHV0IHBhdGggZm9yIGEgZmllbGQgZXhwb3J0LlxuICAgKlxuICAgKiBAc2NoZW1hIEZpZWxkRXhwb3J0U3BlYyN0b1xuICAgKi9cbiAgcmVhZG9ubHkgdG86IEZpZWxkRXhwb3J0U3BlY1RvO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0ZpZWxkRXhwb3J0U3BlYycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRmllbGRFeHBvcnRTcGVjKG9iajogRmllbGRFeHBvcnRTcGVjIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnZnJvbSc6IHRvSnNvbl9GaWVsZEV4cG9ydFNwZWNGcm9tKG9iai5mcm9tKSxcbiAgICAndG8nOiB0b0pzb25fRmllbGRFeHBvcnRTcGVjVG8ob2JqLnRvKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBSZXNvdXJjZUZpZWxkU2VsZWN0b3IgcHJvdmlkZXMgdGhlIHZhbHVlcyBuZWNlc3NhcnkgdG8gaWRlbnRpZnkgYW4gaW5kaXZpZHVhbCBmaWVsZCBvbiBhbiBpbmRpdmlkdWFsIEs4cyByZXNvdXJjZS5cbiAqXG4gKiBAc2NoZW1hIEZpZWxkRXhwb3J0U3BlY0Zyb21cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZEV4cG9ydFNwZWNGcm9tIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRmllbGRFeHBvcnRTcGVjRnJvbSNwYXRoXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWVzcGFjZWRSZXNvdXJjZSBwcm92aWRlcyBhbGwgdGhlIHZhbHVlcyBuZWNlc3NhcnkgdG8gaWRlbnRpZnkgYW4gQUNLIHJlc291cmNlIG9mIGEgZ2l2ZW4gdHlwZSAod2l0aGluIHRoZSBzYW1lIG5hbWVzcGFjZSBhcyB0aGUgY3VzdG9tIHJlc291cmNlIGNvbnRhaW5pbmcgdGhpcyB0eXBlKS5cbiAgICpcbiAgICogQHNjaGVtYSBGaWVsZEV4cG9ydFNwZWNGcm9tI3Jlc291cmNlXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZTogRmllbGRFeHBvcnRTcGVjRnJvbVJlc291cmNlO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0ZpZWxkRXhwb3J0U3BlY0Zyb20nIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0ZpZWxkRXhwb3J0U3BlY0Zyb20ob2JqOiBGaWVsZEV4cG9ydFNwZWNGcm9tIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAncGF0aCc6IG9iai5wYXRoLFxuICAgICdyZXNvdXJjZSc6IHRvSnNvbl9GaWVsZEV4cG9ydFNwZWNGcm9tUmVzb3VyY2Uob2JqLnJlc291cmNlKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBGaWVsZEV4cG9ydFRhcmdldCBwcm92aWRlcyB0aGUgdmFsdWVzIG5lY2Vzc2FyeSB0byBpZGVudGlmeSB0aGUgb3V0cHV0IHBhdGggZm9yIGEgZmllbGQgZXhwb3J0LlxuICpcbiAqIEBzY2hlbWEgRmllbGRFeHBvcnRTcGVjVG9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZEV4cG9ydFNwZWNUbyB7XG4gIC8qKlxuICAgKiBGaWVsZEV4cG9ydE91dHB1dFR5cGUgcmVwcmVzZW50cyBhbGwgdHlwZXMgdGhhdCBjYW4gYmUgcHJvZHVjZWQgYnkgYSBmaWVsZCBleHBvcnQgb3BlcmF0aW9uXG4gICAqXG4gICAqIEBzY2hlbWEgRmllbGRFeHBvcnRTcGVjVG8ja2luZFxuICAgKi9cbiAgcmVhZG9ubHkga2luZDogRmllbGRFeHBvcnRTcGVjVG9LaW5kO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIEZpZWxkRXhwb3J0U3BlY1RvI25hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZXNwYWNlIGlzIG1hcmtlZCBhcyBvcHRpb25hbCwgc28gd2UgY2Fubm90IGNvbXBvc2UgYE5hbWVzcGFjZWROYW1lYFxuICAgKlxuICAgKiBAc2NoZW1hIEZpZWxkRXhwb3J0U3BlY1RvI25hbWVzcGFjZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0ZpZWxkRXhwb3J0U3BlY1RvJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9GaWVsZEV4cG9ydFNwZWNUbyhvYmo6IEZpZWxkRXhwb3J0U3BlY1RvIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAna2luZCc6IG9iai5raW5kLFxuICAgICduYW1lJzogb2JqLm5hbWUsXG4gICAgJ25hbWVzcGFjZSc6IG9iai5uYW1lc3BhY2UsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogTmFtZXNwYWNlZFJlc291cmNlIHByb3ZpZGVzIGFsbCB0aGUgdmFsdWVzIG5lY2Vzc2FyeSB0byBpZGVudGlmeSBhbiBBQ0sgcmVzb3VyY2Ugb2YgYSBnaXZlbiB0eXBlICh3aXRoaW4gdGhlIHNhbWUgbmFtZXNwYWNlIGFzIHRoZSBjdXN0b20gcmVzb3VyY2UgY29udGFpbmluZyB0aGlzIHR5cGUpLlxuICpcbiAqIEBzY2hlbWEgRmllbGRFeHBvcnRTcGVjRnJvbVJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRFeHBvcnRTcGVjRnJvbVJlc291cmNlIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRmllbGRFeHBvcnRTcGVjRnJvbVJlc291cmNlI2dyb3VwXG4gICAqL1xuICByZWFkb25seSBncm91cDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIEZpZWxkRXhwb3J0U3BlY0Zyb21SZXNvdXJjZSNraW5kXG4gICAqL1xuICByZWFkb25seSBraW5kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgRmllbGRFeHBvcnRTcGVjRnJvbVJlc291cmNlI25hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdGaWVsZEV4cG9ydFNwZWNGcm9tUmVzb3VyY2UnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0ZpZWxkRXhwb3J0U3BlY0Zyb21SZXNvdXJjZShvYmo6IEZpZWxkRXhwb3J0U3BlY0Zyb21SZXNvdXJjZSB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2dyb3VwJzogb2JqLmdyb3VwLFxuICAgICdraW5kJzogb2JqLmtpbmQsXG4gICAgJ25hbWUnOiBvYmoubmFtZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBGaWVsZEV4cG9ydE91dHB1dFR5cGUgcmVwcmVzZW50cyBhbGwgdHlwZXMgdGhhdCBjYW4gYmUgcHJvZHVjZWQgYnkgYSBmaWVsZCBleHBvcnQgb3BlcmF0aW9uXG4gKlxuICogQHNjaGVtYSBGaWVsZEV4cG9ydFNwZWNUb0tpbmRcbiAqL1xuZXhwb3J0IGVudW0gRmllbGRFeHBvcnRTcGVjVG9LaW5kIHtcbiAgLyoqIGNvbmZpZ21hcCAqL1xuICBDT05GSUdNQVAgPSAnY29uZmlnbWFwJyxcbiAgLyoqIHNlY3JldCAqL1xuICBTRUNSRVQgPSAnc2VjcmV0Jyxcbn1cblxuIl19
|
|
@@ -12,6 +12,13 @@ const cdk8s_1 = require("cdk8s");
|
|
|
12
12
|
* @schema Policy
|
|
13
13
|
*/
|
|
14
14
|
class Policy extends cdk8s_1.ApiObject {
|
|
15
|
+
/**
|
|
16
|
+
* Returns the apiVersion and kind for "Policy"
|
|
17
|
+
*/
|
|
18
|
+
static GVK = {
|
|
19
|
+
apiVersion: 'iam.services.k8s.aws/v1alpha1',
|
|
20
|
+
kind: 'Policy',
|
|
21
|
+
};
|
|
15
22
|
/**
|
|
16
23
|
* Renders a Kubernetes manifest for "Policy".
|
|
17
24
|
*
|
|
@@ -49,13 +56,6 @@ class Policy extends cdk8s_1.ApiObject {
|
|
|
49
56
|
}
|
|
50
57
|
}
|
|
51
58
|
exports.Policy = Policy;
|
|
52
|
-
/**
|
|
53
|
-
* Returns the apiVersion and kind for "Policy"
|
|
54
|
-
*/
|
|
55
|
-
Policy.GVK = {
|
|
56
|
-
apiVersion: 'iam.services.k8s.aws/v1alpha1',
|
|
57
|
-
kind: 'Policy',
|
|
58
|
-
};
|
|
59
59
|
/**
|
|
60
60
|
* Converts an object of type 'PolicyProps' to JSON representation.
|
|
61
61
|
*/
|
|
@@ -105,4 +105,4 @@ function toJson_PolicySpecTags(obj) {
|
|
|
105
105
|
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
106
106
|
}
|
|
107
107
|
/* eslint-enable max-len, quote-props */
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtcG9saWNpZXMtaWFtLnNlcnZpY2VzLms4cy5hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0cy9pYW1wb2xpY2llcy1pYW0uc2VydmljZXMuazhzLmF3cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFzRkEsZ0RBUUM7QUFvRUQsOENBV0M7QUF5QkQsc0RBUUM7QUE5TUQscUJBQXFCO0FBQ3JCLGlDQUF1RTtBQUl2RTs7OztHQUlHO0FBQ0gsTUFBYSxNQUFPLFNBQVEsaUJBQVM7SUFTbkM7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFxQixFQUFFO1FBQzVDLE9BQU87WUFDTCxHQUFHLE1BQU0sQ0FBQyxHQUFHO1lBQ2IsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7U0FDN0IsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQW1CLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXFCLEVBQUU7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLE1BQU0sQ0FBQyxHQUFHO1lBQ2IsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTTtRQUNYLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVoQyxPQUFPO1lBQ0wsR0FBRyxNQUFNLENBQUMsR0FBRztZQUNiLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxDQUFDO1NBQ2hDLENBQUM7SUFDSixDQUFDOztBQTlDSCx3QkErQ0M7QUE5Q0M7O0dBRUc7QUFDb0IsVUFBRyxHQUFxQjtJQUM3QyxVQUFVLEVBQUUsK0JBQStCO0lBQzNDLElBQUksRUFBRSxRQUFRO0NBQ2YsQ0FBQztBQWlFSjs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQixrQkFBa0IsQ0FBQyxHQUE0QjtJQUM3RCxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE9BQU8sU0FBUyxDQUFDO0lBQUMsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLFVBQVUsRUFBRSxHQUFHLENBQUMsUUFBUTtRQUN4QixNQUFNLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztLQUNwQyxDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFnRUQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IsaUJBQWlCLENBQUMsR0FBMkI7SUFDM0QsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxPQUFPLFNBQVMsQ0FBQztJQUFDLENBQUM7SUFDNUMsTUFBTSxNQUFNLEdBQUc7UUFDYixhQUFhLEVBQUUsR0FBRyxDQUFDLFdBQVc7UUFDOUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNoQixnQkFBZ0IsRUFBRSxHQUFHLENBQUMsY0FBYztRQUNwQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNyRCxDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFxQkQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IscUJBQXFCLENBQUMsR0FBK0I7SUFDbkUsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxPQUFPLFNBQVMsQ0FBQztJQUFDLENBQUM7SUFDNUMsTUFBTSxNQUFNLEdBQUc7UUFDYixLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUc7UUFDZCxPQUFPLEVBQUUsR0FBRyxDQUFDLEtBQUs7S0FDbkIsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBQ0Qsd0NBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZ2VuZXJhdGVkIGJ5IGNkazhzXG5pbXBvcnQgeyBBcGlPYmplY3QsIEFwaU9iamVjdE1ldGFkYXRhLCBHcm91cFZlcnNpb25LaW5kIH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cblxuLyoqXG4gKiBQb2xpY3kgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIFBvbGljaWVzIEFQSVxuICpcbiAqIEBzY2hlbWEgUG9saWN5XG4gKi9cbmV4cG9ydCBjbGFzcyBQb2xpY3kgZXh0ZW5kcyBBcGlPYmplY3Qge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYXBpVmVyc2lvbiBhbmQga2luZCBmb3IgXCJQb2xpY3lcIlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHVks6IEdyb3VwVmVyc2lvbktpbmQgPSB7XG4gICAgYXBpVmVyc2lvbjogJ2lhbS5zZXJ2aWNlcy5rOHMuYXdzL3YxYWxwaGExJyxcbiAgICBraW5kOiAnUG9saWN5JyxcbiAgfTtcblxuICAvKipcbiAgICogUmVuZGVycyBhIEt1YmVybmV0ZXMgbWFuaWZlc3QgZm9yIFwiUG9saWN5XCIuXG4gICAqXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW5saW5lIHJlc291cmNlIG1hbmlmZXN0cyBpbnNpZGUgb3RoZXIgb2JqZWN0cyAoZS5nLiBhcyB0ZW1wbGF0ZXMpLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFuaWZlc3QocHJvcHM6IFBvbGljeVByb3BzID0ge30pOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5Qb2xpY3kuR1ZLLFxuICAgICAgLi4udG9Kc29uX1BvbGljeVByb3BzKHByb3BzKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBcIlBvbGljeVwiIEFQSSBvYmplY3RcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBvYmplY3RcbiAgICogQHBhcmFtIGlkIGEgc2NvcGUtbG9jYWwgbmFtZSBmb3IgdGhlIG9iamVjdFxuICAgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHNcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUG9saWN5UHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4uUG9saWN5LkdWSyxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIG9iamVjdCB0byBLdWJlcm5ldGVzIEpTT04uXG4gICAqL1xuICBwdWJsaWMgdG9Kc29uKCk6IGFueSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBzdXBlci50b0pzb24oKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5Qb2xpY3kuR1ZLLFxuICAgICAgLi4udG9Kc29uX1BvbGljeVByb3BzKHJlc29sdmVkKSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogUG9saWN5IGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBQb2xpY2llcyBBUElcbiAqXG4gKiBAc2NoZW1hIFBvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGljeVByb3BzIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgUG9saWN5I21ldGFkYXRhXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IEFwaU9iamVjdE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBQb2xpY3lTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgUG9saWN5LlxuICAgKiBDb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIG1hbmFnZWQgcG9saWN5LlxuICAgKiBUaGlzIGRhdGEgdHlwZSBpcyB1c2VkIGFzIGEgcmVzcG9uc2UgZWxlbWVudCBpbiB0aGUgQ3JlYXRlUG9saWN5LCBHZXRQb2xpY3ksIGFuZCBMaXN0UG9saWNpZXMgb3BlcmF0aW9ucy5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgbWFuYWdlZCBwb2xpY2llcywgcmVmZXIgdG8gTWFuYWdlZCBwb2xpY2llcyBhbmQgaW5saW5lIHBvbGljaWVzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcG9saWNpZXMtbWFuYWdlZC12cy1pbmxpbmUuaHRtbCkgaW4gdGhlIElBTSBVc2VyIEd1aWRlLlxuICAgKlxuICAgKiBAc2NoZW1hIFBvbGljeSNzcGVjXG4gICAqL1xuICByZWFkb25seSBzcGVjPzogUG9saWN5U3BlYztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdQb2xpY3lQcm9wcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fUG9saWN5UHJvcHMob2JqOiBQb2xpY3lQcm9wcyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ21ldGFkYXRhJzogb2JqLm1ldGFkYXRhLFxuICAgICdzcGVjJzogdG9Kc29uX1BvbGljeVNwZWMob2JqLnNwZWMpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFBvbGljeVNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBQb2xpY3kuXG4gKiBDb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIG1hbmFnZWQgcG9saWN5LlxuICogVGhpcyBkYXRhIHR5cGUgaXMgdXNlZCBhcyBhIHJlc3BvbnNlIGVsZW1lbnQgaW4gdGhlIENyZWF0ZVBvbGljeSwgR2V0UG9saWN5LCBhbmQgTGlzdFBvbGljaWVzIG9wZXJhdGlvbnMuXG4gKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBtYW5hZ2VkIHBvbGljaWVzLCByZWZlciB0byBNYW5hZ2VkIHBvbGljaWVzIGFuZCBpbmxpbmUgcG9saWNpZXMgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9wb2xpY2llcy1tYW5hZ2VkLXZzLWlubGluZS5odG1sKSBpbiB0aGUgSUFNIFVzZXIgR3VpZGUuXG4gKlxuICogQHNjaGVtYSBQb2xpY3lTcGVjXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5U3BlYyB7XG4gIC8qKlxuICAgKiBBIGZyaWVuZGx5IGRlc2NyaXB0aW9uIG9mIHRoZSBwb2xpY3kuXG4gICAqIFR5cGljYWxseSB1c2VkIHRvIHN0b3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwZXJtaXNzaW9ucyBkZWZpbmVkIGluIHRoZSBwb2xpY3kuIEZvciBleGFtcGxlLCBcIkdyYW50cyBhY2Nlc3MgdG8gcHJvZHVjdGlvbiBEeW5hbW9EQiB0YWJsZXMuXCJcbiAgICogVGhlIHBvbGljeSBkZXNjcmlwdGlvbiBpcyBpbW11dGFibGUuIEFmdGVyIGEgdmFsdWUgaXMgYXNzaWduZWQsIGl0IGNhbm5vdCBiZSBjaGFuZ2VkLlxuICAgKlxuICAgKiBAc2NoZW1hIFBvbGljeVNwZWMjZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZnJpZW5kbHkgbmFtZSBvZiB0aGUgcG9saWN5LlxuICAgKiBJQU0gdXNlciwgZ3JvdXAsIHJvbGUsIGFuZCBwb2xpY3kgbmFtZXMgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBhY2NvdW50LiBOYW1lcyBhcmUgbm90IGRpc3Rpbmd1aXNoZWQgYnkgY2FzZS4gRm9yIGV4YW1wbGUsIHlvdSBjYW5ub3QgY3JlYXRlIHJlc291cmNlcyBuYW1lZCBib3RoIFwiTXlSZXNvdXJjZVwiIGFuZCBcIm15cmVzb3VyY2VcIi5cbiAgICpcbiAgICogQHNjaGVtYSBQb2xpY3lTcGVjI25hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggZm9yIHRoZSBwb2xpY3kuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHBhdGhzLCBzZWUgSUFNIGlkZW50aWZpZXJzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvVXNpbmdfSWRlbnRpZmllcnMuaHRtbCkgaW4gdGhlIElBTSBVc2VyIEd1aWRlLlxuICAgKiBUaGlzIHBhcmFtZXRlciBpcyBvcHRpb25hbC4gSWYgaXQgaXMgbm90IGluY2x1ZGVkLCBpdCBkZWZhdWx0cyB0byBhIHNsYXNoICgvKS5cbiAgICogVGhpcyBwYXJhbWV0ZXIgYWxsb3dzICh0aHJvdWdoIGl0cyByZWdleCBwYXR0ZXJuIChodHRwOi8vd2lraXBlZGlhLm9yZy93aWtpL3JlZ2V4KSkgYSBzdHJpbmcgb2YgY2hhcmFjdGVycyBjb25zaXN0aW5nIG9mIGVpdGhlciBhIGZvcndhcmQgc2xhc2ggKC8pIGJ5IGl0c2VsZiBvciBhIHN0cmluZyB0aGF0IG11c3QgYmVnaW4gYW5kIGVuZCB3aXRoIGZvcndhcmQgc2xhc2hlcy4gSW4gYWRkaXRpb24sIGl0IGNhbiBjb250YWluIGFueSBBU0NJSSBjaGFyYWN0ZXIgZnJvbSB0aGUgISAoXFx1MDAyMSkgdGhyb3VnaCB0aGUgREVMIGNoYXJhY3RlciAoXFx1MDA3RiksIGluY2x1ZGluZyBtb3N0IHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMsIGRpZ2l0cywgYW5kIHVwcGVyIGFuZCBsb3dlcmNhc2VkIGxldHRlcnMuXG4gICAqIFlvdSBjYW5ub3QgdXNlIGFuIGFzdGVyaXNrICgqKSBpbiB0aGUgcGF0aCBuYW1lLlxuICAgKlxuICAgKiBAc2NoZW1hIFBvbGljeVNwZWMjcGF0aFxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEpTT04gcG9saWN5IGRvY3VtZW50IHRoYXQgeW91IHdhbnQgdG8gdXNlIGFzIHRoZSBjb250ZW50IGZvciB0aGUgbmV3IHBvbGljeS5cbiAgICogWW91IG11c3QgcHJvdmlkZSBwb2xpY2llcyBpbiBKU09OIGZvcm1hdCBpbiBJQU0uIEhvd2V2ZXIsIGZvciBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZXMgZm9ybWF0dGVkIGluIFlBTUwsIHlvdSBjYW4gcHJvdmlkZSB0aGUgcG9saWN5IGluIEpTT04gb3IgWUFNTCBmb3JtYXQuIENsb3VkRm9ybWF0aW9uIGFsd2F5cyBjb252ZXJ0cyBhIFlBTUwgcG9saWN5IHRvIEpTT04gZm9ybWF0IGJlZm9yZSBzdWJtaXR0aW5nIGl0IHRvIElBTS5cbiAgICogVGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSBwb2xpY3kgZG9jdW1lbnQgdGhhdCB5b3UgY2FuIHBhc3MgaW4gdGhpcyBvcGVyYXRpb24sIGluY2x1ZGluZyB3aGl0ZXNwYWNlLCBpcyBsaXN0ZWQgYmVsb3cuIFRvIHZpZXcgdGhlIG1heGltdW0gY2hhcmFjdGVyIGNvdW50cyBvZiBhIG1hbmFnZWQgcG9saWN5IHdpdGggbm8gd2hpdGVzcGFjZXMsIHNlZSBJQU0gYW5kIFNUUyBjaGFyYWN0ZXIgcXVvdGFzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX2lhbS1xdW90YXMuaHRtbCNyZWZlcmVuY2VfaWFtLXF1b3Rhcy1lbnRpdHktbGVuZ3RoKS5cbiAgICogVG8gbGVhcm4gbW9yZSBhYm91dCBKU09OIHBvbGljeSBncmFtbWFyLCBzZWUgR3JhbW1hciBvZiB0aGUgSUFNIEpTT04gcG9saWN5IGxhbmd1YWdlIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2dyYW1tYXIuaHRtbCkgaW4gdGhlIElBTSBVc2VyIEd1aWRlLlxuICAgKiBUaGUgcmVnZXggcGF0dGVybiAoaHR0cDovL3dpa2lwZWRpYS5vcmcvd2lraS9yZWdleCkgdXNlZCB0byB2YWxpZGF0ZSB0aGlzIHBhcmFtZXRlciBpcyBhIHN0cmluZyBvZiBjaGFyYWN0ZXJzIGNvbnNpc3Rpbmcgb2YgdGhlIGZvbGxvd2luZzpcbiAgICogKiBBbnkgcHJpbnRhYmxlIEFTQ0lJIGNoYXJhY3RlciByYW5naW5nIGZyb20gdGhlIHNwYWNlIGNoYXJhY3RlciAoXFx1MDAyMCkgICAgdGhyb3VnaCB0aGUgZW5kIG9mIHRoZSBBU0NJSSBjaGFyYWN0ZXIgcmFuZ2VcbiAgICogKiBUaGUgcHJpbnRhYmxlIGNoYXJhY3RlcnMgaW4gdGhlIEJhc2ljIExhdGluIGFuZCBMYXRpbi0xIFN1cHBsZW1lbnQgY2hhcmFjdGVyICAgIHNldCAodGhyb3VnaCBcXHUwMEZGKVxuICAgKiAqIFRoZSBzcGVjaWFsIGNoYXJhY3RlcnMgdGFiIChcXHUwMDA5KSwgbGluZSBmZWVkIChcXHUwMDBBKSwgYW5kIGNhcnJpYWdlICAgIHJldHVybiAoXFx1MDAwRClcbiAgICpcbiAgICogQHNjaGVtYSBQb2xpY3lTcGVjI3BvbGljeURvY3VtZW50XG4gICAqL1xuICByZWFkb25seSBwb2xpY3lEb2N1bWVudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgdGFncyB0aGF0IHlvdSB3YW50IHRvIGF0dGFjaCB0byB0aGUgbmV3IElBTSBjdXN0b21lciBtYW5hZ2VkIHBvbGljeS4gRWFjaCB0YWcgY29uc2lzdHMgb2YgYSBrZXkgbmFtZSBhbmQgYW4gYXNzb2NpYXRlZCB2YWx1ZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGFnZ2luZywgc2VlIFRhZ2dpbmcgSUFNIHJlc291cmNlcyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL2lkX3RhZ3MuaHRtbCkgaW4gdGhlIElBTSBVc2VyIEd1aWRlLlxuICAgKiBJZiBhbnkgb25lIG9mIHRoZSB0YWdzIGlzIGludmFsaWQgb3IgaWYgeW91IGV4Y2VlZCB0aGUgYWxsb3dlZCBtYXhpbXVtIG51bWJlciBvZiB0YWdzLCB0aGVuIHRoZSBlbnRpcmUgcmVxdWVzdCBmYWlscyBhbmQgdGhlIHJlc291cmNlIGlzIG5vdCBjcmVhdGVkLlxuICAgKlxuICAgKiBAc2NoZW1hIFBvbGljeVNwZWMjdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IFBvbGljeVNwZWNUYWdzW107XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnUG9saWN5U3BlYycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fUG9saWN5U3BlYyhvYmo6IFBvbGljeVNwZWMgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdkZXNjcmlwdGlvbic6IG9iai5kZXNjcmlwdGlvbixcbiAgICAnbmFtZSc6IG9iai5uYW1lLFxuICAgICdwYXRoJzogb2JqLnBhdGgsXG4gICAgJ3BvbGljeURvY3VtZW50Jzogb2JqLnBvbGljeURvY3VtZW50LFxuICAgICd0YWdzJzogb2JqLnRhZ3M/Lm1hcCh5ID0+IHRvSnNvbl9Qb2xpY3lTcGVjVGFncyh5KSksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQSBzdHJ1Y3R1cmUgdGhhdCByZXByZXNlbnRzIHVzZXItcHJvdmlkZWQgbWV0YWRhdGEgdGhhdCBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIGFuIElBTSByZXNvdXJjZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGFnZ2luZywgc2VlIFRhZ2dpbmcgSUFNIHJlc291cmNlcyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL2lkX3RhZ3MuaHRtbCkgaW4gdGhlIElBTSBVc2VyIEd1aWRlLlxuICpcbiAqIEBzY2hlbWEgUG9saWN5U3BlY1RhZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lTcGVjVGFncyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIFBvbGljeVNwZWNUYWdzI2tleVxuICAgKi9cbiAgcmVhZG9ubHkga2V5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIFBvbGljeVNwZWNUYWdzI3ZhbHVlXG4gICAqL1xuICByZWFkb25seSB2YWx1ZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdQb2xpY3lTcGVjVGFncycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fUG9saWN5U3BlY1RhZ3Mob2JqOiBQb2xpY3lTcGVjVGFncyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2tleSc6IG9iai5rZXksXG4gICAgJ3ZhbHVlJzogb2JqLnZhbHVlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4iXX0=
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtcG9saWNpZXMtaWFtLnNlcnZpY2VzLms4cy5hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0cy9pYW1wb2xpY2llcy1pYW0uc2VydmljZXMuazhzLmF3cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFzRkEsZ0RBUUM7QUFvRUQsOENBV0M7QUF5QkQsc0RBUUM7QUE5TUQscUJBQXFCO0FBQ3JCLGlDQUF1RTtBQUl2RTs7OztHQUlHO0FBQ0gsTUFBYSxNQUFPLFNBQVEsaUJBQVM7SUFDbkM7O09BRUc7SUFDSSxNQUFNLENBQVUsR0FBRyxHQUFxQjtRQUM3QyxVQUFVLEVBQUUsK0JBQStCO1FBQzNDLElBQUksRUFBRSxRQUFRO0tBQ2YsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBcUIsRUFBRTtRQUM1QyxPQUFPO1lBQ0wsR0FBRyxNQUFNLENBQUMsR0FBRztZQUNiLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1NBQzdCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUFxQixFQUFFO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxNQUFNLENBQUMsR0FBRztZQUNiLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU07UUFDWCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFaEMsT0FBTztZQUNMLEdBQUcsTUFBTSxDQUFDLEdBQUc7WUFDYixHQUFHLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztTQUNoQyxDQUFDO0lBQ0osQ0FBQzs7QUE5Q0gsd0JBK0NDO0FBeUJEOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLFNBQWdCLGtCQUFrQixDQUFDLEdBQTRCO0lBQzdELElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsT0FBTyxTQUFTLENBQUM7SUFBQyxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHO1FBQ2IsVUFBVSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1FBQ3hCLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0tBQ3BDLENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQWdFRDs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQixpQkFBaUIsQ0FBQyxHQUEyQjtJQUMzRCxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE9BQU8sU0FBUyxDQUFDO0lBQUMsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLGFBQWEsRUFBRSxHQUFHLENBQUMsV0FBVztRQUM5QixNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDaEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1FBQ2hCLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxjQUFjO1FBQ3BDLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3JELENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQXFCRDs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQixxQkFBcUIsQ0FBQyxHQUErQjtJQUNuRSxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE9BQU8sU0FBUyxDQUFDO0lBQUMsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRztRQUNkLE9BQU8sRUFBRSxHQUFHLENBQUMsS0FBSztLQUNuQixDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFDRCx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBnZW5lcmF0ZWQgYnkgY2RrOHNcbmltcG9ydCB7IEFwaU9iamVjdCwgQXBpT2JqZWN0TWV0YWRhdGEsIEdyb3VwVmVyc2lvbktpbmQgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuXG4vKipcbiAqIFBvbGljeSBpcyB0aGUgU2NoZW1hIGZvciB0aGUgUG9saWNpZXMgQVBJXG4gKlxuICogQHNjaGVtYSBQb2xpY3lcbiAqL1xuZXhwb3J0IGNsYXNzIFBvbGljeSBleHRlbmRzIEFwaU9iamVjdCB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhcGlWZXJzaW9uIGFuZCBraW5kIGZvciBcIlBvbGljeVwiXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdWSzogR3JvdXBWZXJzaW9uS2luZCA9IHtcbiAgICBhcGlWZXJzaW9uOiAnaWFtLnNlcnZpY2VzLms4cy5hd3MvdjFhbHBoYTEnLFxuICAgIGtpbmQ6ICdQb2xpY3knLFxuICB9O1xuXG4gIC8qKlxuICAgKiBSZW5kZXJzIGEgS3ViZXJuZXRlcyBtYW5pZmVzdCBmb3IgXCJQb2xpY3lcIi5cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBpbmxpbmUgcmVzb3VyY2UgbWFuaWZlc3RzIGluc2lkZSBvdGhlciBvYmplY3RzIChlLmcuIGFzIHRlbXBsYXRlcykuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBpbml0aWFsaXphdGlvbiBwcm9wc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYW5pZmVzdChwcm9wczogUG9saWN5UHJvcHMgPSB7fSk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLlBvbGljeS5HVkssXG4gICAgICAuLi50b0pzb25fUG9saWN5UHJvcHMocHJvcHMpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lcyBhIFwiUG9saWN5XCIgQVBJIG9iamVjdFxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIG9iamVjdFxuICAgKiBAcGFyYW0gaWQgYSBzY29wZS1sb2NhbCBuYW1lIGZvciB0aGUgb2JqZWN0XG4gICAqIEBwYXJhbSBwcm9wcyBpbml0aWFsaXphdGlvbiBwcm9wc1xuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQb2xpY3lQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5Qb2xpY3kuR1ZLLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgb2JqZWN0IHRvIEt1YmVybmV0ZXMgSlNPTi5cbiAgICovXG4gIHB1YmxpYyB0b0pzb24oKTogYW55IHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHN1cGVyLnRvSnNvbigpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLlBvbGljeS5HVkssXG4gICAgICAuLi50b0pzb25fUG9saWN5UHJvcHMocmVzb2x2ZWQpLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBQb2xpY3kgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIFBvbGljaWVzIEFQSVxuICpcbiAqIEBzY2hlbWEgUG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5UHJvcHMge1xuICAvKipcbiAgICogQHNjaGVtYSBQb2xpY3kjbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogQXBpT2JqZWN0TWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIFBvbGljeVNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBQb2xpY3kuXG4gICAqIENvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGEgbWFuYWdlZCBwb2xpY3kuXG4gICAqIFRoaXMgZGF0YSB0eXBlIGlzIHVzZWQgYXMgYSByZXNwb25zZSBlbGVtZW50IGluIHRoZSBDcmVhdGVQb2xpY3ksIEdldFBvbGljeSwgYW5kIExpc3RQb2xpY2llcyBvcGVyYXRpb25zLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBtYW5hZ2VkIHBvbGljaWVzLCByZWZlciB0byBNYW5hZ2VkIHBvbGljaWVzIGFuZCBpbmxpbmUgcG9saWNpZXMgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9wb2xpY2llcy1tYW5hZ2VkLXZzLWlubGluZS5odG1sKSBpbiB0aGUgSUFNIFVzZXIgR3VpZGUuXG4gICAqXG4gICAqIEBzY2hlbWEgUG9saWN5I3NwZWNcbiAgICovXG4gIHJlYWRvbmx5IHNwZWM/OiBQb2xpY3lTcGVjO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1BvbGljeVByb3BzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9Qb2xpY3lQcm9wcyhvYmo6IFBvbGljeVByb3BzIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnbWV0YWRhdGEnOiBvYmoubWV0YWRhdGEsXG4gICAgJ3NwZWMnOiB0b0pzb25fUG9saWN5U3BlYyhvYmouc3BlYyksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogUG9saWN5U3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIFBvbGljeS5cbiAqIENvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGEgbWFuYWdlZCBwb2xpY3kuXG4gKiBUaGlzIGRhdGEgdHlwZSBpcyB1c2VkIGFzIGEgcmVzcG9uc2UgZWxlbWVudCBpbiB0aGUgQ3JlYXRlUG9saWN5LCBHZXRQb2xpY3ksIGFuZCBMaXN0UG9saWNpZXMgb3BlcmF0aW9ucy5cbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IG1hbmFnZWQgcG9saWNpZXMsIHJlZmVyIHRvIE1hbmFnZWQgcG9saWNpZXMgYW5kIGlubGluZSBwb2xpY2llcyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3BvbGljaWVzLW1hbmFnZWQtdnMtaW5saW5lLmh0bWwpIGluIHRoZSBJQU0gVXNlciBHdWlkZS5cbiAqXG4gKiBAc2NoZW1hIFBvbGljeVNwZWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lTcGVjIHtcbiAgLyoqXG4gICAqIEEgZnJpZW5kbHkgZGVzY3JpcHRpb24gb2YgdGhlIHBvbGljeS5cbiAgICogVHlwaWNhbGx5IHVzZWQgdG8gc3RvcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBlcm1pc3Npb25zIGRlZmluZWQgaW4gdGhlIHBvbGljeS4gRm9yIGV4YW1wbGUsIFwiR3JhbnRzIGFjY2VzcyB0byBwcm9kdWN0aW9uIER5bmFtb0RCIHRhYmxlcy5cIlxuICAgKiBUaGUgcG9saWN5IGRlc2NyaXB0aW9uIGlzIGltbXV0YWJsZS4gQWZ0ZXIgYSB2YWx1ZSBpcyBhc3NpZ25lZCwgaXQgY2Fubm90IGJlIGNoYW5nZWQuXG4gICAqXG4gICAqIEBzY2hlbWEgUG9saWN5U3BlYyNkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmcmllbmRseSBuYW1lIG9mIHRoZSBwb2xpY3kuXG4gICAqIElBTSB1c2VyLCBncm91cCwgcm9sZSwgYW5kIHBvbGljeSBuYW1lcyBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGFjY291bnQuIE5hbWVzIGFyZSBub3QgZGlzdGluZ3Vpc2hlZCBieSBjYXNlLiBGb3IgZXhhbXBsZSwgeW91IGNhbm5vdCBjcmVhdGUgcmVzb3VyY2VzIG5hbWVkIGJvdGggXCJNeVJlc291cmNlXCIgYW5kIFwibXlyZXNvdXJjZVwiLlxuICAgKlxuICAgKiBAc2NoZW1hIFBvbGljeVNwZWMjbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBmb3IgdGhlIHBvbGljeS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgcGF0aHMsIHNlZSBJQU0gaWRlbnRpZmllcnMgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9Vc2luZ19JZGVudGlmaWVycy5odG1sKSBpbiB0aGUgSUFNIFVzZXIgR3VpZGUuXG4gICAqIFRoaXMgcGFyYW1ldGVyIGlzIG9wdGlvbmFsLiBJZiBpdCBpcyBub3QgaW5jbHVkZWQsIGl0IGRlZmF1bHRzIHRvIGEgc2xhc2ggKC8pLlxuICAgKiBUaGlzIHBhcmFtZXRlciBhbGxvd3MgKHRocm91Z2ggaXRzIHJlZ2V4IHBhdHRlcm4gKGh0dHA6Ly93aWtpcGVkaWEub3JnL3dpa2kvcmVnZXgpKSBhIHN0cmluZyBvZiBjaGFyYWN0ZXJzIGNvbnNpc3Rpbmcgb2YgZWl0aGVyIGEgZm9yd2FyZCBzbGFzaCAoLykgYnkgaXRzZWxmIG9yIGEgc3RyaW5nIHRoYXQgbXVzdCBiZWdpbiBhbmQgZW5kIHdpdGggZm9yd2FyZCBzbGFzaGVzLiBJbiBhZGRpdGlvbiwgaXQgY2FuIGNvbnRhaW4gYW55IEFTQ0lJIGNoYXJhY3RlciBmcm9tIHRoZSAhIChcXHUwMDIxKSB0aHJvdWdoIHRoZSBERUwgY2hhcmFjdGVyIChcXHUwMDdGKSwgaW5jbHVkaW5nIG1vc3QgcHVuY3R1YXRpb24gY2hhcmFjdGVycywgZGlnaXRzLCBhbmQgdXBwZXIgYW5kIGxvd2VyY2FzZWQgbGV0dGVycy5cbiAgICogWW91IGNhbm5vdCB1c2UgYW4gYXN0ZXJpc2sgKCopIGluIHRoZSBwYXRoIG5hbWUuXG4gICAqXG4gICAqIEBzY2hlbWEgUG9saWN5U3BlYyNwYXRoXG4gICAqL1xuICByZWFkb25seSBwYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSlNPTiBwb2xpY3kgZG9jdW1lbnQgdGhhdCB5b3Ugd2FudCB0byB1c2UgYXMgdGhlIGNvbnRlbnQgZm9yIHRoZSBuZXcgcG9saWN5LlxuICAgKiBZb3UgbXVzdCBwcm92aWRlIHBvbGljaWVzIGluIEpTT04gZm9ybWF0IGluIElBTS4gSG93ZXZlciwgZm9yIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlcyBmb3JtYXR0ZWQgaW4gWUFNTCwgeW91IGNhbiBwcm92aWRlIHRoZSBwb2xpY3kgaW4gSlNPTiBvciBZQU1MIGZvcm1hdC4gQ2xvdWRGb3JtYXRpb24gYWx3YXlzIGNvbnZlcnRzIGEgWUFNTCBwb2xpY3kgdG8gSlNPTiBmb3JtYXQgYmVmb3JlIHN1Ym1pdHRpbmcgaXQgdG8gSUFNLlxuICAgKiBUaGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIHBvbGljeSBkb2N1bWVudCB0aGF0IHlvdSBjYW4gcGFzcyBpbiB0aGlzIG9wZXJhdGlvbiwgaW5jbHVkaW5nIHdoaXRlc3BhY2UsIGlzIGxpc3RlZCBiZWxvdy4gVG8gdmlldyB0aGUgbWF4aW11bSBjaGFyYWN0ZXIgY291bnRzIG9mIGEgbWFuYWdlZCBwb2xpY3kgd2l0aCBubyB3aGl0ZXNwYWNlcywgc2VlIElBTSBhbmQgU1RTIGNoYXJhY3RlciBxdW90YXMgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfaWFtLXF1b3Rhcy5odG1sI3JlZmVyZW5jZV9pYW0tcXVvdGFzLWVudGl0eS1sZW5ndGgpLlxuICAgKiBUbyBsZWFybiBtb3JlIGFib3V0IEpTT04gcG9saWN5IGdyYW1tYXIsIHNlZSBHcmFtbWFyIG9mIHRoZSBJQU0gSlNPTiBwb2xpY3kgbGFuZ3VhZ2UgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZ3JhbW1hci5odG1sKSBpbiB0aGUgSUFNIFVzZXIgR3VpZGUuXG4gICAqIFRoZSByZWdleCBwYXR0ZXJuIChodHRwOi8vd2lraXBlZGlhLm9yZy93aWtpL3JlZ2V4KSB1c2VkIHRvIHZhbGlkYXRlIHRoaXMgcGFyYW1ldGVyIGlzIGEgc3RyaW5nIG9mIGNoYXJhY3RlcnMgY29uc2lzdGluZyBvZiB0aGUgZm9sbG93aW5nOlxuICAgKiAqIEFueSBwcmludGFibGUgQVNDSUkgY2hhcmFjdGVyIHJhbmdpbmcgZnJvbSB0aGUgc3BhY2UgY2hhcmFjdGVyIChcXHUwMDIwKSAgICB0aHJvdWdoIHRoZSBlbmQgb2YgdGhlIEFTQ0lJIGNoYXJhY3RlciByYW5nZVxuICAgKiAqIFRoZSBwcmludGFibGUgY2hhcmFjdGVycyBpbiB0aGUgQmFzaWMgTGF0aW4gYW5kIExhdGluLTEgU3VwcGxlbWVudCBjaGFyYWN0ZXIgICAgc2V0ICh0aHJvdWdoIFxcdTAwRkYpXG4gICAqICogVGhlIHNwZWNpYWwgY2hhcmFjdGVycyB0YWIgKFxcdTAwMDkpLCBsaW5lIGZlZWQgKFxcdTAwMEEpLCBhbmQgY2FycmlhZ2UgICAgcmV0dXJuIChcXHUwMDBEKVxuICAgKlxuICAgKiBAc2NoZW1hIFBvbGljeVNwZWMjcG9saWN5RG9jdW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeURvY3VtZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiB0YWdzIHRoYXQgeW91IHdhbnQgdG8gYXR0YWNoIHRvIHRoZSBuZXcgSUFNIGN1c3RvbWVyIG1hbmFnZWQgcG9saWN5LiBFYWNoIHRhZyBjb25zaXN0cyBvZiBhIGtleSBuYW1lIGFuZCBhbiBhc3NvY2lhdGVkIHZhbHVlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0YWdnaW5nLCBzZWUgVGFnZ2luZyBJQU0gcmVzb3VyY2VzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvaWRfdGFncy5odG1sKSBpbiB0aGUgSUFNIFVzZXIgR3VpZGUuXG4gICAqIElmIGFueSBvbmUgb2YgdGhlIHRhZ3MgaXMgaW52YWxpZCBvciBpZiB5b3UgZXhjZWVkIHRoZSBhbGxvd2VkIG1heGltdW0gbnVtYmVyIG9mIHRhZ3MsIHRoZW4gdGhlIGVudGlyZSByZXF1ZXN0IGZhaWxzIGFuZCB0aGUgcmVzb3VyY2UgaXMgbm90IGNyZWF0ZWQuXG4gICAqXG4gICAqIEBzY2hlbWEgUG9saWN5U3BlYyN0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogUG9saWN5U3BlY1RhZ3NbXTtcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdQb2xpY3lTcGVjJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9Qb2xpY3lTcGVjKG9iajogUG9saWN5U3BlYyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2Rlc2NyaXB0aW9uJzogb2JqLmRlc2NyaXB0aW9uLFxuICAgICduYW1lJzogb2JqLm5hbWUsXG4gICAgJ3BhdGgnOiBvYmoucGF0aCxcbiAgICAncG9saWN5RG9jdW1lbnQnOiBvYmoucG9saWN5RG9jdW1lbnQsXG4gICAgJ3RhZ3MnOiBvYmoudGFncz8ubWFwKHkgPT4gdG9Kc29uX1BvbGljeVNwZWNUYWdzKHkpKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBBIHN0cnVjdHVyZSB0aGF0IHJlcHJlc2VudHMgdXNlci1wcm92aWRlZCBtZXRhZGF0YSB0aGF0IGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggYW4gSUFNIHJlc291cmNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0YWdnaW5nLCBzZWUgVGFnZ2luZyBJQU0gcmVzb3VyY2VzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvaWRfdGFncy5odG1sKSBpbiB0aGUgSUFNIFVzZXIgR3VpZGUuXG4gKlxuICogQHNjaGVtYSBQb2xpY3lTcGVjVGFnc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGljeVNwZWNUYWdzIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgUG9saWN5U3BlY1RhZ3Mja2V5XG4gICAqL1xuICByZWFkb25seSBrZXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgUG9saWN5U3BlY1RhZ3MjdmFsdWVcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1BvbGljeVNwZWNUYWdzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9Qb2xpY3lTcGVjVGFncyhvYmo6IFBvbGljeVNwZWNUYWdzIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAna2V5Jzogb2JqLmtleSxcbiAgICAndmFsdWUnOiBvYmoudmFsdWUsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbiJdfQ==
|