oceanic.js 1.10.3-dev.c6c9f52 → 1.10.3-dev.ca8b6e8

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.
Files changed (205) hide show
  1. package/dist/lib/Client.d.ts +99 -0
  2. package/dist/lib/Client.js +263 -0
  3. package/dist/lib/Constants.d.ts +1215 -0
  4. package/dist/lib/Constants.js +1513 -0
  5. package/dist/lib/gateway/Shard.d.ts +83 -0
  6. package/dist/lib/gateway/Shard.js +1621 -0
  7. package/dist/lib/gateway/ShardManager.d.ts +29 -0
  8. package/dist/lib/gateway/ShardManager.js +300 -0
  9. package/dist/lib/index.d.ts +84 -0
  10. package/dist/lib/index.js +168 -0
  11. package/dist/lib/rest/Bucket.d.ts +33 -0
  12. package/dist/lib/rest/Bucket.js +78 -0
  13. package/dist/lib/rest/DiscordHTTPError.d.ts +16 -0
  14. package/dist/lib/rest/DiscordHTTPError.js +65 -0
  15. package/dist/lib/rest/DiscordRESTError.d.ts +19 -0
  16. package/dist/lib/rest/DiscordRESTError.js +89 -0
  17. package/dist/lib/rest/OAuthHelper.d.ts +62 -0
  18. package/dist/lib/rest/OAuthHelper.js +183 -0
  19. package/dist/lib/rest/RESTManager.d.ts +42 -0
  20. package/dist/lib/rest/RESTManager.js +82 -0
  21. package/dist/lib/rest/RequestHandler.d.ts +28 -0
  22. package/dist/lib/rest/RequestHandler.js +313 -0
  23. package/dist/lib/rest/SequentialBucket.d.ts +25 -0
  24. package/dist/lib/rest/SequentialBucket.js +76 -0
  25. package/dist/lib/routes/Applications.d.ts +171 -0
  26. package/dist/lib/routes/Applications.js +447 -0
  27. package/dist/lib/routes/Channels.d.ts +408 -0
  28. package/dist/lib/routes/Channels.js +1160 -0
  29. package/dist/lib/routes/Guilds.d.ts +606 -0
  30. package/dist/lib/routes/Guilds.js +1669 -0
  31. package/dist/lib/routes/Interactions.d.ts +74 -0
  32. package/dist/lib/routes/Interactions.js +141 -0
  33. package/dist/lib/routes/Miscellaneous.d.ts +31 -0
  34. package/dist/lib/routes/Miscellaneous.js +69 -0
  35. package/dist/lib/routes/OAuth.d.ts +108 -0
  36. package/dist/lib/routes/OAuth.js +312 -0
  37. package/dist/lib/routes/Users.d.ts +32 -0
  38. package/dist/lib/routes/Users.js +59 -0
  39. package/dist/lib/routes/Webhooks.d.ts +128 -0
  40. package/dist/lib/routes/Webhooks.js +265 -0
  41. package/dist/lib/structures/AnnouncementChannel.d.ts +36 -0
  42. package/dist/lib/structures/AnnouncementChannel.js +47 -0
  43. package/dist/lib/structures/AnnouncementThreadChannel.d.ts +18 -0
  44. package/dist/lib/structures/AnnouncementThreadChannel.js +27 -0
  45. package/dist/lib/structures/Application.d.ts +102 -0
  46. package/dist/lib/structures/Application.js +189 -0
  47. package/dist/lib/structures/ApplicationCommand.d.ts +74 -0
  48. package/dist/lib/structures/ApplicationCommand.js +141 -0
  49. package/dist/lib/structures/Attachment.d.ts +34 -0
  50. package/dist/lib/structures/Attachment.js +64 -0
  51. package/dist/lib/structures/AuditLogEntry.d.ts +25 -0
  52. package/dist/lib/structures/AuditLogEntry.js +53 -0
  53. package/dist/lib/structures/AutoModerationRule.d.ts +49 -0
  54. package/dist/lib/structures/AutoModerationRule.js +139 -0
  55. package/dist/lib/structures/AutocompleteInteraction.d.ts +62 -0
  56. package/dist/lib/structures/AutocompleteInteraction.js +115 -0
  57. package/dist/lib/structures/Base.d.ts +20 -0
  58. package/dist/lib/structures/Base.js +58 -0
  59. package/dist/lib/structures/BaseEntitlement.d.ts +19 -0
  60. package/dist/lib/structures/BaseEntitlement.js +44 -0
  61. package/dist/lib/structures/CategoryChannel.d.ts +41 -0
  62. package/dist/lib/structures/CategoryChannel.js +105 -0
  63. package/dist/lib/structures/Channel.d.ts +20 -0
  64. package/dist/lib/structures/Channel.js +91 -0
  65. package/dist/lib/structures/ClientApplication.d.ts +153 -0
  66. package/dist/lib/structures/ClientApplication.js +220 -0
  67. package/dist/lib/structures/CommandInteraction.d.ts +127 -0
  68. package/dist/lib/structures/CommandInteraction.js +297 -0
  69. package/dist/lib/structures/ComponentInteraction.d.ts +137 -0
  70. package/dist/lib/structures/ComponentInteraction.js +311 -0
  71. package/dist/lib/structures/Entitlement.d.ts +12 -0
  72. package/dist/lib/structures/Entitlement.js +26 -0
  73. package/dist/lib/structures/ExtendedUser.d.ts +26 -0
  74. package/dist/lib/structures/ExtendedUser.js +57 -0
  75. package/dist/lib/structures/ForumChannel.d.ts +11 -0
  76. package/dist/lib/structures/ForumChannel.js +19 -0
  77. package/dist/lib/structures/GroupChannel.d.ts +62 -0
  78. package/dist/lib/structures/GroupChannel.js +133 -0
  79. package/dist/lib/structures/Guild.d.ts +654 -0
  80. package/dist/lib/structures/Guild.js +1319 -0
  81. package/dist/lib/structures/GuildChannel.d.ts +34 -0
  82. package/dist/lib/structures/GuildChannel.js +75 -0
  83. package/dist/lib/structures/GuildPreview.d.ts +50 -0
  84. package/dist/lib/structures/GuildPreview.js +119 -0
  85. package/dist/lib/structures/GuildScheduledEvent.d.ts +60 -0
  86. package/dist/lib/structures/GuildScheduledEvent.js +154 -0
  87. package/dist/lib/structures/GuildTemplate.d.ts +55 -0
  88. package/dist/lib/structures/GuildTemplate.js +126 -0
  89. package/dist/lib/structures/Integration.d.ts +54 -0
  90. package/dist/lib/structures/Integration.js +156 -0
  91. package/dist/lib/structures/Interaction.d.ts +40 -0
  92. package/dist/lib/structures/Interaction.js +90 -0
  93. package/dist/lib/structures/InteractionResolvedChannel.d.ts +28 -0
  94. package/dist/lib/structures/InteractionResolvedChannel.js +45 -0
  95. package/dist/lib/structures/Invite.d.ts +64 -0
  96. package/dist/lib/structures/Invite.js +193 -0
  97. package/dist/lib/structures/InviteGuild.d.ts +52 -0
  98. package/dist/lib/structures/InviteGuild.js +88 -0
  99. package/dist/lib/structures/MediaChannel.d.ts +11 -0
  100. package/dist/lib/structures/MediaChannel.js +19 -0
  101. package/dist/lib/structures/Member.d.ts +122 -0
  102. package/dist/lib/structures/Member.js +255 -0
  103. package/dist/lib/structures/Message.d.ts +194 -0
  104. package/dist/lib/structures/Message.js +477 -0
  105. package/dist/lib/structures/ModalSubmitInteraction.d.ts +128 -0
  106. package/dist/lib/structures/ModalSubmitInteraction.js +240 -0
  107. package/dist/lib/structures/OAuthApplication.d.ts +79 -0
  108. package/dist/lib/structures/OAuthApplication.js +210 -0
  109. package/dist/lib/structures/OAuthGuild.d.ts +35 -0
  110. package/dist/lib/structures/OAuthGuild.js +61 -0
  111. package/dist/lib/structures/PartialApplication.d.ts +30 -0
  112. package/dist/lib/structures/PartialApplication.js +67 -0
  113. package/dist/lib/structures/Permission.d.ts +21 -0
  114. package/dist/lib/structures/Permission.js +68 -0
  115. package/dist/lib/structures/PermissionOverwrite.d.ts +26 -0
  116. package/dist/lib/structures/PermissionOverwrite.js +49 -0
  117. package/dist/lib/structures/PingInteraction.d.ts +16 -0
  118. package/dist/lib/structures/PingInteraction.js +26 -0
  119. package/dist/lib/structures/Poll.d.ts +28 -0
  120. package/dist/lib/structures/Poll.js +78 -0
  121. package/dist/lib/structures/PrivateChannel.d.ts +90 -0
  122. package/dist/lib/structures/PrivateChannel.js +131 -0
  123. package/dist/lib/structures/PrivateThreadChannel.d.ts +18 -0
  124. package/dist/lib/structures/PrivateThreadChannel.js +27 -0
  125. package/dist/lib/structures/PublicThreadChannel.d.ts +21 -0
  126. package/dist/lib/structures/PublicThreadChannel.js +37 -0
  127. package/dist/lib/structures/Role.d.ts +52 -0
  128. package/dist/lib/structures/Role.js +137 -0
  129. package/dist/lib/structures/SKU.d.ts +32 -0
  130. package/dist/lib/structures/SKU.js +53 -0
  131. package/dist/lib/structures/StageChannel.d.ts +33 -0
  132. package/dist/lib/structures/StageChannel.js +44 -0
  133. package/dist/lib/structures/StageInstance.d.ts +36 -0
  134. package/dist/lib/structures/StageInstance.js +94 -0
  135. package/dist/lib/structures/Team.d.ts +22 -0
  136. package/dist/lib/structures/Team.js +67 -0
  137. package/dist/lib/structures/TestEntitlement.d.ts +10 -0
  138. package/dist/lib/structures/TestEntitlement.js +21 -0
  139. package/dist/lib/structures/TextChannel.d.ts +34 -0
  140. package/dist/lib/structures/TextChannel.js +46 -0
  141. package/dist/lib/structures/TextableChannel.d.ts +158 -0
  142. package/dist/lib/structures/TextableChannel.js +276 -0
  143. package/dist/lib/structures/TextableVoiceChannel.d.ts +39 -0
  144. package/dist/lib/structures/TextableVoiceChannel.js +81 -0
  145. package/dist/lib/structures/ThreadChannel.d.ts +159 -0
  146. package/dist/lib/structures/ThreadChannel.js +295 -0
  147. package/dist/lib/structures/ThreadOnlyChannel.d.ts +99 -0
  148. package/dist/lib/structures/ThreadOnlyChannel.js +233 -0
  149. package/dist/lib/structures/ThreadableChannel.d.ts +36 -0
  150. package/dist/lib/structures/ThreadableChannel.js +58 -0
  151. package/dist/lib/structures/UnavailableGuild.d.ts +11 -0
  152. package/dist/lib/structures/UnavailableGuild.js +21 -0
  153. package/dist/lib/structures/User.d.ts +82 -0
  154. package/dist/lib/structures/User.js +168 -0
  155. package/dist/lib/structures/VoiceChannel.d.ts +20 -0
  156. package/dist/lib/structures/VoiceChannel.js +35 -0
  157. package/dist/lib/structures/VoiceState.d.ts +51 -0
  158. package/dist/lib/structures/VoiceState.js +140 -0
  159. package/dist/lib/structures/Webhook.d.ts +129 -0
  160. package/dist/lib/structures/Webhook.js +206 -0
  161. package/dist/lib/types/applications.d.ts +466 -0
  162. package/dist/lib/types/audit-log.d.ts +122 -0
  163. package/dist/lib/types/auto-moderation.d.ts +99 -0
  164. package/dist/lib/types/channels.d.ts +1244 -0
  165. package/dist/lib/types/client.d.ts +228 -0
  166. package/dist/lib/types/events.d.ts +265 -0
  167. package/dist/lib/types/gateway-raw.d.ts +584 -0
  168. package/dist/lib/types/gateway.d.ts +351 -0
  169. package/dist/lib/types/guild-template.d.ts +33 -0
  170. package/dist/lib/types/guilds.d.ts +855 -0
  171. package/dist/lib/types/index.d.ts +18 -0
  172. package/dist/lib/types/interactions.d.ts +377 -0
  173. package/dist/lib/types/json.d.ts +742 -0
  174. package/dist/lib/types/misc.d.ts +28 -0
  175. package/dist/lib/types/oauth.d.ts +201 -0
  176. package/dist/lib/types/request-handler.d.ts +52 -0
  177. package/dist/lib/types/scheduled-events.d.ts +88 -0
  178. package/dist/lib/types/shared.d.ts +9 -0
  179. package/dist/lib/types/users.d.ts +45 -0
  180. package/dist/lib/types/voice.d.ts +45 -0
  181. package/dist/lib/types/webhooks.d.ts +74 -0
  182. package/dist/lib/util/Collection.d.ts +47 -0
  183. package/dist/lib/util/Collection.js +78 -0
  184. package/dist/lib/util/Errors.d.ts +29 -0
  185. package/dist/lib/util/Errors.js +56 -0
  186. package/dist/lib/util/Routes.d.ts +127 -0
  187. package/dist/lib/util/Routes.js +248 -0
  188. package/dist/lib/util/SimpleCollection.d.ts +12 -0
  189. package/dist/lib/util/SimpleCollection.js +81 -0
  190. package/dist/lib/util/TypedCollection.d.ts +24 -0
  191. package/dist/lib/util/TypedCollection.js +76 -0
  192. package/dist/lib/util/TypedEmitter.d.ts +19 -0
  193. package/dist/lib/util/TypedEmitter.js +19 -0
  194. package/dist/lib/util/Util.d.ts +58 -0
  195. package/dist/lib/util/Util.js +535 -0
  196. package/dist/lib/util/interactions/InteractionOptionsWrapper.d.ts +170 -0
  197. package/dist/lib/util/interactions/InteractionOptionsWrapper.js +213 -0
  198. package/dist/lib/util/interactions/MessageInteractionResponse.d.ts +24 -0
  199. package/dist/lib/util/interactions/MessageInteractionResponse.js +28 -0
  200. package/dist/lib/util/interactions/ModalSubmitInteractionComponentsWrapper.d.ts +24 -0
  201. package/dist/lib/util/interactions/ModalSubmitInteractionComponentsWrapper.js +34 -0
  202. package/dist/lib/util/interactions/SelectMenuValuesWrapper.d.ts +60 -0
  203. package/dist/lib/util/interactions/SelectMenuValuesWrapper.js +124 -0
  204. package/dist/package.json +1 -1
  205. package/package.json +1 -1
