@discordeno/bot 19.0.0-next.df5d863 → 19.0.0-next.dfa7ff4
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/dist/cjs/bot.cjs +1 -1
- package/dist/cjs/handlers/index.cjs +3 -1
- package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.cjs +20 -0
- package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.cjs +17 -0
- package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.cjs +20 -0
- package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.cjs +17 -0
- package/dist/cjs/handlers/soundboard/SOUNDBOARD_SOUNDS.cjs +20 -0
- package/dist/cjs/handlers/soundboard/index.cjs +24 -0
- package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_CREATE.cjs +17 -0
- package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_DELETE.cjs +17 -0
- package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_UPDATE.cjs +17 -0
- package/dist/cjs/handlers/subscriptions/index.cjs +22 -0
- package/dist/cjs/handlers.cjs +10 -2
- package/dist/cjs/helpers.cjs +31 -1
- package/dist/cjs/transformers/application.cjs +5 -2
- package/dist/cjs/transformers/index.cjs +3 -1
- package/dist/cjs/transformers/member.cjs +2 -1
- package/dist/cjs/transformers/message.cjs +17 -6
- package/dist/cjs/transformers/reverse/application.cjs +5 -2
- package/dist/cjs/transformers/soundboardSound.cjs +25 -0
- package/dist/cjs/transformers/subscription.cjs +26 -0
- package/dist/cjs/transformers/toggles/guild.cjs +13 -2
- package/dist/cjs/transformers/user.cjs +1 -1
- package/dist/cjs/transformers.cjs +31 -1
- package/dist/cjs/typings.cjs +1 -1
- package/dist/esm/bot.js +1 -1
- package/dist/esm/handlers/index.js +3 -1
- package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.js +10 -0
- package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.js +7 -0
- package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.js +10 -0
- package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.js +7 -0
- package/dist/esm/handlers/soundboard/SOUNDBOARD_SOUNDS.js +10 -0
- package/dist/esm/handlers/soundboard/index.js +7 -0
- package/dist/esm/handlers/subscriptions/SUBSCRIPTION_CREATE.js +7 -0
- package/dist/esm/handlers/subscriptions/SUBSCRIPTION_DELETE.js +7 -0
- package/dist/esm/handlers/subscriptions/SUBSCRIPTION_UPDATE.js +7 -0
- package/dist/esm/handlers/subscriptions/index.js +5 -0
- package/dist/esm/handlers.js +10 -2
- package/dist/esm/helpers.js +31 -1
- package/dist/esm/transformers/application.js +5 -2
- package/dist/esm/transformers/index.js +3 -1
- package/dist/esm/transformers/member.js +2 -1
- package/dist/esm/transformers/message.js +17 -6
- package/dist/esm/transformers/reverse/application.js +5 -2
- package/dist/esm/transformers/soundboardSound.js +15 -0
- package/dist/esm/transformers/subscription.js +16 -0
- package/dist/esm/transformers/toggles/guild.js +13 -2
- package/dist/esm/transformers/types.js +2 -2
- package/dist/esm/transformers/user.js +1 -1
- package/dist/esm/transformers.js +32 -2
- package/dist/esm/typings.js +1 -1
- package/dist/types/bot.d.ts +18 -1
- package/dist/types/bot.d.ts.map +1 -1
- package/dist/types/handlers/index.d.ts +2 -0
- package/dist/types/handlers/index.d.ts.map +1 -1
- package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.d.ts +4 -0
- package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.d.ts +4 -0
- package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.d.ts +4 -0
- package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.d.ts.map +1 -0
- package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.d.ts +4 -0
- package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/soundboard/SOUNDBOARD_SOUNDS.d.ts +4 -0
- package/dist/types/handlers/soundboard/SOUNDBOARD_SOUNDS.d.ts.map +1 -0
- package/dist/types/handlers/soundboard/index.d.ts +6 -0
- package/dist/types/handlers/soundboard/index.d.ts.map +1 -0
- package/dist/types/handlers/subscriptions/SUBSCRIPTION_CREATE.d.ts +4 -0
- package/dist/types/handlers/subscriptions/SUBSCRIPTION_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/subscriptions/SUBSCRIPTION_DELETE.d.ts +4 -0
- package/dist/types/handlers/subscriptions/SUBSCRIPTION_DELETE.d.ts.map +1 -0
- package/dist/types/handlers/subscriptions/SUBSCRIPTION_UPDATE.d.ts +4 -0
- package/dist/types/handlers/subscriptions/SUBSCRIPTION_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/subscriptions/index.d.ts +4 -0
- package/dist/types/handlers/subscriptions/index.d.ts.map +1 -0
- package/dist/types/handlers.d.ts.map +1 -1
- package/dist/types/helpers.d.ts +13 -2
- package/dist/types/helpers.d.ts.map +1 -1
- package/dist/types/transformers/application.d.ts.map +1 -1
- package/dist/types/transformers/index.d.ts +2 -0
- package/dist/types/transformers/index.d.ts.map +1 -1
- package/dist/types/transformers/member.d.ts.map +1 -1
- package/dist/types/transformers/message.d.ts.map +1 -1
- package/dist/types/transformers/reverse/application.d.ts.map +1 -1
- package/dist/types/transformers/soundboardSound.d.ts +4 -0
- package/dist/types/transformers/soundboardSound.d.ts.map +1 -0
- package/dist/types/transformers/subscription.d.ts +4 -0
- package/dist/types/transformers/subscription.d.ts.map +1 -0
- package/dist/types/transformers/toggles/guild.d.ts +9 -1
- package/dist/types/transformers/toggles/guild.d.ts.map +1 -1
- package/dist/types/transformers/types.d.ts +73 -5
- package/dist/types/transformers/types.d.ts.map +1 -1
- package/dist/types/transformers.d.ts +30 -2
- package/dist/types/transformers.d.ts.map +1 -1
- package/dist/types/typings.d.ts +8 -0
- package/dist/types/typings.d.ts.map +1 -1
- package/package.json +11 -11
|
@@ -33,6 +33,7 @@ const featureNames = [
|
|
|
33
33
|
'invitesDisabled',
|
|
34
34
|
'inviteSplash',
|
|
35
35
|
'memberVerificationGateEnabled',
|
|
36
|
+
'moreSoundboard',
|
|
36
37
|
'moreStickers',
|
|
37
38
|
'news',
|
|
38
39
|
'partnered',
|
|
@@ -54,7 +55,7 @@ const GuildToggle = {
|
|
|
54
55
|
/** Whether this guild is unavailable due to an outage */ unavailable: 1n << 3n,
|
|
55
56
|
/** Whether the guild has the boost progress bar enabled */ premiumProgressBarEnabled: 1n << 4n,
|
|
56
57
|
// GUILD FEATURES ARE BELOW THIS
|
|
57
|
-
// MISSING VALUES IN THE BITFIELD:
|
|
58
|
+
// MISSING VALUES IN THE BITFIELD: 26, 35+
|
|
58
59
|
/** Whether the guild has access to set an animated guild banner image */ animatedBanner: 1n << 11n,
|
|
59
60
|
/** Whether the guild has access to set an animated guild icon */ animatedIcon: 1n << 16n,
|
|
60
61
|
/** Whether the guild is using the old permissions configuration behavior */ applicationCommandPermissionsV2: 1n << 14n,
|
|
@@ -69,6 +70,7 @@ const GuildToggle = {
|
|
|
69
70
|
/** Whether the guild has paused invites, preventing new users from joining */ invitesDisabled: 1n << 29n,
|
|
70
71
|
/** Whether the guild has access to set an invite splash background */ inviteSplash: 1n << 5n,
|
|
71
72
|
/** Whether the guild has enabled [Membership Screening](https://discord.com/developers/docs/resources/guild#membership-screening-object) */ memberVerificationGateEnabled: 1n << 19n,
|
|
73
|
+
/** Whether the guild has more soundboard sound slot */ moreSoundboard: 1n << 24n,
|
|
72
74
|
/** Whether the guild has increased custom sticker slots */ moreStickers: 1n << 23n,
|
|
73
75
|
/** Whether the guild has access to create news channels */ news: 1n << 12n,
|
|
74
76
|
/** Whether the guild is partnered */ partnered: 1n << 9n,
|
|
@@ -77,6 +79,7 @@ const GuildToggle = {
|
|
|
77
79
|
/** Whether the guild is able to set role icons */ roleIcons: 1n << 27n,
|
|
78
80
|
/** Whether the guild has role subscriptions that can be purchased. */ roleSubscriptionsAvailableForPurchase: 1n << 33n,
|
|
79
81
|
/** Whether the guild has enabled role subscriptions. */ roleSubscriptionsEnabled: 1n << 34n,
|
|
82
|
+
/** Whether the guild has created soundboard sounds. */ soundboard: 1n << 25n,
|
|
80
83
|
/** Whether the guild has enabled ticketed events */ ticketedEventsEnabled: 1n << 21n,
|
|
81
84
|
/** Whether the guild has access to set a vanity URL */ vanityUrl: 1n << 7n,
|
|
82
85
|
/** Whether the guild is verified */ verified: 1n << 8n,
|
|
@@ -110,6 +113,7 @@ let GuildToggles = class GuildToggles extends _ToggleBitfield.ToggleBitfieldBigi
|
|
|
110
113
|
if (guild.features.includes(_types.GuildFeatures.InvitesDisabled)) this.add(GuildToggle.invitesDisabled);
|
|
111
114
|
if (guild.features.includes(_types.GuildFeatures.InviteSplash)) this.add(GuildToggle.inviteSplash);
|
|
112
115
|
if (guild.features.includes(_types.GuildFeatures.MemberVerificationGateEnabled)) this.add(GuildToggle.memberVerificationGateEnabled);
|
|
116
|
+
if (guild.features.includes(_types.GuildFeatures.MoreSoundboard)) this.add(GuildToggle.moreSoundboard);
|
|
113
117
|
if (guild.features.includes(_types.GuildFeatures.MoreStickers)) this.add(GuildToggle.moreStickers);
|
|
114
118
|
if (guild.features.includes(_types.GuildFeatures.News)) this.add(GuildToggle.news);
|
|
115
119
|
if (guild.features.includes(_types.GuildFeatures.Partnered)) this.add(GuildToggle.partnered);
|
|
@@ -118,6 +122,7 @@ let GuildToggles = class GuildToggles extends _ToggleBitfield.ToggleBitfieldBigi
|
|
|
118
122
|
if (guild.features.includes(_types.GuildFeatures.RoleIcons)) this.add(GuildToggle.roleIcons);
|
|
119
123
|
if (guild.features.includes(_types.GuildFeatures.RoleSubscriptionsAvailableForPurchase)) this.add(GuildToggle.roleSubscriptionsAvailableForPurchase);
|
|
120
124
|
if (guild.features.includes(_types.GuildFeatures.RoleSubscriptionsEnabled)) this.add(GuildToggle.roleSubscriptionsEnabled);
|
|
125
|
+
if (guild.features.includes(_types.GuildFeatures.Soundboard)) this.add(GuildToggle.soundboard);
|
|
121
126
|
if (guild.features.includes(_types.GuildFeatures.TicketedEventsEnabled)) this.add(GuildToggle.ticketedEventsEnabled);
|
|
122
127
|
if (guild.features.includes(_types.GuildFeatures.VanityUrl)) this.add(GuildToggle.vanityUrl);
|
|
123
128
|
if (guild.features.includes(_types.GuildFeatures.Verified)) this.add(GuildToggle.verified);
|
|
@@ -194,6 +199,9 @@ let GuildToggles = class GuildToggles extends _ToggleBitfield.ToggleBitfieldBigi
|
|
|
194
199
|
/** Whether the guild has enabled [Membership Screening](https://discord.com/developers/docs/resources/guild#membership-screening-object) */ get memberVerificationGateEnabled() {
|
|
195
200
|
return this.has('memberVerificationGateEnabled');
|
|
196
201
|
}
|
|
202
|
+
/** Whether the guild has more soundboard sound slot */ get moreSoundboard() {
|
|
203
|
+
return this.has('moreSoundboard');
|
|
204
|
+
}
|
|
197
205
|
/** Whether the guild can be previewed before joining via Membership Screening or the directory */ get previewEnabled() {
|
|
198
206
|
return this.has('previewEnabled');
|
|
199
207
|
}
|
|
@@ -230,6 +238,9 @@ let GuildToggles = class GuildToggles extends _ToggleBitfield.ToggleBitfieldBigi
|
|
|
230
238
|
/** Whether the guild has enabled role subscriptions. */ get roleSubscriptionsEnabled() {
|
|
231
239
|
return this.has('roleSubscriptionsEnabled');
|
|
232
240
|
}
|
|
241
|
+
/** Whether the guild has created soundboard sounds. */ get soundboard() {
|
|
242
|
+
return this.has('soundboard');
|
|
243
|
+
}
|
|
233
244
|
/** Checks whether or not the permissions exist in this */ has(permissions) {
|
|
234
245
|
if (!Array.isArray(permissions)) return super.contains(GuildToggle[permissions]);
|
|
235
246
|
return super.contains(permissions.reduce((a, b)=>a |= GuildToggle[b], 0n));
|
|
@@ -243,4 +254,4 @@ let GuildToggles = class GuildToggles extends _ToggleBitfield.ToggleBitfieldBigi
|
|
|
243
254
|
}
|
|
244
255
|
};
|
|
245
256
|
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy9ndWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERpc2NvcmRHdWlsZCwgR3VpbGRGZWF0dXJlcyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGRCaWdpbnQgfSBmcm9tICcuL1RvZ2dsZUJpdGZpZWxkLmpzJ1xuXG5jb25zdCBmZWF0dXJlTmFtZXMgPSBbXG4gICdhbmltYXRlZEJhbm5lcicsXG4gICdhbmltYXRlZEljb24nLFxuICAnYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNWMicsXG4gICdhdXRvTW9kZXJhdGlvbicsXG4gICdiYW5uZXInLFxuICAnY29tbXVuaXR5JyxcbiAgJ2NyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsJyxcbiAgJ2NyZWF0b3JTdG9yZVBhZ2UnLFxuICAnZGV2ZWxvcGVyU3VwcG9ydFNlcnZlcicsXG4gICdkaXNjb3ZlcmFibGUnLFxuICAnZmVhdHVyYWJsZScsXG4gICdpbnZpdGVzRGlzYWJsZWQnLFxuICAnaW52aXRlU3BsYXNoJyxcbiAgJ21lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkJyxcbiAgJ21vcmVTdGlja2VycycsXG4gICduZXdzJyxcbiAgJ3BhcnRuZXJlZCcsXG4gICdwcmV2aWV3RW5hYmxlZCcsXG4gICdyYWlkQWxlcnRzRGlzYWJsZWQnLFxuICAncm9sZUljb25zJyxcbiAgJ3JvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UnLFxuICAncm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkJyxcbiAgJ3RpY2tldGVkRXZlbnRzRW5hYmxlZCcsXG4gICd2YW5pdHlVcmwnLFxuICAndmVyaWZpZWQnLFxuICAndmlwUmVnaW9ucycsXG4gICd3ZWxjb21lU2NyZWVuRW5hYmxlZCcsXG5dIGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBHdWlsZFRvZ2dsZSA9IHtcbiAgLyoqIFdoZXRoZXIgdGhlIGJvdCBpcyB0aGUgb3duZXIgb2YgdGhlIGd1aWxkICovXG4gIG93bmVyOiAxbiA8PCAwbixcbiAgLyoqIFdoZXRoZXIgdGhlIHNlcnZlciB3aWRnZXQgaXMgZW5hYmxlZCAqL1xuICB3aWRnZXRFbmFibGVkOiAxbiA8PCAxbixcbiAgLyoqIFdoZXRoZXIgdGhpcyBpcyBjb25zaWRlcmVkIGEgbGFyZ2UgZ3VpbGQgKi9cbiAgbGFyZ2U6IDFuIDw8IDJuLFxuICAvKiogV2hldGhlciB0aGlzIGd1aWxkIGlzIHVuYXZhaWxhYmxlIGR1ZSB0byBhbiBvdXRhZ2UgKi9cbiAgdW5hdmFpbGFibGU6IDFuIDw8IDNuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIHRoZSBib29zdCBwcm9ncmVzcyBiYXIgZW5hYmxlZCAqL1xuICBwcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkOiAxbiA8PCA0bixcblxuICAvLyBHVUlMRCBGRUFUVVJFUyBBUkUgQkVMT1cgVEhJU1xuICAvLyBNSVNTSU5HIFZBTFVFUyBJTiBUSEUgQklURklFTEQ6IDI0LCAyNSwgMjZcblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgYW4gYW5pbWF0ZWQgZ3VpbGQgYmFubmVyIGltYWdlICovXG4gIGFuaW1hdGVkQmFubmVyOiAxbiA8PCAxMW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhbiBhbmltYXRlZCBndWlsZCBpY29uICovXG4gIGFuaW1hdGVkSWNvbjogMW4gPDwgMTZuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaXMgdXNpbmcgdGhlIG9sZCBwZXJtaXNzaW9ucyBjb25maWd1cmF0aW9uIGJlaGF2aW9yICovXG4gIGFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVjI6IDFuIDw8IDE0bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBzZXQgdXAgYXV0byBtb2RlcmF0aW9uIHJ1bGVzICovXG4gIGF1dG9Nb2RlcmF0aW9uOiAxbiA8PCAyOG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhIGd1aWxkIGJhbm5lciBpbWFnZSAqL1xuICBiYW5uZXI6IDFuIDw8IDE3bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGNhbiBlbmFibGUgd2VsY29tZSBzY3JlZW4sIE1lbWJlcnNoaXAgU2NyZWVuaW5nLCBzdGFnZSBjaGFubmVscyBhbmQgZGlzY292ZXJ5LCBhbmQgcmVjZWl2ZXMgY29tbXVuaXR5IHVwZGF0ZXMgKi9cbiAgY29tbXVuaXR5OiAxbiA8PCAxMG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCBtb25ldGl6YXRpb24uICovXG4gIGNyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsOiAxbiA8PCAzMW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCB0aGUgcm9sZSBzdWJzY3JpcHRpb24gcHJvbW8gcGFnZS4gKi9cbiAgY3JlYXRvclN0b3JlUGFnZTogMW4gPDwgMzJuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGJlZW4gc2V0IGFzIGEgc3VwcG9ydCBzZXJ2ZXIgb24gdGhlIEFwcCBEaXJlY3RvcnkgKi9cbiAgZGV2ZWxvcGVyU3VwcG9ydFNlcnZlcjogMW4gPDwgMzBuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaXMgYWJsZSB0byBiZSBkaXNjb3ZlcmVkIGluIHRoZSBkaXJlY3RvcnkgKi9cbiAgZGlzY292ZXJhYmxlOiAxbiA8PCAxM24sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyBhYmxlIHRvIGJlIGZlYXR1cmVkIGluIHRoZSBkaXJlY3RvcnkgKi9cbiAgZmVhdHVyYWJsZTogMW4gPDwgMTVuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIHBhdXNlZCBpbnZpdGVzLCBwcmV2ZW50aW5nIG5ldyB1c2VycyBmcm9tIGpvaW5pbmcgKi9cbiAgaW52aXRlc0Rpc2FibGVkOiAxbiA8PCAyOW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhbiBpbnZpdGUgc3BsYXNoIGJhY2tncm91bmQgKi9cbiAgaW52aXRlU3BsYXNoOiAxbiA8PCA1bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIFtNZW1iZXJzaGlwIFNjcmVlbmluZ10oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvcmVzb3VyY2VzL2d1aWxkI21lbWJlcnNoaXAtc2NyZWVuaW5nLW9iamVjdCkgKi9cbiAgbWVtYmVyVmVyaWZpY2F0aW9uR2F0ZUVuYWJsZWQ6IDFuIDw8IDE5bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBpbmNyZWFzZWQgY3VzdG9tIHN0aWNrZXIgc2xvdHMgKi9cbiAgbW9yZVN0aWNrZXJzOiAxbiA8PCAyM24sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIGNyZWF0ZSBuZXdzIGNoYW5uZWxzICovXG4gIG5ld3M6IDFuIDw8IDEybixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIHBhcnRuZXJlZCAqL1xuICBwYXJ0bmVyZWQ6IDFuIDw8IDluLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgY2FuIGJlIHByZXZpZXdlZCBiZWZvcmUgam9pbmluZyB2aWEgTWVtYmVyc2hpcCBTY3JlZW5pbmcgb3IgdGhlIGRpcmVjdG9yeSAqL1xuICBwcmV2aWV3RW5hYmxlZDogMW4gPDwgMjBuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGRpc2FibGVkIGFsZXJ0cyBmb3Igam9pbiByYWlkcyBpbiB0aGUgY29uZmlndXJlZCBzYWZldHkgYWxlcnRzIGNoYW5uZWwgKi9cbiAgcmFpZEFsZXJ0c0Rpc2FibGVkOiAxbiA8PCAyMm4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyBhYmxlIHRvIHNldCByb2xlIGljb25zICovXG4gIHJvbGVJY29uczogMW4gPDwgMjduLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIHJvbGUgc3Vic2NyaXB0aW9ucyB0aGF0IGNhbiBiZSBwdXJjaGFzZWQuICovXG4gIHJvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2U6IDFuIDw8IDMzbixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIHJvbGUgc3Vic2NyaXB0aW9ucy4gKi9cbiAgcm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkOiAxbiA8PCAzNG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCB0aWNrZXRlZCBldmVudHMgKi9cbiAgdGlja2V0ZWRFdmVudHNFbmFibGVkOiAxbiA8PCAyMW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhIHZhbml0eSBVUkwgKi9cbiAgdmFuaXR5VXJsOiAxbiA8PCA3bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIHZlcmlmaWVkICovXG4gIHZlcmlmaWVkOiAxbiA8PCA4bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IDM4NCBrYnBzIGJpdHJhdGUgaW4gdm9pY2UgKHByZXZpb3VzbHkgVklQIHZvaWNlIHNlcnZlcnMpICovXG4gIHZpcFJlZ2lvbnM6IDFuIDw8IDZuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGVuYWJsZWQgdGhlIHdlbGNvbWUgc2NyZWVuICovXG4gIHdlbGNvbWVTY3JlZW5FbmFibGVkOiAxbiA8PCAxOG4sXG59XG5cbmV4cG9ydCBjbGFzcyBHdWlsZFRvZ2dsZXMgZXh0ZW5kcyBUb2dnbGVCaXRmaWVsZEJpZ2ludCB7XG4gIGNvbnN0cnVjdG9yKGd1aWxkT3JUb2dnbGVzQmlnaW50OiBEaXNjb3JkR3VpbGQgfCBiaWdpbnQpIHtcbiAgICBzdXBlcigpXG5cbiAgICBpZiAodHlwZW9mIGd1aWxkT3JUb2dnbGVzQmlnaW50ID09PSAnYmlnaW50JykgdGhpcy5iaXRmaWVsZCA9IGd1aWxkT3JUb2dnbGVzQmlnaW50XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBndWlsZCA9IGd1aWxkT3JUb2dnbGVzQmlnaW50XG4gICAgICAvLyBDYXVzZSBkaXNjb3JkIGJlIHNtYXJ0IGxpa2UgdGhhdFxuICAgICAgaWYgKCFndWlsZC5mZWF0dXJlcykgZ3VpbGQuZmVhdHVyZXMgPSBbXVxuXG4gICAgICBpZiAoZ3VpbGQub3duZXIpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLm93bmVyKVxuICAgICAgaWYgKGd1aWxkLndpZGdldF9lbmFibGVkKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS53aWRnZXRFbmFibGVkKVxuICAgICAgaWYgKGd1aWxkLmxhcmdlKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5sYXJnZSlcbiAgICAgIGlmIChndWlsZC51bmF2YWlsYWJsZSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUudW5hdmFpbGFibGUpXG4gICAgICBpZiAoZ3VpbGQucHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZCkgdGhpcy5hZGQoR3VpbGRUb2dnbGUucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZClcblxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuQW5pbWF0ZWRCYW5uZXIpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5hbmltYXRlZEJhbm5lcilcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkFuaW1hdGVkSWNvbikpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmFuaW1hdGVkSWNvbilcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVjIpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5hcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1YyKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuQXV0b01vZGVyYXRpb24pKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5hdXRvTW9kZXJhdGlvbilcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkJhbm5lcikpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmJhbm5lcilcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkNvbW11bml0eSkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmNvbW11bml0eSlcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkNyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuY3JlYXRvck1vbmV0aXphYmxlUHJvdmlzaW9uYWwpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5DcmVhdG9yU3RvcmVQYWdlKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuY3JlYXRvclN0b3JlUGFnZSlcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkRldmVsb3BlclN1cHBvcnRTZXJ2ZXIpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5kZXZlbG9wZXJTdXBwb3J0U2VydmVyKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuRGlzY292ZXJhYmxlKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuZGlzY292ZXJhYmxlKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuRmVhdHVyYWJsZSkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmZlYXR1cmFibGUpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5JbnZpdGVzRGlzYWJsZWQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5pbnZpdGVzRGlzYWJsZWQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5JbnZpdGVTcGxhc2gpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5pbnZpdGVTcGxhc2gpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5NZW1iZXJWZXJpZmljYXRpb25HYXRlRW5hYmxlZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLm1lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuTW9yZVN0aWNrZXJzKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUubW9yZVN0aWNrZXJzKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuTmV3cykpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLm5ld3MpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5QYXJ0bmVyZWQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5wYXJ0bmVyZWQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5QcmV2aWV3RW5hYmxlZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnByZXZpZXdFbmFibGVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuUmFpZEFsZXJ0c0Rpc2FibGVkKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUucmFpZEFsZXJ0c0Rpc2FibGVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuUm9sZUljb25zKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUucm9sZUljb25zKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuUm9sZVN1YnNjcmlwdGlvbnNBdmFpbGFibGVGb3JQdXJjaGFzZSkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnJvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5Sb2xlU3Vic2NyaXB0aW9uc0VuYWJsZWQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5yb2xlU3Vic2NyaXB0aW9uc0VuYWJsZWQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5UaWNrZXRlZEV2ZW50c0VuYWJsZWQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS50aWNrZXRlZEV2ZW50c0VuYWJsZWQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5WYW5pdHlVcmwpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS52YW5pdHlVcmwpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5WZXJpZmllZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnZlcmlmaWVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuVmlwUmVnaW9ucykpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnZpcFJlZ2lvbnMpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5XZWxjb21lU2NyZWVuRW5hYmxlZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLndlbGNvbWVTY3JlZW5FbmFibGVkKVxuICAgIH1cbiAgfVxuXG4gIGdldCBmZWF0dXJlcygpOiBHdWlsZEZlYXR1cmVLZXlzW10ge1xuICAgIGNvbnN0IGZlYXR1cmVzOiBHdWlsZEZlYXR1cmVLZXlzW10gPSBbXVxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKEd1aWxkVG9nZ2xlKSkge1xuICAgICAgaWYgKCFmZWF0dXJlTmFtZXMuaW5jbHVkZXMoa2V5IGFzIEd1aWxkRmVhdHVyZUtleXMpKSBjb250aW51ZVxuICAgICAgaWYgKCFzdXBlci5jb250YWlucyhHdWlsZFRvZ2dsZVtrZXkgYXMgR3VpbGRUb2dnbGVLZXlzXSkpIGNvbnRpbnVlXG5cbiAgICAgIGZlYXR1cmVzLnB1c2goa2V5IGFzIEd1aWxkRmVhdHVyZUtleXMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGZlYXR1cmVzXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgYm90IGlzIHRoZSBvd25lciBvZiB0aGUgZ3VpbGQgKi9cbiAgZ2V0IG93bmVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnb3duZXInKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHNlcnZlciB3aWRnZXQgaXMgZW5hYmxlZCAqL1xuICBnZXQgd2lkZ2V0RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3dpZGdldEVuYWJsZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBpcyBjb25zaWRlcmVkIGEgbGFyZ2UgZ3VpbGQgKi9cbiAgZ2V0IGxhcmdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnbGFyZ2UnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBndWlsZCBpcyB1bmF2YWlsYWJsZSBkdWUgdG8gYW4gb3V0YWdlICovXG4gIGdldCB1bmF2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3VuYXZhaWxhYmxlJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgdGhlIGJvb3N0IHByb2dyZXNzIGJhciBlbmFibGVkICovXG4gIGdldCBwcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygncHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgYW4gaW52aXRlIHNwbGFzaCBiYWNrZ3JvdW5kICovXG4gIGdldCBpbnZpdGVTcGxhc2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdpbnZpdGVTcGxhc2gnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IDM4NCBrYnBzIGJpdHJhdGUgaW4gdm9pY2UgKHByZXZpb3VzbHkgVklQIHZvaWNlIHNlcnZlcnMpICovXG4gIGdldCB2aXBSZWdpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygndmlwUmVnaW9ucycpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgYSB2YW5pdHkgVVJMICovXG4gIGdldCB2YW5pdHlVcmwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCd2YW5pdHlVcmwnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIHZlcmlmaWVkICovXG4gIGdldCB2ZXJpZmllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3ZlcmlmaWVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyBwYXJ0bmVyZWQgKi9cbiAgZ2V0IHBhcnRuZXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3BhcnRuZXJlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgY2FuIGVuYWJsZSB3ZWxjb21lIHNjcmVlbiwgTWVtYmVyc2hpcCBTY3JlZW5pbmcsIHN0YWdlIGNoYW5uZWxzIGFuZCBkaXNjb3ZlcnksIGFuZCByZWNlaXZlcyBjb21tdW5pdHkgdXBkYXRlcyAqL1xuICBnZXQgY29tbXVuaXR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnY29tbXVuaXR5JylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBHdWlsZCBoYXMgYmVlbiBzZXQgYXMgYSBzdXBwb3J0IHNlcnZlciBvbiB0aGUgQXBwIERpcmVjdG9yeSAqL1xuICBnZXQgZGV2ZWxvcGVyU3VwcG9ydFNlcnZlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2RldmVsb3BlclN1cHBvcnRTZXJ2ZXInKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IGFuIGFuaW1hdGVkIGd1aWxkIGJhbm5lciBpbWFnZSAqL1xuICBnZXQgYW5pbWF0ZWRCYW5uZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdhbmltYXRlZEJhbm5lcicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBjcmVhdGUgbmV3cyBjaGFubmVscyAqL1xuICBnZXQgbmV3cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ25ld3MnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIGFibGUgdG8gYmUgZGlzY292ZXJlZCBpbiB0aGUgZGlyZWN0b3J5ICovXG4gIGdldCBkaXNjb3ZlcmFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdkaXNjb3ZlcmFibGUnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIGFibGUgdG8gYmUgZmVhdHVyZWQgaW4gdGhlIGRpcmVjdG9yeSAqL1xuICBnZXQgZmVhdHVyYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2ZlYXR1cmFibGUnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IGFuIGFuaW1hdGVkIGd1aWxkIGljb24gKi9cbiAgZ2V0IGFuaW1hdGVkSWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2FuaW1hdGVkSWNvbicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgYSBndWlsZCBiYW5uZXIgaW1hZ2UgKi9cbiAgZ2V0IGJhbm5lcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2Jhbm5lcicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGVuYWJsZWQgdGhlIHdlbGNvbWUgc2NyZWVuICovXG4gIGdldCB3ZWxjb21lU2NyZWVuRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3dlbGNvbWVTY3JlZW5FbmFibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCBbTWVtYmVyc2hpcCBTY3JlZW5pbmddKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3Jlc291cmNlcy9ndWlsZCNtZW1iZXJzaGlwLXNjcmVlbmluZy1vYmplY3QpICovXG4gIGdldCBtZW1iZXJWZXJpZmljYXRpb25HYXRlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ21lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBjYW4gYmUgcHJldmlld2VkIGJlZm9yZSBqb2luaW5nIHZpYSBNZW1iZXJzaGlwIFNjcmVlbmluZyBvciB0aGUgZGlyZWN0b3J5ICovXG4gIGdldCBwcmV2aWV3RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3ByZXZpZXdFbmFibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCB0aWNrZXRlZCBldmVudHMgKi9cbiAgZ2V0IHRpY2tldGVkRXZlbnRzRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3RpY2tldGVkRXZlbnRzRW5hYmxlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGluY3JlYXNlZCBjdXN0b20gc3RpY2tlciBzbG90cyAqL1xuICBnZXQgbW9yZVN0aWNrZXJzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnbW9yZVN0aWNrZXJzJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyBhYmxlIHRvIHNldCByb2xlIGljb25zICovXG4gIGdldCByb2xlSWNvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdyb2xlSWNvbnMnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBzZXQgdXAgYXV0byBtb2RlcmF0aW9uIHJ1bGVzICovXG4gIGdldCBhdXRvTW9kZXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2F1dG9Nb2RlcmF0aW9uJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgcGF1c2VkIGludml0ZXMsIHByZXZlbnRpbmcgbmV3IHVzZXJzIGZyb20gam9pbmluZyAqL1xuICBnZXQgaW52aXRlc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnaW52aXRlc0Rpc2FibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyB1c2luZyB0aGUgb2xkIHBlcm1pc3Npb25zIGNvbmZpZ3VyYXRpb24gYmVoYXZpb3IgKi9cbiAgZ2V0IGFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVjIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdhcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1YyJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCBtb25ldGl6YXRpb24uICovXG4gIGdldCBjcmVhdG9yTW9uZXRpemFibGVQcm92aXNpb25hbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2NyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCB0aGUgcm9sZSBzdWJzY3JpcHRpb24gcHJvbW8gcGFnZS4gKi9cbiAgZ2V0IGNyZWF0b3JTdG9yZVBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdjcmVhdG9yU3RvcmVQYWdlJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZGlzYWJsZWQgYWxlcnRzIGZvciBqb2luIHJhaWRzIGluIHRoZSBjb25maWd1cmVkIHNhZmV0eSBhbGVydHMgY2hhbm5lbCAqL1xuICBnZXQgcmFpZEFsZXJ0c0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygncmFpZEFsZXJ0c0Rpc2FibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgcm9sZSBzdWJzY3JpcHRpb25zIHRoYXQgY2FuIGJlIHB1cmNoYXNlZC4gKi9cbiAgZ2V0IHJvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdyb2xlU3Vic2NyaXB0aW9uc0F2YWlsYWJsZUZvclB1cmNoYXNlJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCByb2xlIHN1YnNjcmlwdGlvbnMuICovXG4gIGdldCByb2xlU3Vic2NyaXB0aW9uc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdyb2xlU3Vic2NyaXB0aW9uc0VuYWJsZWQnKVxuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGUgcGVybWlzc2lvbnMgZXhpc3QgaW4gdGhpcyAqL1xuICBoYXMocGVybWlzc2lvbnM6IEd1aWxkVG9nZ2xlS2V5cyB8IEd1aWxkVG9nZ2xlS2V5c1tdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBlcm1pc3Npb25zKSkgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKEd1aWxkVG9nZ2xlW3Blcm1pc3Npb25zXSlcblxuICAgIHJldHVybiBzdXBlci5jb250YWlucyhwZXJtaXNzaW9ucy5yZWR1Y2UoKGEsIGIpID0+IChhIHw9IEd1aWxkVG9nZ2xlW2JdKSwgMG4pKVxuICB9XG5cbiAgLyoqIExpc3RzIGFsbCB0aGUgdG9nZ2xlcyBmb3IgdGhlIHJvbGUgYW5kIHdoZXRoZXIgb3Igbm90IGVhY2ggaXMgdHJ1ZSBvciBmYWxzZS4gKi9cbiAgbGlzdCgpOiBSZWNvcmQ8R3VpbGRUb2dnbGVLZXlzLCBib29sZWFuPiB7XG4gICAgY29uc3QganNvbjogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fVxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKEd1aWxkVG9nZ2xlKSkge1xuICAgICAganNvbltrZXldID0gc3VwZXIuY29udGFpbnModmFsdWUpXG4gICAgfVxuXG4gICAgcmV0dXJuIGpzb24gYXMgUmVjb3JkPEd1aWxkVG9nZ2xlS2V5cywgYm9vbGVhbj5cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBHdWlsZFRvZ2dsZUtleXMgPSBrZXlvZiB0eXBlb2YgR3VpbGRUb2dnbGVcblxuZXhwb3J0IHR5cGUgR3VpbGRGZWF0dXJlS2V5cyA9ICh0eXBlb2YgZmVhdHVyZU5hbWVzKVtudW1iZXJdXG4iXSwibmFtZXMiOlsiR3VpbGRUb2dnbGUiLCJHdWlsZFRvZ2dsZXMiLCJmZWF0dXJlTmFtZXMiLCJvd25lciIsIndpZGdldEVuYWJsZWQiLCJsYXJnZSIsInVuYXZhaWxhYmxlIiwicHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCIsImFuaW1hdGVkQmFubmVyIiwiYW5pbWF0ZWRJY29uIiwiYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNWMiIsImF1dG9Nb2RlcmF0aW9uIiwiYmFubmVyIiwiY29tbXVuaXR5IiwiY3JlYXRvck1vbmV0aXphYmxlUHJvdmlzaW9uYWwiLCJjcmVhdG9yU3RvcmVQYWdlIiwiZGV2ZWxvcGVyU3VwcG9ydFNlcnZlciIsImRpc2NvdmVyYWJsZSIsImZlYXR1cmFibGUiLCJpbnZpdGVzRGlzYWJsZWQiLCJpbnZpdGVTcGxhc2giLCJtZW1iZXJWZXJpZmljYXRpb25HYXRlRW5hYmxlZCIsIm1vcmVTdGlja2VycyIsIm5ld3MiLCJwYXJ0bmVyZWQiLCJwcmV2aWV3RW5hYmxlZCIsInJhaWRBbGVydHNEaXNhYmxlZCIsInJvbGVJY29ucyIsInJvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UiLCJyb2xlU3Vic2NyaXB0aW9uc0VuYWJsZWQiLCJ0aWNrZXRlZEV2ZW50c0VuYWJsZWQiLCJ2YW5pdHlVcmwiLCJ2ZXJpZmllZCIsInZpcFJlZ2lvbnMiLCJ3ZWxjb21lU2NyZWVuRW5hYmxlZCIsIlRvZ2dsZUJpdGZpZWxkQmlnaW50IiwiY29uc3RydWN0b3IiLCJndWlsZE9yVG9nZ2xlc0JpZ2ludCIsImJpdGZpZWxkIiwiZ3VpbGQiLCJmZWF0dXJlcyIsImFkZCIsIndpZGdldF9lbmFibGVkIiwicHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZCIsImluY2x1ZGVzIiwiR3VpbGRGZWF0dXJlcyIsIkFuaW1hdGVkQmFubmVyIiwiQW5pbWF0ZWRJY29uIiwiQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNWMiIsIkF1dG9Nb2RlcmF0aW9uIiwiQmFubmVyIiwiQ29tbXVuaXR5IiwiQ3JlYXRvck1vbmV0aXphYmxlUHJvdmlzaW9uYWwiLCJDcmVhdG9yU3RvcmVQYWdlIiwiRGV2ZWxvcGVyU3VwcG9ydFNlcnZlciIsIkRpc2NvdmVyYWJsZSIsIkZlYXR1cmFibGUiLCJJbnZpdGVzRGlzYWJsZWQiLCJJbnZpdGVTcGxhc2giLCJNZW1iZXJWZXJpZmljYXRpb25HYXRlRW5hYmxlZCIsIk1vcmVTdGlja2VycyIsIk5ld3MiLCJQYXJ0bmVyZWQiLCJQcmV2aWV3RW5hYmxlZCIsIlJhaWRBbGVydHNEaXNhYmxlZCIsIlJvbGVJY29ucyIsIlJvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UiLCJSb2xlU3Vic2NyaXB0aW9uc0VuYWJsZWQiLCJUaWNrZXRlZEV2ZW50c0VuYWJsZWQiLCJWYW5pdHlVcmwiLCJWZXJpZmllZCIsIlZpcFJlZ2lvbnMiLCJXZWxjb21lU2NyZWVuRW5hYmxlZCIsImtleSIsIk9iamVjdCIsImtleXMiLCJjb250YWlucyIsInB1c2giLCJoYXMiLCJwZXJtaXNzaW9ucyIsIkFycmF5IiwiaXNBcnJheSIsInJlZHVjZSIsImEiLCJiIiwibGlzdCIsImpzb24iLCJ2YWx1ZSIsImVudHJpZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBaUNhQSxXQUFXO2VBQVhBOztJQXVFQUMsWUFBWTtlQUFaQTs7O3VCQXhHb0M7Z0NBQ1o7QUFFckMsTUFBTUMsZUFBZTtJQUNuQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVNLE1BQU1GLGNBQWM7SUFDekIsOENBQThDLEdBQzlDRyxPQUFPLEVBQUUsSUFBSSxFQUFFO0lBQ2YseUNBQXlDLEdBQ3pDQyxlQUFlLEVBQUUsSUFBSSxFQUFFO0lBQ3ZCLDZDQUE2QyxHQUM3Q0MsT0FBTyxFQUFFLElBQUksRUFBRTtJQUNmLHVEQUF1RCxHQUN2REMsYUFBYSxFQUFFLElBQUksRUFBRTtJQUNyQix5REFBeUQsR0FDekRDLDJCQUEyQixFQUFFLElBQUksRUFBRTtJQUVuQyxnQ0FBZ0M7SUFDaEMsNkNBQTZDO0lBRTdDLHVFQUF1RSxHQUN2RUMsZ0JBQWdCLEVBQUUsSUFBSSxHQUFHO0lBQ3pCLCtEQUErRCxHQUMvREMsY0FBYyxFQUFFLElBQUksR0FBRztJQUN2QiwwRUFBMEUsR0FDMUVDLGlDQUFpQyxFQUFFLElBQUksR0FBRztJQUMxQyx1REFBdUQsR0FDdkRDLGdCQUFnQixFQUFFLElBQUksR0FBRztJQUN6Qiw2REFBNkQsR0FDN0RDLFFBQVEsRUFBRSxJQUFJLEdBQUc7SUFDakIsb0lBQW9JLEdBQ3BJQyxXQUFXLEVBQUUsSUFBSSxHQUFHO0lBQ3BCLGdEQUFnRCxHQUNoREMsK0JBQStCLEVBQUUsSUFBSSxHQUFHO0lBQ3hDLG9FQUFvRSxH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
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy9ndWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERpc2NvcmRHdWlsZCwgR3VpbGRGZWF0dXJlcyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGRCaWdpbnQgfSBmcm9tICcuL1RvZ2dsZUJpdGZpZWxkLmpzJ1xuXG5jb25zdCBmZWF0dXJlTmFtZXMgPSBbXG4gICdhbmltYXRlZEJhbm5lcicsXG4gICdhbmltYXRlZEljb24nLFxuICAnYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNWMicsXG4gICdhdXRvTW9kZXJhdGlvbicsXG4gICdiYW5uZXInLFxuICAnY29tbXVuaXR5JyxcbiAgJ2NyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsJyxcbiAgJ2NyZWF0b3JTdG9yZVBhZ2UnLFxuICAnZGV2ZWxvcGVyU3VwcG9ydFNlcnZlcicsXG4gICdkaXNjb3ZlcmFibGUnLFxuICAnZmVhdHVyYWJsZScsXG4gICdpbnZpdGVzRGlzYWJsZWQnLFxuICAnaW52aXRlU3BsYXNoJyxcbiAgJ21lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkJyxcbiAgJ21vcmVTb3VuZGJvYXJkJyxcbiAgJ21vcmVTdGlja2VycycsXG4gICduZXdzJyxcbiAgJ3BhcnRuZXJlZCcsXG4gICdwcmV2aWV3RW5hYmxlZCcsXG4gICdyYWlkQWxlcnRzRGlzYWJsZWQnLFxuICAncm9sZUljb25zJyxcbiAgJ3JvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UnLFxuICAncm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkJyxcbiAgJ3RpY2tldGVkRXZlbnRzRW5hYmxlZCcsXG4gICd2YW5pdHlVcmwnLFxuICAndmVyaWZpZWQnLFxuICAndmlwUmVnaW9ucycsXG4gICd3ZWxjb21lU2NyZWVuRW5hYmxlZCcsXG5dIGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBHdWlsZFRvZ2dsZSA9IHtcbiAgLyoqIFdoZXRoZXIgdGhlIGJvdCBpcyB0aGUgb3duZXIgb2YgdGhlIGd1aWxkICovXG4gIG93bmVyOiAxbiA8PCAwbixcbiAgLyoqIFdoZXRoZXIgdGhlIHNlcnZlciB3aWRnZXQgaXMgZW5hYmxlZCAqL1xuICB3aWRnZXRFbmFibGVkOiAxbiA8PCAxbixcbiAgLyoqIFdoZXRoZXIgdGhpcyBpcyBjb25zaWRlcmVkIGEgbGFyZ2UgZ3VpbGQgKi9cbiAgbGFyZ2U6IDFuIDw8IDJuLFxuICAvKiogV2hldGhlciB0aGlzIGd1aWxkIGlzIHVuYXZhaWxhYmxlIGR1ZSB0byBhbiBvdXRhZ2UgKi9cbiAgdW5hdmFpbGFibGU6IDFuIDw8IDNuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIHRoZSBib29zdCBwcm9ncmVzcyBiYXIgZW5hYmxlZCAqL1xuICBwcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkOiAxbiA8PCA0bixcblxuICAvLyBHVUlMRCBGRUFUVVJFUyBBUkUgQkVMT1cgVEhJU1xuICAvLyBNSVNTSU5HIFZBTFVFUyBJTiBUSEUgQklURklFTEQ6IDI2LCAzNStcblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgYW4gYW5pbWF0ZWQgZ3VpbGQgYmFubmVyIGltYWdlICovXG4gIGFuaW1hdGVkQmFubmVyOiAxbiA8PCAxMW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhbiBhbmltYXRlZCBndWlsZCBpY29uICovXG4gIGFuaW1hdGVkSWNvbjogMW4gPDwgMTZuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaXMgdXNpbmcgdGhlIG9sZCBwZXJtaXNzaW9ucyBjb25maWd1cmF0aW9uIGJlaGF2aW9yICovXG4gIGFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVjI6IDFuIDw8IDE0bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBzZXQgdXAgYXV0byBtb2RlcmF0aW9uIHJ1bGVzICovXG4gIGF1dG9Nb2RlcmF0aW9uOiAxbiA8PCAyOG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhIGd1aWxkIGJhbm5lciBpbWFnZSAqL1xuICBiYW5uZXI6IDFuIDw8IDE3bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGNhbiBlbmFibGUgd2VsY29tZSBzY3JlZW4sIE1lbWJlcnNoaXAgU2NyZWVuaW5nLCBzdGFnZSBjaGFubmVscyBhbmQgZGlzY292ZXJ5LCBhbmQgcmVjZWl2ZXMgY29tbXVuaXR5IHVwZGF0ZXMgKi9cbiAgY29tbXVuaXR5OiAxbiA8PCAxMG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCBtb25ldGl6YXRpb24uICovXG4gIGNyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsOiAxbiA8PCAzMW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCB0aGUgcm9sZSBzdWJzY3JpcHRpb24gcHJvbW8gcGFnZS4gKi9cbiAgY3JlYXRvclN0b3JlUGFnZTogMW4gPDwgMzJuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGJlZW4gc2V0IGFzIGEgc3VwcG9ydCBzZXJ2ZXIgb24gdGhlIEFwcCBEaXJlY3RvcnkgKi9cbiAgZGV2ZWxvcGVyU3VwcG9ydFNlcnZlcjogMW4gPDwgMzBuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaXMgYWJsZSB0byBiZSBkaXNjb3ZlcmVkIGluIHRoZSBkaXJlY3RvcnkgKi9cbiAgZGlzY292ZXJhYmxlOiAxbiA8PCAxM24sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyBhYmxlIHRvIGJlIGZlYXR1cmVkIGluIHRoZSBkaXJlY3RvcnkgKi9cbiAgZmVhdHVyYWJsZTogMW4gPDwgMTVuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIHBhdXNlZCBpbnZpdGVzLCBwcmV2ZW50aW5nIG5ldyB1c2VycyBmcm9tIGpvaW5pbmcgKi9cbiAgaW52aXRlc0Rpc2FibGVkOiAxbiA8PCAyOW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhbiBpbnZpdGUgc3BsYXNoIGJhY2tncm91bmQgKi9cbiAgaW52aXRlU3BsYXNoOiAxbiA8PCA1bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIFtNZW1iZXJzaGlwIFNjcmVlbmluZ10oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvcmVzb3VyY2VzL2d1aWxkI21lbWJlcnNoaXAtc2NyZWVuaW5nLW9iamVjdCkgKi9cbiAgbWVtYmVyVmVyaWZpY2F0aW9uR2F0ZUVuYWJsZWQ6IDFuIDw8IDE5bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBtb3JlIHNvdW5kYm9hcmQgc291bmQgc2xvdCAqL1xuICBtb3JlU291bmRib2FyZDogMW4gPDwgMjRuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGluY3JlYXNlZCBjdXN0b20gc3RpY2tlciBzbG90cyAqL1xuICBtb3JlU3RpY2tlcnM6IDFuIDw8IDIzbixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gY3JlYXRlIG5ld3MgY2hhbm5lbHMgKi9cbiAgbmV3czogMW4gPDwgMTJuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaXMgcGFydG5lcmVkICovXG4gIHBhcnRuZXJlZDogMW4gPDwgOW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBjYW4gYmUgcHJldmlld2VkIGJlZm9yZSBqb2luaW5nIHZpYSBNZW1iZXJzaGlwIFNjcmVlbmluZyBvciB0aGUgZGlyZWN0b3J5ICovXG4gIHByZXZpZXdFbmFibGVkOiAxbiA8PCAyMG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZGlzYWJsZWQgYWxlcnRzIGZvciBqb2luIHJhaWRzIGluIHRoZSBjb25maWd1cmVkIHNhZmV0eSBhbGVydHMgY2hhbm5lbCAqL1xuICByYWlkQWxlcnRzRGlzYWJsZWQ6IDFuIDw8IDIybixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIGFibGUgdG8gc2V0IHJvbGUgaWNvbnMgKi9cbiAgcm9sZUljb25zOiAxbiA8PCAyN24sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgcm9sZSBzdWJzY3JpcHRpb25zIHRoYXQgY2FuIGJlIHB1cmNoYXNlZC4gKi9cbiAgcm9sZVN1YnNjcmlwdGlvbnNBdmFpbGFibGVGb3JQdXJjaGFzZTogMW4gPDwgMzNuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGVuYWJsZWQgcm9sZSBzdWJzY3JpcHRpb25zLiAqL1xuICByb2xlU3Vic2NyaXB0aW9uc0VuYWJsZWQ6IDFuIDw8IDM0bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBjcmVhdGVkIHNvdW5kYm9hcmQgc291bmRzLiAqL1xuICBzb3VuZGJvYXJkOiAxbiA8PCAyNW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCB0aWNrZXRlZCBldmVudHMgKi9cbiAgdGlja2V0ZWRFdmVudHNFbmFibGVkOiAxbiA8PCAyMW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhIHZhbml0eSBVUkwgKi9cbiAgdmFuaXR5VXJsOiAxbiA8PCA3bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIHZlcmlmaWVkICovXG4gIHZlcmlmaWVkOiAxbiA8PCA4bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IDM4NCBrYnBzIGJpdHJhdGUgaW4gdm9pY2UgKHByZXZpb3VzbHkgVklQIHZvaWNlIHNlcnZlcnMpICovXG4gIHZpcFJlZ2lvbnM6IDFuIDw8IDZuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGVuYWJsZWQgdGhlIHdlbGNvbWUgc2NyZWVuICovXG4gIHdlbGNvbWVTY3JlZW5FbmFibGVkOiAxbiA8PCAxOG4sXG59XG5cbmV4cG9ydCBjbGFzcyBHdWlsZFRvZ2dsZXMgZXh0ZW5kcyBUb2dnbGVCaXRmaWVsZEJpZ2ludCB7XG4gIGNvbnN0cnVjdG9yKGd1aWxkT3JUb2dnbGVzQmlnaW50OiBEaXNjb3JkR3VpbGQgfCBiaWdpbnQpIHtcbiAgICBzdXBlcigpXG5cbiAgICBpZiAodHlwZW9mIGd1aWxkT3JUb2dnbGVzQmlnaW50ID09PSAnYmlnaW50JykgdGhpcy5iaXRmaWVsZCA9IGd1aWxkT3JUb2dnbGVzQmlnaW50XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBndWlsZCA9IGd1aWxkT3JUb2dnbGVzQmlnaW50XG4gICAgICAvLyBDYXVzZSBkaXNjb3JkIGJlIHNtYXJ0IGxpa2UgdGhhdFxuICAgICAgaWYgKCFndWlsZC5mZWF0dXJlcykgZ3VpbGQuZmVhdHVyZXMgPSBbXVxuXG4gICAgICBpZiAoZ3VpbGQub3duZXIpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLm93bmVyKVxuICAgICAgaWYgKGd1aWxkLndpZGdldF9lbmFibGVkKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS53aWRnZXRFbmFibGVkKVxuICAgICAgaWYgKGd1aWxkLmxhcmdlKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5sYXJnZSlcbiAgICAgIGlmIChndWlsZC51bmF2YWlsYWJsZSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUudW5hdmFpbGFibGUpXG4gICAgICBpZiAoZ3VpbGQucHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZCkgdGhpcy5hZGQoR3VpbGRUb2dnbGUucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZClcblxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuQW5pbWF0ZWRCYW5uZXIpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5hbmltYXRlZEJhbm5lcilcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkFuaW1hdGVkSWNvbikpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmFuaW1hdGVkSWNvbilcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVjIpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5hcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1YyKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuQXV0b01vZGVyYXRpb24pKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5hdXRvTW9kZXJhdGlvbilcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkJhbm5lcikpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmJhbm5lcilcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkNvbW11bml0eSkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmNvbW11bml0eSlcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkNyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuY3JlYXRvck1vbmV0aXphYmxlUHJvdmlzaW9uYWwpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5DcmVhdG9yU3RvcmVQYWdlKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuY3JlYXRvclN0b3JlUGFnZSlcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkRldmVsb3BlclN1cHBvcnRTZXJ2ZXIpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5kZXZlbG9wZXJTdXBwb3J0U2VydmVyKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuRGlzY292ZXJhYmxlKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuZGlzY292ZXJhYmxlKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuRmVhdHVyYWJsZSkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmZlYXR1cmFibGUpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5JbnZpdGVzRGlzYWJsZWQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5pbnZpdGVzRGlzYWJsZWQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5JbnZpdGVTcGxhc2gpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5pbnZpdGVTcGxhc2gpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5NZW1iZXJWZXJpZmljYXRpb25HYXRlRW5hYmxlZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLm1lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuTW9yZVNvdW5kYm9hcmQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5tb3JlU291bmRib2FyZClcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLk1vcmVTdGlja2VycykpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLm1vcmVTdGlja2VycylcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLk5ld3MpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5uZXdzKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuUGFydG5lcmVkKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUucGFydG5lcmVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuUHJldmlld0VuYWJsZWQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5wcmV2aWV3RW5hYmxlZClcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLlJhaWRBbGVydHNEaXNhYmxlZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnJhaWRBbGVydHNEaXNhYmxlZClcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLlJvbGVJY29ucykpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnJvbGVJY29ucylcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLlJvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5yb2xlU3Vic2NyaXB0aW9uc0F2YWlsYWJsZUZvclB1cmNoYXNlKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuUm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUucm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuU291bmRib2FyZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnNvdW5kYm9hcmQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5UaWNrZXRlZEV2ZW50c0VuYWJsZWQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS50aWNrZXRlZEV2ZW50c0VuYWJsZWQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5WYW5pdHlVcmwpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS52YW5pdHlVcmwpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5WZXJpZmllZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnZlcmlmaWVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuVmlwUmVnaW9ucykpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnZpcFJlZ2lvbnMpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5XZWxjb21lU2NyZWVuRW5hYmxlZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLndlbGNvbWVTY3JlZW5FbmFibGVkKVxuICAgIH1cbiAgfVxuXG4gIGdldCBmZWF0dXJlcygpOiBHdWlsZEZlYXR1cmVLZXlzW10ge1xuICAgIGNvbnN0IGZlYXR1cmVzOiBHdWlsZEZlYXR1cmVLZXlzW10gPSBbXVxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKEd1aWxkVG9nZ2xlKSkge1xuICAgICAgaWYgKCFmZWF0dXJlTmFtZXMuaW5jbHVkZXMoa2V5IGFzIEd1aWxkRmVhdHVyZUtleXMpKSBjb250aW51ZVxuICAgICAgaWYgKCFzdXBlci5jb250YWlucyhHdWlsZFRvZ2dsZVtrZXkgYXMgR3VpbGRUb2dnbGVLZXlzXSkpIGNvbnRpbnVlXG5cbiAgICAgIGZlYXR1cmVzLnB1c2goa2V5IGFzIEd1aWxkRmVhdHVyZUtleXMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGZlYXR1cmVzXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgYm90IGlzIHRoZSBvd25lciBvZiB0aGUgZ3VpbGQgKi9cbiAgZ2V0IG93bmVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnb3duZXInKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHNlcnZlciB3aWRnZXQgaXMgZW5hYmxlZCAqL1xuICBnZXQgd2lkZ2V0RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3dpZGdldEVuYWJsZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBpcyBjb25zaWRlcmVkIGEgbGFyZ2UgZ3VpbGQgKi9cbiAgZ2V0IGxhcmdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnbGFyZ2UnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBndWlsZCBpcyB1bmF2YWlsYWJsZSBkdWUgdG8gYW4gb3V0YWdlICovXG4gIGdldCB1bmF2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3VuYXZhaWxhYmxlJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgdGhlIGJvb3N0IHByb2dyZXNzIGJhciBlbmFibGVkICovXG4gIGdldCBwcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygncHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgYW4gaW52aXRlIHNwbGFzaCBiYWNrZ3JvdW5kICovXG4gIGdldCBpbnZpdGVTcGxhc2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdpbnZpdGVTcGxhc2gnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IDM4NCBrYnBzIGJpdHJhdGUgaW4gdm9pY2UgKHByZXZpb3VzbHkgVklQIHZvaWNlIHNlcnZlcnMpICovXG4gIGdldCB2aXBSZWdpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygndmlwUmVnaW9ucycpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgYSB2YW5pdHkgVVJMICovXG4gIGdldCB2YW5pdHlVcmwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCd2YW5pdHlVcmwnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIHZlcmlmaWVkICovXG4gIGdldCB2ZXJpZmllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3ZlcmlmaWVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyBwYXJ0bmVyZWQgKi9cbiAgZ2V0IHBhcnRuZXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3BhcnRuZXJlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgY2FuIGVuYWJsZSB3ZWxjb21lIHNjcmVlbiwgTWVtYmVyc2hpcCBTY3JlZW5pbmcsIHN0YWdlIGNoYW5uZWxzIGFuZCBkaXNjb3ZlcnksIGFuZCByZWNlaXZlcyBjb21tdW5pdHkgdXBkYXRlcyAqL1xuICBnZXQgY29tbXVuaXR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnY29tbXVuaXR5JylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBHdWlsZCBoYXMgYmVlbiBzZXQgYXMgYSBzdXBwb3J0IHNlcnZlciBvbiB0aGUgQXBwIERpcmVjdG9yeSAqL1xuICBnZXQgZGV2ZWxvcGVyU3VwcG9ydFNlcnZlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2RldmVsb3BlclN1cHBvcnRTZXJ2ZXInKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IGFuIGFuaW1hdGVkIGd1aWxkIGJhbm5lciBpbWFnZSAqL1xuICBnZXQgYW5pbWF0ZWRCYW5uZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdhbmltYXRlZEJhbm5lcicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBjcmVhdGUgbmV3cyBjaGFubmVscyAqL1xuICBnZXQgbmV3cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ25ld3MnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIGFibGUgdG8gYmUgZGlzY292ZXJlZCBpbiB0aGUgZGlyZWN0b3J5ICovXG4gIGdldCBkaXNjb3ZlcmFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdkaXNjb3ZlcmFibGUnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIGFibGUgdG8gYmUgZmVhdHVyZWQgaW4gdGhlIGRpcmVjdG9yeSAqL1xuICBnZXQgZmVhdHVyYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2ZlYXR1cmFibGUnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IGFuIGFuaW1hdGVkIGd1aWxkIGljb24gKi9cbiAgZ2V0IGFuaW1hdGVkSWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2FuaW1hdGVkSWNvbicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgYSBndWlsZCBiYW5uZXIgaW1hZ2UgKi9cbiAgZ2V0IGJhbm5lcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2Jhbm5lcicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGVuYWJsZWQgdGhlIHdlbGNvbWUgc2NyZWVuICovXG4gIGdldCB3ZWxjb21lU2NyZWVuRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3dlbGNvbWVTY3JlZW5FbmFibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCBbTWVtYmVyc2hpcCBTY3JlZW5pbmddKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3Jlc291cmNlcy9ndWlsZCNtZW1iZXJzaGlwLXNjcmVlbmluZy1vYmplY3QpICovXG4gIGdldCBtZW1iZXJWZXJpZmljYXRpb25HYXRlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ21lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgbW9yZSBzb3VuZGJvYXJkIHNvdW5kIHNsb3QgKi9cbiAgZ2V0IG1vcmVTb3VuZGJvYXJkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnbW9yZVNvdW5kYm9hcmQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGNhbiBiZSBwcmV2aWV3ZWQgYmVmb3JlIGpvaW5pbmcgdmlhIE1lbWJlcnNoaXAgU2NyZWVuaW5nIG9yIHRoZSBkaXJlY3RvcnkgKi9cbiAgZ2V0IHByZXZpZXdFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygncHJldmlld0VuYWJsZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIHRpY2tldGVkIGV2ZW50cyAqL1xuICBnZXQgdGlja2V0ZWRFdmVudHNFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygndGlja2V0ZWRFdmVudHNFbmFibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgaW5jcmVhc2VkIGN1c3RvbSBzdGlja2VyIHNsb3RzICovXG4gIGdldCBtb3JlU3RpY2tlcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdtb3JlU3RpY2tlcnMnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIGFibGUgdG8gc2V0IHJvbGUgaWNvbnMgKi9cbiAgZ2V0IHJvbGVJY29ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3JvbGVJY29ucycpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIHNldCB1cCBhdXRvIG1vZGVyYXRpb24gcnVsZXMgKi9cbiAgZ2V0IGF1dG9Nb2RlcmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnYXV0b01vZGVyYXRpb24nKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBwYXVzZWQgaW52aXRlcywgcHJldmVudGluZyBuZXcgdXNlcnMgZnJvbSBqb2luaW5nICovXG4gIGdldCBpbnZpdGVzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdpbnZpdGVzRGlzYWJsZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIHVzaW5nIHRoZSBvbGQgcGVybWlzc2lvbnMgY29uZmlndXJhdGlvbiBiZWhhdmlvciAqL1xuICBnZXQgYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNWMigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2FwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVjInKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIG1vbmV0aXphdGlvbi4gKi9cbiAgZ2V0IGNyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnY3JlYXRvck1vbmV0aXphYmxlUHJvdmlzaW9uYWwnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIHRoZSByb2xlIHN1YnNjcmlwdGlvbiBwcm9tbyBwYWdlLiAqL1xuICBnZXQgY3JlYXRvclN0b3JlUGFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2NyZWF0b3JTdG9yZVBhZ2UnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBkaXNhYmxlZCBhbGVydHMgZm9yIGpvaW4gcmFpZHMgaW4gdGhlIGNvbmZpZ3VyZWQgc2FmZXR5IGFsZXJ0cyBjaGFubmVsICovXG4gIGdldCByYWlkQWxlcnRzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdyYWlkQWxlcnRzRGlzYWJsZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyByb2xlIHN1YnNjcmlwdGlvbnMgdGhhdCBjYW4gYmUgcHVyY2hhc2VkLiAqL1xuICBnZXQgcm9sZVN1YnNjcmlwdGlvbnNBdmFpbGFibGVGb3JQdXJjaGFzZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3JvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIHJvbGUgc3Vic2NyaXB0aW9ucy4gKi9cbiAgZ2V0IHJvbGVTdWJzY3JpcHRpb25zRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3JvbGVTdWJzY3JpcHRpb25zRW5hYmxlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGNyZWF0ZWQgc291bmRib2FyZCBzb3VuZHMuICovXG4gIGdldCBzb3VuZGJvYXJkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnc291bmRib2FyZCcpXG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IHRoZSBwZXJtaXNzaW9ucyBleGlzdCBpbiB0aGlzICovXG4gIGhhcyhwZXJtaXNzaW9uczogR3VpbGRUb2dnbGVLZXlzIHwgR3VpbGRUb2dnbGVLZXlzW10pOiBib29sZWFuIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocGVybWlzc2lvbnMpKSByZXR1cm4gc3VwZXIuY29udGFpbnMoR3VpbGRUb2dnbGVbcGVybWlzc2lvbnNdKVxuXG4gICAgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKHBlcm1pc3Npb25zLnJlZHVjZSgoYSwgYikgPT4gKGEgfD0gR3VpbGRUb2dnbGVbYl0pLCAwbikpXG4gIH1cblxuICAvKiogTGlzdHMgYWxsIHRoZSB0b2dnbGVzIGZvciB0aGUgcm9sZSBhbmQgd2hldGhlciBvciBub3QgZWFjaCBpcyB0cnVlIG9yIGZhbHNlLiAqL1xuICBsaXN0KCk6IFJlY29yZDxHdWlsZFRvZ2dsZUtleXMsIGJvb2xlYW4+IHtcbiAgICBjb25zdCBqc29uOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoR3VpbGRUb2dnbGUpKSB7XG4gICAgICBqc29uW2tleV0gPSBzdXBlci5jb250YWlucyh2YWx1ZSlcbiAgICB9XG5cbiAgICByZXR1cm4ganNvbiBhcyBSZWNvcmQ8R3VpbGRUb2dnbGVLZXlzLCBib29sZWFuPlxuICB9XG59XG5cbmV4cG9ydCB0eXBlIEd1aWxkVG9nZ2xlS2V5cyA9IGtleW9mIHR5cGVvZiBHdWlsZFRvZ2dsZVxuXG5leHBvcnQgdHlwZSBHdWlsZEZlYXR1cmVLZXlzID0gKHR5cGVvZiBmZWF0dXJlTmFtZXMpW251bWJlcl1cbiJdLCJuYW1lcyI6WyJHdWlsZFRvZ2dsZSIsIkd1aWxkVG9nZ2xlcyIsImZlYXR1cmVOYW1lcyIsIm93bmVyIiwid2lkZ2V0RW5hYmxlZCIsImxhcmdlIiwidW5hdmFpbGFibGUiLCJwcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkIiwiYW5pbWF0ZWRCYW5uZXIiLCJhbmltYXRlZEljb24iLCJhcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1YyIiwiYXV0b01vZGVyYXRpb24iLCJiYW5uZXIiLCJjb21tdW5pdHkiLCJjcmVhdG9yTW9uZXRpemFibGVQcm92aXNpb25hbCIsImNyZWF0b3JTdG9yZVBhZ2UiLCJkZXZlbG9wZXJTdXBwb3J0U2VydmVyIiwiZGlzY292ZXJhYmxlIiwiZmVhdHVyYWJsZSIsImludml0ZXNEaXNhYmxlZCIsImludml0ZVNwbGFzaCIsIm1lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkIiwibW9yZVNvdW5kYm9hcmQiLCJtb3JlU3RpY2tlcnMiLCJuZXdzIiwicGFydG5lcmVkIiwicHJldmlld0VuYWJsZWQiLCJyYWlkQWxlcnRzRGlzYWJsZWQiLCJyb2xlSWNvbnMiLCJyb2xlU3Vic2NyaXB0aW9uc0F2YWlsYWJsZUZvclB1cmNoYXNlIiwicm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkIiwic291bmRib2FyZCIsInRpY2tldGVkRXZlbnRzRW5hYmxlZCIsInZhbml0eVVybCIsInZlcmlmaWVkIiwidmlwUmVnaW9ucyIsIndlbGNvbWVTY3JlZW5FbmFibGVkIiwiVG9nZ2xlQml0ZmllbGRCaWdpbnQiLCJjb25zdHJ1Y3RvciIsImd1aWxkT3JUb2dnbGVzQmlnaW50IiwiYml0ZmllbGQiLCJndWlsZCIsImZlYXR1cmVzIiwiYWRkIiwid2lkZ2V0X2VuYWJsZWQiLCJwcmVtaXVtX3Byb2dyZXNzX2Jhcl9lbmFibGVkIiwiaW5jbHVkZXMiLCJHdWlsZEZlYXR1cmVzIiwiQW5pbWF0ZWRCYW5uZXIiLCJBbmltYXRlZEljb24iLCJBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1YyIiwiQXV0b01vZGVyYXRpb24iLCJCYW5uZXIiLCJDb21tdW5pdHkiLCJDcmVhdG9yTW9uZXRpemFibGVQcm92aXNpb25hbCIsIkNyZWF0b3JTdG9yZVBhZ2UiLCJEZXZlbG9wZXJTdXBwb3J0U2VydmVyIiwiRGlzY292ZXJhYmxlIiwiRmVhdHVyYWJsZSIsIkludml0ZXNEaXNhYmxlZCIsIkludml0ZVNwbGFzaCIsIk1lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkIiwiTW9yZVNvdW5kYm9hcmQiLCJNb3JlU3RpY2tlcnMiLCJOZXdzIiwiUGFydG5lcmVkIiwiUHJldmlld0VuYWJsZWQiLCJSYWlkQWxlcnRzRGlzYWJsZWQiLCJSb2xlSWNvbnMiLCJSb2xlU3Vic2NyaXB0aW9uc0F2YWlsYWJsZUZvclB1cmNoYXNlIiwiUm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkIiwiU291bmRib2FyZCIsIlRpY2tldGVkRXZlbnRzRW5hYmxlZCIsIlZhbml0eVVybCIsIlZlcmlmaWVkIiwiVmlwUmVnaW9ucyIsIldlbGNvbWVTY3JlZW5FbmFibGVkIiwia2V5IiwiT2JqZWN0Iiwia2V5cyIsImNvbnRhaW5zIiwicHVzaCIsImhhcyIsInBlcm1pc3Npb25zIiwiQXJyYXkiLCJpc0FycmF5IiwicmVkdWNlIiwiYSIsImIiLCJsaXN0IiwianNvbiIsInZhbHVlIiwiZW50cmllcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFrQ2FBLFdBQVc7ZUFBWEE7O0lBMkVBQyxZQUFZO2VBQVpBOzs7dUJBN0dvQztnQ0FDWjtBQUVyQyxNQUFNQyxlQUFlO0lBQ25CO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxNQUFNRixjQUFjO0lBQ3pCLDhDQUE4QyxHQUM5Q0csT0FBTyxFQUFFLElBQUksRUFBRTtJQUNmLHlDQUF5QyxHQUN6Q0MsZUFBZSxFQUFFLElBQUksRUFBRTtJQUN2Qiw2Q0FBNkMsR0FDN0NDLE9BQU8sRUFBRSxJQUFJLEVBQUU7SUFDZix1REFBdUQsR0FDdkRDLGFBQWEsRUFBRSxJQUFJLEVBQUU7SUFDckIseURBQXlELEdBQ3pEQywyQkFBMkIsRUFBRSxJQUFJLEVBQUU7SUFFbkMsZ0NBQWdDO0lBQ2hDLDBDQUEwQztJQUUxQyx1RUFBdUUsR0FDdkVDLGdCQUFnQixFQUFFLElBQUksR0FBRztJQUN6QiwrREFBK0QsR0FDL0RDLGNBQWMsRUFBRSxJQUFJLEdBQUc7SUFDdkIsMEVBQTBFLEdBQzFFQyxpQ0FBaUMsRUFBRSxJQUFJLEdBQUc7SUFDMUMsdURBQXVELEdBQ3ZEQyxnQkFBZ0IsRUFBRSxJQUFJLEdBQUc7SUFDekIsNkRBQTZELEdBQzdEQyxRQUFRLEVBQUUsSUFBSSxHQUFHO0lBQ2pCLG9JQUFvSSxHQUNwSUMsV0FBVyxFQUFFLElBQUksR0FBRztJQUNwQixnREFBZ0QsR0FDaERDLCtCQUErQixFQUFFLElBQUksR0FBRztJQUN4QyxvRUFBb0UsR0FDcEVDLGtCQUFrQixFQUFFLElBQUksR0FBRztJQUMzQiw0RUFBNEUsR0FDNUVDLHdCQUF3QixFQUFFLElBQUksR0FBRztJQUNqQyxnRUFBZ0UsR0FDaEVDLGNBQWMsRUFBRSxJQUFJLEdBQUc7SUFDdkIsOERBQThELEdBQzlEQyxZQUFZLEVBQUUsSUFBSSxHQUFHO0lBQ3JCLDRFQUE0RSxHQUM1RUMsaUJBQWlCLEVBQUUsSUFBSSxHQUFHO0lBQzFCLG9FQUFvRSxHQUNwRUMsY0FBYyxFQUFFLElBQUksRUFBRTtJQUN0QiwwSUFBMEksR0FDMUlDLCtCQUErQixFQUFFLElBQUksR0FBRztJQUN4QyxxREFBcUQsR0FDckRDLGdCQUFnQixFQUFFLElBQUksR0FBRztJQUN6Qix5REFBeUQsR0FDekRDLGNBQWMsRUFBRSxJQUFJLEdBQUc7SUFDdkIseURBQXlELEdBQ3pEQyxNQUFNLEVBQUUsSUFBSSxHQUFHO0lBQ2YsbUNBQW1DLEdBQ25DQyxXQUFXLEVBQUUsSUFBSSxFQUFFO0lBQ25CLGdHQUFnRyxHQUNoR0MsZ0JBQWdCLEVBQUUsSUFBSSxHQUFHO0lBQ3pCLGlHQUFpRyxHQUNqR0Msb0JBQW9CLEVBQUUsSUFBSSxHQUFHO0lBQzdCLGdEQUFnRCxHQUNoREMsV0FBVyxFQUFFLElBQUksR0FBRztJQUNwQixvRUFBb0UsR0FDcEVDLHVDQUF1QyxFQUFFLElBQUksR0FBRztJQUNoRCxzREFBc0QsR0FDdERDLDBCQUEwQixFQUFFLElBQUksR0FBRztJQUNuQyxxREFBcUQsR0FDckRDLFlBQVksRUFBRSxJQUFJLEdBQUc7SUFDckIsa0RBQWtELEdBQ2xEQyx1QkFBdUIsRUFBRSxJQUFJLEdBQUc7SUFDaEMscURBQXFELEdBQ3JEQyxXQUFXLEVBQUUsSUFBSSxFQUFFO0lBQ25CLGtDQUFrQyxHQUNsQ0MsVUFBVSxFQUFFLElBQUksRUFBRTtJQUNsQixpR0FBaUcsR0FDakdDLFlBQVksRUFBRSxJQUFJLEVBQUU7SUFDcEIscURBQXFELEdBQ3JEQyxzQkFBc0IsRUFBRSxJQUFJLEdBQUc7QUFDakM7QUFFTyxJQUFBLEFBQU1uQyxlQUFOLE1BQU1BLHFCQUFxQm9DLG9DQUFvQjtJQUNwREMsWUFBWUMsb0JBQTJDLENBQUU7UUFDdkQsS0FBSztRQUVMLElBQUksT0FBT0EseUJBQXlCLFVBQVUsSUFBSSxDQUFDQyxRQUFRLEdBQUdEO2FBQ3pEO1lBQ0gsTUFBTUUsUUFBUUY7WUFDZCxtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDRSxNQUFNQyxRQUFRLEVBQUVELE1BQU1DLFFBQVEsR0FBRyxFQUFFO1lBRXhDLElBQUlELE1BQU10QyxLQUFLLEVBQUUsSUFBSSxDQUFDd0MsR0FBRyxDQUFDM0MsWUFBWUcsS0FBSztZQUMzQyxJQUFJc0MsTUFBTUcsY0FBYyxFQUFFLElBQUksQ0FBQ0QsR0FBRyxDQUFDM0MsWUFBWUksYUFBYTtZQUM1RCxJQUFJcUMsTUFBTXBDLEtBQUssRUFBRSxJQUFJLENBQUNzQyxHQUFHLENBQUMzQyxZQUFZSyxLQUFLO1lBQzNDLElBQUlvQyxNQUFNbkMsV0FBVyxFQUFFLElBQUksQ0FBQ3FDLEdBQUcsQ0FBQzNDLFlBQVlNLFdBQVc7WUFDdkQsSUFBSW1DLE1BQU1JLDRCQUE0QixFQUFFLElBQUksQ0FBQ0YsR0FBRyxDQUFDM0MsWUFBWU8seUJBQXlCO1lBRXRGLElBQUlrQyxNQUFNQyxRQUFRLENBQUNJLFFBQVEsQ0FBQ0Msb0JBQWEsQ0FBQ0MsY0FBYyxHQUFHLElBQUksQ0FBQ0wsR0FBRyxDQUFDM0MsWUFBWVEsY0FBYztZQUM5RixJQUFJaUMsTUFBTUMsUUFBUSxDQUFDSSxRQUFRLENBQUNDLG9CQUFhLENBQUNFLFlBQVksR0FBRyxJQUFJLENBQUNOLEdBQUcsQ0FBQzNDLFlBQVlTLFlBQVk7WUFDMUYsSUFBSWdDLE1BQU1DLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDQyxvQkFBYSxDQUFDRywrQkFBK0IsR0FBRyxJQUFJLENBQUNQLEdBQUcsQ0FBQzNDLFlBQVlVLCtCQUErQjtZQUNoSSxJQUFJK0IsTUFBTUMsUUFBUSxDQUFDSSxRQUFRLENBQUNDLG9CQUFhLENBQUNJLGNBQWMsR0FBRyxJQUFJLENBQUNSLEdBQUcsQ0FBQzNDLFlBQVlXLGNBQWM7WUFDOUYsSUFBSThCLE1BQU1DLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDQyxvQkFBYSxDQUFDSyxNQUFNLEdBQUcsSUFBSSxDQUFDVCxHQUFHLENBQUMzQyxZQUFZWSxNQUFNO1lBQzlFLElBQUk2QixNQUFNQyxRQUFRLENBQUNJLFFBQVEsQ0FBQ0Msb0JBQWEsQ0FBQ00sU0FBUyxHQUFHLElBQUksQ0FBQ1YsR0FBRyxDQUFDM0MsWUFBWWEsU0FBUztZQUNwRixJQUFJNEIsTUFBTUMsUUFBUSxDQUFDSSxRQUFRLENBQUNDLG9CQUFhLENBQUNPLDZCQUE2QixHQUFHLElBQUksQ0FBQ1gsR0FBRyxDQUFDM0MsWUFBWWMsNkJBQTZCO1lBQzVILElBQUkyQixNQUFNQyxRQUFRLENBQUNJLFFBQVEsQ0FBQ0Msb0JBQWEsQ0FBQ1EsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDWixHQUFHLENBQUMzQyxZQUFZZSxnQkFBZ0I7WUFDbEcsSUFBSTBCLE1BQU1DLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDQyxvQkFBYSxDQUFDUyxzQkFBc0IsR0FBRyxJQUFJLENBQUNiLEdBQUcsQ0FBQzNDLFlBQVlnQixzQkFBc0I7WUFDOUcsSUFBSXlCLE1BQU1DLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDQyxvQkFBYSxDQUFDVSxZQUFZLEdBQUcsSUFBSSxDQUFDZCxHQUFHLENBQUMzQyxZQUFZaUIsWUFBWTtZQUMxRixJQUFJd0IsTUFBTUMsUUFBUSxDQUFDSSxRQUFRLENBQUNDLG9CQUFhLENBQUNXLFVBQVUsR0FBRyxJQUFJLENBQUNmLEdBQUcsQ0FBQzNDLFlBQVlrQixVQUFVO1lBQ3RGLElBQUl1QixNQUFNQyxRQUFRLENBQUNJLFFBQVEsQ0FBQ0Msb0JBQWEsQ0FBQ1ksZUFBZSxHQUFHLElBQUksQ0FBQ2hCLEdBQUcsQ0FBQzNDLFlBQVltQixlQUFlO1lBQ2hHLElBQUlzQixNQUFNQyxRQUFRLENBQUNJLFFBQVEsQ0FBQ0Msb0JBQWEsQ0FBQ2EsWUFBWSxHQUFHLElBQUksQ0FBQ2pCLEdBQUcsQ0FBQzNDLFlBQVlvQixZQUFZO1lBQzFGLElBQUlxQixNQUFNQyxRQUFRLENBQUNJLFFBQVEsQ0FBQ0Msb0JBQWEsQ0FBQ2MsNkJBQTZCLEdBQUcsSUFBSSxDQUFDbEIsR0FBRyxDQUFDM0MsWUFBWXFCLDZCQUE2QjtZQUM1SCxJQUFJb0IsTUFBTUMsUUFBUSxDQUFDSSxRQUFRLENBQUNDLG9CQUFhLENBQUNlLGNBQWMsR0FBRyxJQUFJLENBQUNuQixHQUFHLENBQUMzQyxZQUFZc0IsY0FBYztZQUM5RixJQUFJbUIsTUFBTUMsUUFBUSxDQUFDSSxRQUFRLENBQUNDLG9CQUFhLENBQUNnQixZQUFZLEdBQUcsSUFBSSxDQUFDcEIsR0FBRyxDQUFDM0MsWUFBWXVCLFlBQVk7WUFDMUYsSUFBSWtCLE1BQU1DLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDQyxvQkFBYSxDQUFDaUIsSUFBSSxHQUFHLElBQUksQ0FBQ3JCLEdBQUcsQ0FBQzNDLFlBQVl3QixJQUFJO1lBQzFFLElBQUlpQixNQUFNQyxRQUFRLENBQUNJLFFBQVEsQ0FBQ0Msb0JBQWEsQ0FBQ2tCLFNBQVMsR0FBRyxJQUFJLENBQUN0QixHQUFHLENBQUMzQyxZQUFZeUIsU0FBUztZQUNwRixJQUFJZ0IsTUFBTUMsUUFBUSxDQUFDSSxRQUFRLENBQUNDLG9CQUFhLENBQUNtQixjQUFjLEdBQUcsSUFBSSxDQUFDdkIsR0FBRyxDQUFDM0MsWUFBWTBCLGNBQWM7WUFDOUYsSUFBSWUsTUFBTUMsUUFBUSxDQUFDSSxRQUFRLENBQUNDLG9CQUFhLENBQUNvQixrQkFBa0IsR0FBRyxJQUFJLENBQUN4QixHQUFHLENBQUMzQyxZQUFZMkIsa0JBQWtCO1lBQ3RHLElBQUljLE1BQU1DLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDQyxvQkFBYSxDQUFDcUIsU0FBUyxHQUFHLElBQUksQ0FBQ3pCLEdBQUcsQ0FBQzNDLFlBQVk0QixTQUFTO1lBQ3BGLElBQUlhLE1BQU1DLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDQyxvQkFBYSxDQUFDc0IscUNBQXFDLEdBQUcsSUFBSSxDQUFDMUIsR0FBRyxDQUFDM0MsWUFBWTZCLHFDQUFxQztZQUM1SSxJQUFJWSxNQUFNQyxRQUFRLENBQUNJLFFBQVEsQ0FBQ0Msb0JBQWEsQ0FBQ3VCLHdCQUF3QixHQUFHLElBQUksQ0FBQzNCLEdBQUcsQ0FBQzNDLFlBQVk4Qix3QkFBd0I7WUFDbEgsSUFBSVcsTUFBTUMsUUFBUSxDQUFDSSxRQUFRLENBQUNDLG9CQUFhLENBQUN3QixVQUFVLEdBQUcsSUFBSSxDQUFDNUIsR0FBRyxDQUFDM0MsWUFBWStCLFVBQVU7WUFDdEYsSUFBSVUsTUFBTUMsUUFBUSxDQUFDSSxRQUFRLENBQUNDLG9CQUFhLENBQUN5QixxQkFBcUIsR0FBRyxJQUFJLENBQUM3QixHQUFHLENBQUMzQyxZQUFZZ0MscUJBQXFCO1lBQzVHLElBQUlTLE1BQU1DLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDQyxvQkFBYSxDQUFDMEIsU0FBUyxHQUFHLElBQUksQ0FBQzlCLEdBQUcsQ0FBQzNDLFlBQVlpQyxTQUFTO1lBQ3BGLElBQUlRLE1BQU1DLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDQyxvQkFBYSxDQUFDMkIsUUFBUSxHQUFHLElBQUksQ0FBQy9CLEdBQUcsQ0FBQzNDLFlBQVlrQyxRQUFRO1lBQ2xGLElBQUlPLE1BQU1DLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDQyxvQkFBYSxDQUFDNEIsVUFBVSxHQUFHLElBQUksQ0FBQ2hDLEdBQUcsQ0FBQzNDLFlBQVltQyxVQUFVO1lBQ3RGLElBQUlNLE1BQU1DLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDQyxvQkFBYSxDQUFDNkIsb0JBQW9CLEdBQUcsSUFBSSxDQUFDakMsR0FBRyxDQUFDM0MsWUFBWW9DLG9CQUFvQjtRQUM1RztJQUNGO0lBRUEsSUFBSU0sV0FBK0I7UUFDakMsTUFBTUEsV0FBK0IsRUFBRTtRQUN2QyxLQUFLLE1BQU1tQyxPQUFPQyxPQUFPQyxJQUFJLENBQUMvRSxhQUFjO1lBQzFDLElBQUksQ0FBQ0UsYUFBYTRDLFFBQVEsQ0FBQytCLE1BQTBCO1lBQ3JELElBQUksQ0FBQyxLQUFLLENBQUNHLFNBQVNoRixXQUFXLENBQUM2RSxJQUF1QixHQUFHO1lBRTFEbkMsU0FBU3VDLElBQUksQ0FBQ0o7UUFDaEI7UUFFQSxPQUFPbkM7SUFDVDtJQUVBLDhDQUE4QyxHQUM5QyxJQUFJdkMsUUFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMrRSxHQUFHLENBQUM7SUFDbEI7SUFFQSx5Q0FBeUMsR0FDekMsSUFBSTlFLGdCQUF5QjtRQUMzQixPQUFPLElBQUksQ0FBQzhFLEdBQUcsQ0FBQztJQUNsQjtJQUVBLDZDQUE2QyxHQUM3QyxJQUFJN0UsUUFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUM2RSxHQUFHLENBQUM7SUFDbEI7SUFFQSx1REFBdUQsR0FDdkQsSUFBSTVFLGNBQXVCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDNEUsR0FBRyxDQUFDO0lBQ2xCO0lBRUEseURBQXlELEdBQ3pELElBQUkzRSw0QkFBcUM7UUFDdkMsT0FBTyxJQUFJLENBQUMyRSxHQUFHLENBQUM7SUFDbEI7SUFFQSxvRUFBb0UsR0FDcEUsSUFBSTlELGVBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDOEQsR0FBRyxDQUFDO0lBQ2xCO0lBRUEsaUdBQWlHLEdBQ2pHLElBQUkvQyxhQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQytDLEdBQUcsQ0FBQztJQUNsQjtJQUVBLHFEQUFxRCxHQUNyRCxJQUFJakQsWUFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUNpRCxHQUFHLENBQUM7SUFDbEI7SUFFQSxrQ0FBa0MsR0FDbEMsSUFBSWhELFdBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDZ0QsR0FBRyxDQUFDO0lBQ2xCO0lBRUEsbUNBQW1DLEdBQ25DLElBQUl6RCxZQUFxQjtRQUN2QixPQUFPLElBQUksQ0FBQ3lELEdBQUcsQ0FBQztJQUNsQjtJQUVBLG9JQUFvSSxHQUNwSSxJQUFJckUsWUFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUNxRSxHQUFHLENBQUM7SUFDbEI7SUFFQSw0RUFBNEUsR0FDNUUsSUFBSWxFLHlCQUFrQztRQUNwQyxPQUFPLElBQUksQ0FBQ2tFLEdBQUcsQ0FBQztJQUNsQjtJQUVBLHVFQUF1RSxHQUN2RSxJQUFJMUUsaUJBQTBCO1FBQzVCLE9BQU8sSUFBSSxDQUFDMEUsR0FBRyxDQUFDO0lBQ2xCO0lBRUEseURBQXlELEdBQ3pELElBQUkxRCxPQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQzBELEdBQUcsQ0FBQztJQUNsQjtJQUVBLGdFQUFnRSxHQUNoRSxJQUFJakUsZUFBd0I7UUFDMUIsT0FBTyxJQUFJLENBQUNpRSxHQUFHLENBQUM7SUFDbEI7SUFFQSw4REFBOEQsR0FDOUQsSUFBSWhFLGFBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDZ0UsR0FBRyxDQUFDO0lBQ2xCO0lBRUEsK0RBQStELEdBQy9ELElBQUl6RSxlQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQ3lFLEdBQUcsQ0FBQztJQUNsQjtJQUVBLDZEQUE2RCxHQUM3RCxJQUFJdEUsU0FBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUNzRSxHQUFHLENBQUM7SUFDbEI7SUFFQSxxREFBcUQsR0FDckQsSUFBSTlDLHVCQUFnQztRQUNsQyxPQUFPLElBQUksQ0FBQzhDLEdBQUcsQ0FBQztJQUNsQjtJQUVBLDBJQUEwSSxHQUMxSSxJQUFJN0QsZ0NBQXlDO1FBQzNDLE9BQU8sSUFBSSxDQUFDNkQsR0FBRyxDQUFDO0lBQ2xCO0lBRUEscURBQXFELEdBQ3JELElBQUk1RCxpQkFBMEI7UUFDNUIsT0FBTyxJQUFJLENBQUM0RCxHQUFHLENBQUM7SUFDbEI7SUFFQSxnR0FBZ0csR0FDaEcsSUFBSXhELGlCQUEwQjtRQUM1QixPQUFPLElBQUksQ0FBQ3dELEdBQUcsQ0FBQztJQUNsQjtJQUVBLGtEQUFrRCxHQUNsRCxJQUFJbEQsd0JBQWlDO1FBQ25DLE9BQU8sSUFBSSxDQUFDa0QsR0FBRyxDQUFDO0lBQ2xCO0lBRUEseURBQXlELEdBQ3pELElBQUkzRCxlQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQzJELEdBQUcsQ0FBQztJQUNsQjtJQUVBLGdEQUFnRCxHQUNoRCxJQUFJdEQsWUFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUNzRCxHQUFHLENBQUM7SUFDbEI7SUFFQSx1REFBdUQsR0FDdkQsSUFBSXZFLGlCQUEwQjtRQUM1QixPQUFPLElBQUksQ0FBQ3VFLEdBQUcsQ0FBQztJQUNsQjtJQUVBLDRFQUE0RSxHQUM1RSxJQUFJL0Qsa0JBQTJCO1FBQzdCLE9BQU8sSUFBSSxDQUFDK0QsR0FBRyxDQUFDO0lBQ2xCO0lBRUEsMEVBQTBFLEdBQzFFLElBQUl4RSxrQ0FBMkM7UUFDN0MsT0FBTyxJQUFJLENBQUN3RSxHQUFHLENBQUM7SUFDbEI7SUFFQSxnREFBZ0QsR0FDaEQsSUFBSXBFLGdDQUF5QztRQUMzQyxPQUFPLElBQUksQ0FBQ29FLEdBQUcsQ0FBQztJQUNsQjtJQUVBLG9FQUFvRSxHQUNwRSxJQUFJbkUsbUJBQTRCO1FBQzlCLE9BQU8sSUFBSSxDQUFDbUUsR0FBRyxDQUFDO0lBQ2xCO0lBRUEsaUdBQWlHLEdBQ2pHLElBQUl2RCxxQkFBOEI7UUFDaEMsT0FBTyxJQUFJLENBQUN1RCxHQUFHLENBQUM7SUFDbEI7SUFFQSxvRUFBb0UsR0FDcEUsSUFBSXJELHdDQUFpRDtRQUNuRCxPQUFPLElBQUksQ0FBQ3FELEdBQUcsQ0FBQztJQUNsQjtJQUVBLHNEQUFzRCxHQUN0RCxJQUFJcEQsMkJBQW9DO1FBQ3RDLE9BQU8sSUFBSSxDQUFDb0QsR0FBRyxDQUFDO0lBQ2xCO0lBRUEscURBQXFELEdBQ3JELElBQUluRCxhQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQ21ELEdBQUcsQ0FBQztJQUNsQjtJQUVBLHdEQUF3RCxHQUN4REEsSUFBSUMsV0FBZ0QsRUFBVztRQUM3RCxJQUFJLENBQUNDLE1BQU1DLE9BQU8sQ0FBQ0YsY0FBYyxPQUFPLEtBQUssQ0FBQ0gsU0FBU2hGLFdBQVcsQ0FBQ21GLFlBQVk7UUFFL0UsT0FBTyxLQUFLLENBQUNILFNBQVNHLFlBQVlHLE1BQU0sQ0FBQyxDQUFDQyxHQUFHQyxJQUFPRCxLQUFLdkYsV0FBVyxDQUFDd0YsRUFBRSxFQUFHLEVBQUU7SUFDOUU7SUFFQSxpRkFBaUYsR0FDakZDLE9BQXlDO1FBQ3ZDLE1BQU1DLE9BQWdDLENBQUM7UUFDdkMsS0FBSyxNQUFNLENBQUNiLEtBQUtjLE1BQU0sSUFBSWIsT0FBT2MsT0FBTyxDQUFDNUYsYUFBYztZQUN0RDBGLElBQUksQ0FBQ2IsSUFBSSxHQUFHLEtBQUssQ0FBQ0csU0FBU1c7UUFDN0I7UUFFQSxPQUFPRDtJQUNUO0FBQ0YifQ==
|
|
@@ -47,4 +47,4 @@ function transformUser(bot, payload) {
|
|
|
47
47
|
return bot.transformers.customizers.user(bot, payload, user);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdXNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRVc2VyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgeyB0eXBlIEJvdCwgVG9nZ2xlQml0ZmllbGQsIHR5cGUgVXNlciwgVXNlclRvZ2dsZXMgfSBmcm9tICcuLi9pbmRleC5qcydcblxuY29uc3QgYmFzZVVzZXIgPSB7XG4gIGdldCB0YWcoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMudXNlcm5hbWV9IyR7dGhpcy5kaXNjcmltaW5hdG9yfWBcbiAgfSxcbiAgZ2V0IGJvdCgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnYm90JylcbiAgfSxcbiAgZ2V0IHN5c3RlbSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdXNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRVc2VyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgeyB0eXBlIEJvdCwgVG9nZ2xlQml0ZmllbGQsIHR5cGUgVXNlciwgVXNlclRvZ2dsZXMgfSBmcm9tICcuLi9pbmRleC5qcydcblxuY29uc3QgYmFzZVVzZXIgPSB7XG4gIGdldCB0YWcoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMudXNlcm5hbWV9IyR7dGhpcy5kaXNjcmltaW5hdG9yfWBcbiAgfSxcbiAgZ2V0IGJvdCgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnYm90JylcbiAgfSxcbiAgZ2V0IHN5c3RlbSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/Lmhhcygnc3lzdGVtJylcbiAgfSxcbiAgZ2V0IG1mYUVuYWJsZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ21mYUVuYWJsZWQnKVxuICB9LFxuICBnZXQgdmVyaWZpZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ3ZlcmlmaWVkJylcbiAgfSxcbn0gYXMgVXNlclxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtVXNlcihib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFVzZXIpOiBVc2VyIHtcbiAgY29uc3QgdXNlcjogVXNlciA9IE9iamVjdC5jcmVhdGUoYmFzZVVzZXIpXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy51c2VyXG5cbiAgaWYgKHByb3BzLnRvZ2dsZXMpIHVzZXIudG9nZ2xlcyA9IG5ldyBVc2VyVG9nZ2xlcyhwYXlsb2FkKVxuICBpZiAocHJvcHMuZmxhZ3MpIHVzZXIuZmxhZ3MgPSBuZXcgVG9nZ2xlQml0ZmllbGQocGF5bG9hZC5mbGFncylcbiAgaWYgKHByb3BzLnB1YmxpY0ZsYWdzKSB1c2VyLnB1YmxpY0ZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQucHVibGljX2ZsYWdzKVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgdXNlci5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy51c2VybmFtZSAmJiBwYXlsb2FkLnVzZXJuYW1lKSB1c2VyLnVzZXJuYW1lID0gcGF5bG9hZC51c2VybmFtZVxuICBpZiAocHJvcHMuZ2xvYmFsTmFtZSAmJiBwYXlsb2FkLmdsb2JhbF9uYW1lKSB1c2VyLmdsb2JhbE5hbWUgPSBwYXlsb2FkLmdsb2JhbF9uYW1lXG4gIGlmIChwcm9wcy5kaXNjcmltaW5hdG9yICYmIHBheWxvYWQuZGlzY3JpbWluYXRvcikgdXNlci5kaXNjcmltaW5hdG9yID0gcGF5bG9hZC5kaXNjcmltaW5hdG9yXG4gIGlmIChwcm9wcy5sb2NhbGUgJiYgcGF5bG9hZC5sb2NhbGUpIHVzZXIubG9jYWxlID0gcGF5bG9hZC5sb2NhbGVcbiAgaWYgKHByb3BzLmVtYWlsICYmIHBheWxvYWQuZW1haWwpIHVzZXIuZW1haWwgPSBwYXlsb2FkLmVtYWlsXG4gIGlmIChwcm9wcy5wcmVtaXVtVHlwZSAmJiBwYXlsb2FkLnByZW1pdW1fdHlwZSkgdXNlci5wcmVtaXVtVHlwZSA9IHBheWxvYWQucHJlbWl1bV90eXBlXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIHVzZXIuYXZhdGFyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmF2YXRhcilcbiAgaWYgKHByb3BzLmJhbm5lciAmJiBwYXlsb2FkLmJhbm5lcikgdXNlci5iYW5uZXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYmFubmVyKVxuICBpZiAocHJvcHMuYWNjZW50Q29sb3IgJiYgcGF5bG9hZC5hY2NlbnRfY29sb3IpIHVzZXIuYWNjZW50Q29sb3IgPSBwYXlsb2FkLmFjY2VudF9jb2xvclxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIHVzZXIuYXZhdGFyRGVjb3JhdGlvbkRhdGEgPSBib3QudHJhbnNmb3JtZXJzLmF2YXRhckRlY29yYXRpb25EYXRhKGJvdCwgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLnVzZXIoYm90LCBwYXlsb2FkLCB1c2VyKVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybVVzZXIiLCJiYXNlVXNlciIsInRhZyIsInVzZXJuYW1lIiwiZGlzY3JpbWluYXRvciIsImJvdCIsInRvZ2dsZXMiLCJoYXMiLCJzeXN0ZW0iLCJtZmFFbmFibGVkIiwidmVyaWZpZWQiLCJwYXlsb2FkIiwidXNlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJVc2VyVG9nZ2xlcyIsImZsYWdzIiwiVG9nZ2xlQml0ZmllbGQiLCJwdWJsaWNGbGFncyIsInB1YmxpY19mbGFncyIsImlkIiwic25vd2ZsYWtlIiwiZ2xvYmFsTmFtZSIsImdsb2JhbF9uYW1lIiwibG9jYWxlIiwiZW1haWwiLCJwcmVtaXVtVHlwZSIsInByZW1pdW1fdHlwZSIsImF2YXRhciIsImljb25IYXNoVG9CaWdJbnQiLCJiYW5uZXIiLCJhY2NlbnRDb2xvciIsImFjY2VudF9jb2xvciIsImF2YXRhckRlY29yYXRpb25EYXRhIiwiYXZhdGFyX2RlY29yYXRpb25fZGF0YSIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiOzs7OytCQXNCZ0JBOzs7ZUFBQUE7Ozt1QkFyQmlCO3VCQUNnQztBQUVqRSxNQUFNQyxXQUFXO0lBQ2YsSUFBSUMsT0FBTTtRQUNSLE9BQU8sR0FBRyxJQUFJ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
|