@discordeno/utils 19.0.0-next.47d0cea → 19.0.0-next.495c532
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/README.md +6 -143
- package/dist/cjs/Collection.cjs +1 -2
- package/dist/cjs/colors.cjs +2 -2
- package/dist/cjs/images.cjs +8 -5
- package/dist/cjs/index.cjs +2 -1
- package/dist/cjs/logger.cjs +2 -2
- package/dist/cjs/oauth2.cjs +2 -2
- package/dist/cjs/permissions.cjs +3 -3
- package/dist/cjs/urls.cjs +26 -0
- package/dist/cjs/utils.cjs +1 -3
- package/dist/esm/Collection.js +1 -2
- package/dist/esm/colors.js +2 -2
- package/dist/esm/images.js +8 -5
- package/dist/esm/index.js +2 -1
- package/dist/esm/logger.js +2 -2
- package/dist/esm/oauth2.js +2 -2
- package/dist/esm/permissions.js +3 -3
- package/dist/esm/urls.js +8 -0
- package/dist/esm/utils.js +2 -5
- package/dist/types/Collection.d.ts +0 -1
- package/dist/types/Collection.d.ts.map +1 -1
- package/dist/types/bucket.d.ts +0 -1
- package/dist/types/bucket.d.ts.map +1 -1
- package/dist/types/colors.d.ts.map +1 -1
- package/dist/types/images.d.ts +3 -2
- package/dist/types/images.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/logger.d.ts.map +1 -1
- package/dist/types/urls.d.ts +4 -0
- package/dist/types/urls.d.ts.map +1 -0
- package/dist/types/utils.d.ts.map +1 -1
- package/package.json +14 -16
- package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/cjs/permissions.cjs
CHANGED
|
@@ -22,14 +22,14 @@ function calculatePermissions(permissionBits) {
|
|
|
22
22
|
// Since Object.keys() not only returns the permission names but also the bit values we need to return false if it is a Number
|
|
23
23
|
if (Number(permission)) return false;
|
|
24
24
|
// Check if permissionBits has this permission
|
|
25
|
-
return permissionBits &
|
|
25
|
+
return permissionBits & _types.BitwisePermissionFlags[permission];
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
28
|
function calculateBits(permissions) {
|
|
29
29
|
return permissions.reduce((bits, perm)=>{
|
|
30
|
-
bits |=
|
|
30
|
+
bits |= _types.BitwisePermissionFlags[perm];
|
|
31
31
|
return bits;
|
|
32
32
|
}, 0n).toString();
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJtaXNzaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBCaXR3aXNlUGVybWlzc2lvbkZsYWdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5cbi8qKiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIGEgYml0d2lzZSBzdHJpbmcgdG8gcGVybWlzc2lvbiBzdHJpbmdzICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlUGVybWlzc2lvbnMocGVybWlzc2lvbkJpdHM6IGJpZ2ludCk6IFBlcm1pc3Npb25TdHJpbmdzW10ge1xuICByZXR1cm4gT2JqZWN0LmtleXMoQml0d2lzZVBlcm1pc3Npb25GbGFncykuZmlsdGVyKChwZXJtaXNzaW9uKSA9PiB7XG4gICAgLy8gU2luY2UgT2JqZWN0LmtleXMoKSBub3Qgb25seSByZXR1cm5zIHRoZSBwZXJtaXNzaW9uIG5hbWVzIGJ1dCBhbHNvIHRoZSBiaXQgdmFsdWVzIHdlIG5lZWQgdG8gcmV0dXJuIGZhbHNlIGlmIGl0IGlzIGEgTnVtYmVyXG4gICAgaWYgKE51bWJlcihwZXJtaXNzaW9uKSkgcmV0dXJuIGZhbHNlXG4gICAgLy8gQ2hlY2sgaWYgcGVybWlzc2lvbkJpdHMgaGFzIHRoaXMgcGVybWlzc2lvblxuICAgIHJldHVybiBwZXJtaXNzaW9uQml0cyAmIEJpdHdpc2VQZXJtaXNzaW9uRmxhZ3NbcGVybWlzc2lvbiBhcyBQZXJtaXNzaW9uU3RyaW5nc11cbiAgfSkgYXMgUGVybWlzc2lvblN0cmluZ3NbXVxufVxuXG4vKiogVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyBhbiBhcnJheSBvZiBwZXJtaXNzaW9ucyBpbnRvIHRoZSBiaXR3aXNlIHN0cmluZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVCaXRzKHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uU3RyaW5nc1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBlcm1pc3Npb25zXG4gICAgLnJlZHVjZSgoYml0cywgcGVybSkgPT4ge1xuICAgICAgYml0cyB8PSBCaXR3aXNlUGVybWlzc2lvbkZsYWdzW3Blcm1dXG4gICAgICByZXR1cm4gYml0c1xuICAgIH0sIDBuKVxuICAgIC50b1N0cmluZygpXG59XG4iXSwibmFtZXMiOlsiY2FsY3VsYXRlQml0cyIsImNhbGN1bGF0ZVBlcm1pc3Npb25zIiwicGVybWlzc2lvbkJpdHMiLCJPYmplY3QiLCJrZXlzIiwiQml0d2lzZVBlcm1pc3Npb25GbGFncyIsImZpbHRlciIsInBlcm1pc3Npb24iLCJOdW1iZXIiLCJwZXJtaXNzaW9ucyIsInJlZHVjZSIsImJpdHMiLCJwZXJtIiwidG9TdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBY2dCQSxhQUFhO2VBQWJBOztJQVZBQyxvQkFBb0I7ZUFBcEJBOzs7dUJBSHVCO0FBR2hDLFNBQVNBLHFCQUFxQkMsY0FBc0I7SUFDekQsT0FBT0MsT0FBT0MsSUFBSSxDQUFDQyw2QkFBc0IsRUFBRUMsTUFBTSxDQUFDLENBQUNDO1FBQ2pELDhIQUE4SDtRQUM5SCxJQUFJQyxPQUFPRCxhQUFhLE9BQU87UUFDL0IsOENBQThDO1FBQzlDLE9BQU9MLGlCQUFpQkcsNkJBQXNCLENBQUNFLFdBQWdDO0lBQ2pGO0FBQ0Y7QUFHTyxTQUFTUCxjQUFjUyxXQUFnQztJQUM1RCxPQUFPQSxZQUNKQyxNQUFNLENBQUMsQ0FBQ0MsTUFBTUM7UUFDYkQsUUFBUU4sNkJBQXNCLENBQUNPLEtBQUs7UUFDcEMsT0FBT0Q7SUFDVCxHQUFHLEVBQUUsRUFDSkUsUUFBUTtBQUNiIn0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
skuLink: function() {
|
|
13
|
+
return skuLink;
|
|
14
|
+
},
|
|
15
|
+
storeLink: function() {
|
|
16
|
+
return storeLink;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
function skuLink(appId, skuId) {
|
|
20
|
+
return `https://discord.com/application-directory/${appId}/store/${skuId}`;
|
|
21
|
+
}
|
|
22
|
+
function storeLink(appId) {
|
|
23
|
+
return `https://discord.com/application-directory/${appId}/store`;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cmxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBza3VMaW5rKGFwcElkOiBCaWdTdHJpbmcsIHNrdUlkOiBCaWdTdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vZGlzY29yZC5jb20vYXBwbGljYXRpb24tZGlyZWN0b3J5LyR7YXBwSWR9L3N0b3JlLyR7c2t1SWR9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RvcmVMaW5rKGFwcElkOiBCaWdTdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vZGlzY29yZC5jb20vYXBwbGljYXRpb24tZGlyZWN0b3J5LyR7YXBwSWR9L3N0b3JlYFxufVxuIl0sIm5hbWVzIjpbInNrdUxpbmsiLCJzdG9yZUxpbmsiLCJhcHBJZCIsInNrdUlkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUVnQkEsT0FBTztlQUFQQTs7SUFJQUMsU0FBUztlQUFUQTs7O0FBSlQsU0FBU0QsUUFBUUUsS0FBZ0IsRUFBRUMsS0FBZ0I7SUFDeEQsT0FBTyxDQUFDLDBDQUEwQyxFQUFFRCxNQUFNLE9BQU8sRUFBRUMsTUFBTSxDQUFDO0FBQzVFO0FBRU8sU0FBU0YsVUFBVUMsS0FBZ0I7SUFDeEMsT0FBTyxDQUFDLDBDQUEwQyxFQUFFQSxNQUFNLE1BQU0sQ0FBQztBQUNuRSJ9
|
package/dist/cjs/utils.cjs
CHANGED
|
@@ -17,14 +17,12 @@ _export(exports, {
|
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
async function delay(ms) {
|
|
20
|
-
// eslint-disable-next-line @typescript-eslint/return-await
|
|
21
20
|
return new Promise((resolve)=>setTimeout(()=>{
|
|
22
21
|
resolve();
|
|
23
22
|
}, ms));
|
|
24
23
|
}
|
|
25
24
|
function hasProperty(obj, prop) {
|
|
26
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
27
25
|
return obj.hasOwnProperty(prop);
|
|
28
26
|
}
|
|
29
27
|
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUGF1c2UgdGhlIGV4ZWN1dGlvbiBmb3IgYSBnaXZlbiBhbW91bnQgb2YgbWlsbGlzZWNvbmRzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGF5KG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUGF1c2UgdGhlIGV4ZWN1dGlvbiBmb3IgYSBnaXZlbiBhbW91bnQgb2YgbWlsbGlzZWNvbmRzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGF5KG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKFxuICAgIChyZXNvbHZlKTogTm9kZUpTLlRpbWVvdXQgPT5cbiAgICAgIHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuICAgICAgICByZXNvbHZlKClcbiAgICAgIH0sIG1zKSxcbiAgKVxufVxuXG4vLyBUeXBlc2NyaXB0IGlzIG5vdCBzbyBnb29kIGFzIHdlIGRldmVsb3BlcnMgc28gd2UgbmVlZCB0aGlzIGxpdHRsZSB1dGlsaXR5IGZ1bmN0aW9uIHRvIGhlbHAgaXQgb3V0XG4vLyBUYWtlbiBmcm9tIGh0dHBzOi8vZmV0dGJsb2cuZXUvdHlwZXNjcmlwdC1oYXNvd25wcm9wZXJ0eS9cbi8qKiBUUyBzYXZlIHdheSB0byBjaGVjayBpZiBhIHByb3BlcnR5IGV4aXN0cyBpbiBhbiBvYmplY3QgKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNQcm9wZXJ0eTxUIGV4dGVuZHMge30sIFkgZXh0ZW5kcyBQcm9wZXJ0eUtleSA9IHN0cmluZz4ob2JqOiBULCBwcm9wOiBZKTogb2JqIGlzIFQgJiBSZWNvcmQ8WSwgdW5rbm93bj4ge1xuICByZXR1cm4gb2JqLmhhc093blByb3BlcnR5KHByb3ApXG59XG4iXSwibmFtZXMiOlsiZGVsYXkiLCJoYXNQcm9wZXJ0eSIsIm1zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXRUaW1lb3V0Iiwib2JqIiwicHJvcCIsImhhc093blByb3BlcnR5Il0sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7Ozs7Ozs7Ozs7O0lBQ3RDQSxLQUFLO2VBQUxBOztJQVlOQyxXQUFXO2VBQVhBOzs7QUFaVCxlQUFlRCxNQUFNRSxFQUFVO0lBQ3BDLE9BQU8sSUFBSUMsUUFDVCxDQUFDQyxVQUNDQyxXQUFXO1lBQ1REO1FBQ0YsR0FBR0Y7QUFFVDtBQUtPLFNBQVNELFlBQTBESyxHQUFNLEVBQUVDLElBQU87SUFDdkYsT0FBT0QsSUFBSUUsY0FBYyxDQUFDRDtBQUM1QiJ9
|
package/dist/esm/Collection.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
|
2
1
|
export class Collection extends Map {
|
|
3
2
|
constructor(entries, options){
|
|
4
3
|
super(entries ?? []);
|
|
@@ -110,4 +109,4 @@ export class Collection extends Map {
|
|
|
110
109
|
}
|
|
111
110
|
}
|
|
112
111
|
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db2xsZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIFBsYWNlSG9sZGVyQm90IHt9XG5cbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uPEssIFY+IGV4dGVuZHMgTWFwPEssIFY+IHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBpdGVtcyBhbGxvd2VkIGluIHRoaXMgY29sbGVjdGlvbi4gVG8gZGlzYWJsZSBjYWNoZSwgc2V0IGl0IDAsIHNldCB0byB1bmRlZmluZWQgdG8gbWFrZSBpdCBpbmZpbml0ZS5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBtYXhTaXplOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgLyoqIEhhbmRsZXIgdG8gcmVtb3ZlIGl0ZW1zIGZyb20gdGhlIGNvbGxlY3Rpb24gZXZlcnkgc28gb2Z0ZW4uICovXG4gIHN3ZWVwZXI6IChDb2xsZWN0aW9uU3dlZXBlcjxLLCBWPiAmIHsgaW50ZXJ2YWxJZD86IE5vZGVKUy5UaW1lb3V0IH0pIHwgdW5kZWZpbmVkXG5cbiAgY29uc3RydWN0b3IoZW50cmllcz86IChSZWFkb25seUFycmF5PHJlYWRvbmx5IFtLLCBWXT4gfCBudWxsKSB8IE1hcDxLLCBWPiwgb3B0aW9ucz86IENvbGxlY3Rpb25PcHRpb25zPEssIFY+KSB7XG4gICAgc3VwZXIoZW50cmllcyA/PyBbXSlcblxuICAgIHRoaXMubWF4U2l6ZSA9IG9wdGlvbnM/Lm1heFNpemVcblxuICAgIGlmICghb3B0aW9ucz8uc3dlZXBlcikgcmV0dXJuXG5cbiAgICB0aGlzLnN0YXJ0U3dlZXBlcihvcHRpb25zLnN3ZWVwZXIpXG4gIH1cblxuICBzdGFydFN3ZWVwZXIob3B0aW9uczogQ29sbGVjdGlvblN3ZWVwZXI8SywgVj4pOiBOb2RlSlMuVGltZW91dCB7XG4gICAgaWYgKHRoaXMuc3dlZXBlcj8uaW50ZXJ2YWxJZCkgY2xlYXJJbnRlcnZhbCh0aGlzLnN3ZWVwZXIuaW50ZXJ2YWxJZClcblxuICAgIHRoaXMuc3dlZXBlciA9IG9wdGlvbnNcbiAgICB0aGlzLnN3ZWVwZXIuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc3dlZXBlcj8uZmlsdGVyKHZhbHVlLCBrZXksIG9wdGlvbnMuYm90KSkgcmV0dXJuXG5cbiAgICAgICAgdGhpcy5kZWxldGUoa2V5KVxuICAgICAgICByZXR1cm4ga2V5XG4gICAgICB9KVxuICAgIH0sIG9wdGlvbnMuaW50ZXJ2YWwpXG5cbiAgICByZXR1cm4gdGhpcy5zd2VlcGVyLmludGVydmFsSWRcbiAgfVxuXG4gIHN0b3BTd2VlcGVyKCk6IHZvaWQge1xuICAgIHJldHVybiBjbGVhckludGVydmFsKHRoaXMuc3dlZXBlcj8uaW50ZXJ2YWxJZClcbiAgfVxuXG4gIGNoYW5nZVN3ZWVwZXJJbnRlcnZhbChuZXdJbnRlcnZhbDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3dlZXBlciA9PSBudWxsKSByZXR1cm5cblxuICAgIHRoaXMuc3RhcnRTd2VlcGVyKHsgZmlsdGVyOiB0aGlzLnN3ZWVwZXIuZmlsdGVyLCBpbnRlcnZhbDogbmV3SW50ZXJ2YWwgfSlcbiAgfVxuXG4gIGNoYW5nZVN3ZWVwZXJGaWx0ZXIobmV3RmlsdGVyOiAodmFsdWU6IFYsIGtleTogSywgYm90OiBQbGFjZUhvbGRlckJvdCkgPT4gYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLnN3ZWVwZXIgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICB0aGlzLnN0YXJ0U3dlZXBlcih7IGZpbHRlcjogbmV3RmlsdGVyLCBpbnRlcnZhbDogdGhpcy5zd2VlcGVyLmludGVydmFsIH0pXG4gIH1cblxuICAvKiogQWRkIGFuIGl0ZW0gdG8gdGhlIGNvbGxlY3Rpb24uIE1ha2VzIHN1cmUgbm90IHRvIGdvIGFib3ZlIHRoZSBtYXhTaXplLiAqL1xuICBzZXQoa2V5OiBLLCB2YWx1ZTogVik6IHRoaXMge1xuICAgIC8vIFdoZW4gdGhpcyBjb2xsZWN0aW9uIGlzIG1heFNpemVkIG1ha2Ugc3VyZSB3ZSBjYW4gYWRkIGZpcnN0XG4gICAgaWYgKCh0aGlzLm1heFNpemUgIT09IHVuZGVmaW5lZCB8fCB0aGlzLm1heFNpemUgPT09IDApICYmIHRoaXMuc2l6ZSA+PSB0aGlzLm1heFNpemUpIHtcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyLnNldChrZXksIHZhbHVlKVxuICB9XG5cbiAgLyoqIEFkZCBhbiBpdGVtIHRvIHRoZSBjb2xsZWN0aW9uLCBubyBtYXR0ZXIgd2hhdCB0aGUgbWF4U2l6ZSBpcy4gKi9cbiAgZm9yY2VTZXQoa2V5OiBLLCB2YWx1ZTogVik6IHRoaXMge1xuICAgIHJldHVybiBzdXBlci5zZXQoa2V5LCB2YWx1ZSlcbiAgfVxuXG4gIC8qKiBDb252ZXJ0IHRoZSBjb2xsZWN0aW9uIHRvIGFuIGFycmF5LiAqL1xuICBhcnJheSgpOiBWW10ge1xuICAgIHJldHVybiBbLi4udGhpcy52YWx1ZXMoKV1cbiAgfVxuXG4gIC8qKiBSZXRyaWV2ZSB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhpcyBjb2xsZWN0aW9uLiAqL1xuICBmaXJzdCgpOiBWIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMoKS5uZXh0KCkudmFsdWVcbiAgfVxuXG4gIC8qKiBSZXRyaWV2ZSB0aGUgdmFsdWUgb2YgdGhlIGxhc3QgZWxlbWVudCBpbiB0aGlzIGNvbGxlY3Rpb24uICovXG4gIGxhc3QoKTogViB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnZhbHVlcygpXVt0aGlzLnNpemUgLSAxXVxuICB9XG5cbiAgLyoqIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiBhIHJhbmRvbSBlbGVtZW50IGluIHRoaXMgY29sbGVjdGlvbi4gKi9cbiAgcmFuZG9tKCk6IFYgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGFycmF5ID0gWy4uLnRoaXMudmFsdWVzKCldXG4gICAgcmV0dXJuIGFycmF5W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGFycmF5Lmxlbmd0aCldXG4gIH1cblxuICAvKiogRmluZCBhIHNwZWNpZmljIGVsZW1lbnQgaW4gdGhpcyBjb2xsZWN0aW9uLiAqL1xuICBmaW5kKGNhbGxiYWNrOiAodmFsdWU6IFYsIGtleTogSykgPT4gYm9vbGVhbik6IE5vbk51bGxhYmxlPFY+IHwgdW5kZWZpbmVkIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmtleXMoKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChrZXkpIVxuICAgICAgaWYgKGNhbGxiYWNrKHZhbHVlLCBrZXkpKSByZXR1cm4gdmFsdWVcbiAgICB9XG4gICAgLy8gSWYgbm90aGluZyBtYXRjaGVkXG4gIH1cblxuICAvKiogRmluZCBhbGwgZWxlbWVudHMgaW4gdGhpcyBjb2xsZWN0aW9uIHRoYXQgbWF0Y2ggdGhlIGdpdmVuIHBhdHRlcm4uICovXG4gIGZpbHRlcihjYWxsYmFjazogKHZhbHVlOiBWLCBrZXk6IEspID0+IGJvb2xlYW4pOiBDb2xsZWN0aW9uPEssIFY+IHtcbiAgICBjb25zdCByZWxldmFudCA9IG5ldyBDb2xsZWN0aW9uPEssIFY+KClcbiAgICB0aGlzLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIGlmIChjYWxsYmFjayh2YWx1ZSwga2V5KSkgcmVsZXZhbnQuc2V0KGtleSwgdmFsdWUpXG4gICAgfSlcblxuICAgIHJldHVybiByZWxldmFudFxuICB9XG5cbiAgLyoqIENvbnZlcnRzIHRoZSBjb2xsZWN0aW9uIGludG8gYW4gYXJyYXkgYnkgcnVubmluZyBhIGNhbGxiYWNrIG9uIGFsbCBpdGVtcyBpbiB0aGUgY29sbGVjdGlvbi4gKi9cbiAgbWFwPFQ+KGNhbGxiYWNrOiAodmFsdWU6IFYsIGtleTogSykgPT4gVCk6IFRbXSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IFtdXG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5rZXlzKCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoa2V5KSFcbiAgICAgIHJlc3VsdHMucHVzaChjYWxsYmFjayh2YWx1ZSwga2V5KSlcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHNcbiAgfVxuXG4gIC8qKiBDaGVjayBpZiBvbmUgb2YgdGhlIGl0ZW1zIGluIHRoZSBjb2xsZWN0aW9uIG1hdGNoZXMgdGhlIHBhdHRlcm4uICovXG4gIHNvbWUoY2FsbGJhY2s6ICh2YWx1ZTogViwga2V5OiBLKSA9PiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5rZXlzKCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoa2V5KSFcbiAgICAgIGlmIChjYWxsYmFjayh2YWx1ZSwga2V5KSkgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8qKiBDaGVjayBpZiBhbGwgb2YgdGhlIGl0ZW1zIGluIHRoZSBjb2xsZWN0aW9uIG1hdGNoZXMgdGhlIHBhdHRlcm4uICovXG4gIGV2ZXJ5KGNhbGxiYWNrOiAodmFsdWU6IFYsIGtleTogSykgPT4gYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMua2V5cygpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0KGtleSkhXG4gICAgICBpZiAoIWNhbGxiYWNrKHZhbHVlLCBrZXkpKSByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgLyoqIFJ1bnMgYSBjYWxsYmFjayBvbiBhbGwgaXRlbXMgaW4gdGhlIGNvbGxlY3Rpb24sIG1lcmdpbmcgdGhlbSBpbnRvIGEgc2luZ2xlIHZhbHVlLiAqL1xuICByZWR1Y2U8VD4oY2FsbGJhY2s6IChhY2N1bXVsYXRvcjogVCwgdmFsdWU6IFYsIGtleTogSykgPT4gVCwgaW5pdGlhbFZhbHVlPzogVCk6IFQge1xuICAgIGxldCBhY2N1bXVsYXRvcjogVCA9IGluaXRpYWxWYWx1ZSFcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMua2V5cygpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0KGtleSkhXG4gICAgICBhY2N1bXVsYXRvciA9IGNhbGxiYWNrKGFjY3VtdWxhdG9yLCB2YWx1ZSwga2V5KVxuICAgIH1cblxuICAgIHJldHVybiBhY2N1bXVsYXRvclxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGlvbk9wdGlvbnM8SywgVj4ge1xuICAvKiogSGFuZGxlciB0byBjbGVhbiBvdXQgdGhlIGl0ZW1zIGluIHRoZSBjb2xsZWN0aW9uIGV2ZXJ5IHNvIG9mdGVuLiAqL1xuICBzd2VlcGVyPzogQ29sbGVjdGlvblN3ZWVwZXI8SywgVj5cbiAgLyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpdGVtcyBhbGxvd2VkIGluIHRoZSBjb2xsZWN0aW9uLiAqL1xuICBtYXhTaXplPzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGlvblN3ZWVwZXI8SywgVj4ge1xuICAvKiogVGhlIGZpbHRlciB0byBkZXRlcm1pbmUgd2hldGhlciBhbiBlbGVtZW50IHNob3VsZCBiZSBkZWxldGVkIG9yIG5vdCAqL1xuICBmaWx0ZXI6ICh2YWx1ZTogViwga2V5OiBLLCAuLi5hcmdzOiBhbnlbXSkgPT4gYm9vbGVhblxuICAvKiogVGhlIGludGVydmFsIGluIHdoaWNoIHRoZSBzd2VlcGVyIHNob3VsZCBydW4gKi9cbiAgaW50ZXJ2YWw6IG51bWJlclxuICAvKiogVGhlIGJvdCBvYmplY3QgaXRzZWxmICovXG4gIGJvdD86IFBsYWNlSG9sZGVyQm90XG59XG4iXSwibmFtZXMiOlsiQ29sbGVjdGlvbiIsIk1hcCIsImNvbnN0cnVjdG9yIiwiZW50cmllcyIsIm9wdGlvbnMiLCJtYXhTaXplIiwic3dlZXBlciIsInN0YXJ0U3dlZXBlciIsImludGVydmFsSWQiLCJjbGVhckludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJmb3JFYWNoIiwidmFsdWUiLCJrZXkiLCJmaWx0ZXIiLCJib3QiLCJkZWxldGUiLCJpbnRlcnZhbCIsInN0b3BTd2VlcGVyIiwiY2hhbmdlU3dlZXBlckludGVydmFsIiwibmV3SW50ZXJ2YWwiLCJjaGFuZ2VTd2VlcGVyRmlsdGVyIiwibmV3RmlsdGVyIiwic2V0IiwidW5kZWZpbmVkIiwic2l6ZSIsImZvcmNlU2V0IiwiYXJyYXkiLCJ2YWx1ZXMiLCJmaXJzdCIsIm5leHQiLCJsYXN0IiwicmFuZG9tIiwiTWF0aCIsImZsb29yIiwibGVuZ3RoIiwiZmluZCIsImNhbGxiYWNrIiwia2V5cyIsImdldCIsInJlbGV2YW50IiwibWFwIiwicmVzdWx0cyIsInB1c2giLCJzb21lIiwiZXZlcnkiLCJyZWR1Y2UiLCJpbml0aWFsVmFsdWUiLCJhY2N1bXVsYXRvciJdLCJtYXBwaW5ncyI6IkFBQUEsaUVBQWlFO0FBR2pFLE9BQU8sTUFBTUEsbUJBQXlCQztJQVNwQ0MsWUFBWUMsT0FBNkQsRUFBRUMsT0FBaUMsQ0FBRTtRQUM1RyxLQUFLLENBQUNELFdBQVcsRUFBRTtRQUVuQixJQUFJLENBQUNFLE9BQU8sR0FBR0QsU0FBU0M7UUFFeEIsSUFBSSxDQUFDRCxTQUFTRSxTQUFTO1FBRXZCLElBQUksQ0FBQ0MsWUFBWSxDQUFDSCxRQUFRRSxPQUFPO0lBQ25DO0lBRUFDLGFBQWFILE9BQWdDLEVBQWtCO1FBQzdELElBQUksSUFBSSxDQUFDRSxPQUFPLEVBQUVFLFlBQVlDLGNBQWMsSUFBSSxDQUFDSCxPQUFPLENBQUNFLFVBQVU7UUFFbkUsSUFBSSxDQUFDRixPQUFPLEdBQUdGO1FBQ2YsSUFBSSxDQUFDRSxPQUFPLENBQUNFLFVBQVUsR0FBR0UsWUFBWTtZQUNwQyxJQUFJLENBQUNDLE9BQU8sQ0FBQyxDQUFDQyxPQUFPQztnQkFD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
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db2xsZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUGxhY2VIb2xkZXJCb3Qge31cblxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb248SywgVj4gZXh0ZW5kcyBNYXA8SywgVj4ge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gYW1vdW50IG9mIGl0ZW1zIGFsbG93ZWQgaW4gdGhpcyBjb2xsZWN0aW9uLiBUbyBkaXNhYmxlIGNhY2hlLCBzZXQgaXQgMCwgc2V0IHRvIHVuZGVmaW5lZCB0byBtYWtlIGl0IGluZmluaXRlLlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIG1heFNpemU6IG51bWJlciB8IHVuZGVmaW5lZFxuICAvKiogSGFuZGxlciB0byByZW1vdmUgaXRlbXMgZnJvbSB0aGUgY29sbGVjdGlvbiBldmVyeSBzbyBvZnRlbi4gKi9cbiAgc3dlZXBlcjogKENvbGxlY3Rpb25Td2VlcGVyPEssIFY+ICYgeyBpbnRlcnZhbElkPzogTm9kZUpTLlRpbWVvdXQgfSkgfCB1bmRlZmluZWRcblxuICBjb25zdHJ1Y3RvcihlbnRyaWVzPzogKFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgW0ssIFZdPiB8IG51bGwpIHwgTWFwPEssIFY+LCBvcHRpb25zPzogQ29sbGVjdGlvbk9wdGlvbnM8SywgVj4pIHtcbiAgICBzdXBlcihlbnRyaWVzID8/IFtdKVxuXG4gICAgdGhpcy5tYXhTaXplID0gb3B0aW9ucz8ubWF4U2l6ZVxuXG4gICAgaWYgKCFvcHRpb25zPy5zd2VlcGVyKSByZXR1cm5cblxuICAgIHRoaXMuc3RhcnRTd2VlcGVyKG9wdGlvbnMuc3dlZXBlcilcbiAgfVxuXG4gIHN0YXJ0U3dlZXBlcihvcHRpb25zOiBDb2xsZWN0aW9uU3dlZXBlcjxLLCBWPik6IE5vZGVKUy5UaW1lb3V0IHtcbiAgICBpZiAodGhpcy5zd2VlcGVyPy5pbnRlcnZhbElkKSBjbGVhckludGVydmFsKHRoaXMuc3dlZXBlci5pbnRlcnZhbElkKVxuXG4gICAgdGhpcy5zd2VlcGVyID0gb3B0aW9uc1xuICAgIHRoaXMuc3dlZXBlci5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zd2VlcGVyPy5maWx0ZXIodmFsdWUsIGtleSwgb3B0aW9ucy5ib3QpKSByZXR1cm5cblxuICAgICAgICB0aGlzLmRlbGV0ZShrZXkpXG4gICAgICAgIHJldHVybiBrZXlcbiAgICAgIH0pXG4gICAgfSwgb3B0aW9ucy5pbnRlcnZhbClcblxuICAgIHJldHVybiB0aGlzLnN3ZWVwZXIuaW50ZXJ2YWxJZFxuICB9XG5cbiAgc3RvcFN3ZWVwZXIoKTogdm9pZCB7XG4gICAgcmV0dXJuIGNsZWFySW50ZXJ2YWwodGhpcy5zd2VlcGVyPy5pbnRlcnZhbElkKVxuICB9XG5cbiAgY2hhbmdlU3dlZXBlckludGVydmFsKG5ld0ludGVydmFsOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zd2VlcGVyID09IG51bGwpIHJldHVyblxuXG4gICAgdGhpcy5zdGFydFN3ZWVwZXIoeyBmaWx0ZXI6IHRoaXMuc3dlZXBlci5maWx0ZXIsIGludGVydmFsOiBuZXdJbnRlcnZhbCB9KVxuICB9XG5cbiAgY2hhbmdlU3dlZXBlckZpbHRlcihuZXdGaWx0ZXI6ICh2YWx1ZTogViwga2V5OiBLLCBib3Q6IFBsYWNlSG9sZGVyQm90KSA9PiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3dlZXBlciA9PSBudWxsKSByZXR1cm5cblxuICAgIHRoaXMuc3RhcnRTd2VlcGVyKHsgZmlsdGVyOiBuZXdGaWx0ZXIsIGludGVydmFsOiB0aGlzLnN3ZWVwZXIuaW50ZXJ2YWwgfSlcbiAgfVxuXG4gIC8qKiBBZGQgYW4gaXRlbSB0byB0aGUgY29sbGVjdGlvbi4gTWFrZXMgc3VyZSBub3QgdG8gZ28gYWJvdmUgdGhlIG1heFNpemUuICovXG4gIHNldChrZXk6IEssIHZhbHVlOiBWKTogdGhpcyB7XG4gICAgLy8gV2hlbiB0aGlzIGNvbGxlY3Rpb24gaXMgbWF4U2l6ZWQgbWFrZSBzdXJlIHdlIGNhbiBhZGQgZmlyc3RcbiAgICBpZiAoKHRoaXMubWF4U2l6ZSAhPT0gdW5kZWZpbmVkIHx8IHRoaXMubWF4U2l6ZSA9PT0gMCkgJiYgdGhpcy5zaXplID49IHRoaXMubWF4U2l6ZSkge1xuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIuc2V0KGtleSwgdmFsdWUpXG4gIH1cblxuICAvKiogQWRkIGFuIGl0ZW0gdG8gdGhlIGNvbGxlY3Rpb24sIG5vIG1hdHRlciB3aGF0IHRoZSBtYXhTaXplIGlzLiAqL1xuICBmb3JjZVNldChrZXk6IEssIHZhbHVlOiBWKTogdGhpcyB7XG4gICAgcmV0dXJuIHN1cGVyLnNldChrZXksIHZhbHVlKVxuICB9XG5cbiAgLyoqIENvbnZlcnQgdGhlIGNvbGxlY3Rpb24gdG8gYW4gYXJyYXkuICovXG4gIGFycmF5KCk6IFZbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnZhbHVlcygpXVxuICB9XG5cbiAgLyoqIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGlzIGNvbGxlY3Rpb24uICovXG4gIGZpcnN0KCk6IFYgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcygpLm5leHQoKS52YWx1ZVxuICB9XG5cbiAgLyoqIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgbGFzdCBlbGVtZW50IGluIHRoaXMgY29sbGVjdGlvbi4gKi9cbiAgbGFzdCgpOiBWIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gWy4uLnRoaXMudmFsdWVzKCldW3RoaXMuc2l6ZSAtIDFdXG4gIH1cblxuICAvKiogUmV0cmlldmUgdGhlIHZhbHVlIG9mIGEgcmFuZG9tIGVsZW1lbnQgaW4gdGhpcyBjb2xsZWN0aW9uLiAqL1xuICByYW5kb20oKTogViB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYXJyYXkgPSBbLi4udGhpcy52YWx1ZXMoKV1cbiAgICByZXR1cm4gYXJyYXlbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogYXJyYXkubGVuZ3RoKV1cbiAgfVxuXG4gIC8qKiBGaW5kIGEgc3BlY2lmaWMgZWxlbWVudCBpbiB0aGlzIGNvbGxlY3Rpb24uICovXG4gIGZpbmQoY2FsbGJhY2s6ICh2YWx1ZTogViwga2V5OiBLKSA9PiBib29sZWFuKTogTm9uTnVsbGFibGU8Vj4gfCB1bmRlZmluZWQge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMua2V5cygpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0KGtleSkhXG4gICAgICBpZiAoY2FsbGJhY2sodmFsdWUsIGtleSkpIHJldHVybiB2YWx1ZVxuICAgIH1cbiAgICAvLyBJZiBub3RoaW5nIG1hdGNoZWRcbiAgfVxuXG4gIC8qKiBGaW5kIGFsbCBlbGVtZW50cyBpbiB0aGlzIGNvbGxlY3Rpb24gdGhhdCBtYXRjaCB0aGUgZ2l2ZW4gcGF0dGVybi4gKi9cbiAgZmlsdGVyKGNhbGxiYWNrOiAodmFsdWU6IFYsIGtleTogSykgPT4gYm9vbGVhbik6IENvbGxlY3Rpb248SywgVj4ge1xuICAgIGNvbnN0IHJlbGV2YW50ID0gbmV3IENvbGxlY3Rpb248SywgVj4oKVxuICAgIHRoaXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgaWYgKGNhbGxiYWNrKHZhbHVlLCBrZXkpKSByZWxldmFudC5zZXQoa2V5LCB2YWx1ZSlcbiAgICB9KVxuXG4gICAgcmV0dXJuIHJlbGV2YW50XG4gIH1cblxuICAvKiogQ29udmVydHMgdGhlIGNvbGxlY3Rpb24gaW50byBhbiBhcnJheSBieSBydW5uaW5nIGEgY2FsbGJhY2sgb24gYWxsIGl0ZW1zIGluIHRoZSBjb2xsZWN0aW9uLiAqL1xuICBtYXA8VD4oY2FsbGJhY2s6ICh2YWx1ZTogViwga2V5OiBLKSA9PiBUKTogVFtdIHtcbiAgICBjb25zdCByZXN1bHRzID0gW11cbiAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmtleXMoKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChrZXkpIVxuICAgICAgcmVzdWx0cy5wdXNoKGNhbGxiYWNrKHZhbHVlLCBrZXkpKVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0c1xuICB9XG5cbiAgLyoqIENoZWNrIGlmIG9uZSBvZiB0aGUgaXRlbXMgaW4gdGhlIGNvbGxlY3Rpb24gbWF0Y2hlcyB0aGUgcGF0dGVybi4gKi9cbiAgc29tZShjYWxsYmFjazogKHZhbHVlOiBWLCBrZXk6IEspID0+IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmtleXMoKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChrZXkpIVxuICAgICAgaWYgKGNhbGxiYWNrKHZhbHVlLCBrZXkpKSByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqIENoZWNrIGlmIGFsbCBvZiB0aGUgaXRlbXMgaW4gdGhlIGNvbGxlY3Rpb24gbWF0Y2hlcyB0aGUgcGF0dGVybi4gKi9cbiAgZXZlcnkoY2FsbGJhY2s6ICh2YWx1ZTogViwga2V5OiBLKSA9PiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5rZXlzKCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoa2V5KSFcbiAgICAgIGlmICghY2FsbGJhY2sodmFsdWUsIGtleSkpIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKiogUnVucyBhIGNhbGxiYWNrIG9uIGFsbCBpdGVtcyBpbiB0aGUgY29sbGVjdGlvbiwgbWVyZ2luZyB0aGVtIGludG8gYSBzaW5nbGUgdmFsdWUuICovXG4gIHJlZHVjZTxUPihjYWxsYmFjazogKGFjY3VtdWxhdG9yOiBULCB2YWx1ZTogViwga2V5OiBLKSA9PiBULCBpbml0aWFsVmFsdWU/OiBUKTogVCB7XG4gICAgbGV0IGFjY3VtdWxhdG9yOiBUID0gaW5pdGlhbFZhbHVlIVxuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5rZXlzKCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoa2V5KSFcbiAgICAgIGFjY3VtdWxhdG9yID0gY2FsbGJhY2soYWNjdW11bGF0b3IsIHZhbHVlLCBrZXkpXG4gICAgfVxuXG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yXG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uT3B0aW9uczxLLCBWPiB7XG4gIC8qKiBIYW5kbGVyIHRvIGNsZWFuIG91dCB0aGUgaXRlbXMgaW4gdGhlIGNvbGxlY3Rpb24gZXZlcnkgc28gb2Z0ZW4uICovXG4gIHN3ZWVwZXI/OiBDb2xsZWN0aW9uU3dlZXBlcjxLLCBWPlxuICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIGFsbG93ZWQgaW4gdGhlIGNvbGxlY3Rpb24uICovXG4gIG1heFNpemU/OiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uU3dlZXBlcjxLLCBWPiB7XG4gIC8qKiBUaGUgZmlsdGVyIHRvIGRldGVybWluZSB3aGV0aGVyIGFuIGVsZW1lbnQgc2hvdWxkIGJlIGRlbGV0ZWQgb3Igbm90ICovXG4gIGZpbHRlcjogKHZhbHVlOiBWLCBrZXk6IEssIC4uLmFyZ3M6IGFueVtdKSA9PiBib29sZWFuXG4gIC8qKiBUaGUgaW50ZXJ2YWwgaW4gd2hpY2ggdGhlIHN3ZWVwZXIgc2hvdWxkIHJ1biAqL1xuICBpbnRlcnZhbDogbnVtYmVyXG4gIC8qKiBUaGUgYm90IG9iamVjdCBpdHNlbGYgKi9cbiAgYm90PzogUGxhY2VIb2xkZXJCb3Rcbn1cbiJdLCJuYW1lcyI6WyJDb2xsZWN0aW9uIiwiTWFwIiwiY29uc3RydWN0b3IiLCJlbnRyaWVzIiwib3B0aW9ucyIsIm1heFNpemUiLCJzd2VlcGVyIiwic3RhcnRTd2VlcGVyIiwiaW50ZXJ2YWxJZCIsImNsZWFySW50ZXJ2YWwiLCJzZXRJbnRlcnZhbCIsImZvckVhY2giLCJ2YWx1ZSIsImtleSIsImZpbHRlciIsImJvdCIsImRlbGV0ZSIsImludGVydmFsIiwic3RvcFN3ZWVwZXIiLCJjaGFuZ2VTd2VlcGVySW50ZXJ2YWwiLCJuZXdJbnRlcnZhbCIsImNoYW5nZVN3ZWVwZXJGaWx0ZXIiLCJuZXdGaWx0ZXIiLCJzZXQiLCJ1bmRlZmluZWQiLCJzaXplIiwiZm9yY2VTZXQiLCJhcnJheSIsInZhbHVlcyIsImZpcnN0IiwibmV4dCIsImxhc3QiLCJyYW5kb20iLCJNYXRoIiwiZmxvb3IiLCJsZW5ndGgiLCJmaW5kIiwiY2FsbGJhY2siLCJrZXlzIiwiZ2V0IiwicmVsZXZhbnQiLCJtYXAiLCJyZXN1bHRzIiwicHVzaCIsInNvbWUiLCJldmVyeSIsInJlZHVjZSIsImluaXRpYWxWYWx1ZSIsImFjY3VtdWxhdG9yIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLE1BQU1BLG1CQUF5QkM7SUFTcENDLFlBQVlDLE9BQTZELEVBQUVDLE9BQWlDLENBQUU7UUFDNUcsS0FBSyxDQUFDRCxXQUFXLEVBQUU7UUFFbkIsSUFBSSxDQUFDRSxPQUFPLEdBQUdELFNBQVNDO1FBRXhCLElBQUksQ0FBQ0QsU0FBU0UsU0FBUztRQUV2QixJQUFJLENBQUNDLFlBQVksQ0FBQ0gsUUFBUUUsT0FBTztJQUNuQztJQUVBQyxhQUFhSCxPQUFnQyxFQUFrQjtRQUM3RCxJQUFJLElBQUksQ0FBQ0UsT0FBTyxFQUFFRSxZQUFZQyxjQUFjLElBQUksQ0FBQ0gsT0FBTyxDQUFDRSxVQUFVO1FBRW5FLElBQUksQ0FBQ0YsT0FBTyxHQUFHRjtRQUNmLElBQUksQ0FBQ0UsT0FBTyxDQUFDRSxVQUFVLEdBQUdFLFlBQVk7WUFDcEMsSUFBSSxDQUFDQyxPQUFPLENBQUMsQ0FBQ0MsT0FBT0M7Z0JBQ25CLElBQUksQ0FBQyxJQUFJLENBQUNQLE9BQU8sRUFBRVEsT0FBT0YsT0FBT0MsS0FBS1QsUUFBUVcsR0FBRyxHQUFHO2dCQUVwRCxJQUFJ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
|
package/dist/esm/colors.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
|
|
2
2
|
// A module to print ANSI terminal colors. Inspired by chalk, kleur, and colors
|
|
3
3
|
// on npm.
|
|
4
4
|
// https://deno.land/std@0.153.0/fmt/colors.ts?source
|
|
@@ -464,4 +464,4 @@ const ANSI_PATTERN = new RegExp([
|
|
|
464
464
|
return string.replace(ANSI_PATTERN, '');
|
|
465
465
|
}
|
|
466
466
|
|
|
467
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb2xvcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LWZ1bmN0aW9uLXJldHVybi10eXBlICovXG5cbi8vIENvcHlyaWdodCAyMDE4LTIwMjIgdGhlIERlbm8gYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gTUlUIGxpY2Vuc2UuXG4vLyBBIG1vZHVsZSB0byBwcmludCBBTlNJIHRlcm1pbmFsIGNvbG9ycy4gSW5zcGlyZWQgYnkgY2hhbGssIGtsZXVyLCBhbmQgY29sb3JzXG4vLyBvbiBucG0uXG4vLyBodHRwczovL2Rlbm8ubGFuZC9zdGRAMC4xNTMuMC9mbXQvY29sb3JzLnRzP3NvdXJjZVxuXG5leHBvcnQgaW50ZXJmYWNlIENvZGUge1xuICBvcGVuOiBzdHJpbmdcbiAgY2xvc2U6IHN0cmluZ1xuICByZWdleHA6IFJlZ0V4cFxufVxuXG4vKiogUkdCIDgtYml0cyBwZXIgY2hhbm5lbC4gRWFjaCBpbiByYW5nZSBgMC0+MjU1YCBvciBgMHgwMC0+MHhmZmAgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmdiIHtcbiAgcjogbnVtYmVyXG4gIGc6IG51bWJlclxuICBiOiBudW1iZXJcbn1cblxubGV0IGVuYWJsZWQgPSB0cnVlXG5cbi8qKlxuICogU2V0IGNoYW5naW5nIHRleHQgY29sb3IgdG8gZW5hYmxlZCBvciBkaXNhYmxlZFxuICogQHBhcmFtIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRDb2xvckVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgZW5hYmxlZCA9IHZhbHVlXG59XG5cbi8qKiBHZXQgd2hldGhlciB0ZXh0IGNvbG9yIGNoYW5nZSBpcyBlbmFibGVkIG9yIGRpc2FibGVkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbG9yRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgcmV0dXJuIGVuYWJsZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgY29sb3IgY29kZVxuICogQHBhcmFtIG9wZW5cbiAqIEBwYXJhbSBjbG9zZVxuICovXG5mdW5jdGlvbiBjb2RlKG9wZW46IG51bWJlcltdLCBjbG9zZTogbnVtYmVyKTogQ29kZSB7XG4gIHJldHVybiB7XG4gICAgb3BlbjogYFxceDFiWyR7b3Blbi5qb2luKCc7Jyl9bWAsXG4gICAgY2xvc2U6IGBcXHgxYlske2Nsb3NlfW1gLFxuICAgIHJlZ2V4cDogbmV3IFJlZ0V4cChgXFxcXHgxYlxcXFxbJHtjbG9zZX1tYCwgJ2cnKSxcbiAgfVxufVxuXG4vKipcbiAqIEFwcGxpZXMgY29sb3IgYW5kIGJhY2tncm91bmQgYmFzZWQgb24gY29sb3IgY29kZSBhbmQgaXRzIGFzc29jaWF0ZWQgdGV4dFxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIGFwcGx5IGNvbG9yIHNldHRpbmdzIHRvXG4gKiBAcGFyYW0gY29kZSBjb2xvciBjb2RlIHRvIGFwcGx5XG4gKi9cbmZ1bmN0aW9uIHJ1bihzdHI6IHN0cmluZywgY29kZTogQ29kZSk6IHN0cmluZyB7XG4gIHJldHVybiBlbmFibGVkID8gYCR7Y29kZS5vcGVufSR7c3RyLnJlcGxhY2UoY29kZS5yZWdleHAsIGNvZGUub3Blbil9JHtjb2RlLmNsb3NlfWAgOiBzdHJcbn1cblxuLyoqXG4gKiBSZXNldCB0aGUgdGV4dCBtb2RpZmllZFxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIHJlc2V0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNldChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFswXSwgMCkpXG59XG5cbi8qKlxuICogTWFrZSB0aGUgdGV4dCBib2xkLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgYm9sZFxuICovXG5leHBvcnQgZnVuY3Rpb24gYm9sZChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFsxXSwgMjIpKVxufVxuXG4vKipcbiAqIFRoZSB0ZXh0IGVtaXRzIG9ubHkgYSBzbWFsbCBhbW91bnQgb2YgbGlnaHQuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gZGltXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaW0oc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbMl0sIDIyKSlcbn1cblxuLyoqXG4gKiBNYWtlIHRoZSB0ZXh0IGl0YWxpYy5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGl0YWxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXRhbGljKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzNdLCAyMykpXG59XG5cbi8qKlxuICogTWFrZSB0aGUgdGV4dCB1bmRlcmxpbmUuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gdW5kZXJsaW5lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmRlcmxpbmUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbNF0sIDI0KSlcbn1cblxuLyoqXG4gKiBJbnZlcnQgYmFja2dyb3VuZCBjb2xvciBhbmQgdGV4dCBjb2xvci5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBpbnZlcnQgaXRzIGNvbG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnZlcnNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzddLCAyNykpXG59XG5cbi8qKlxuICogTWFrZSB0aGUgdGV4dCBoaWRkZW4uXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gaGlkZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGlkZGVuKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzhdLCAyOCkpXG59XG5cbi8qKlxuICogUHV0IGhvcml6b250YWwgbGluZSB0aHJvdWdoIHRoZSBjZW50ZXIgb2YgdGhlIHRleHQuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gc3RyaWtlIHRocm91Z2hcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlrZXRocm91Z2goc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbOV0sIDI5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byBibGFjay5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGJsYWNrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBibGFjayhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFszMF0sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byByZWQuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSByZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFszMV0sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byBncmVlbi5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGdyZWVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncmVlbihzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFszMl0sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byB5ZWxsb3cuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSB5ZWxsb3dcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHllbGxvdyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFszM10sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byBibHVlLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgYmx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYmx1ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFszNF0sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byBtYWdlbnRhLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgbWFnZW50YVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFnZW50YShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFszNV0sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byBjeWFuLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgY3lhblxuICovXG5leHBvcnQgZnVuY3Rpb24gY3lhbihzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFszNl0sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byB3aGl0ZS5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIHdoaXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aGl0ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFszN10sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byBncmF5LlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgZ3JheVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3JheShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBicmlnaHRCbGFjayhzdHIpXG59XG5cbi8qKlxuICogU2V0IHRleHQgY29sb3IgdG8gYnJpZ2h0IGJsYWNrLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgYnJpZ2h0LWJsYWNrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBicmlnaHRCbGFjayhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs5MF0sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byBicmlnaHQgcmVkLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgYnJpZ2h0LXJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gYnJpZ2h0UmVkKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzkxXSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIGJyaWdodCBncmVlbi5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGJyaWdodC1ncmVlblxuICovXG5leHBvcnQgZnVuY3Rpb24gYnJpZ2h0R3JlZW4oc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbOTJdLCAzOSkpXG59XG5cbi8qKlxuICogU2V0IHRleHQgY29sb3IgdG8gYnJpZ2h0IHllbGxvdy5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGJyaWdodC15ZWxsb3dcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJyaWdodFllbGxvdyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs5M10sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byBicmlnaHQgYmx1ZS5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGJyaWdodC1ibHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBicmlnaHRCbHVlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzk0XSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIGJyaWdodCBtYWdlbnRhLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgYnJpZ2h0LW1hZ2VudGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJyaWdodE1hZ2VudGEoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbOTVdLCAzOSkpXG59XG5cbi8qKlxuICogU2V0IHRleHQgY29sb3IgdG8gYnJpZ2h0IGN5YW4uXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBicmlnaHQtY3lhblxuICovXG5leHBvcnQgZnVuY3Rpb24gYnJpZ2h0Q3lhbihzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs5Nl0sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byBicmlnaHQgd2hpdGUuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBicmlnaHQtd2hpdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJyaWdodFdoaXRlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzk3XSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCBiYWNrZ3JvdW5kIGNvbG9yIHRvIGJsYWNrLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgYmxhY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJnQmxhY2soc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbNDBdLCA0OSkpXG59XG5cbi8qKlxuICogU2V0IGJhY2tncm91bmQgY29sb3IgdG8gcmVkLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgcmVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiZ1JlZChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs0MV0sIDQ5KSlcbn1cblxuLyoqXG4gKiBTZXQgYmFja2dyb3VuZCBjb2xvciB0byBncmVlbi5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGl0cyBiYWNrZ3JvdW5kIGdyZWVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiZ0dyZWVuKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzQyXSwgNDkpKVxufVxuXG4vKipcbiAqIFNldCBiYWNrZ3JvdW5kIGNvbG9yIHRvIHllbGxvdy5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGl0cyBiYWNrZ3JvdW5kIHllbGxvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gYmdZZWxsb3coc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbNDNdLCA0OSkpXG59XG5cbi8qKlxuICogU2V0IGJhY2tncm91bmQgY29sb3IgdG8gYmx1ZS5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGl0cyBiYWNrZ3JvdW5kIGJsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJnQmx1ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs0NF0sIDQ5KSlcbn1cblxuLyoqXG4gKiAgU2V0IGJhY2tncm91bmQgY29sb3IgdG8gbWFnZW50YS5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGl0cyBiYWNrZ3JvdW5kIG1hZ2VudGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJnTWFnZW50YShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs0NV0sIDQ5KSlcbn1cblxuLyoqXG4gKiBTZXQgYmFja2dyb3VuZCBjb2xvciB0byBjeWFuLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgY3lhblxuICovXG5leHBvcnQgZnVuY3Rpb24gYmdDeWFuKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzQ2XSwgNDkpKVxufVxuXG4vKipcbiAqIFNldCBiYWNrZ3JvdW5kIGNvbG9yIHRvIHdoaXRlLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgd2hpdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJnV2hpdGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbNDddLCA0OSkpXG59XG5cbi8qKlxuICogU2V0IGJhY2tncm91bmQgY29sb3IgdG8gYnJpZ2h0IGJsYWNrLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgYnJpZ2h0LWJsYWNrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiZ0JyaWdodEJsYWNrKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzEwMF0sIDQ5KSlcbn1cblxuLyoqXG4gKiBTZXQgYmFja2dyb3VuZCBjb2xvciB0byBicmlnaHQgcmVkLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgYnJpZ2h0LXJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gYmdCcmlnaHRSZWQoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbMTAxXSwgNDkpKVxufVxuXG4vKipcbiAqIFNldCBiYWNrZ3JvdW5kIGNvbG9yIHRvIGJyaWdodCBncmVlbi5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGl0cyBiYWNrZ3JvdW5kIGJyaWdodC1ncmVlblxuICovXG5leHBvcnQgZnVuY3Rpb24gYmdCcmlnaHRHcmVlbihzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFsxMDJdLCA0OSkpXG59XG5cbi8qKlxuICogU2V0IGJhY2tncm91bmQgY29sb3IgdG8gYnJpZ2h0IHllbGxvdy5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGl0cyBiYWNrZ3JvdW5kIGJyaWdodC15ZWxsb3dcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJnQnJpZ2h0WWVsbG93KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzEwM10sIDQ5KSlcbn1cblxuLyoqXG4gKiBTZXQgYmFja2dyb3VuZCBjb2xvciB0byBicmlnaHQgYmx1ZS5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGl0cyBiYWNrZ3JvdW5kIGJyaWdodC1ibHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiZ0JyaWdodEJsdWUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbMTA0XSwgNDkpKVxufVxuXG4vKipcbiAqIFNldCBiYWNrZ3JvdW5kIGNvbG9yIHRvIGJyaWdodCBtYWdlbnRhLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgYnJpZ2h0LW1hZ2VudGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJnQnJpZ2h0TWFnZW50YShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFsxMDVdLCA0OSkpXG59XG5cbi8qKlxuICogU2V0IGJhY2tncm91bmQgY29sb3IgdG8gYnJpZ2h0IGN5YW4uXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBpdHMgYmFja2dyb3VuZCBicmlnaHQtY3lhblxuICovXG5leHBvcnQgZnVuY3Rpb24gYmdCcmlnaHRDeWFuKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzEwNl0sIDQ5KSlcbn1cblxuLyoqXG4gKiBTZXQgYmFja2dyb3VuZCBjb2xvciB0byBicmlnaHQgd2hpdGUuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBpdHMgYmFja2dyb3VuZCBicmlnaHQtd2hpdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJnQnJpZ2h0V2hpdGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbMTA3XSwgNDkpKVxufVxuXG4vKiBTcGVjaWFsIENvbG9yIFNlcXVlbmNlcyAqL1xuXG4vKipcbiAqIENsYW0gYW5kIHRydW5jYXRlIGNvbG9yIGNvZGVzXG4gKiBAcGFyYW0gblxuICogQHBhcmFtIG1heCBudW1iZXIgdG8gdHJ1bmNhdGUgdG9cbiAqIEBwYXJhbSBtaW4gbnVtYmVyIHRvIHRydW5jYXRlIGZyb21cbiAqL1xuZnVuY3Rpb24gY2xhbXBBbmRUcnVuY2F0ZShuOiBudW1iZXIsIG1heCA9IDI1NSwgbWluID0gMCk6IG51bWJlciB7XG4gIHJldHVybiBNYXRoLnRydW5jKE1hdGgubWF4KE1hdGgubWluKG4sIG1heCksIG1pbikpXG59XG5cbi8qKlxuICogU2V0IHRleHQgY29sb3IgdXNpbmcgcGFsZXR0ZWQgOGJpdCBjb2xvcnMuXG4gKiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9BTlNJX2VzY2FwZV9jb2RlIzgtYml0XG4gKiBAcGFyYW0gc3RyIHRleHQgY29sb3IgdG8gYXBwbHkgcGFsZXR0ZWQgOGJpdCBjb2xvcnMgdG9cbiAqIEBwYXJhbSBjb2xvciBjb2RlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZ2I4KHN0cjogc3RyaW5nLCBjb2xvcjogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzM4LCA1LCBjbGFtcEFuZFRydW5jYXRlKGNvbG9yKV0sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgYmFja2dyb3VuZCBjb2xvciB1c2luZyBwYWxldHRlZCA4Yml0IGNvbG9ycy5cbiAqIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FOU0lfZXNjYXBlX2NvZGUjOC1iaXRcbiAqIEBwYXJhbSBzdHIgdGV4dCBjb2xvciB0byBhcHBseSBwYWxldHRlZCA4Yml0IGJhY2tncm91bmQgY29sb3JzIHRvXG4gKiBAcGFyYW0gY29sb3IgY29kZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYmdSZ2I4KHN0cjogc3RyaW5nLCBjb2xvcjogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzQ4LCA1LCBjbGFtcEFuZFRydW5jYXRlKGNvbG9yKV0sIDQ5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB1c2luZyAyNGJpdCByZ2IuXG4gKiBgY29sb3JgIGNhbiBiZSBhIG51bWJlciBpbiByYW5nZSBgMHgwMDAwMDBgIHRvIGAweGZmZmZmZmAgb3JcbiAqIGFuIGBSZ2JgLlxuICpcbiAqIFRvIHByb2R1Y2UgdGhlIGNvbG9yIG1hZ2VudGE6XG4gKlxuICogYGBgdHNcbiAqICAgICAgaW1wb3J0IHsgcmdiMjQgfSBmcm9tIFwiLi9jb2xvcnMudHNcIjtcbiAqICAgICAgcmdiMjQoXCJmb29cIiwgMHhmZjAwZmYpO1xuICogICAgICByZ2IyNChcImZvb1wiLCB7cjogMjU1LCBnOiAwLCBiOiAyNTV9KTtcbiAqIGBgYFxuICogQHBhcmFtIHN0ciB0ZXh0IGNvbG9yIHRvIGFwcGx5IDI0Yml0IHJnYiB0b1xuICogQHBhcmFtIGNvbG9yIGNvZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJnYjI0KHN0cjogc3RyaW5nLCBjb2xvcjogbnVtYmVyIHwgUmdiKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBjb2xvciA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gcnVuKHN0ciwgY29kZShbMzgsIDIsIChjb2xvciA+PiAxNikgJiAweGZmLCAoY29sb3IgPj4gOCkgJiAweGZmLCBjb2xvciAmIDB4ZmZdLCAzOSkpXG4gIH1cbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzM4LCAyLCBjbGFtcEFuZFRydW5jYXRlKGNvbG9yLnIpLCBjbGFtcEFuZFRydW5jYXRlKGNvbG9yLmcpLCBjbGFtcEFuZFRydW5jYXRlKGNvbG9yLmIpXSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCBiYWNrZ3JvdW5kIGNvbG9yIHVzaW5nIDI0Yml0IHJnYi5cbiAqIGBjb2xvcmAgY2FuIGJlIGEgbnVtYmVyIGluIHJhbmdlIGAweDAwMDAwMGAgdG8gYDB4ZmZmZmZmYCBvclxuICogYW4gYFJnYmAuXG4gKlxuICogVG8gcHJvZHVjZSB0aGUgY29sb3IgbWFnZW50YTpcbiAqXG4gKiBgYGB0c1xuICogICAgICBpbXBvcnQgeyBiZ1JnYjI0IH0gZnJvbSBcIi4vY29sb3JzLnRzXCI7XG4gKiAgICAgIGJnUmdiMjQoXCJmb29cIiwgMHhmZjAwZmYpO1xuICogICAgICBiZ1JnYjI0KFwiZm9vXCIsIHtyOiAyNTUsIGc6IDAsIGI6IDI1NX0pO1xuICogYGBgXG4gKiBAcGFyYW0gc3RyIHRleHQgY29sb3IgdG8gYXBwbHkgMjRiaXQgcmdiIHRvXG4gKiBAcGFyYW0gY29sb3IgY29kZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYmdSZ2IyNChzdHI6IHN0cmluZywgY29sb3I6IG51bWJlciB8IFJnYik6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgY29sb3IgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzQ4LCAyLCAoY29sb3IgPj4gMTYpICYgMHhmZiwgKGNvbG9yID4+IDgpICYgMHhmZiwgY29sb3IgJiAweGZmXSwgNDkpKVxuICB9XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs0OCwgMiwgY2xhbXBBbmRUcnVuY2F0ZShjb2xvci5yKSwgY2xhbXBBbmRUcnVuY2F0ZShjb2xvci5nKSwgY2xhbXBBbmRUcnVuY2F0ZShjb2xvci5iKV0sIDQ5KSlcbn1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2NoYWxrL2Fuc2ktcmVnZXgvYmxvYi8wMmZhODkzZDYxOWQzZGE4NTQxMWFjYzhmZDRlMmVlYTBlOTVhOWQ5L2luZGV4LmpzXG5jb25zdCBBTlNJX1BBVFRFUk4gPSBuZXcgUmVnRXhwKFxuICBbXG4gICAgJ1tcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyknLFxuICAgICcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW5xLXV5PT48fl0pKScsXG4gIF0uam9pbignfCcpLFxuICAnZycsXG4pXG5cbi8qKlxuICogUmVtb3ZlIEFOU0kgZXNjYXBlIGNvZGVzIGZyb20gdGhlIHN0cmluZy5cbiAqIEBwYXJhbSBzdHJpbmcgdG8gcmVtb3ZlIEFOU0kgZXNjYXBlIGNvZGVzIGZyb21cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwQ29sb3Ioc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoQU5TSV9QQVRURVJOLCAnJylcbn1cbiJdLCJuYW1lcyI6WyJlbmFibGVkIiwic2V0Q29sb3JFbmFibGVkIiwidmFsdWUiLCJnZXRDb2xvckVuYWJsZWQiLCJjb2RlIiwib3BlbiIsImNsb3NlIiwiam9pbiIsInJlZ2V4cCIsIlJlZ0V4cCIsInJ1biIsInN0ciIsInJlcGxhY2UiLCJyZXNldCIsImJvbGQiLCJkaW0iLCJpdGFsaWMiLCJ1bmRlcmxpbmUiLCJpbnZlcnNlIiwiaGlkZGVuIiwic3RyaWtldGhyb3VnaCIsImJsYWNrIiwicmVkIiwiZ3JlZW4iLCJ5ZWxsb3ciLCJibHVlIiwibWFnZW50YSIsImN5YW4iLCJ3aGl0ZSIsImdyYXkiLCJicmlnaHRCbGFjayIsImJyaWdodFJlZCIsImJyaWdodEdyZWVuIiwiYnJpZ2h0WWVsbG93IiwiYnJpZ2h0Qmx1ZSIsImJyaWdodE1hZ2VudGEiLCJicmlnaHRDeWFuIiwiYnJpZ2h0V2hpdGUiLCJiZ0JsYWNrIiwiYmdSZWQiLCJiZ0dyZWVuIiwiYmdZZWxsb3ciLCJiZ0JsdWUiLCJiZ01hZ2VudGEiLCJiZ0N5YW4iLCJiZ1doaXRlIiwiYmdCcmlnaHRCbGFjayIsImJnQnJpZ2h0UmVkIiwiYmdCcmlnaHRHcmVlbiIsImJnQnJpZ2h0WWVsbG93IiwiYmdCcmlnaHRCbHVlIiwiYmdCcmlnaHRNYWdlbnRhIiwiYmdCcmlnaHRDeWFuIiwiYmdCcmlnaHRXaGl0ZSIsImNsYW1wQW5kVHJ1bmNhdGUiLCJuIiwibWF4IiwibWluIiwiTWF0aCIsInRydW5jIiwicmdiOCIsImNvbG9yIiwiYmdSZ2I4IiwicmdiMjQiLCJyIiwiZyIsImIiLCJiZ1JnYjI0IiwiQU5TSV9QQVRURVJOIiwic3RyaXBDb2xvciIsInN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUEsbUVBQW1FLEdBRW5FLDBFQUEwRTtBQUMxRSwrRUFBK0U7QUFDL0UsVUFBVTtBQUNWLHFEQUFxRDtBQWVyRCxJQUFJQSxVQUFVO0FBRWQ7OztDQUdDLEdBQ0QsT0FBTyxTQUFTQyxnQkFBZ0JDLEtBQWM7SUFDNUNGLFVBQVVFO0FBQ1o7QUFF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
|
|
467
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb2xvcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMTgtMjAyMiB0aGUgRGVubyBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBNSVQgbGljZW5zZS5cbi8vIEEgbW9kdWxlIHRvIHByaW50IEFOU0kgdGVybWluYWwgY29sb3JzLiBJbnNwaXJlZCBieSBjaGFsaywga2xldXIsIGFuZCBjb2xvcnNcbi8vIG9uIG5wbS5cbi8vIGh0dHBzOi8vZGVuby5sYW5kL3N0ZEAwLjE1My4wL2ZtdC9jb2xvcnMudHM/c291cmNlXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZSB7XG4gIG9wZW46IHN0cmluZ1xuICBjbG9zZTogc3RyaW5nXG4gIHJlZ2V4cDogUmVnRXhwXG59XG5cbi8qKiBSR0IgOC1iaXRzIHBlciBjaGFubmVsLiBFYWNoIGluIHJhbmdlIGAwLT4yNTVgIG9yIGAweDAwLT4weGZmYCAqL1xuZXhwb3J0IGludGVyZmFjZSBSZ2Ige1xuICByOiBudW1iZXJcbiAgZzogbnVtYmVyXG4gIGI6IG51bWJlclxufVxuXG5sZXQgZW5hYmxlZCA9IHRydWVcblxuLyoqXG4gKiBTZXQgY2hhbmdpbmcgdGV4dCBjb2xvciB0byBlbmFibGVkIG9yIGRpc2FibGVkXG4gKiBAcGFyYW0gdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldENvbG9yRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICBlbmFibGVkID0gdmFsdWVcbn1cblxuLyoqIEdldCB3aGV0aGVyIHRleHQgY29sb3IgY2hhbmdlIGlzIGVuYWJsZWQgb3IgZGlzYWJsZWQuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29sb3JFbmFibGVkKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZW5hYmxlZFxufVxuXG4vKipcbiAqIEJ1aWxkcyBjb2xvciBjb2RlXG4gKiBAcGFyYW0gb3BlblxuICogQHBhcmFtIGNsb3NlXG4gKi9cbmZ1bmN0aW9uIGNvZGUob3BlbjogbnVtYmVyW10sIGNsb3NlOiBudW1iZXIpOiBDb2RlIHtcbiAgcmV0dXJuIHtcbiAgICBvcGVuOiBgXFx4MWJbJHtvcGVuLmpvaW4oJzsnKX1tYCxcbiAgICBjbG9zZTogYFxceDFiWyR7Y2xvc2V9bWAsXG4gICAgcmVnZXhwOiBuZXcgUmVnRXhwKGBcXFxceDFiXFxcXFske2Nsb3NlfW1gLCAnZycpLFxuICB9XG59XG5cbi8qKlxuICogQXBwbGllcyBjb2xvciBhbmQgYmFja2dyb3VuZCBiYXNlZCBvbiBjb2xvciBjb2RlIGFuZCBpdHMgYXNzb2NpYXRlZCB0ZXh0XG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gYXBwbHkgY29sb3Igc2V0dGluZ3MgdG9cbiAqIEBwYXJhbSBjb2RlIGNvbG9yIGNvZGUgdG8gYXBwbHlcbiAqL1xuZnVuY3Rpb24gcnVuKHN0cjogc3RyaW5nLCBjb2RlOiBDb2RlKTogc3RyaW5nIHtcbiAgcmV0dXJuIGVuYWJsZWQgPyBgJHtjb2RlLm9wZW59JHtzdHIucmVwbGFjZShjb2RlLnJlZ2V4cCwgY29kZS5vcGVuKX0ke2NvZGUuY2xvc2V9YCA6IHN0clxufVxuXG4vKipcbiAqIFJlc2V0IHRoZSB0ZXh0IG1vZGlmaWVkXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gcmVzZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzBdLCAwKSlcbn1cblxuLyoqXG4gKiBNYWtlIHRoZSB0ZXh0IGJvbGQuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBib2xkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBib2xkKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzFdLCAyMikpXG59XG5cbi8qKlxuICogVGhlIHRleHQgZW1pdHMgb25seSBhIHNtYWxsIGFtb3VudCBvZiBsaWdodC5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBkaW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpbShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFsyXSwgMjIpKVxufVxuXG4vKipcbiAqIE1ha2UgdGhlIHRleHQgaXRhbGljLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRhbGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpdGFsaWMoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbM10sIDIzKSlcbn1cblxuLyoqXG4gKiBNYWtlIHRoZSB0ZXh0IHVuZGVybGluZS5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byB1bmRlcmxpbmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuZGVybGluZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs0XSwgMjQpKVxufVxuXG4vKipcbiAqIEludmVydCBiYWNrZ3JvdW5kIGNvbG9yIGFuZCB0ZXh0IGNvbG9yLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIGludmVydCBpdHMgY29sb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGludmVyc2Uoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbN10sIDI3KSlcbn1cblxuLyoqXG4gKiBNYWtlIHRoZSB0ZXh0IGhpZGRlbi5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBoaWRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoaWRkZW4oc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbOF0sIDI4KSlcbn1cblxuLyoqXG4gKiBQdXQgaG9yaXpvbnRhbCBsaW5lIHRocm91Z2ggdGhlIGNlbnRlciBvZiB0aGUgdGV4dC5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBzdHJpa2UgdGhyb3VnaFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaWtldGhyb3VnaChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs5XSwgMjkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIGJsYWNrLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgYmxhY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJsYWNrKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzMwXSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIHJlZC5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIHJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVkKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzMxXSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIGdyZWVuLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgZ3JlZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyZWVuKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzMyXSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIHllbGxvdy5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIHllbGxvd1xuICovXG5leHBvcnQgZnVuY3Rpb24geWVsbG93KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzMzXSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIGJsdWUuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBibHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBibHVlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzM0XSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIG1hZ2VudGEuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBtYWdlbnRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWdlbnRhKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzM1XSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIGN5YW4uXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBjeWFuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjeWFuKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzM2XSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIHdoaXRlLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2Ugd2hpdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdoaXRlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzM3XSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIGdyYXkuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBncmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncmF5KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGJyaWdodEJsYWNrKHN0cilcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byBicmlnaHQgYmxhY2suXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBicmlnaHQtYmxhY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJyaWdodEJsYWNrKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzkwXSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIGJyaWdodCByZWQuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBicmlnaHQtcmVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBicmlnaHRSZWQoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbOTFdLCAzOSkpXG59XG5cbi8qKlxuICogU2V0IHRleHQgY29sb3IgdG8gYnJpZ2h0IGdyZWVuLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgYnJpZ2h0LWdyZWVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBicmlnaHRHcmVlbihzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs5Ml0sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byBicmlnaHQgeWVsbG93LlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgYnJpZ2h0LXllbGxvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gYnJpZ2h0WWVsbG93KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzkzXSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIGJyaWdodCBibHVlLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgYnJpZ2h0LWJsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJyaWdodEJsdWUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbOTRdLCAzOSkpXG59XG5cbi8qKlxuICogU2V0IHRleHQgY29sb3IgdG8gYnJpZ2h0IG1hZ2VudGEuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBicmlnaHQtbWFnZW50YVxuICovXG5leHBvcnQgZnVuY3Rpb24gYnJpZ2h0TWFnZW50YShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs5NV0sIDM5KSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB0byBicmlnaHQgY3lhbi5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGJyaWdodC1jeWFuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBicmlnaHRDeWFuKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzk2XSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHRvIGJyaWdodCB3aGl0ZS5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGJyaWdodC13aGl0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYnJpZ2h0V2hpdGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbOTddLCAzOSkpXG59XG5cbi8qKlxuICogU2V0IGJhY2tncm91bmQgY29sb3IgdG8gYmxhY2suXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBpdHMgYmFja2dyb3VuZCBibGFja1xuICovXG5leHBvcnQgZnVuY3Rpb24gYmdCbGFjayhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs0MF0sIDQ5KSlcbn1cblxuLyoqXG4gKiBTZXQgYmFja2dyb3VuZCBjb2xvciB0byByZWQuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBpdHMgYmFja2dyb3VuZCByZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJnUmVkKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzQxXSwgNDkpKVxufVxuXG4vKipcbiAqIFNldCBiYWNrZ3JvdW5kIGNvbG9yIHRvIGdyZWVuLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgZ3JlZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJnR3JlZW4oc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbNDJdLCA0OSkpXG59XG5cbi8qKlxuICogU2V0IGJhY2tncm91bmQgY29sb3IgdG8geWVsbG93LlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgeWVsbG93XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiZ1llbGxvdyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs0M10sIDQ5KSlcbn1cblxuLyoqXG4gKiBTZXQgYmFja2dyb3VuZCBjb2xvciB0byBibHVlLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgYmx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYmdCbHVlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzQ0XSwgNDkpKVxufVxuXG4vKipcbiAqICBTZXQgYmFja2dyb3VuZCBjb2xvciB0byBtYWdlbnRhLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgbWFnZW50YVxuICovXG5leHBvcnQgZnVuY3Rpb24gYmdNYWdlbnRhKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzQ1XSwgNDkpKVxufVxuXG4vKipcbiAqIFNldCBiYWNrZ3JvdW5kIGNvbG9yIHRvIGN5YW4uXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBpdHMgYmFja2dyb3VuZCBjeWFuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiZ0N5YW4oc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbNDZdLCA0OSkpXG59XG5cbi8qKlxuICogU2V0IGJhY2tncm91bmQgY29sb3IgdG8gd2hpdGUuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBpdHMgYmFja2dyb3VuZCB3aGl0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYmdXaGl0ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFs0N10sIDQ5KSlcbn1cblxuLyoqXG4gKiBTZXQgYmFja2dyb3VuZCBjb2xvciB0byBicmlnaHQgYmxhY2suXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBpdHMgYmFja2dyb3VuZCBicmlnaHQtYmxhY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJnQnJpZ2h0QmxhY2soc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbMTAwXSwgNDkpKVxufVxuXG4vKipcbiAqIFNldCBiYWNrZ3JvdW5kIGNvbG9yIHRvIGJyaWdodCByZWQuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBpdHMgYmFja2dyb3VuZCBicmlnaHQtcmVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiZ0JyaWdodFJlZChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFsxMDFdLCA0OSkpXG59XG5cbi8qKlxuICogU2V0IGJhY2tncm91bmQgY29sb3IgdG8gYnJpZ2h0IGdyZWVuLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgYnJpZ2h0LWdyZWVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiZ0JyaWdodEdyZWVuKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzEwMl0sIDQ5KSlcbn1cblxuLyoqXG4gKiBTZXQgYmFja2dyb3VuZCBjb2xvciB0byBicmlnaHQgeWVsbG93LlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgYnJpZ2h0LXllbGxvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gYmdCcmlnaHRZZWxsb3coc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbMTAzXSwgNDkpKVxufVxuXG4vKipcbiAqIFNldCBiYWNrZ3JvdW5kIGNvbG9yIHRvIGJyaWdodCBibHVlLlxuICogQHBhcmFtIHN0ciB0ZXh0IHRvIG1ha2UgaXRzIGJhY2tncm91bmQgYnJpZ2h0LWJsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJnQnJpZ2h0Qmx1ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFsxMDRdLCA0OSkpXG59XG5cbi8qKlxuICogU2V0IGJhY2tncm91bmQgY29sb3IgdG8gYnJpZ2h0IG1hZ2VudGEuXG4gKiBAcGFyYW0gc3RyIHRleHQgdG8gbWFrZSBpdHMgYmFja2dyb3VuZCBicmlnaHQtbWFnZW50YVxuICovXG5leHBvcnQgZnVuY3Rpb24gYmdCcmlnaHRNYWdlbnRhKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzEwNV0sIDQ5KSlcbn1cblxuLyoqXG4gKiBTZXQgYmFja2dyb3VuZCBjb2xvciB0byBicmlnaHQgY3lhbi5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGl0cyBiYWNrZ3JvdW5kIGJyaWdodC1jeWFuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiZ0JyaWdodEN5YW4oc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbMTA2XSwgNDkpKVxufVxuXG4vKipcbiAqIFNldCBiYWNrZ3JvdW5kIGNvbG9yIHRvIGJyaWdodCB3aGl0ZS5cbiAqIEBwYXJhbSBzdHIgdGV4dCB0byBtYWtlIGl0cyBiYWNrZ3JvdW5kIGJyaWdodC13aGl0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYmdCcmlnaHRXaGl0ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBydW4oc3RyLCBjb2RlKFsxMDddLCA0OSkpXG59XG5cbi8qIFNwZWNpYWwgQ29sb3IgU2VxdWVuY2VzICovXG5cbi8qKlxuICogQ2xhbSBhbmQgdHJ1bmNhdGUgY29sb3IgY29kZXNcbiAqIEBwYXJhbSBuXG4gKiBAcGFyYW0gbWF4IG51bWJlciB0byB0cnVuY2F0ZSB0b1xuICogQHBhcmFtIG1pbiBudW1iZXIgdG8gdHJ1bmNhdGUgZnJvbVxuICovXG5mdW5jdGlvbiBjbGFtcEFuZFRydW5jYXRlKG46IG51bWJlciwgbWF4ID0gMjU1LCBtaW4gPSAwKTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGgudHJ1bmMoTWF0aC5tYXgoTWF0aC5taW4obiwgbWF4KSwgbWluKSlcbn1cblxuLyoqXG4gKiBTZXQgdGV4dCBjb2xvciB1c2luZyBwYWxldHRlZCA4Yml0IGNvbG9ycy5cbiAqIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FOU0lfZXNjYXBlX2NvZGUjOC1iaXRcbiAqIEBwYXJhbSBzdHIgdGV4dCBjb2xvciB0byBhcHBseSBwYWxldHRlZCA4Yml0IGNvbG9ycyB0b1xuICogQHBhcmFtIGNvbG9yIGNvZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJnYjgoc3RyOiBzdHJpbmcsIGNvbG9yOiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbMzgsIDUsIGNsYW1wQW5kVHJ1bmNhdGUoY29sb3IpXSwgMzkpKVxufVxuXG4vKipcbiAqIFNldCBiYWNrZ3JvdW5kIGNvbG9yIHVzaW5nIHBhbGV0dGVkIDhiaXQgY29sb3JzLlxuICogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQU5TSV9lc2NhcGVfY29kZSM4LWJpdFxuICogQHBhcmFtIHN0ciB0ZXh0IGNvbG9yIHRvIGFwcGx5IHBhbGV0dGVkIDhiaXQgYmFja2dyb3VuZCBjb2xvcnMgdG9cbiAqIEBwYXJhbSBjb2xvciBjb2RlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiZ1JnYjgoc3RyOiBzdHJpbmcsIGNvbG9yOiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gcnVuKHN0ciwgY29kZShbNDgsIDUsIGNsYW1wQW5kVHJ1bmNhdGUoY29sb3IpXSwgNDkpKVxufVxuXG4vKipcbiAqIFNldCB0ZXh0IGNvbG9yIHVzaW5nIDI0Yml0IHJnYi5cbiAqIGBjb2xvcmAgY2FuIGJlIGEgbnVtYmVyIGluIHJhbmdlIGAweDAwMDAwMGAgdG8gYDB4ZmZmZmZmYCBvclxuICogYW4gYFJnYmAuXG4gKlxuICogVG8gcHJvZHVjZSB0aGUgY29sb3IgbWFnZW50YTpcbiAqXG4gKiBgYGB0c1xuICogICAgICBpbXBvcnQgeyByZ2IyNCB9IGZyb20gXCIuL2NvbG9ycy50c1wiO1xuICogICAgICByZ2IyNChcImZvb1wiLCAweGZmMDBmZik7XG4gKiAgICAgIHJnYjI0KFwiZm9vXCIsIHtyOiAyNTUsIGc6IDAsIGI6IDI1NX0pO1xuICogYGBgXG4gKiBAcGFyYW0gc3RyIHRleHQgY29sb3IgdG8gYXBwbHkgMjRiaXQgcmdiIHRvXG4gKiBAcGFyYW0gY29sb3IgY29kZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmdiMjQoc3RyOiBzdHJpbmcsIGNvbG9yOiBudW1iZXIgfCBSZ2IpOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIGNvbG9yID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBydW4oc3RyLCBjb2RlKFszOCwgMiwgKGNvbG9yID4+IDE2KSAmIDB4ZmYsIChjb2xvciA+PiA4KSAmIDB4ZmYsIGNvbG9yICYgMHhmZl0sIDM5KSlcbiAgfVxuICByZXR1cm4gcnVuKHN0ciwgY29kZShbMzgsIDIsIGNsYW1wQW5kVHJ1bmNhdGUoY29sb3IuciksIGNsYW1wQW5kVHJ1bmNhdGUoY29sb3IuZyksIGNsYW1wQW5kVHJ1bmNhdGUoY29sb3IuYildLCAzOSkpXG59XG5cbi8qKlxuICogU2V0IGJhY2tncm91bmQgY29sb3IgdXNpbmcgMjRiaXQgcmdiLlxuICogYGNvbG9yYCBjYW4gYmUgYSBudW1iZXIgaW4gcmFuZ2UgYDB4MDAwMDAwYCB0byBgMHhmZmZmZmZgIG9yXG4gKiBhbiBgUmdiYC5cbiAqXG4gKiBUbyBwcm9kdWNlIHRoZSBjb2xvciBtYWdlbnRhOlxuICpcbiAqIGBgYHRzXG4gKiAgICAgIGltcG9ydCB7IGJnUmdiMjQgfSBmcm9tIFwiLi9jb2xvcnMudHNcIjtcbiAqICAgICAgYmdSZ2IyNChcImZvb1wiLCAweGZmMDBmZik7XG4gKiAgICAgIGJnUmdiMjQoXCJmb29cIiwge3I6IDI1NSwgZzogMCwgYjogMjU1fSk7XG4gKiBgYGBcbiAqIEBwYXJhbSBzdHIgdGV4dCBjb2xvciB0byBhcHBseSAyNGJpdCByZ2IgdG9cbiAqIEBwYXJhbSBjb2xvciBjb2RlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiZ1JnYjI0KHN0cjogc3RyaW5nLCBjb2xvcjogbnVtYmVyIHwgUmdiKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBjb2xvciA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gcnVuKHN0ciwgY29kZShbNDgsIDIsIChjb2xvciA+PiAxNikgJiAweGZmLCAoY29sb3IgPj4gOCkgJiAweGZmLCBjb2xvciAmIDB4ZmZdLCA0OSkpXG4gIH1cbiAgcmV0dXJuIHJ1bihzdHIsIGNvZGUoWzQ4LCAyLCBjbGFtcEFuZFRydW5jYXRlKGNvbG9yLnIpLCBjbGFtcEFuZFRydW5jYXRlKGNvbG9yLmcpLCBjbGFtcEFuZFRydW5jYXRlKGNvbG9yLmIpXSwgNDkpKVxufVxuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vY2hhbGsvYW5zaS1yZWdleC9ibG9iLzAyZmE4OTNkNjE5ZDNkYTg1NDExYWNjOGZkNGUyZWVhMGU5NWE5ZDkvaW5kZXguanNcbmNvbnN0IEFOU0lfUEFUVEVSTiA9IG5ldyBSZWdFeHAoXG4gIFtcbiAgICAnW1xcXFx1MDAxQlxcXFx1MDA5Ql1bW1xcXFxdKCkjOz9dKig/Oig/Oig/Oig/OjtbLWEtekEtWlxcXFxkXFxcXC8jJi46PT8lQH5fXSspKnxbYS16QS1aXFxcXGRdKyg/OjtbLWEtekEtWlxcXFxkXFxcXC8jJi46PT8lQH5fXSopKik/XFxcXHUwMDA3KScsXG4gICAgJyg/Oig/OlxcXFxkezEsNH0oPzo7XFxcXGR7MCw0fSkqKT9bXFxcXGRBLVBSLVRaY2YtbnEtdXk9Pjx+XSkpJyxcbiAgXS5qb2luKCd8JyksXG4gICdnJyxcbilcblxuLyoqXG4gKiBSZW1vdmUgQU5TSSBlc2NhcGUgY29kZXMgZnJvbSB0aGUgc3RyaW5nLlxuICogQHBhcmFtIHN0cmluZyB0byByZW1vdmUgQU5TSSBlc2NhcGUgY29kZXMgZnJvbVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBDb2xvcihzdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZShBTlNJX1BBVFRFUk4sICcnKVxufVxuIl0sIm5hbWVzIjpbImVuYWJsZWQiLCJzZXRDb2xvckVuYWJsZWQiLCJ2YWx1ZSIsImdldENvbG9yRW5hYmxlZCIsImNvZGUiLCJvcGVuIiwiY2xvc2UiLCJqb2luIiwicmVnZXhwIiwiUmVnRXhwIiwicnVuIiwic3RyIiwicmVwbGFjZSIsInJlc2V0IiwiYm9sZCIsImRpbSIsIml0YWxpYyIsInVuZGVybGluZSIsImludmVyc2UiLCJoaWRkZW4iLCJzdHJpa2V0aHJvdWdoIiwiYmxhY2siLCJyZWQiLCJncmVlbiIsInllbGxvdyIsImJsdWUiLCJtYWdlbnRhIiwiY3lhbiIsIndoaXRlIiwiZ3JheSIsImJyaWdodEJsYWNrIiwiYnJpZ2h0UmVkIiwiYnJpZ2h0R3JlZW4iLCJicmlnaHRZZWxsb3ciLCJicmlnaHRCbHVlIiwiYnJpZ2h0TWFnZW50YSIsImJyaWdodEN5YW4iLCJicmlnaHRXaGl0ZSIsImJnQmxhY2siLCJiZ1JlZCIsImJnR3JlZW4iLCJiZ1llbGxvdyIsImJnQmx1ZSIsImJnTWFnZW50YSIsImJnQ3lhbiIsImJnV2hpdGUiLCJiZ0JyaWdodEJsYWNrIiwiYmdCcmlnaHRSZWQiLCJiZ0JyaWdodEdyZWVuIiwiYmdCcmlnaHRZZWxsb3ciLCJiZ0JyaWdodEJsdWUiLCJiZ0JyaWdodE1hZ2VudGEiLCJiZ0JyaWdodEN5YW4iLCJiZ0JyaWdodFdoaXRlIiwiY2xhbXBBbmRUcnVuY2F0ZSIsIm4iLCJtYXgiLCJtaW4iLCJNYXRoIiwidHJ1bmMiLCJyZ2I4IiwiY29sb3IiLCJiZ1JnYjgiLCJyZ2IyNCIsInIiLCJnIiwiYiIsImJnUmdiMjQiLCJBTlNJX1BBVFRFUk4iLCJzdHJpcENvbG9yIiwic3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQSwwRUFBMEU7QUFDMUUsK0VBQStFO0FBQy9FLFVBQVU7QUFDVixxREFBcUQ7QUFlckQsSUFBSUEsVUFBVTtBQUVkOzs7Q0FHQyxHQUNELE9BQU8sU0FBU0MsZ0JBQWdCQyxLQUFjO0lBQzVDRixVQUFVRTtBQUNaO0FBRUEsMERBQTBELEdBQzFELE9BQU8sU0FBU0M7SUFDZCxPQUFPSDtBQUNUO0FBRUE7Ozs7Q0FJQyxHQUNELFNBQVNJLEtBQUtDLElBQWMsRUFBRUMsS0FB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
|
package/dist/esm/images.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { StickerFormatTypes } from '@discordeno/types';
|
|
2
|
+
import { iconBigintToHash } from './hash.js';
|
|
2
3
|
/** Help format an image url. */ export function formatImageUrl(url, size = 128, format) {
|
|
3
4
|
return `${url}.${format ?? (url.includes('/a_') ? 'gif' : 'jpg')}?size=${size}`;
|
|
4
5
|
}
|
|
@@ -21,8 +22,8 @@
|
|
|
21
22
|
*/ export function avatarUrl(userId, discriminator, options) {
|
|
22
23
|
return options?.avatar ? formatImageUrl(`https://cdn.discordapp.com/avatars/${userId}/${typeof options.avatar === 'string' ? options.avatar : iconBigintToHash(options.avatar)}`, options?.size ?? 128, options?.format) : `https://cdn.discordapp.com/embed/avatars/${discriminator === '0' ? (BigInt(userId) >> BigInt(22)) % BigInt(6) : Number(discriminator) % 5}.png`;
|
|
23
24
|
}
|
|
24
|
-
export function avatarDecorationUrl(
|
|
25
|
-
return `https://cdn.discordapp.com/avatar-
|
|
25
|
+
export function avatarDecorationUrl(avatarDecoration) {
|
|
26
|
+
return `https://cdn.discordapp.com/avatar-decoration-presets/${typeof avatarDecoration === 'string' ? avatarDecoration : iconBigintToHash(avatarDecoration)}.png`;
|
|
26
27
|
}
|
|
27
28
|
/**
|
|
28
29
|
* Builds a URL to a user's banner stored in the Discord CDN.
|
|
@@ -150,7 +151,9 @@ export function avatarDecorationUrl(userId, avatarDecoration) {
|
|
|
150
151
|
* @param options - The parameters for the building of the URL.
|
|
151
152
|
* @returns The link to the resource or `undefined`.
|
|
152
153
|
*/ export function stickerUrl(stickerId, options) {
|
|
153
|
-
|
|
154
|
+
if (!stickerId) return;
|
|
155
|
+
const url = options?.type === StickerFormatTypes.Gif ? `https://media.discordapp.net/stickers/${stickerId}` : `https://cdn.discordapp.com/stickers/${stickerId}`;
|
|
156
|
+
return formatImageUrl(url, options?.size ?? 128, options?.format);
|
|
154
157
|
}
|
|
155
158
|
/**
|
|
156
159
|
* Builds the URL to a team icon stored in the Discord CDN.
|
|
@@ -173,4 +176,4 @@ export function avatarDecorationUrl(userId, avatarDecoration) {
|
|
|
173
176
|
return iconHash ? formatImageUrl(`https://cdn.discordapp.com/role-icons/${roleId}/${typeof iconHash === 'string' ? iconHash : iconBigintToHash(iconHash)}`, options?.size ?? 128, options?.format) : undefined;
|
|
174
177
|
}
|
|
175
178
|
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbWFnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXRlbXBsYXRlLWV4cHJlc3Npb25zICovXG5pbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5LCBJbWFnZUZvcm1hdCwgSW1hZ2VTaXplIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uQmlnaW50VG9IYXNoIH0gZnJvbSAnLi9oYXNoLmpzJ1xuXG4vKiogSGVscCBmb3JtYXQgYW4gaW1hZ2UgdXJsLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEltYWdlVXJsKHVybDogc3RyaW5nLCBzaXplOiBJbWFnZVNpemUgPSAxMjgsIGZvcm1hdD86IEltYWdlRm9ybWF0KTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3VybH0uJHtmb3JtYXQgPz8gKHVybC5pbmNsdWRlcygnL2FfJykgPyAnZ2lmJyA6ICdqcGcnKX0/c2l6ZT0ke3NpemV9YFxufVxuXG4vKipcbiAqIEdldCB0aGUgdXJsIGZvciBhbiBlbW9qaS5cbiAqXG4gKiBAcGFyYW0gZW1vamlJZCBUaGUgaWQgb2YgdGhlIGVtb2ppXG4gKiBAcGFyYW0gYW5pbWF0ZWQgV2hldGhlciBvciBub3QgdGhlIGVtb2ppIGlzIGFuaW1hdGVkXG4gKiBAcmV0dXJucyBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtb2ppVXJsKGVtb2ppSWQ6IEJpZ1N0cmluZywgYW5pbWF0ZWQgPSBmYWxzZSk6IHN0cmluZyB7XG4gIHJldHVybiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZW1vamlzLyR7ZW1vamlJZH0uJHthbmltYXRlZCA/ICdnaWYnIDogJ3BuZyd9YFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIHVzZXIncyBhdmF0YXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYXZhdGFyIG9mLlxuICogQHBhcmFtIGRpc2NyaW1pbmF0b3IgLSBUaGUgdXNlcidzIGRpc2NyaW1pbmF0b3IuICg0LWRpZ2l0IHRhZyBhZnRlciB0aGUgaGFzaHRhZy4pXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF2YXRhclVybChcbiAgdXNlcklkOiBCaWdTdHJpbmcsXG4gIGRpc2NyaW1pbmF0b3I6IHN0cmluZyxcbiAgb3B0aW9ucz86IHtcbiAgICBhdmF0YXI6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZFxuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmF2YXRhclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hdmF0YXJzLyR7dXNlcklkfS8ke3R5cGVvZiBvcHRpb25zLmF2YXRhciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmF2YXRhciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5hdmF0YXIpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZW1iZWQvYXZhdGFycy8ke2Rpc2NyaW1pbmF0b3IgPT09ICcwJyA/IChCaWdJbnQodXNlcklkKSA+PiBCaWdJbnQoMjIpKSAlIEJpZ0ludCg2KSA6IE51bWJlcihkaXNjcmltaW5hdG9yKSAlIDV9LnBuZ2Bcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF2YXRhckRlY29yYXRpb25VcmwodXNlcklkOiBCaWdTdHJpbmcsIGF2YXRhckRlY29yYXRpb246IEJpZ1N0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXZhdGFyLWRlY29yYXRpb25zLyR7dXNlcklkfS8ke1xuICAgIHR5cGVvZiBhdmF0YXJEZWNvcmF0aW9uID09PSAnc3RyaW5nJyA/IGF2YXRhckRlY29yYXRpb24gOiBpY29uQmlnaW50VG9IYXNoKGF2YXRhckRlY29yYXRpb24pXG4gIH0ucG5nYFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIHVzZXIncyBiYW5uZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYmFubmVyIG9mLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAgaWYgbm8gYmFubmVyIGhhcyBub3QgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiYW5uZXJVcmwoXG4gIHVzZXJJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zPzoge1xuICAgIGJhbm5lcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmJhbm5lclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9iYW5uZXJzLyR7dXNlcklkfS8ke3R5cGVvZiBvcHRpb25zLmJhbm5lciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmJhbm5lciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5iYW5uZXIpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gdGhlIGd1aWxkIGJhbm5lciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIGxpbmsgdG8gdGhlIGJhbm5lciBmb3IuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRCYW5uZXJVcmwoXG4gIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgb3B0aW9uczoge1xuICAgIGJhbm5lcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnMuYmFubmVyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2Jhbm5lcnMvJHtndWlsZElkfS8ke3R5cGVvZiBvcHRpb25zLmJhbm5lciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmJhbm5lciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5iYW5uZXIpfWAsXG4gICAgICAgIG9wdGlvbnMuc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnMuZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIHRoZSBndWlsZCBpY29uIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgYmFubmVyIGZvci5cbiAqIEBwYXJhbSBpbWFnZUhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgZXZlbnQgY292ZXIgaW1hZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRJY29uVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9pY29ucy8ke2d1aWxkSWR9LyR7dHlwZW9mIGltYWdlSGFzaCA9PT0gJ3N0cmluZycgPyBpbWFnZUhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGltYWdlSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgZ3VpbGQgc3BsYXNoIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgc3BsYXNoIG9mLlxuICogQHBhcmFtIGltYWdlSGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBzcGxhc2ggaW1hZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiB0aGUgZ3VpbGQgZG9lcyBub3QgaGF2ZSBhIHNwbGFzaCBpbWFnZSBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZFNwbGFzaFVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICBpbWFnZUhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpbWFnZUhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vc3BsYXNoZXMvJHtndWlsZElkfS8ke3R5cGVvZiBpbWFnZUhhc2ggPT09ICdzdHJpbmcnID8gaW1hZ2VIYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpbWFnZUhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIGd1aWxkIGRpc2NvdmVyeSBzcGxhc2ggc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSBzcGxhc2ggb2YuXG4gKiBAcGFyYW0gaW1hZ2VIYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIGRpc2NvdmVyeSBzcGxhc2ggaW1hZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiB0aGUgZ3VpbGQgZG9lcyBub3QgaGF2ZSBhIHNwbGFzaCBpbWFnZSBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZERpc2NvdmVyeVNwbGFzaFVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICBpbWFnZUhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpbWFnZUhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZGlzY292ZXJ5LXNwbGFzaGVzLyR7Z3VpbGRJZH0vJHt0eXBlb2YgaW1hZ2VIYXNoID09PSAnc3RyaW5nJyA/IGltYWdlSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaW1hZ2VIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBndWlsZCBzY2hlZHVsZWQgZXZlbnQgY292ZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZXZlbnRJZCAtIFRoZSBJRCBvZiB0aGUgc2NoZWR1bGVkIGV2ZW50IHRvIGdldCB0aGUgY292ZXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkU2NoZWR1bGVkRXZlbnRDb3ZlclVybChcbiAgZXZlbnRJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zOiB7XG4gICAgY292ZXI/OiBCaWdTdHJpbmdcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvcHRpb25zLmNvdmVyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2d1aWxkLWV2ZW50cy8ke2V2ZW50SWR9LyR7dHlwZW9mIG9wdGlvbnMuY292ZXIgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5jb3ZlciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5jb3Zlcil9YCxcbiAgICAgICAgb3B0aW9ucy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gdGhlIGd1aWxkIHdpZGdldCBpbWFnZSBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIGxpbmsgdG8gdGhlIHdpZGdldCBpbWFnZSBmb3IuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdpZGdldEltYWdlVXJsKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEd1aWxkV2lkZ2V0SW1hZ2VRdWVyeSk6IHN0cmluZyB7XG4gIGxldCB1cmwgPSBgaHR0cHM6Ly9kaXNjb3JkYXBwLmNvbS9hcGkvZ3VpbGRzLyR7Z3VpbGRJZH0vd2lkZ2V0LnBuZ2BcblxuICBpZiAob3B0aW9ucz8uc3R5bGUpIHtcbiAgICB1cmwgKz0gYD9zdHlsZT0ke29wdGlvbnMuc3R5bGV9YFxuICB9XG5cbiAgcmV0dXJuIHVybFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIG1lbWJlcidzIGF2YXRhciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB3aGVyZSB0aGUgbWVtYmVyIGlzXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYXZhdGFyIG9mLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAgaWYgbm8gYmFubmVyIGhhcyBiZWVuIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlckF2YXRhclVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICB1c2VySWQ6IEJpZ1N0cmluZyxcbiAgb3B0aW9ucz86IHtcbiAgICBhdmF0YXI/OiBCaWdTdHJpbmdcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvcHRpb25zPy5hdmF0YXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZ3VpbGRzLyR7Z3VpbGRJZH0vdXNlcnMvJHt1c2VySWR9L2F2YXRhcnMvJHtcbiAgICAgICAgICB0eXBlb2Ygb3B0aW9ucy5hdmF0YXIgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5hdmF0YXIgOiBpY29uQmlnaW50VG9IYXNoKG9wdGlvbnMuYXZhdGFyKVxuICAgICAgICB9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGFuIGFwcGxpY2F0aW9uIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYXBwbGljYXRpb25JZCAtIFRoZSBJRCBvZiB0aGUgYXBwbGljYXRpb24gdG8gZ2V0IHRoZSBpY29uIG9mLlxuICogQHBhcmFtIGljb25IYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIGFwcGxpY2F0aW9uIGljb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbGljYXRpb25JY29uVXJsKFxuICBhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsXG4gIGljb25IYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaWNvbkhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWljb25zLyR7YXBwbGljYXRpb25JZH0vJHt0eXBlb2YgaWNvbkhhc2ggPT09ICdzdHJpbmcnID8gaWNvbkhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGljb25IYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYW4gYXBwbGljYXRpb24gY292ZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYXBwbGljYXRpb25JZCAtIFRoZSBJRCBvZiB0aGUgYXBwbGljYXRpb24gdG8gZ2V0IHRoZSBjb3ZlciBvZi5cbiAqIEBwYXJhbSBjb3Zlckhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgYXBwbGljYXRpb24gY292ZXIuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGxpY2F0aW9uQ292ZXJVcmwoXG4gIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgY292ZXJIYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gY292ZXJIYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2FwcC1pY29ucy8ke2FwcGxpY2F0aW9uSWR9LyR7dHlwZW9mIGNvdmVySGFzaCA9PT0gJ3N0cmluZycgPyBjb3Zlckhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGNvdmVySGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGFuIGFwcGxpY2F0aW9uIGFzc2V0IHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGFwcGxpY2F0aW9uSWQgLSBUaGUgSUQgb2YgdGhlIGFwcGxpY2F0aW9uIHRvIGdldCB0aGUgYXNzZXQgb2YuXG4gKiBAcGFyYW0gYXNzZXRJZCAtIFRoZSBpZCBpZGVudGlmeWluZyB0aGUgYXBwbGljYXRpb24gYXNzZXQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGxpY2F0aW9uQXNzZXRVcmwoXG4gIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgYXNzZXRJZDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGFzc2V0SWRcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWljb25zLyR7YXBwbGljYXRpb25JZH0vJHt0eXBlb2YgYXNzZXRJZCA9PT0gJ3N0cmluZycgPyBhc3NldElkIDogaWNvbkJpZ2ludFRvSGFzaChhc3NldElkKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBzdGlja2VyIHBhY2sgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGJhbm5lckFzc2V0SWQgLSBUaGUgSUQgb2YgdGhlIGJhbm5lciBhc3NldCBmb3IgdGhlIHN0aWNrZXIgcGFjay5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RpY2tlclBhY2tCYW5uZXJVcmwoXG4gIGJhbm5lckFzc2V0SWQ6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBiYW5uZXJBc3NldElkXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2FwcC1hc3NldHMvNzEwOTgyNDE0MzAxNzkwMjE2L3N0b3JlLyR7XG4gICAgICAgICAgdHlwZW9mIGJhbm5lckFzc2V0SWQgPT09ICdzdHJpbmcnID8gYmFubmVyQXNzZXRJZCA6IGljb25CaWdpbnRUb0hhc2goYmFubmVyQXNzZXRJZClcbiAgICAgICAgfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIHN0aWNrZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gc3RpY2tlcklkIC0gVGhlIElEIG9mIHRoZSBzdGlja2VyIHRvIGdldCB0aGUgaWNvbiBvZlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGlja2VyVXJsKFxuICBzdGlja2VySWQ6IEJpZ1N0cmluZyB8IG51bWJlcixcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBzdGlja2VySWQgPyBmb3JtYXRJbWFnZVVybChgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vc3RpY2tlcnMvJHtzdGlja2VySWR9YCwgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsIG9wdGlvbnM/LmZvcm1hdCkgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIHRlYW0gaWNvbiBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSB0ZWFtSWQgLSBUaGUgSUQgb2YgdGhlIHRlYW0gdG8gZ2V0IHRoZSBpY29uIG9mXG4gKiBAcGFyYW0gaWNvbkhhc2ggLSBUaGUgaGFzaCBvZiB0aGUgdGVhbSBpY29uLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZWFtSWNvblVybChcbiAgdGVhbUlkOiBCaWdTdHJpbmcsXG4gIGljb25IYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaWNvbkhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vdGVhbS1pY29ucy8ke3RlYW1JZH0vc3RvcmUvJHt0eXBlb2YgaWNvbkhhc2ggPT09ICdzdHJpbmcnID8gaWNvbkhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGljb25IYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSByb2xlIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gcm9sZUlkIC0gVGhlIElEIG9mIHRoZSByb2xlIHRvIGdldCB0aGUgaWNvbiBvZlxuICogQHBhcmFtIGljb25IYXNoIC0gVGhlIGhhc2ggb2YgdGhlIHJvbGUgaWNvbi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9sZUljb25VcmwoXG4gIHJvbGVJZDogQmlnU3RyaW5nLFxuICBpY29uSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGljb25IYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL3JvbGUtaWNvbnMvJHtyb2xlSWR9LyR7dHlwZW9mIGljb25IYXNoID09PSAnc3RyaW5nJyA/IGljb25IYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpY29uSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuIl0sIm5hbWVzIjpbImljb25CaWdpbnRUb0hhc2giLCJmb3JtYXRJbWFnZVVybCIsInVybCIsInNpemUiLCJmb3JtYXQiLCJpbmNsdWRlcyIsImVtb2ppVXJsIiwiZW1vamlJZCIsImFuaW1hdGVkIiwiYXZhdGFyVXJsIiwidXNlcklkIiwiZGlzY3JpbWluYXRvciIsIm9wdGlvbnMiLCJhdmF0YXIiLCJCaWdJbnQiLCJOdW1iZXIiLCJhdmF0YXJEZWNvcmF0aW9uVXJsIiwiYXZhdGFyRGVjb3JhdGlvbiIsImJhbm5lclVybCIsImJhbm5lciIsInVuZGVmaW5lZCIsImd1aWxkQmFubmVyVXJsIiwiZ3VpbGRJZCIsImd1aWxkSWNvblVybCIsImltYWdlSGFzaCIsImd1aWxkU3BsYXNoVXJsIiwiZ3VpbGREaXNjb3ZlcnlTcGxhc2hVcmwiLCJndWlsZFNjaGVkdWxlZEV2ZW50Q292ZXJVcmwiLCJldmVudElkIiwiY292ZXIiLCJnZXRXaWRnZXRJbWFnZVVybCIsInN0eWxlIiwibWVtYmVyQXZhdGFyVXJsIiwiYXBwbGljYXRpb25JY29uVXJsIiwiYXBwbGljYXRpb25JZCIsImljb25IYXNoIiwiYXBwbGljYXRpb25Db3ZlclVybCIsImNvdmVySGFzaCIsImFwcGxpY2F0aW9uQXNzZXRVcmwiLCJhc3NldElkIiwic3RpY2tlclBhY2tCYW5uZXJVcmwiLCJiYW5uZXJBc3NldElkIiwic3RpY2tlclVybCIsInN0aWNrZXJJZCIsInRlYW1JY29uVXJsIiwidGVhbUlkIiwicm9sZUljb25VcmwiLCJyb2xlSWQiXSwibWFwcGluZ3MiOiJBQUFBLG1FQUFtRSxHQUVuRSxTQUFTQSxnQkFBZ0IsUUFBUSxZQUFXO0FBRTVDLDhCQUE4QixHQUM5QixPQUFPLFNBQVNDLGVBQWVDLEdBQVcsRUFBRUMsT0FBa0IsR0FBRyxFQUFFQyxNQUFvQjtJQUNyRixPQUFPLENBQUMsRUFBRUYsSUFBSSxDQUFDLEVBQUVFLFVBQVdGLENBQUFBLElBQUlHLFFBQVEsQ0FBQyxTQUFTLFFBQVEsS0FBSSxFQUFHLE1BQU0sRUFBRUYsS0FBSyxDQUFDO0FBQ2pGO0FBRUE7Ozs7OztDQU1DLEdBQ0QsT0FBTyxTQUFTRyxTQUFTQyxPQUFrQixFQUFFQyxXQUFX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
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbWFnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCaWdTdHJpbmcsIHR5cGUgR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5LCB0eXBlIEltYWdlRm9ybWF0LCB0eXBlIEltYWdlU2l6ZSwgU3RpY2tlckZvcm1hdFR5cGVzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uQmlnaW50VG9IYXNoIH0gZnJvbSAnLi9oYXNoLmpzJ1xuXG4vKiogSGVscCBmb3JtYXQgYW4gaW1hZ2UgdXJsLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEltYWdlVXJsKHVybDogc3RyaW5nLCBzaXplOiBJbWFnZVNpemUgPSAxMjgsIGZvcm1hdD86IEltYWdlRm9ybWF0KTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3VybH0uJHtmb3JtYXQgPz8gKHVybC5pbmNsdWRlcygnL2FfJykgPyAnZ2lmJyA6ICdqcGcnKX0/c2l6ZT0ke3NpemV9YFxufVxuXG4vKipcbiAqIEdldCB0aGUgdXJsIGZvciBhbiBlbW9qaS5cbiAqXG4gKiBAcGFyYW0gZW1vamlJZCBUaGUgaWQgb2YgdGhlIGVtb2ppXG4gKiBAcGFyYW0gYW5pbWF0ZWQgV2hldGhlciBvciBub3QgdGhlIGVtb2ppIGlzIGFuaW1hdGVkXG4gKiBAcmV0dXJucyBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtb2ppVXJsKGVtb2ppSWQ6IEJpZ1N0cmluZywgYW5pbWF0ZWQgPSBmYWxzZSk6IHN0cmluZyB7XG4gIHJldHVybiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZW1vamlzLyR7ZW1vamlJZH0uJHthbmltYXRlZCA/ICdnaWYnIDogJ3BuZyd9YFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byBhIHVzZXIncyBhdmF0YXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdXNlcklkIC0gVGhlIElEIG9mIHRoZSB1c2VyIHRvIGdldCB0aGUgYXZhdGFyIG9mLlxuICogQHBhcmFtIGRpc2NyaW1pbmF0b3IgLSBUaGUgdXNlcidzIGRpc2NyaW1pbmF0b3IuICg0LWRpZ2l0IHRhZyBhZnRlciB0aGUgaGFzaHRhZy4pXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF2YXRhclVybChcbiAgdXNlcklkOiBCaWdTdHJpbmcsXG4gIGRpc2NyaW1pbmF0b3I6IHN0cmluZyxcbiAgb3B0aW9ucz86IHtcbiAgICBhdmF0YXI6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZFxuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmF2YXRhclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hdmF0YXJzLyR7dXNlcklkfS8ke3R5cGVvZiBvcHRpb25zLmF2YXRhciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmF2YXRhciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5hdmF0YXIpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZW1iZWQvYXZhdGFycy8ke2Rpc2NyaW1pbmF0b3IgPT09ICcwJyA/IChCaWdJbnQodXNlcklkKSA+PiBCaWdJbnQoMjIpKSAlIEJpZ0ludCg2KSA6IE51bWJlcihkaXNjcmltaW5hdG9yKSAlIDV9LnBuZ2Bcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF2YXRhckRlY29yYXRpb25VcmwoYXZhdGFyRGVjb3JhdGlvbjogQmlnU3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hdmF0YXItZGVjb3JhdGlvbi1wcmVzZXRzLyR7XG4gICAgdHlwZW9mIGF2YXRhckRlY29yYXRpb24gPT09ICdzdHJpbmcnID8gYXZhdGFyRGVjb3JhdGlvbiA6IGljb25CaWdpbnRUb0hhc2goYXZhdGFyRGVjb3JhdGlvbilcbiAgfS5wbmdgXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgdXNlcidzIGJhbm5lciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBiYW5uZXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIG5vdCBiZWVuIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJhbm5lclVybChcbiAgdXNlcklkOiBCaWdTdHJpbmcsXG4gIG9wdGlvbnM/OiB7XG4gICAgYmFubmVyPzogQmlnU3RyaW5nXG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3B0aW9ucz8uYmFubmVyXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2Jhbm5lcnMvJHt1c2VySWR9LyR7dHlwZW9mIG9wdGlvbnMuYmFubmVyID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYmFubmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmJhbm5lcil9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byB0aGUgZ3VpbGQgYmFubmVyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgYmFubmVyIGZvci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIG5vIGJhbm5lciBoYXMgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZEJhbm5lclVybChcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zOiB7XG4gICAgYmFubmVyPzogQmlnU3RyaW5nXG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3B0aW9ucy5iYW5uZXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYmFubmVycy8ke2d1aWxkSWR9LyR7dHlwZW9mIG9wdGlvbnMuYmFubmVyID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuYmFubmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmJhbm5lcil9YCxcbiAgICAgICAgb3B0aW9ucy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBVUkwgdG8gdGhlIGd1aWxkIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSBsaW5rIHRvIHRoZSBiYW5uZXIgZm9yLlxuICogQHBhcmFtIGltYWdlSGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBldmVudCBjb3ZlciBpbWFnZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIG5vIGJhbm5lciBoYXMgYmVlbiBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBndWlsZEljb25VcmwoXG4gIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgaW1hZ2VIYXNoOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaW1hZ2VIYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2ljb25zLyR7Z3VpbGRJZH0vJHt0eXBlb2YgaW1hZ2VIYXNoID09PSAnc3RyaW5nJyA/IGltYWdlSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaW1hZ2VIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSBndWlsZCBzcGxhc2ggc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gZ3VpbGRJZCAtIFRoZSBJRCBvZiB0aGUgZ3VpbGQgdG8gZ2V0IHRoZSBzcGxhc2ggb2YuXG4gKiBAcGFyYW0gaW1hZ2VIYXNoIC0gVGhlIGhhc2ggaWRlbnRpZnlpbmcgdGhlIHNwbGFzaCBpbWFnZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBndWlsZCBkb2VzIG5vdCBoYXZlIGEgc3BsYXNoIGltYWdlIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkU3BsYXNoVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9zcGxhc2hlcy8ke2d1aWxkSWR9LyR7dHlwZW9mIGltYWdlSGFzaCA9PT0gJ3N0cmluZycgPyBpbWFnZUhhc2ggOiBpY29uQmlnaW50VG9IYXNoKGltYWdlSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgZ3VpbGQgZGlzY292ZXJ5IHNwbGFzaCBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBndWlsZElkIC0gVGhlIElEIG9mIHRoZSBndWlsZCB0byBnZXQgdGhlIHNwbGFzaCBvZi5cbiAqIEBwYXJhbSBpbWFnZUhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgZGlzY292ZXJ5IHNwbGFzaCBpbWFnZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBndWlsZCBkb2VzIG5vdCBoYXZlIGEgc3BsYXNoIGltYWdlIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd1aWxkRGlzY292ZXJ5U3BsYXNoVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIGltYWdlSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGltYWdlSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9kaXNjb3Zlcnktc3BsYXNoZXMvJHtndWlsZElkfS8ke3R5cGVvZiBpbWFnZUhhc2ggPT09ICdzdHJpbmcnID8gaW1hZ2VIYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpbWFnZUhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIGd1aWxkIHNjaGVkdWxlZCBldmVudCBjb3ZlciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBldmVudElkIC0gVGhlIElEIG9mIHRoZSBzY2hlZHVsZWQgZXZlbnQgdG8gZ2V0IHRoZSBjb3ZlciBvZi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VpbGRTY2hlZHVsZWRFdmVudENvdmVyVXJsKFxuICBldmVudElkOiBCaWdTdHJpbmcsXG4gIG9wdGlvbnM6IHtcbiAgICBjb3Zlcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnMuY292ZXJcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vZ3VpbGQtZXZlbnRzLyR7ZXZlbnRJZH0vJHt0eXBlb2Ygb3B0aW9ucy5jb3ZlciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmNvdmVyIDogaWNvbkJpZ2ludFRvSGFzaChvcHRpb25zLmNvdmVyKX1gLFxuICAgICAgICBvcHRpb25zLnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zLmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIFVSTCB0byB0aGUgZ3VpbGQgd2lkZ2V0IGltYWdlIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHRvIGdldCB0aGUgbGluayB0byB0aGUgd2lkZ2V0IGltYWdlIGZvci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2lkZ2V0SW1hZ2VVcmwoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0R3VpbGRXaWRnZXRJbWFnZVF1ZXJ5KTogc3RyaW5nIHtcbiAgbGV0IHVybCA9IGBodHRwczovL2Rpc2NvcmRhcHAuY29tL2FwaS9ndWlsZHMvJHtndWlsZElkfS93aWRnZXQucG5nYFxuXG4gIGlmIChvcHRpb25zPy5zdHlsZSkge1xuICAgIHVybCArPSBgP3N0eWxlPSR7b3B0aW9ucy5zdHlsZX1gXG4gIH1cblxuICByZXR1cm4gdXJsXG59XG5cbi8qKlxuICogQnVpbGRzIGEgVVJMIHRvIGEgbWVtYmVyJ3MgYXZhdGFyIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIGd1aWxkSWQgLSBUaGUgSUQgb2YgdGhlIGd1aWxkIHdoZXJlIHRoZSBtZW1iZXIgaXNcbiAqIEBwYXJhbSB1c2VySWQgLSBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IHRoZSBhdmF0YXIgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYCBpZiBubyBiYW5uZXIgaGFzIGJlZW4gc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVtYmVyQXZhdGFyVXJsKFxuICBndWlsZElkOiBCaWdTdHJpbmcsXG4gIHVzZXJJZDogQmlnU3RyaW5nLFxuICBvcHRpb25zPzoge1xuICAgIGF2YXRhcj86IEJpZ1N0cmluZ1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmF2YXRhclxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9ndWlsZHMvJHtndWlsZElkfS91c2Vycy8ke3VzZXJJZH0vYXZhdGFycy8ke1xuICAgICAgICAgIHR5cGVvZiBvcHRpb25zLmF2YXRhciA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmF2YXRhciA6IGljb25CaWdpbnRUb0hhc2gob3B0aW9ucy5hdmF0YXIpXG4gICAgICAgIH1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYW4gYXBwbGljYXRpb24gaWNvbiBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBhcHBsaWNhdGlvbklkIC0gVGhlIElEIG9mIHRoZSBhcHBsaWNhdGlvbiB0byBnZXQgdGhlIGljb24gb2YuXG4gKiBAcGFyYW0gaWNvbkhhc2ggLSBUaGUgaGFzaCBpZGVudGlmeWluZyB0aGUgYXBwbGljYXRpb24gaWNvbi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBsaWNhdGlvbkljb25VcmwoXG4gIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgaWNvbkhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpY29uSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hcHAtaWNvbnMvJHthcHBsaWNhdGlvbklkfS8ke3R5cGVvZiBpY29uSGFzaCA9PT0gJ3N0cmluZycgPyBpY29uSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaWNvbkhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhbiBhcHBsaWNhdGlvbiBjb3ZlciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBhcHBsaWNhdGlvbklkIC0gVGhlIElEIG9mIHRoZSBhcHBsaWNhdGlvbiB0byBnZXQgdGhlIGNvdmVyIG9mLlxuICogQHBhcmFtIGNvdmVySGFzaCAtIFRoZSBoYXNoIGlkZW50aWZ5aW5nIHRoZSBhcHBsaWNhdGlvbiBjb3Zlci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbGljYXRpb25Db3ZlclVybChcbiAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICBjb3Zlckhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBjb3Zlckhhc2hcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWljb25zLyR7YXBwbGljYXRpb25JZH0vJHt0eXBlb2YgY292ZXJIYXNoID09PSAnc3RyaW5nJyA/IGNvdmVySGFzaCA6IGljb25CaWdpbnRUb0hhc2goY292ZXJIYXNoKX1gLFxuICAgICAgICBvcHRpb25zPy5zaXplID8/IDEyOCxcbiAgICAgICAgb3B0aW9ucz8uZm9ybWF0LFxuICAgICAgKVxuICAgIDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYW4gYXBwbGljYXRpb24gYXNzZXQgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYXBwbGljYXRpb25JZCAtIFRoZSBJRCBvZiB0aGUgYXBwbGljYXRpb24gdG8gZ2V0IHRoZSBhc3NldCBvZi5cbiAqIEBwYXJhbSBhc3NldElkIC0gVGhlIGlkIGlkZW50aWZ5aW5nIHRoZSBhcHBsaWNhdGlvbiBhc3NldC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbGljYXRpb25Bc3NldFVybChcbiAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICBhc3NldElkOiBCaWdTdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM/OiB7XG4gICAgc2l6ZT86IEltYWdlU2l6ZVxuICAgIGZvcm1hdD86IEltYWdlRm9ybWF0XG4gIH0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gYXNzZXRJZFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9hcHAtaWNvbnMvJHthcHBsaWNhdGlvbklkfS8ke3R5cGVvZiBhc3NldElkID09PSAnc3RyaW5nJyA/IGFzc2V0SWQgOiBpY29uQmlnaW50VG9IYXNoKGFzc2V0SWQpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFVSTCB0byBhIHN0aWNrZXIgcGFjayBiYW5uZXIgc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gYmFubmVyQXNzZXRJZCAtIFRoZSBJRCBvZiB0aGUgYmFubmVyIGFzc2V0IGZvciB0aGUgc3RpY2tlciBwYWNrLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJ1aWxkaW5nIG9mIHRoZSBVUkwuXG4gKiBAcmV0dXJucyBUaGUgbGluayB0byB0aGUgcmVzb3VyY2Ugb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGlja2VyUGFja0Jhbm5lclVybChcbiAgYmFubmVyQXNzZXRJZDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGJhbm5lckFzc2V0SWRcbiAgICA/IGZvcm1hdEltYWdlVXJsKFxuICAgICAgICBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXBwLWFzc2V0cy83MTA5ODI0MTQzMDE3OTAyMTYvc3RvcmUvJHtcbiAgICAgICAgICB0eXBlb2YgYmFubmVyQXNzZXRJZCA9PT0gJ3N0cmluZycgPyBiYW5uZXJBc3NldElkIDogaWNvbkJpZ2ludFRvSGFzaChiYW5uZXJBc3NldElkKVxuICAgICAgICB9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgc3RpY2tlciBzdG9yZWQgaW4gdGhlIERpc2NvcmQgQ0ROLlxuICpcbiAqIEBwYXJhbSBzdGlja2VySWQgLSBUaGUgSUQgb2YgdGhlIHN0aWNrZXIgdG8gZ2V0IHRoZSBpY29uIG9mXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0aWNrZXJVcmwoXG4gIHN0aWNrZXJJZDogQmlnU3RyaW5nIHwgbnVtYmVyLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICAgIHR5cGU/OiBTdGlja2VyRm9ybWF0VHlwZXNcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghc3RpY2tlcklkKSByZXR1cm5cblxuICBjb25zdCB1cmwgPVxuICAgIG9wdGlvbnM/LnR5cGUgPT09IFN0aWNrZXJGb3JtYXRUeXBlcy5HaWZcbiAgICAgID8gYGh0dHBzOi8vbWVkaWEuZGlzY29yZGFwcC5uZXQvc3RpY2tlcnMvJHtzdGlja2VySWR9YFxuICAgICAgOiBgaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vc3RpY2tlcnMvJHtzdGlja2VySWR9YFxuXG4gIHJldHVybiBmb3JtYXRJbWFnZVVybCh1cmwsIG9wdGlvbnM/LnNpemUgPz8gMTI4LCBvcHRpb25zPy5mb3JtYXQpXG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBVUkwgdG8gYSB0ZWFtIGljb24gc3RvcmVkIGluIHRoZSBEaXNjb3JkIENETi5cbiAqXG4gKiBAcGFyYW0gdGVhbUlkIC0gVGhlIElEIG9mIHRoZSB0ZWFtIHRvIGdldCB0aGUgaWNvbiBvZlxuICogQHBhcmFtIGljb25IYXNoIC0gVGhlIGhhc2ggb2YgdGhlIHRlYW0gaWNvbi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBidWlsZGluZyBvZiB0aGUgVVJMLlxuICogQHJldHVybnMgVGhlIGxpbmsgdG8gdGhlIHJlc291cmNlIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGVhbUljb25VcmwoXG4gIHRlYW1JZDogQmlnU3RyaW5nLFxuICBpY29uSGFzaDogQmlnU3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zPzoge1xuICAgIHNpemU/OiBJbWFnZVNpemVcbiAgICBmb3JtYXQ/OiBJbWFnZUZvcm1hdFxuICB9LFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGljb25IYXNoXG4gICAgPyBmb3JtYXRJbWFnZVVybChcbiAgICAgICAgYGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL3RlYW0taWNvbnMvJHt0ZWFtSWR9L3N0b3JlLyR7dHlwZW9mIGljb25IYXNoID09PSAnc3RyaW5nJyA/IGljb25IYXNoIDogaWNvbkJpZ2ludFRvSGFzaChpY29uSGFzaCl9YCxcbiAgICAgICAgb3B0aW9ucz8uc2l6ZSA/PyAxMjgsXG4gICAgICAgIG9wdGlvbnM/LmZvcm1hdCxcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgVVJMIHRvIGEgcm9sZSBpY29uIHN0b3JlZCBpbiB0aGUgRGlzY29yZCBDRE4uXG4gKlxuICogQHBhcmFtIHJvbGVJZCAtIFRoZSBJRCBvZiB0aGUgcm9sZSB0byBnZXQgdGhlIGljb24gb2ZcbiAqIEBwYXJhbSBpY29uSGFzaCAtIFRoZSBoYXNoIG9mIHRoZSByb2xlIGljb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYnVpbGRpbmcgb2YgdGhlIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBsaW5rIHRvIHRoZSByZXNvdXJjZSBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvbGVJY29uVXJsKFxuICByb2xlSWQ6IEJpZ1N0cmluZyxcbiAgaWNvbkhhc2g6IEJpZ1N0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHtcbiAgICBzaXplPzogSW1hZ2VTaXplXG4gICAgZm9ybWF0PzogSW1hZ2VGb3JtYXRcbiAgfSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpY29uSGFzaFxuICAgID8gZm9ybWF0SW1hZ2VVcmwoXG4gICAgICAgIGBodHRwczovL2Nkbi5kaXNjb3JkYXBwLmNvbS9yb2xlLWljb25zLyR7cm9sZUlkfS8ke3R5cGVvZiBpY29uSGFzaCA9PT0gJ3N0cmluZycgPyBpY29uSGFzaCA6IGljb25CaWdpbnRUb0hhc2goaWNvbkhhc2gpfWAsXG4gICAgICAgIG9wdGlvbnM/LnNpemUgPz8gMTI4LFxuICAgICAgICBvcHRpb25zPy5mb3JtYXQsXG4gICAgICApXG4gICAgOiB1bmRlZmluZWRcbn1cbiJdLCJuYW1lcyI6WyJTdGlja2VyRm9ybWF0VHlwZXMiLCJpY29uQmlnaW50VG9IYXNoIiwiZm9ybWF0SW1hZ2VVcmwiLCJ1cmwiLCJzaXplIiwiZm9ybWF0IiwiaW5jbHVkZXMiLCJlbW9qaVVybCIsImVtb2ppSWQiLCJhbmltYXRlZCIsImF2YXRhclVybCIsInVzZXJJZCIsImRpc2NyaW1pbmF0b3IiLCJvcHRpb25zIiwiYXZhdGFyIiwiQmlnSW50IiwiTnVtYmVyIiwiYXZhdGFyRGVjb3JhdGlvblVybCIsImF2YXRhckRlY29yYXRpb24iLCJiYW5uZXJVcmwiLCJiYW5uZXIiLCJ1bmRlZmluZWQiLCJndWlsZEJhbm5lclVybCIsImd1aWxkSWQiLCJndWlsZEljb25VcmwiLCJpbWFnZUhhc2giLCJndWlsZFNwbGFzaFVybCIsImd1aWxkRGlzY292ZXJ5U3BsYXNoVXJsIiwiZ3VpbGRTY2hlZHVsZWRFdmVudENvdmVyVXJsIiwiZXZlbnRJZCIsImNvdmVyIiwiZ2V0V2lkZ2V0SW1hZ2VVcmwiLCJzdHlsZSIsIm1lbWJlckF2YXRhclVybCIsImFwcGxpY2F0aW9uSWNvblVybCIsImFwcGxpY2F0aW9uSWQiLCJpY29uSGFzaCIsImFwcGxpY2F0aW9uQ292ZXJVcmwiLCJjb3Zlckhhc2giLCJhcHBsaWNhdGlvbkFzc2V0VXJsIiwiYXNzZXRJZCIsInN0aWNrZXJQYWNrQmFubmVyVXJsIiwiYmFubmVyQXNzZXRJZCIsInN0aWNrZXJVcmwiLCJzdGlja2VySWQiLCJ0eXBlIiwiR2lmIiwidGVhbUljb25VcmwiLCJ0ZWFtSWQiLCJyb2xlSWNvblVybCIsInJvbGVJZCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBMEZBLGtCQUFrQixRQUFRLG9CQUFtQjtBQUN2SSxTQUFTQyxnQkFBZ0IsUUFBUSxZQUFXO0FBRTVDLDhCQUE4QixHQUM5QixPQUFPLFNBQVNDLGVBQWVDLEdBQVcsRUFBRUMsT0FBa0IsR0FBRyxFQUFFQyxNQUFv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
|
package/dist/esm/index.js
CHANGED
|
@@ -13,6 +13,7 @@ export * from './reactions.js';
|
|
|
13
13
|
export * from './token.js';
|
|
14
14
|
export * from './typeguards.js';
|
|
15
15
|
export * from './urlToBase64.js';
|
|
16
|
+
export * from './urls.js';
|
|
16
17
|
export * from './utils.js';
|
|
17
18
|
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL0NvbGxlY3Rpb24uanMnXG5leHBvcnQgKiBmcm9tICcuL2Jhc2U2NC5qcydcbmV4cG9ydCAqIGZyb20gJy4vYnVja2V0LmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZGVycy5qcydcbmV4cG9ydCAqIGZyb20gJy4vY2FzaW5nLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9jb2xvcnMuanMnXG5leHBvcnQgKiBmcm9tICcuL2hhc2guanMnXG5leHBvcnQgKiBmcm9tICcuL2ltYWdlcy5qcydcbmV4cG9ydCAqIGZyb20gJy4vbG9nZ2VyLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9vYXV0aDIuanMnXG5leHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb25zLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9yZWFjdGlvbnMuanMnXG5leHBvcnQgKiBmcm9tICcuL3Rva2VuLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi90eXBlZ3VhcmRzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi91cmxUb0Jhc2U2NC5qcydcbmV4cG9ydCAqIGZyb20gJy4vdXJscy5qcydcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMuanMnXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBaUI7QUFDL0IsY0FBYyxjQUFhO0FBQzNCLGNBQWMsY0FBYTtBQUMzQixjQUFjLGdCQUFlO0FBQzdCLGNBQWMsY0FBYTtBQUMzQixjQUFjLGNBQWE7QUFDM0IsY0FBYyxZQUFXO0FBQ3pCLGNBQWMsY0FBYTtBQUMzQixjQUFjLGNBQWE7QUFDM0IsY0FBYyxjQUFhO0FBQzNCLGNBQWMsbUJBQWtCO0FBQ2hDLGNBQWMsaUJBQWdCO0FBQzlCLGNBQWMsYUFBWTtBQUMxQixjQUFjLGtCQUFpQjtBQUMvQixjQUFjLG1CQUFrQjtBQUNoQyxjQUFjLFlBQVc7QUFDekIsY0FBYyxhQUFZIn0=
|
package/dist/esm/logger.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { bgBrightMagenta, black, bold, cyan, gray, italic, red, yellow } from './colors.js';
|
|
2
2
|
export var LogLevels;
|
|
3
3
|
(function(LogLevels) {
|
|
4
4
|
LogLevels[LogLevels["Debug"] = 0] = "Debug";
|
|
@@ -127,4 +127,4 @@ export const logger = createLogger({
|
|
|
127
127
|
});
|
|
128
128
|
export default logger;
|
|
129
129
|
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmdCcmlnaHRNYWdlbnRhLCBibGFjaywgYm9sZCwgY3lhbiwgZ3JheSwgaXRhbGljLCByZWQsIHllbGxvdyB9IGZyb20gJy4vY29sb3JzLmpzJ1xuXG5leHBvcnQgZW51bSBMb2dMZXZlbHMge1xuICBEZWJ1ZyxcbiAgSW5mbyxcbiAgV2FybixcbiAgRXJyb3IsXG4gIEZhdGFsLFxufVxuXG5leHBvcnQgZW51bSBMb2dEZXB0aCB7XG4gIE1pbmltYWwsXG4gIEZ1bGwsXG59XG5cbmNvbnN0IHByZWZpeGVzID0gbmV3IE1hcDxMb2dMZXZlbHMsIHN0cmluZz4oW1xuICBbTG9nTGV2ZWxzLkRlYnVnLCAnREVCVUcnXSxcbiAgW0xvZ0xldmVscy5JbmZvLCAnSU5GTyddLFxuICBbTG9nTGV2ZWxzLldhcm4sICdXQVJOJ10sXG4gIFtMb2dMZXZlbHMuRXJyb3IsICdFUlJPUiddLFxuICBbTG9nTGV2ZWxzLkZhdGFsLCAnRkFUQUwnXSxcbl0pXG5cbmNvbnN0IG5vQ29sb3I6IChzdHI6IHN0cmluZykgPT4gc3RyaW5nID0gKG1zZykgPT4gbXNnXG5jb25zdCBjb2xvckZ1bmN0aW9ucyA9IG5ldyBNYXA8TG9nTGV2ZWxzLCAoc3RyOiBzdHJpbmcpID0+IHN0cmluZz4oW1xuICBbTG9nTGV2ZWxzLkRlYnVnLCBncmF5XSxcbiAgW0xvZ0xldmVscy5JbmZvLCBjeWFuXSxcbiAgW0xvZ0xldmVscy5XYXJuLCB5ZWxsb3ddLFxuICBbTG9nTGV2ZWxzLkVycm9yLCAoc3RyOiBzdHJpbmcpID0+IHJlZChzdHIpXSxcbiAgW0xvZ0xldmVscy5GYXRhbCwgKHN0cjogc3RyaW5nKSA9PiByZWQoYm9sZChpdGFsaWMoc3RyKSkpXSxcbl0pXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2dnZXIoe1xuICBsb2dMZXZlbCA9IExvZ0xldmVscy5JbmZvLFxuICBuYW1lLFxufToge1xuICBsb2dMZXZlbD86IExvZ0xldmVsc1xuICBuYW1lPzogc3RyaW5nXG59ID0ge30pIHtcbiAgbGV0IGRlcHRoID0gTG9nRGVwdGguTWluaW1hbFxuXG4gIGZ1bmN0aW9uIGxvZyhsZXZlbDogTG9nTGV2ZWxzLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGlmIChsZXZlbCA8IGxvZ0xldmVsKSByZXR1cm5cblxuICAgIGxldCBjb2xvciA9IGNvbG9yRnVuY3Rpb25zLmdldChsZXZlbClcbiAgICBpZiAoIWNvbG9yKSBjb2xvciA9IG5vQ29sb3JcblxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpXG4gICAgY29uc3QgbG9nID0gW1xuICAgICAgYmdCcmlnaHRNYWdlbnRhKGJsYWNrKGBbJHtkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpfSAke2RhdGUudG9Mb2NhbGVUaW1lU3RyaW5nKCl9XWApKSxcbiAgICAgIGNvbG9yKHByZWZpeGVzLmdldChsZXZlbCkgPz8gJ0RFQlVHJyksXG4gICAgICBuYW1lID8gYCR7bmFtZX0gPmAgOiAnPicsXG4gICAgICAuLi5hcmdzLFxuICAgIF1cblxuICAgIHN3aXRjaCAobGV2ZWwpIHtcbiAgICAgIGNhc2UgTG9nTGV2ZWxzLkRlYnVnOlxuICAgICAgICByZXR1cm4gY29uc29sZS5kZWJ1ZyguLi5sb2cpXG4gICAgICBjYXNlIExvZ0xldmVscy5JbmZvOlxuICAgICAgICByZXR1cm4gY29uc29sZS5pbmZvKC4uLmxvZylcbiAgICAgIGNhc2UgTG9nTGV2ZWxzLldhcm46XG4gICAgICAgIHJldHVybiBjb25zb2xlLndhcm4oLi4ubG9nKVxuICAgICAgY2FzZSBMb2dMZXZlbHMuRXJyb3I6XG4gICAgICAgIHJldHVybiBjb25zb2xlLmVycm9yKC4uLmxvZylcbiAgICAgIGNhc2UgTG9nTGV2ZWxzLkZhdGFsOlxuICAgICAgICByZXR1cm4gY29uc29sZS5lcnJvciguLi5sb2cpXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gY29uc29sZS5sb2coLi4ubG9nKVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHNldExldmVsKGxldmVsOiBMb2dMZXZlbHMpIHtcbiAgICBsb2dMZXZlbCA9IGxldmVsXG4gIH1cblxuICBmdW5jdGlvbiBzZXREZXB0aChsZXZlbDogTG9nRGVwdGgpIHtcbiAgICBkZXB0aCA9IGxldmVsXG4gIH1cblxuICBmdW5jdGlvbiBkZWJ1ZyguLi5hcmdzOiBhbnlbXSkge1xuICAgIGlmIChMb2dEZXB0aC5NaW5pbWFsID09PSBkZXB0aCkgbG9nKExvZ0xldmVscy5EZWJ1ZywgYXJnc1swXSlcbiAgICBlbHNlIGxvZyhMb2dMZXZlbHMuRGVidWcsIC4uLmFyZ3MpXG4gIH1cblxuICBmdW5jdGlvbiBpbmZvKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgaWYgKExvZ0RlcHRoLk1pbmltYWwgPT09IGRlcHRoKSBsb2coTG9nTGV2ZWxzLkluZm8sIGFyZ3NbMF0pXG4gICAgZWxzZSBsb2coTG9nTGV2ZWxzLkluZm8sIC4uLmFyZ3MpXG4gIH1cblxuICBmdW5jdGlvbiB3YXJuKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgaWYgKExvZ0RlcHRoLk1pbmltYWwgPT09IGRlcHRoKSBsb2coTG9nTGV2ZWxzLldhcm4sIGFyZ3NbMF0pXG4gICAgZWxzZSBsb2coTG9nTGV2ZWxzLldhcm4sIC4uLmFyZ3MpXG4gIH1cblxuICBmdW5jdGlvbiBlcnJvciguLi5hcmdzOiBhbnlbXSkge1xuICAgIGlmIChMb2dEZXB0aC5NaW5pbWFsID09PSBkZXB0aCkgbG9nKExvZ0xldmVscy5FcnJvciwgYXJnc1swXSlcbiAgICBlbHNlIGxvZyhMb2dMZXZlbHMuRXJyb3IsIC4uLmFyZ3MpXG4gIH1cblxuICBmdW5jdGlvbiBmYXRhbCguLi5hcmdzOiBhbnlbXSkge1xuICAgIGlmIChMb2dEZXB0aC5NaW5pbWFsID09PSBkZXB0aCkgbG9nKExvZ0xldmVscy5GYXRhbCwgYXJnc1swXSlcbiAgICBlbHNlIGxvZyhMb2dMZXZlbHMuRmF0YWwsIC4uLmFyZ3MpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGxvZyxcbiAgICBzZXREZXB0aCxcbiAgICBzZXRMZXZlbCxcbiAgICBkZWJ1ZyxcbiAgICBpbmZvLFxuICAgIHdhcm4sXG4gICAgZXJyb3IsXG4gICAgZmF0YWwsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGxvZ2dlciA9IGNyZWF0ZUxvZ2dlcih7IG5hbWU6ICdEaXNjb3JkZW5vJyB9KVxuZXhwb3J0IGRlZmF1bHQgbG9nZ2VyXG4iXSwibmFtZXMiOlsiYmdCcmlnaHRNYWdlbnRhIiwiYmxhY2siLCJib2xkIiwiY3lhbiIsImdyYXkiLCJpdGFsaWMiLCJyZWQiLCJ5ZWxsb3ciLCJMb2dMZXZlbHMiLCJMb2dEZXB0aCIsInByZWZpeGVzIiwiTWFwIiwibm9Db2xvciIsIm1zZyIsImNvbG9yRnVuY3Rpb25zIiwic3RyIiwiY3JlYXRlTG9nZ2VyIiwibG9nTGV2ZWwiLCJuYW1lIiwiZGVwdGgiLCJsb2ciLCJsZXZlbCIsImFyZ3MiLCJjb2xvciIsImdldCIsImRhdGUiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiY29uc29sZSIsImRlYnVnIiwiaW5mbyIsIndhcm4iLCJlcnJvciIsInNldExldmVsIiwic2V0RGVwdGgiLCJmYXRhbCIsImxvZ2dlciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZUFBZSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLE1BQU0sRUFBRUMsR0FBRyxFQUFFQyxNQUFNLFFBQVEsY0FBYTs7VUFFL0VDOzs7Ozs7R0FBQUEsY0FBQUE7O1VBUUFDOzs7R0FBQUEsYUFBQUE7QUFLWixNQUFNQyxXQUFXLElBQUlDLElBQXVCO0lBQzFDOztRQUFrQjtLQUFRO0lBQzFCOztRQUFpQjtLQUFPO0lBQ3hCOztRQUFpQjtLQUFPO0lBQ3hCOztRQUFrQjtLQUFRO0lBQzFCOztRQUFrQjtLQUFRO0NBQzNCO0FBRUQsTUFBTUMsVUFBbUMsQ0FBQ0MsTUFBUUE7QUFDbEQsTUFBTUMsaUJB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
|
package/dist/esm/oauth2.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { calculateBits } from './permissions.js';
|
|
2
2
|
export function createOAuth2Link(options) {
|
|
3
|
-
const joinedScopeString = options.scope.join('
|
|
3
|
+
const joinedScopeString = options.scope.join('%20');
|
|
4
4
|
let url = `https://discord.com/oauth2/authorize?client_id=${options.clientId}&scope=${joinedScopeString}`;
|
|
5
5
|
if (options.responseType) url += `&response_type=${options.responseType}`;
|
|
6
6
|
if (options.state) url += `&state=${encodeURIComponent(options.state)}`;
|
|
@@ -13,4 +13,4 @@ export function createOAuth2Link(options) {
|
|
|
13
13
|
return url;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vYXV0aDIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCaWdTdHJpbmcsIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSwgT0F1dGgyU2NvcGUsIFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBjYWxjdWxhdGVCaXRzIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU9BdXRoMkxpbmsob3B0aW9uczogQ3JlYXRlT0F1dGgyTGlua09wdGlvbnMpOiBzdHJpbmcge1xuICBjb25zdCBqb2luZWRTY29wZVN0cmluZyA9IG9wdGlvbnMuc2NvcGUuam9pbignJTIwJylcblxuICBsZXQgdXJsID0gYGh0dHBzOi8vZGlzY29yZC5jb20vb2F1dGgyL2F1dGhvcml6ZT9jbGllbnRfaWQ9JHtvcHRpb25zLmNsaWVudElkfSZzY29wZT0ke2pvaW5lZFNjb3BlU3RyaW5nfWBcblxuICBpZiAob3B0aW9ucy5yZXNwb25zZVR5cGUpIHVybCArPSBgJnJlc3BvbnNlX3R5cGU9JHtvcHRpb25zLnJlc3BvbnNlVHlwZX1gXG4gIGlmIChvcHRpb25zLnN0YXRlKSB1cmwgKz0gYCZzdGF0ZT0ke2VuY29kZVVSSUNvbXBvbmVudChvcHRpb25zLnN0YXRlKX1gXG4gIGlmIChvcHRpb25zLnJlZGlyZWN0VXJpKSB1cmwgKz0gYCZyZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQob3B0aW9ucy5yZWRpcmVjdFVyaSl9YFxuICBpZiAob3B0aW9ucy5wcm9tcHQpIHVybCArPSBgJnByb21wdD0ke29wdGlvbnMucHJvbXB0fWBcbiAgaWYgKG9wdGlvbnMucGVybWlzc2lvbnMpIHVybCArPSBgJnBlcm1pc3Npb25zPSR7QXJyYXkuaXNBcnJheShvcHRpb25zLnBlcm1pc3Npb25zKSA/IGNhbGN1bGF0ZUJpdHMob3B0aW9ucy5wZXJtaXNzaW9ucykgOiBvcHRpb25zLnBlcm1pc3Npb25zfWBcbiAgaWYgKG9wdGlvbnMuZ3VpbGRJZCkgdXJsICs9IGAmZ3VpbGRfaWQ9JHtvcHRpb25zLmd1aWxkSWR9YFxuICBpZiAob3B0aW9ucy5kaXNhYmxlR3VpbGRTZWxlY3QgIT09IHVuZGVmaW5lZCkgdXJsICs9IGAmZGlzYWJsZV9ndWlsZF9zZWxlY3Q9JHtvcHRpb25zLmRpc2FibGVHdWlsZFNlbGVjdH1gXG4gIGlmIChvcHRpb25zLmludGVncmF0aW9uVHlwZSkgdXJsICs9IGAmaW50ZWdyYXRpb25fdHlwZT0ke29wdGlvbnMuaW50ZWdyYXRpb25UeXBlfWBcblxuICByZXR1cm4gdXJsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT0F1dGgyTGlua09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcmVzcG9uc2VcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpZiB1c2luZyBlaXRoZXIgT0F1dGgyIGF1dGhvcml6YXRpb24sIGltcGxpY2l0IG9yIG5vdCwgb3IgW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcmVzcG9uc2VUeXBlPzogJ2NvZGUnIHwgJ3Rva2VuJ1xuICAvKiogVGhlIGlkIG9mIHRoZSBhcHBsaWNhdGlvbiAqL1xuICBjbGllbnRJZDogQmlnU3RyaW5nXG4gIC8qKiBUaGUgc2NvcGVzIGZvciB0aGUgYXBwbGljYXRpb24gKi9cbiAgc2NvcGU6IE9BdXRoMlNjb3BlW11cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBzdGF0ZSBmb3Igc2VjdXJpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI3N0YXRlLWFuZC1zZWN1cml0eVxuICAgKi9cbiAgc3RhdGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSByZWRpcmVjdCB1cmkgZm9yIGFmdGVyIHRoZSBhdXRoZW50aWNhdGlvblxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGlmIHVzaW5nIGVpdGhlciBPQXV0aDIgYXV0aG9yaXphdGlvbiwgaW1wbGljaXQgb3Igbm90LCBvciBbYWR2YW5jZWQgYm90IGF1dGhvcml6YXRpb25dKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDIjYWR2YW5jZWQtYm90LWF1dGhvcml6YXRpb24pXG4gICAqL1xuICByZWRpcmVjdFVyaT86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcHJvbXB0IHRvIGdpdmUgdG8gdGhlIHVzZXJcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogSWYgc2V0IHRvIGBub25lYCwgaXQgd2lsbCBza2lwIHRoZSBhdXRob3JpemF0aW9uIHNjcmVlbiBhbmQgcmVkaXJlY3QgdGhlbSBiYWNrIHRvIHlvdXIgcmVkaXJlY3QgVVJJIHdpdGhvdXQgcmVxdWVzdGluZyB0aGVpciBhdXRob3JpemF0aW9uLlxuICAgKiBGb3IgcGFzc3Rocm91Z2ggc2NvcGVzLCBsaWtlIGJvdCBhbmQgd2ViaG9vay5pbmNvbWluZywgYXV0aG9yaXphdGlvbiBpcyBhbHdheXMgcmVxdWlyZWQuXG4gICAqL1xuICBwcm9tcHQ/OiAnY29uc2VudCcgfCAnbm9uZSdcbiAgLyoqXG4gICAqIFRoZSBwZXJtaXNzaW9ucyBvZiB0aGUgaW52aXRlZCBib3RcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpIG9yIHdpdGggW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcGVybWlzc2lvbnM/OiBCaWdTdHJpbmcgfCBQZXJtaXNzaW9uU3RyaW5nc1tdXG4gIC8qKlxuICAgKiBQcmUtZmlsbHMgdGhlIGRyb3Bkb3duIHBpY2tlciB3aXRoIGEgZ3VpbGQgZm9yIHRoZSB1c2VyXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFNob3VsZCBiZSBkZWZpbmVkIG9ubHkgaW4gYSBbYm90IGF1dGhvcml6YXRpb24gZmxvd10oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNib3QtYXV0aG9yaXphdGlvbi1mbG93KSBvciB3aXRoIFthZHZhbmNlZCBib3QgYXV0aG9yaXphdGlvbl0oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNhZHZhbmNlZC1ib3QtYXV0aG9yaXphdGlvbikgb3Igd2l0aCB0aGUgYHdlYmhvb2suaW5jb21pbmdgIHNjb3BlXG4gICAqL1xuICBndWlsZElkPzogQmlnU3RyaW5nXG4gIC8qKlxuICAgKiBEaXNhbGxvd3MgdGhlIHVzZXIgZnJvbSBjaGFuZ2luZyB0aGUgZ3VpbGQgZHJvcGRvd24gaWYgc2V0IHRvIHRydWVcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpLCB3aXRoIFthZHZhbmNlZCBib3QgYXV0aG9yaXphdGlvbl0oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNhZHZhbmNlZC1ib3QtYXV0aG9yaXphdGlvbikgb3Igd2l0aCB0aGUgYHdlYmhvb2suaW5jb21pbmdgIHNjb3BlXG4gICAqL1xuICBkaXNhYmxlR3VpbGRTZWxlY3Q/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGluc3RhbGxhdGlvbiBjb250ZXh0IGZvciB0aGUgYXV0aG9yaXphdGlvblxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IHdoZW4ge0BsaW5rIHNjb3BlfSBpbmNsdWRlcyB7QGxpbmsgT0F1dGgyU2NvcGUuQXBwbGljYXRpb25zQ29tbWFuZHN9LlxuICAgKlxuICAgKiBXaGVuIHNldCB0byBHdWlsZEluc3RhbGwgKDApIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGJlIGF1dGhvcml6ZWQgZm9yIGluc3RhbGxhdGlvbiB0byBhIHNlcnZlciwgYW5kIHdoZW4gc2V0IHRvIFVzZXJJbnN0YWxsICgxKSB0aGUgYXBwbGljYXRpb24gd2lsbCBiZSBhdXRob3JpemVkIGZvciBpbnN0YWxsYXRpb24gdG8gYSB1c2VyLlxuICAgKlxuICAgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBiZSBjb25maWd1cmVkIGluIHRoZSBEZXZlbG9wZXIgUG9ydGFsIHRvIHN1cHBvcnQgdGhlIHByb3ZpZGVkIGBpbnRlZ3JhdGlvblR5cGVgLlxuICAgKi9cbiAgaW50ZWdyYXRpb25UeXBlPzogRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlXG59XG4iXSwibmFtZXMiOlsiY2FsY3VsYXRlQml0cyIsImNyZWF0ZU9BdXRoMkxpbmsiLCJvcHRpb25zIiwiam9pbmVkU2NvcGVTdHJpbmciLCJzY29wZSIsImpvaW4iLCJ1cmwiLCJjbGllbnRJZCIsInJlc3BvbnNlVHlwZSIsInN0YXRlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVkaXJlY3RVcmkiLCJwcm9tcHQiLCJwZXJtaXNzaW9ucyIsIkFycmF5IiwiaXNBcnJheSIsImd1aWxkSWQiLCJkaXNhYmxlR3VpbGRTZWxlY3QiLCJ1bmRlZmluZWQiLCJpbnRlZ3JhdGlvblR5cGUiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGFBQWEsUUFBUSxtQkFBa0I7QUFFaEQsT0FBTyxTQUFTQyxpQkFBaUJDLE9BQWdDO0lBQy9ELE1BQU1DLG9CQUFvQkQsUUFBUUUsS0FBSyxDQUFDQyxJQUFJLENBQUM7SUFFN0MsSUFBSUMsTUFBTSxDQUFDLCtDQUErQyxFQUFFSixRQUFRSyxRQUFRLENBQUMsT0FBTyxFQUFFSixrQkFBa0IsQ0FBQztJQUV6RyxJQUFJRCxRQUFRTSxZQUFZLEVBQUVGLE9BQU8sQ0FBQyxlQUFlLEVBQUVKLFFBQVFNLFlBQVksQ0FBQyxDQUFDO0lBQ3pFLElBQUlOLFFBQVFPLEtBQUssRUFBRUgsT0FBTyxDQUFDLE9BQU8sRUFBRUksbUJBQW1CUixRQUFRTyxLQUFLLEVBQUUsQ0FBQztJQUN2RSxJQUFJUCxRQUFRUyxXQUFXLEVBQUVMLE9BQU8sQ0FBQyxjQUFjLEVBQUVJLG1CQUFtQlIsUUFBUVMsV0FBVyxFQUFFLENBQUM7SUFDMUYsSUFBSVQsUUFBUVUsTUFBTSxFQUFFTixPQUFPLENBQUMsUUFBUSxFQUFFSixRQUFRVSxNQUFNLENBQUMsQ0FBQztJQUN0RCxJQUFJVixRQUFRVyxXQUFXLEVBQUVQLE9BQU8sQ0FBQyxhQUFhLEVBQUVRLE1BQU1DLE9BQU8sQ0FBQ2IsUUFBUVcsV0FBVyxJQUFJYixjQUFjRSxRQUFRVyxXQUFXLElBQUlYLFFBQVFXLFdBQVcsQ0FBQyxDQUFDO0lBQy9JLElBQUlYLFFBQVFjLE9BQU8sRUFBRVYsT0FBTyxDQUFDLFVBQVUsRUFBRUosUUFBUWMsT0FBTyxDQUFDLENBQUM7SUFDMUQsSUFBSWQsUUFBUWUsa0JBQWtCLEtBQUtDLFdBQVdaLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRUosUUFBUWUsa0JBQWtCLENBQUMsQ0FBQztJQUMxRyxJQUFJZixRQUFRaUIsZUFBZSxFQUFFYixPQUFPLENBQUMsa0JBQWtCLEVBQUVKLFFBQVFpQixlQUFlLENBQUMsQ0FBQztJQUVsRixPQUFPYjtBQUNUIn0=
|
package/dist/esm/permissions.js
CHANGED
|
@@ -4,14 +4,14 @@ import { BitwisePermissionFlags } from '@discordeno/types';
|
|
|
4
4
|
// Since Object.keys() not only returns the permission names but also the bit values we need to return false if it is a Number
|
|
5
5
|
if (Number(permission)) return false;
|
|
6
6
|
// Check if permissionBits has this permission
|
|
7
|
-
return permissionBits &
|
|
7
|
+
return permissionBits & BitwisePermissionFlags[permission];
|
|
8
8
|
});
|
|
9
9
|
}
|
|
10
10
|
/** This function converts an array of permissions into the bitwise string. */ export function calculateBits(permissions) {
|
|
11
11
|
return permissions.reduce((bits, perm)=>{
|
|
12
|
-
bits |=
|
|
12
|
+
bits |= BitwisePermissionFlags[perm];
|
|
13
13
|
return bits;
|
|
14
14
|
}, 0n).toString();
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJtaXNzaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBCaXR3aXNlUGVybWlzc2lvbkZsYWdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5cbi8qKiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIGEgYml0d2lzZSBzdHJpbmcgdG8gcGVybWlzc2lvbiBzdHJpbmdzICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlUGVybWlzc2lvbnMocGVybWlzc2lvbkJpdHM6IGJpZ2ludCk6IFBlcm1pc3Npb25TdHJpbmdzW10ge1xuICByZXR1cm4gT2JqZWN0LmtleXMoQml0d2lzZVBlcm1pc3Npb25GbGFncykuZmlsdGVyKChwZXJtaXNzaW9uKSA9PiB7XG4gICAgLy8gU2luY2UgT2JqZWN0LmtleXMoKSBub3Qgb25seSByZXR1cm5zIHRoZSBwZXJtaXNzaW9uIG5hbWVzIGJ1dCBhbHNvIHRoZSBiaXQgdmFsdWVzIHdlIG5lZWQgdG8gcmV0dXJuIGZhbHNlIGlmIGl0IGlzIGEgTnVtYmVyXG4gICAgaWYgKE51bWJlcihwZXJtaXNzaW9uKSkgcmV0dXJuIGZhbHNlXG4gICAgLy8gQ2hlY2sgaWYgcGVybWlzc2lvbkJpdHMgaGFzIHRoaXMgcGVybWlzc2lvblxuICAgIHJldHVybiBwZXJtaXNzaW9uQml0cyAmIEJpdHdpc2VQZXJtaXNzaW9uRmxhZ3NbcGVybWlzc2lvbiBhcyBQZXJtaXNzaW9uU3RyaW5nc11cbiAgfSkgYXMgUGVybWlzc2lvblN0cmluZ3NbXVxufVxuXG4vKiogVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyBhbiBhcnJheSBvZiBwZXJtaXNzaW9ucyBpbnRvIHRoZSBiaXR3aXNlIHN0cmluZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVCaXRzKHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uU3RyaW5nc1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBlcm1pc3Npb25zXG4gICAgLnJlZHVjZSgoYml0cywgcGVybSkgPT4ge1xuICAgICAgYml0cyB8PSBCaXR3aXNlUGVybWlzc2lvbkZsYWdzW3Blcm1dXG4gICAgICByZXR1cm4gYml0c1xuICAgIH0sIDBuKVxuICAgIC50b1N0cmluZygpXG59XG4iXSwibmFtZXMiOlsiQml0d2lzZVBlcm1pc3Npb25GbGFncyIsImNhbGN1bGF0ZVBlcm1pc3Npb25zIiwicGVybWlzc2lvbkJpdHMiLCJPYmplY3QiLCJrZXlzIiwiZmlsdGVyIiwicGVybWlzc2lvbiIsIk51bWJlciIsImNhbGN1bGF0ZUJpdHMiLCJwZXJtaXNzaW9ucyIsInJlZHVjZSIsImJpdHMiLCJwZXJtIiwidG9TdHJpbmciXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLHNCQUFzQixRQUFRLG9CQUFtQjtBQUUxRCxrRUFBa0UsR0FDbEUsT0FBTyxTQUFTQyxxQkFBcUJDLGNBQXNCO0lBQ3pELE9BQU9DLE9BQU9DLElBQUksQ0FBQ0osd0JBQXdCSyxNQUFNLENBQUMsQ0FBQ0M7UUFDakQsOEhBQThIO1FBQzlILElBQUlDLE9BQU9ELGFBQWEsT0FBTztRQUMvQiw4Q0FBOEM7UUFDOUMsT0FBT0osaUJBQWlCRixzQkFBc0IsQ0FBQ00sV0FBZ0M7SUFDakY7QUFDRjtBQUVBLDRFQUE0RSxHQUM1RSxPQUFPLFNBQVNFLGNBQWNDLFdBQWdDO0lBQzVELE9BQU9BLFlBQ0pDLE1BQU0sQ0FBQyxDQUFDQyxNQUFNQztRQUNiRCxRQUFRWCxzQkFBc0IsQ0FBQ1ksS0FBSztRQUNwQyxPQUFPRDtJQUNULEdBQUcsRUFBRSxFQUNKRSxRQUFRO0FBQ2IifQ==
|
package/dist/esm/urls.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export function skuLink(appId, skuId) {
|
|
2
|
+
return `https://discord.com/application-directory/${appId}/store/${skuId}`;
|
|
3
|
+
}
|
|
4
|
+
export function storeLink(appId) {
|
|
5
|
+
return `https://discord.com/application-directory/${appId}/store`;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cmxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBza3VMaW5rKGFwcElkOiBCaWdTdHJpbmcsIHNrdUlkOiBCaWdTdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vZGlzY29yZC5jb20vYXBwbGljYXRpb24tZGlyZWN0b3J5LyR7YXBwSWR9L3N0b3JlLyR7c2t1SWR9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RvcmVMaW5rKGFwcElkOiBCaWdTdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vZGlzY29yZC5jb20vYXBwbGljYXRpb24tZGlyZWN0b3J5LyR7YXBwSWR9L3N0b3JlYFxufVxuIl0sIm5hbWVzIjpbInNrdUxpbmsiLCJhcHBJZCIsInNrdUlkIiwic3RvcmVMaW5rIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLFNBQVNBLFFBQVFDLEtBQWdCLEVBQUVDLEtBQWdCO0lBQ3hELE9BQU8sQ0FBQywwQ0FBMEMsRUFBRUQsTUFBTSxPQUFPLEVBQUVDLE1BQU0sQ0FBQztBQUM1RTtBQUVBLE9BQU8sU0FBU0MsVUFBVUYsS0FBZ0I7SUFDeEMsT0FBTyxDQUFDLDBDQUEwQyxFQUFFQSxNQUFNLE1BQU0sQ0FBQztBQUNuRSJ9
|
package/dist/esm/utils.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
/** Pause the execution for a given amount of milliseconds. */ export async function delay(ms) {
|
|
2
|
-
// eslint-disable-next-line @typescript-eslint/return-await
|
|
3
2
|
return new Promise((resolve)=>setTimeout(()=>{
|
|
4
3
|
resolve();
|
|
5
4
|
}, ms));
|
|
6
5
|
}
|
|
7
6
|
// Typescript is not so good as we developers so we need this little utility function to help it out
|
|
8
7
|
// Taken from https://fettblog.eu/typescript-hasownproperty/
|
|
9
|
-
/** TS save way to check if a property exists in an object */
|
|
10
|
-
export function hasProperty(obj, prop) {
|
|
11
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
8
|
+
/** TS save way to check if a property exists in an object */ export function hasProperty(obj, prop) {
|
|
12
9
|
return obj.hasOwnProperty(prop);
|
|
13
10
|
}
|
|
14
11
|
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUGF1c2UgdGhlIGV4ZWN1dGlvbiBmb3IgYSBnaXZlbiBhbW91bnQgb2YgbWlsbGlzZWNvbmRzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGF5KG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUGF1c2UgdGhlIGV4ZWN1dGlvbiBmb3IgYSBnaXZlbiBhbW91bnQgb2YgbWlsbGlzZWNvbmRzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGF5KG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKFxuICAgIChyZXNvbHZlKTogTm9kZUpTLlRpbWVvdXQgPT5cbiAgICAgIHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuICAgICAgICByZXNvbHZlKClcbiAgICAgIH0sIG1zKSxcbiAgKVxufVxuXG4vLyBUeXBlc2NyaXB0IGlzIG5vdCBzbyBnb29kIGFzIHdlIGRldmVsb3BlcnMgc28gd2UgbmVlZCB0aGlzIGxpdHRsZSB1dGlsaXR5IGZ1bmN0aW9uIHRvIGhlbHAgaXQgb3V0XG4vLyBUYWtlbiBmcm9tIGh0dHBzOi8vZmV0dGJsb2cuZXUvdHlwZXNjcmlwdC1oYXNvd25wcm9wZXJ0eS9cbi8qKiBUUyBzYXZlIHdheSB0byBjaGVjayBpZiBhIHByb3BlcnR5IGV4aXN0cyBpbiBhbiBvYmplY3QgKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNQcm9wZXJ0eTxUIGV4dGVuZHMge30sIFkgZXh0ZW5kcyBQcm9wZXJ0eUtleSA9IHN0cmluZz4ob2JqOiBULCBwcm9wOiBZKTogb2JqIGlzIFQgJiBSZWNvcmQ8WSwgdW5rbm93bj4ge1xuICByZXR1cm4gb2JqLmhhc093blByb3BlcnR5KHByb3ApXG59XG4iXSwibmFtZXMiOlsiZGVsYXkiLCJtcyIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsImhhc1Byb3BlcnR5Iiwib2JqIiwicHJvcCIsImhhc093blByb3BlcnR5Il0sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQsR0FDNUQsT0FBTyxlQUFlQSxNQUFNQyxFQUFVO0lBQ3BDLE9BQU8sSUFBSUMsUUFDVCxDQUFDQyxVQUNDQyxXQUFXO1lBQ1REO1FBQ0YsR0FBR0Y7QUFFVDtBQUVBLG9HQUFvRztBQUNwRyw0REFBNEQ7QUFDNUQsMkRBQTJELEdBQzNELE9BQU8sU0FBU0ksWUFBMERDLEdBQU0sRUFBRUMsSUFBTztJQUN2RixPQUFPRCxJQUFJRSxjQUFjLENBQUNEO0FBQzVCIn0=
|