@@ -0,0 +1,171 @@
1
+ import type { AnyApplicationCommand, ApplicationCommandOptionConversion, CreateApplicationCommandOptions, EditApplicationCommandOptions, EditApplicationCommandPermissionsOptions, RESTGuildApplicationCommandPermissions, CreateGuildApplicationCommandOptions, EditGuildApplicationCommandOptions, GetApplicationCommandOptions, CreateTestEntitlementOptions, SearchEntitlementsOptions } from "../types/applications";
2
+ import ApplicationCommand from "../structures/ApplicationCommand";
3
+ import type RESTManager from "../rest/RESTManager";
4
+ import SKU from "../structures/SKU";
5
+ import Entitlement from "../structures/Entitlement";
6
+ import TestEntitlement from "../structures/TestEntitlement";
7
+ import ClientApplication from "../structures/ClientApplication";
8
+ import type { EditApplicationOptions } from "../types";
9
+ import Application from "../structures/Application";
10
+ /** Various methods for interacting with application commands. Located at {@link Client#rest | Client#rest}{@link RESTManager#applications | .applications}. */
11
+ export default class Applications {
12
+ private _manager;
13
+ constructor(manager: RESTManager);
14
+ /**
15
+ * Overwrite all existing global application commands.
16
+ * @param applicationID The ID of the application.
17
+ * @param options The commands.
18
+ * @caching This method **does not** cache its result.
19
+ */
20
+ bulkEditGlobalCommands(applicationID: string, options: Array<CreateApplicationCommandOptions>): Promise<Array<ApplicationCommand>>;
21
+ /**
22
+ * Overwrite all existing application commands in a guild.
23
+ * @param applicationID The ID of the application.
24
+ * @param guildID The ID of the guild.
25
+ * @param options The commands.
26
+ * @caching This method **does not** cache its result.
27
+ */
28
+ bulkEditGuildCommands(applicationID: string, guildID: string, options: Array<CreateGuildApplicationCommandOptions>): Promise<Array<ApplicationCommand>>;
29
+ /**
30
+ * Create a global application command.
31
+ * @param applicationID The ID of the application.
32
+ * @param options The options for the command.
33
+ * @caching This method **does not** cache its result.
34
+ */
35
+ createGlobalCommand<T extends CreateApplicationCommandOptions = CreateApplicationCommandOptions>(applicationID: string, options: T): Promise<ApplicationCommandOptionConversion<T>>;
36
+ /**
37
+ * Create a guild application command.
38
+ * @param applicationID The ID of the application.
39
+ * @param guildID The ID of the guild.
40
+ * @param options The options for the command.
41
+ * @caching This method **does not** cache its result.
42
+ */
43
+ createGuildCommand<T extends CreateGuildApplicationCommandOptions = CreateGuildApplicationCommandOptions>(applicationID: string, guildID: string, options: T): Promise<ApplicationCommandOptionConversion<T>>;
44
+ /**
45
+ * Create a test entitlement.
46
+ * @param applicationID The ID of the application to create the entitlement for.
47
+ * @param options The options for creating the test entitlement.
48
+ */
49
+ createTestEntitlement(applicationID: string, options: CreateTestEntitlementOptions): Promise<TestEntitlement>;
50
+ /**
51
+ * Delete a global application command.
52
+ * @param applicationID The ID of the application.
53
+ * @param commandID The ID the command to delete.
54
+ * @caching This method **does not** cache its result.
55
+ */
56
+ deleteGlobalCommand(applicationID: string, commandID: string): Promise<void>;
57
+ /**
58
+ * Delete a guild application command.
59
+ * @param applicationID The ID of the application.
60
+ * @param guildID The ID of the guild.
61
+ * @param commandID The ID of the command to delete.
62
+ * @caching This method **does not** cache its result.
63
+ */
64
+ deleteGuildCommand(applicationID: string, guildID: string, commandID: string): Promise<void>;
65
+ /**
66
+ * Delete an entitlement.
67
+ * @param applicationID The ID of the application to delete the entitlement from.
68
+ * @param entitlementID The ID of the entitlement to delete.
69
+ */
70
+ deleteTestEntitlement(applicationID: string, entitlementID: string): Promise<void>;
71
+ /**
72
+ * Edit the currently authenticated bot's application info.
73
+ * @param options The options for editing the application.
74
+ * @caching This method **does not** cache its result.
75
+ */
76
+ editCurrent(options: EditApplicationOptions): Promise<Application>;
77
+ /**
78
+ * Edit a global application command.
79
+ * @param applicationID The ID of the application.
80
+ * @param commandID The ID of the command to edit.
81
+ * @param options The options for editing the command.
82
+ * @caching This method **does not** cache its result.
83
+ */
84
+ editGlobalCommand<T extends EditApplicationCommandOptions = EditApplicationCommandOptions>(applicationID: string, commandID: string, options: T): Promise<ApplicationCommandOptionConversion<T>>;
85
+ /**
86
+ * Edit a guild application command.
87
+ * @param applicationID The ID of the application.
88
+ * @param guildID The ID of the guild.
89
+ * @param commandID The ID of the command to edit.
90
+ * @param options The options for editing the command.
91
+ * @caching This method **does not** cache its result.
92
+ */
93
+ editGuildCommand<T extends EditGuildApplicationCommandOptions = EditGuildApplicationCommandOptions>(applicationID: string, guildID: string, commandID: string, options: T): Promise<ApplicationCommandOptionConversion<T>>;
94
+ /**
95
+ * Edit a guild application command's permissions. This requires a bearer token with the `applications.commands.permissions.update` scope.
96
+ * @param applicationID The ID of the application.
97
+ * @param guildID The ID of the guild.
98
+ * @param commandID The ID of the command.
99
+ * @param options The options for editing the permissions.
100
+ * @caching This method **does not** cache its result.
101
+ */
102
+ editGuildCommandPermissions(applicationID: string, guildID: string, commandID: string, options: EditApplicationCommandPermissionsOptions): Promise<RESTGuildApplicationCommandPermissions>;
103
+ /**
104
+ * Get the currently authenticated bot's application info as a bare {@link ClientApplication | ClientApplication}.
105
+ * @caching This method **does not** cache its result.
106
+ */
107
+ getClient(): Promise<ClientApplication>;
108
+ /**
109
+ * Get the currently authenticated bot's application info.
110
+ * @caching This method **does not** cache its result.
111
+ */
112
+ getCurrent(): Promise<Application>;
113
+ /**
114
+ * Get the entitlements for an application.
115
+ * @param applicationID The ID of the application to get the entitlements of.
116
+ * @param options The options for getting the entitlements.
117
+ */
118
+ getEntitlements(applicationID: string, options?: SearchEntitlementsOptions): Promise<Array<Entitlement | TestEntitlement>>;
119
+ /**
120
+ * Get a global application command.
121
+ * @param applicationID The ID of the application.
122
+ * @param commandID The ID of the command.
123
+ * @param options The options for getting the command.
124
+ * @caching This method **does not** cache its result.
125
+ */
126
+ getGlobalCommand<T extends AnyApplicationCommand = AnyApplicationCommand>(applicationID: string, commandID: string, options?: GetApplicationCommandOptions): Promise<T>;
127
+ /**
128
+ * Get an application's global commands.
129
+ * @param applicationID The ID of the application.
130
+ * @param options The options for getting the command.
131
+ * @caching This method **does not** cache its result.
132
+ */
133
+ getGlobalCommands(applicationID: string, options?: GetApplicationCommandOptions): Promise<Array<AnyApplicationCommand>>;
134
+ /**
135
+ * Get a global application command.
136
+ * @param applicationID The ID of the application.
137
+ * @param guildID The ID of the guild.
138
+ * @param commandID The ID of the command.
139
+ * @param options The options for getting the command.
140
+ * @caching This method **does not** cache its result.
141
+ */
142
+ getGuildCommand<T extends AnyApplicationCommand = AnyApplicationCommand>(applicationID: string, guildID: string, commandID: string, options?: GetApplicationCommandOptions): Promise<T>;
143
+ /**
144
+ * Get an application's application commands in a specific guild.
145
+ * @param applicationID The ID of the application.
146
+ * @param guildID The ID of the guild.
147
+ * @param options The options for getting the command.
148
+ * @caching This method **does not** cache its result.
149
+ */
150
+ getGuildCommands(applicationID: string, guildID: string, options?: GetApplicationCommandOptions): Promise<Array<AnyApplicationCommand>>;
151
+ /**
152
+ * Get an application command's permissions in a guild.
153
+ * @param applicationID The ID of the application.
154
+ * @param guildID The ID of the guild.
155
+ * @param commandID The ID of the command.
156
+ * @caching This method **does not** cache its result.
157
+ */
158
+ getGuildPermission(applicationID: string, guildID: string, commandID: string): Promise<RESTGuildApplicationCommandPermissions>;
159
+ /**
160
+ * Get the permissions for all application commands in a guild.
161
+ * @param applicationID The ID of the application.
162
+ * @param guildID The ID of the guild.
163
+ * @caching This method **does not** cache its result.
164
+ */
165
+ getGuildPermissions(applicationID: string, guildID: string): Promise<Array<RESTGuildApplicationCommandPermissions>>;
166
+ /**
167
+ * Get the SKUs for an application.
168
+ * @param applicationID The ID of the application to get the SKUs of.
169
+ */
170
+ getSKUs(applicationID: string): Promise<Array<SKU>>;
171
+ }
@@ -0,0 +1,447 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ /** @module REST/ApplicationCommands */
5
+ const Routes = tslib_1.__importStar(require("../util/Routes"));
6
+ const ApplicationCommand_1 = tslib_1.__importDefault(require("../structures/ApplicationCommand"));
7
+ const SKU_1 = tslib_1.__importDefault(require("../structures/SKU"));
8
+ const Entitlement_1 = tslib_1.__importDefault(require("../structures/Entitlement"));
9
+ const TestEntitlement_1 = tslib_1.__importDefault(require("../structures/TestEntitlement"));
10
+ const ClientApplication_1 = tslib_1.__importDefault(require("../structures/ClientApplication"));
11
+ const Application_1 = tslib_1.__importDefault(require("../structures/Application"));
12
+ /** Various methods for interacting with application commands. Located at {@link Client#rest | Client#rest}{@link RESTManager#applications | .applications}. */
13
+ class Applications {
14
+ _manager;
15
+ constructor(manager) {
16
+ this._manager = manager;
17
+ }
18
+ /**
19
+ * Overwrite all existing global application commands.
20
+ * @param applicationID The ID of the application.
21
+ * @param options The commands.
22
+ * @caching This method **does not** cache its result.
23
+ */
24
+ async bulkEditGlobalCommands(applicationID, options) {
25
+ const opts = options;
26
+ return this._manager.authRequest({
27
+ method: "PUT",
28
+ path: Routes.APPLICATION_COMMANDS(applicationID),
29
+ json: opts.map(opt => ({
30
+ contexts: opt.contexts,
31
+ description: opt.description,
32
+ default_member_permissions: opt.defaultMemberPermissions,
33
+ description_localizations: opt.descriptionLocalizations,
34
+ dm_permission: opt.dmPermission,
35
+ integration_types: opt.integrationTypes,
36
+ name: opt.name,
37
+ name_localizations: opt.nameLocalizations,
38
+ nsfw: opt.nsfw,
39
+ options: opt.options?.map(o => this._manager.client.util.optionToRaw(o)),
40
+ type: opt.type
41
+ }))
42
+ }).then(data => data.map(d => new ApplicationCommand_1.default(d, this._manager.client)));
43
+ }
44
+ /**
45
+ * Overwrite all existing application commands in a guild.
46
+ * @param applicationID The ID of the application.
47
+ * @param guildID The ID of the guild.
48
+ * @param options The commands.
49
+ * @caching This method **does not** cache its result.
50
+ */
51
+ async bulkEditGuildCommands(applicationID, guildID, options) {
52
+ const opts = options;
53
+ return this._manager.authRequest({
54
+ method: "PUT",
55
+ path: Routes.GUILD_APPLICATION_COMMANDS(applicationID, guildID),
56
+ json: opts.map(opt => ({
57
+ id: opt.id,
58
+ default_member_permissions: opt.defaultMemberPermissions,
59
+ description: opt.description,
60
+ description_localizations: opt.descriptionLocalizations,
61
+ dm_permission: opt.dmPermission,
62
+ name: opt.name,
63
+ name_localizations: opt.nameLocalizations,
64
+ nsfw: opt.nsfw,
65
+ options: opt.options?.map(o => this._manager.client.util.optionToRaw(o)),
66
+ type: opt.type
67
+ }))
68
+ }).then(data => data.map(d => new ApplicationCommand_1.default(d, this._manager.client)));
69
+ }
70
+ /**
71
+ * Create a global application command.
72
+ * @param applicationID The ID of the application.
73
+ * @param options The options for the command.
74
+ * @caching This method **does not** cache its result.
75
+ */
76
+ async createGlobalCommand(applicationID, options) {
77
+ const opt = options;
78
+ return this._manager.authRequest({
79
+ method: "POST",
80
+ path: Routes.APPLICATION_COMMANDS(applicationID),
81
+ json: {
82
+ contexts: opt.contexts,
83
+ default_member_permissions: opt.defaultMemberPermissions,
84
+ description: opt.description,
85
+ description_localizations: opt.descriptionLocalizations,
86
+ dm_permission: opt.dmPermission,
87
+ integration_types: opt.integrationTypes,
88
+ name: opt.name,
89
+ name_localizations: opt.nameLocalizations,
90
+ nsfw: opt.nsfw,
91
+ options: opt.options?.map(o => this._manager.client.util.optionToRaw(o)),
92
+ type: opt.type
93
+ }
94
+ }).then(data => new ApplicationCommand_1.default(data, this._manager.client));
95
+ }
96
+ /**
97
+ * Create a guild application command.
98
+ * @param applicationID The ID of the application.
99
+ * @param guildID The ID of the guild.
100
+ * @param options The options for the command.
101
+ * @caching This method **does not** cache its result.
102
+ */
103
+ async createGuildCommand(applicationID, guildID, options) {
104
+ const opt = options;
105
+ return this._manager.authRequest({
106
+ method: "POST",
107
+ path: Routes.GUILD_APPLICATION_COMMANDS(applicationID, guildID),
108
+ json: {
109
+ default_member_permissions: opt.defaultMemberPermissions,
110
+ description: opt.description,
111
+ description_localizations: opt.descriptionLocalizations,
112
+ dm_permission: opt.dmPermission,
113
+ name: opt.name,
114
+ name_localizations: opt.nameLocalizations,
115
+ nsfw: opt.nsfw,
116
+ options: opt.options?.map(o => this._manager.client.util.optionToRaw(o)),
117
+ type: opt.type
118
+ }
119
+ }).then(data => new ApplicationCommand_1.default(data, this._manager.client));
120
+ }
121
+ /**
122
+ * Create a test entitlement.
123
+ * @param applicationID The ID of the application to create the entitlement for.
124
+ * @param options The options for creating the test entitlement.
125
+ */
126
+ async createTestEntitlement(applicationID, options) {
127
+ return this._manager.authRequest({
128
+ method: "POST",
129
+ path: Routes.ENTITLEMENTS(applicationID),
130
+ json: {
131
+ owner_id: options.ownerID,
132
+ owner_type: options.ownerType,
133
+ sku_id: options.skuID
134
+ }
135
+ }).then(data => new TestEntitlement_1.default(data, this._manager.client));
136
+ }
137
+ /**
138
+ * Delete a global application command.
139
+ * @param applicationID The ID of the application.
140
+ * @param commandID The ID the command to delete.
141
+ * @caching This method **does not** cache its result.
142
+ */
143
+ async deleteGlobalCommand(applicationID, commandID) {
144
+ await this._manager.authRequest({
145
+ method: "DELETE",
146
+ path: Routes.APPLICATION_COMMAND(applicationID, commandID)
147
+ });
148
+ }
149
+ /**
150
+ * Delete a guild application command.
151
+ * @param applicationID The ID of the application.
152
+ * @param guildID The ID of the guild.
153
+ * @param commandID The ID of the command to delete.
154
+ * @caching This method **does not** cache its result.
155
+ */
156
+ async deleteGuildCommand(applicationID, guildID, commandID) {
157
+ await this._manager.authRequest({
158
+ method: "DELETE",
159
+ path: Routes.GUILD_APPLICATION_COMMAND(applicationID, guildID, commandID)
160
+ });
161
+ }
162
+ /**
163
+ * Delete an entitlement.
164
+ * @param applicationID The ID of the application to delete the entitlement from.
165
+ * @param entitlementID The ID of the entitlement to delete.
166
+ */
167
+ async deleteTestEntitlement(applicationID, entitlementID) {
168
+ await this._manager.authRequest({
169
+ method: "DELETE",
170
+ path: Routes.ENTITLEMENT(applicationID, entitlementID)
171
+ });
172
+ }
173
+ /**
174
+ * Edit the currently authenticated bot's application info.
175
+ * @param options The options for editing the application.
176
+ * @caching This method **does not** cache its result.
177
+ */
178
+ async editCurrent(options) {
179
+ if (options.coverImage) {
180
+ options.coverImage = this._manager.client.util._convertImage(options.coverImage, "cover image");
181
+ }
182
+ if (options.icon) {
183
+ options.icon = this._manager.client.util._convertImage(options.icon, "cover image");
184
+ }
185
+ return this._manager.authRequest({
186
+ method: "PATCH",
187
+ path: Routes.APPLICATION,
188
+ json: {
189
+ cover_image: options.coverImage,
190
+ custom_install_url: options.customInstallURL,
191
+ description: options.description,
192
+ flags: options.flags,
193
+ icon: options.icon,
194
+ install_params: options.installParams,
195
+ integration_types_config: options.integrationTypesConfig,
196
+ interactions_endpoint_url: options.interactionsEndpointURL,
197
+ role_connections_verification_url: options.roleConnectionsVerificationURL,
198
+ tags: options.tags
199
+ }
200
+ }).then(data => new Application_1.default(data, this._manager.client));
201
+ }
202
+ /**
203
+ * Edit a global application command.
204
+ * @param applicationID The ID of the application.
205
+ * @param commandID The ID of the command to edit.
206
+ * @param options The options for editing the command.
207
+ * @caching This method **does not** cache its result.
208
+ */
209
+ async editGlobalCommand(applicationID, commandID, options) {
210
+ const opt = options;
211
+ return this._manager.authRequest({
212
+ method: "PATCH",
213
+ path: Routes.APPLICATION_COMMAND(applicationID, commandID),
214
+ json: {
215
+ contexts: opt.contexts,
216
+ default_member_permissions: opt.defaultMemberPermissions,
217
+ description: opt.description,
218
+ description_localizations: opt.descriptionLocalizations,
219
+ dm_permission: opt.dmPermission,
220
+ integration_types: opt.integrationTypes,
221
+ name: opt.name,
222
+ name_localizations: opt.nameLocalizations,
223
+ nsfw: opt.nsfw,
224
+ options: opt.options?.map(o => this._manager.client.util.optionToRaw(o))
225
+ }
226
+ }).then(data => new ApplicationCommand_1.default(data, this._manager.client));
227
+ }
228
+ /**
229
+ * Edit a guild application command.
230
+ * @param applicationID The ID of the application.
231
+ * @param guildID The ID of the guild.
232
+ * @param commandID The ID of the command to edit.
233
+ * @param options The options for editing the command.
234
+ * @caching This method **does not** cache its result.
235
+ */
236
+ async editGuildCommand(applicationID, guildID, commandID, options) {
237
+ const opt = options;
238
+ return this._manager.authRequest({
239
+ method: "PATCH",
240
+ path: Routes.GUILD_APPLICATION_COMMAND(applicationID, guildID, commandID),
241
+ json: {
242
+ default_member_permissions: opt.defaultMemberPermissions,
243
+ description: opt.description,
244
+ description_localizations: opt.descriptionLocalizations,
245
+ dm_permission: opt.dmPermission,
246
+ name: opt.name,
247
+ name_localizations: opt.nameLocalizations,
248
+ nsfw: opt.nsfw,
249
+ options: opt.options?.map(o => this._manager.client.util.optionToRaw(o))
250
+ }
251
+ }).then(data => new ApplicationCommand_1.default(data, this._manager.client));
252
+ }
253
+ /**
254
+ * Edit a guild application command's permissions. This requires a bearer token with the `applications.commands.permissions.update` scope.
255
+ * @param applicationID The ID of the application.
256
+ * @param guildID The ID of the guild.
257
+ * @param commandID The ID of the command.
258
+ * @param options The options for editing the permissions.
259
+ * @caching This method **does not** cache its result.
260
+ */
261
+ async editGuildCommandPermissions(applicationID, guildID, commandID, options) {
262
+ return (options.accessToken ? this._manager.request.bind(this._manager) : this._manager.authRequest.bind(this._manager))({
263
+ method: "PATCH",
264
+ path: Routes.GUILD_APPLICATION_COMMAND_PERMISSION(applicationID, guildID, commandID),
265
+ json: { permissions: options.permissions },
266
+ auth: options.accessToken
267
+ }).then(data => {
268
+ const d = data;
269
+ return {
270
+ applicationID: d.application_id,
271
+ guildID: d.guild_id,
272
+ id: d.id,
273
+ permissions: d.permissions
274
+ };
275
+ });
276
+ }
277
+ /**
278
+ * Get the currently authenticated bot's application info as a bare {@link ClientApplication | ClientApplication}.
279
+ * @caching This method **does not** cache its result.
280
+ */
281
+ async getClient() {
282
+ return this._manager.authRequest({
283
+ method: "GET",
284
+ path: Routes.APPLICATION
285
+ }).then(data => new ClientApplication_1.default(data, this._manager.client));
286
+ }
287
+ /**
288
+ * Get the currently authenticated bot's application info.
289
+ * @caching This method **does not** cache its result.
290
+ */
291
+ async getCurrent() {
292
+ return this._manager.authRequest({
293
+ method: "GET",
294
+ path: Routes.APPLICATION
295
+ }).then(data => new Application_1.default(data, this._manager.client));
296
+ }
297
+ /**
298
+ * Get the entitlements for an application.
299
+ * @param applicationID The ID of the application to get the entitlements of.
300
+ * @param options The options for getting the entitlements.
301
+ */
302
+ async getEntitlements(applicationID, options = {}) {
303
+ const query = new URLSearchParams();
304
+ if (options.after !== undefined)
305
+ query.set("after", options.after);
306
+ if (options.before !== undefined)
307
+ query.set("before", options.before);
308
+ if (options.excludeEnded !== undefined)
309
+ query.set("exclude_ended", String(options.excludeEnded));
310
+ if (options.guildID !== undefined)
311
+ query.set("guild_id", options.guildID);
312
+ if (options.limit !== undefined)
313
+ query.set("limit", String(options.limit));
314
+ if (options.skuIDs !== undefined)
315
+ query.set("sku_ids", options.skuIDs.join(","));
316
+ if (options.userID !== undefined)
317
+ query.set("subscription_id", options.userID);
318
+ return this._manager.authRequest({
319
+ method: "GET",
320
+ path: Routes.ENTITLEMENTS(applicationID),
321
+ query
322
+ }).then(data => data.map(d => "subscription_id" in d && d.subscription_id ? new Entitlement_1.default(d, this._manager.client) : new TestEntitlement_1.default(d, this._manager.client)));
323
+ }
324
+ /**
325
+ * Get a global application command.
326
+ * @param applicationID The ID of the application.
327
+ * @param commandID The ID of the command.
328
+ * @param options The options for getting the command.
329
+ * @caching This method **does not** cache its result.
330
+ */
331
+ async getGlobalCommand(applicationID, commandID, options) {
332
+ const query = new URLSearchParams();
333
+ if (options?.withLocalizations !== undefined) {
334
+ query.set("with_localizations", options.withLocalizations.toString());
335
+ }
336
+ return this._manager.authRequest({
337
+ method: "GET",
338
+ path: Routes.APPLICATION_COMMAND(applicationID, commandID),
339
+ query,
340
+ headers: options?.locale === undefined ? undefined : { "X-Discord-Locale": options.locale }
341
+ }).then(data => new ApplicationCommand_1.default(data, this._manager.client));
342
+ }
343
+ /**
344
+ * Get an application's global commands.
345
+ * @param applicationID The ID of the application.
346
+ * @param options The options for getting the command.
347
+ * @caching This method **does not** cache its result.
348
+ */
349
+ async getGlobalCommands(applicationID, options) {
350
+ const query = new URLSearchParams();
351
+ if (options?.withLocalizations !== undefined) {
352
+ query.set("with_localizations", options.withLocalizations.toString());
353
+ }
354
+ return this._manager.authRequest({
355
+ method: "GET",
356
+ path: Routes.APPLICATION_COMMANDS(applicationID),
357
+ query,
358
+ headers: options?.locale === undefined ? undefined : { "X-Discord-Locale": options.locale }
359
+ }).then(data => data.map(d => new ApplicationCommand_1.default(d, this._manager.client)));
360
+ }
361
+ /**
362
+ * Get a global application command.
363
+ * @param applicationID The ID of the application.
364
+ * @param guildID The ID of the guild.
365
+ * @param commandID The ID of the command.
366
+ * @param options The options for getting the command.
367
+ * @caching This method **does not** cache its result.
368
+ */
369
+ async getGuildCommand(applicationID, guildID, commandID, options) {
370
+ const query = new URLSearchParams();
371
+ if (options?.withLocalizations !== undefined) {
372
+ query.set("with_localizations", options.withLocalizations.toString());
373
+ }
374
+ return this._manager.authRequest({
375
+ method: "GET",
376
+ path: Routes.GUILD_APPLICATION_COMMAND(applicationID, commandID, guildID),
377
+ query,
378
+ headers: options?.locale === undefined ? undefined : { "X-Discord-Locale": options.locale }
379
+ }).then(data => new ApplicationCommand_1.default(data, this._manager.client));
380
+ }
381
+ /**
382
+ * Get an application's application commands in a specific guild.
383
+ * @param applicationID The ID of the application.
384
+ * @param guildID The ID of the guild.
385
+ * @param options The options for getting the command.
386
+ * @caching This method **does not** cache its result.
387
+ */
388
+ async getGuildCommands(applicationID, guildID, options) {
389
+ const query = new URLSearchParams();
390
+ if (options?.withLocalizations !== undefined) {
391
+ query.set("with_localizations", options.withLocalizations.toString());
392
+ }
393
+ return this._manager.authRequest({
394
+ method: "GET",
395
+ path: Routes.GUILD_APPLICATION_COMMANDS(applicationID, guildID),
396
+ query,
397
+ headers: options?.locale === undefined ? undefined : { "X-Discord-Locale": options.locale }
398
+ }).then(data => data.map(d => new ApplicationCommand_1.default(d, this._manager.client)));
399
+ }
400
+ /**
401
+ * Get an application command's permissions in a guild.
402
+ * @param applicationID The ID of the application.
403
+ * @param guildID The ID of the guild.
404
+ * @param commandID The ID of the command.
405
+ * @caching This method **does not** cache its result.
406
+ */
407
+ async getGuildPermission(applicationID, guildID, commandID) {
408
+ return this._manager.authRequest({
409
+ method: "GET",
410
+ path: Routes.GUILD_APPLICATION_COMMAND_PERMISSION(applicationID, guildID, commandID)
411
+ }).then(data => ({
412
+ applicationID: data.application_id,
413
+ guildID: data.guild_id,
414
+ id: data.id,
415
+ permissions: data.permissions
416
+ }));
417
+ }
418
+ /**
419
+ * Get the permissions for all application commands in a guild.
420
+ * @param applicationID The ID of the application.
421
+ * @param guildID The ID of the guild.
422
+ * @caching This method **does not** cache its result.
423
+ */
424
+ async getGuildPermissions(applicationID, guildID) {
425
+ return this._manager.authRequest({
426
+ method: "GET",
427
+ path: Routes.GUILD_APPLICATION_COMMAND_PERMISSIONS(applicationID, guildID)
428
+ }).then(data => data.map(d => ({
429
+ applicationID: d.application_id,
430
+ guildID: d.guild_id,
431
+ id: d.id,
432
+ permissions: d.permissions
433
+ })));
434
+ }
435
+ /**
436
+ * Get the SKUs for an application.
437
+ * @param applicationID The ID of the application to get the SKUs of.
438
+ */
439
+ async getSKUs(applicationID) {
440
+ return this._manager.authRequest({
441
+ method: "GET",
442
+ path: Routes.SKUS(applicationID)
443
+ }).then(data => data.map(d => new SKU_1.default(d, this._manager.client)));
444
+ }
445
+ }
446
+ exports.default = Applications;
447
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3JvdXRlcy9BcHBsaWNhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQXVDO0FBQ3ZDLCtEQUF5QztBQXFCekMsa0dBQWtFO0FBR2xFLG9FQUFvQztBQUNwQyxvRkFBb0Q7QUFDcEQsNEZBQTREO0FBQzVELGdHQUFnRTtBQUVoRSxvRkFBb0Q7QUFFcEQsK0pBQStKO0FBQy9KLE1BQXFCLFlBQVk7SUFDckIsUUFBUSxDQUFjO0lBQzlCLFlBQVksT0FBb0I7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLGFBQXFCLEVBQUUsT0FBK0M7UUFDL0YsTUFBTSxJQUFJLEdBQUcsT0FBMEQsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUErQjtZQUMzRCxNQUFNLEVBQUUsS0FBSztZQUNiLElBQUksRUFBSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDO1lBQ2xELElBQUksRUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckIsUUFBUSxFQUFvQixHQUFHLENBQUMsUUFBUTtnQkFDeEMsV0FBVyxFQUFpQixHQUFHLENBQUMsV0FBVztnQkFDM0MsMEJBQTBCLEVBQUUsR0FBRyxDQUFDLHdCQUF3QjtnQkFDeEQseUJBQXlCLEVBQUcsR0FBRyxDQUFDLHdCQUF3QjtnQkFDeEQsYUFBYSxFQUFlLEdBQUcsQ0FBQyxZQUFZO2dCQUM1QyxpQkFBaUIsRUFBVyxHQUFHLENBQUMsZ0JBQWdCO2dCQUNoRCxJQUFJLEVBQXdCLEdBQUcsQ0FBQyxJQUFJO2dCQUNwQyxrQkFBa0IsRUFBVSxHQUFHLENBQUMsaUJBQWlCO2dCQUNqRCxJQUFJLEVBQXdCLEdBQUcsQ0FBQyxJQUFJO2dCQUNwQyxPQUFPLEVBQXFCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0YsSUFBSSxFQUF3QixHQUFHLENBQUMsSUFBSTthQUN2QyxDQUFDLENBQUM7U0FDTixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksNEJBQWtCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMscUJBQXFCLENBQUMsYUFBcUIsRUFBRSxPQUFlLEVBQUUsT0FBb0Q7UUFDcEgsTUFBTSxJQUFJLEdBQUcsT0FBMEQsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUErQjtZQUMzRCxNQUFNLEVBQUUsS0FBSztZQUNiLElBQUksRUFBSSxNQUFNLENBQUMsMEJBQTBCLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQztZQUNqRSxJQUFJLEVBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JCLEVBQUUsRUFBMEIsR0FBRyxDQUFDLEVBQUU7Z0JBQ2xDLDBCQUEwQixFQUFFLEdBQUcsQ0FBQyx3QkFBd0I7Z0JBQ3hELFdBQVcsRUFBaUIsR0FBRyxDQUFDLFdBQVc7Z0JBQzNDLHlCQUF5QixFQUFHLEdBQUcsQ0FBQyx3QkFBd0I7Z0JBQ3hELGFBQWEsRUFBZSxHQUFHLENBQUMsWUFBWTtnQkFDNUMsSUFBSSxFQUF3QixHQUFHLENBQUMsSUFBSTtnQkFDcEMsa0JBQWtCLEVBQVUsR0FBRyxDQUFDLGlCQUFpQjtnQkFDakQsSUFBSSxFQUF3QixHQUFHLENBQUMsSUFBSTtnQkFDcEMsT0FBTyxFQUFxQixHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNGLElBQUksRUFBd0IsR0FBRyxDQUFDLElBQUk7YUFDdkMsQ0FBQyxDQUFDO1NBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLDRCQUFrQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsbUJBQW1CLENBQThFLGFBQXFCLEVBQUUsT0FBVTtRQUNwSSxNQUFNLEdBQUcsR0FBRyxPQUFtRCxDQUFDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQXdCO1lBQ3BELE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUM7WUFDbEQsSUFBSSxFQUFJO2dCQUNKLFFBQVEsRUFBb0IsR0FBRyxDQUFDLFFBQVE7Z0JBQ3hDLDBCQUEwQixFQUFFLEdBQUcsQ0FBQyx3QkFBd0I7Z0JBQ3hELFdBQVcsRUFBaUIsR0FBRyxDQUFDLFdBQVc7Z0JBQzNDLHlCQUF5QixFQUFHLEdBQUcsQ0FBQyx3QkFBd0I7Z0JBQ3hELGFBQWEsRUFBZSxHQUFHLENBQUMsWUFBWTtnQkFDNUMsaUJBQWlCLEVBQVcsR0FBRyxDQUFDLGdCQUFnQjtnQkFDaEQsSUFBSSxFQUF3QixHQUFHLENBQUMsSUFBSTtnQkFDcEMsa0JBQWtCLEVBQVUsR0FBRyxDQUFDLGlCQUFpQjtnQkFDakQsSUFBSSxFQUF3QixHQUFHLENBQUMsSUFBSTtnQkFDcEMsT0FBTyxFQUFxQixHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNGLElBQUksRUFBd0IsR0FBRyxDQUFDLElBQUk7YUFDdkM7U0FDSixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSw0QkFBa0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQVUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQXdGLGFBQXFCLEVBQUUsT0FBZSxFQUFFLE9BQVU7UUFDOUosTUFBTSxHQUFHLEdBQUcsT0FBbUQsQ0FBQztRQUNoRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUF3QjtZQUNwRCxNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBSSxNQUFNLENBQUMsMEJBQTBCLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQztZQUNqRSxJQUFJLEVBQUk7Z0JBQ0osMEJBQTBCLEVBQUUsR0FBRyxDQUFDLHdCQUF3QjtnQkFDeEQsV0FBVyxFQUFpQixHQUFHLENBQUMsV0FBVztnQkFDM0MseUJBQXlCLEVBQUcsR0FBRyxDQUFDLHdCQUF3QjtnQkFDeEQsYUFBYSxFQUFlLEdBQUcsQ0FBQyxZQUFZO2dCQUM1QyxJQUFJLEVBQXdCLEdBQUcsQ0FBQyxJQUFJO2dCQUNwQyxrQkFBa0IsRUFBVSxHQUFHLENBQUMsaUJBQWlCO2dCQUNqRCxJQUFJLEVBQXdCLEdBQUcsQ0FBQyxJQUFJO2dCQUNwQyxPQUFPLEVBQXFCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0YsSUFBSSxFQUF3QixHQUFHLENBQUMsSUFBSTthQUN2QztTQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLDRCQUFrQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBVSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMscUJBQXFCLENBQUMsYUFBcUIsRUFBRSxPQUFxQztRQUNwRixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFxQjtZQUNqRCxNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztZQUMxQyxJQUFJLEVBQUk7Z0JBQ0osUUFBUSxFQUFJLE9BQU8sQ0FBQyxPQUFPO2dCQUMzQixVQUFVLEVBQUUsT0FBTyxDQUFDLFNBQVM7Z0JBQzdCLE1BQU0sRUFBTSxPQUFPLENBQUMsS0FBSzthQUM1QjtTQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLHlCQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsbUJBQW1CLENBQUMsYUFBcUIsRUFBRSxTQUFpQjtRQUM5RCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFPO1lBQ2xDLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLElBQUksRUFBSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQztTQUMvRCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGFBQXFCLEVBQUUsT0FBZSxFQUFFLFNBQWlCO1FBQzlFLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQU87WUFDbEMsTUFBTSxFQUFFLFFBQVE7WUFDaEIsSUFBSSxFQUFJLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQztTQUM5RSxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxhQUFxQixFQUFFLGFBQXFCO1FBQ3BFLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQU87WUFDbEMsTUFBTSxFQUFFLFFBQVE7WUFDaEIsSUFBSSxFQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQztTQUMzRCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBK0I7UUFDN0MsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDcEcsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDeEYsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQWtCO1lBQzlDLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFJLE1BQU0sQ0FBQyxXQUFXO1lBQzFCLElBQUksRUFBSTtnQkFDSixXQUFXLEVBQXdCLE9BQU8sQ0FBQyxVQUFVO2dCQUNyRCxrQkFBa0IsRUFBaUIsT0FBTyxDQUFDLGdCQUFnQjtnQkFDM0QsV0FBVyxFQUF3QixPQUFPLENBQUMsV0FBVztnQkFDdEQsS0FBSyxFQUE4QixPQUFPLENBQUMsS0FBSztnQkFDaEQsSUFBSSxFQUErQixPQUFPLENBQUMsSUFBSTtnQkFDL0MsY0FBYyxFQUFxQixPQUFPLENBQUMsYUFBYTtnQkFDeEQsd0JBQXdCLEVBQVcsT0FBTyxDQUFDLHNCQUFzQjtnQkFDakUseUJBQXlCLEVBQVUsT0FBTyxDQUFDLHVCQUF1QjtnQkFDbEUsaUNBQWlDLEVBQUUsT0FBTyxDQUFDLDhCQUE4QjtnQkFDekUsSUFBSSxFQUErQixPQUFPLENBQUMsSUFBSTthQUNsRDtTQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLHFCQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQixDQUEwRSxhQUFxQixFQUFFLFNBQWlCLEVBQUUsT0FBVTtRQUNqSixNQUFNLEdBQUcsR0FBRyxPQUFpRCxDQUFDO1FBQzlELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQXdCO1lBQ3BELE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDO1lBQzVELElBQUksRUFBSTtnQkFDSixRQUFRLEVBQW9CLEdBQUcsQ0FBQyxRQUFRO2dCQUN4QywwQkFBMEIsRUFBRSxHQUFHLENBQUMsd0JBQXdCO2dCQUN4RCxXQUFXLEVBQWlCLEdBQUcsQ0FBQyxXQUFXO2dCQUMzQyx5QkFBeUIsRUFBRyxHQUFHLENBQUMsd0JBQXdCO2dCQUN4RCxhQUFhLEVBQWUsR0FBRyxDQUFDLFlBQVk7Z0JBQzVDLGlCQUFpQixFQUFXLEdBQUcsQ0FBQyxnQkFBZ0I7Z0JBQ2hELElBQUksRUFBd0IsR0FBRyxDQUFDLElBQUk7Z0JBQ3BDLGtCQUFrQixFQUFVLEdBQUcsQ0FBQyxpQkFBaUI7Z0JBQ2pELElBQUksRUFBd0IsR0FBRyxDQUFDLElBQUk7Z0JBQ3BDLE9BQU8sRUFBcUIsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlGO1NBQ0osQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksNEJBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFVLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsQ0FBb0YsYUFBcUIsRUFBRSxPQUFlLEVBQUUsU0FBaUIsRUFBRSxPQUFVO1FBQzNLLE1BQU0sR0FBRyxHQUFHLE9BQWlELENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBd0I7WUFDcEQsTUFBTSxFQUFFLE9BQU87WUFDZixJQUFJLEVBQUksTUFBTSxDQUFDLHlCQUF5QixDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO1lBQzNFLElBQUksRUFBSTtnQkFDSiwwQkFBMEIsRUFBRSxHQUFHLENBQUMsd0JBQXdCO2dCQUN4RCxXQUFXLEVBQWlCLEdBQUcsQ0FBQyxXQUFXO2dCQUMzQyx5QkFBeUIsRUFBRyxHQUFHLENBQUMsd0JBQXdCO2dCQUN4RCxhQUFhLEVBQWUsR0FBRyxDQUFDLFlBQVk7Z0JBQzVDLElBQUksRUFBd0IsR0FBRyxDQUFDLElBQUk7Z0JBQ3BDLGtCQUFrQixFQUFVLEdBQUcsQ0FBQyxpQkFBaUI7Z0JBQ2pELElBQUksRUFBd0IsR0FBRyxDQUFDLElBQUk7Z0JBQ3BDLE9BQU8sRUFBcUIsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlGO1NBQ0osQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksNEJBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFVLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxhQUFxQixFQUFFLE9BQWUsRUFBRSxTQUFpQixFQUFFLE9BQWlEO1FBQzFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDckgsTUFBTSxFQUFFLE9BQU87WUFDZixJQUFJLEVBQUksTUFBTSxDQUFDLG9DQUFvQyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO1lBQ3RGLElBQUksRUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQzVDLElBQUksRUFBSSxPQUFPLENBQUMsV0FBVztTQUNFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0MsTUFBTSxDQUFDLEdBQUcsSUFBNkMsQ0FBQztZQUN4RCxPQUFPO2dCQUNILGFBQWEsRUFBRSxDQUFDLENBQUMsY0FBYztnQkFDL0IsT0FBTyxFQUFRLENBQUMsQ0FBQyxRQUFRO2dCQUN6QixFQUFFLEVBQWEsQ0FBQyxDQUFDLEVBQUU7Z0JBQ25CLFdBQVcsRUFBSSxDQUFDLENBQUMsV0FBVzthQUMvQixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUF1QjtZQUNuRCxNQUFNLEVBQUUsS0FBSztZQUNiLElBQUksRUFBSSxNQUFNLENBQUMsV0FBVztTQUM3QixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSwyQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQWtCO1lBQzlDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsSUFBSSxFQUFJLE1BQU0sQ0FBQyxXQUFXO1NBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLHFCQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsYUFBcUIsRUFBRSxVQUFxQyxFQUFFO1FBQ2hGLE1BQU0sS0FBSyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEMsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVM7WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVM7WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEUsSUFBSSxPQUFPLENBQUMsWUFBWSxLQUFLLFNBQVM7WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDakcsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVM7WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUUsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVM7WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0UsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVM7WUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTO1lBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBNkM7WUFDekUsTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7WUFDMUMsS0FBSztTQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUkscUJBQVcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSx5QkFBZSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxSyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUEwRCxhQUFxQixFQUFFLFNBQWlCLEVBQUUsT0FBc0M7UUFDNUosTUFBTSxLQUFLLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNwQyxJQUFJLE9BQU8sRUFBRSxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQyxLQUFLLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUF3QjtZQUNwRCxNQUFNLEVBQUcsS0FBSztZQUNkLElBQUksRUFBSyxNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQztZQUM3RCxLQUFLO1lBQ0wsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRTtTQUM5RixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSw0QkFBa0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQVUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxhQUFxQixFQUFFLE9BQXNDO1FBQ2pGLE1BQU0sS0FBSyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEMsSUFBSSxPQUFPLEVBQUUsaUJBQWlCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDM0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBK0I7WUFDM0QsTUFBTSxFQUFHLEtBQUs7WUFDZCxJQUFJLEVBQUssTUFBTSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQztZQUNuRCxLQUFLO1lBQ0wsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRTtTQUM5RixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksNEJBQWtCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQVUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBMEQsYUFBcUIsRUFBRSxPQUFlLEVBQUUsU0FBaUIsRUFBRSxPQUFzQztRQUM1SyxNQUFNLEtBQUssR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BDLElBQUksT0FBTyxFQUFFLGlCQUFpQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzNDLEtBQUssQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQXdCO1lBQ3BELE1BQU0sRUFBRyxLQUFLO1lBQ2QsSUFBSSxFQUFLLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQztZQUM1RSxLQUFLO1lBQ0wsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRTtTQUM5RixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSw0QkFBa0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQVUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsYUFBcUIsRUFBRSxPQUFlLEVBQUUsT0FBc0M7UUFDakcsTUFBTSxLQUFLLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNwQyxJQUFJLE9BQU8sRUFBRSxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQyxLQUFLLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUErQjtZQUMzRCxNQUFNLEVBQUcsS0FBSztZQUNkLElBQUksRUFBSyxNQUFNLENBQUMsMEJBQTBCLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQztZQUNsRSxLQUFLO1lBQ0wsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRTtTQUM5RixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksNEJBQWtCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQVUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsYUFBcUIsRUFBRSxPQUFlLEVBQUUsU0FBaUI7UUFDOUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBd0M7WUFDcEUsTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUksTUFBTSxDQUFDLG9DQUFvQyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO1NBQ3pGLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2IsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2xDLE9BQU8sRUFBUSxJQUFJLENBQUMsUUFBUTtZQUM1QixFQUFFLEVBQWEsSUFBSSxDQUFDLEVBQUU7WUFDdEIsV0FBVyxFQUFJLElBQUksQ0FBQyxXQUFXO1NBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLG1CQUFtQixDQUFDLGFBQXFCLEVBQUUsT0FBZTtRQUM1RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUErQztZQUMzRSxNQUFNLEVBQUUsS0FBSztZQUNiLElBQUksRUFBSSxNQUFNLENBQUMscUNBQXFDLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQztTQUMvRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0IsYUFBYSxFQUFFLENBQUMsQ0FBQyxjQUFjO1lBQy9CLE9BQU8sRUFBUSxDQUFDLENBQUMsUUFBUTtZQUN6QixFQUFFLEVBQWEsQ0FBQyxDQUFDLEVBQUU7WUFDbkIsV0FBVyxFQUFJLENBQUMsQ0FBQyxXQUFXO1NBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFxQjtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFnQjtZQUM1QyxNQUFNLEVBQUUsS0FBSztZQUNiLElBQUksRUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksYUFBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0o7QUFqY0QsK0JBaWNDIn0=