verdaccio 5.2.3 → 5.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -2
- package/README.md +6 -5
- package/build/api/endpoint/api/publish.js +3 -3
- package/build/api/endpoint/api/user.js +15 -5
- package/build/api/endpoint/api/v1/index.js +26 -0
- package/build/api/endpoint/api/v1/profile.js +12 -4
- package/build/api/endpoint/api/v1/token.js +14 -5
- package/build/api/endpoint/index.js +4 -7
- package/build/api/index.js +11 -5
- package/build/api/rate-limiter.js +24 -0
- package/build/api/web/api.js +4 -16
- package/build/api/web/endpoint/index.js +45 -0
- package/build/api/web/endpoint/package.js +15 -6
- package/build/api/web/endpoint/search.js +8 -2
- package/build/api/web/endpoint/user.js +9 -3
- package/build/api/web/index.js +5 -2
- package/build/lib/auth-utils.js +11 -4
- package/build/lib/config.js +15 -6
- package/build/lib/constants.js +5 -4
- package/build/lib/up-storage.js +6 -3
- package/build/lib/utils.js +14 -4
- package/conf/default.yaml +3 -1
- package/conf/docker.yaml +3 -1
- package/package.json +23 -17
package/build/lib/auth-utils.js
CHANGED
|
@@ -8,7 +8,7 @@ exports.buildUserBuffer = buildUserBuffer;
|
|
|
8
8
|
exports.createAnonymousRemoteUser = createAnonymousRemoteUser;
|
|
9
9
|
exports.createRemoteUser = createRemoteUser;
|
|
10
10
|
exports.createSessionToken = createSessionToken;
|
|
11
|
-
exports.expireReasons = exports.defaultSecurity = void 0;
|
|
11
|
+
exports.expireReasons = exports.defaultUserRateLimiting = exports.defaultSecurity = void 0;
|
|
12
12
|
exports.getApiToken = getApiToken;
|
|
13
13
|
exports.getAuthenticatedMessage = getAuthenticatedMessage;
|
|
14
14
|
exports.getDefaultPlugins = getDefaultPlugins;
|
|
@@ -153,14 +153,21 @@ function createSessionToken() {
|
|
|
153
153
|
|
|
154
154
|
const defaultWebTokenOptions = {
|
|
155
155
|
sign: {
|
|
156
|
-
// The expiration token for the website is
|
|
157
|
-
expiresIn: _constants.
|
|
156
|
+
// The expiration token for the website is 1 hour
|
|
157
|
+
expiresIn: _constants.TIME_EXPIRATION_1H
|
|
158
158
|
},
|
|
159
159
|
verify: {}
|
|
160
160
|
};
|
|
161
161
|
const defaultApiTokenConf = {
|
|
162
162
|
legacy: true
|
|
163
|
+
}; // we limit max 1000 request per 15 minutes on user endpoints
|
|
164
|
+
|
|
165
|
+
const defaultUserRateLimiting = {
|
|
166
|
+
windowMs: 15 * 60 * 1000,
|
|
167
|
+
// 15 minutes
|
|
168
|
+
max: 1000
|
|
163
169
|
};
|
|
170
|
+
exports.defaultUserRateLimiting = defaultUserRateLimiting;
|
|
164
171
|
const defaultSecurity = {
|
|
165
172
|
web: defaultWebTokenOptions,
|
|
166
173
|
api: defaultApiTokenConf
|
|
@@ -305,4 +312,4 @@ function getMiddlewareCredentials(security, secret, authorizationHeader) {
|
|
|
305
312
|
return verifyJWTPayload(token, secret);
|
|
306
313
|
}
|
|
307
314
|
}
|
|
308
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXV0aC11dGlscy50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsInZhbGlkYXRlUGFzc3dvcmQiLCJwYXNzd29yZCIsIm1pbkxlbmd0aCIsIkRFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEIiwibGVuZ3RoIiwiY3JlYXRlUmVtb3RlVXNlciIsIm5hbWUiLCJwbHVnaW5Hcm91cHMiLCJpc0dyb3VwVmFsaWQiLCJBcnJheSIsImlzQXJyYXkiLCJncm91cHMiLCJjb25jYXQiLCJST0xFUyIsIiRBTEwiLCIkQVVUSCIsIkRFUFJFQ0FURURfQUxMIiwiREVQUkVDQVRFRF9BVVRIIiwiQUxMIiwicmVhbF9ncm91cHMiLCJjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyIiwidW5kZWZpbmVkIiwiJEFOT05ZTU9VUyIsIkRFUFJFQ0FURURfQU5PTllNT1VTIiwiYWxsb3dfYWN0aW9uIiwiYWN0aW9uIiwidXNlciIsInBrZyIsImNhbGxiYWNrIiwiZ3JvdXBBY2Nlc3MiLCJoYXNQZXJtaXNzaW9uIiwic29tZSIsImdyb3VwIiwiaW5jbHVkZXMiLCJsb2dnZXIiLCJpbmZvIiwicmVtb3RlIiwiRXJyb3JDb2RlIiwiZ2V0Rm9yYmlkZGVuIiwiZ2V0VW5hdXRob3JpemVkIiwiaGFuZGxlU3BlY2lhbFVucHVibGlzaCIsImlzVW5wdWJsaXNoTWlzc2luZyIsIl8iLCJpc05pbCIsImhhc0dyb3VwcyIsImdldERlZmF1bHRQbHVnaW5zIiwiYXV0aGVudGljYXRlIiwiX3VzZXIiLCJfcGFzc3dvcmQiLCJjYiIsIkFQSV9FUlJPUiIsIkJBRF9VU0VSTkFNRV9QQVNTV09SRCIsImFkZF91c2VyIiwiZ2V0Q29uZmxpY3QiLCJhbGxvd19hY2Nlc3MiLCJhbGxvd19wdWJsaXNoIiwiYWxsb3dfdW5wdWJsaXNoIiwiY3JlYXRlU2Vzc2lvblRva2VuIiwidGVuSG91cnNUaW1lIiwiZXhwaXJlcyIsIkRhdGUiLCJub3ciLCJkZWZhdWx0V2ViVG9rZW5PcHRpb25zIiwic2lnbiIsImV4cGlyZXNJbiIsIlRJTUVfRVhQSVJBVElPTl83RCIsInZlcmlmeSIsImRlZmF1bHRBcGlUb2tlbkNvbmYiLCJsZWdhY3kiLCJkZWZhdWx0U2VjdXJpdHkiLCJ3ZWIiLCJhcGkiLCJnZXRTZWN1cml0eSIsImNvbmZpZyIsInNlY3VyaXR5IiwibWVyZ2UiLCJnZXRBdXRoZW50aWNhdGVkTWVzc2FnZSIsImJ1aWxkVXNlckJ1ZmZlciIsIkJ1ZmZlciIsImZyb20iLCJpc0FFU0xlZ2FjeSIsImp3dCIsImdldEFwaVRva2VuIiwiYXV0aCIsInJlbW90ZVVzZXIiLCJhZXNQYXNzd29yZCIsIlByb21pc2UiLCJyZXNvbHZlIiwiYWVzRW5jcnlwdCIsInRvU3RyaW5nIiwiand0RW5jcnlwdCIsInBhcnNlQXV0aFRva2VuSGVhZGVyIiwiYXV0aG9yaXphdGlvbkhlYWRlciIsInBhcnRzIiwic3BsaXQiLCJzY2hlbWUiLCJ0b2tlbiIsInBhcnNlQmFzaWNQYXlsb2FkIiwiY3JlZGVudGlhbHMiLCJpbmRleCIsImluZGV4T2YiLCJzbGljZSIsInBhcnNlQUVTQ3JlZGVudGlhbHMiLCJzZWNyZXQiLCJ0b1VwcGVyQ2FzZSIsIlRPS0VOX0JBU0lDIiwiVE9LRU5fQkVBUkVSIiwidG9rZW5Bc0J1ZmZlciIsImV4cGlyZVJlYXNvbnMiLCJ2ZXJpZnlKV1RQYXlsb2FkIiwicGF5bG9hZCIsImVycm9yIiwiZ2V0Q29kZSIsIkhUVFBfU1RBVFVTIiwiVU5BVVRIT1JJWkVEIiwibWVzc2FnZSIsImlzQXV0aEhlYWRlclZhbGlkIiwiYXV0aG9yaXphdGlvbiIsImdldE1pZGRsZXdhcmVDcmVkZW50aWFscyIsInBhcnNlZENyZWRlbnRpYWxzIiwiaXNTdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBLE1BQU1BLEtBQUssR0FBRyxvQkFBVyxXQUFYLENBQWQ7O0FBRU8sU0FBU0MsZ0JBQVQsQ0FDTEMsUUFESyxFQUNhO0FBQ2xCQyxTQUFpQixHQUFHQyxxQ0FGZixFQUdJO0FBQ1QsU0FBTyxPQUFPRixRQUFQLEtBQW9CLFFBQXBCLElBQWdDQSxRQUFRLENBQUNHLE1BQVQsSUFBbUJGLFNBQTFEO0FBQ0Q7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sU0FBU0csZ0JBQVQsQ0FBMEJDLElBQTFCLEVBQXdDQyxZQUF4QyxFQUE0RTtBQUNqRixRQUFNQyxZQUFxQixHQUFHQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0gsWUFBZCxDQUE5QjtBQUNBLFFBQU1JLE1BQU0sR0FBRyxDQUFDSCxZQUFZLEdBQUdELFlBQUgsR0FBa0IsRUFBL0IsRUFBbUNLLE1BQW5DLENBQTBDLENBQUNDLGlCQUFNQyxJQUFQLEVBQWFELGlCQUFNRSxLQUFuQixFQUEwQkYsaUJBQU1HLGNBQWhDLEVBQWdESCxpQkFBTUksZUFBdEQsRUFBdUVKLGlCQUFNSyxHQUE3RSxDQUExQyxDQUFmO0FBRUEsU0FBTztBQUNMWixJQUFBQSxJQURLO0FBRUxLLElBQUFBLE1BRks7QUFHTFEsSUFBQUEsV0FBVyxFQUFFWjtBQUhSLEdBQVA7QUFLRDtBQUVEO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxTQUFTYSx5QkFBVCxHQUFpRDtBQUN0RCxTQUFPO0FBQ0xkLElBQUFBLElBQUksRUFBRWUsU0FERDtBQUVMO0FBQ0FWLElBQUFBLE1BQU0sRUFBRSxDQUFDRSxpQkFBTUMsSUFBUCxFQUFhRCxpQkFBTVMsVUFBbkIsRUFBK0JULGlCQUFNRyxjQUFyQyxFQUFxREgsaUJBQU1VLG9CQUEzRCxDQUhIO0FBSUxKLElBQUFBLFdBQVcsRUFBRTtBQUpSLEdBQVA7QUFNRDs7QUFFTSxTQUFTSyxZQUFULENBQXNCQyxNQUF0QixFQUFnRDtBQUNyRCxTQUFPLFVBQVVDLElBQVYsRUFBNEJDLEdBQTVCLEVBQTBDQyxRQUExQyxFQUFvRTtBQUN6RTdCLElBQUFBLEtBQUssQ0FBQywrQkFBRCxFQUFrQzJCLElBQWxDLGFBQWtDQSxJQUFsQyx1QkFBa0NBLElBQUksQ0FBRXBCLElBQXhDLENBQUw7QUFDQSxVQUFNO0FBQUVBLE1BQUFBLElBQUY7QUFBUUssTUFBQUE7QUFBUixRQUFtQmUsSUFBekI7QUFDQSxVQUFNRyxXQUFXLEdBQUdGLEdBQUcsQ0FBQ0YsTUFBRCxDQUF2QjtBQUNBLFVBQU1LLGFBQWEsR0FBR0QsV0FBVyxDQUFDRSxJQUFaLENBQWtCQyxLQUFELElBQVcxQixJQUFJLEtBQUswQixLQUFULElBQWtCckIsTUFBTSxDQUFDc0IsUUFBUCxDQUFnQkQsS0FBaEIsQ0FBOUMsQ0FBdEI7QUFDQWpDLElBQUFBLEtBQUssQ0FBQyxzREFBRCxFQUF5RCtCLGFBQXpELEVBQXdFSixJQUF4RSxhQUF3RUEsSUFBeEUsdUJBQXdFQSxJQUFJLENBQUVwQixJQUE5RSxDQUFMOztBQUVBLFFBQUl3QixhQUFKLEVBQW1CO0FBQ2pCSSxxQkFBT0MsSUFBUCxDQUFZO0FBQUVDLFFBQUFBLE1BQU0sRUFBRVYsSUFBSSxDQUFDcEI7QUFBZixPQUFaLEVBQW9DLCtDQUFwQzs7QUFDQSxhQUFPc0IsUUFBUSxDQUFDLElBQUQsRUFBTyxJQUFQLENBQWY7QUFDRDs7QUFFRCxRQUFJdEIsSUFBSixFQUFVO0FBQ1JzQixNQUFBQSxRQUFRLENBQUNTLGlCQUFVQyxZQUFWLENBQXdCLFFBQU9oQyxJQUFLLHNCQUFxQm1CLE1BQU8sWUFBV0UsR0FBRyxDQUFDckIsSUFBSyxFQUFwRixDQUFELENBQVI7QUFDRCxLQUZELE1BRU87QUFDTHNCLE1BQUFBLFFBQVEsQ0FBQ1MsaUJBQVVFLGVBQVYsQ0FBMkIsNkJBQTRCZCxNQUFPLFlBQVdFLEdBQUcsQ0FBQ3JCLElBQUssRUFBbEYsQ0FBRCxDQUFSO0FBQ0Q7QUFDRixHQWpCRDtBQWtCRDtBQUVEO0FBQ0E7QUFDQTs7O0FBQ08sU0FBU2tDLHNCQUFULEdBQXVDO0FBQzVDLFNBQU8sVUFBVWQsSUFBVixFQUE0QkMsR0FBNUIsRUFBMENDLFFBQTFDLEVBQW9FO0FBQ3pFLFVBQU1ILE1BQU0sR0FBRyxXQUFmLENBRHlFLENBRXpFOztBQUNBLFVBQU1nQixrQkFBMkIsR0FBR0MsZ0JBQUVDLEtBQUYsQ0FBUWhCLEdBQUcsQ0FBQ0YsTUFBRCxDQUFYLENBQXBDOztBQUNBLFVBQU1tQixTQUFrQixHQUFHSCxrQkFBa0IsR0FBRyxLQUFILEdBQVdkLEdBQUcsQ0FBQ0YsTUFBRCxDQUFILENBQVlyQixNQUFaLEdBQXFCLENBQTdFO0FBQ0FMLElBQUFBLEtBQUssQ0FBQyxzREFBRCxFQUF5RDZDLFNBQXpELEVBQW9FbEIsSUFBcEUsYUFBb0VBLElBQXBFLHVCQUFvRUEsSUFBSSxDQUFFcEIsSUFBMUUsQ0FBTDs7QUFDQSxRQUFJbUMsa0JBQWtCLElBQUlHLFNBQVMsS0FBSyxLQUF4QyxFQUErQztBQUM3QyxhQUFPaEIsUUFBUSxDQUFDLElBQUQsRUFBT1AsU0FBUCxDQUFmO0FBQ0Q7O0FBQ0R0QixJQUFBQSxLQUFLLENBQUMsa0RBQUQsRUFBcUQwQixNQUFyRCxFQUE2REMsSUFBN0QsYUFBNkRBLElBQTdELHVCQUE2REEsSUFBSSxDQUFFcEIsSUFBbkUsRUFBeUVzQyxTQUF6RSxFQUFvRmxCLElBQXBGLENBQUw7QUFDQSxXQUFPRixZQUFZLENBQUNDLE1BQUQsQ0FBWixDQUFxQkMsSUFBckIsRUFBMkJDLEdBQTNCLEVBQWdDQyxRQUFoQyxDQUFQO0FBQ0QsR0FYRDtBQVlEOztBQUVNLFNBQVNpQixpQkFBVCxDQUEyQlgsTUFBM0IsRUFBNkQ7QUFDbEUsU0FBTztBQUNMWSxJQUFBQSxZQUFZLENBQUNDLEtBQUQsRUFBZ0JDLFNBQWhCLEVBQW1DQyxFQUFuQyxFQUF1RDtBQUNqRTtBQUNBQSxNQUFBQSxFQUFFLENBQUNaLGlCQUFVQyxZQUFWLENBQXVCWSxxQkFBVUMscUJBQWpDLENBQUQsQ0FBRjtBQUNELEtBSkk7O0FBTUxDLElBQUFBLFFBQVEsQ0FBQ0wsS0FBRCxFQUFnQkMsU0FBaEIsRUFBbUNDLEVBQW5DLEVBQXVEO0FBQzdEO0FBQ0EsYUFBT0EsRUFBRSxDQUFDWixpQkFBVWdCLFdBQVYsQ0FBc0JILHFCQUFVQyxxQkFBaEMsQ0FBRCxDQUFUO0FBQ0QsS0FUSTs7QUFXTDtBQUNBO0FBQ0FHLElBQUFBLFlBQVksRUFBRTlCLFlBQVksQ0FBQyxRQUFELEVBQVdVLE1BQVgsQ0FickI7QUFjTDtBQUNBcUIsSUFBQUEsYUFBYSxFQUFFL0IsWUFBWSxDQUFDLFNBQUQsRUFBWVUsTUFBWixDQWZ0QjtBQWdCTHNCLElBQUFBLGVBQWUsRUFBRWhCLHNCQUFzQjtBQWhCbEMsR0FBUDtBQWtCRDs7QUFFTSxTQUFTaUIsa0JBQVQsR0FBa0Q7QUFDdkQsUUFBTUMsWUFBWSxHQUFHLEtBQUssRUFBTCxHQUFVLEVBQVYsR0FBZSxJQUFwQztBQUVBLFNBQU87QUFDTDtBQUNBQyxJQUFBQSxPQUFPLEVBQUUsSUFBSUMsSUFBSixDQUFTQSxJQUFJLENBQUNDLEdBQUwsS0FBYUgsWUFBdEI7QUFGSixHQUFQO0FBSUQ7O0FBRUQsTUFBTUksc0JBQWtDLEdBQUc7QUFDekNDLEVBQUFBLElBQUksRUFBRTtBQUNKO0FBQ0FDLElBQUFBLFNBQVMsRUFBRUM7QUFGUCxHQURtQztBQUt6Q0MsRUFBQUEsTUFBTSxFQUFFO0FBTGlDLENBQTNDO0FBUUEsTUFBTUMsbUJBQW9DLEdBQUc7QUFDM0NDLEVBQUFBLE1BQU0sRUFBRTtBQURtQyxDQUE3QztBQUlPLE1BQU1DLGVBQXlCLEdBQUc7QUFDdkNDLEVBQUFBLEdBQUcsRUFBRVIsc0JBRGtDO0FBRXZDUyxFQUFBQSxHQUFHLEVBQUVKO0FBRmtDLENBQWxDOzs7QUFLQSxTQUFTSyxXQUFULENBQXFCQyxNQUFyQixFQUErQztBQUNwRCxNQUFJL0IsZ0JBQUVDLEtBQUYsQ0FBUThCLE1BQU0sQ0FBQ0MsUUFBZixNQUE2QixLQUFqQyxFQUF3QztBQUN0QyxXQUFPaEMsZ0JBQUVpQyxLQUFGLENBQVFOLGVBQVIsRUFBeUJJLE1BQU0sQ0FBQ0MsUUFBaEMsQ0FBUDtBQUNEOztBQUVELFNBQU9MLGVBQVA7QUFDRDs7QUFFTSxTQUFTTyx1QkFBVCxDQUFpQ2xELElBQWpDLEVBQXVEO0FBQzVELFNBQVEsNkJBQTRCQSxJQUFLLEdBQXpDO0FBQ0Q7O0FBRU0sU0FBU21ELGVBQVQsQ0FBeUJ2RSxJQUF6QixFQUF1Q0wsUUFBdkMsRUFBaUU7QUFDdEUsU0FBTzZFLE1BQU0sQ0FBQ0MsSUFBUCxDQUFhLEdBQUV6RSxJQUFLLElBQUdMLFFBQVMsRUFBaEMsRUFBbUMsTUFBbkMsQ0FBUDtBQUNEOztBQUVNLFNBQVMrRSxXQUFULENBQXFCTixRQUFyQixFQUFrRDtBQUN2RCxRQUFNO0FBQUVOLElBQUFBLE1BQUY7QUFBVWEsSUFBQUE7QUFBVixNQUFrQlAsUUFBUSxDQUFDSCxHQUFqQztBQUVBLFNBQU83QixnQkFBRUMsS0FBRixDQUFReUIsTUFBUixNQUFvQixLQUFwQixJQUE2QjFCLGdCQUFFQyxLQUFGLENBQVFzQyxHQUFSLENBQTdCLElBQTZDYixNQUFNLEtBQUssSUFBL0Q7QUFDRDs7QUFFTSxlQUFlYyxXQUFmLENBQTJCQyxJQUEzQixFQUE2Q1YsTUFBN0MsRUFBNkRXLFVBQTdELEVBQXFGQyxXQUFyRixFQUEySDtBQUNoSSxRQUFNWCxRQUFrQixHQUFHRixXQUFXLENBQUNDLE1BQUQsQ0FBdEM7O0FBRUEsTUFBSU8sV0FBVyxDQUFDTixRQUFELENBQWYsRUFBMkI7QUFDekI7QUFDQSxXQUFPLE1BQU0sSUFBSVksT0FBSixDQUFhQyxPQUFELElBQW1CO0FBQzFDQSxNQUFBQSxPQUFPLENBQUNKLElBQUksQ0FBQ0ssVUFBTCxDQUFnQlgsZUFBZSxDQUFDTyxVQUFVLENBQUM5RSxJQUFaLEVBQTRCK0UsV0FBNUIsQ0FBL0IsRUFBeUVJLFFBQXpFLENBQWtGLFFBQWxGLENBQUQsQ0FBUDtBQUNELEtBRlksQ0FBYjtBQUdELEdBUitILENBU2hJOzs7QUFDQSxRQUFNO0FBQUVSLElBQUFBO0FBQUYsTUFBVVAsUUFBUSxDQUFDSCxHQUF6Qjs7QUFFQSxNQUFJVSxHQUFHLElBQUlBLEdBQUcsQ0FBQ2xCLElBQWYsRUFBcUI7QUFDbkIsV0FBTyxNQUFNb0IsSUFBSSxDQUFDTyxVQUFMLENBQWdCTixVQUFoQixFQUE0QkgsR0FBRyxDQUFDbEIsSUFBaEMsQ0FBYjtBQUNEOztBQUNELFNBQU8sTUFBTSxJQUFJdUIsT0FBSixDQUFhQyxPQUFELElBQW1CO0FBQzFDQSxJQUFBQSxPQUFPLENBQUNKLElBQUksQ0FBQ0ssVUFBTCxDQUFnQlgsZUFBZSxDQUFDTyxVQUFVLENBQUM5RSxJQUFaLEVBQTRCK0UsV0FBNUIsQ0FBL0IsRUFBeUVJLFFBQXpFLENBQWtGLFFBQWxGLENBQUQsQ0FBUDtBQUNELEdBRlksQ0FBYjtBQUdEOztBQUVNLFNBQVNFLG9CQUFULENBQThCQyxtQkFBOUIsRUFBNEU7QUFDakYsUUFBTUMsS0FBSyxHQUFHRCxtQkFBbUIsQ0FBQ0UsS0FBcEIsQ0FBMEIsR0FBMUIsQ0FBZDtBQUNBLFFBQU0sQ0FBQ0MsTUFBRCxFQUFTQyxLQUFULElBQWtCSCxLQUF4QjtBQUVBLFNBQU87QUFBRUUsSUFBQUEsTUFBRjtBQUFVQyxJQUFBQTtBQUFWLEdBQVA7QUFDRDs7QUFFTSxTQUFTQyxpQkFBVCxDQUEyQkMsV0FBM0IsRUFBOEQ7QUFDbkUsUUFBTUMsS0FBSyxHQUFHRCxXQUFXLENBQUNFLE9BQVosQ0FBb0IsR0FBcEIsQ0FBZDs7QUFDQSxNQUFJRCxLQUFLLEdBQUcsQ0FBWixFQUFlO0FBQ2I7QUFDRDs7QUFFRCxRQUFNekUsSUFBWSxHQUFHd0UsV0FBVyxDQUFDRyxLQUFaLENBQWtCLENBQWxCLEVBQXFCRixLQUFyQixDQUFyQjtBQUNBLFFBQU1sRyxRQUFnQixHQUFHaUcsV0FBVyxDQUFDRyxLQUFaLENBQWtCRixLQUFLLEdBQUcsQ0FBMUIsQ0FBekI7QUFFQSxTQUFPO0FBQUV6RSxJQUFBQSxJQUFGO0FBQVF6QixJQUFBQTtBQUFSLEdBQVA7QUFDRDs7QUFFTSxTQUFTcUcsbUJBQVQsQ0FBNkJWLG1CQUE3QixFQUEwRFcsTUFBMUQsRUFBMEU7QUFDL0UsUUFBTTtBQUFFUixJQUFBQSxNQUFGO0FBQVVDLElBQUFBO0FBQVYsTUFBb0JMLG9CQUFvQixDQUFDQyxtQkFBRCxDQUE5QyxDQUQrRSxDQUcvRTs7QUFDQSxNQUFJRyxNQUFNLENBQUNTLFdBQVAsT0FBeUJDLHVCQUFZRCxXQUFaLEVBQTdCLEVBQXdEO0FBQ3RELFVBQU1OLFdBQVcsR0FBRyxtQ0FBdUJGLEtBQXZCLEVBQThCUCxRQUE5QixFQUFwQjtBQUVBLFdBQU9TLFdBQVA7QUFDRCxHQUpELE1BSU8sSUFBSUgsTUFBTSxDQUFDUyxXQUFQLE9BQXlCRSx3QkFBYUYsV0FBYixFQUE3QixFQUF5RDtBQUM5RCxVQUFNRyxhQUFhLEdBQUcsbUNBQXVCWCxLQUF2QixDQUF0QjtBQUNBLFVBQU1FLFdBQVcsR0FBRyw2QkFBV1MsYUFBWCxFQUEwQkosTUFBMUIsRUFBa0NkLFFBQWxDLENBQTJDLE1BQTNDLENBQXBCO0FBRUEsV0FBT1MsV0FBUDtBQUNEO0FBQ0Y7O0FBRU0sTUFBTVUsYUFBdUIsR0FBRyxDQUFDLG1CQUFELEVBQXNCLG1CQUF0QixDQUFoQzs7O0FBRUEsU0FBU0MsZ0JBQVQsQ0FBMEJiLEtBQTFCLEVBQXlDTyxNQUF6QyxFQUFxRTtBQUMxRSxNQUFJO0FBQ0YsVUFBTU8sT0FBbUIsR0FBRyxnQ0FBY2QsS0FBZCxFQUFxQk8sTUFBckIsQ0FBNUI7QUFFQSxXQUFPTyxPQUFQO0FBQ0QsR0FKRCxDQUlFLE9BQU9DLEtBQVAsRUFBYztBQUNkO0FBQ0EsUUFBSUgsYUFBYSxDQUFDM0UsUUFBZCxDQUF1QjhFLEtBQUssQ0FBQ3pHLElBQTdCLENBQUosRUFBd0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0EsYUFBT2MseUJBQXlCLEVBQWhDO0FBQ0Q7O0FBQ0QsVUFBTWlCLGlCQUFVMkUsT0FBVixDQUFrQkMsdUJBQVlDLFlBQTlCLEVBQTRDSCxLQUFLLENBQUNJLE9BQWxELENBQU47QUFDRDtBQUNGOztBQUVNLFNBQVNDLGlCQUFULENBQTJCQyxhQUEzQixFQUEyRDtBQUNoRSxTQUFPQSxhQUFhLENBQUN2QixLQUFkLENBQW9CLEdBQXBCLEVBQXlCMUYsTUFBekIsS0FBb0MsQ0FBM0M7QUFDRDs7QUFFTSxTQUFTa0gsd0JBQVQsQ0FBa0M1QyxRQUFsQyxFQUFzRDZCLE1BQXRELEVBQXNFWCxtQkFBdEUsRUFBMEg7QUFDL0gsTUFBSVosV0FBVyxDQUFDTixRQUFELENBQWYsRUFBMkI7QUFDekIsVUFBTXdCLFdBQVcsR0FBR0ksbUJBQW1CLENBQUNWLG1CQUFELEVBQXNCVyxNQUF0QixDQUF2Qzs7QUFDQSxRQUFJLENBQUNMLFdBQUwsRUFBa0I7QUFDaEI7QUFDRDs7QUFFRCxVQUFNcUIsaUJBQWlCLEdBQUd0QixpQkFBaUIsQ0FBQ0MsV0FBRCxDQUEzQzs7QUFDQSxRQUFJLENBQUNxQixpQkFBTCxFQUF3QjtBQUN0QjtBQUNEOztBQUVELFdBQU9BLGlCQUFQO0FBQ0Q7O0FBQ0QsUUFBTTtBQUFFeEIsSUFBQUEsTUFBRjtBQUFVQyxJQUFBQTtBQUFWLE1BQW9CTCxvQkFBb0IsQ0FBQ0MsbUJBQUQsQ0FBOUM7O0FBRUEsTUFBSWxELGdCQUFFOEUsUUFBRixDQUFXeEIsS0FBWCxLQUFxQkQsTUFBTSxDQUFDUyxXQUFQLE9BQXlCRSx3QkFBYUYsV0FBYixFQUFsRCxFQUE4RTtBQUM1RSxXQUFPSyxnQkFBZ0IsQ0FBQ2IsS0FBRCxFQUFRTyxNQUFSLENBQXZCO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBSZW1vdGVVc2VyLCBQYWNrYWdlLCBDYWxsYmFjaywgQ29uZmlnLCBTZWN1cml0eSwgQVBJVG9rZW5PcHRpb25zLCBKV1RPcHRpb25zLCBJUGx1Z2luQXV0aCB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgQ29va2llU2Vzc2lvblRva2VuLCBJQXV0aFdlYlVJLCBBdXRoTWlkZGxld2FyZVBheWxvYWQsIEF1dGhUb2tlbkhlYWRlciwgQmFzaWNQYXlsb2FkIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgeyBjb252ZXJ0UGF5bG9hZFRvQmFzZTY0LCBFcnJvckNvZGUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEFQSV9FUlJPUiwgSFRUUF9TVEFUVVMsIFJPTEVTLCBUSU1FX0VYUElSQVRJT05fN0QsIFRPS0VOX0JBU0lDLCBUT0tFTl9CRUFSRVIsIERFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYWVzRGVjcnlwdCwgdmVyaWZ5UGF5bG9hZCB9IGZyb20gJy4vY3J5cHRvLXV0aWxzJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCd2ZXJkYWNjaW8nKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUGFzc3dvcmQoXG4gIHBhc3N3b3JkOiBzdHJpbmcsIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICBtaW5MZW5ndGg6IG51bWJlciA9IERFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBwYXNzd29yZCA9PT0gJ3N0cmluZycgJiYgcGFzc3dvcmQubGVuZ3RoID49IG1pbkxlbmd0aDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBSZW1vdGVVc2VyIG9iamVjdFxuICogQHJldHVybiB7T2JqZWN0fSB7IG5hbWU6IHh4LCBwbHVnaW5Hcm91cHM6IFtdLCByZWFsX2dyb3VwczogW10gfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVtb3RlVXNlcihuYW1lOiBzdHJpbmcsIHBsdWdpbkdyb3Vwczogc3RyaW5nW10pOiBSZW1vdGVVc2VyIHtcbiAgY29uc3QgaXNHcm91cFZhbGlkOiBib29sZWFuID0gQXJyYXkuaXNBcnJheShwbHVnaW5Hcm91cHMpO1xuICBjb25zdCBncm91cHMgPSAoaXNHcm91cFZhbGlkID8gcGx1Z2luR3JvdXBzIDogW10pLmNvbmNhdChbUk9MRVMuJEFMTCwgUk9MRVMuJEFVVEgsIFJPTEVTLkRFUFJFQ0FURURfQUxMLCBST0xFUy5ERVBSRUNBVEVEX0FVVEgsIFJPTEVTLkFMTF0pO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICBncm91cHMsXG4gICAgcmVhbF9ncm91cHM6IHBsdWdpbkdyb3VwcyxcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW4gYW5vbnltb3VzIHJlbW90ZSB1c2VyIGluIGNhc2Ugbm9uZSBpcyBsb2dnZWQgaW4uXG4gKiBAcmV0dXJuIHtPYmplY3R9IHsgbmFtZTogeHgsIGdyb3VwczogW10sIHJlYWxfZ3JvdXBzOiBbXSB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyKCk6IFJlbW90ZVVzZXIge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAvLyBncm91cHMgd2l0aG91dCAnJCcgYXJlIGdvaW5nIHRvIGJlIGRlcHJlY2F0ZWQgZXZlbnR1YWxseVxuICAgIGdyb3VwczogW1JPTEVTLiRBTEwsIFJPTEVTLiRBTk9OWU1PVVMsIFJPTEVTLkRFUFJFQ0FURURfQUxMLCBST0xFUy5ERVBSRUNBVEVEX0FOT05ZTU9VU10sXG4gICAgcmVhbF9ncm91cHM6IFtdLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsb3dfYWN0aW9uKGFjdGlvbjogc3RyaW5nKTogRnVuY3Rpb24ge1xuICByZXR1cm4gZnVuY3Rpb24gKHVzZXI6IFJlbW90ZVVzZXIsIHBrZzogUGFja2FnZSwgY2FsbGJhY2s6IENhbGxiYWNrKTogdm9pZCB7XG4gICAgZGVidWcoJ1thdXRoL2FsbG93X2FjdGlvbl06IHVzZXI6ICVvJywgdXNlcj8ubmFtZSk7XG4gICAgY29uc3QgeyBuYW1lLCBncm91cHMgfSA9IHVzZXI7XG4gICAgY29uc3QgZ3JvdXBBY2Nlc3MgPSBwa2dbYWN0aW9uXTtcbiAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gZ3JvdXBBY2Nlc3Muc29tZSgoZ3JvdXApID0+IG5hbWUgPT09IGdyb3VwIHx8IGdyb3Vwcy5pbmNsdWRlcyhncm91cCkpO1xuICAgIGRlYnVnKCdbYXV0aC9hbGxvd19hY3Rpb25dOiBoYXNQZXJtaXNzaW9uPyAlb30gZm9yIHVzZXI6ICVvJywgaGFzUGVybWlzc2lvbiwgdXNlcj8ubmFtZSk7XG5cbiAgICBpZiAoaGFzUGVybWlzc2lvbikge1xuICAgICAgbG9nZ2VyLmluZm8oeyByZW1vdGU6IHVzZXIubmFtZSB9LCBgYXV0aC9hbGxvd19hY3Rpb246IGFjY2VzcyBncmFudGVkIHRvOiBAe3VzZXJ9YCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIGNhbGxiYWNrKEVycm9yQ29kZS5nZXRGb3JiaWRkZW4oYHVzZXIgJHtuYW1lfSBpcyBub3QgYWxsb3dlZCB0byAke2FjdGlvbn0gcGFja2FnZSAke3BrZy5uYW1lfWApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbGJhY2soRXJyb3JDb2RlLmdldFVuYXV0aG9yaXplZChgYXV0aG9yaXphdGlvbiByZXF1aXJlZCB0byAke2FjdGlvbn0gcGFja2FnZSAke3BrZy5uYW1lfWApKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVNwZWNpYWxVbnB1Ymxpc2goKTogYW55IHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh1c2VyOiBSZW1vdGVVc2VyLCBwa2c6IFBhY2thZ2UsIGNhbGxiYWNrOiBDYWxsYmFjayk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbiA9ICd1bnB1Ymxpc2gnO1xuICAgIC8vIHZlcmlmeSB3aGV0aGVyIHRoZSB1bnB1Ymxpc2ggcHJvcCBoYXMgYmVlbiBkZWZpbmVkXG4gICAgY29uc3QgaXNVbnB1Ymxpc2hNaXNzaW5nOiBib29sZWFuID0gXy5pc05pbChwa2dbYWN0aW9uXSk7XG4gICAgY29uc3QgaGFzR3JvdXBzOiBib29sZWFuID0gaXNVbnB1Ymxpc2hNaXNzaW5nID8gZmFsc2UgOiBwa2dbYWN0aW9uXS5sZW5ndGggPiAwO1xuICAgIGRlYnVnKCdmYWxsYmFjayB1bnB1Ymxpc2ggZm9yIEB7bmFtZX0gaGFzIGdyb3VwczogJW8gZm9yICVvJywgaGFzR3JvdXBzLCB1c2VyPy5uYW1lKTtcbiAgICBpZiAoaXNVbnB1Ymxpc2hNaXNzaW5nIHx8IGhhc0dyb3VwcyA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB1bmRlZmluZWQpO1xuICAgIH1cbiAgICBkZWJ1ZygnYWxsb3dfYWN0aW9uIGZvciAlbyBmb3IgJW8gaGFzIGdyb3VwczogJW8gZm9yICVvJywgYWN0aW9uLCB1c2VyPy5uYW1lLCBoYXNHcm91cHMsIHVzZXIpO1xuICAgIHJldHVybiBhbGxvd19hY3Rpb24oYWN0aW9uKSh1c2VyLCBwa2csIGNhbGxiYWNrKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRQbHVnaW5zKGxvZ2dlcjogYW55KTogSVBsdWdpbkF1dGg8Q29uZmlnPiB7XG4gIHJldHVybiB7XG4gICAgYXV0aGVudGljYXRlKF91c2VyOiBzdHJpbmcsIF9wYXNzd29yZDogc3RyaW5nLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICAgICAgY2IoRXJyb3JDb2RlLmdldEZvcmJpZGRlbihBUElfRVJST1IuQkFEX1VTRVJOQU1FX1BBU1NXT1JEKSk7XG4gICAgfSxcblxuICAgIGFkZF91c2VyKF91c2VyOiBzdHJpbmcsIF9wYXNzd29yZDogc3RyaW5nLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICAgICAgcmV0dXJuIGNiKEVycm9yQ29kZS5nZXRDb25mbGljdChBUElfRVJST1IuQkFEX1VTRVJOQU1FX1BBU1NXT1JEKSk7XG4gICAgfSxcblxuICAgIC8vIEZJWE1FOiBhbGxvd19hY3Rpb24gYW5kIGFsbG93X3B1Ymxpc2ggc2hvdWxkIGJlIGluIHRoZSBAdmVyZGFjY2lvL3R5cGVzXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGFsbG93X2FjY2VzczogYWxsb3dfYWN0aW9uKCdhY2Nlc3MnLCBsb2dnZXIpLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBhbGxvd19wdWJsaXNoOiBhbGxvd19hY3Rpb24oJ3B1Ymxpc2gnLCBsb2dnZXIpLFxuICAgIGFsbG93X3VucHVibGlzaDogaGFuZGxlU3BlY2lhbFVucHVibGlzaCgpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2Vzc2lvblRva2VuKCk6IENvb2tpZVNlc3Npb25Ub2tlbiB7XG4gIGNvbnN0IHRlbkhvdXJzVGltZSA9IDEwICogNjAgKiA2MCAqIDEwMDA7XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBucG1qcy5vcmcgc2V0cyAxMGggZXhwaXJlXG4gICAgZXhwaXJlczogbmV3IERhdGUoRGF0ZS5ub3coKSArIHRlbkhvdXJzVGltZSksXG4gIH07XG59XG5cbmNvbnN0IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnM6IEpXVE9wdGlvbnMgPSB7XG4gIHNpZ246IHtcbiAgICAvLyBUaGUgZXhwaXJhdGlvbiB0b2tlbiBmb3IgdGhlIHdlYnNpdGUgaXMgNyBkYXlzXG4gICAgZXhwaXJlc0luOiBUSU1FX0VYUElSQVRJT05fN0QsXG4gIH0sXG4gIHZlcmlmeToge30sXG59O1xuXG5jb25zdCBkZWZhdWx0QXBpVG9rZW5Db25mOiBBUElUb2tlbk9wdGlvbnMgPSB7XG4gIGxlZ2FjeTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0U2VjdXJpdHk6IFNlY3VyaXR5ID0ge1xuICB3ZWI6IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnMsXG4gIGFwaTogZGVmYXVsdEFwaVRva2VuQ29uZixcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWN1cml0eShjb25maWc6IENvbmZpZyk6IFNlY3VyaXR5IHtcbiAgaWYgKF8uaXNOaWwoY29uZmlnLnNlY3VyaXR5KSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gXy5tZXJnZShkZWZhdWx0U2VjdXJpdHksIGNvbmZpZy5zZWN1cml0eSk7XG4gIH1cblxuICByZXR1cm4gZGVmYXVsdFNlY3VyaXR5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UodXNlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGB5b3UgYXJlIGF1dGhlbnRpY2F0ZWQgYXMgJyR7dXNlcn0nYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVXNlckJ1ZmZlcihuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBCdWZmZXIge1xuICByZXR1cm4gQnVmZmVyLmZyb20oYCR7bmFtZX06JHtwYXNzd29yZH1gLCAndXRmOCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBRVNMZWdhY3koc2VjdXJpdHk6IFNlY3VyaXR5KTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgbGVnYWN5LCBqd3QgfSA9IHNlY3VyaXR5LmFwaTtcblxuICByZXR1cm4gXy5pc05pbChsZWdhY3kpID09PSBmYWxzZSAmJiBfLmlzTmlsKGp3dCkgJiYgbGVnYWN5ID09PSB0cnVlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXBpVG9rZW4oYXV0aDogSUF1dGhXZWJVSSwgY29uZmlnOiBDb25maWcsIHJlbW90ZVVzZXI6IFJlbW90ZVVzZXIsIGFlc1Bhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBzZWN1cml0eTogU2VjdXJpdHkgPSBnZXRTZWN1cml0eShjb25maWcpO1xuXG4gIGlmIChpc0FFU0xlZ2FjeShzZWN1cml0eSkpIHtcbiAgICAvLyBmYWxsYmFjayBhbGwgZ29lcyB0byBBRVMgZW5jcnlwdGlvblxuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSk6IHZvaWQgPT4ge1xuICAgICAgcmVzb2x2ZShhdXRoLmFlc0VuY3J5cHQoYnVpbGRVc2VyQnVmZmVyKHJlbW90ZVVzZXIubmFtZSBhcyBzdHJpbmcsIGFlc1Bhc3N3b3JkKSkudG9TdHJpbmcoJ2Jhc2U2NCcpKTtcbiAgICB9KTtcbiAgfVxuICAvLyBpIGFtIHdpbGluZyB0byB1c2UgaGVyZSBfLmlzTmlsIGJ1dCBmbG93IGRvZXMgbm90IGxpa2UgaXQgeWV0LlxuICBjb25zdCB7IGp3dCB9ID0gc2VjdXJpdHkuYXBpO1xuXG4gIGlmIChqd3QgJiYgand0LnNpZ24pIHtcbiAgICByZXR1cm4gYXdhaXQgYXV0aC5qd3RFbmNyeXB0KHJlbW90ZVVzZXIsIGp3dC5zaWduKTtcbiAgfVxuICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpOiB2b2lkID0+IHtcbiAgICByZXNvbHZlKGF1dGguYWVzRW5jcnlwdChidWlsZFVzZXJCdWZmZXIocmVtb3RlVXNlci5uYW1lIGFzIHN0cmluZywgYWVzUGFzc3dvcmQpKS50b1N0cmluZygnYmFzZTY0JykpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQXV0aFRva2VuSGVhZGVyKGF1dGhvcml6YXRpb25IZWFkZXI6IHN0cmluZyk6IEF1dGhUb2tlbkhlYWRlciB7XG4gIGNvbnN0IHBhcnRzID0gYXV0aG9yaXphdGlvbkhlYWRlci5zcGxpdCgnICcpO1xuICBjb25zdCBbc2NoZW1lLCB0b2tlbl0gPSBwYXJ0cztcblxuICByZXR1cm4geyBzY2hlbWUsIHRva2VuIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJhc2ljUGF5bG9hZChjcmVkZW50aWFsczogc3RyaW5nKTogQmFzaWNQYXlsb2FkIHtcbiAgY29uc3QgaW5kZXggPSBjcmVkZW50aWFscy5pbmRleE9mKCc6Jyk7XG4gIGlmIChpbmRleCA8IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB1c2VyOiBzdHJpbmcgPSBjcmVkZW50aWFscy5zbGljZSgwLCBpbmRleCk7XG4gIGNvbnN0IHBhc3N3b3JkOiBzdHJpbmcgPSBjcmVkZW50aWFscy5zbGljZShpbmRleCArIDEpO1xuXG4gIHJldHVybiB7IHVzZXIsIHBhc3N3b3JkIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUFFU0NyZWRlbnRpYWxzKGF1dGhvcml6YXRpb25IZWFkZXI6IHN0cmluZywgc2VjcmV0OiBzdHJpbmcpIHtcbiAgY29uc3QgeyBzY2hlbWUsIHRva2VuIH0gPSBwYXJzZUF1dGhUb2tlbkhlYWRlcihhdXRob3JpemF0aW9uSGVhZGVyKTtcblxuICAvLyBiYXNpYyBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQgbm90IGJlIGVuZm9yY2VkXG4gIGlmIChzY2hlbWUudG9VcHBlckNhc2UoKSA9PT0gVE9LRU5fQkFTSUMudG9VcHBlckNhc2UoKSkge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gY29udmVydFBheWxvYWRUb0Jhc2U2NCh0b2tlbikudG9TdHJpbmcoKTtcblxuICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgfSBlbHNlIGlmIChzY2hlbWUudG9VcHBlckNhc2UoKSA9PT0gVE9LRU5fQkVBUkVSLnRvVXBwZXJDYXNlKCkpIHtcbiAgICBjb25zdCB0b2tlbkFzQnVmZmVyID0gY29udmVydFBheWxvYWRUb0Jhc2U2NCh0b2tlbik7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhZXNEZWNyeXB0KHRva2VuQXNCdWZmZXIsIHNlY3JldCkudG9TdHJpbmcoJ3V0ZjgnKTtcblxuICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZXhwaXJlUmVhc29uczogc3RyaW5nW10gPSBbJ0pzb25XZWJUb2tlbkVycm9yJywgJ1Rva2VuRXhwaXJlZEVycm9yJ107XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlKV1RQYXlsb2FkKHRva2VuOiBzdHJpbmcsIHNlY3JldDogc3RyaW5nKTogUmVtb3RlVXNlciB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGF5bG9hZDogUmVtb3RlVXNlciA9IHZlcmlmeVBheWxvYWQodG9rZW4sIHNlY3JldCk7XG5cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyAjMTY4IHRoaXMgY2hlY2sgc2hvdWxkIGJlIHJlbW92ZWQgYXMgc29vbiBBRVMgZW5jcnlwdCBpcyByZW1vdmVkLlxuICAgIGlmIChleHBpcmVSZWFzb25zLmluY2x1ZGVzKGVycm9yLm5hbWUpKSB7XG4gICAgICAvLyBpdCBtaWdodCBiZSBwb3NzaWJsZSB0aGUgand0IGNvbmZpZ3VyYXRpb24gaXMgZW5hYmxlZCBhbmRcbiAgICAgIC8vIG9sZCB0b2tlbnMgZmFpbHMgc3RpbGwgcmVtYWlucyBpbiB1c2FnZSwgdGh1c1xuICAgICAgLy8gd2UgcmV0dXJuIGFuIGFub255bW91cyB1c2VyIHRvIGZvcmNlIGxvZyBpbi5cbiAgICAgIHJldHVybiBjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyKCk7XG4gICAgfVxuICAgIHRocm93IEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLlVOQVVUSE9SSVpFRCwgZXJyb3IubWVzc2FnZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXV0aEhlYWRlclZhbGlkKGF1dGhvcml6YXRpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gYXV0aG9yaXphdGlvbi5zcGxpdCgnICcpLmxlbmd0aCA9PT0gMjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1pZGRsZXdhcmVDcmVkZW50aWFscyhzZWN1cml0eTogU2VjdXJpdHksIHNlY3JldDogc3RyaW5nLCBhdXRob3JpemF0aW9uSGVhZGVyOiBzdHJpbmcpOiBBdXRoTWlkZGxld2FyZVBheWxvYWQge1xuICBpZiAoaXNBRVNMZWdhY3koc2VjdXJpdHkpKSB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBwYXJzZUFFU0NyZWRlbnRpYWxzKGF1dGhvcml6YXRpb25IZWFkZXIsIHNlY3JldCk7XG4gICAgaWYgKCFjcmVkZW50aWFscykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlZENyZWRlbnRpYWxzID0gcGFyc2VCYXNpY1BheWxvYWQoY3JlZGVudGlhbHMpO1xuICAgIGlmICghcGFyc2VkQ3JlZGVudGlhbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VkQ3JlZGVudGlhbHM7XG4gIH1cbiAgY29uc3QgeyBzY2hlbWUsIHRva2VuIH0gPSBwYXJzZUF1dGhUb2tlbkhlYWRlcihhdXRob3JpemF0aW9uSGVhZGVyKTtcblxuICBpZiAoXy5pc1N0cmluZyh0b2tlbikgJiYgc2NoZW1lLnRvVXBwZXJDYXNlKCkgPT09IFRPS0VOX0JFQVJFUi50b1VwcGVyQ2FzZSgpKSB7XG4gICAgcmV0dXJuIHZlcmlmeUpXVFBheWxvYWQodG9rZW4sIHNlY3JldCk7XG4gIH1cbn1cbiJdfQ==
|
|
315
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXV0aC11dGlscy50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsInZhbGlkYXRlUGFzc3dvcmQiLCJwYXNzd29yZCIsIm1pbkxlbmd0aCIsIkRFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEIiwibGVuZ3RoIiwiY3JlYXRlUmVtb3RlVXNlciIsIm5hbWUiLCJwbHVnaW5Hcm91cHMiLCJpc0dyb3VwVmFsaWQiLCJBcnJheSIsImlzQXJyYXkiLCJncm91cHMiLCJjb25jYXQiLCJST0xFUyIsIiRBTEwiLCIkQVVUSCIsIkRFUFJFQ0FURURfQUxMIiwiREVQUkVDQVRFRF9BVVRIIiwiQUxMIiwicmVhbF9ncm91cHMiLCJjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyIiwidW5kZWZpbmVkIiwiJEFOT05ZTU9VUyIsIkRFUFJFQ0FURURfQU5PTllNT1VTIiwiYWxsb3dfYWN0aW9uIiwiYWN0aW9uIiwidXNlciIsInBrZyIsImNhbGxiYWNrIiwiZ3JvdXBBY2Nlc3MiLCJoYXNQZXJtaXNzaW9uIiwic29tZSIsImdyb3VwIiwiaW5jbHVkZXMiLCJsb2dnZXIiLCJpbmZvIiwicmVtb3RlIiwiRXJyb3JDb2RlIiwiZ2V0Rm9yYmlkZGVuIiwiZ2V0VW5hdXRob3JpemVkIiwiaGFuZGxlU3BlY2lhbFVucHVibGlzaCIsImlzVW5wdWJsaXNoTWlzc2luZyIsIl8iLCJpc05pbCIsImhhc0dyb3VwcyIsImdldERlZmF1bHRQbHVnaW5zIiwiYXV0aGVudGljYXRlIiwiX3VzZXIiLCJfcGFzc3dvcmQiLCJjYiIsIkFQSV9FUlJPUiIsIkJBRF9VU0VSTkFNRV9QQVNTV09SRCIsImFkZF91c2VyIiwiZ2V0Q29uZmxpY3QiLCJhbGxvd19hY2Nlc3MiLCJhbGxvd19wdWJsaXNoIiwiYWxsb3dfdW5wdWJsaXNoIiwiY3JlYXRlU2Vzc2lvblRva2VuIiwidGVuSG91cnNUaW1lIiwiZXhwaXJlcyIsIkRhdGUiLCJub3ciLCJkZWZhdWx0V2ViVG9rZW5PcHRpb25zIiwic2lnbiIsImV4cGlyZXNJbiIsIlRJTUVfRVhQSVJBVElPTl8xSCIsInZlcmlmeSIsImRlZmF1bHRBcGlUb2tlbkNvbmYiLCJsZWdhY3kiLCJkZWZhdWx0VXNlclJhdGVMaW1pdGluZyIsIndpbmRvd01zIiwibWF4IiwiZGVmYXVsdFNlY3VyaXR5Iiwid2ViIiwiYXBpIiwiZ2V0U2VjdXJpdHkiLCJjb25maWciLCJzZWN1cml0eSIsIm1lcmdlIiwiZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UiLCJidWlsZFVzZXJCdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiaXNBRVNMZWdhY3kiLCJqd3QiLCJnZXRBcGlUb2tlbiIsImF1dGgiLCJyZW1vdGVVc2VyIiwiYWVzUGFzc3dvcmQiLCJQcm9taXNlIiwicmVzb2x2ZSIsImFlc0VuY3J5cHQiLCJ0b1N0cmluZyIsImp3dEVuY3J5cHQiLCJwYXJzZUF1dGhUb2tlbkhlYWRlciIsImF1dGhvcml6YXRpb25IZWFkZXIiLCJwYXJ0cyIsInNwbGl0Iiwic2NoZW1lIiwidG9rZW4iLCJwYXJzZUJhc2ljUGF5bG9hZCIsImNyZWRlbnRpYWxzIiwiaW5kZXgiLCJpbmRleE9mIiwic2xpY2UiLCJwYXJzZUFFU0NyZWRlbnRpYWxzIiwic2VjcmV0IiwidG9VcHBlckNhc2UiLCJUT0tFTl9CQVNJQyIsIlRPS0VOX0JFQVJFUiIsInRva2VuQXNCdWZmZXIiLCJleHBpcmVSZWFzb25zIiwidmVyaWZ5SldUUGF5bG9hZCIsInBheWxvYWQiLCJlcnJvciIsImdldENvZGUiLCJIVFRQX1NUQVRVUyIsIlVOQVVUSE9SSVpFRCIsIm1lc3NhZ2UiLCJpc0F1dGhIZWFkZXJWYWxpZCIsImF1dGhvcml6YXRpb24iLCJnZXRNaWRkbGV3YXJlQ3JlZGVudGlhbHMiLCJwYXJzZWRDcmVkZW50aWFscyIsImlzU3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxLQUFLLEdBQUcsb0JB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LENBQTJCQyxhQUEzQixFQUEyRDtBQUNoRSxTQUFPQSxhQUFhLENBQUN2QixLQUFkLENBQW9CLEdBQXBCLEVBQXlCN0YsTUFBekIsS0FBb0MsQ0FBM0M7QUFDRDs7QUFFTSxTQUFTcUgsd0JBQVQsQ0FBa0M1QyxRQUFsQyxFQUFzRDZCLE1BQXRELEVBQXNFWCxtQkFBdEUsRUFBMEg7QUFDL0gsTUFBSVosV0FBVyxDQUFDTixRQUFELENBQWYsRUFBMkI7QUFDekIsVUFBTXdCLFdBQVcsR0FBR0ksbUJBQW1CLENBQUNWLG1CQUFELEVBQXNCVyxNQUF0QixDQUF2Qzs7QUFDQSxRQUFJLENBQUNMLFdBQUwsRUFBa0I7QUFDaEI7QUFDRDs7QUFFRCxVQUFNcUIsaUJBQWlCLEdBQUd0QixpQkFBaUIsQ0FBQ0MsV0FBRCxDQUEzQzs7QUFDQSxRQUFJLENBQUNxQixpQkFBTCxFQUF3QjtBQUN0QjtBQUNEOztBQUVELFdBQU9BLGlCQUFQO0FBQ0Q7O0FBQ0QsUUFBTTtBQUFFeEIsSUFBQUEsTUFBRjtBQUFVQyxJQUFBQTtBQUFWLE1BQW9CTCxvQkFBb0IsQ0FBQ0MsbUJBQUQsQ0FBOUM7O0FBRUEsTUFBSXJELGdCQUFFaUYsUUFBRixDQUFXeEIsS0FBWCxLQUFxQkQsTUFBTSxDQUFDUyxXQUFQLE9BQXlCRSx3QkFBYUYsV0FBYixFQUFsRCxFQUE4RTtBQUM1RSxXQUFPSyxnQkFBZ0IsQ0FBQ2IsS0FBRCxFQUFRTyxNQUFSLENBQXZCO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBSZW1vdGVVc2VyLCBQYWNrYWdlLCBDYWxsYmFjaywgQ29uZmlnLCBTZWN1cml0eSwgQVBJVG9rZW5PcHRpb25zLCBKV1RPcHRpb25zLCBJUGx1Z2luQXV0aCB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgQ29va2llU2Vzc2lvblRva2VuLCBJQXV0aFdlYlVJLCBBdXRoTWlkZGxld2FyZVBheWxvYWQsIEF1dGhUb2tlbkhlYWRlciwgQmFzaWNQYXlsb2FkIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgeyBjb252ZXJ0UGF5bG9hZFRvQmFzZTY0LCBFcnJvckNvZGUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEFQSV9FUlJPUiwgSFRUUF9TVEFUVVMsIFJPTEVTLCBUSU1FX0VYUElSQVRJT05fMUgsIFRPS0VOX0JBU0lDLCBUT0tFTl9CRUFSRVIsIERFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYWVzRGVjcnlwdCwgdmVyaWZ5UGF5bG9hZCB9IGZyb20gJy4vY3J5cHRvLXV0aWxzJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCd2ZXJkYWNjaW8nKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUGFzc3dvcmQoXG4gIHBhc3N3b3JkOiBzdHJpbmcsIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICBtaW5MZW5ndGg6IG51bWJlciA9IERFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBwYXNzd29yZCA9PT0gJ3N0cmluZycgJiYgcGFzc3dvcmQubGVuZ3RoID49IG1pbkxlbmd0aDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBSZW1vdGVVc2VyIG9iamVjdFxuICogQHJldHVybiB7T2JqZWN0fSB7IG5hbWU6IHh4LCBwbHVnaW5Hcm91cHM6IFtdLCByZWFsX2dyb3VwczogW10gfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVtb3RlVXNlcihuYW1lOiBzdHJpbmcsIHBsdWdpbkdyb3Vwczogc3RyaW5nW10pOiBSZW1vdGVVc2VyIHtcbiAgY29uc3QgaXNHcm91cFZhbGlkOiBib29sZWFuID0gQXJyYXkuaXNBcnJheShwbHVnaW5Hcm91cHMpO1xuICBjb25zdCBncm91cHMgPSAoaXNHcm91cFZhbGlkID8gcGx1Z2luR3JvdXBzIDogW10pLmNvbmNhdChbUk9MRVMuJEFMTCwgUk9MRVMuJEFVVEgsIFJPTEVTLkRFUFJFQ0FURURfQUxMLCBST0xFUy5ERVBSRUNBVEVEX0FVVEgsIFJPTEVTLkFMTF0pO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICBncm91cHMsXG4gICAgcmVhbF9ncm91cHM6IHBsdWdpbkdyb3VwcyxcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW4gYW5vbnltb3VzIHJlbW90ZSB1c2VyIGluIGNhc2Ugbm9uZSBpcyBsb2dnZWQgaW4uXG4gKiBAcmV0dXJuIHtPYmplY3R9IHsgbmFtZTogeHgsIGdyb3VwczogW10sIHJlYWxfZ3JvdXBzOiBbXSB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBbm9ueW1vdXNSZW1vdGVVc2VyKCk6IFJlbW90ZVVzZXIge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAvLyBncm91cHMgd2l0aG91dCAnJCcgYXJlIGdvaW5nIHRvIGJlIGRlcHJlY2F0ZWQgZXZlbnR1YWxseVxuICAgIGdyb3VwczogW1JPTEVTLiRBTEwsIFJPTEVTLiRBTk9OWU1PVVMsIFJPTEVTLkRFUFJFQ0FURURfQUxMLCBST0xFUy5ERVBSRUNBVEVEX0FOT05ZTU9VU10sXG4gICAgcmVhbF9ncm91cHM6IFtdLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsb3dfYWN0aW9uKGFjdGlvbjogc3RyaW5nKTogRnVuY3Rpb24ge1xuICByZXR1cm4gZnVuY3Rpb24gKHVzZXI6IFJlbW90ZVVzZXIsIHBrZzogUGFja2FnZSwgY2FsbGJhY2s6IENhbGxiYWNrKTogdm9pZCB7XG4gICAgZGVidWcoJ1thdXRoL2FsbG93X2FjdGlvbl06IHVzZXI6ICVvJywgdXNlcj8ubmFtZSk7XG4gICAgY29uc3QgeyBuYW1lLCBncm91cHMgfSA9IHVzZXI7XG4gICAgY29uc3QgZ3JvdXBBY2Nlc3MgPSBwa2dbYWN0aW9uXTtcbiAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gZ3JvdXBBY2Nlc3Muc29tZSgoZ3JvdXApID0+IG5hbWUgPT09IGdyb3VwIHx8IGdyb3Vwcy5pbmNsdWRlcyhncm91cCkpO1xuICAgIGRlYnVnKCdbYXV0aC9hbGxvd19hY3Rpb25dOiBoYXNQZXJtaXNzaW9uPyAlb30gZm9yIHVzZXI6ICVvJywgaGFzUGVybWlzc2lvbiwgdXNlcj8ubmFtZSk7XG5cbiAgICBpZiAoaGFzUGVybWlzc2lvbikge1xuICAgICAgbG9nZ2VyLmluZm8oeyByZW1vdGU6IHVzZXIubmFtZSB9LCBgYXV0aC9hbGxvd19hY3Rpb246IGFjY2VzcyBncmFudGVkIHRvOiBAe3VzZXJ9YCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIGNhbGxiYWNrKEVycm9yQ29kZS5nZXRGb3JiaWRkZW4oYHVzZXIgJHtuYW1lfSBpcyBub3QgYWxsb3dlZCB0byAke2FjdGlvbn0gcGFja2FnZSAke3BrZy5uYW1lfWApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbGJhY2soRXJyb3JDb2RlLmdldFVuYXV0aG9yaXplZChgYXV0aG9yaXphdGlvbiByZXF1aXJlZCB0byAke2FjdGlvbn0gcGFja2FnZSAke3BrZy5uYW1lfWApKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVNwZWNpYWxVbnB1Ymxpc2goKTogYW55IHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh1c2VyOiBSZW1vdGVVc2VyLCBwa2c6IFBhY2thZ2UsIGNhbGxiYWNrOiBDYWxsYmFjayk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbiA9ICd1bnB1Ymxpc2gnO1xuICAgIC8vIHZlcmlmeSB3aGV0aGVyIHRoZSB1bnB1Ymxpc2ggcHJvcCBoYXMgYmVlbiBkZWZpbmVkXG4gICAgY29uc3QgaXNVbnB1Ymxpc2hNaXNzaW5nOiBib29sZWFuID0gXy5pc05pbChwa2dbYWN0aW9uXSk7XG4gICAgY29uc3QgaGFzR3JvdXBzOiBib29sZWFuID0gaXNVbnB1Ymxpc2hNaXNzaW5nID8gZmFsc2UgOiBwa2dbYWN0aW9uXS5sZW5ndGggPiAwO1xuICAgIGRlYnVnKCdmYWxsYmFjayB1bnB1Ymxpc2ggZm9yIEB7bmFtZX0gaGFzIGdyb3VwczogJW8gZm9yICVvJywgaGFzR3JvdXBzLCB1c2VyPy5uYW1lKTtcbiAgICBpZiAoaXNVbnB1Ymxpc2hNaXNzaW5nIHx8IGhhc0dyb3VwcyA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB1bmRlZmluZWQpO1xuICAgIH1cbiAgICBkZWJ1ZygnYWxsb3dfYWN0aW9uIGZvciAlbyBmb3IgJW8gaGFzIGdyb3VwczogJW8gZm9yICVvJywgYWN0aW9uLCB1c2VyPy5uYW1lLCBoYXNHcm91cHMsIHVzZXIpO1xuICAgIHJldHVybiBhbGxvd19hY3Rpb24oYWN0aW9uKSh1c2VyLCBwa2csIGNhbGxiYWNrKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRQbHVnaW5zKGxvZ2dlcjogYW55KTogSVBsdWdpbkF1dGg8Q29uZmlnPiB7XG4gIHJldHVybiB7XG4gICAgYXV0aGVudGljYXRlKF91c2VyOiBzdHJpbmcsIF9wYXNzd29yZDogc3RyaW5nLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICAgICAgY2IoRXJyb3JDb2RlLmdldEZvcmJpZGRlbihBUElfRVJST1IuQkFEX1VTRVJOQU1FX1BBU1NXT1JEKSk7XG4gICAgfSxcblxuICAgIGFkZF91c2VyKF91c2VyOiBzdHJpbmcsIF9wYXNzd29yZDogc3RyaW5nLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIC8vIHByYWdtYTogYWxsb3dsaXN0IHNlY3JldFxuICAgICAgcmV0dXJuIGNiKEVycm9yQ29kZS5nZXRDb25mbGljdChBUElfRVJST1IuQkFEX1VTRVJOQU1FX1BBU1NXT1JEKSk7XG4gICAgfSxcblxuICAgIC8vIEZJWE1FOiBhbGxvd19hY3Rpb24gYW5kIGFsbG93X3B1Ymxpc2ggc2hvdWxkIGJlIGluIHRoZSBAdmVyZGFjY2lvL3R5cGVzXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGFsbG93X2FjY2VzczogYWxsb3dfYWN0aW9uKCdhY2Nlc3MnLCBsb2dnZXIpLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBhbGxvd19wdWJsaXNoOiBhbGxvd19hY3Rpb24oJ3B1Ymxpc2gnLCBsb2dnZXIpLFxuICAgIGFsbG93X3VucHVibGlzaDogaGFuZGxlU3BlY2lhbFVucHVibGlzaCgpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2Vzc2lvblRva2VuKCk6IENvb2tpZVNlc3Npb25Ub2tlbiB7XG4gIGNvbnN0IHRlbkhvdXJzVGltZSA9IDEwICogNjAgKiA2MCAqIDEwMDA7XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBucG1qcy5vcmcgc2V0cyAxMGggZXhwaXJlXG4gICAgZXhwaXJlczogbmV3IERhdGUoRGF0ZS5ub3coKSArIHRlbkhvdXJzVGltZSksXG4gIH07XG59XG5cbmNvbnN0IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnM6IEpXVE9wdGlvbnMgPSB7XG4gIHNpZ246IHtcbiAgICAvLyBUaGUgZXhwaXJhdGlvbiB0b2tlbiBmb3IgdGhlIHdlYnNpdGUgaXMgMSBob3VyXG4gICAgZXhwaXJlc0luOiBUSU1FX0VYUElSQVRJT05fMUgsXG4gIH0sXG4gIHZlcmlmeToge30sXG59O1xuXG5jb25zdCBkZWZhdWx0QXBpVG9rZW5Db25mOiBBUElUb2tlbk9wdGlvbnMgPSB7XG4gIGxlZ2FjeTogdHJ1ZSxcbn07XG5cbi8vIHdlIGxpbWl0IG1heCAxMDAwIHJlcXVlc3QgcGVyIDE1IG1pbnV0ZXMgb24gdXNlciBlbmRwb2ludHNcbmV4cG9ydCBjb25zdCBkZWZhdWx0VXNlclJhdGVMaW1pdGluZyA9IHtcbiAgd2luZG93TXM6IDE1ICogNjAgKiAxMDAwLCAvLyAxNSBtaW51dGVzXG4gIG1heDogMTAwMCxcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0U2VjdXJpdHk6IFNlY3VyaXR5ID0ge1xuICB3ZWI6IGRlZmF1bHRXZWJUb2tlbk9wdGlvbnMsXG4gIGFwaTogZGVmYXVsdEFwaVRva2VuQ29uZixcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWN1cml0eShjb25maWc6IENvbmZpZyk6IFNlY3VyaXR5IHtcbiAgaWYgKF8uaXNOaWwoY29uZmlnLnNlY3VyaXR5KSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gXy5tZXJnZShkZWZhdWx0U2VjdXJpdHksIGNvbmZpZy5zZWN1cml0eSk7XG4gIH1cblxuICByZXR1cm4gZGVmYXVsdFNlY3VyaXR5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UodXNlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGB5b3UgYXJlIGF1dGhlbnRpY2F0ZWQgYXMgJyR7dXNlcn0nYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVXNlckJ1ZmZlcihuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBCdWZmZXIge1xuICByZXR1cm4gQnVmZmVyLmZyb20oYCR7bmFtZX06JHtwYXNzd29yZH1gLCAndXRmOCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBRVNMZWdhY3koc2VjdXJpdHk6IFNlY3VyaXR5KTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgbGVnYWN5LCBqd3QgfSA9IHNlY3VyaXR5LmFwaTtcblxuICByZXR1cm4gXy5pc05pbChsZWdhY3kpID09PSBmYWxzZSAmJiBfLmlzTmlsKGp3dCkgJiYgbGVnYWN5ID09PSB0cnVlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXBpVG9rZW4oYXV0aDogSUF1dGhXZWJVSSwgY29uZmlnOiBDb25maWcsIHJlbW90ZVVzZXI6IFJlbW90ZVVzZXIsIGFlc1Bhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBzZWN1cml0eTogU2VjdXJpdHkgPSBnZXRTZWN1cml0eShjb25maWcpO1xuICBpZiAoaXNBRVNMZWdhY3koc2VjdXJpdHkpKSB7XG4gICAgLy8gZmFsbGJhY2sgYWxsIGdvZXMgdG8gQUVTIGVuY3J5cHRpb25cbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpOiB2b2lkID0+IHtcbiAgICAgIHJlc29sdmUoYXV0aC5hZXNFbmNyeXB0KGJ1aWxkVXNlckJ1ZmZlcihyZW1vdGVVc2VyLm5hbWUgYXMgc3RyaW5nLCBhZXNQYXNzd29yZCkpLnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gICAgfSk7XG4gIH1cbiAgLy8gaSBhbSB3aWxpbmcgdG8gdXNlIGhlcmUgXy5pc05pbCBidXQgZmxvdyBkb2VzIG5vdCBsaWtlIGl0IHlldC5cbiAgY29uc3QgeyBqd3QgfSA9IHNlY3VyaXR5LmFwaTtcblxuICBpZiAoand0ICYmIGp3dC5zaWduKSB7XG4gICAgcmV0dXJuIGF3YWl0IGF1dGguand0RW5jcnlwdChyZW1vdGVVc2VyLCBqd3Quc2lnbik7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKTogdm9pZCA9PiB7XG4gICAgcmVzb2x2ZShhdXRoLmFlc0VuY3J5cHQoYnVpbGRVc2VyQnVmZmVyKHJlbW90ZVVzZXIubmFtZSBhcyBzdHJpbmcsIGFlc1Bhc3N3b3JkKSkudG9TdHJpbmcoJ2Jhc2U2NCcpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUF1dGhUb2tlbkhlYWRlcihhdXRob3JpemF0aW9uSGVhZGVyOiBzdHJpbmcpOiBBdXRoVG9rZW5IZWFkZXIge1xuICBjb25zdCBwYXJ0cyA9IGF1dGhvcml6YXRpb25IZWFkZXIuc3BsaXQoJyAnKTtcbiAgY29uc3QgW3NjaGVtZSwgdG9rZW5dID0gcGFydHM7XG5cbiAgcmV0dXJuIHsgc2NoZW1lLCB0b2tlbiB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VCYXNpY1BheWxvYWQoY3JlZGVudGlhbHM6IHN0cmluZyk6IEJhc2ljUGF5bG9hZCB7XG4gIGNvbnN0IGluZGV4ID0gY3JlZGVudGlhbHMuaW5kZXhPZignOicpO1xuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdXNlcjogc3RyaW5nID0gY3JlZGVudGlhbHMuc2xpY2UoMCwgaW5kZXgpO1xuICBjb25zdCBwYXNzd29yZDogc3RyaW5nID0gY3JlZGVudGlhbHMuc2xpY2UoaW5kZXggKyAxKTtcblxuICByZXR1cm4geyB1c2VyLCBwYXNzd29yZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBRVNDcmVkZW50aWFscyhhdXRob3JpemF0aW9uSGVhZGVyOiBzdHJpbmcsIHNlY3JldDogc3RyaW5nKSB7XG4gIGNvbnN0IHsgc2NoZW1lLCB0b2tlbiB9ID0gcGFyc2VBdXRoVG9rZW5IZWFkZXIoYXV0aG9yaXphdGlvbkhlYWRlcik7XG5cbiAgLy8gYmFzaWMgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSBlbmZvcmNlZFxuICBpZiAoc2NoZW1lLnRvVXBwZXJDYXNlKCkgPT09IFRPS0VOX0JBU0lDLnRvVXBwZXJDYXNlKCkpIHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGNvbnZlcnRQYXlsb2FkVG9CYXNlNjQodG9rZW4pLnRvU3RyaW5nKCk7XG5cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH0gZWxzZSBpZiAoc2NoZW1lLnRvVXBwZXJDYXNlKCkgPT09IFRPS0VOX0JFQVJFUi50b1VwcGVyQ2FzZSgpKSB7XG4gICAgY29uc3QgdG9rZW5Bc0J1ZmZlciA9IGNvbnZlcnRQYXlsb2FkVG9CYXNlNjQodG9rZW4pO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYWVzRGVjcnlwdCh0b2tlbkFzQnVmZmVyLCBzZWNyZXQpLnRvU3RyaW5nKCd1dGY4Jyk7XG5cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGV4cGlyZVJlYXNvbnM6IHN0cmluZ1tdID0gWydKc29uV2ViVG9rZW5FcnJvcicsICdUb2tlbkV4cGlyZWRFcnJvciddO1xuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5SldUUGF5bG9hZCh0b2tlbjogc3RyaW5nLCBzZWNyZXQ6IHN0cmluZyk6IFJlbW90ZVVzZXIge1xuICB0cnkge1xuICAgIGNvbnN0IHBheWxvYWQ6IFJlbW90ZVVzZXIgPSB2ZXJpZnlQYXlsb2FkKHRva2VuLCBzZWNyZXQpO1xuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gIzE2OCB0aGlzIGNoZWNrIHNob3VsZCBiZSByZW1vdmVkIGFzIHNvb24gQUVTIGVuY3J5cHQgaXMgcmVtb3ZlZC5cbiAgICBpZiAoZXhwaXJlUmVhc29ucy5pbmNsdWRlcyhlcnJvci5uYW1lKSkge1xuICAgICAgLy8gaXQgbWlnaHQgYmUgcG9zc2libGUgdGhlIGp3dCBjb25maWd1cmF0aW9uIGlzIGVuYWJsZWQgYW5kXG4gICAgICAvLyBvbGQgdG9rZW5zIGZhaWxzIHN0aWxsIHJlbWFpbnMgaW4gdXNhZ2UsIHRodXNcbiAgICAgIC8vIHdlIHJldHVybiBhbiBhbm9ueW1vdXMgdXNlciB0byBmb3JjZSBsb2cgaW4uXG4gICAgICByZXR1cm4gY3JlYXRlQW5vbnltb3VzUmVtb3RlVXNlcigpO1xuICAgIH1cbiAgICB0aHJvdyBFcnJvckNvZGUuZ2V0Q29kZShIVFRQX1NUQVRVUy5VTkFVVEhPUklaRUQsIGVycm9yLm1lc3NhZ2UpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0F1dGhIZWFkZXJWYWxpZChhdXRob3JpemF0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGF1dGhvcml6YXRpb24uc3BsaXQoJyAnKS5sZW5ndGggPT09IDI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNaWRkbGV3YXJlQ3JlZGVudGlhbHMoc2VjdXJpdHk6IFNlY3VyaXR5LCBzZWNyZXQ6IHN0cmluZywgYXV0aG9yaXphdGlvbkhlYWRlcjogc3RyaW5nKTogQXV0aE1pZGRsZXdhcmVQYXlsb2FkIHtcbiAgaWYgKGlzQUVTTGVnYWN5KHNlY3VyaXR5KSkge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gcGFyc2VBRVNDcmVkZW50aWFscyhhdXRob3JpemF0aW9uSGVhZGVyLCBzZWNyZXQpO1xuICAgIGlmICghY3JlZGVudGlhbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZWRDcmVkZW50aWFscyA9IHBhcnNlQmFzaWNQYXlsb2FkKGNyZWRlbnRpYWxzKTtcbiAgICBpZiAoIXBhcnNlZENyZWRlbnRpYWxzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnNlZENyZWRlbnRpYWxzO1xuICB9XG4gIGNvbnN0IHsgc2NoZW1lLCB0b2tlbiB9ID0gcGFyc2VBdXRoVG9rZW5IZWFkZXIoYXV0aG9yaXphdGlvbkhlYWRlcik7XG5cbiAgaWYgKF8uaXNTdHJpbmcodG9rZW4pICYmIHNjaGVtZS50b1VwcGVyQ2FzZSgpID09PSBUT0tFTl9CRUFSRVIudG9VcHBlckNhc2UoKSkge1xuICAgIHJldHVybiB2ZXJpZnlKV1RQYXlsb2FkKHRva2VuLCBzZWNyZXQpO1xuICB9XG59XG4iXX0=
|
package/build/lib/config.js
CHANGED
|
@@ -17,8 +17,14 @@ var _utils = require("./utils");
|
|
|
17
17
|
|
|
18
18
|
var _constants = require("./constants");
|
|
19
19
|
|
|
20
|
+
var _authUtils = require("./auth-utils");
|
|
21
|
+
|
|
20
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
23
|
|
|
24
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
25
|
+
|
|
26
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
27
|
+
|
|
22
28
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
23
29
|
|
|
24
30
|
const LoggerApi = require('./logger');
|
|
@@ -30,6 +36,7 @@ const allowedEnvConfig = ['http_proxy', 'https_proxy', 'no_proxy'];
|
|
|
30
36
|
*/
|
|
31
37
|
|
|
32
38
|
class Config {
|
|
39
|
+
// @ts-ignore
|
|
33
40
|
// @ts-ignore
|
|
34
41
|
// @ts-ignore
|
|
35
42
|
constructor(config) {
|
|
@@ -45,6 +52,8 @@ class Config {
|
|
|
45
52
|
|
|
46
53
|
_defineProperty(this, "users", void 0);
|
|
47
54
|
|
|
55
|
+
_defineProperty(this, "userRateLimit", void 0);
|
|
56
|
+
|
|
48
57
|
_defineProperty(this, "server_id", void 0);
|
|
49
58
|
|
|
50
59
|
_defineProperty(this, "self_path", void 0);
|
|
@@ -65,13 +74,13 @@ class Config {
|
|
|
65
74
|
if (self[configProp] == null) {
|
|
66
75
|
self[configProp] = config[configProp];
|
|
67
76
|
}
|
|
68
|
-
}
|
|
69
|
-
|
|
77
|
+
}
|
|
70
78
|
|
|
71
|
-
if (
|
|
72
|
-
this.user_agent = (0, _utils.getUserAgent)();
|
|
73
|
-
}
|
|
79
|
+
if (config !== null && config !== void 0 && config.user_agent) {
|
|
80
|
+
this.user_agent = (0, _utils.getUserAgent)(config === null || config === void 0 ? void 0 : config.user_agent);
|
|
81
|
+
}
|
|
74
82
|
|
|
83
|
+
this.userRateLimit = _objectSpread(_objectSpread({}, _authUtils.defaultUserRateLimiting), config === null || config === void 0 ? void 0 : config.userRateLimit); // some weird shell scripts are valid yaml files parsed as string
|
|
75
84
|
|
|
76
85
|
(0, _assert.default)(_lodash.default.isObject(config), _constants.APP_ERROR.CONFIG_NOT_VALID); // sanity check for strategic config properties
|
|
77
86
|
|
|
@@ -131,4 +140,4 @@ class Config {
|
|
|
131
140
|
|
|
132
141
|
var _default = Config;
|
|
133
142
|
exports.default = _default;
|
|
134
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
143
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29uZmlnLnRzIl0sIm5hbWVzIjpbIkxvZ2dlckFwaSIsInJlcXVpcmUiLCJzdHJhdGVnaWNDb25maWdQcm9wcyIsImFsbG93ZWRFbnZDb25maWciLCJDb25maWciLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsInNlbGYiLCJsb2dnZXIiLCJzZWxmX3BhdGgiLCJzdG9yYWdlIiwicGx1Z2lucyIsImNvbmZpZ1Byb3AiLCJ1c2VyX2FnZW50IiwidXNlclJhdGVMaW1pdCIsImRlZmF1bHRVc2VyUmF0ZUxpbWl0aW5nIiwiXyIsImlzT2JqZWN0IiwiQVBQX0VSUk9SIiwiQ09ORklHX05PVF9WQUxJRCIsImZvckVhY2giLCJ4IiwidXBsaW5rcyIsImlzTmlsIiwidXNlcnMiLCJ3YXJuIiwicGFja2FnZXMiLCJlbnZDb25mIiwicHJvY2VzcyIsImVudiIsInRvVXBwZXJDYXNlIiwic2VydmVyX2lkIiwiZ2V0TWF0Y2hlZFBhY2thZ2VzU3BlYyIsInBrZ05hbWUiLCJjaGVja1NlY3JldEtleSIsInNlY3JldCIsImlzU3RyaW5nIiwiaXNFbXB0eSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUlBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsTUFBTUEsU0FBUyxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRyxDQUFDLFNBQUQsRUFBWSxVQUFaLENBQTdCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQyxZQUFELEVBQWUsYUFBZixFQUE4QixVQUE5QixDQUF6QjtBQUVBO0FBQ0E7QUFDQTs7QUFDQSxNQUFNQyxNQUFOLENBQWtDO0FBRWhDO0FBRUE7QUFVQTtBQUdPQyxFQUFBQSxXQUFXLENBQUNDLE1BQUQsRUFBd0I7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFDeEMs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LDBDQUF3QixFQUF4QixDQUFkO0FBQ0EsV0FBTyxLQUFLQSxNQUFaO0FBQ0Q7O0FBMUYrQjs7ZUE2Rm5CL0IsTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IFBhY2thZ2VMaXN0LCBDb25maWcgYXMgQXBwQ29uZmlnLCBTZWN1cml0eSwgTG9nZ2VyLCBSYXRlTGltaXQgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IE1hdGNoZWRQYWNrYWdlLCBTdGFydFVwQ29uZmlnIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVSYW5kb21IZXhTdHJpbmcgfSBmcm9tICcuL2NyeXB0by11dGlscyc7XG5pbXBvcnQgeyBnZXRNYXRjaGVkUGFja2FnZXNTcGVjLCBub3JtYWxpc2VQYWNrYWdlQWNjZXNzLCBzYW5pdHlDaGVja1VwbGlua3NQcm9wcywgdXBsaW5rU2FuaXR5Q2hlY2sgfSBmcm9tICcuL2NvbmZpZy11dGlscyc7XG5pbXBvcnQgeyBnZXRVc2VyQWdlbnQsIGlzT2JqZWN0IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBBUFBfRVJST1IgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBkZWZhdWx0VXNlclJhdGVMaW1pdGluZyB9IGZyb20gJy4vYXV0aC11dGlscyc7XG5cbmNvbnN0IExvZ2dlckFwaSA9IHJlcXVpcmUoJy4vbG9nZ2VyJyk7XG5jb25zdCBzdHJhdGVnaWNDb25maWdQcm9wcyA9IFsndXBsaW5rcycsICdwYWNrYWdlcyddO1xuY29uc3QgYWxsb3dlZEVudkNvbmZpZyA9IFsnaHR0cF9wcm94eScsICdodHRwc19wcm94eScsICdub19wcm94eSddO1xuXG4vKipcbiAqIENvb3JkaW5hdGVzIHRoZSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uXG4gKi9cbmNsYXNzIENvbmZpZyBpbXBsZW1lbnRzIEFwcENvbmZpZyB7XG4gIHB1YmxpYyBsb2dnZXI6IExvZ2dlcjtcbiAgLy8gQHRzLWlnbm9yZVxuICBwdWJsaWMgdXNlcl9hZ2VudDogYm9vbGVhbiB8IHN0cmluZztcbiAgLy8gQHRzLWlnbm9yZVxuICBwdWJsaWMgc2VjcmV0OiBzdHJpbmc7XG4gIHB1YmxpYyB1cGxpbmtzOiBhbnk7XG4gIHB1YmxpYyBwYWNrYWdlczogUGFja2FnZUxpc3Q7XG4gIHB1YmxpYyB1c2VyczogYW55O1xuICBwdWJsaWMgdXNlclJhdGVMaW1pdDogUmF0ZUxpbWl0O1xuICBwdWJsaWMgc2VydmVyX2lkOiBzdHJpbmc7XG4gIHB1YmxpYyBzZWxmX3BhdGg6IHN0cmluZztcbiAgcHVibGljIHN0b3JhZ2U6IHN0cmluZyB8IHZvaWQ7XG4gIHB1YmxpYyBwbHVnaW5zOiBzdHJpbmcgfCB2b2lkO1xuICAvLyBAdHMtaWdub3JlXG4gIHB1YmxpYyBzZWN1cml0eTogU2VjdXJpdHk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGNvbmZpZzogU3RhcnRVcENvbmZpZykge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHRoaXMubG9nZ2VyID0gTG9nZ2VyQXBpLmxvZ2dlcjtcbiAgICB0aGlzLnNlbGZfcGF0aCA9IGNvbmZpZy5zZWxmX3BhdGg7XG4gICAgdGhpcy5zdG9yYWdlID0gY29uZmlnLnN0b3JhZ2U7XG4gICAgdGhpcy5wbHVnaW5zID0gY29uZmlnLnBsdWdpbnM7XG5cbiAgICBmb3IgKGNvbnN0IGNvbmZpZ1Byb3AgaW4gY29uZmlnKSB7XG4gICAgICBpZiAoc2VsZltjb25maWdQcm9wXSA9PSBudWxsKSB7XG4gICAgICAgIHNlbGZbY29uZmlnUHJvcF0gPSBjb25maWdbY29uZmlnUHJvcF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZz8udXNlcl9hZ2VudCkge1xuICAgICAgdGhpcy51c2VyX2FnZW50ID0gZ2V0VXNlckFnZW50KGNvbmZpZz8udXNlcl9hZ2VudCk7XG4gICAgfVxuXG4gICAgdGhpcy51c2VyUmF0ZUxpbWl0ID0geyAuLi5kZWZhdWx0VXNlclJhdGVMaW1pdGluZywgLi4uY29uZmlnPy51c2VyUmF0ZUxpbWl0IH07XG5cbiAgICAvLyBzb21lIHdlaXJkIHNoZWxsIHNjcmlwdHMgYXJlIHZhbGlkIHlhbWwgZmlsZXMgcGFyc2VkIGFzIHN0cmluZ1xuICAgIGFzc2VydChfLmlzT2JqZWN0KGNvbmZpZyksIEFQUF9FUlJPUi5DT05GSUdfTk9UX1ZBTElEKTtcblxuICAgIC8vIHNhbml0eSBjaGVjayBmb3Igc3RyYXRlZ2ljIGNvbmZpZyBwcm9wZXJ0aWVzXG4gICAgc3RyYXRlZ2ljQ29uZmlnUHJvcHMuZm9yRWFjaChmdW5jdGlvbiAoeCk6IHZvaWQge1xuICAgICAgaWYgKHNlbGZbeF0gPT0gbnVsbCkge1xuICAgICAgICBzZWxmW3hdID0ge307XG4gICAgICB9XG5cbiAgICAgIGFzc2VydChpc09iamVjdChzZWxmW3hdKSwgYENPTkZJRzogYmFkIFwiJHt4fVwiIHZhbHVlIChvYmplY3QgZXhwZWN0ZWQpYCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwbGlua3MgPSBzYW5pdHlDaGVja1VwbGlua3NQcm9wcyh1cGxpbmtTYW5pdHlDaGVjayh0aGlzLnVwbGlua3MpKTtcblxuICAgIGlmIChfLmlzTmlsKHRoaXMudXNlcnMpID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihgW3VzZXJzXTogcHJvcGVydHkgb24gY29uZmlndXJhdGlvbiBmaWxlXG4gICAgICBpcyBub3QgbG9uZ2VyIHN1cHBvcnRlZCwgcHJvcGVydHkgYmVpbmcgaWdub3JlZGApO1xuICAgIH1cblxuICAgIHRoaXMucGFja2FnZXMgPSBub3JtYWxpc2VQYWNrYWdlQWNjZXNzKHNlbGYucGFja2FnZXMpO1xuXG4gICAgLy8gbG9hZGluZyB0aGVzZSBmcm9tIEVOViBpZiBhcmVuJ3QgaW4gY29uZmlnXG4gICAgYWxsb3dlZEVudkNvbmZpZy5mb3JFYWNoKChlbnZDb25mKTogdm9pZCA9PiB7XG4gICAgICBpZiAoIShlbnZDb25mIGluIHNlbGYpKSB7XG4gICAgICAgIHNlbGZbZW52Q29uZl0gPSBwcm9jZXNzLmVudltlbnZDb25mXSB8fCBwcm9jZXNzLmVudltlbnZDb25mLnRvVXBwZXJDYXNlKCldO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gdW5pcXVlIGlkZW50aWZpZXIgb2Ygc2VsZiBzZXJ2ZXIgKG9yIGEgY2x1c3RlciksIHVzZWQgdG8gYXZvaWQgbG9vcHNcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKCF0aGlzLnNlcnZlcl9pZCkge1xuICAgICAgdGhpcy5zZXJ2ZXJfaWQgPSBnZW5lcmF0ZVJhbmRvbUhleFN0cmluZyg2KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgZm9yIHBhY2thZ2Ugc3BlY1xuICAgKi9cbiAgcHVibGljIGdldE1hdGNoZWRQYWNrYWdlc1NwZWMocGtnTmFtZTogc3RyaW5nKTogTWF0Y2hlZFBhY2thZ2Uge1xuICAgIHJldHVybiBnZXRNYXRjaGVkUGFja2FnZXNTcGVjKHBrZ05hbWUsIHRoaXMucGFja2FnZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlIG9yIGNyZWF0ZSB3aGV0aGVyIHJlY2VpdmUgYSBzZWNyZXQga2V5XG4gICAqL1xuICBwdWJsaWMgY2hlY2tTZWNyZXRLZXkoc2VjcmV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChfLmlzU3RyaW5nKHNlY3JldCkgJiYgXy5pc0VtcHR5KHNlY3JldCkgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnNlY3JldCA9IHNlY3JldDtcbiAgICAgIHJldHVybiBzZWNyZXQ7XG4gICAgfVxuICAgIC8vIGl0IGdlbmVyYXRlcyBhIHNlY3JldCBrZXlcbiAgICAvLyBGVVRVUkU6IHRoaXMgbWlnaHQgYmUgYW4gZXh0ZXJuYWwgc2VjcmV0IGtleSwgcGVyaGFwcyB3aXRoaW4gY29uZmlnIGZpbGU/XG4gICAgdGhpcy5zZWNyZXQgPSBnZW5lcmF0ZVJhbmRvbUhleFN0cmluZygzMik7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbmZpZztcbiJdfQ==
|
package/build/lib/constants.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.keyPem = exports.csrPem = exports.certPem = exports.WEB_TITLE = exports.USERS = exports.TOKEN_BEARER = exports.TOKEN_BASIC = exports.
|
|
6
|
+
exports.keyPem = exports.csrPem = exports.certPem = exports.WEB_TITLE = exports.USERS = exports.TOKEN_BEARER = exports.TOKEN_BASIC = exports.TIME_EXPIRATION_24H = exports.TIME_EXPIRATION_1H = exports.SUPPORT_ERRORS = exports.STORAGE = exports.ROLES = exports.PACKAGE_ACCESS = exports.MODULE_NOT_FOUND = exports.LATEST = exports.HTTP_STATUS = exports.HEADER_TYPE = exports.HEADERS = exports.ERROR_CODE = exports.DIST_TAGS = exports.DEFAULT_USER = exports.DEFAULT_UPLINK = exports.DEFAULT_REGISTRY = exports.DEFAULT_PROTOCOL = exports.DEFAULT_PORT = exports.DEFAULT_NO_README = exports.DEFAULT_MIN_LIMIT_PASSWORD = exports.DEFAULT_DOMAIN = exports.CHARACTER_ENCODING = exports.APP_ERROR = exports.API_MESSAGE = exports.API_ERROR = void 0;
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @prettier
|
|
@@ -17,8 +17,8 @@ const DEFAULT_DOMAIN = 'localhost';
|
|
|
17
17
|
exports.DEFAULT_DOMAIN = DEFAULT_DOMAIN;
|
|
18
18
|
const TIME_EXPIRATION_24H = '24h';
|
|
19
19
|
exports.TIME_EXPIRATION_24H = TIME_EXPIRATION_24H;
|
|
20
|
-
const
|
|
21
|
-
exports.
|
|
20
|
+
const TIME_EXPIRATION_1H = '1h';
|
|
21
|
+
exports.TIME_EXPIRATION_1H = TIME_EXPIRATION_1H;
|
|
22
22
|
const DIST_TAGS = 'dist-tags';
|
|
23
23
|
exports.DIST_TAGS = DIST_TAGS;
|
|
24
24
|
const LATEST = 'latest';
|
|
@@ -42,6 +42,7 @@ const HEADERS = {
|
|
|
42
42
|
JSON: 'application/json',
|
|
43
43
|
CONTENT_TYPE: 'Content-type',
|
|
44
44
|
CONTENT_LENGTH: 'content-length',
|
|
45
|
+
CACHE_CONTROL: 'Cache-Control',
|
|
45
46
|
TEXT_PLAIN: 'text/plain',
|
|
46
47
|
TEXT_HTML: 'text/html',
|
|
47
48
|
AUTHORIZATION: 'authorization',
|
|
@@ -188,4 +189,4 @@ const STORAGE = {
|
|
|
188
189
|
DEFAULT_REVISION: '0-0000000000000000'
|
|
189
190
|
};
|
|
190
191
|
exports.STORAGE = STORAGE;
|
|
191
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbIkRFRkFVTFRfUE9SVCIsIkRFRkFVTFRfUFJPVE9DT0wiLCJERUZBVUxUX0RPTUFJTiIsIlRJTUVfRVhQSVJBVElPTl8yNEgiLCJUSU1FX0VYUElSQVRJT05fN0QiLCJESVNUX1RBR1MiLCJMQVRFU1QiLCJVU0VSUyIsIkRFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEIiwiREVGQVVMVF9VU0VSIiwia2V5UGVtIiwiY2VydFBlbSIsImNzclBlbSIsIkhFQURFUlMiLCJBQ0NFUFQiLCJBQ0NFUFRfRU5DT0RJTkciLCJVU0VSX0FHRU5UIiwiSlNPTiIsIkNPTlRFTlRfVFlQRSIsIkNPTlRFTlRfTEVOR1RIIiwiVEVYVF9QTEFJTiIsIlRFWFRfSFRNTCIsIkFVVEhPUklaQVRJT04iLCJGT1JXQVJERURfUFJPVE8iLCJGUkFNRVNfT1BUSU9OUyIsIkNTUCIsIkNUTyIsIlhTUyIsIkVUQUciLCJKU09OX0NIQVJTRVQiLCJPQ1RFVF9TVFJFQU0iLCJURVhUX0NIQVJTRVQiLCJXV1dfQVVUSCIsIkdaSVAiLCJDSEFSQUNURVJfRU5DT0RJTkciLCJVVEY4IiwiSEVBREVSX1RZUEUiLCJDT05URU5UX0VOQ09ESU5HIiwiRVJST1JfQ09ERSIsInRva2VuX3JlcXVpcmVkIiwiVE9LRU5fQkFTSUMiLCJUT0tFTl9CRUFSRVIiLCJERUZBVUxUX1JFR0lTVFJZIiwiREVGQVVMVF9VUExJTksiLCJST0xFUyIsIiRBTEwiLCJBTEwiLCIkQVVUSCIsIiRBTk9OWU1PVVMiLCJERVBSRUNBVEVEX0FMTCIsIkRFUFJFQ0FURURfQVVUSCIsIkRFUFJFQ0FURURfQU5PTllNT1VTIiwiSFRUUF9TVEFUVVMiLCJPSyIsIkNSRUFURUQiLCJNVUxUSVBMRV9DSE9JQ0VTIiwiUkVESVJFQ1QiLCJOT1RfTU9ESUZJRUQiLCJCQURfUkVRVUVTVCIsIlVOQVVUSE9SSVpFRCIsIkZPUkJJRERFTiIsIk5PVF9GT1VORCIsIkNPTkZMSUNUIiwiVU5TVVBQT1JURURfTUVESUEiLCJCQURfREFUQSIsIklOVEVSTkFMX0VSUk9SIiwiTk9UX0lNUExFTUVOVEVEIiwiU0VSVklDRV9VTkFWQUlMQUJMRSIsIkxPT1BfREVURUNURUQiLCJBUElfTUVTU0FHRSIsIlBLR19DUkVBVEVEIiwiUEtHX0NIQU5HRUQiLCJQS0dfUkVNT1ZFRCIsIlBLR19QVUJMSVNIRUQiLCJUQVJCQUxMX1VQTE9BREVEIiwiVEFSQkFMTF9SRU1PVkVEIiwiVEFHX1VQREFURUQiLCJUQUdfUkVNT1ZFRCIsIlRBR19BRERFRCIsIkxPR0dFRF9PVVQiLCJTVVBQT1JUX0VSUk9SUyIsIlBMVUdJTl9NSVNTSU5HX0lOVEVSRkFDRSIsIlRGQV9ESVNBQkxFRCIsIlNUT1JBR0VfTk9UX0lNUExFTUVOVCIsIlBBUkFNRVRFUlNfTk9UX1ZBTElEIiwiQVBJX0VSUk9SIiwiUEFTU1dPUkRfU0hPUlQiLCJwYXNzTGVuZ3RoIiwiTVVTVF9CRV9MT0dHRUQiLCJQTFVHSU5fRVJST1IiLCJDT05GSUdfQkFEX0ZPUk1BVCIsIkJBRF9VU0VSTkFNRV9QQVNTV09SRCIsIk5PX1BBQ0tBR0UiLCJQQUNLQUdFX0NBTk5PVF9CRV9BRERFRCIsIk5PVF9BTExPV0VEIiwiTk9UX0FMTE9XRURfUFVCTElTSCIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsIlVOS05PV05fRVJST1IiLCJOT1RfUEFDS0FHRV9VUExJTksiLCJVUExJTktfT0ZGTElORV9QVUJMSVNIIiwiVVBMSU5LX09GRkxJTkUiLCJDT05URU5UX01JU01BVENIIiwiTk9UX0ZJTEVfVVBMSU5LIiwiTUFYX1VTRVJTX1JFQUNIRUQiLCJWRVJTSU9OX05PVF9FWElTVCIsIkZJTEVfTk9UX0ZPVU5EIiwiVU5TVVBPUlRFRF9SRUdJU1RSWV9DQUxMIiwiQkFEX1NUQVRVU19DT0RFIiwiUEFDS0FHRV9FWElTVCIsIkJBRF9BVVRIX0hFQURFUiIsIldFQl9ESVNBQkxFRCIsIkRFUFJFQ0FURURfQkFTSUNfSEVBREVSIiwiQkFEX0ZPUk1BVF9VU0VSX0dST1VQIiwiUkVTT1VSQ0VfVU5BVkFJTEFCTEUiLCJCQURfUEFDS0FHRV9EQVRBIiwiVVNFUk5BTUVfUEFTU1dPUkRfUkVRVUlSRUQiLCJVU0VSTkFNRV9BTFJFQURZX1JFR0lTVEVSRUQiLCJBUFBfRVJST1IiLCJDT05GSUdfTk9UX1ZBTElEIiwiUFJPRklMRV9FUlJPUiIsIlBBU1NXT1JEX1ZBTElEQVRJT04iLCJERUZBVUxUX05PX1JFQURNRSIsIk1PRFVMRV9OT1RfRk9VTkQiLCJXRUJfVElUTEUiLCJQQUNLQUdFX0FDQ0VTUyIsIlNDT1BFIiwiU1RPUkFHRSIsIlBBQ0tBR0VfRklMRV9OQU1FIiwiRklMRV9FWElTVF9FUlJPUiIsIk5PX1NVQ0hfRklMRV9FUlJPUiIsIkRFRkFVTFRfUkVWSVNJT04iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUVPLE1BQU1BLFlBQVksR0FBRyxNQUFyQjs7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyxNQUF6Qjs7QUFDQSxNQUFNQyxjQUFjLEdBQUcsV0FBdkI7O0FBQ0EsTUFBTUMsbUJBQW1CLEdBQUcsS0FBNUI7O0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUcsSUFBM0I7O0FBQ0EsTUFBTUMsU0FBUyxHQUFHLFdBQWxCOztBQUNBLE1BQU1DLE1BQU0sR0FBRyxRQUFmOztBQUNBLE1BQU1DLEtBQUssR0FBRyxPQUFkOztBQUNBLE1BQU1DLDBCQUEwQixHQUFHLENBQW5DOztBQUNBLE1BQU1DLFlBQVksR0FBRyxXQUFyQjs7QUFFQSxNQUFNQyxNQUFNLEdBQUcsbUJBQWY7O0FBQ0EsTUFBTUMsT0FBTyxHQUFHLG9CQUFoQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUcsbUJBQWY7O0FBRUEsTUFBTUMsT0FBTyxHQUFHO0FBQ3JCQyxFQUFBQSxNQUFNLEVBQUUsUUFEYTtBQUVyQkMsRUFBQUEsZUFBZSxFQUFFLGlCQUZJO0FBR3JCQyxFQUFBQSxVQUFVLEVBQUUsWUFIUztBQUlyQkMsRUFBQUEsSUFBSSxFQUFFLGtCQUplO0FBS3JCQyxF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QXJCTztBQXNCdkJDLEVBQUFBLHdCQUF3QixFQUFFLDJCQXRCSDtBQXVCdkJDLEVBQUFBLGVBQWUsRUFBRSxpQkF2Qk07QUF3QnZCQyxFQUFBQSxhQUFhLEVBQUUsaUNBeEJRO0FBeUJ2QkMsRUFBQUEsZUFBZSxFQUFFLDBCQXpCTTtBQTBCdkJDLEVBQUFBLFlBQVksRUFBRSw4Q0ExQlM7QUEyQnZCQyxFQUFBQSx1QkFBdUIsRUFBRSw0REEzQkY7QUE0QnZCQyxFQUFBQSxxQkFBcUIsRUFBRSx3Q0E1QkE7QUE2QnZCQyxFQUFBQSxvQkFBb0IsRUFBRSxzQkE3QkM7QUE4QnZCQyxFQUFBQSxnQkFBZ0IsRUFBRSwyQkE5Qks7QUErQnZCQyxFQUFBQSwwQkFBMEIsRUFBRSxtQ0EvQkw7QUFnQ3ZCQyxFQUFBQSwyQkFBMkIsRUFBRTtBQWhDTixDQUFsQjs7QUFtQ0EsTUFBTUMsU0FBUyxHQUFHO0FBQ3ZCQyxFQUFBQSxnQkFBZ0IsRUFBRSxtREFESztBQUV2QkMsRUFBQUEsYUFBYSxFQUFFLDBCQUZRO0FBR3ZCQyxFQUFBQSxtQkFBbUIsRUFBRTtBQUhFLENBQWxCOztBQU1BLE1BQU1DLGlCQUFpQixHQUFHLDhCQUExQjs7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyxrQkFBekI7O0FBRUEsTUFBTUMsU0FBUyxHQUFHLFdBQWxCOztBQUVBLE1BQU1DLGNBQWMsR0FBRztBQUM1QkMsRUFBQUEsS0FBSyxFQUFFLE1BRHFCO0FBRTVCL0UsRUFBQUEsR0FBRyxFQUFFO0FBRnVCLENBQXZCOztBQUtBLE1BQU1nRixPQUFPLEdBQUc7QUFDckJDLEVBQUFBLGlCQUFpQixFQUFFLGNBREU7QUFFckJDLEVBQUFBLGdCQUFnQixFQUFFLFNBRkc7QUFHckJDLEVBQUFBLGtCQUFrQixFQUFFLFFBSEM7QUFJckJDLEVBQUFBLGdCQUFnQixFQUFFO0FBSkcsQ0FBaEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbi8vIEBmbG93XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BPUlQgPSAnNDg3Myc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9QUk9UT0NPTCA9ICdodHRwJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX0RPTUFJTiA9ICdsb2NhbGhvc3QnO1xuZXhwb3J0IGNvbnN0IFRJTUVfRVhQSVJBVElPTl8yNEggPSAnMjRoJztcbmV4cG9ydCBjb25zdCBUSU1FX0VYUElSQVRJT05fN0QgPSAnN2QnO1xuZXhwb3J0IGNvbnN0IERJU1RfVEFHUyA9ICdkaXN0LXRhZ3MnO1xuZXhwb3J0IGNvbnN0IExBVEVTVCA9ICdsYXRlc3QnO1xuZXhwb3J0IGNvbnN0IFVTRVJTID0gJ3VzZXJzJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX01JTl9MSU1JVF9QQVNTV09SRCA9IDM7XG5leHBvcnQgY29uc3QgREVGQVVMVF9VU0VSID0gJ0Fub255bW91cyc7XG5cbmV4cG9ydCBjb25zdCBrZXlQZW0gPSAndmVyZGFjY2lvLWtleS5wZW0nO1xuZXhwb3J0IGNvbnN0IGNlcnRQZW0gPSAndmVyZGFjY2lvLWNlcnQucGVtJztcbmV4cG9ydCBjb25zdCBjc3JQZW0gPSAndmVyZGFjY2lvLWNzci5wZW0nO1xuXG5leHBvcnQgY29uc3QgSEVBREVSUyA9IHtcbiAgQUNDRVBUOiAnQWNjZXB0JyxcbiAgQUNDRVBUX0VOQ09ESU5HOiAnQWNjZXB0LUVuY29kaW5nJyxcbiAgVVNFUl9BR0VOVDogJ1VzZXItQWdlbnQnLFxuICBKU09OOiAnYXBwbGljYXRpb24vanNvbicsXG4gIENPTlRFTlRfVFlQRTogJ0NvbnRlbnQtdHlwZScsXG4gIENPTlRFTlRfTEVOR1RIOiAnY29udGVudC1sZW5ndGgnLFxuICBURVhUX1BMQUlOOiAndGV4dC9wbGFpbicsXG4gIFRFWFRfSFRNTDogJ3RleHQvaHRtbCcsXG4gIEFVVEhPUklaQVRJT046ICdhdXRob3JpemF0aW9uJyxcbiAgRk9SV0FSREVEX1BST1RPOiAnWC1Gb3J3YXJkZWQtUHJvdG8nLFxuICBGUkFNRVNfT1BUSU9OUzogJ1gtRnJhbWUtT3B0aW9ucycsXG4gIENTUDogJ0NvbnRlbnQtU2VjdXJpdHktUG9saWN5JyxcbiAgQ1RPOiAnWC1Db250ZW50LVR5cGUtT3B0aW9ucycsXG4gIFhTUzogJ1gtWFNTLVByb3RlY3Rpb24nLFxuICBFVEFHOiAnRVRhZycsXG4gIEpTT05fQ0hBUlNFVDogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnLFxuICBPQ1RFVF9TVFJFQU06ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07IGNoYXJzZXQ9dXRmLTgnLFxuICBURVhUX0NIQVJTRVQ6ICd0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04JyxcbiAgV1dXX0FVVEg6ICdXV1ctQXV0aGVudGljYXRlJyxcbiAgR1pJUDogJ2d6aXAnXG59O1xuXG5leHBvcnQgY29uc3QgQ0hBUkFDVEVSX0VOQ09ESU5HID0ge1xuICBVVEY4OiAndXRmOCdcbn07XG5cbmV4cG9ydCBjb25zdCBIRUFERVJfVFlQRSA9IHtcbiAgQ09OVEVOVF9FTkNPRElORzogJ2NvbnRlbnQtZW5jb2RpbmcnLFxuICBDT05URU5UX1RZUEU6ICdjb250ZW50LXR5cGUnLFxuICBDT05URU5UX0xFTkdUSDogJ2NvbnRlbnQtbGVuZ3RoJyxcbiAgQUNDRVBUX0VOQ09ESU5HOiAnYWNjZXB0LWVuY29kaW5nJ1xufTtcblxuZXhwb3J0IGNvbnN0IEVSUk9SX0NPREUgPSB7XG4gIHRva2VuX3JlcXVpcmVkOiAndG9rZW4gaXMgcmVxdWlyZWQnXG59O1xuXG5leHBvcnQgY29uc3QgVE9LRU5fQkFTSUMgPSAnQmFzaWMnO1xuZXhwb3J0IGNvbnN0IFRPS0VOX0JFQVJFUiA9ICdCZWFyZXInO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVHSVNUUlkgPSAnaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVVBMSU5LID0gJ25wbWpzJztcblxuZXhwb3J0IGNvbnN0IFJPTEVTID0ge1xuICAkQUxMOiAnJGFsbCcsXG4gIEFMTDogJ2FsbCcsXG4gICRBVVRIOiAnJGF1dGhlbnRpY2F0ZWQnLFxuICAkQU5PTllNT1VTOiAnJGFub255bW91cycsXG4gIERFUFJFQ0FURURfQUxMOiAnQGFsbCcsXG4gIERFUFJFQ0FURURfQVVUSDogJ0BhdXRoZW50aWNhdGVkJyxcbiAgREVQUkVDQVRFRF9BTk9OWU1PVVM6ICdAYW5vbnltb3VzJ1xufTtcblxuZXhwb3J0IGNvbnN0IEhUVFBfU1RBVFVTID0ge1xuICBPSzogMjAwLFxuICBDUkVBVEVEOiAyMDEsXG4gIE1VTFRJUExFX0NIT0lDRVM6IDMwMCxcbiAgUkVESVJFQ1Q6IDMwMixcbiAgTk9UX01PRElGSUVEOiAzMDQsXG4gIEJBRF9SRVFVRVNUOiA0MDAsXG4gIFVOQVVUSE9SSVpFRDogNDAxLFxuICBGT1JCSURERU46IDQwMyxcbiAgTk9UX0ZPVU5EOiA0MDQsXG4gIENPTkZMSUNUOiA0MDksXG4gIFVOU1VQUE9SVEVEX01FRElBOiA0MTUsXG4gIEJBRF9EQVRBOiA0MjIsXG4gIElOVEVSTkFMX0VSUk9SOiA1MDAsXG4gIE5PVF9JTVBMRU1FTlRFRDogNTAxLFxuICBTRVJWSUNFX1VOQVZBSUxBQkxFOiA1MDMsXG4gIExPT1BfREVURUNURUQ6IDUwOFxufTtcblxuZXhwb3J0IGNvbnN0IEFQSV9NRVNTQUdFID0ge1xuICBQS0dfQ1JFQVRFRDogJ2NyZWF0ZWQgbmV3IHBhY2thZ2UnLFxuICBQS0dfQ0hBTkdFRDogJ3BhY2thZ2UgY2hhbmdlZCcsXG4gIFBLR19SRU1PVkVEOiAncGFja2FnZSByZW1vdmVkJyxcbiAgUEtHX1BVQkxJU0hFRDogJ3BhY2thZ2UgcHVibGlzaGVkJyxcbiAgVEFSQkFMTF9VUExPQURFRDogJ3RhcmJhbGwgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgVEFSQkFMTF9SRU1PVkVEOiAndGFyYmFsbCByZW1vdmVkJyxcbiAgVEFHX1VQREFURUQ6ICd0YWdzIHVwZGF0ZWQnLFxuICBUQUdfUkVNT1ZFRDogJ3RhZyByZW1vdmVkJyxcbiAgVEFHX0FEREVEOiAncGFja2FnZSB0YWdnZWQnLFxuICBMT0dHRURfT1VUOiAnTG9nZ2VkIG91dCdcbn07XG5cbmV4cG9ydCBjb25zdCBTVVBQT1JUX0VSUk9SUyA9IHtcbiAgUExVR0lOX01JU1NJTkdfSU5URVJGQUNFOiAndGhlIHBsdWdpbiBkb2VzIG5vdCBwcm92aWRlIGltcGxlbWVudGF0aW9uIG9mIHRoZSByZXF1ZXN0ZWQgZmVhdHVyZScsXG4gIFRGQV9ESVNBQkxFRDogJ3RoZSB0d28tZmFjdG9yIGF1dGhlbnRpY2F0aW9uIGlzIG5vdCB5ZXQgc3VwcG9ydGVkJyxcbiAgU1RPUkFHRV9OT1RfSU1QTEVNRU5UOiAndGhlIHN0b3JhZ2UgZG9lcyBub3Qgc3VwcG9ydCB0b2tlbiBzYXZpbmcnLFxuICBQQVJBTUVURVJTX05PVF9WQUxJRDogJ3RoZSBwYXJhbWV0ZXJzIGFyZSBub3QgdmFsaWQnXG59O1xuXG5leHBvcnQgY29uc3QgQVBJX0VSUk9SID0ge1xuICBQQVNTV09SRF9TSE9SVDogKHBhc3NMZW5ndGg6IG51bWJlciA9IERFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEKSA9PlxuICAgIGBUaGUgcHJvdmlkZWQgcGFzc3dvcmQgaXMgdG9vIHNob3J0LiBQbGVhc2UgcGljayBhIHBhc3N3b3JkIGxvbmdlciB0aGFuICR7cGFzc0xlbmd0aH0gY2hhcmFjdGVycy5gLFxuICBNVVNUX0JFX0xPR0dFRDogJ1lvdSBtdXN0IGJlIGxvZ2dlZCBpbiB0byBwdWJsaXNoIHBhY2thZ2VzLicsXG4gIFBMVUdJTl9FUlJPUjogJ2J1ZyBpbiB0aGUgYXV0aCBwbHVnaW4gc3lzdGVtJyxcbiAgQ09ORklHX0JBRF9GT1JNQVQ6ICdjb25maWcgZmlsZSBtdXN0IGJlIGFuIG9iamVjdCcsXG4gIEJBRF9VU0VSTkFNRV9QQVNTV09SRDogJ2JhZCB1c2VybmFtZS9wYXNzd29yZCwgYWNjZXNzIGRlbmllZCcsXG4gIE5PX1BBQ0tBR0U6ICdubyBzdWNoIHBhY2thZ2UgYXZhaWxhYmxlJyxcbiAgUEFDS0FHRV9DQU5OT1RfQkVfQURERUQ6ICd0aGlzIHBhY2thZ2UgY2Fubm90IGJlIGFkZGVkJyxcbiAgQkFEX0RBVEE6ICdiYWQgZGF0YScsXG4gIE5PVF9BTExPV0VEOiAnbm90IGFsbG93ZWQgdG8gYWNjZXNzIHBhY2thZ2UnLFxuICBOT1RfQUxMT1dFRF9QVUJMSVNIOiAnbm90IGFsbG93ZWQgdG8gcHVibGlzaCBwYWNrYWdlJyxcbiAgSU5URVJOQUxfU0VSVkVSX0VSUk9SOiAnaW50ZXJuYWwgc2VydmVyIGVycm9yJyxcbiAgVU5LTk9XTl9FUlJPUjogJ3Vua25vd24gZXJyb3InLFxuICBOT1RfUEFDS0FHRV9VUExJTks6ICdwYWNrYWdlIGRvZXMgbm90IGV4aXN0IG9uIHVwbGluaycsXG4gIFVQTElOS19PRkZMSU5FX1BVQkxJU0g6ICdvbmUgb2YgdGhlIHVwbGlua3MgaXMgZG93biwgcmVmdXNlIHRvIHB1Ymxpc2gnLFxuICBVUExJTktfT0ZGTElORTogJ3VwbGluayBpcyBvZmZsaW5lJyxcbiAgQ09OVEVOVF9NSVNNQVRDSDogJ2NvbnRlbnQgbGVuZ3RoIG1pc21hdGNoJyxcbiAgTk9UX0ZJTEVfVVBMSU5LOiBcImZpbGUgZG9lc24ndCBleGlzdCBvbiB1cGxpbmtcIixcbiAgTUFYX1VTRVJTX1JFQUNIRUQ6ICdtYXhpbXVtIGFtb3VudCBvZiB1c2VycyByZWFjaGVkJyxcbiAgVkVSU0lPTl9OT1RfRVhJU1Q6IFwidGhpcyB2ZXJzaW9uIGRvZXNuJ3QgZXhpc3RcIixcbiAgRklMRV9OT1RfRk9VTkQ6ICdGaWxlIG5vdCBmb3VuZCcsXG4gIFVOU1VQT1JURURfUkVHSVNUUllfQ0FMTDogJ3Vuc3VwcG9ydGVkIHJlZ2lzdHJ5IGNhbGwnLFxuICBCQURfU1RBVFVTX0NPREU6ICdiYWQgc3RhdHVzIGNvZGUnLFxuICBQQUNLQUdFX0VYSVNUOiAndGhpcyBwYWNrYWdlIGlzIGFscmVhZHkgcHJlc2VudCcsXG4gIEJBRF9BVVRIX0hFQURFUjogJ2JhZCBhdXRob3JpemF0aW9uIGhlYWRlcicsXG4gIFdFQl9ESVNBQkxFRDogJ1dlYiBpbnRlcmZhY2UgaXMgZGlzYWJsZWQgaW4gdGhlIGNvbmZpZyBmaWxlJyxcbiAgREVQUkVDQVRFRF9CQVNJQ19IRUFERVI6ICdiYXNpYyBhdXRoZW50aWNhdGlvbiBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIEpXVCBpbnN0ZWFkJyxcbiAgQkFEX0ZPUk1BVF9VU0VSX0dST1VQOiAndXNlciBncm91cHMgaXMgZGlmZmVyZW50IHRoYW4gYW4gYXJyYXknLFxuICBSRVNPVVJDRV9VTkFWQUlMQUJMRTogJ3Jlc291cmNlIHVuYXZhaWxhYmxlJyxcbiAgQkFEX1BBQ0tBR0VfREFUQTogJ2JhZCBpbmNvbWluZyBwYWNrYWdlIGRhdGEnLFxuICBVU0VSTkFNRV9QQVNTV09SRF9SRVFVSVJFRDogJ3VzZXJuYW1lIGFuZCBwYXNzd29yZCBpcyByZXF1aXJlZCcsXG4gIFVTRVJOQU1FX0FMUkVBRFlfUkVHSVNURVJFRDogJ3VzZXJuYW1lIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCdcbn07XG5cbmV4cG9ydCBjb25zdCBBUFBfRVJST1IgPSB7XG4gIENPTkZJR19OT1RfVkFMSUQ6ICdDT05GSUc6IGl0IGRvZXMgbm90IGxvb2sgbGlrZSBhIHZhbGlkIGNvbmZpZyBmaWxlJyxcbiAgUFJPRklMRV9FUlJPUjogJ3Byb2ZpbGUgdW5leHBlY3RlZCBlcnJvcicsXG4gIFBBU1NXT1JEX1ZBTElEQVRJT046ICdub3QgdmFsaWQgcGFzc3dvcmQnXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9OT19SRUFETUUgPSAnRVJST1I6IE5vIFJFQURNRSBkYXRhIGZvdW5kISc7XG5leHBvcnQgY29uc3QgTU9EVUxFX05PVF9GT1VORCA9ICdNT0RVTEVfTk9UX0ZPVU5EJztcblxuZXhwb3J0IGNvbnN0IFdFQl9USVRMRSA9ICdWZXJkYWNjaW8nO1xuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9BQ0NFU1MgPSB7XG4gIFNDT1BFOiAnQCovKicsXG4gIEFMTDogJyoqJ1xufTtcblxuZXhwb3J0IGNvbnN0IFNUT1JBR0UgPSB7XG4gIFBBQ0tBR0VfRklMRV9OQU1FOiAncGFja2FnZS5qc29uJyxcbiAgRklMRV9FWElTVF9FUlJPUjogJ0VFWElTVFMnLFxuICBOT19TVUNIX0ZJTEVfRVJST1I6ICdFTk9FTlQnLFxuICBERUZBVUxUX1JFVklTSU9OOiAnMC0wMDAwMDAwMDAwMDAwMDAwJ1xufTtcbiJdfQ==
|
|
192
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbIkRFRkFVTFRfUE9SVCIsIkRFRkFVTFRfUFJPVE9DT0wiLCJERUZBVUxUX0RPTUFJTiIsIlRJTUVfRVhQSVJBVElPTl8yNEgiLCJUSU1FX0VYUElSQVRJT05fMUgiLCJESVNUX1RBR1MiLCJMQVRFU1QiLCJVU0VSUyIsIkRFRkFVTFRfTUlOX0xJTUlUX1BBU1NXT1JEIiwiREVGQVVMVF9VU0VSIiwia2V5UGVtIiwiY2VydFBlbSIsImNzclBlbSIsIkhFQURFUlMiLCJBQ0NFUFQiLCJBQ0NFUFRfRU5DT0RJTkciLCJVU0VSX0FHRU5UIiwiSlNPTiIsIkNPTlRFTlRfVFlQRSIsIkNPTlRFTlRfTEVOR1RIIiwiQ0FDSEVfQ09OVFJPTCIsIlRFWFRfUExBSU4iLCJURVhUX0hUTUwiLCJBVVRIT1JJWkFUSU9OIiwiRk9SV0FSREVEX1BST1RPIiwiRlJBTUVTX09QVElPTlMiLCJDU1AiLCJDVE8iLCJYU1MiLCJFVEFHIiwiSlNPTl9DSEFSU0VUIiwiT0NURVRfU1RSRUFNIiwiVEVYVF9DSEFSU0VUIiwiV1dXX0FVVEgiLCJHWklQIiwiQ0hBUkFDVEVSX0VOQ09ESU5HIiwiVVRGOCIsIkhFQURFUl9UWVBFIiwiQ09OVEVOVF9FTkNPRElORyIsIkVSUk9SX0NPREUiLCJ0b2tlbl9yZXF1aXJlZCIsIlRPS0VOX0JBU0lDIiwiVE9LRU5fQkVBUkVSIiwiREVGQVVMVF9SRUdJU1RSWSIsIkRFRkFVTFRfVVBMSU5LIiwiUk9MRVMiLCIkQUxMIiwiQUxMIiwiJEFVVEgiLCIkQU5PTllNT1VTIiwiREVQUkVDQVRFRF9BTEwiLCJERVBSRUNBVEVEX0FVVEgiLCJERVBSRUNBVEVEX0FOT05ZTU9VUyIsIkhUVFBfU1RBVFVTIiwiT0siLCJDUkVBVEVEIiwiTVVMVElQTEVfQ0hPSUNFUyIsIlJFRElSRUNUIiwiTk9UX01PRElGSUVEIiwiQkFEX1JFUVVFU1QiLCJVTkFVVEhPUklaRUQiLCJGT1JCSURERU4iLCJOT1RfRk9VTkQiLCJDT05GTElDVCIsIlVOU1VQUE9SVEVEX01FRElBIiwiQkFEX0RBVEEiLCJJTlRFUk5BTF9FUlJPUiIsIk5PVF9JTVBMRU1FTlRFRCIsIlNFUlZJQ0VfVU5BVkFJTEFCTEUiLCJMT09QX0RFVEVDVEVEIiwiQVBJX01FU1NBR0UiLCJQS0dfQ1JFQVRFRCIsIlBLR19DSEFOR0VEIiwiUEtHX1JFTU9WRUQiLCJQS0dfUFVCTElTSEVEIiwiVEFSQkFMTF9VUExPQURFRCIsIlRBUkJBTExfUkVNT1ZFRCIsIlRBR19VUERBVEVEIiwiVEFHX1JFTU9WRUQiLCJUQUdfQURERUQiLCJMT0dHRURfT1VUIiwiU1VQUE9SVF9FUlJPUlMiLCJQTFVHSU5fTUlTU0lOR19JTlRFUkZBQ0UiLCJURkFfRElTQUJMRUQiLCJTVE9SQUdFX05PVF9JTVBMRU1FTlQiLCJQQVJBTUVURVJTX05PVF9WQUxJRCIsIkFQSV9FUlJPUiIsIlBBU1NXT1JEX1NIT1JUIiwicGFzc0xlbmd0aCIsIk1VU1RfQkVfTE9HR0VEIiwiUExVR0lOX0VSUk9SIiwiQ09ORklHX0JBRF9GT1JNQVQiLCJCQURfVVNFUk5BTUVfUEFTU1dPUkQiLCJOT19QQUNLQUdFIiwiUEFDS0FHRV9DQU5OT1RfQkVfQURERUQiLCJOT1RfQUxMT1dFRCIsIk5PVF9BTExPV0VEX1BVQkxJU0giLCJJTlRFUk5BTF9TRVJWRVJfRVJST1IiLCJVTktOT1dOX0VSUk9SIiwiTk9UX1BBQ0tBR0VfVVBMSU5LIiwiVVBMSU5LX09GRkxJTkVfUFVCTElTSCIsIlVQTElOS19PRkZMSU5FIiwiQ09OVEVOVF9NSVNNQVRDSCIsIk5PVF9GSUxFX1VQTElOSyIsIk1BWF9VU0VSU19SRUFDSEVEIiwiVkVSU0lPTl9OT1RfRVhJU1QiLCJGSUxFX05PVF9GT1VORCIsIlVOU1VQT1JURURfUkVHSVNUUllfQ0FMTCIsIkJBRF9TVEFUVVNfQ09ERSIsIlBBQ0tBR0VfRVhJU1QiLCJCQURfQVVUSF9IRUFERVIiLCJXRUJfRElTQUJMRUQiLCJERVBSRUNBVEVEX0JBU0lDX0hFQURFUiIsIkJBRF9GT1JNQVRfVVNFUl9HUk9VUCIsIlJFU09VUkNFX1VOQVZBSUxBQkxFIiwiQkFEX1BBQ0tBR0VfREFUQSIsIlVTRVJOQU1FX1BBU1NXT1JEX1JFUVVJUkVEIiwiVVNFUk5BTUVfQUxSRUFEWV9SRUdJU1RFUkVEIiwiQVBQX0VSUk9SIiwiQ09ORklHX05PVF9WQUxJRCIsIlBST0ZJTEVfRVJST1IiLCJQQVNTV09SRF9WQUxJREFUSU9OIiwiREVGQVVMVF9OT19SRUFETUUiLCJNT0RVTEVfTk9UX0ZPVU5EIiwiV0VCX1RJVExFIiwiUEFDS0FHRV9BQ0NFU1MiLCJTQ09QRSIsIlNUT1JBR0UiLCJQQUNLQUdFX0ZJTEVfTkFNRSIsIkZJTEVfRVhJU1RfRVJST1IiLCJOT19TVUNIX0ZJTEVfRVJST1IiLCJERUZBVUxUX1JFVklTSU9OIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFFTyxNQUFNQSxZQUFZLEdBQUcsTUFBckI7O0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsTUFBekI7O0FBQ0EsTUFBTUMsY0FBYyxHQUFHLFdBQXZCOztBQUNBLE1BQU1DLG1CQUFtQixHQUFHLEtBQTVCOztBQUNBLE1BQU1DLGtCQUFrQixHQUFHLElBQTNCOztBQUNBLE1BQU1DLFNBQVMsR0FBRyxXQUFsQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUcsUUFBZjs7QUFDQSxNQUFNQyxLQUFLLEdBQUcsT0FBZDs7QUFDQSxNQUFNQywwQkFBMEIsR0FBRyxDQUFuQzs7QUFDQSxNQUFNQyxZQUFZLEdBQUcsV0FBckI7O0FBRUEsTUFBTUMsTUFBTSxHQUFHLG1CQUFmOztBQUNBLE1BQU1DLE9BQU8sR0FBRyxvQkFBaEI7O0FBQ0EsTUFBTUMsTUFBTSxHQUFHLG1CQUFmOztBQUVBLE1BQU1DLE9BQU8sR0FBRztBQUNyQkMsRUFBQUEsTUFBTSxFQUFFLFFBRGE7QUFFckJDLEVBQUFBLGVBQWUsRUFBRSxpQkFGSTtBQUdyQkMsRUFBQUEsVUFBVSxFQUFFLFlBSFM7QUFJckJDLEVBQUFBLElBQUksRUFB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bi8vIEBmbG93XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BPUlQgPSAnNDg3Myc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9QUk9UT0NPTCA9ICdodHRwJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX0RPTUFJTiA9ICdsb2NhbGhvc3QnO1xuZXhwb3J0IGNvbnN0IFRJTUVfRVhQSVJBVElPTl8yNEggPSAnMjRoJztcbmV4cG9ydCBjb25zdCBUSU1FX0VYUElSQVRJT05fMUggPSAnMWgnO1xuZXhwb3J0IGNvbnN0IERJU1RfVEFHUyA9ICdkaXN0LXRhZ3MnO1xuZXhwb3J0IGNvbnN0IExBVEVTVCA9ICdsYXRlc3QnO1xuZXhwb3J0IGNvbnN0IFVTRVJTID0gJ3VzZXJzJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX01JTl9MSU1JVF9QQVNTV09SRCA9IDM7XG5leHBvcnQgY29uc3QgREVGQVVMVF9VU0VSID0gJ0Fub255bW91cyc7XG5cbmV4cG9ydCBjb25zdCBrZXlQZW0gPSAndmVyZGFjY2lvLWtleS5wZW0nO1xuZXhwb3J0IGNvbnN0IGNlcnRQZW0gPSAndmVyZGFjY2lvLWNlcnQucGVtJztcbmV4cG9ydCBjb25zdCBjc3JQZW0gPSAndmVyZGFjY2lvLWNzci5wZW0nO1xuXG5leHBvcnQgY29uc3QgSEVBREVSUyA9IHtcbiAgQUNDRVBUOiAnQWNjZXB0JyxcbiAgQUNDRVBUX0VOQ09ESU5HOiAnQWNjZXB0LUVuY29kaW5nJyxcbiAgVVNFUl9BR0VOVDogJ1VzZXItQWdlbnQnLFxuICBKU09OOiAnYXBwbGljYXRpb24vanNvbicsXG4gIENPTlRFTlRfVFlQRTogJ0NvbnRlbnQtdHlwZScsXG4gIENPTlRFTlRfTEVOR1RIOiAnY29udGVudC1sZW5ndGgnLFxuICBDQUNIRV9DT05UUk9MOiAnQ2FjaGUtQ29udHJvbCcsXG4gIFRFWFRfUExBSU46ICd0ZXh0L3BsYWluJyxcbiAgVEVYVF9IVE1MOiAndGV4dC9odG1sJyxcbiAgQVVUSE9SSVpBVElPTjogJ2F1dGhvcml6YXRpb24nLFxuICBGT1JXQVJERURfUFJPVE86ICdYLUZvcndhcmRlZC1Qcm90bycsXG4gIEZSQU1FU19PUFRJT05TOiAnWC1GcmFtZS1PcHRpb25zJyxcbiAgQ1NQOiAnQ29udGVudC1TZWN1cml0eS1Qb2xpY3knLFxuICBDVE86ICdYLUNvbnRlbnQtVHlwZS1PcHRpb25zJyxcbiAgWFNTOiAnWC1YU1MtUHJvdGVjdGlvbicsXG4gIEVUQUc6ICdFVGFnJyxcbiAgSlNPTl9DSEFSU0VUOiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCcsXG4gIE9DVEVUX1NUUkVBTTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTsgY2hhcnNldD11dGYtOCcsXG4gIFRFWFRfQ0hBUlNFVDogJ3RleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgnLFxuICBXV1dfQVVUSDogJ1dXVy1BdXRoZW50aWNhdGUnLFxuICBHWklQOiAnZ3ppcCcsXG59O1xuXG5leHBvcnQgY29uc3QgQ0hBUkFDVEVSX0VOQ09ESU5HID0ge1xuICBVVEY4OiAndXRmOCcsXG59O1xuXG5leHBvcnQgY29uc3QgSEVBREVSX1RZUEUgPSB7XG4gIENPTlRFTlRfRU5DT0RJTkc6ICdjb250ZW50LWVuY29kaW5nJyxcbiAgQ09OVEVOVF9UWVBFOiAnY29udGVudC10eXBlJyxcbiAgQ09OVEVOVF9MRU5HVEg6ICdjb250ZW50LWxlbmd0aCcsXG4gIEFDQ0VQVF9FTkNPRElORzogJ2FjY2VwdC1lbmNvZGluZycsXG59O1xuXG5leHBvcnQgY29uc3QgRVJST1JfQ09ERSA9IHtcbiAgdG9rZW5fcmVxdWlyZWQ6ICd0b2tlbiBpcyByZXF1aXJlZCcsXG59O1xuXG5leHBvcnQgY29uc3QgVE9LRU5fQkFTSUMgPSAnQmFzaWMnO1xuZXhwb3J0IGNvbnN0IFRPS0VOX0JFQVJFUiA9ICdCZWFyZXInO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVHSVNUUlkgPSAnaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVVBMSU5LID0gJ25wbWpzJztcblxuZXhwb3J0IGNvbnN0IFJPTEVTID0ge1xuICAkQUxMOiAnJGFsbCcsXG4gIEFMTDogJ2FsbCcsXG4gICRBVVRIOiAnJGF1dGhlbnRpY2F0ZWQnLFxuICAkQU5PTllNT1VTOiAnJGFub255bW91cycsXG4gIERFUFJFQ0FURURfQUxMOiAnQGFsbCcsXG4gIERFUFJFQ0FURURfQVVUSDogJ0BhdXRoZW50aWNhdGVkJyxcbiAgREVQUkVDQVRFRF9BTk9OWU1PVVM6ICdAYW5vbnltb3VzJyxcbn07XG5cbmV4cG9ydCBjb25zdCBIVFRQX1NUQVRVUyA9IHtcbiAgT0s6IDIwMCxcbiAgQ1JFQVRFRDogMjAxLFxuICBNVUxUSVBMRV9DSE9JQ0VTOiAzMDAsXG4gIFJFRElSRUNUOiAzMDIsXG4gIE5PVF9NT0RJRklFRDogMzA0LFxuICBCQURfUkVRVUVTVDogNDAwLFxuICBVTkFVVEhPUklaRUQ6IDQwMSxcbiAgRk9SQklEREVOOiA0MDMsXG4gIE5PVF9GT1VORDogNDA0LFxuICBDT05GTElDVDogNDA5LFxuICBVTlNVUFBPUlRFRF9NRURJQTogNDE1LFxuICBCQURfREFUQTogNDIyLFxuICBJTlRFUk5BTF9FUlJPUjogNTAwLFxuICBOT1RfSU1QTEVNRU5URUQ6IDUwMSxcbiAgU0VSVklDRV9VTkFWQUlMQUJMRTogNTAzLFxuICBMT09QX0RFVEVDVEVEOiA1MDgsXG59O1xuXG5leHBvcnQgY29uc3QgQVBJX01FU1NBR0UgPSB7XG4gIFBLR19DUkVBVEVEOiAnY3JlYXRlZCBuZXcgcGFja2FnZScsXG4gIFBLR19DSEFOR0VEOiAncGFja2FnZSBjaGFuZ2VkJyxcbiAgUEtHX1JFTU9WRUQ6ICdwYWNrYWdlIHJlbW92ZWQnLFxuICBQS0dfUFVCTElTSEVEOiAncGFja2FnZSBwdWJsaXNoZWQnLFxuICBUQVJCQUxMX1VQTE9BREVEOiAndGFyYmFsbCB1cGxvYWRlZCBzdWNjZXNzZnVsbHknLFxuICBUQVJCQUxMX1JFTU9WRUQ6ICd0YXJiYWxsIHJlbW92ZWQnLFxuICBUQUdfVVBEQVRFRDogJ3RhZ3MgdXBkYXRlZCcsXG4gIFRBR19SRU1PVkVEOiAndGFnIHJlbW92ZWQnLFxuICBUQUdfQURERUQ6ICdwYWNrYWdlIHRhZ2dlZCcsXG4gIExPR0dFRF9PVVQ6ICdMb2dnZWQgb3V0Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBTVVBQT1JUX0VSUk9SUyA9IHtcbiAgUExVR0lOX01JU1NJTkdfSU5URVJGQUNFOiAndGhlIHBsdWdpbiBkb2VzIG5vdCBwcm92aWRlIGltcGxlbWVudGF0aW9uIG9mIHRoZSByZXF1ZXN0ZWQgZmVhdHVyZScsXG4gIFRGQV9ESVNBQkxFRDogJ3RoZSB0d28tZmFjdG9yIGF1dGhlbnRpY2F0aW9uIGlzIG5vdCB5ZXQgc3VwcG9ydGVkJyxcbiAgU1RPUkFHRV9OT1RfSU1QTEVNRU5UOiAndGhlIHN0b3JhZ2UgZG9lcyBub3Qgc3VwcG9ydCB0b2tlbiBzYXZpbmcnLFxuICBQQVJBTUVURVJTX05PVF9WQUxJRDogJ3RoZSBwYXJhbWV0ZXJzIGFyZSBub3QgdmFsaWQnLFxufTtcblxuZXhwb3J0IGNvbnN0IEFQSV9FUlJPUiA9IHtcbiAgUEFTU1dPUkRfU0hPUlQ6IChwYXNzTGVuZ3RoOiBudW1iZXIgPSBERUZBVUxUX01JTl9MSU1JVF9QQVNTV09SRCkgPT4gYFRoZSBwcm92aWRlZCBwYXNzd29yZCBpcyB0b28gc2hvcnQuIFBsZWFzZSBwaWNrIGEgcGFzc3dvcmQgbG9uZ2VyIHRoYW4gJHtwYXNzTGVuZ3RofSBjaGFyYWN0ZXJzLmAsXG4gIE1VU1RfQkVfTE9HR0VEOiAnWW91IG11c3QgYmUgbG9nZ2VkIGluIHRvIHB1Ymxpc2ggcGFja2FnZXMuJyxcbiAgUExVR0lOX0VSUk9SOiAnYnVnIGluIHRoZSBhdXRoIHBsdWdpbiBzeXN0ZW0nLFxuICBDT05GSUdfQkFEX0ZPUk1BVDogJ2NvbmZpZyBmaWxlIG11c3QgYmUgYW4gb2JqZWN0JyxcbiAgQkFEX1VTRVJOQU1FX1BBU1NXT1JEOiAnYmFkIHVzZXJuYW1lL3Bhc3N3b3JkLCBhY2Nlc3MgZGVuaWVkJyxcbiAgTk9fUEFDS0FHRTogJ25vIHN1Y2ggcGFja2FnZSBhdmFpbGFibGUnLFxuICBQQUNLQUdFX0NBTk5PVF9CRV9BRERFRDogJ3RoaXMgcGFja2FnZSBjYW5ub3QgYmUgYWRkZWQnLFxuICBCQURfREFUQTogJ2JhZCBkYXRhJyxcbiAgTk9UX0FMTE9XRUQ6ICdub3QgYWxsb3dlZCB0byBhY2Nlc3MgcGFja2FnZScsXG4gIE5PVF9BTExPV0VEX1BVQkxJU0g6ICdub3QgYWxsb3dlZCB0byBwdWJsaXNoIHBhY2thZ2UnLFxuICBJTlRFUk5BTF9TRVJWRVJfRVJST1I6ICdpbnRlcm5hbCBzZXJ2ZXIgZXJyb3InLFxuICBVTktOT1dOX0VSUk9SOiAndW5rbm93biBlcnJvcicsXG4gIE5PVF9QQUNLQUdFX1VQTElOSzogJ3BhY2thZ2UgZG9lcyBub3QgZXhpc3Qgb24gdXBsaW5rJyxcbiAgVVBMSU5LX09GRkxJTkVfUFVCTElTSDogJ29uZSBvZiB0aGUgdXBsaW5rcyBpcyBkb3duLCByZWZ1c2UgdG8gcHVibGlzaCcsXG4gIFVQTElOS19PRkZMSU5FOiAndXBsaW5rIGlzIG9mZmxpbmUnLFxuICBDT05URU5UX01JU01BVENIOiAnY29udGVudCBsZW5ndGggbWlzbWF0Y2gnLFxuICBOT1RfRklMRV9VUExJTks6IFwiZmlsZSBkb2Vzbid0IGV4aXN0IG9uIHVwbGlua1wiLFxuICBNQVhfVVNFUlNfUkVBQ0hFRDogJ21heGltdW0gYW1vdW50IG9mIHVzZXJzIHJlYWNoZWQnLFxuICBWRVJTSU9OX05PVF9FWElTVDogXCJ0aGlzIHZlcnNpb24gZG9lc24ndCBleGlzdFwiLFxuICBGSUxFX05PVF9GT1VORDogJ0ZpbGUgbm90IGZvdW5kJyxcbiAgVU5TVVBPUlRFRF9SRUdJU1RSWV9DQUxMOiAndW5zdXBwb3J0ZWQgcmVnaXN0cnkgY2FsbCcsXG4gIEJBRF9TVEFUVVNfQ09ERTogJ2JhZCBzdGF0dXMgY29kZScsXG4gIFBBQ0tBR0VfRVhJU1Q6ICd0aGlzIHBhY2thZ2UgaXMgYWxyZWFkeSBwcmVzZW50JyxcbiAgQkFEX0FVVEhfSEVBREVSOiAnYmFkIGF1dGhvcml6YXRpb24gaGVhZGVyJyxcbiAgV0VCX0RJU0FCTEVEOiAnV2ViIGludGVyZmFjZSBpcyBkaXNhYmxlZCBpbiB0aGUgY29uZmlnIGZpbGUnLFxuICBERVBSRUNBVEVEX0JBU0lDX0hFQURFUjogJ2Jhc2ljIGF1dGhlbnRpY2F0aW9uIGlzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgSldUIGluc3RlYWQnLFxuICBCQURfRk9STUFUX1VTRVJfR1JPVVA6ICd1c2VyIGdyb3VwcyBpcyBkaWZmZXJlbnQgdGhhbiBhbiBhcnJheScsXG4gIFJFU09VUkNFX1VOQVZBSUxBQkxFOiAncmVzb3VyY2UgdW5hdmFpbGFibGUnLFxuICBCQURfUEFDS0FHRV9EQVRBOiAnYmFkIGluY29taW5nIHBhY2thZ2UgZGF0YScsXG4gIFVTRVJOQU1FX1BBU1NXT1JEX1JFUVVJUkVEOiAndXNlcm5hbWUgYW5kIHBhc3N3b3JkIGlzIHJlcXVpcmVkJyxcbiAgVVNFUk5BTUVfQUxSRUFEWV9SRUdJU1RFUkVEOiAndXNlcm5hbWUgaXMgYWxyZWFkeSByZWdpc3RlcmVkJyxcbn07XG5cbmV4cG9ydCBjb25zdCBBUFBfRVJST1IgPSB7XG4gIENPTkZJR19OT1RfVkFMSUQ6ICdDT05GSUc6IGl0IGRvZXMgbm90IGxvb2sgbGlrZSBhIHZhbGlkIGNvbmZpZyBmaWxlJyxcbiAgUFJPRklMRV9FUlJPUjogJ3Byb2ZpbGUgdW5leHBlY3RlZCBlcnJvcicsXG4gIFBBU1NXT1JEX1ZBTElEQVRJT046ICdub3QgdmFsaWQgcGFzc3dvcmQnLFxufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTk9fUkVBRE1FID0gJ0VSUk9SOiBObyBSRUFETUUgZGF0YSBmb3VuZCEnO1xuZXhwb3J0IGNvbnN0IE1PRFVMRV9OT1RfRk9VTkQgPSAnTU9EVUxFX05PVF9GT1VORCc7XG5cbmV4cG9ydCBjb25zdCBXRUJfVElUTEUgPSAnVmVyZGFjY2lvJztcblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfQUNDRVNTID0ge1xuICBTQ09QRTogJ0AqLyonLFxuICBBTEw6ICcqKicsXG59O1xuXG5leHBvcnQgY29uc3QgU1RPUkFHRSA9IHtcbiAgUEFDS0FHRV9GSUxFX05BTUU6ICdwYWNrYWdlLmpzb24nLFxuICBGSUxFX0VYSVNUX0VSUk9SOiAnRUVYSVNUUycsXG4gIE5PX1NVQ0hfRklMRV9FUlJPUjogJ0VOT0VOVCcsXG4gIERFRkFVTFRfUkVWSVNJT046ICcwLTAwMDAwMDAwMDAwMDAwMDAnLFxufTtcbiJdfQ==
|