@discordeno/bot 19.0.0-next.96ecfcc → 19.0.0-next.97be09d
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 +74 -0
- package/dist/cjs/commandOptionsParser.cjs +51 -0
- package/dist/cjs/constants.cjs +30 -0
- package/dist/cjs/handlers/channels/CHANNEL_CREATE.cjs +21 -0
- package/dist/cjs/handlers/channels/CHANNEL_DELETE.cjs +21 -0
- package/dist/cjs/handlers/channels/CHANNEL_PINS_UPDATE.cjs +21 -0
- package/dist/cjs/handlers/channels/CHANNEL_UPDATE.cjs +20 -0
- package/dist/cjs/handlers/channels/STAGE_INSTANCE_CREATE.cjs +22 -0
- package/dist/cjs/handlers/channels/STAGE_INSTANCE_DELETE.cjs +22 -0
- package/dist/cjs/handlers/channels/STAGE_INSTANCE_UPDATE.cjs +22 -0
- package/dist/cjs/handlers/channels/THREAD_CREATE.cjs +19 -0
- package/dist/cjs/handlers/channels/THREAD_DELETE.cjs +19 -0
- package/dist/cjs/handlers/channels/THREAD_LIST_SYNC.cjs +31 -0
- package/dist/cjs/handlers/channels/THREAD_MEMBERS_UPDATE.cjs +22 -0
- package/dist/cjs/handlers/channels/THREAD_MEMBER_UPDATE.cjs +22 -0
- package/dist/cjs/handlers/channels/THREAD_UPDATE.cjs +19 -0
- package/dist/cjs/handlers/channels/index.cjs +32 -0
- package/dist/cjs/handlers/emojis/GUILD_EMOJIS_UPDATE.cjs +24 -0
- package/dist/cjs/handlers/emojis/index.cjs +20 -0
- package/dist/cjs/handlers/entitlements/ENTITLEMENT_CREATE.cjs +17 -0
- package/dist/cjs/handlers/entitlements/ENTITLEMENT_DELETE.cjs +17 -0
- package/dist/cjs/handlers/entitlements/ENTITLEMENT_UPDATE.cjs +17 -0
- package/dist/cjs/handlers/entitlements/index.cjs +22 -0
- package/dist/cjs/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.cjs +18 -0
- package/dist/cjs/handlers/guilds/GUILD_BAN_ADD.cjs +17 -0
- package/dist/cjs/handlers/guilds/GUILD_BAN_REMOVE.cjs +17 -0
- package/dist/cjs/handlers/guilds/GUILD_CREATE.cjs +20 -0
- package/dist/cjs/handlers/guilds/GUILD_DELETE.cjs +22 -0
- package/dist/cjs/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.cjs +19 -0
- package/dist/cjs/handlers/guilds/GUILD_STICKERS_UPDATE.cjs +20 -0
- package/dist/cjs/handlers/guilds/GUILD_UPDATE.cjs +20 -0
- package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.cjs +17 -0
- package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.cjs +17 -0
- package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.cjs +17 -0
- package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.cjs +17 -0
- package/dist/cjs/handlers/guilds/automod/index.cjs +23 -0
- package/dist/cjs/handlers/guilds/index.cjs +29 -0
- package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.cjs +17 -0
- package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.cjs +17 -0
- package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.cjs +17 -0
- package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.cjs +21 -0
- package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.cjs +21 -0
- package/dist/cjs/handlers/guilds/scheduledEvents/index.cjs +24 -0
- package/dist/cjs/handlers/index.cjs +32 -0
- package/dist/cjs/handlers/integrations/INTEGRATION_CREATE.cjs +16 -0
- package/dist/cjs/handlers/integrations/INTEGRATION_DELETE.cjs +21 -0
- package/dist/cjs/handlers/integrations/INTEGRATION_UPDATE.cjs +16 -0
- package/dist/cjs/handlers/integrations/index.cjs +22 -0
- package/dist/cjs/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.cjs +17 -0
- package/dist/cjs/handlers/interactions/INTERACTION_CREATE.cjs +16 -0
- package/dist/cjs/handlers/interactions/index.cjs +21 -0
- package/dist/cjs/handlers/invites/INVITE_CREATE.cjs +19 -0
- package/dist/cjs/handlers/invites/INVITE_DELETE.cjs +21 -0
- package/dist/cjs/handlers/invites/index.cjs +21 -0
- package/dist/cjs/handlers/members/GUILD_MEMBERS_CHUNK.cjs +30 -0
- package/dist/cjs/handlers/members/GUILD_MEMBER_ADD.cjs +20 -0
- package/dist/cjs/handlers/members/GUILD_MEMBER_REMOVE.cjs +19 -0
- package/dist/cjs/handlers/members/GUILD_MEMBER_UPDATE.cjs +18 -0
- package/dist/cjs/handlers/members/index.cjs +23 -0
- package/dist/cjs/handlers/messages/MESSAGE_CREATE.cjs +17 -0
- package/dist/cjs/handlers/messages/MESSAGE_DELETE.cjs +21 -0
- package/dist/cjs/handlers/messages/MESSAGE_DELETE_BULK.cjs +23 -0
- package/dist/cjs/handlers/messages/MESSAGE_REACTION_ADD.cjs +28 -0
- package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE.cjs +23 -0
- package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.cjs +21 -0
- package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.cjs +22 -0
- package/dist/cjs/handlers/messages/MESSAGE_UPDATE.cjs +18 -0
- package/dist/cjs/handlers/messages/index.cjs +27 -0
- package/dist/cjs/handlers/misc/PRESENCE_UPDATE.cjs +16 -0
- package/dist/cjs/handlers/misc/READY.cjs +28 -0
- package/dist/cjs/handlers/misc/TYPING_START.cjs +25 -0
- package/dist/cjs/handlers/misc/USER_UPDATE.cjs +17 -0
- package/dist/cjs/handlers/misc/index.cjs +23 -0
- package/dist/cjs/handlers/roles/GUILD_ROLE_CREATE.cjs +20 -0
- package/dist/cjs/handlers/roles/GUILD_ROLE_DELETE.cjs +20 -0
- package/dist/cjs/handlers/roles/GUILD_ROLE_UPDATE.cjs +20 -0
- package/dist/cjs/handlers/roles/index.cjs +22 -0
- package/dist/cjs/handlers/voice/VOICE_SERVER_UPDATE.cjs +21 -0
- package/dist/cjs/handlers/voice/VOICE_STATE_UPDATE.cjs +22 -0
- package/dist/cjs/handlers/voice/index.cjs +21 -0
- package/dist/cjs/handlers/webhooks/WEBHOOKS_UPDATE.cjs +20 -0
- package/dist/cjs/handlers/webhooks/index.cjs +20 -0
- package/dist/cjs/handlers.cjs +121 -0
- package/dist/cjs/helpers.cjs +645 -0
- package/dist/cjs/index.cjs +34 -0
- package/dist/cjs/optionalize.cjs +7 -0
- package/dist/cjs/transformers/activity.cjs +44 -0
- package/dist/cjs/transformers/application.cjs +44 -0
- package/dist/cjs/transformers/applicationCommand.cjs +29 -0
- package/dist/cjs/transformers/applicationCommandOption.cjs +31 -0
- package/dist/cjs/transformers/applicationCommandOptionChoice.cjs +20 -0
- package/dist/cjs/transformers/applicationCommandPermission.cjs +25 -0
- package/dist/cjs/transformers/attachment.cjs +30 -0
- package/dist/cjs/transformers/auditLogEntry.cjs +145 -0
- package/dist/cjs/transformers/automodActionExecution.cjs +35 -0
- package/dist/cjs/transformers/automodRule.cjs +41 -0
- package/dist/cjs/transformers/channel.cjs +122 -0
- package/dist/cjs/transformers/component.cjs +47 -0
- package/dist/cjs/transformers/embed.cjs +54 -0
- package/dist/cjs/transformers/emoji.cjs +23 -0
- package/dist/cjs/transformers/entitlement.cjs +26 -0
- package/dist/cjs/transformers/gatewayBot.cjs +25 -0
- package/dist/cjs/transformers/guild.cjs +143 -0
- package/dist/cjs/transformers/index.cjs +57 -0
- package/dist/cjs/transformers/integration.cjs +44 -0
- package/dist/cjs/transformers/interaction.cjs +194 -0
- package/dist/cjs/transformers/invite.cjs +52 -0
- package/dist/cjs/transformers/member.cjs +44 -0
- package/dist/cjs/transformers/message.cjs +237 -0
- package/dist/cjs/transformers/onboarding.cjs +56 -0
- package/dist/cjs/transformers/presence.cjs +25 -0
- package/dist/cjs/transformers/reverse/activity.cjs +53 -0
- package/dist/cjs/transformers/reverse/allowedMentions.cjs +20 -0
- package/dist/cjs/transformers/reverse/application.cjs +34 -0
- package/dist/cjs/transformers/reverse/applicationCommand.cjs +28 -0
- package/dist/cjs/transformers/reverse/applicationCommandOption.cjs +30 -0
- package/dist/cjs/transformers/reverse/applicationCommandOptionChoice.cjs +19 -0
- package/dist/cjs/transformers/reverse/applicationCommandPermission.cjs +24 -0
- package/dist/cjs/transformers/reverse/attachment.cjs +29 -0
- package/dist/cjs/transformers/reverse/auditLogEntry.cjs +148 -0
- package/dist/cjs/transformers/reverse/component.cjs +47 -0
- package/dist/cjs/transformers/reverse/createApplicationCommand.cjs +37 -0
- package/dist/cjs/transformers/reverse/embed.cjs +53 -0
- package/dist/cjs/transformers/reverse/emoji.cjs +24 -0
- package/dist/cjs/transformers/reverse/gatewayBot.cjs +24 -0
- package/dist/cjs/transformers/reverse/index.cjs +38 -0
- package/dist/cjs/transformers/reverse/interactionResponse.cjs +34 -0
- package/dist/cjs/transformers/reverse/member.cjs +53 -0
- package/dist/cjs/transformers/reverse/presence.cjs +41 -0
- package/dist/cjs/transformers/reverse/team.cjs +28 -0
- package/dist/cjs/transformers/reverse/widgetSettings.cjs +18 -0
- package/dist/cjs/transformers/role.cjs +68 -0
- package/dist/cjs/transformers/scheduledEvent.cjs +34 -0
- package/dist/cjs/transformers/sku.cjs +23 -0
- package/dist/cjs/transformers/stageInstance.cjs +22 -0
- package/dist/cjs/transformers/stageInviteInstance.cjs +23 -0
- package/dist/cjs/transformers/sticker.cjs +48 -0
- package/dist/cjs/transformers/team.cjs +29 -0
- package/dist/cjs/transformers/template.cjs +28 -0
- package/dist/cjs/transformers/threadMember.cjs +35 -0
- package/dist/cjs/transformers/toggles/Permissions.cjs +28 -0
- package/dist/cjs/transformers/toggles/ToggleBitfield.cjs +60 -0
- package/dist/cjs/transformers/toggles/channel.cjs +68 -0
- package/dist/cjs/transformers/toggles/emoji.cjs +63 -0
- package/dist/cjs/transformers/toggles/guild.cjs +224 -0
- package/dist/cjs/transformers/toggles/index.cjs +28 -0
- package/dist/cjs/transformers/toggles/member.cjs +58 -0
- package/dist/cjs/transformers/toggles/role.cjs +73 -0
- package/dist/cjs/transformers/toggles/user.cjs +63 -0
- package/dist/cjs/transformers/toggles/voice.cjs +78 -0
- package/dist/cjs/transformers/user.cjs +53 -0
- package/dist/cjs/transformers/voiceRegion.cjs +22 -0
- package/dist/cjs/transformers/voiceState.cjs +24 -0
- package/dist/cjs/transformers/webhook.cjs +37 -0
- package/dist/cjs/transformers/welcomeScreen.cjs +24 -0
- package/dist/cjs/transformers/widget.cjs +35 -0
- package/dist/cjs/transformers/widgetSettings.cjs +19 -0
- package/dist/cjs/transformers.cjs +593 -0
- package/dist/cjs/typings.cjs +38 -0
- package/dist/cjs/utils.cjs +32 -0
- package/dist/esm/bot.js +69 -0
- package/dist/esm/commandOptionsParser.js +41 -0
- package/dist/esm/constants.js +6 -0
- package/dist/esm/handlers/channels/CHANNEL_CREATE.js +11 -0
- package/dist/esm/handlers/channels/CHANNEL_DELETE.js +11 -0
- package/dist/esm/handlers/channels/CHANNEL_PINS_UPDATE.js +11 -0
- package/dist/esm/handlers/channels/CHANNEL_UPDATE.js +10 -0
- package/dist/esm/handlers/channels/STAGE_INSTANCE_CREATE.js +12 -0
- package/dist/esm/handlers/channels/STAGE_INSTANCE_DELETE.js +12 -0
- package/dist/esm/handlers/channels/STAGE_INSTANCE_UPDATE.js +12 -0
- package/dist/esm/handlers/channels/THREAD_CREATE.js +9 -0
- package/dist/esm/handlers/channels/THREAD_DELETE.js +9 -0
- package/dist/esm/handlers/channels/THREAD_LIST_SYNC.js +21 -0
- package/dist/esm/handlers/channels/THREAD_MEMBERS_UPDATE.js +12 -0
- package/dist/esm/handlers/channels/THREAD_MEMBER_UPDATE.js +12 -0
- package/dist/esm/handlers/channels/THREAD_UPDATE.js +9 -0
- package/dist/esm/handlers/channels/index.js +15 -0
- package/dist/esm/handlers/emojis/GUILD_EMOJIS_UPDATE.js +14 -0
- package/dist/esm/handlers/emojis/index.js +3 -0
- package/dist/esm/handlers/entitlements/ENTITLEMENT_CREATE.js +7 -0
- package/dist/esm/handlers/entitlements/ENTITLEMENT_DELETE.js +7 -0
- package/dist/esm/handlers/entitlements/ENTITLEMENT_UPDATE.js +7 -0
- package/dist/esm/handlers/entitlements/index.js +5 -0
- package/dist/esm/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js +8 -0
- package/dist/esm/handlers/guilds/GUILD_BAN_ADD.js +7 -0
- package/dist/esm/handlers/guilds/GUILD_BAN_REMOVE.js +7 -0
- package/dist/esm/handlers/guilds/GUILD_CREATE.js +10 -0
- package/dist/esm/handlers/guilds/GUILD_DELETE.js +12 -0
- package/dist/esm/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.js +9 -0
- package/dist/esm/handlers/guilds/GUILD_STICKERS_UPDATE.js +10 -0
- package/dist/esm/handlers/guilds/GUILD_UPDATE.js +10 -0
- package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js +7 -0
- package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js +7 -0
- package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js +7 -0
- package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js +7 -0
- package/dist/esm/handlers/guilds/automod/index.js +6 -0
- package/dist/esm/handlers/guilds/index.js +12 -0
- package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.js +7 -0
- package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.js +7 -0
- package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.js +7 -0
- package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.js +11 -0
- package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +11 -0
- package/dist/esm/handlers/guilds/scheduledEvents/index.js +7 -0
- package/dist/esm/handlers/index.js +15 -0
- package/dist/esm/handlers/integrations/INTEGRATION_CREATE.js +6 -0
- package/dist/esm/handlers/integrations/INTEGRATION_DELETE.js +11 -0
- package/dist/esm/handlers/integrations/INTEGRATION_UPDATE.js +6 -0
- package/dist/esm/handlers/integrations/index.js +5 -0
- package/dist/esm/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +7 -0
- package/dist/esm/handlers/interactions/INTERACTION_CREATE.js +6 -0
- package/dist/esm/handlers/interactions/index.js +4 -0
- package/dist/esm/handlers/invites/INVITE_CREATE.js +9 -0
- package/dist/esm/handlers/invites/INVITE_DELETE.js +11 -0
- package/dist/esm/handlers/invites/index.js +4 -0
- package/dist/esm/handlers/members/GUILD_MEMBERS_CHUNK.js +20 -0
- package/dist/esm/handlers/members/GUILD_MEMBER_ADD.js +10 -0
- package/dist/esm/handlers/members/GUILD_MEMBER_REMOVE.js +9 -0
- package/dist/esm/handlers/members/GUILD_MEMBER_UPDATE.js +8 -0
- package/dist/esm/handlers/members/index.js +6 -0
- package/dist/esm/handlers/messages/MESSAGE_CREATE.js +7 -0
- package/dist/esm/handlers/messages/MESSAGE_DELETE.js +11 -0
- package/dist/esm/handlers/messages/MESSAGE_DELETE_BULK.js +13 -0
- package/dist/esm/handlers/messages/MESSAGE_REACTION_ADD.js +18 -0
- package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE.js +13 -0
- package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.js +11 -0
- package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +12 -0
- package/dist/esm/handlers/messages/MESSAGE_UPDATE.js +8 -0
- package/dist/esm/handlers/messages/index.js +10 -0
- package/dist/esm/handlers/misc/PRESENCE_UPDATE.js +6 -0
- package/dist/esm/handlers/misc/READY.js +18 -0
- package/dist/esm/handlers/misc/TYPING_START.js +15 -0
- package/dist/esm/handlers/misc/USER_UPDATE.js +7 -0
- package/dist/esm/handlers/misc/index.js +6 -0
- package/dist/esm/handlers/roles/GUILD_ROLE_CREATE.js +10 -0
- package/dist/esm/handlers/roles/GUILD_ROLE_DELETE.js +10 -0
- package/dist/esm/handlers/roles/GUILD_ROLE_UPDATE.js +10 -0
- package/dist/esm/handlers/roles/index.js +5 -0
- package/dist/esm/handlers/voice/VOICE_SERVER_UPDATE.js +11 -0
- package/dist/esm/handlers/voice/VOICE_STATE_UPDATE.js +12 -0
- package/dist/esm/handlers/voice/index.js +4 -0
- package/dist/esm/handlers/webhooks/WEBHOOKS_UPDATE.js +10 -0
- package/dist/esm/handlers/webhooks/index.js +3 -0
- package/dist/esm/handlers.js +70 -0
- package/dist/esm/helpers.js +635 -0
- package/dist/esm/index.js +17 -0
- package/dist/esm/optionalize.js +3 -0
- package/dist/esm/transformers/activity.js +34 -0
- package/dist/esm/transformers/application.js +34 -0
- package/dist/esm/transformers/applicationCommand.js +19 -0
- package/dist/esm/transformers/applicationCommandOption.js +21 -0
- package/dist/esm/transformers/applicationCommandOptionChoice.js +10 -0
- package/dist/esm/transformers/applicationCommandPermission.js +15 -0
- package/dist/esm/transformers/attachment.js +20 -0
- package/dist/esm/transformers/auditLogEntry.js +135 -0
- package/dist/esm/transformers/automodActionExecution.js +25 -0
- package/dist/esm/transformers/automodRule.js +31 -0
- package/dist/esm/transformers/channel.js +98 -0
- package/dist/esm/transformers/component.js +37 -0
- package/dist/esm/transformers/embed.js +44 -0
- package/dist/esm/transformers/emoji.js +13 -0
- package/dist/esm/transformers/entitlement.js +16 -0
- package/dist/esm/transformers/gatewayBot.js +15 -0
- package/dist/esm/transformers/guild.js +133 -0
- package/dist/esm/transformers/index.js +40 -0
- package/dist/esm/transformers/integration.js +34 -0
- package/dist/esm/transformers/interaction.js +173 -0
- package/dist/esm/transformers/invite.js +42 -0
- package/dist/esm/transformers/member.js +34 -0
- package/dist/esm/transformers/message.js +227 -0
- package/dist/esm/transformers/onboarding.js +35 -0
- package/dist/esm/transformers/presence.js +15 -0
- package/dist/esm/transformers/reverse/activity.js +43 -0
- package/dist/esm/transformers/reverse/allowedMentions.js +10 -0
- package/dist/esm/transformers/reverse/application.js +24 -0
- package/dist/esm/transformers/reverse/applicationCommand.js +18 -0
- package/dist/esm/transformers/reverse/applicationCommandOption.js +20 -0
- package/dist/esm/transformers/reverse/applicationCommandOptionChoice.js +9 -0
- package/dist/esm/transformers/reverse/applicationCommandPermission.js +14 -0
- package/dist/esm/transformers/reverse/attachment.js +19 -0
- package/dist/esm/transformers/reverse/auditLogEntry.js +138 -0
- package/dist/esm/transformers/reverse/component.js +37 -0
- package/dist/esm/transformers/reverse/createApplicationCommand.js +27 -0
- package/dist/esm/transformers/reverse/embed.js +43 -0
- package/dist/esm/transformers/reverse/emoji.js +14 -0
- package/dist/esm/transformers/reverse/gatewayBot.js +14 -0
- package/dist/esm/transformers/reverse/index.js +21 -0
- package/dist/esm/transformers/reverse/interactionResponse.js +24 -0
- package/dist/esm/transformers/reverse/member.js +35 -0
- package/dist/esm/transformers/reverse/presence.js +23 -0
- package/dist/esm/transformers/reverse/team.js +18 -0
- package/dist/esm/transformers/reverse/widgetSettings.js +8 -0
- package/dist/esm/transformers/role.js +58 -0
- package/dist/esm/transformers/scheduledEvent.js +24 -0
- package/dist/esm/transformers/sku.js +13 -0
- package/dist/esm/transformers/stageInstance.js +12 -0
- package/dist/esm/transformers/stageInviteInstance.js +13 -0
- package/dist/esm/transformers/sticker.js +30 -0
- package/dist/esm/transformers/team.js +19 -0
- package/dist/esm/transformers/template.js +18 -0
- package/dist/esm/transformers/threadMember.js +17 -0
- package/dist/esm/transformers/toggles/Permissions.js +18 -0
- package/dist/esm/transformers/toggles/ToggleBitfield.js +42 -0
- package/dist/esm/transformers/toggles/channel.js +50 -0
- package/dist/esm/transformers/toggles/emoji.js +45 -0
- package/dist/esm/transformers/toggles/guild.js +206 -0
- package/dist/esm/transformers/toggles/index.js +11 -0
- package/dist/esm/transformers/toggles/member.js +40 -0
- package/dist/esm/transformers/toggles/role.js +55 -0
- package/dist/esm/transformers/toggles/user.js +45 -0
- package/dist/esm/transformers/toggles/voice.js +60 -0
- package/dist/esm/transformers/user.js +43 -0
- package/dist/esm/transformers/voiceRegion.js +12 -0
- package/dist/esm/transformers/voiceState.js +14 -0
- package/dist/esm/transformers/webhook.js +27 -0
- package/dist/esm/transformers/welcomeScreen.js +14 -0
- package/dist/esm/transformers/widget.js +25 -0
- package/dist/esm/transformers/widgetSettings.js +9 -0
- package/dist/esm/transformers.js +583 -0
- package/dist/esm/typings.js +20 -0
- package/dist/esm/utils.js +11 -0
- package/dist/types/bot.d.ts +261 -0
- package/dist/types/bot.d.ts.map +1 -0
- package/dist/types/commandOptionsParser.d.ts +3 -0
- package/dist/types/commandOptionsParser.d.ts.map +1 -0
- package/dist/types/constants.d.ts +5 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/handlers/channels/CHANNEL_CREATE.d.ts +3 -0
- package/dist/types/handlers/channels/CHANNEL_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/channels/CHANNEL_DELETE.d.ts +4 -0
- package/dist/types/handlers/channels/CHANNEL_DELETE.d.ts.map +1 -0
- package/dist/types/handlers/channels/CHANNEL_PINS_UPDATE.d.ts +4 -0
- package/dist/types/handlers/channels/CHANNEL_PINS_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/channels/CHANNEL_UPDATE.d.ts +4 -0
- package/dist/types/handlers/channels/CHANNEL_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/channels/STAGE_INSTANCE_CREATE.d.ts +4 -0
- package/dist/types/handlers/channels/STAGE_INSTANCE_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/channels/STAGE_INSTANCE_DELETE.d.ts +4 -0
- package/dist/types/handlers/channels/STAGE_INSTANCE_DELETE.d.ts.map +1 -0
- package/dist/types/handlers/channels/STAGE_INSTANCE_UPDATE.d.ts +4 -0
- package/dist/types/handlers/channels/STAGE_INSTANCE_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/channels/THREAD_CREATE.d.ts +4 -0
- package/dist/types/handlers/channels/THREAD_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/channels/THREAD_DELETE.d.ts +4 -0
- package/dist/types/handlers/channels/THREAD_DELETE.d.ts.map +1 -0
- package/dist/types/handlers/channels/THREAD_LIST_SYNC.d.ts +4 -0
- package/dist/types/handlers/channels/THREAD_LIST_SYNC.d.ts.map +1 -0
- package/dist/types/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts +4 -0
- package/dist/types/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts +4 -0
- package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/channels/THREAD_UPDATE.d.ts +4 -0
- package/dist/types/handlers/channels/THREAD_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/channels/index.d.ts +14 -0
- package/dist/types/handlers/channels/index.d.ts.map +1 -0
- package/dist/types/handlers/emojis/GUILD_EMOJIS_UPDATE.d.ts +4 -0
- package/dist/types/handlers/emojis/GUILD_EMOJIS_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/emojis/index.d.ts +2 -0
- package/dist/types/handlers/emojis/index.d.ts.map +1 -0
- package/dist/types/handlers/entitlements/ENTITLEMENT_CREATE.d.ts +4 -0
- package/dist/types/handlers/entitlements/ENTITLEMENT_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/entitlements/ENTITLEMENT_DELETE.d.ts +4 -0
- package/dist/types/handlers/entitlements/ENTITLEMENT_DELETE.d.ts.map +1 -0
- package/dist/types/handlers/entitlements/ENTITLEMENT_UPDATE.d.ts +4 -0
- package/dist/types/handlers/entitlements/ENTITLEMENT_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/entitlements/index.d.ts +4 -0
- package/dist/types/handlers/entitlements/index.d.ts.map +1 -0
- package/dist/types/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts +4 -0
- package/dist/types/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/GUILD_BAN_ADD.d.ts +4 -0
- package/dist/types/handlers/guilds/GUILD_BAN_ADD.d.ts.map +1 -0
- package/dist/types/handlers/guilds/GUILD_BAN_REMOVE.d.ts +4 -0
- package/dist/types/handlers/guilds/GUILD_BAN_REMOVE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/GUILD_CREATE.d.ts +4 -0
- package/dist/types/handlers/guilds/GUILD_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/GUILD_DELETE.d.ts +4 -0
- package/dist/types/handlers/guilds/GUILD_DELETE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts +4 -0
- package/dist/types/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts +3 -0
- package/dist/types/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/GUILD_UPDATE.d.ts +4 -0
- package/dist/types/handlers/guilds/GUILD_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts +5 -0
- package/dist/types/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts.map +1 -0
- package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts +5 -0
- package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts +5 -0
- package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts +5 -0
- package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/automod/index.d.ts +5 -0
- package/dist/types/handlers/guilds/automod/index.d.ts.map +1 -0
- package/dist/types/handlers/guilds/index.d.ts +11 -0
- package/dist/types/handlers/guilds/index.d.ts.map +1 -0
- package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts +4 -0
- package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts +4 -0
- package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts +4 -0
- package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts +4 -0
- package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts.map +1 -0
- package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts +4 -0
- package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts.map +1 -0
- package/dist/types/handlers/guilds/scheduledEvents/index.d.ts +6 -0
- package/dist/types/handlers/guilds/scheduledEvents/index.d.ts.map +1 -0
- package/dist/types/handlers/index.d.ts +14 -0
- package/dist/types/handlers/index.d.ts.map +1 -0
- package/dist/types/handlers/integrations/INTEGRATION_CREATE.d.ts +4 -0
- package/dist/types/handlers/integrations/INTEGRATION_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/integrations/INTEGRATION_DELETE.d.ts +4 -0
- package/dist/types/handlers/integrations/INTEGRATION_DELETE.d.ts.map +1 -0
- package/dist/types/handlers/integrations/INTEGRATION_UPDATE.d.ts +4 -0
- package/dist/types/handlers/integrations/INTEGRATION_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/integrations/index.d.ts +4 -0
- package/dist/types/handlers/integrations/index.d.ts.map +1 -0
- package/dist/types/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts +3 -0
- package/dist/types/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts +4 -0
- package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/interactions/index.d.ts +3 -0
- package/dist/types/handlers/interactions/index.d.ts.map +1 -0
- package/dist/types/handlers/invites/INVITE_CREATE.d.ts +4 -0
- package/dist/types/handlers/invites/INVITE_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/invites/INVITE_DELETE.d.ts +4 -0
- package/dist/types/handlers/invites/INVITE_DELETE.d.ts.map +1 -0
- package/dist/types/handlers/invites/index.d.ts +3 -0
- package/dist/types/handlers/invites/index.d.ts.map +1 -0
- package/dist/types/handlers/members/GUILD_MEMBERS_CHUNK.d.ts +4 -0
- package/dist/types/handlers/members/GUILD_MEMBERS_CHUNK.d.ts.map +1 -0
- package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts +4 -0
- package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts.map +1 -0
- package/dist/types/handlers/members/GUILD_MEMBER_REMOVE.d.ts +4 -0
- package/dist/types/handlers/members/GUILD_MEMBER_REMOVE.d.ts.map +1 -0
- package/dist/types/handlers/members/GUILD_MEMBER_UPDATE.d.ts +4 -0
- package/dist/types/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/members/index.d.ts +5 -0
- package/dist/types/handlers/members/index.d.ts.map +1 -0
- package/dist/types/handlers/messages/MESSAGE_CREATE.d.ts +4 -0
- package/dist/types/handlers/messages/MESSAGE_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/messages/MESSAGE_DELETE.d.ts +4 -0
- package/dist/types/handlers/messages/MESSAGE_DELETE.d.ts.map +1 -0
- package/dist/types/handlers/messages/MESSAGE_DELETE_BULK.d.ts +4 -0
- package/dist/types/handlers/messages/MESSAGE_DELETE_BULK.d.ts.map +1 -0
- package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts +4 -0
- package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -0
- package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts +4 -0
- package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -0
- package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts +4 -0
- package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts.map +1 -0
- package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts +4 -0
- package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -0
- package/dist/types/handlers/messages/MESSAGE_UPDATE.d.ts +4 -0
- package/dist/types/handlers/messages/MESSAGE_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/messages/index.d.ts +9 -0
- package/dist/types/handlers/messages/index.d.ts.map +1 -0
- package/dist/types/handlers/misc/PRESENCE_UPDATE.d.ts +4 -0
- package/dist/types/handlers/misc/PRESENCE_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/misc/READY.d.ts +4 -0
- package/dist/types/handlers/misc/READY.d.ts.map +1 -0
- package/dist/types/handlers/misc/TYPING_START.d.ts +4 -0
- package/dist/types/handlers/misc/TYPING_START.d.ts.map +1 -0
- package/dist/types/handlers/misc/USER_UPDATE.d.ts +4 -0
- package/dist/types/handlers/misc/USER_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/misc/index.d.ts +5 -0
- package/dist/types/handlers/misc/index.d.ts.map +1 -0
- package/dist/types/handlers/roles/GUILD_ROLE_CREATE.d.ts +4 -0
- package/dist/types/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +1 -0
- package/dist/types/handlers/roles/GUILD_ROLE_DELETE.d.ts +4 -0
- package/dist/types/handlers/roles/GUILD_ROLE_DELETE.d.ts.map +1 -0
- package/dist/types/handlers/roles/GUILD_ROLE_UPDATE.d.ts +4 -0
- package/dist/types/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/roles/index.d.ts +4 -0
- package/dist/types/handlers/roles/index.d.ts.map +1 -0
- package/dist/types/handlers/voice/VOICE_SERVER_UPDATE.d.ts +4 -0
- package/dist/types/handlers/voice/VOICE_SERVER_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/voice/VOICE_STATE_UPDATE.d.ts +4 -0
- package/dist/types/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/voice/index.d.ts +3 -0
- package/dist/types/handlers/voice/index.d.ts.map +1 -0
- package/dist/types/handlers/webhooks/WEBHOOKS_UPDATE.d.ts +4 -0
- package/dist/types/handlers/webhooks/WEBHOOKS_UPDATE.d.ts.map +1 -0
- package/dist/types/handlers/webhooks/index.d.ts +2 -0
- package/dist/types/handlers/webhooks/index.d.ts.map +1 -0
- package/dist/types/handlers.d.ts +6 -0
- package/dist/types/handlers.d.ts.map +1 -0
- package/dist/types/helpers.d.ts +232 -0
- package/dist/types/helpers.d.ts.map +1 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/optionalize.d.ts +47 -0
- package/dist/types/optionalize.d.ts.map +1 -0
- package/dist/types/transformers/activity.d.ts +35 -0
- package/dist/types/transformers/activity.d.ts.map +1 -0
- package/dist/types/transformers/application.d.ts +30 -0
- package/dist/types/transformers/application.d.ts.map +1 -0
- package/dist/types/transformers/applicationCommand.d.ts +18 -0
- package/dist/types/transformers/applicationCommand.d.ts.map +1 -0
- package/dist/types/transformers/applicationCommandOption.d.ts +35 -0
- package/dist/types/transformers/applicationCommandOption.d.ts.map +1 -0
- package/dist/types/transformers/applicationCommandOptionChoice.d.ts +9 -0
- package/dist/types/transformers/applicationCommandOptionChoice.d.ts.map +1 -0
- package/dist/types/transformers/applicationCommandPermission.d.ts +14 -0
- package/dist/types/transformers/applicationCommandPermission.d.ts.map +1 -0
- package/dist/types/transformers/attachment.d.ts +36 -0
- package/dist/types/transformers/attachment.d.ts.map +1 -0
- package/dist/types/transformers/auditLogEntry.d.ts +45 -0
- package/dist/types/transformers/auditLogEntry.d.ts.map +1 -0
- package/dist/types/transformers/automodActionExecution.d.ts +24 -0
- package/dist/types/transformers/automodActionExecution.d.ts.map +1 -0
- package/dist/types/transformers/automodRule.d.ts +30 -0
- package/dist/types/transformers/automodRule.d.ts.map +1 -0
- package/dist/types/transformers/channel.d.ts +107 -0
- package/dist/types/transformers/channel.d.ts.map +1 -0
- package/dist/types/transformers/component.d.ts +48 -0
- package/dist/types/transformers/component.d.ts.map +1 -0
- package/dist/types/transformers/embed.d.ts +50 -0
- package/dist/types/transformers/embed.d.ts.map +1 -0
- package/dist/types/transformers/emoji.d.ts +24 -0
- package/dist/types/transformers/emoji.d.ts.map +1 -0
- package/dist/types/transformers/entitlement.d.ts +24 -0
- package/dist/types/transformers/entitlement.d.ts.map +1 -0
- package/dist/types/transformers/gatewayBot.d.ts +14 -0
- package/dist/types/transformers/gatewayBot.d.ts.map +1 -0
- package/dist/types/transformers/guild.d.ts +119 -0
- package/dist/types/transformers/guild.d.ts.map +1 -0
- package/dist/types/transformers/index.d.ts +39 -0
- package/dist/types/transformers/index.d.ts.map +1 -0
- package/dist/types/transformers/integration.d.ts +32 -0
- package/dist/types/transformers/integration.d.ts.map +1 -0
- package/dist/types/transformers/interaction.d.ts +97 -0
- package/dist/types/transformers/interaction.d.ts.map +1 -0
- package/dist/types/transformers/invite.d.ts +44 -0
- package/dist/types/transformers/invite.d.ts.map +1 -0
- package/dist/types/transformers/member.d.ts +39 -0
- package/dist/types/transformers/member.d.ts.map +1 -0
- package/dist/types/transformers/message.d.ts +144 -0
- package/dist/types/transformers/message.d.ts.map +1 -0
- package/dist/types/transformers/onboarding.d.ts +48 -0
- package/dist/types/transformers/onboarding.d.ts.map +1 -0
- package/dist/types/transformers/presence.d.ts +13 -0
- package/dist/types/transformers/presence.d.ts.map +1 -0
- package/dist/types/transformers/reverse/activity.d.ts +4 -0
- package/dist/types/transformers/reverse/activity.d.ts.map +1 -0
- package/dist/types/transformers/reverse/allowedMentions.d.ts +3 -0
- package/dist/types/transformers/reverse/allowedMentions.d.ts.map +1 -0
- package/dist/types/transformers/reverse/application.d.ts +4 -0
- package/dist/types/transformers/reverse/application.d.ts.map +1 -0
- package/dist/types/transformers/reverse/applicationCommand.d.ts +4 -0
- package/dist/types/transformers/reverse/applicationCommand.d.ts.map +1 -0
- package/dist/types/transformers/reverse/applicationCommandOption.d.ts +4 -0
- package/dist/types/transformers/reverse/applicationCommandOption.d.ts.map +1 -0
- package/dist/types/transformers/reverse/applicationCommandOptionChoice.d.ts +4 -0
- package/dist/types/transformers/reverse/applicationCommandOptionChoice.d.ts.map +1 -0
- package/dist/types/transformers/reverse/applicationCommandPermission.d.ts +4 -0
- package/dist/types/transformers/reverse/applicationCommandPermission.d.ts.map +1 -0
- package/dist/types/transformers/reverse/attachment.d.ts +4 -0
- package/dist/types/transformers/reverse/attachment.d.ts.map +1 -0
- package/dist/types/transformers/reverse/auditLogEntry.d.ts +5 -0
- package/dist/types/transformers/reverse/auditLogEntry.d.ts.map +1 -0
- package/dist/types/transformers/reverse/component.d.ts +5 -0
- package/dist/types/transformers/reverse/component.d.ts.map +1 -0
- package/dist/types/transformers/reverse/createApplicationCommand.d.ts +3 -0
- package/dist/types/transformers/reverse/createApplicationCommand.d.ts.map +1 -0
- package/dist/types/transformers/reverse/embed.d.ts +5 -0
- package/dist/types/transformers/reverse/embed.d.ts.map +1 -0
- package/dist/types/transformers/reverse/emoji.d.ts +5 -0
- package/dist/types/transformers/reverse/emoji.d.ts.map +1 -0
- package/dist/types/transformers/reverse/gatewayBot.d.ts +4 -0
- package/dist/types/transformers/reverse/gatewayBot.d.ts.map +1 -0
- package/dist/types/transformers/reverse/index.d.ts +20 -0
- package/dist/types/transformers/reverse/index.d.ts.map +1 -0
- package/dist/types/transformers/reverse/interactionResponse.d.ts +4 -0
- package/dist/types/transformers/reverse/interactionResponse.d.ts.map +1 -0
- package/dist/types/transformers/reverse/member.d.ts +7 -0
- package/dist/types/transformers/reverse/member.d.ts.map +1 -0
- package/dist/types/transformers/reverse/presence.d.ts +11 -0
- package/dist/types/transformers/reverse/presence.d.ts.map +1 -0
- package/dist/types/transformers/reverse/team.d.ts +5 -0
- package/dist/types/transformers/reverse/team.d.ts.map +1 -0
- package/dist/types/transformers/reverse/widgetSettings.d.ts +5 -0
- package/dist/types/transformers/reverse/widgetSettings.d.ts.map +1 -0
- package/dist/types/transformers/role.d.ts +79 -0
- package/dist/types/transformers/role.d.ts.map +1 -0
- package/dist/types/transformers/scheduledEvent.d.ts +38 -0
- package/dist/types/transformers/scheduledEvent.d.ts.map +1 -0
- package/dist/types/transformers/sku.d.ts +18 -0
- package/dist/types/transformers/sku.d.ts.map +1 -0
- package/dist/types/transformers/stageInstance.d.ts +16 -0
- package/dist/types/transformers/stageInstance.d.ts.map +1 -0
- package/dist/types/transformers/stageInviteInstance.d.ts +16 -0
- package/dist/types/transformers/stageInviteInstance.d.ts.map +1 -0
- package/dist/types/transformers/sticker.d.ts +38 -0
- package/dist/types/transformers/sticker.d.ts.map +1 -0
- package/dist/types/transformers/team.d.ts +16 -0
- package/dist/types/transformers/team.d.ts.map +1 -0
- package/dist/types/transformers/template.d.ts +17 -0
- package/dist/types/transformers/template.d.ts.map +1 -0
- package/dist/types/transformers/threadMember.d.ts +15 -0
- package/dist/types/transformers/threadMember.d.ts.map +1 -0
- package/dist/types/transformers/toggles/Permissions.d.ts +9 -0
- package/dist/types/transformers/toggles/Permissions.d.ts.map +1 -0
- package/dist/types/transformers/toggles/ToggleBitfield.d.ts +23 -0
- package/dist/types/transformers/toggles/ToggleBitfield.d.ts.map +1 -0
- package/dist/types/transformers/toggles/channel.d.ts +33 -0
- package/dist/types/transformers/toggles/channel.d.ts.map +1 -0
- package/dist/types/transformers/toggles/emoji.d.ts +29 -0
- package/dist/types/transformers/toggles/emoji.d.ts.map +1 -0
- package/dist/types/transformers/toggles/guild.d.ts +130 -0
- package/dist/types/transformers/toggles/guild.d.ts.map +1 -0
- package/dist/types/transformers/toggles/index.d.ts +10 -0
- package/dist/types/transformers/toggles/index.d.ts.map +1 -0
- package/dist/types/transformers/toggles/member.d.ts +25 -0
- package/dist/types/transformers/toggles/member.d.ts.map +1 -0
- package/dist/types/transformers/toggles/role.d.ts +37 -0
- package/dist/types/transformers/toggles/role.d.ts.map +1 -0
- package/dist/types/transformers/toggles/user.d.ts +29 -0
- package/dist/types/transformers/toggles/user.d.ts.map +1 -0
- package/dist/types/transformers/toggles/voice.d.ts +41 -0
- package/dist/types/transformers/toggles/voice.d.ts.map +1 -0
- package/dist/types/transformers/user.d.ts +46 -0
- package/dist/types/transformers/user.d.ts.map +1 -0
- package/dist/types/transformers/voiceRegion.d.ts +11 -0
- package/dist/types/transformers/voiceRegion.d.ts.map +1 -0
- package/dist/types/transformers/voiceState.d.ts +17 -0
- package/dist/types/transformers/voiceState.d.ts.map +1 -0
- package/dist/types/transformers/webhook.d.ts +30 -0
- package/dist/types/transformers/webhook.d.ts.map +1 -0
- package/dist/types/transformers/welcomeScreen.d.ts +13 -0
- package/dist/types/transformers/welcomeScreen.d.ts.map +1 -0
- package/dist/types/transformers/widget.d.ts +23 -0
- package/dist/types/transformers/widget.d.ts.map +1 -0
- package/dist/types/transformers/widgetSettings.d.ts +8 -0
- package/dist/types/transformers/widgetSettings.d.ts.map +1 -0
- package/dist/types/transformers.d.ts +513 -0
- package/dist/types/transformers.d.ts.map +1 -0
- package/dist/types/typings.d.ts +201 -0
- package/dist/types/typings.d.ts.map +1 -0
- package/dist/types/utils.d.ts +5 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/package.json +26 -21
- package/dist/bot.d.ts +0 -101
- package/dist/bot.d.ts.map +0 -1
- package/dist/bot.js +0 -2
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2
|
@@ -0,0 +1,645 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "createBotHelpers", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return createBotHelpers;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _utils = require("@discordeno/utils");
|
|
12
|
+
function createBotHelpers(bot) {
|
|
13
|
+
return {
|
|
14
|
+
createAutomodRule: async (guildId, options, reason)=>{
|
|
15
|
+
return bot.transformers.automodRule(bot, (0, _utils.snakelize)(await bot.rest.createAutomodRule(guildId, options, reason)));
|
|
16
|
+
},
|
|
17
|
+
createChannel: async (guildId, options, reason)=>{
|
|
18
|
+
return bot.transformers.channel(bot, {
|
|
19
|
+
channel: (0, _utils.snakelize)(await bot.rest.createChannel(guildId, options, reason)),
|
|
20
|
+
guildId
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
createEmoji: async (guildId, options, reason)=>{
|
|
24
|
+
return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.createEmoji(guildId, options, reason)));
|
|
25
|
+
},
|
|
26
|
+
createForumThread: async (channelId, options, reason)=>{
|
|
27
|
+
return bot.transformers.channel(bot, {
|
|
28
|
+
channel: (0, _utils.snakelize)(await bot.rest.createForumThread(channelId, options, reason))
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
createGlobalApplicationCommand: async (command, options)=>{
|
|
32
|
+
return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.createGlobalApplicationCommand(command, options)));
|
|
33
|
+
},
|
|
34
|
+
createGuild: async (options)=>{
|
|
35
|
+
return bot.transformers.guild(bot, {
|
|
36
|
+
guild: (0, _utils.snakelize)(await bot.rest.createGuild(options)),
|
|
37
|
+
shardId: 0
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
createGuildApplicationCommand: async (command, guildId, options)=>{
|
|
41
|
+
return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.createGuildApplicationCommand(command, guildId, options)));
|
|
42
|
+
},
|
|
43
|
+
createGuildFromTemplate: async (templateCode, options)=>{
|
|
44
|
+
return bot.transformers.guild(bot, {
|
|
45
|
+
guild: (0, _utils.snakelize)(await bot.rest.createGuildFromTemplate(templateCode, options)),
|
|
46
|
+
shardId: 0
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
createGuildSticker: async (guildId, options, reason)=>{
|
|
50
|
+
return bot.transformers.sticker(bot, (0, _utils.snakelize)(await bot.rest.createGuildSticker(guildId, options, reason)));
|
|
51
|
+
},
|
|
52
|
+
createGuildTemplate: async (guildId, options)=>{
|
|
53
|
+
return bot.transformers.template(bot, (0, _utils.snakelize)(await bot.rest.createGuildTemplate(guildId, options)));
|
|
54
|
+
},
|
|
55
|
+
createInvite: async (channelId, options, reason)=>{
|
|
56
|
+
return await bot.rest.createInvite(channelId, options, reason);
|
|
57
|
+
},
|
|
58
|
+
createRole: async (guildId, options, reason)=>{
|
|
59
|
+
return bot.transformers.role(bot, {
|
|
60
|
+
role: (0, _utils.snakelize)(await bot.rest.createRole(guildId, options, reason)),
|
|
61
|
+
guildId
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
createScheduledEvent: async (guildId, options, reason)=>{
|
|
65
|
+
return bot.transformers.scheduledEvent(bot, (0, _utils.snakelize)(await bot.rest.createScheduledEvent(guildId, options, reason)));
|
|
66
|
+
},
|
|
67
|
+
createStageInstance: async (options, reason)=>{
|
|
68
|
+
return bot.transformers.stageInstance(bot, (0, _utils.snakelize)(await bot.rest.createStageInstance(options, reason)));
|
|
69
|
+
},
|
|
70
|
+
createWebhook: async (channelId, options, reason)=>{
|
|
71
|
+
return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.createWebhook(channelId, options, reason)));
|
|
72
|
+
},
|
|
73
|
+
editApplicationCommandPermissions: async (guildId, commandId, bearerToken, options)=>{
|
|
74
|
+
return bot.transformers.applicationCommandPermission(bot, (0, _utils.snakelize)(await bot.rest.editApplicationCommandPermissions(guildId, commandId, bearerToken, options)));
|
|
75
|
+
},
|
|
76
|
+
editAutomodRule: async (guildId, ruleId, options, reason)=>{
|
|
77
|
+
return bot.transformers.automodRule(bot, (0, _utils.snakelize)(await bot.rest.editAutomodRule(guildId, ruleId, options, reason)));
|
|
78
|
+
},
|
|
79
|
+
editBotProfile: async (options)=>{
|
|
80
|
+
return bot.transformers.user(bot, (0, _utils.snakelize)(await bot.rest.editBotProfile(options)));
|
|
81
|
+
},
|
|
82
|
+
editChannel: async (channelId, options, reason)=>{
|
|
83
|
+
return bot.transformers.channel(bot, {
|
|
84
|
+
channel: (0, _utils.snakelize)(await bot.rest.editChannel(channelId, options, reason))
|
|
85
|
+
});
|
|
86
|
+
},
|
|
87
|
+
editEmoji: async (guildId, id, options, reason)=>{
|
|
88
|
+
return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.editEmoji(guildId, id, options, reason)));
|
|
89
|
+
},
|
|
90
|
+
editFollowupMessage: async (token, messageId, options)=>{
|
|
91
|
+
return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.editFollowupMessage(token, messageId, options)));
|
|
92
|
+
},
|
|
93
|
+
editGlobalApplicationCommand: async (commandId, options)=>{
|
|
94
|
+
return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.editGlobalApplicationCommand(commandId, options)));
|
|
95
|
+
},
|
|
96
|
+
editGuild: async (guildId, options, reason)=>{
|
|
97
|
+
return bot.transformers.guild(bot, {
|
|
98
|
+
guild: (0, _utils.snakelize)(await bot.rest.editGuild(guildId, options, reason)),
|
|
99
|
+
shardId: 0
|
|
100
|
+
});
|
|
101
|
+
},
|
|
102
|
+
editGuildApplicationCommand: async (commandId, guildId, options)=>{
|
|
103
|
+
return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.editGuildApplicationCommand(commandId, guildId, options)));
|
|
104
|
+
},
|
|
105
|
+
editGuildSticker: async (guildId, stickerId, options, reason)=>{
|
|
106
|
+
return bot.transformers.sticker(bot, (0, _utils.snakelize)(await bot.rest.editGuildSticker(guildId, stickerId, options, reason)));
|
|
107
|
+
},
|
|
108
|
+
editGuildTemplate: async (guildId, templateCode, options)=>{
|
|
109
|
+
return bot.transformers.template(bot, (0, _utils.snakelize)(await bot.rest.editGuildTemplate(guildId, templateCode, options)));
|
|
110
|
+
},
|
|
111
|
+
editMessage: async (channelId, messageId, options)=>{
|
|
112
|
+
return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.editMessage(channelId, messageId, options)));
|
|
113
|
+
},
|
|
114
|
+
editOriginalInteractionResponse: async (token, options)=>{
|
|
115
|
+
const result = await bot.rest.editOriginalInteractionResponse(token, options);
|
|
116
|
+
if (!result) return;
|
|
117
|
+
return bot.transformers.message(bot, (0, _utils.snakelize)(result));
|
|
118
|
+
},
|
|
119
|
+
editOriginalWebhookMessage: async (webhookId, token, options)=>{
|
|
120
|
+
return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.editOriginalWebhookMessage(webhookId, token, options)));
|
|
121
|
+
},
|
|
122
|
+
editRole: async (guildId, roleId, options, reason)=>{
|
|
123
|
+
return bot.transformers.role(bot, {
|
|
124
|
+
role: (0, _utils.snakelize)(await bot.rest.editRole(guildId, roleId, options, reason)),
|
|
125
|
+
guildId
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
editRolePositions: async (guildId, options, reason)=>{
|
|
129
|
+
return (0, _utils.snakelize)(await bot.rest.editRolePositions(guildId, options, reason)).map((role)=>bot.transformers.role(bot, {
|
|
130
|
+
role,
|
|
131
|
+
guildId
|
|
132
|
+
}));
|
|
133
|
+
},
|
|
134
|
+
editScheduledEvent: async (guildId, eventId, options, reason)=>{
|
|
135
|
+
return bot.transformers.scheduledEvent(bot, (0, _utils.snakelize)(await bot.rest.editScheduledEvent(guildId, eventId, options, reason)));
|
|
136
|
+
},
|
|
137
|
+
editStageInstance: async (channelId, topic, reason)=>{
|
|
138
|
+
return bot.transformers.stageInstance(bot, (0, _utils.snakelize)(await bot.rest.editStageInstance(channelId, topic, reason)));
|
|
139
|
+
},
|
|
140
|
+
editWebhook: async (webhookId, options, reason)=>{
|
|
141
|
+
return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.editWebhook(webhookId, options, reason)));
|
|
142
|
+
},
|
|
143
|
+
editWebhookMessage: async (webhookId, token, messageId, options)=>{
|
|
144
|
+
return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.editWebhookMessage(webhookId, token, messageId, options)));
|
|
145
|
+
},
|
|
146
|
+
editWebhookWithToken: async (webhookId, token, options)=>{
|
|
147
|
+
return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.editWebhookWithToken(webhookId, token, options)));
|
|
148
|
+
},
|
|
149
|
+
editWelcomeScreen: async (guildId, options, reason)=>{
|
|
150
|
+
return bot.transformers.welcomeScreen(bot, (0, _utils.snakelize)(await bot.rest.editWelcomeScreen(guildId, options, reason)));
|
|
151
|
+
},
|
|
152
|
+
editWidgetSettings: async (guildId, options, reason)=>{
|
|
153
|
+
return bot.transformers.widgetSettings(bot, (0, _utils.snakelize)(await bot.rest.editWidgetSettings(guildId, options, reason)));
|
|
154
|
+
},
|
|
155
|
+
executeWebhook: async (webhookId, token, options)=>{
|
|
156
|
+
const result = await bot.rest.executeWebhook(webhookId, token, options);
|
|
157
|
+
if (!result) return;
|
|
158
|
+
return bot.transformers.message(bot, (0, _utils.snakelize)(result));
|
|
159
|
+
},
|
|
160
|
+
followAnnouncement: async (sourceChannelId, targetChannelId)=>{
|
|
161
|
+
return await bot.rest.followAnnouncement(sourceChannelId, targetChannelId);
|
|
162
|
+
},
|
|
163
|
+
getActiveThreads: async (guildId)=>{
|
|
164
|
+
const result = await bot.rest.getActiveThreads(guildId);
|
|
165
|
+
return {
|
|
166
|
+
threads: result.threads.map((thread)=>bot.transformers.channel(bot, {
|
|
167
|
+
guildId,
|
|
168
|
+
channel: (0, _utils.snakelize)(thread)
|
|
169
|
+
})),
|
|
170
|
+
members: result.members.map((member)=>bot.transformers.threadMember(bot, (0, _utils.snakelize)(member)))
|
|
171
|
+
};
|
|
172
|
+
},
|
|
173
|
+
getApplicationInfo: async ()=>{
|
|
174
|
+
return bot.transformers.application(bot, {
|
|
175
|
+
application: (0, _utils.snakelize)(await bot.rest.getApplicationInfo()),
|
|
176
|
+
shardId: 0
|
|
177
|
+
});
|
|
178
|
+
},
|
|
179
|
+
editApplicationInfo: async (body)=>{
|
|
180
|
+
return bot.transformers.application(bot, {
|
|
181
|
+
application: (0, _utils.snakelize)(await bot.rest.editApplicationInfo(body)),
|
|
182
|
+
shardId: 0
|
|
183
|
+
});
|
|
184
|
+
},
|
|
185
|
+
getCurrentAuthenticationInfo: async (bearerToken)=>{
|
|
186
|
+
return await bot.rest.getCurrentAuthenticationInfo(bearerToken);
|
|
187
|
+
},
|
|
188
|
+
exchangeToken: async (clientId, clientSecret, options)=>{
|
|
189
|
+
return await bot.rest.exchangeToken(clientId, clientSecret, options);
|
|
190
|
+
},
|
|
191
|
+
revokeToken: async (clientId, clientSecret, options)=>{
|
|
192
|
+
return await bot.rest.revokeToken(clientId, clientSecret, options);
|
|
193
|
+
},
|
|
194
|
+
getApplicationCommandPermission: async (guildId, commandId, options)=>{
|
|
195
|
+
const res = await bot.rest.getApplicationCommandPermission(guildId, commandId, options);
|
|
196
|
+
const snakedRes = (0, _utils.snakelize)(res);
|
|
197
|
+
return bot.transformers.applicationCommandPermission(bot, snakedRes);
|
|
198
|
+
},
|
|
199
|
+
getApplicationCommandPermissions: async (guildId, options)=>{
|
|
200
|
+
return (await bot.rest.getApplicationCommandPermissions(guildId, options)).map((res)=>bot.transformers.applicationCommandPermission(bot, (0, _utils.snakelize)(res)));
|
|
201
|
+
},
|
|
202
|
+
getAuditLog: async (guildId, options)=>{
|
|
203
|
+
return await bot.rest.getAuditLog(guildId, options);
|
|
204
|
+
},
|
|
205
|
+
getAutomodRule: async (guildId, ruleId)=>{
|
|
206
|
+
return bot.transformers.automodRule(bot, (0, _utils.snakelize)(await bot.rest.getAutomodRule(guildId, ruleId)));
|
|
207
|
+
},
|
|
208
|
+
getAutomodRules: async (guildId)=>{
|
|
209
|
+
return (await bot.rest.getAutomodRules(guildId)).map((res)=>bot.transformers.automodRule(bot, (0, _utils.snakelize)(res)));
|
|
210
|
+
},
|
|
211
|
+
getAvailableVoiceRegions: async ()=>{
|
|
212
|
+
return (await bot.rest.getAvailableVoiceRegions()).map((res)=>bot.transformers.voiceRegion(bot, (0, _utils.snakelize)(res)));
|
|
213
|
+
},
|
|
214
|
+
getBan: async (guildId, userId)=>{
|
|
215
|
+
return await bot.rest.getBan(guildId, userId);
|
|
216
|
+
},
|
|
217
|
+
getBans: async (guildId, options)=>{
|
|
218
|
+
return await bot.rest.getBans(guildId, options);
|
|
219
|
+
},
|
|
220
|
+
getChannel: async (channelId)=>{
|
|
221
|
+
return bot.transformers.channel(bot, {
|
|
222
|
+
channel: (0, _utils.snakelize)(await bot.rest.getChannel(channelId))
|
|
223
|
+
});
|
|
224
|
+
},
|
|
225
|
+
getChannelInvites: async (channelId)=>{
|
|
226
|
+
return await bot.rest.getChannelInvites(channelId);
|
|
227
|
+
// return (await bot.rest.getChannelInvites(channelId)).map((res) => bot.transformers.invite(bot, snakelize(res)))
|
|
228
|
+
},
|
|
229
|
+
getChannels: async (guildId)=>{
|
|
230
|
+
return (await bot.rest.getChannels(guildId)).map((res)=>bot.transformers.channel(bot, {
|
|
231
|
+
channel: (0, _utils.snakelize)(res),
|
|
232
|
+
guildId
|
|
233
|
+
}));
|
|
234
|
+
},
|
|
235
|
+
getChannelWebhooks: async (channelId)=>{
|
|
236
|
+
return (await bot.rest.getChannelWebhooks(channelId)).map((res)=>bot.transformers.webhook(bot, (0, _utils.snakelize)(res)));
|
|
237
|
+
},
|
|
238
|
+
getDmChannel: async (userId)=>{
|
|
239
|
+
return bot.transformers.channel(bot, {
|
|
240
|
+
channel: (0, _utils.snakelize)(await bot.rest.getDmChannel(userId))
|
|
241
|
+
});
|
|
242
|
+
},
|
|
243
|
+
getGroupDmChannel: async (options)=>{
|
|
244
|
+
return bot.transformers.channel(bot, {
|
|
245
|
+
channel: (0, _utils.snakelize)(await bot.rest.getGroupDmChannel(options))
|
|
246
|
+
});
|
|
247
|
+
},
|
|
248
|
+
getEmoji: async (guildId, emojiId)=>{
|
|
249
|
+
return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.getEmoji(guildId, emojiId)));
|
|
250
|
+
},
|
|
251
|
+
getEmojis: async (guildId)=>{
|
|
252
|
+
return (await bot.rest.getEmojis(guildId)).map((res)=>bot.transformers.emoji(bot, (0, _utils.snakelize)(res)));
|
|
253
|
+
},
|
|
254
|
+
getFollowupMessage: async (token, messageId)=>{
|
|
255
|
+
return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.getFollowupMessage(token, messageId)));
|
|
256
|
+
},
|
|
257
|
+
getGatewayBot: async ()=>{
|
|
258
|
+
return bot.transformers.gatewayBot(bot, (0, _utils.snakelize)(await bot.rest.getGatewayBot()));
|
|
259
|
+
},
|
|
260
|
+
getGlobalApplicationCommand: async (commandId)=>{
|
|
261
|
+
return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.getGlobalApplicationCommand(commandId)));
|
|
262
|
+
},
|
|
263
|
+
getGlobalApplicationCommands: async ()=>{
|
|
264
|
+
return (await bot.rest.getGlobalApplicationCommands()).map((res)=>bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(res)));
|
|
265
|
+
},
|
|
266
|
+
getGuild: async (guildId, options)=>{
|
|
267
|
+
return bot.transformers.guild(bot, {
|
|
268
|
+
guild: (0, _utils.snakelize)(await bot.rest.getGuild(guildId, options)),
|
|
269
|
+
shardId: 0
|
|
270
|
+
});
|
|
271
|
+
},
|
|
272
|
+
getGuilds: async (bearerToken, options)=>{
|
|
273
|
+
return await bot.rest.getGuilds(bearerToken, options);
|
|
274
|
+
},
|
|
275
|
+
getGuildApplicationCommand: async (commandId, guildId)=>{
|
|
276
|
+
return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.getGuildApplicationCommand(commandId, guildId)));
|
|
277
|
+
},
|
|
278
|
+
getGuildApplicationCommands: async (guildId)=>{
|
|
279
|
+
return (await bot.rest.getGuildApplicationCommands(guildId)).map((res)=>bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(res)));
|
|
280
|
+
},
|
|
281
|
+
getGuildPreview: async (guildId)=>{
|
|
282
|
+
return await bot.rest.getGuildPreview(guildId);
|
|
283
|
+
// return bot.transformers.xxx(bot, snakelize(await bot.rest.getGuildPreview(guildId)))
|
|
284
|
+
},
|
|
285
|
+
getGuildSticker: async (guildId, stickerId)=>{
|
|
286
|
+
return bot.transformers.sticker(bot, (0, _utils.snakelize)(await bot.rest.getGuildSticker(guildId, stickerId)));
|
|
287
|
+
},
|
|
288
|
+
getGuildStickers: async (guildId)=>{
|
|
289
|
+
return (await bot.rest.getGuildStickers(guildId)).map((res)=>bot.transformers.sticker(bot, (0, _utils.snakelize)(res)));
|
|
290
|
+
},
|
|
291
|
+
getGuildTemplate: async (templateCode)=>{
|
|
292
|
+
return bot.transformers.template(bot, (0, _utils.snakelize)(await bot.rest.getGuildTemplate(templateCode)));
|
|
293
|
+
},
|
|
294
|
+
getGuildTemplates: async (guildId)=>{
|
|
295
|
+
return (await bot.rest.getGuildTemplates(guildId)).map((res)=>bot.transformers.template(bot, (0, _utils.snakelize)(res)));
|
|
296
|
+
},
|
|
297
|
+
getGuildWebhooks: async (guildId)=>{
|
|
298
|
+
return (await bot.rest.getGuildWebhooks(guildId)).map((res)=>bot.transformers.webhook(bot, (0, _utils.snakelize)(res)));
|
|
299
|
+
},
|
|
300
|
+
getIntegrations: async (guildId)=>{
|
|
301
|
+
return (await bot.rest.getIntegrations(guildId)).map((res)=>bot.transformers.integration(bot, (0, _utils.snakelize)({
|
|
302
|
+
...res,
|
|
303
|
+
guildId: guildId.toString()
|
|
304
|
+
})));
|
|
305
|
+
},
|
|
306
|
+
getInvite: async (inviteCode, options)=>{
|
|
307
|
+
return bot.transformers.invite(bot, {
|
|
308
|
+
invite: (0, _utils.snakelize)(await bot.rest.getInvite(inviteCode, options)),
|
|
309
|
+
shardId: 0
|
|
310
|
+
});
|
|
311
|
+
},
|
|
312
|
+
getInvites: async (guildId)=>{
|
|
313
|
+
return (await bot.rest.getInvites(guildId)).map((res)=>bot.transformers.invite(bot, {
|
|
314
|
+
invite: (0, _utils.snakelize)(res),
|
|
315
|
+
shardId: 0
|
|
316
|
+
}));
|
|
317
|
+
},
|
|
318
|
+
getMessage: async (channelId, messageId)=>{
|
|
319
|
+
return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.getMessage(channelId, messageId)));
|
|
320
|
+
},
|
|
321
|
+
getMessages: async (channelId, options)=>{
|
|
322
|
+
return (await bot.rest.getMessages(channelId, options)).map((res)=>bot.transformers.message(bot, (0, _utils.snakelize)(res)));
|
|
323
|
+
},
|
|
324
|
+
getStickerPacks: async ()=>{
|
|
325
|
+
return (await bot.rest.getStickerPacks()).map((res)=>bot.transformers.stickerPack(bot, (0, _utils.snakelize)(res)));
|
|
326
|
+
},
|
|
327
|
+
getOriginalInteractionResponse: async (token)=>{
|
|
328
|
+
return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.getOriginalInteractionResponse(token)));
|
|
329
|
+
},
|
|
330
|
+
getPinnedMessages: async (channelId)=>{
|
|
331
|
+
return (await bot.rest.getPinnedMessages(channelId)).map((res)=>bot.transformers.message(bot, (0, _utils.snakelize)(res)));
|
|
332
|
+
},
|
|
333
|
+
getPrivateArchivedThreads: async (channelId, options)=>{
|
|
334
|
+
return await bot.rest.getPrivateArchivedThreads(channelId, options);
|
|
335
|
+
// return bot.transformers.xxx(bot, snakelize(await bot.rest.getPrivateArchivedThreads(channelId, options)))
|
|
336
|
+
},
|
|
337
|
+
getPrivateJoinedArchivedThreads: async (channelId, options)=>{
|
|
338
|
+
return await bot.rest.getPrivateJoinedArchivedThreads(channelId, options);
|
|
339
|
+
// return bot.transformers.xxx(bot, snakelize(await bot.rest.getPrivateJoinedArchivedThreads(channelId, options)))
|
|
340
|
+
},
|
|
341
|
+
getPruneCount: async (guildId, options)=>{
|
|
342
|
+
return await bot.rest.getPruneCount(guildId, options);
|
|
343
|
+
// return bot.transformers.xxx(bot, snakelize(await bot.rest.getPruneCount(guildId, options)))
|
|
344
|
+
},
|
|
345
|
+
getPublicArchivedThreads: async (channelId, options)=>{
|
|
346
|
+
return await bot.rest.getPublicArchivedThreads(channelId, options);
|
|
347
|
+
// return bot.transformers.xxx(bot, snakelize(await bot.rest.getPublicArchivedThreads(channelId, options)))
|
|
348
|
+
},
|
|
349
|
+
getRoles: async (guildId)=>{
|
|
350
|
+
return (0, _utils.snakelize)(await bot.rest.getRoles(guildId)).map((role)=>bot.transformers.role(bot, {
|
|
351
|
+
role,
|
|
352
|
+
guildId
|
|
353
|
+
}));
|
|
354
|
+
},
|
|
355
|
+
getScheduledEvent: async (guildId, eventId, options)=>{
|
|
356
|
+
return bot.transformers.scheduledEvent(bot, (0, _utils.snakelize)(await bot.rest.getScheduledEvent(guildId, eventId, options)));
|
|
357
|
+
},
|
|
358
|
+
getScheduledEvents: async (guildId, options)=>{
|
|
359
|
+
return (await bot.rest.getScheduledEvents(guildId, options)).map((res)=>bot.transformers.scheduledEvent(bot, (0, _utils.snakelize)(res)));
|
|
360
|
+
},
|
|
361
|
+
getScheduledEventUsers: async (guildId, eventId, options)=>{
|
|
362
|
+
return (await bot.rest.getScheduledEventUsers(guildId, eventId, options)).map((u)=>{
|
|
363
|
+
return {
|
|
364
|
+
user: bot.transformers.user(bot, (0, _utils.snakelize)(u.user)),
|
|
365
|
+
member: u.member && bot.transformers.member(bot, (0, _utils.snakelize)(u.member), guildId, bot.transformers.snowflake(u.user.id))
|
|
366
|
+
};
|
|
367
|
+
});
|
|
368
|
+
},
|
|
369
|
+
getSessionInfo: async ()=>{
|
|
370
|
+
return bot.transformers.gatewayBot(bot, (0, _utils.snakelize)(await bot.rest.getSessionInfo()));
|
|
371
|
+
},
|
|
372
|
+
getStageInstance: async (channelId)=>{
|
|
373
|
+
return bot.transformers.stageInstance(bot, (0, _utils.snakelize)(await bot.rest.getStageInstance(channelId)));
|
|
374
|
+
},
|
|
375
|
+
getSticker: async (stickerId)=>{
|
|
376
|
+
return bot.transformers.sticker(bot, (0, _utils.snakelize)(await bot.rest.getSticker(stickerId)));
|
|
377
|
+
},
|
|
378
|
+
getThreadMember: async (channelId, userId)=>{
|
|
379
|
+
return bot.transformers.threadMember(bot, (0, _utils.snakelize)(await bot.rest.getThreadMember(channelId, userId)));
|
|
380
|
+
},
|
|
381
|
+
getThreadMembers: async (channelId)=>{
|
|
382
|
+
return (await bot.rest.getThreadMembers(channelId)).map((res)=>bot.transformers.threadMember(bot, (0, _utils.snakelize)(res)));
|
|
383
|
+
},
|
|
384
|
+
getReactions: async (channelId, messageId, reaction, options)=>{
|
|
385
|
+
return (await bot.rest.getReactions(channelId, messageId, reaction, options)).map((res)=>bot.transformers.user(bot, (0, _utils.snakelize)(res)));
|
|
386
|
+
},
|
|
387
|
+
getUser: async (id)=>{
|
|
388
|
+
return bot.transformers.user(bot, (0, _utils.snakelize)(await bot.rest.getUser(id)));
|
|
389
|
+
},
|
|
390
|
+
getCurrentUser: async (bearerToken)=>{
|
|
391
|
+
return bot.transformers.user(bot, (0, _utils.snakelize)(await bot.rest.getCurrentUser(bearerToken)));
|
|
392
|
+
},
|
|
393
|
+
getUserConnections: async (bearerToken)=>{
|
|
394
|
+
return await bot.rest.getUserConnections(bearerToken);
|
|
395
|
+
},
|
|
396
|
+
getUserApplicationRoleConnection: async (bearerToken, applicationId)=>{
|
|
397
|
+
return await bot.rest.getUserApplicationRoleConnection(bearerToken, applicationId);
|
|
398
|
+
},
|
|
399
|
+
getVanityUrl: async (guildId)=>{
|
|
400
|
+
return await bot.rest.getVanityUrl(guildId);
|
|
401
|
+
},
|
|
402
|
+
getVoiceRegions: async (guildId)=>{
|
|
403
|
+
return (await bot.rest.getVoiceRegions(guildId)).map((res)=>bot.transformers.voiceRegion(bot, (0, _utils.snakelize)(res)));
|
|
404
|
+
},
|
|
405
|
+
getWebhook: async (webhookId)=>{
|
|
406
|
+
return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.getWebhook(webhookId)));
|
|
407
|
+
},
|
|
408
|
+
getWebhookMessage: async (webhookId, token, messageId, options)=>{
|
|
409
|
+
return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.getWebhookMessage(webhookId, token, messageId, options)));
|
|
410
|
+
},
|
|
411
|
+
getWebhookWithToken: async (webhookId, token)=>{
|
|
412
|
+
return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.getWebhookWithToken(webhookId, token)));
|
|
413
|
+
},
|
|
414
|
+
getWelcomeScreen: async (guildId)=>{
|
|
415
|
+
return bot.transformers.welcomeScreen(bot, (0, _utils.snakelize)(await bot.rest.getWelcomeScreen(guildId)));
|
|
416
|
+
},
|
|
417
|
+
getWidget: async (guildId)=>{
|
|
418
|
+
return bot.transformers.widget(bot, (0, _utils.snakelize)(await bot.rest.getWidget(guildId)));
|
|
419
|
+
},
|
|
420
|
+
getWidgetSettings: async (guildId)=>{
|
|
421
|
+
return bot.transformers.widgetSettings(bot, (0, _utils.snakelize)(await bot.rest.getWidgetSettings(guildId)));
|
|
422
|
+
},
|
|
423
|
+
publishMessage: async (channelId, messageId)=>{
|
|
424
|
+
return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.publishMessage(channelId, messageId)));
|
|
425
|
+
},
|
|
426
|
+
sendMessage: async (channelId, options)=>{
|
|
427
|
+
return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.sendMessage(channelId, options)));
|
|
428
|
+
},
|
|
429
|
+
sendFollowupMessage: async (token, options)=>{
|
|
430
|
+
return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.sendFollowupMessage(token, options)));
|
|
431
|
+
},
|
|
432
|
+
startThreadWithMessage: async (channelId, messageId, options, reason)=>{
|
|
433
|
+
return bot.transformers.channel(bot, {
|
|
434
|
+
channel: (0, _utils.snakelize)(await bot.rest.startThreadWithMessage(channelId, messageId, options, reason))
|
|
435
|
+
});
|
|
436
|
+
},
|
|
437
|
+
startThreadWithoutMessage: async (channelId, options, reason)=>{
|
|
438
|
+
return bot.transformers.channel(bot, {
|
|
439
|
+
channel: (0, _utils.snakelize)(await bot.rest.startThreadWithoutMessage(channelId, options, reason))
|
|
440
|
+
});
|
|
441
|
+
},
|
|
442
|
+
syncGuildTemplate: async (guildId)=>{
|
|
443
|
+
return bot.transformers.template(bot, (0, _utils.snakelize)(await bot.rest.syncGuildTemplate(guildId)));
|
|
444
|
+
},
|
|
445
|
+
upsertGlobalApplicationCommands: async (commands, options)=>{
|
|
446
|
+
return (await bot.rest.upsertGlobalApplicationCommands(commands, options)).map((res)=>bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(res)));
|
|
447
|
+
},
|
|
448
|
+
upsertGuildApplicationCommands: async (guildId, commands, options)=>{
|
|
449
|
+
return (await bot.rest.upsertGuildApplicationCommands(guildId, commands, options)).map((res)=>bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(res)));
|
|
450
|
+
},
|
|
451
|
+
editBotMember: async (guildId, options, reason)=>{
|
|
452
|
+
return bot.transformers.member(bot, (0, _utils.snakelize)(await bot.rest.editBotMember(guildId, options, reason)), guildId, bot.id);
|
|
453
|
+
},
|
|
454
|
+
editMember: async (guildId, userId, options, reason)=>{
|
|
455
|
+
return bot.transformers.member(bot, (0, _utils.snakelize)(await bot.rest.editMember(guildId, userId, options, reason)), guildId, userId);
|
|
456
|
+
},
|
|
457
|
+
getMember: async (guildId, userId)=>{
|
|
458
|
+
return bot.transformers.member(bot, (0, _utils.snakelize)(await bot.rest.getMember(guildId, userId)), guildId, userId);
|
|
459
|
+
},
|
|
460
|
+
getCurrentMember: async (guildId, bearerToken)=>{
|
|
461
|
+
const res = await bot.rest.getCurrentMember(guildId, bearerToken);
|
|
462
|
+
return bot.transformers.member(bot, (0, _utils.snakelize)(res), guildId, bot.transformers.snowflake(res.user.id));
|
|
463
|
+
},
|
|
464
|
+
getMembers: async (guildId, options)=>{
|
|
465
|
+
return (await bot.rest.getMembers(guildId, options)).map((res)=>bot.transformers.member(bot, (0, _utils.snakelize)(res), guildId, bot.transformers.snowflake(res.user.id)));
|
|
466
|
+
},
|
|
467
|
+
pruneMembers: async (guildId, options, reason)=>{
|
|
468
|
+
return await bot.rest.pruneMembers(guildId, options, reason);
|
|
469
|
+
},
|
|
470
|
+
searchMembers: async (guildId, query, options)=>{
|
|
471
|
+
return (await bot.rest.searchMembers(guildId, query, options)).map((res)=>bot.transformers.member(bot, (0, _utils.snakelize)(res), guildId, bot.transformers.snowflake(res.user.id)));
|
|
472
|
+
},
|
|
473
|
+
// All useless void return functions here
|
|
474
|
+
addReaction: async (channelId, messageId, reaction)=>{
|
|
475
|
+
return await bot.rest.addReaction(channelId, messageId, reaction);
|
|
476
|
+
},
|
|
477
|
+
addReactions: async (channelId, messageId, reactions, ordered)=>{
|
|
478
|
+
return await bot.rest.addReactions(channelId, messageId, reactions, ordered);
|
|
479
|
+
},
|
|
480
|
+
addRole: async (guildId, userId, roleId, reason)=>{
|
|
481
|
+
return await bot.rest.addRole(guildId, userId, roleId, reason);
|
|
482
|
+
},
|
|
483
|
+
addThreadMember: async (channelId, userId)=>{
|
|
484
|
+
return await bot.rest.addThreadMember(channelId, userId);
|
|
485
|
+
},
|
|
486
|
+
addDmRecipient: async (channelId, userId, options)=>{
|
|
487
|
+
return await bot.rest.addDmRecipient(channelId, userId, options);
|
|
488
|
+
},
|
|
489
|
+
addGuildMember: async (guildId, userId, options)=>{
|
|
490
|
+
return await bot.rest.addGuildMember(guildId, userId, options);
|
|
491
|
+
},
|
|
492
|
+
deleteAutomodRule: async (guildId, ruleId, reason)=>{
|
|
493
|
+
return await bot.rest.deleteAutomodRule(guildId, ruleId, reason);
|
|
494
|
+
},
|
|
495
|
+
deleteChannel: async (channelId, reason)=>{
|
|
496
|
+
return await bot.rest.deleteChannel(channelId, reason);
|
|
497
|
+
},
|
|
498
|
+
deleteChannelPermissionOverride: async (channelId, overwriteId, reason)=>{
|
|
499
|
+
return await bot.rest.deleteChannelPermissionOverride(channelId, overwriteId, reason);
|
|
500
|
+
},
|
|
501
|
+
deleteEmoji: async (guildId, id, reason)=>{
|
|
502
|
+
return await bot.rest.deleteEmoji(guildId, id, reason);
|
|
503
|
+
},
|
|
504
|
+
deleteFollowupMessage: async (token, messageId)=>{
|
|
505
|
+
return await bot.rest.deleteFollowupMessage(token, messageId);
|
|
506
|
+
},
|
|
507
|
+
deleteGlobalApplicationCommand: async (commandId)=>{
|
|
508
|
+
return await bot.rest.deleteGlobalApplicationCommand(commandId);
|
|
509
|
+
},
|
|
510
|
+
deleteGuild: async (guildId)=>{
|
|
511
|
+
return await bot.rest.deleteGuild(guildId);
|
|
512
|
+
},
|
|
513
|
+
deleteGuildApplicationCommand: async (commandId, guildId)=>{
|
|
514
|
+
return await bot.rest.deleteGuildApplicationCommand(commandId, guildId);
|
|
515
|
+
},
|
|
516
|
+
deleteGuildSticker: async (guildId, stickerId, reason)=>{
|
|
517
|
+
return await bot.rest.deleteGuildSticker(guildId, stickerId, reason);
|
|
518
|
+
},
|
|
519
|
+
deleteGuildTemplate: async (guildId, templateCode)=>{
|
|
520
|
+
return await bot.rest.deleteGuildTemplate(guildId, templateCode);
|
|
521
|
+
},
|
|
522
|
+
deleteIntegration: async (guildId, integrationId, reason)=>{
|
|
523
|
+
return await bot.rest.deleteIntegration(guildId, integrationId, reason);
|
|
524
|
+
},
|
|
525
|
+
deleteInvite: async (inviteCode, reason)=>{
|
|
526
|
+
return await bot.rest.deleteInvite(inviteCode, reason);
|
|
527
|
+
},
|
|
528
|
+
deleteMessage: async (channelId, messageId, reason)=>{
|
|
529
|
+
return await bot.rest.deleteMessage(channelId, messageId, reason);
|
|
530
|
+
},
|
|
531
|
+
deleteMessages: async (channelId, messageIds, reason)=>{
|
|
532
|
+
return await bot.rest.deleteMessages(channelId, messageIds, reason);
|
|
533
|
+
},
|
|
534
|
+
deleteOriginalInteractionResponse: async (token)=>{
|
|
535
|
+
return await bot.rest.deleteOriginalInteractionResponse(token);
|
|
536
|
+
},
|
|
537
|
+
deleteOwnReaction: async (channelId, messageId, reaction)=>{
|
|
538
|
+
return await bot.rest.deleteOwnReaction(channelId, messageId, reaction);
|
|
539
|
+
},
|
|
540
|
+
deleteReactionsAll: async (channelId, messageId)=>{
|
|
541
|
+
return await bot.rest.deleteReactionsAll(channelId, messageId);
|
|
542
|
+
},
|
|
543
|
+
deleteReactionsEmoji: async (channelId, messageId, reaction)=>{
|
|
544
|
+
return await bot.rest.deleteReactionsEmoji(channelId, messageId, reaction);
|
|
545
|
+
},
|
|
546
|
+
deleteRole: async (guildId, roleId, reason)=>{
|
|
547
|
+
return await bot.rest.deleteRole(guildId, roleId, reason);
|
|
548
|
+
},
|
|
549
|
+
deleteScheduledEvent: async (guildId, eventId)=>{
|
|
550
|
+
return await bot.rest.deleteScheduledEvent(guildId, eventId);
|
|
551
|
+
},
|
|
552
|
+
deleteStageInstance: async (channelId, reason)=>{
|
|
553
|
+
return await bot.rest.deleteStageInstance(channelId, reason);
|
|
554
|
+
},
|
|
555
|
+
deleteUserReaction: async (channelId, messageId, userId, reaction)=>{
|
|
556
|
+
return await bot.rest.deleteUserReaction(channelId, messageId, userId, reaction);
|
|
557
|
+
},
|
|
558
|
+
deleteWebhook: async (webhookId, reason)=>{
|
|
559
|
+
return await bot.rest.deleteWebhook(webhookId, reason);
|
|
560
|
+
},
|
|
561
|
+
deleteWebhookMessage: async (webhookId, token, messageId, options)=>{
|
|
562
|
+
return await bot.rest.deleteWebhookMessage(webhookId, token, messageId, options);
|
|
563
|
+
},
|
|
564
|
+
deleteWebhookWithToken: async (webhookId, token)=>{
|
|
565
|
+
return await bot.rest.deleteWebhookWithToken(webhookId, token);
|
|
566
|
+
},
|
|
567
|
+
editChannelPermissionOverrides: async (channelId, options, reason)=>{
|
|
568
|
+
return await bot.rest.editChannelPermissionOverrides(channelId, options, reason);
|
|
569
|
+
},
|
|
570
|
+
editChannelPositions: async (guildId, channelPositions)=>{
|
|
571
|
+
return await bot.rest.editChannelPositions(guildId, channelPositions);
|
|
572
|
+
},
|
|
573
|
+
editGuildMfaLevel: async (guildId, mfaLevel, reason)=>{
|
|
574
|
+
return await bot.rest.editGuildMfaLevel(guildId, mfaLevel, reason);
|
|
575
|
+
},
|
|
576
|
+
editOwnVoiceState: async (guildId, options)=>{
|
|
577
|
+
return await bot.rest.editOwnVoiceState(guildId, options);
|
|
578
|
+
},
|
|
579
|
+
editUserVoiceState: async (guildId, options)=>{
|
|
580
|
+
return await bot.rest.editUserVoiceState(guildId, options);
|
|
581
|
+
},
|
|
582
|
+
editUserApplicationRoleConnection: async (bearerToken, applicationId, options)=>{
|
|
583
|
+
return await bot.rest.editUserApplicationRoleConnection(bearerToken, applicationId, options);
|
|
584
|
+
},
|
|
585
|
+
joinThread: async (channelId)=>{
|
|
586
|
+
return await bot.rest.joinThread(channelId);
|
|
587
|
+
},
|
|
588
|
+
leaveGuild: async (guildId)=>{
|
|
589
|
+
return await bot.rest.leaveGuild(guildId);
|
|
590
|
+
},
|
|
591
|
+
leaveThread: async (channelId)=>{
|
|
592
|
+
return await bot.rest.leaveThread(channelId);
|
|
593
|
+
},
|
|
594
|
+
removeRole: async (guildId, userId, roleId, reason)=>{
|
|
595
|
+
return await bot.rest.removeRole(guildId, userId, roleId, reason);
|
|
596
|
+
},
|
|
597
|
+
removeThreadMember: async (channelId, userId)=>{
|
|
598
|
+
return await bot.rest.removeThreadMember(channelId, userId);
|
|
599
|
+
},
|
|
600
|
+
removeDmRecipient: async (channelId, userId)=>{
|
|
601
|
+
return await bot.rest.removeDmRecipient(channelId, userId);
|
|
602
|
+
},
|
|
603
|
+
sendInteractionResponse: async (interactionId, token, options)=>{
|
|
604
|
+
return await bot.rest.sendInteractionResponse(interactionId, token, options);
|
|
605
|
+
},
|
|
606
|
+
triggerTypingIndicator: async (channelId)=>{
|
|
607
|
+
return await bot.rest.triggerTypingIndicator(channelId);
|
|
608
|
+
},
|
|
609
|
+
banMember: async (guildId, userId, options, reason)=>{
|
|
610
|
+
return await bot.rest.banMember(guildId, userId, options, reason);
|
|
611
|
+
},
|
|
612
|
+
kickMember: async (guildId, userId, reason)=>{
|
|
613
|
+
return await bot.rest.kickMember(guildId, userId, reason);
|
|
614
|
+
},
|
|
615
|
+
pinMessage: async (channelId, messageId, reason)=>{
|
|
616
|
+
return await bot.rest.pinMessage(channelId, messageId, reason);
|
|
617
|
+
},
|
|
618
|
+
unbanMember: async (guildId, userId, reason)=>{
|
|
619
|
+
return await bot.rest.unbanMember(guildId, userId, reason);
|
|
620
|
+
},
|
|
621
|
+
unpinMessage: async (channelId, messageId, reason)=>{
|
|
622
|
+
return await bot.rest.unpinMessage(channelId, messageId, reason);
|
|
623
|
+
},
|
|
624
|
+
getGuildOnboarding: async (guildId)=>{
|
|
625
|
+
return bot.transformers.guildOnboarding(bot, (0, _utils.snakelize)(await bot.rest.getGuildOnboarding(guildId)));
|
|
626
|
+
},
|
|
627
|
+
editGuildOnboarding: async (guildId, options, reason)=>{
|
|
628
|
+
return bot.transformers.guildOnboarding(bot, (0, _utils.snakelize)(await bot.rest.editGuildOnboarding(guildId, options, reason)));
|
|
629
|
+
},
|
|
630
|
+
listEntitlements: async (applicationId, options)=>{
|
|
631
|
+
return (await bot.rest.listEntitlements(applicationId, options)).map((entitlement)=>bot.transformers.entitlement(bot, (0, _utils.snakelize)(entitlement)));
|
|
632
|
+
},
|
|
633
|
+
createTestEntitlement: async (applicationId, body)=>{
|
|
634
|
+
return bot.transformers.entitlement(bot, (0, _utils.snakelize)(await bot.rest.createTestEntitlement(applicationId, body)));
|
|
635
|
+
},
|
|
636
|
+
deleteTestEntitlement: async (applicationId, entitlementId)=>{
|
|
637
|
+
await bot.rest.deleteTestEntitlement(applicationId, entitlementId);
|
|
638
|
+
},
|
|
639
|
+
listSkus: async (applicationId)=>{
|
|
640
|
+
return (await bot.rest.listSkus(applicationId)).map((sku)=>bot.transformers.sku(bot, (0, _utils.snakelize)(sku)));
|
|
641
|
+
}
|
|
642
|
+
};
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ3JlYXRlV2ViaG9vayB9IGZyb20gJ0BkaXNjb3JkZW5vL3Jlc3QnXG5pbXBvcnQgdHlwZSB7XG4gIEFkZERtUmVjaXBpZW50T3B0aW9ucyxcbiAgQWRkR3VpbGRNZW1iZXJPcHRpb25zLFxuICBBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyxcbiAgQXRMZWFzdE9uZSxcbiAgQmVnaW5HdWlsZFBydW5lLFxuICBCaWdTdHJpbmcsXG4gIENhbWVsaXplZERpc2NvcmRBY2Nlc3NUb2tlblJlc3BvbnNlLFxuICBDYW1lbGl6ZWREaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbixcbiAgQ2FtZWxpemVkRGlzY29yZEFyY2hpdmVkVGhyZWFkcyxcbiAgQ2FtZWxpemVkRGlzY29yZEF1ZGl0TG9nLFxuICBDYW1lbGl6ZWREaXNjb3JkQmFuLFxuICBDYW1lbGl6ZWREaXNjb3JkQ29ubmVjdGlvbixcbiAgQ2FtZWxpemVkRGlzY29yZEN1cnJlbnRBdXRob3JpemF0aW9uLFxuICBDYW1lbGl6ZWREaXNjb3JkRm9sbG93ZWRDaGFubmVsLFxuICBDYW1lbGl6ZWREaXNjb3JkR2V0R2F0ZXdheUJvdCxcbiAgQ2FtZWxpemVkRGlzY29yZEd1aWxkUHJldmlldyxcbiAgQ2FtZWxpemVkRGlzY29yZEd1aWxkV2lkZ2V0U2V0dGluZ3MsXG4gIENhbWVsaXplZERpc2NvcmRJbnZpdGUsXG4gIENhbWVsaXplZERpc2NvcmRJbnZpdGVNZXRhZGF0YSxcbiAgQ2FtZWxpemVkRGlzY29yZE1vZGlmeUd1aWxkV2VsY29tZVNjcmVlbixcbiAgQ2FtZWxpemVkRGlzY29yZFBhcnRpYWxHdWlsZCxcbiAgQ2FtZWxpemVkRGlzY29yZFBydW5lZENvdW50LFxuICBDYW1lbGl6ZWREaXNjb3JkVG9rZW5FeGNoYW5nZSxcbiAgQ2FtZWxpemVkRGlzY29yZFRva2VuUmV2b2NhdGlvbixcbiAgQ2FtZWxpemVkRGlzY29yZFZhbml0eVVybCxcbiAgQ2FtZWxpemVkRGlzY29yZFZvaWNlUmVnaW9uLFxuICBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIENyZWF0ZUF1dG9Nb2RlcmF0aW9uUnVsZU9wdGlvbnMsXG4gIENyZWF0ZUNoYW5uZWxJbnZpdGUsXG4gIENyZWF0ZUVudGl0bGVtZW50LFxuICBDcmVhdGVGb3J1bVBvc3RXaXRoTWVzc2FnZSxcbiAgQ3JlYXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgQ3JlYXRlR3VpbGQsXG4gIENyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgQ3JlYXRlR3VpbGRCYW4sXG4gIENyZWF0ZUd1aWxkQ2hhbm5lbCxcbiAgQ3JlYXRlR3VpbGRFbW9qaSxcbiAgQ3JlYXRlR3VpbGRGcm9tVGVtcGxhdGUsXG4gIENyZWF0ZUd1aWxkUm9sZSxcbiAgQ3JlYXRlR3VpbGRTdGlja2VyT3B0aW9ucyxcbiAgQ3JlYXRlTWVzc2FnZU9wdGlvbnMsXG4gIENyZWF0ZVNjaGVkdWxlZEV2ZW50LFxuICBDcmVhdGVTdGFnZUluc3RhbmNlLFxuICBDcmVhdGVUZW1wbGF0ZSxcbiAgRGVsZXRlV2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBEaXNjb3JkRW50aXRsZW1lbnQsXG4gIERpc2NvcmRNZXNzYWdlLFxuICBFZGl0QXBwbGljYXRpb24sXG4gIEVkaXRBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLFxuICBFZGl0Qm90TWVtYmVyT3B0aW9ucyxcbiAgRWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzT3B0aW9ucyxcbiAgRWRpdEd1aWxkT25ib2FyZGluZyxcbiAgRWRpdEd1aWxkUm9sZSxcbiAgRWRpdEd1aWxkU3RpY2tlck9wdGlvbnMsXG4gIEVkaXRNZXNzYWdlLFxuICBFZGl0T3duVm9pY2VTdGF0ZSxcbiAgRWRpdFNjaGVkdWxlZEV2ZW50LFxuICBFZGl0VXNlclZvaWNlU3RhdGUsXG4gIEV4ZWN1dGVXZWJob29rLFxuICBHZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uT3B0aW9ucyxcbiAgR2V0QmFucyxcbiAgR2V0RW50aXRsZW1lbnRzLFxuICBHZXRHcm91cERtT3B0aW9ucyxcbiAgR2V0R3VpbGRBdWRpdExvZyxcbiAgR2V0R3VpbGRQcnVuZUNvdW50UXVlcnksXG4gIEdldEludml0ZSxcbiAgR2V0TWVzc2FnZXNPcHRpb25zLFxuICBHZXRSZWFjdGlvbnMsXG4gIEdldFNjaGVkdWxlZEV2ZW50cyxcbiAgR2V0U2NoZWR1bGVkRXZlbnRVc2VycyxcbiAgR2V0VXNlckd1aWxkcyxcbiAgR2V0V2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSxcbiAgSW50ZXJhY3Rpb25SZXNwb25zZSxcbiAgTGlzdEFyY2hpdmVkVGhyZWFkcyxcbiAgTGlzdEd1aWxkTWVtYmVycyxcbiAgTWZhTGV2ZWxzLFxuICBNb2RpZnlDaGFubmVsLFxuICBNb2RpZnlHdWlsZCxcbiAgTW9kaWZ5R3VpbGRDaGFubmVsUG9zaXRpb25zLFxuICBNb2RpZnlHdWlsZEVtb2ppLFxuICBNb2RpZnlHdWlsZE1lbWJlcixcbiAgTW9kaWZ5R3VpbGRUZW1wbGF0ZSxcbiAgTW9kaWZ5Um9sZVBvc2l0aW9ucyxcbiAgTW9kaWZ5V2ViaG9vayxcbiAgU2VhcmNoTWVtYmVycyxcbiAgU3RhcnRUaHJlYWRXaXRoTWVzc2FnZSxcbiAgU3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZSxcbiAgVXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgVXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHNuYWtlbGl6ZSB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuL2JvdC5qcydcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb24gfSBmcm9tICcuL3RyYW5zZm9ybWVycy9hcHBsaWNhdGlvbi5qcydcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb25Db21tYW5kIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvYXBwbGljYXRpb25Db21tYW5kLmpzJ1xuaW1wb3J0IHR5cGUgeyBBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbi5qcydcbmltcG9ydCB0eXBlIHsgQXV0b01vZGVyYXRpb25SdWxlIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvYXV0b21vZFJ1bGUuanMnXG5pbXBvcnQgdHlwZSB7IENoYW5uZWwgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9jaGFubmVsLmpzJ1xuaW1wb3J0IHR5cGUgeyBFbW9qaSB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL2Vtb2ppLmpzJ1xuaW1wb3J0IHsgdHlwZSBFbnRpdGxlbWVudCB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL2VudGl0bGVtZW50LmpzJ1xuaW1wb3J0IHR5cGUgeyBHdWlsZCB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL2d1aWxkLmpzJ1xuaW1wb3J0IHR5cGUgeyBJbnRlZ3JhdGlvbiB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL2ludGVncmF0aW9uLmpzJ1xuaW1wb3J0IHR5cGUgeyBJbnZpdGUgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9pbnZpdGUuanMnXG5pbXBvcnQgdHlwZSB7IE1lbWJlciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL21lbWJlci5qcydcbmltcG9ydCB0eXBlIHsgTWVzc2FnZSB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL21lc3NhZ2UuanMnXG5pbXBvcnQgdHlwZSB7IEd1aWxkT25ib2FyZGluZyB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL29uYm9hcmRpbmcuanMnXG5pbXBvcnQgdHlwZSB7IFJvbGUgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9yb2xlLmpzJ1xuaW1wb3J0IHR5cGUgeyBTY2hlZHVsZWRFdmVudCB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL3NjaGVkdWxlZEV2ZW50LmpzJ1xuaW1wb3J0IHR5cGUgeyBTa3UgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9za3UuanMnXG5pbXBvcnQgdHlwZSB7IFN0YWdlSW5zdGFuY2UgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9zdGFnZUluc3RhbmNlLmpzJ1xuaW1wb3J0IHR5cGUgeyBTdGlja2VyLCBTdGlja2VyUGFjayB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL3N0aWNrZXIuanMnXG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvdGVtcGxhdGUuanMnXG5pbXBvcnQgdHlwZSB7IFRocmVhZE1lbWJlciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL3RocmVhZE1lbWJlci5qcydcbmltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL3VzZXIuanMnXG5pbXBvcnQgdHlwZSB7IFdlYmhvb2sgfSBmcm9tICcuL3RyYW5zZm9ybWVycy93ZWJob29rLmpzJ1xuaW1wb3J0IHR5cGUgeyBXZWxjb21lU2NyZWVuIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvd2VsY29tZVNjcmVlbi5qcydcbmltcG9ydCB0eXBlIHsgR3VpbGRXaWRnZXQgfSBmcm9tICcuL3RyYW5zZm9ybWVycy93aWRnZXQuanMnXG5pbXBvcnQgdHlwZSB7IEd1aWxkV2lkZ2V0U2V0dGluZ3MgfSBmcm9tICcuL3RyYW5zZm9ybWVycy93aWRnZXRTZXR0aW5ncy5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJvdEhlbHBlcnMoYm90OiBCb3QpOiBCb3RIZWxwZXJzIHtcbiAgcmV0dXJuIHtcbiAgICBjcmVhdGVBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlQXV0b21vZFJ1bGUoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBjcmVhdGVDaGFubmVsOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlQ2hhbm5lbChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSwgZ3VpbGRJZCB9KVxuICAgIH0sXG4gICAgY3JlYXRlRW1vamk6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUVtb2ppKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgY3JlYXRlRm9ydW1UaHJlYWQ6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUZvcnVtVGhyZWFkKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkgfSlcbiAgICB9LFxuICAgIGNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGQ6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHsgZ3VpbGQ6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZChvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZCwgZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmQsIGd1aWxkSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkRnJvbVRlbXBsYXRlOiBhc3luYyAodGVtcGxhdGVDb2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHsgZ3VpbGQ6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZEZyb21UZW1wbGF0ZSh0ZW1wbGF0ZUNvZGUsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGRTdGlja2VyOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkU3RpY2tlcihndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZFRlbXBsYXRlKGd1aWxkSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUludml0ZTogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuY3JlYXRlSW52aXRlKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKVxuICAgIH0sXG4gICAgY3JlYXRlUm9sZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVJvbGUoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGNyZWF0ZVNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVTY2hlZHVsZWRFdmVudChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZVN0YWdlSW5zdGFuY2U6IGFzeW5jIChvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0YWdlSW5zdGFuY2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlU3RhZ2VJbnN0YW5jZShvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZVdlYmhvb2s6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVXZWJob29rKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IGFzeW5jIChndWlsZElkLCBjb21tYW5kSWQsIGJlYXJlclRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uKFxuICAgICAgICBib3QsXG4gICAgICAgIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMoZ3VpbGRJZCwgY29tbWFuZElkLCBiZWFyZXJUb2tlbiwgb3B0aW9ucykpLFxuICAgICAgKVxuICAgIH0sXG4gICAgZWRpdEF1dG9tb2RSdWxlOiBhc3luYyAoZ3VpbGRJZCwgcnVsZUlkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmF1dG9tb2RSdWxlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRBdXRvbW9kUnVsZShndWlsZElkLCBydWxlSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdEJvdFByb2ZpbGU6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRCb3RQcm9maWxlKG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRDaGFubmVsOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Q2hhbm5lbChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpIH0pXG4gICAgfSxcbiAgICBlZGl0RW1vamk6IGFzeW5jIChndWlsZElkLCBpZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0RW1vamkoZ3VpbGRJZCwgaWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdEZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEZvbGxvd3VwTWVzc2FnZSh0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRHdWlsZDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBlZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBndWlsZElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0R3VpbGRTdGlja2VyOiBhc3luYyAoZ3VpbGRJZCwgc3RpY2tlcklkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkU3RpY2tlcihndWlsZElkLCBzdGlja2VySWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdEd1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkLCB0ZW1wbGF0ZUNvZGUsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZFRlbXBsYXRlKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0TWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucykpIGFzIERpc2NvcmRNZXNzYWdlKVxuICAgIH0sXG4gICAgZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBib3QucmVzdC5lZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRva2VuLCBvcHRpb25zKVxuICAgICAgaWYgKCFyZXN1bHQpIHJldHVyblxuXG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKHJlc3VsdCkgYXMgRGlzY29yZE1lc3NhZ2UpXG4gICAgfSxcbiAgICBlZGl0T3JpZ2luYWxXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdE9yaWdpbmFsV2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykpIGFzIERpc2NvcmRNZXNzYWdlKVxuICAgIH0sXG4gICAgZWRpdFJvbGU6IGFzeW5jIChndWlsZElkLCByb2xlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRSb2xlKGd1aWxkSWQsIHJvbGVJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGVkaXRSb2xlUG9zaXRpb25zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRSb2xlUG9zaXRpb25zKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLm1hcCgocm9sZSkgPT4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZWRpdFNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0U2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0U3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCwgdG9waWMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0U3RhZ2VJbnN0YW5jZShjaGFubmVsSWQsIHRvcGljLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2sod2ViaG9va0lkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0V2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSkgYXMgRGlzY29yZE1lc3NhZ2UpXG4gICAgfSxcbiAgICBlZGl0V2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2tXaXRoVG9rZW4od2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdFdlbGNvbWVTY3JlZW46IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlbGNvbWVTY3JlZW4oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlbGNvbWVTY3JlZW4oZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0V2lkZ2V0U2V0dGluZ3M6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndpZGdldFNldHRpbmdzKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXaWRnZXRTZXR0aW5ncyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGV4ZWN1dGVXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYm90LnJlc3QuZXhlY3V0ZVdlYmhvb2sod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucylcbiAgICAgIGlmICghcmVzdWx0KSByZXR1cm5cblxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShyZXN1bHQpIGFzIERpc2NvcmRNZXNzYWdlKVxuICAgIH0sXG4gICAgZm9sbG93QW5ub3VuY2VtZW50OiBhc3luYyAoc291cmNlQ2hhbm5lbElkLCB0YXJnZXRDaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5mb2xsb3dBbm5vdW5jZW1lbnQoc291cmNlQ2hhbm5lbElkLCB0YXJnZXRDaGFubmVsSWQpXG4gICAgfSxcbiAgICBnZXRBY3RpdmVUaHJlYWRzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYm90LnJlc3QuZ2V0QWN0aXZlVGhyZWFkcyhndWlsZElkKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGhyZWFkczogcmVzdWx0LnRocmVhZHMubWFwKCh0aHJlYWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgZ3VpbGRJZCwgY2hhbm5lbDogc25ha2VsaXplKHRocmVhZCkgfSkpLFxuICAgICAgICBtZW1iZXJzOiByZXN1bHQubWVtYmVycy5tYXAoKG1lbWJlcikgPT4gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBzbmFrZWxpemUobWVtYmVyKSkpLFxuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25JbmZvOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHsgYXBwbGljYXRpb246IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkluZm8oKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGVkaXRBcHBsaWNhdGlvbkluZm86IGFzeW5jIChib2R5KSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHsgYXBwbGljYXRpb246IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXBwbGljYXRpb25JbmZvKGJvZHkpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbzogYXN5bmMgKGJlYXJlclRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbyhiZWFyZXJUb2tlbilcbiAgICB9LFxuICAgIGV4Y2hhbmdlVG9rZW46IGFzeW5jIChjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZXhjaGFuZ2VUb2tlbihjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKVxuICAgIH0sXG4gICAgcmV2b2tlVG9rZW46IGFzeW5jIChjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmV2b2tlVG9rZW4oY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb246IGFzeW5jIChndWlsZElkLCBjb21tYW5kSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24oZ3VpbGRJZCwgY29tbWFuZElkLCBvcHRpb25zKVxuICAgICAgY29uc3Qgc25ha2VkUmVzID0gc25ha2VsaXplKHJlcylcblxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihib3QsIHNuYWtlZFJlcylcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGdldEF1ZGl0TG9nOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEF1ZGl0TG9nKGd1aWxkSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIHJ1bGVJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0QXV0b21vZFJ1bGUoZ3VpbGRJZCwgcnVsZUlkKSkpXG4gICAgfSxcbiAgICBnZXRBdXRvbW9kUnVsZXM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEF1dG9tb2RSdWxlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnM6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0QXZhaWxhYmxlVm9pY2VSZWdpb25zKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnZvaWNlUmVnaW9uKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0QmFuOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QmFuKGd1aWxkSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGdldEJhbnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QmFucyhndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbDogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWwoY2hhbm5lbElkKSkgfSlcbiAgICB9LFxuICAgIGdldENoYW5uZWxJbnZpdGVzOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbEludml0ZXMoY2hhbm5lbElkKVxuICAgICAgLy8gcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRDaGFubmVsSW52aXRlcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5pbnZpdGUoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRDaGFubmVsczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbHMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShyZXMpLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbFdlYmhvb2tzOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWxXZWJob29rcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0RG1DaGFubmVsOiBhc3luYyAodXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0RG1DaGFubmVsKHVzZXJJZCkpIH0pXG4gICAgfSxcbiAgICBnZXRHcm91cERtQ2hhbm5lbDogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHcm91cERtQ2hhbm5lbChvcHRpb25zKSkgfSlcbiAgICB9LFxuICAgIGdldEVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgZW1vamlJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0RW1vamkoZ3VpbGRJZCwgZW1vamlJZCkpKVxuICAgIH0sXG4gICAgZ2V0RW1vamlzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRFbW9qaXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0Rm9sbG93dXBNZXNzYWdlOiBhc3luYyAodG9rZW4sIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRGb2xsb3d1cE1lc3NhZ2UodG9rZW4sIG1lc3NhZ2VJZCkpKVxuICAgIH0sXG4gICAgZ2V0R2F0ZXdheUJvdDogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ2F0ZXdheUJvdChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHYXRld2F5Qm90KCkpKVxuICAgIH0sXG4gICAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCkpKVxuICAgIH0sXG4gICAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGQoZ3VpbGRJZCwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRHdWlsZHM6IGFzeW5jIChiZWFyZXJUb2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkcyhiZWFyZXJUb2tlbiwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBndWlsZElkKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRQcmV2aWV3OiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkUHJldmlldyhndWlsZElkKVxuICAgICAgLy8gcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMueHh4KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkUHJldmlldyhndWlsZElkKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFN0aWNrZXI6IGFzeW5jIChndWlsZElkLCBzdGlja2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRTdGlja2VyKGd1aWxkSWQsIHN0aWNrZXJJZCkpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRTdGlja2VyczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRTdGlja2VycyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkVGVtcGxhdGU6IGFzeW5jICh0ZW1wbGF0ZUNvZGUpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkVGVtcGxhdGUodGVtcGxhdGVDb2RlKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFRlbXBsYXRlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRUZW1wbGF0ZXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRXZWJob29rczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRXZWJob29rcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEludGVncmF0aW9uczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0SW50ZWdyYXRpb25zKGd1aWxkSWQpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5pbnRlZ3JhdGlvbihib3QsIHNuYWtlbGl6ZSh7IC4uLnJlcywgZ3VpbGRJZDogZ3VpbGRJZC50b1N0cmluZygpIH0pKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGdldEludml0ZTogYXN5bmMgKGludml0ZUNvZGUsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmludml0ZShib3QsIHsgaW52aXRlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0SW52aXRlKGludml0ZUNvZGUsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0SW52aXRlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0SW52aXRlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgeyBpbnZpdGU6IHNuYWtlbGl6ZShyZXMpLCBzaGFyZElkOiAwIH0pKVxuICAgIH0sXG4gICAgZ2V0TWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQpKSlcbiAgICB9LFxuICAgIGdldE1lc3NhZ2VzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldE1lc3NhZ2VzKGNoYW5uZWxJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRTdGlja2VyUGFja3M6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0U3RpY2tlclBhY2tzKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXJQYWNrKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAodG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRva2VuKSkpXG4gICAgfSxcbiAgICBnZXRQaW5uZWRNZXNzYWdlczogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRQaW5uZWRNZXNzYWdlcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFByaXZhdGVBcmNoaXZlZFRocmVhZHMoY2hhbm5lbElkLCBvcHRpb25zKVxuICAgICAgLy8gcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMueHh4KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFByaXZhdGVBcmNoaXZlZFRocmVhZHMoY2hhbm5lbElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBnZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpXG4gICAgICAvLyByZXR1cm4gYm90LnRyYW5zZm9ybWVycy54eHgoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGdldFBydW5lQ291bnQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHJ1bmVDb3VudChndWlsZElkLCBvcHRpb25zKVxuICAgICAgLy8gcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMueHh4KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFBydW5lQ291bnQoZ3VpbGRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzKGNoYW5uZWxJZCwgb3B0aW9ucylcbiAgICAgIC8vIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnh4eChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRQdWJsaWNBcmNoaXZlZFRocmVhZHMoY2hhbm5lbElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBnZXRSb2xlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Um9sZXMoZ3VpbGRJZCkpLm1hcCgocm9sZSkgPT4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZ2V0U2NoZWR1bGVkRXZlbnQ6IGFzeW5jIChndWlsZElkLCBldmVudElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTY2hlZHVsZWRFdmVudChndWlsZElkLCBldmVudElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBnZXRTY2hlZHVsZWRFdmVudHM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFNjaGVkdWxlZEV2ZW50cyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRTY2hlZHVsZWRFdmVudFVzZXJzOiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRTY2hlZHVsZWRFdmVudFVzZXJzKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMpKS5tYXAoKHUpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB1c2VyOiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUodS51c2VyKSksXG4gICAgICAgICAgbWVtYmVyOiB1Lm1lbWJlciAmJiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZSh1Lm1lbWJlciksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHUudXNlci5pZCkpLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0sXG4gICAgZ2V0U2Vzc2lvbkluZm86IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmdhdGV3YXlCb3QoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U2Vzc2lvbkluZm8oKSkpXG4gICAgfSxcbiAgICBnZXRTdGFnZUluc3RhbmNlOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGFnZUluc3RhbmNlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFN0YWdlSW5zdGFuY2UoY2hhbm5lbElkKSkpXG4gICAgfSxcbiAgICBnZXRTdGlja2VyOiBhc3luYyAoc3RpY2tlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFN0aWNrZXIoc3RpY2tlcklkKSkpXG4gICAgfSxcbiAgICBnZXRUaHJlYWRNZW1iZXI6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGhyZWFkTWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFRocmVhZE1lbWJlcihjaGFubmVsSWQsIHVzZXJJZCkpKVxuICAgIH0sXG4gICAgZ2V0VGhyZWFkTWVtYmVyczogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRUaHJlYWRNZW1iZXJzKGNoYW5uZWxJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnRocmVhZE1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldFJlYWN0aW9uczogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRSZWFjdGlvbnMoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldFVzZXI6IGFzeW5jIChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRVc2VyKGlkKSkpXG4gICAgfSxcbiAgICBnZXRDdXJyZW50VXNlcjogYXN5bmMgKGJlYXJlclRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEN1cnJlbnRVc2VyKGJlYXJlclRva2VuKSkpXG4gICAgfSxcbiAgICBnZXRVc2VyQ29ubmVjdGlvbnM6IGFzeW5jIChiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFVzZXJDb25uZWN0aW9ucyhiZWFyZXJUb2tlbilcbiAgICB9LFxuICAgIGdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiBhc3luYyAoYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbihiZWFyZXJUb2tlbiwgYXBwbGljYXRpb25JZClcbiAgICB9LFxuICAgIGdldFZhbml0eVVybDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRWYW5pdHlVcmwoZ3VpbGRJZClcbiAgICB9LFxuICAgIGdldFZvaWNlUmVnaW9uczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Vm9pY2VSZWdpb25zKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy52b2ljZVJlZ2lvbihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldFdlYmhvb2s6IGFzeW5jICh3ZWJob29rSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2ViaG9vayh3ZWJob29rSWQpKSlcbiAgICB9LFxuICAgIGdldFdlYmhvb2tNZXNzYWdlOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlYmhvb2tNZXNzYWdlKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZ2V0V2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2ViaG9va1dpdGhUb2tlbih3ZWJob29rSWQsIHRva2VuKSkpXG4gICAgfSxcbiAgICBnZXRXZWxjb21lU2NyZWVuOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2VsY29tZVNjcmVlbihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWxjb21lU2NyZWVuKGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGdldFdpZGdldDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndpZGdldChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXaWRnZXQoZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgZ2V0V2lkZ2V0U2V0dGluZ3M6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53aWRnZXRTZXR0aW5ncyhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXaWRnZXRTZXR0aW5ncyhndWlsZElkKSkpXG4gICAgfSxcbiAgICBwdWJsaXNoTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnB1Ymxpc2hNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSkpXG4gICAgfSxcbiAgICBzZW5kTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zZW5kTWVzc2FnZShjaGFubmVsSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIHNlbmRGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zZW5kRm9sbG93dXBNZXNzYWdlKHRva2VuLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBzdGFydFRocmVhZFdpdGhNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHtcbiAgICAgICAgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMsIHJlYXNvbikpLFxuICAgICAgfSlcbiAgICB9LFxuICAgIHN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pKSB9KVxuICAgIH0sXG4gICAgc3luY0d1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zeW5jR3VpbGRUZW1wbGF0ZShndWlsZElkKSkpXG4gICAgfSxcbiAgICB1cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzOiBhc3luYyAoY29tbWFuZHMsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QudXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kcyhjb21tYW5kcywgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIHVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKGd1aWxkSWQsIGNvbW1hbmRzLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LnVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyhndWlsZElkLCBjb21tYW5kcywgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGVkaXRCb3RNZW1iZXI6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Qm90TWVtYmVyKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCBndWlsZElkLCBib3QuaWQpXG4gICAgfSxcbiAgICBlZGl0TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0TWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGdldE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE1lbWJlcihndWlsZElkLCB1c2VySWQpKSwgZ3VpbGRJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgZ2V0Q3VycmVudE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIGJlYXJlclRva2VuKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRDdXJyZW50TWVtYmVyKGd1aWxkSWQsIGJlYXJlclRva2VuKVxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHJlcyksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSlcbiAgICB9LFxuICAgIGdldE1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldE1lbWJlcnMoZ3VpbGRJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShyZXMudXNlci5pZCkpLFxuICAgICAgKVxuICAgIH0sXG4gICAgcHJ1bmVNZW1iZXJzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucHJ1bmVNZW1iZXJzKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuICAgIHNlYXJjaE1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBxdWVyeSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5zZWFyY2hNZW1iZXJzKGd1aWxkSWQsIHF1ZXJ5LCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHJlcyksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSksXG4gICAgICApXG4gICAgfSxcbiAgICAvLyBBbGwgdXNlbGVzcyB2b2lkIHJldHVybiBmdW5jdGlvbnMgaGVyZVxuICAgIGFkZFJlYWN0aW9uOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkUmVhY3Rpb24oY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgYWRkUmVhY3Rpb25zOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9ucywgb3JkZXJlZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFJlYWN0aW9ucyhjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb25zLCBvcmRlcmVkKVxuICAgIH0sXG4gICAgYWRkUm9sZTogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRSb2xlKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBhZGRUaHJlYWRNZW1iZXI6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFRocmVhZE1lbWJlcihjaGFubmVsSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGFkZERtUmVjaXBpZW50OiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGREbVJlY2lwaWVudChjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGFkZEd1aWxkTWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkR3VpbGRNZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZGVsZXRlQXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBydWxlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUF1dG9tb2RSdWxlKGd1aWxkSWQsIHJ1bGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlQ2hhbm5lbDogYXN5bmMgKGNoYW5uZWxJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlQ2hhbm5lbChjaGFubmVsSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGU6IGFzeW5jIChjaGFubmVsSWQsIG92ZXJ3cml0ZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlKGNoYW5uZWxJZCwgb3ZlcndyaXRlSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgaWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUVtb2ppKGd1aWxkSWQsIGlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlRm9sbG93dXBNZXNzYWdlKHRva2VuLCBtZXNzYWdlSWQpXG4gICAgfSxcbiAgICBkZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkKVxuICAgIH0sXG4gICAgZGVsZXRlR3VpbGQ6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGQoZ3VpbGRJZClcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBndWlsZElkKVxuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRTdGlja2VyOiBhc3luYyAoZ3VpbGRJZCwgc3RpY2tlcklkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHdWlsZFN0aWNrZXIoZ3VpbGRJZCwgc3RpY2tlcklkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVHdWlsZFRlbXBsYXRlOiBhc3luYyAoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlR3VpbGRUZW1wbGF0ZShndWlsZElkLCB0ZW1wbGF0ZUNvZGUpXG4gICAgfSxcbiAgICBkZWxldGVJbnRlZ3JhdGlvbjogYXN5bmMgKGd1aWxkSWQsIGludGVncmF0aW9uSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUludGVncmF0aW9uKGd1aWxkSWQsIGludGVncmF0aW9uSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUludml0ZTogYXN5bmMgKGludml0ZUNvZGUsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUludml0ZShpbnZpdGVDb2RlLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZU1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZU1lc3NhZ2VzOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWRzLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVNZXNzYWdlcyhjaGFubmVsSWQsIG1lc3NhZ2VJZHMsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKHRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRva2VuKVxuICAgIH0sXG4gICAgZGVsZXRlT3duUmVhY3Rpb246IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVPd25SZWFjdGlvbihjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pXG4gICAgfSxcbiAgICBkZWxldGVSZWFjdGlvbnNBbGw6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVJlYWN0aW9uc0FsbChjaGFubmVsSWQsIG1lc3NhZ2VJZClcbiAgICB9LFxuICAgIGRlbGV0ZVJlYWN0aW9uc0Vtb2ppOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlUmVhY3Rpb25zRW1vamkoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uKVxuICAgIH0sXG4gICAgZGVsZXRlUm9sZTogYXN5bmMgKGd1aWxkSWQsIHJvbGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlUm9sZShndWlsZElkLCByb2xlSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZVNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVNjaGVkdWxlZEV2ZW50KGd1aWxkSWQsIGV2ZW50SWQpXG4gICAgfSxcbiAgICBkZWxldGVTdGFnZUluc3RhbmNlOiBhc3luYyAoY2hhbm5lbElkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVTdGFnZUluc3RhbmNlKGNoYW5uZWxJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlVXNlclJlYWN0aW9uOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHVzZXJJZCwgcmVhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVVc2VyUmVhY3Rpb24oY2hhbm5lbElkLCBtZXNzYWdlSWQsIHVzZXJJZCwgcmVhY3Rpb24pXG4gICAgfSxcbiAgICBkZWxldGVXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVXZWJob29rKHdlYmhvb2tJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlV2ViaG9va01lc3NhZ2U6IGFzeW5jICh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVXZWJob29rTWVzc2FnZSh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBkZWxldGVXZWJob29rV2l0aFRva2VuOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVdlYmhvb2tXaXRoVG9rZW4od2ViaG9va0lkLCB0b2tlbilcbiAgICB9LFxuICAgIGVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKVxuICAgIH0sXG4gICAgZWRpdENoYW5uZWxQb3NpdGlvbnM6IGFzeW5jIChndWlsZElkLCBjaGFubmVsUG9zaXRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdENoYW5uZWxQb3NpdGlvbnMoZ3VpbGRJZCwgY2hhbm5lbFBvc2l0aW9ucylcbiAgICB9LFxuICAgIGVkaXRHdWlsZE1mYUxldmVsOiBhc3luYyAoZ3VpbGRJZCwgbWZhTGV2ZWwsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZE1mYUxldmVsKGd1aWxkSWQsIG1mYUxldmVsLCByZWFzb24pXG4gICAgfSxcbiAgICBlZGl0T3duVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0T3duVm9pY2VTdGF0ZShndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZWRpdFVzZXJWb2ljZVN0YXRlOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRVc2VyVm9pY2VTdGF0ZShndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZWRpdFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiBhc3luYyAoYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24oYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBqb2luVGhyZWFkOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3Quam9pblRocmVhZChjaGFubmVsSWQpXG4gICAgfSxcbiAgICBsZWF2ZUd1aWxkOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmxlYXZlR3VpbGQoZ3VpbGRJZClcbiAgICB9LFxuICAgIGxlYXZlVGhyZWFkOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QubGVhdmVUaHJlYWQoY2hhbm5lbElkKVxuICAgIH0sXG4gICAgcmVtb3ZlUm9sZTogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZW1vdmVSb2xlKGd1aWxkSWQsIHVzZXJJZCwgcm9sZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICByZW1vdmVUaHJlYWRNZW1iZXI6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnJlbW92ZVRocmVhZE1lbWJlcihjaGFubmVsSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIHJlbW92ZURtUmVjaXBpZW50OiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZW1vdmVEbVJlY2lwaWVudChjaGFubmVsSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIHNlbmRJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAoaW50ZXJhY3Rpb25JZCwgdG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShpbnRlcmFjdGlvbklkLCB0b2tlbiwgb3B0aW9ucylcbiAgICB9LFxuICAgIHRyaWdnZXJUeXBpbmdJbmRpY2F0b3I6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC50cmlnZ2VyVHlwaW5nSW5kaWNhdG9yKGNoYW5uZWxJZClcbiAgICB9LFxuICAgIGJhbk1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYmFuTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKVxuICAgIH0sXG4gICAga2lja01lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3Qua2lja01lbWJlcihndWlsZElkLCB1c2VySWQsIHJlYXNvbilcbiAgICB9LFxuICAgIHBpbk1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucGluTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgdW5iYW5NZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVuYmFuTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgdW5waW5NZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVucGluTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRPbmJvYXJkaW5nOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGRPbmJvYXJkaW5nKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkT25ib2FyZGluZyhndWlsZElkKSkpXG4gICAgfSxcbiAgICBlZGl0R3VpbGRPbmJvYXJkaW5nOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZE9uYm9hcmRpbmcoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkT25ib2FyZGluZyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGxpc3RFbnRpdGxlbWVudHM6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3RFbnRpdGxlbWVudHMoYXBwbGljYXRpb25JZCwgb3B0aW9ucykpLm1hcCgoZW50aXRsZW1lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBzbmFrZWxpemUoZW50aXRsZW1lbnQpKSlcbiAgICB9LFxuICAgIGNyZWF0ZVRlc3RFbnRpdGxlbWVudDogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIGJvZHkpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVRlc3RFbnRpdGxlbWVudChhcHBsaWNhdGlvbklkLCBib2R5KSkgYXMgRGlzY29yZEVudGl0bGVtZW50KVxuICAgIH0sXG4gICAgZGVsZXRlVGVzdEVudGl0bGVtZW50OiBhc3luYyAoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZCkgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QuZGVsZXRlVGVzdEVudGl0bGVtZW50KGFwcGxpY2F0aW9uSWQsIGVudGl0bGVtZW50SWQpXG4gICAgfSxcbiAgICBsaXN0U2t1czogYXN5bmMgKGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QubGlzdFNrdXMoYXBwbGljYXRpb25JZCkpLm1hcCgoc2t1KSA9PiBib3QudHJhbnNmb3JtZXJzLnNrdShib3QsIHNuYWtlbGl6ZShza3UpKSlcbiAgICB9LFxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm90SGVscGVycyB7XG4gIGNyZWF0ZUF1dG9tb2RSdWxlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8QXV0b01vZGVyYXRpb25SdWxlPlxuICBjcmVhdGVDaGFubmVsOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZENoYW5uZWwsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxDaGFubmVsPlxuICBjcmVhdGVFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRFbW9qaSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPEVtb2ppPlxuICBjcmVhdGVGb3J1bVRocmVhZDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVGb3J1bVBvc3RXaXRoTWVzc2FnZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPENoYW5uZWw+XG4gIGNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmQ6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCwgb3B0aW9ucz86IENyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBjcmVhdGVHdWlsZDogKG9wdGlvbnM6IENyZWF0ZUd1aWxkKSA9PiBQcm9taXNlPEd1aWxkPlxuICBjcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKFxuICAgIGNvbW1hbmQ6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IENyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgY3JlYXRlR3VpbGRGcm9tVGVtcGxhdGU6ICh0ZW1wbGF0ZUNvZGU6IHN0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRGcm9tVGVtcGxhdGUpID0+IFByb21pc2U8R3VpbGQ+XG4gIGNyZWF0ZUd1aWxkU3RpY2tlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRTdGlja2VyT3B0aW9ucywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFN0aWNrZXI+XG4gIGNyZWF0ZUd1aWxkVGVtcGxhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZVRlbXBsYXRlKSA9PiBQcm9taXNlPFRlbXBsYXRlPlxuICBjcmVhdGVJbnZpdGU6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IENyZWF0ZUNoYW5uZWxJbnZpdGUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZWREaXNjb3JkSW52aXRlPlxuICBjcmVhdGVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZFJvbGUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxSb2xlPlxuICBjcmVhdGVTY2hlZHVsZWRFdmVudDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlU2NoZWR1bGVkRXZlbnQsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTY2hlZHVsZWRFdmVudD5cbiAgY3JlYXRlU3RhZ2VJbnN0YW5jZTogKG9wdGlvbnM6IENyZWF0ZVN0YWdlSW5zdGFuY2UsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTdGFnZUluc3RhbmNlPlxuICBjcmVhdGVXZWJob29rOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZVdlYmhvb2ssIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxXZWJob29rPlxuICBlZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgY29tbWFuZElkOiBCaWdTdHJpbmcsXG4gICAgYmVhcmVyVG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1tdLFxuICApID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbj5cbiAgZWRpdEF1dG9tb2RSdWxlOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHJ1bGVJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8RWRpdEF1dG9Nb2RlcmF0aW9uUnVsZU9wdGlvbnM+LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPEF1dG9Nb2RlcmF0aW9uUnVsZT5cbiAgZWRpdEJvdFByb2ZpbGU6IChvcHRpb25zOiB7IHVzZXJuYW1lPzogc3RyaW5nOyBib3RBdmF0YXJVUkw/OiBzdHJpbmcgfCBudWxsIH0pID0+IFByb21pc2U8VXNlcj5cbiAgZWRpdENoYW5uZWw6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5Q2hhbm5lbCwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPENoYW5uZWw+XG4gIGVkaXRFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgaWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5R3VpbGRFbW9qaSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPEVtb2ppPlxuICBlZGl0Rm9sbG93dXBNZXNzYWdlOiAodG9rZW46IHN0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhKSA9PiBQcm9taXNlPE1lc3NhZ2U+XG4gIGVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZWRpdEd1aWxkOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlHdWlsZCwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPEd1aWxkPlxuICBlZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBlZGl0R3VpbGRTdGlja2VyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBzdGlja2VySWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQXRMZWFzdE9uZTxFZGl0R3VpbGRTdGlja2VyT3B0aW9ucz4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTdGlja2VyPlxuICBlZGl0R3VpbGRUZW1wbGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdGVtcGxhdGVDb2RlOiBzdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUd1aWxkVGVtcGxhdGUpID0+IFByb21pc2U8VGVtcGxhdGU+XG4gIGVkaXRNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0TWVzc2FnZSkgPT4gUHJvbWlzZTxNZXNzYWdlPlxuICBlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiAodG9rZW46IHN0cmluZywgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEpID0+IFByb21pc2U8TWVzc2FnZSB8IHVuZGVmaW5lZD5cbiAgZWRpdE9yaWdpbmFsV2ViaG9va01lc3NhZ2U6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZywgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEgJiB7IHRocmVhZElkPzogQmlnU3RyaW5nIH0pID0+IFByb21pc2U8TWVzc2FnZT5cbiAgZWRpdFJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0R3VpbGRSb2xlLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8Um9sZT5cbiAgZWRpdFJvbGVQb3NpdGlvbnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeVJvbGVQb3NpdGlvbnNbXSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFJvbGVbXT5cbiAgZWRpdFNjaGVkdWxlZEV2ZW50OiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBldmVudElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IFBhcnRpYWw8RWRpdFNjaGVkdWxlZEV2ZW50PiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNjaGVkdWxlZEV2ZW50PlxuICBlZGl0U3RhZ2VJbnN0YW5jZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB0b3BpYzogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U3RhZ2VJbnN0YW5jZT5cbiAgZWRpdFdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5V2ViaG9vaywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFdlYmhvb2s+XG4gIGVkaXRXZWJob29rTWVzc2FnZTogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEgJiB7IHRocmVhZElkPzogQmlnU3RyaW5nIH0sXG4gICkgPT4gUHJvbWlzZTxNZXNzYWdlPlxuICBlZGl0V2ViaG9va1dpdGhUb2tlbjogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nLCBvcHRpb25zOiBPbWl0PE1vZGlmeVdlYmhvb2ssICdjaGFubmVsSWQnPikgPT4gUHJvbWlzZTxXZWJob29rPlxuICBlZGl0V2VsY29tZVNjcmVlbjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ2FtZWxpemVkRGlzY29yZE1vZGlmeUd1aWxkV2VsY29tZVNjcmVlbiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFdlbGNvbWVTY3JlZW4+XG4gIGVkaXRXaWRnZXRTZXR0aW5nczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ2FtZWxpemVkRGlzY29yZEd1aWxkV2lkZ2V0U2V0dGluZ3MsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxHdWlsZFdpZGdldFNldHRpbmdzPlxuICBlZGl0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb246IChcbiAgICBiZWFyZXJUb2tlbjogc3RyaW5nLFxuICAgIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDYW1lbGl6ZWREaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbixcbiAgKSA9PiBQcm9taXNlPENhbWVsaXplZERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPlxuICBleGVjdXRlV2ViaG9vazogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nLCBvcHRpb25zOiBFeGVjdXRlV2ViaG9vaykgPT4gUHJvbWlzZTxNZXNzYWdlIHwgdW5kZWZpbmVkPlxuICBmb2xsb3dBbm5vdW5jZW1lbnQ6IChzb3VyY2VDaGFubmVsSWQ6IEJpZ1N0cmluZywgdGFyZ2V0Q2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEZvbGxvd2VkQ2hhbm5lbD5cbiAgZ2V0QWN0aXZlVGhyZWFkczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx7IHRocmVhZHM6IENoYW5uZWxbXTsgbWVtYmVyczogVGhyZWFkTWVtYmVyW10gfT5cbiAgZ2V0QXBwbGljYXRpb25JbmZvOiAoKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uPlxuICBlZGl0QXBwbGljYXRpb25JbmZvOiAoYm9keTogRWRpdEFwcGxpY2F0aW9uKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uPlxuICBnZXRDdXJyZW50QXV0aGVudGljYXRpb25JbmZvOiAoYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZWREaXNjb3JkQ3VycmVudEF1dGhvcml6YXRpb24+XG4gIGV4Y2hhbmdlVG9rZW46IChjbGllbnRJZDogQmlnU3RyaW5nLCBjbGllbnRTZWNyZXQ6IHN0cmluZywgb3B0aW9uczogQ2FtZWxpemVkRGlzY29yZFRva2VuRXhjaGFuZ2UpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEFjY2Vzc1Rva2VuUmVzcG9uc2U+XG4gIHJldm9rZVRva2VuOiAoY2xpZW50SWQ6IEJpZ1N0cmluZywgY2xpZW50U2VjcmV0OiBzdHJpbmcsIG9wdGlvbnM6IENhbWVsaXplZERpc2NvcmRUb2tlblJldm9jYXRpb24pID0+IFByb21pc2U8dm9pZD5cbiAgZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbjogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBjb21tYW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbk9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uPlxuICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25PcHRpb25zKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25bXT5cbiAgZ2V0QXVkaXRMb2c6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRHdWlsZEF1ZGl0TG9nKSA9PiBQcm9taXNlPENhbWVsaXplZERpc2NvcmRBdWRpdExvZz5cbiAgZ2V0QXV0b21vZFJ1bGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJ1bGVJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEF1dG9Nb2RlcmF0aW9uUnVsZT5cbiAgZ2V0QXV0b21vZFJ1bGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEF1dG9Nb2RlcmF0aW9uUnVsZVtdPlxuICBnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnM6ICgpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZFZvaWNlUmVnaW9uW10+XG4gIGdldEJhbjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEJhbj5cbiAgZ2V0QmFuczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEJhbnMpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEJhbltdPlxuICBnZXRDaGFubmVsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2hhbm5lbD5cbiAgZ2V0Q2hhbm5lbEludml0ZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZWREaXNjb3JkSW52aXRlTWV0YWRhdGFbXT5cbiAgZ2V0Q2hhbm5lbHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2hhbm5lbFtdPlxuICBnZXRDaGFubmVsV2ViaG9va3M6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxXZWJob29rW10+XG4gIGdldERtQ2hhbm5lbDogKHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENoYW5uZWw+XG4gIGdldEdyb3VwRG1DaGFubmVsOiAob3B0aW9uczogR2V0R3JvdXBEbU9wdGlvbnMpID0+IFByb21pc2U8Q2hhbm5lbD5cbiAgZ2V0RW1vamk6IChndWlsZElkOiBCaWdTdHJpbmcsIGVtb2ppSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxFbW9qaT5cbiAgZ2V0RW1vamlzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEVtb2ppW10+XG4gIGdldEZvbGxvd3VwTWVzc2FnZTogKHRva2VuOiBzdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPE1lc3NhZ2U+XG4gIGdldEdhdGV3YXlCb3Q6ICgpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEdldEdhdGV3YXlCb3Q+XG4gIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogKCkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgZ2V0R3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiB7IGNvdW50cz86IGJvb2xlYW4gfSkgPT4gUHJvbWlzZTxHdWlsZD5cbiAgZ2V0R3VpbGRzOiAoYmVhcmVyVG9rZW46IHN0cmluZywgb3B0aW9ucz86IEdldFVzZXJHdWlsZHMpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZFBhcnRpYWxHdWlsZFtdPlxuICBnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nLCBndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kW10+XG4gIGdldEd1aWxkUHJldmlldzogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZWREaXNjb3JkR3VpbGRQcmV2aWV3PlxuICBnZXRHdWlsZFN0aWNrZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHN0aWNrZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFN0aWNrZXI+XG4gIGdldEd1aWxkU3RpY2tlcnM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U3RpY2tlcltdPlxuICBnZXRHdWlsZFRlbXBsYXRlOiAodGVtcGxhdGVDb2RlOiBzdHJpbmcpID0+IFByb21pc2U8VGVtcGxhdGU+XG4gIGdldEd1aWxkVGVtcGxhdGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRlbXBsYXRlW10+XG4gIGdldEd1aWxkV2ViaG9va3M6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8V2ViaG9va1tdPlxuICBnZXRJbnRlZ3JhdGlvbnM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8SW50ZWdyYXRpb25bXT5cbiAgZ2V0SW52aXRlOiAoaW52aXRlQ29kZTogc3RyaW5nLCBvcHRpb25zPzogR2V0SW52aXRlKSA9PiBQcm9taXNlPEludml0ZT5cbiAgZ2V0SW52aXRlczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxJbnZpdGVbXT5cbiAgZ2V0TWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxNZXNzYWdlPlxuICBnZXRNZXNzYWdlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0TWVzc2FnZXNPcHRpb25zKSA9PiBQcm9taXNlPE1lc3NhZ2VbXT5cbiAgZ2V0U3RpY2tlclBhY2tzOiAoKSA9PiBQcm9taXNlPFN0aWNrZXJQYWNrW10+XG4gIGdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogKHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8TWVzc2FnZT5cbiAgZ2V0UGlubmVkTWVzc2FnZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxNZXNzYWdlW10+XG4gIGdldFByaXZhdGVBcmNoaXZlZFRocmVhZHM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RBcmNoaXZlZFRocmVhZHMpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEFyY2hpdmVkVGhyZWFkcz5cbiAgZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdEFyY2hpdmVkVGhyZWFkcykgPT4gUHJvbWlzZTxDYW1lbGl6ZWREaXNjb3JkQXJjaGl2ZWRUaHJlYWRzPlxuICBnZXRQcnVuZUNvdW50OiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0R3VpbGRQcnVuZUNvdW50UXVlcnkpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZFBydW5lZENvdW50PlxuICBnZXRQdWJsaWNBcmNoaXZlZFRocmVhZHM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RBcmNoaXZlZFRocmVhZHMpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEFyY2hpdmVkVGhyZWFkcz5cbiAgZ2V0Um9sZXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Um9sZVtdPlxuICBnZXRTY2hlZHVsZWRFdmVudDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgZXZlbnRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogeyB3aXRoVXNlckNvdW50PzogYm9vbGVhbiB9KSA9PiBQcm9taXNlPFNjaGVkdWxlZEV2ZW50PlxuICBnZXRTY2hlZHVsZWRFdmVudHM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRTY2hlZHVsZWRFdmVudHMpID0+IFByb21pc2U8U2NoZWR1bGVkRXZlbnRbXT5cbiAgZ2V0U2NoZWR1bGVkRXZlbnRVc2VyczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBldmVudElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldFNjaGVkdWxlZEV2ZW50VXNlcnMsXG4gICkgPT4gUHJvbWlzZTxBcnJheTx7IHVzZXI6IFVzZXI7IG1lbWJlcj86IE1lbWJlciB9Pj5cbiAgZ2V0U2Vzc2lvbkluZm86ICgpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEdldEdhdGV3YXlCb3Q+XG4gIGdldFN0YWdlSW5zdGFuY2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTdGFnZUluc3RhbmNlPlxuICBnZXRTdGlja2VyOiAoc3RpY2tlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U3RpY2tlcj5cbiAgZ2V0VGhyZWFkTWVtYmVyOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRocmVhZE1lbWJlcj5cbiAgZ2V0VGhyZWFkTWVtYmVyczogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRocmVhZE1lbWJlcltdPlxuICBnZXRSZWFjdGlvbnM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcsIG9wdGlvbnM/OiBHZXRSZWFjdGlvbnMpID0+IFByb21pc2U8VXNlcltdPlxuICBnZXRVc2VyOiAoaWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxVc2VyPlxuICBnZXRDdXJyZW50VXNlcjogKGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8VXNlcj5cbiAgZ2V0VXNlckNvbm5lY3Rpb25zOiAoYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZWREaXNjb3JkQ29ubmVjdGlvbltdPlxuICBnZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogKGJlYXJlclRva2VuOiBzdHJpbmcsIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZWREaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbj5cbiAgZ2V0VmFuaXR5VXJsOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplZERpc2NvcmRWYW5pdHlVcmw+XG4gIGdldFZvaWNlUmVnaW9uczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZWREaXNjb3JkVm9pY2VSZWdpb25bXT5cbiAgZ2V0V2ViaG9vazogKHdlYmhvb2tJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFdlYmhvb2s+XG4gIGdldFdlYmhvb2tNZXNzYWdlOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHRva2VuOiBzdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0V2ViaG9va01lc3NhZ2VPcHRpb25zKSA9PiBQcm9taXNlPE1lc3NhZ2U+XG4gIGdldFdlYmhvb2tXaXRoVG9rZW46ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxXZWJob29rPlxuICBnZXRXZWxjb21lU2NyZWVuOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFdlbGNvbWVTY3JlZW4+XG4gIGdldFdpZGdldDogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxHdWlsZFdpZGdldD5cbiAgZ2V0V2lkZ2V0U2V0dGluZ3M6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8R3VpbGRXaWRnZXRTZXR0aW5ncz5cbiAgcHVibGlzaE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8TWVzc2FnZT5cbiAgc2VuZE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlTWVzc2FnZU9wdGlvbnMpID0+IFByb21pc2U8TWVzc2FnZT5cbiAgc2VuZEZvbGxvd3VwTWVzc2FnZTogKHRva2VuOiBzdHJpbmcsIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhKSA9PiBQcm9taXNlPE1lc3NhZ2U+XG4gIHN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IFN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxDaGFubmVsPlxuICBzdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IFN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxDaGFubmVsPlxuICBzeW5jR3VpbGRUZW1wbGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUZW1wbGF0ZT5cbiAgdXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogKFxuICAgIGNvbW1hbmRzOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRbXSxcbiAgICBvcHRpb25zPzogVXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZFtdPlxuICB1cHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgY29tbWFuZHM6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZFtdLFxuICAgIG9wdGlvbnM/OiBVcHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgZWRpdEJvdE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdEJvdE1lbWJlck9wdGlvbnMsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxNZW1iZXI+XG4gIGVkaXRNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlHdWlsZE1lbWJlciwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPE1lbWJlcj5cbiAgZ2V0TWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxNZW1iZXI+XG4gIGdldEN1cnJlbnRNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8TWVtYmVyPlxuICBnZXRNZW1iZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBMaXN0R3VpbGRNZW1iZXJzKSA9PiBQcm9taXNlPE1lbWJlcltdPlxuICBwcnVuZU1lbWJlcnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEJlZ2luR3VpbGRQcnVuZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHsgcHJ1bmVkOiBudW1iZXIgfCBudWxsIH0+XG4gIHNlYXJjaE1lbWJlcnM6IChndWlsZElkOiBCaWdTdHJpbmcsIHF1ZXJ5OiBzdHJpbmcsIG9wdGlvbnM/OiBPbWl0PFNlYXJjaE1lbWJlcnMsICdxdWVyeSc+KSA9PiBQcm9taXNlPE1lbWJlcltdPlxuICAvLyBmdW5jdGlvbnMgcmV0dXJuIFZvaWQgc28gZG9udCBuZWVkIGFueSBzcGVjaWFsIGhhbmRsaW5nXG4gIGFkZFJlYWN0aW9uOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZFJlYWN0aW9uczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhY3Rpb25zOiBzdHJpbmdbXSwgb3JkZXJlZD86IGJvb2xlYW4pID0+IFByb21pc2U8dm9pZD5cbiAgYWRkUm9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgYWRkVGhyZWFkTWVtYmVyOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZERtUmVjaXBpZW50OiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBBZGREbVJlY2lwaWVudE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD5cbiAgYWRkR3VpbGRNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBBZGRHdWlsZE1lbWJlck9wdGlvbnMpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQXV0b21vZFJ1bGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJ1bGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQ2hhbm5lbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQ2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvdmVyd3JpdGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlRW1vamk6IChndWlsZElkOiBCaWdTdHJpbmcsIGlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVGb2xsb3d1cE1lc3NhZ2U6ICh0b2tlbjogc3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVHdWlsZDogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nLCBndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR3VpbGRTdGlja2VyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBzdGlja2VySWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUd1aWxkVGVtcGxhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHRlbXBsYXRlQ29kZTogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUludGVncmF0aW9uOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBpbnRlZ3JhdGlvbklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVJbnZpdGU6IChpbnZpdGVDb2RlOiBzdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlTWVzc2FnZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkczogQmlnU3RyaW5nW10sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6ICh0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZU93blJlYWN0aW9uOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVJlYWN0aW9uc0FsbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVSZWFjdGlvbnNFbW9qaTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVNjaGVkdWxlZEV2ZW50OiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBldmVudElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlU3RhZ2VJbnN0YW5jZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlVXNlclJlYWN0aW9uOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcmVhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVXZWJob29rOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVXZWJob29rTWVzc2FnZTogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IERlbGV0ZVdlYmhvb2tNZXNzYWdlT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVXZWJob29rV2l0aFRva2VuOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlc09wdGlvbnMsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBlZGl0Q2hhbm5lbFBvc2l0aW9uczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgY2hhbm5lbFBvc2l0aW9uczogTW9kaWZ5R3VpbGRDaGFubmVsUG9zaXRpb25zW10pID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdEd1aWxkTWZhTGV2ZWw6IChndWlsZElkOiBCaWdTdHJpbmcsIG1mYUxldmVsOiBNZmFMZXZlbHMsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBlZGl0T3duVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdE93blZvaWNlU3RhdGUpID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdFVzZXJWb2ljZVN0YXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0VXNlclZvaWNlU3RhdGUpID0+IFByb21pc2U8dm9pZD5cbiAgam9pblRocmVhZDogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxlYXZlR3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgbGVhdmVUaHJlYWQ6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICByZW1vdmVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICByZW1vdmVUaHJlYWRNZW1iZXI6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcmVtb3ZlRG1SZWNpcGllbnQ6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgc2VuZEludGVyYWN0aW9uUmVzcG9uc2U6IChpbnRlcmFjdGlvbklkOiBCaWdTdHJpbmcsIHRva2VuOiBzdHJpbmcsIG9wdGlvbnM6IEludGVyYWN0aW9uUmVzcG9uc2UpID0+IFByb21pc2U8dm9pZD5cbiAgdHJpZ2dlclR5cGluZ0luZGljYXRvcjogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGJhbk1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBDcmVhdGVHdWlsZEJhbiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGtpY2tNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcGluTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHVuYmFuTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHVucGluTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGdldEd1aWxkT25ib2FyZGluZzogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxHdWlsZE9uYm9hcmRpbmc+XG4gIGVkaXRHdWlsZE9uYm9hcmRpbmc6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRHdWlsZE9uYm9hcmRpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxHdWlsZE9uYm9hcmRpbmc+XG4gIGxpc3RFbnRpdGxlbWVudHM6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRFbnRpdGxlbWVudHMpID0+IFByb21pc2U8RW50aXRsZW1lbnRbXT5cbiAgY3JlYXRlVGVzdEVudGl0bGVtZW50OiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLCBib2R5OiBDcmVhdGVFbnRpdGxlbWVudCkgPT4gUHJvbWlzZTxQYXJ0aWFsPEVudGl0bGVtZW50Pj5cbiAgZGVsZXRlVGVzdEVudGl0bGVtZW50OiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLCBlbnRpdGxlbWVudElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgbGlzdFNrdXM6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2t1W10+XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlQm90SGVscGVycyIsImJvdCIsImNyZWF0ZUF1dG9tb2RSdWxlIiwiZ3VpbGRJZCIsIm9wdGlvbnMiLCJyZWFzb24iLCJ0cmFuc2Zvcm1lcnMiLCJhdXRvbW9kUnVsZSIsInNuYWtlbGl6ZSIsInJlc3QiLCJjcmVhdGVDaGFubmVsIiwiY2hhbm5lbCIsImNyZWF0ZUVtb2ppIiwiZW1vamkiLCJjcmVhdGVGb3J1bVRocmVhZCIsImNoYW5uZWxJZCIsImNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImNvbW1hbmQiLCJhcHBsaWNhdGlvbkNvbW1hbmQiLCJjcmVhdGVHdWlsZCIsImd1aWxkIiwic2hhcmRJZCIsImNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiY3JlYXRlR3VpbGRGcm9tVGVtcGxhdGUiLCJ0ZW1wbGF0ZUNvZGUiLCJjcmVhdGVHdWlsZFN0aWNrZXIiLCJzdGlja2VyIiwiY3JlYXRlR3VpbGRUZW1wbGF0ZSIsInRlbXBsYXRlIiwiY3JlYXRlSW52aXRlIiwiY3JlYXRlUm9sZSIsInJvbGUiLCJjcmVhdGVTY2hlZHVsZWRFdmVudCIsInNjaGVkdWxlZEV2ZW50IiwiY3JlYXRlU3RhZ2VJbnN0YW5jZSIsInN0YWdlSW5zdGFuY2UiLCJjcmVhdGVXZWJob29rIiwid2ViaG9vayIsImVkaXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyIsImNvbW1hbmRJZCIsImJlYXJlclRva2VuIiwiYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbiIsImVkaXRBdXRvbW9kUnVsZSIsInJ1bGVJZCIsImVkaXRCb3RQcm9maWxlIiwidXNlciIsImVkaXRDaGFubmVsIiwiZWRpdEVtb2ppIiwiaWQiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwidG9rZW4iLCJtZXNzYWdlSWQiLCJtZXNzYWdlIiwiZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImVkaXRHdWlsZCIsImVkaXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZCIsImVkaXRHdWlsZFN0aWNrZXIiLCJzdGlja2VySWQiLCJlZGl0R3VpbGRUZW1wbGF0ZSIsImVkaXRNZXNzYWdlIiwiZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsInJlc3VsdCIsImVkaXRPcmlnaW5hbFdlYmhvb2tNZXNzYWdlIiwid2ViaG9va0lkIiwiZWRpdFJvbGUiLCJyb2xlSWQiLCJlZGl0Um9sZVBvc2l0aW9ucyIsIm1hcCIsImVkaXRTY2hlZHVsZWRFdmVudCIsImV2ZW50SWQiLCJlZGl0U3RhZ2VJbnN0YW5jZSIsInRvcGljIiwiZWRpdFdlYmhvb2siLCJlZGl0V2ViaG9va01lc3NhZ2UiLCJlZGl0V2ViaG9va1dpdGhUb2tlbiIsImVkaXRXZWxjb21lU2NyZWVuIiwid2VsY29tZVNjcmVlbiIsImVkaXRXaWRnZXRTZXR0aW5ncyIsIndpZGdldFNldHRpbmdzIiwiZXhlY3V0ZVdlYmhvb2siLCJmb2xsb3dBbm5vdW5jZW1lbnQiLCJzb3VyY2VDaGFubmVsSWQiLCJ0YXJnZXRDaGFubmVsSWQiLCJnZXRBY3RpdmVUaHJlYWRzIiwidGhyZWFkcyIsInRocmVhZCIsIm1lbWJlcnMiLCJtZW1iZXIiLCJ0aHJlYWRNZW1iZXIiLCJnZXRBcHBsaWNhdGlvbkluZm8iLCJhcHBsaWNhdGlvbiIsImVkaXRBcHBsaWNhdGlvbkluZm8iLCJib2R5IiwiZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbyIsImV4Y2hhbmdlVG9rZW4iLCJjbGllbnRJZCIsImNsaWVudFNlY3JldCIsInJldm9rZVRva2VuIiwiZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbiIsInJlcyIsInNuYWtlZFJlcyIsImdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zIiwiZ2V0QXVkaXRMb2ciLCJnZXRBdXRvbW9kUnVsZSIsImdldEF1dG9tb2RSdWxlcyIsImdldEF2YWlsYWJsZVZvaWNlUmVnaW9ucyIsInZvaWNlUmVnaW9uIiwiZ2V0QmFuIiwidXNlcklkIiwiZ2V0QmFucyIsImdldENoYW5uZWwiLCJnZXRDaGFubmVsSW52aXRlcyIsImdldENoYW5uZWxzIiwiZ2V0Q2hhbm5lbFdlYmhvb2tzIiwiZ2V0RG1DaGFubmVsIiwiZ2V0R3JvdXBEbUNoYW5uZWwiLCJnZXRFbW9qaSIsImVtb2ppSWQiLCJnZXRFbW9qaXMiLCJnZXRGb2xsb3d1cE1lc3NhZ2UiLCJnZXRHYXRld2F5Qm90IiwiZ2F0ZXdheUJvdCIsImdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJnZXRHdWlsZCIsImdldEd1aWxkcyIsImdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzIiwiZ2V0R3VpbGRQcmV2aWV3IiwiZ2V0R3VpbGRTdGlja2VyIiwiZ2V0R3VpbGRTdGlja2VycyIsImdldEd1aWxkVGVtcGxhdGUiLCJnZXRHdWlsZFRlbXBsYXRlcyIsImdldEd1aWxkV2ViaG9va3MiLCJnZXRJbnRlZ3JhdGlvbnMiLCJpbnRlZ3JhdGlvbiIsInRvU3RyaW5nIiwiZ2V0SW52aXRlIiwiaW52aXRlQ29kZSIsImludml0ZSIsImdldEludml0ZXMiLCJnZXRNZXNzYWdlIiwiZ2V0TWVzc2FnZXMiLCJnZXRTdGlja2VyUGFja3MiLCJzdGlja2VyUGFjayIsImdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImdldFBpbm5lZE1lc3NhZ2VzIiwiZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkcyIsImdldFByaXZhdGVKb2luZWRBcmNoaXZlZFRocmVhZHMiLCJnZXRQcnVuZUNvdW50IiwiZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzIiwiZ2V0Um9sZXMiLCJnZXRTY2hlZHVsZWRFdmVudCIsImdldFNjaGVkdWxlZEV2ZW50cyIsImdldFNjaGVkdWxlZEV2ZW50VXNlcnMiLCJ1Iiwic25vd2ZsYWtlIiwiZ2V0U2Vzc2lvbkluZm8iLCJnZXRTdGFnZUluc3RhbmNlIiwiZ2V0U3RpY2tlciIsImdldFRocmVhZE1lbWJlciIsImdldFRocmVhZE1lbWJlcnMiLCJnZXRSZWFjdGlvbnMiLCJyZWFjdGlvbiIsImdldFVzZXIiLCJnZXRDdXJyZW50VXNlciIsImdldFVzZXJDb25uZWN0aW9ucyIsImdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uIiwiYXBwbGljYXRpb25JZCIsImdldFZhbml0eVVybCIsImdldFZvaWNlUmVnaW9ucyIsImdldFdlYmhvb2siLCJnZXRXZWJob29rTWVzc2FnZSIsImdldFdlYmhvb2tXaXRoVG9rZW4iLCJnZXRXZWxjb21lU2NyZWVuIiwiZ2V0V2lkZ2V0Iiwid2lkZ2V0IiwiZ2V0V2lkZ2V0U2V0dGluZ3MiLCJwdWJsaXNoTWVzc2FnZSIsInNlbmRNZXNzYWdlIiwic2VuZEZvbGxvd3VwTWVzc2FnZSIsInN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UiLCJzdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlIiwic3luY0d1aWxkVGVtcGxhdGUiLCJ1cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzIiwiY29tbWFuZHMiLCJ1cHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJlZGl0Qm90TWVtYmVyIiwiZWRpdE1lbWJlciIsImdldE1lbWJlciIsImdldEN1cnJlbnRNZW1iZXIiLCJnZXRNZW1iZXJzIiwicHJ1bmVNZW1iZXJzIiwic2VhcmNoTWVtYmVycyIsInF1ZXJ5IiwiYWRkUmVhY3Rpb24iLCJhZGRSZWFjdGlvbnMiLCJyZWFjdGlvbnMiLCJvcmRlcmVkIiwiYWRkUm9sZSIsImFkZFRocmVhZE1lbWJlciIsImFkZERtUmVjaXBpZW50IiwiYWRkR3VpbGRNZW1iZXIiLCJkZWxldGVBdXRvbW9kUnVsZSIsImRlbGV0ZUNoYW5uZWwiLCJkZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlIiwib3ZlcndyaXRlSWQiLCJkZWxldGVFbW9qaSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImRlbGV0ZUd1aWxkIiwiZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJkZWxldGVHdWlsZFN0aWNrZXIiLCJkZWxldGVHdWlsZFRlbXBsYXRlIiwiZGVsZXRlSW50ZWdyYXRpb24iLCJpbnRlZ3JhdGlvbklkIiwiZGVsZXRlSW52aXRlIiwiZGVsZXRlTWVzc2FnZSIsImRlbGV0ZU1lc3NhZ2VzIiwibWVzc2FnZUlkcyIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImRlbGV0ZU93blJlYWN0aW9uIiwiZGVsZXRlUmVhY3Rpb25zQWxsIiwiZGVsZXRlUmVhY3Rpb25zRW1vamkiLCJkZWxldGVSb2xlIiwiZGVsZXRlU2NoZWR1bGVkRXZlbnQiLCJkZWxldGVTdGFnZUluc3RhbmNlIiwiZGVsZXRlVXNlclJlYWN0aW9uIiwiZGVsZXRlV2ViaG9vayIsImRlbGV0ZVdlYmhvb2tNZXNzYWdlIiwiZGVsZXRlV2ViaG9va1dpdGhUb2tlbiIsImVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlcyIsImVkaXRDaGFubmVsUG9zaXRpb25zIiwiY2hhbm5lbFBvc2l0aW9ucyIsImVkaXRHdWlsZE1mYUxldmVsIiwibWZhTGV2ZWwiLCJlZGl0T3duVm9pY2VTdGF0ZSIsImVkaXRVc2VyVm9pY2VTdGF0ZSIsImVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbiIsImpvaW5UaHJlYWQiLCJsZWF2ZUd1aWxkIiwibGVhdmVUaHJlYWQiLCJyZW1vdmVSb2xlIiwicmVtb3ZlVGhyZWFkTWVtYmVyIiwicmVtb3ZlRG1SZWNpcGllbnQiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImludGVyYWN0aW9uSWQiLCJ0cmlnZ2VyVHlwaW5nSW5kaWNhdG9yIiwiYmFuTWVtYmVyIiwia2lja01lbWJlciIsInBpbk1lc3NhZ2UiLCJ1bmJhbk1lbWJlciIsInVucGluTWVzc2FnZSIsImdldEd1aWxkT25ib2FyZGluZyIsImd1aWxkT25ib2FyZGluZyIsImVkaXRHdWlsZE9uYm9hcmRpbmciLCJsaXN0RW50aXRsZW1lbnRzIiwiZW50aXRsZW1lbnQiLCJjcmVhdGVUZXN0RW50aXRsZW1lbnQiLCJkZWxldGVUZXN0RW50aXRsZW1lbnQiLCJlbnRpdGxlbWVudElkIiwibGlzdFNrdXMiLCJza3UiXSwibWFwcGluZ3MiOiI7Ozs7K0JBeUhnQkE7OztlQUFBQTs7O3VCQTVCVTtBQTRCbkIsU0FBU0EsaUJBQWlCQyxHQUFRO0lBQ3ZDLE9BQU87UUFDTEMsbUJBQW1CLE9BQU9DLFNBQVNDLFNBQVNDO1lBQzFDLE9BQU9KLElBQUlLLFlBQVksQ0FBQ0MsV0FBVyxDQUFDTixLQUFLTyxJQUFBQSxnQkFBUyxFQUFDLE1BQU1QLElBQUlRLElBQUksQ0FBQ1AsaUJBQWlCLENBQUNDLFNBQVNDLFNBQVNDO1FBQ3hHO1FBQ0FLLGVBQWUsT0FBT1AsU0FBU0MsU0FBU0M7WUFDdEMsT0FBT0osSUFBSUssWUFBWSxDQUFDSyxPQUFPLENBQUNWLEtBQUs7Z0JBQUVVLFNBQVNILElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDQyxhQUFhLENBQUNQLFNBQVNDLFNBQVNDO2dCQUFVRjtZQUFRO1FBQzdIO1FBQ0FTLGFBQWEsT0FBT1QsU0FBU0MsU0FBU0M7WUFDcEMsT0FBT0osSUFBSUssWUFBWSxDQUFDTyxLQUFLLENBQUNaLEtBQUtPLElBQUFBLGdCQUFTLEVBQUMsTUFBTVAsSUFBSVEsSUFBSSxDQUFDRyxXQUFXLENBQUNULFNBQVNDLFNBQVNDO1FBQzVGO1FBQ0FTLG1CQUFtQixPQUFPQyxXQUFXWCxTQUFTQztZQUM1QyxPQUFPSixJQUFJSyxZQUFZLENBQUNLLE9BQU8sQ0FBQ1YsS0FBSztnQkFBRVUsU0FBU0gsSUFBQUEsZ0JBQVMsRUFBQyxNQUFNUCxJQUFJUSxJQUFJLENBQUNLLGlCQUFpQixDQUFDQyxXQUFXWCxTQUFTQztZQUFTO1FBQzFIO1FBQ0FXLGdDQUFnQyxPQUFPQyxTQUFTYjtZQUM5QyxPQUFPSCxJQUFJSyxZQUFZLENBQUNZLGtCQUFrQixDQUFDakIsS0FB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
|