@xbstracts/medusa-coupons 0.0.3 → 0.0.5
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/.medusa/server/src/admin/index.js +75 -21
- package/.medusa/server/src/admin/index.mjs +75 -21
- package/.medusa/server/src/api/product-utils.js +44 -21
- package/.medusa/server/src/api/validators.js +10 -2
- package/.medusa/server/src/modules/coupon/index.js +3 -2
- package/.medusa/server/src/modules/coupon/loaders/validate-options.js +8 -0
- package/.medusa/server/src/modules/coupon/migrations/Migration20260725000000.js +26 -0
- package/.medusa/server/src/modules/coupon/service.js +5 -4
- package/.medusa/server/src/modules/coupon/utils.js +181 -18
- package/.medusa/server/src/vendor/index.mjs +75 -21
- package/README.md +24 -0
- package/package.json +2 -1
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.normalizeCurrencyCode = normalizeCurrencyCode;
|
|
4
7
|
exports.normalizeCode = normalizeCode;
|
|
@@ -6,6 +9,8 @@ exports.normalizePrefix = normalizePrefix;
|
|
|
6
9
|
exports.normalizePositiveInteger = normalizePositiveInteger;
|
|
7
10
|
exports.normalizeCouponAmounts = normalizeCouponAmounts;
|
|
8
11
|
exports.resolveAmountForCurrency = resolveAmountForCurrency;
|
|
12
|
+
exports.assertValidExpirationTimezone = assertValidExpirationTimezone;
|
|
13
|
+
exports.normalizeExpirationPolicy = normalizeExpirationPolicy;
|
|
9
14
|
exports.assertExpirationPolicy = assertExpirationPolicy;
|
|
10
15
|
exports.validateCouponConfig = validateCouponConfig;
|
|
11
16
|
exports.computeExpirationDate = computeExpirationDate;
|
|
@@ -17,8 +22,50 @@ exports.createEntitlementCode = createEntitlementCode;
|
|
|
17
22
|
exports.buildBenefitSnapshot = buildBenefitSnapshot;
|
|
18
23
|
exports.normalizeConfigInput = normalizeConfigInput;
|
|
19
24
|
const utils_1 = require("@medusajs/framework/utils");
|
|
25
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
26
|
+
const utc_1 = __importDefault(require("dayjs/plugin/utc"));
|
|
27
|
+
const timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
|
|
20
28
|
const purchase_conditions_1 = require("./purchase-conditions");
|
|
29
|
+
dayjs_1.default.extend(utc_1.default);
|
|
30
|
+
dayjs_1.default.extend(timezone_1.default);
|
|
21
31
|
const CURRENCY_RE = /^[a-z]{3}$/i;
|
|
32
|
+
function localDateParts(value) {
|
|
33
|
+
return {
|
|
34
|
+
year: value.year(),
|
|
35
|
+
month: value.month() + 1,
|
|
36
|
+
day: value.date(),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function addLocalCalendarDays(value, amount) {
|
|
40
|
+
const date = new Date(Date.UTC(value.year, value.month - 1, value.day));
|
|
41
|
+
date.setUTCDate(date.getUTCDate() + amount);
|
|
42
|
+
return {
|
|
43
|
+
year: date.getUTCFullYear(),
|
|
44
|
+
month: date.getUTCMonth() + 1,
|
|
45
|
+
day: date.getUTCDate(),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function addLocalCalendarMonths(value, amount) {
|
|
49
|
+
const absoluteMonth = value.year * 12 + (value.month - 1) + amount;
|
|
50
|
+
const year = Math.floor(absoluteMonth / 12);
|
|
51
|
+
const month = ((absoluteMonth % 12) + 12) % 12 + 1;
|
|
52
|
+
const lastDay = new Date(Date.UTC(year, month, 0)).getUTCDate();
|
|
53
|
+
return {
|
|
54
|
+
date: {
|
|
55
|
+
year,
|
|
56
|
+
month,
|
|
57
|
+
day: Math.min(value.day, lastDay),
|
|
58
|
+
},
|
|
59
|
+
missingTargetDay: value.day > lastDay,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function zonedWallClock(value, clock, zone) {
|
|
63
|
+
const pad = (part, length = 2) => String(part).padStart(length, "0");
|
|
64
|
+
return dayjs_1.default.tz(`${pad(value.year, 4)}-${pad(value.month)}-${pad(value.day)}T${pad(clock.hour)}:${pad(clock.minute)}:${pad(clock.second)}.${pad(clock.millisecond, 3)}`, zone);
|
|
65
|
+
}
|
|
66
|
+
function zonedDayEnd(value, zone) {
|
|
67
|
+
return zonedWallClock(value, { hour: 23, minute: 59, second: 59, millisecond: 999 }, zone);
|
|
68
|
+
}
|
|
22
69
|
function normalizeCurrencyCode(value) {
|
|
23
70
|
return value ? value.trim().toLowerCase() : null;
|
|
24
71
|
}
|
|
@@ -87,21 +134,79 @@ function resolveAmountForCurrency(value, currencyCode) {
|
|
|
87
134
|
}
|
|
88
135
|
return match;
|
|
89
136
|
}
|
|
90
|
-
function
|
|
137
|
+
function assertValidExpirationTimezone(value) {
|
|
138
|
+
const candidate = String(value || "UTC").trim() || "UTC";
|
|
139
|
+
try {
|
|
140
|
+
new Intl.DateTimeFormat("en-US", { timeZone: candidate }).format(new Date(0));
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Invalid coupon expiration timezone "${candidate}". Use an IANA timezone such as "Asia/Bangkok"`);
|
|
144
|
+
}
|
|
145
|
+
return candidate;
|
|
146
|
+
}
|
|
147
|
+
function normalizeExpirationPolicy(value) {
|
|
91
148
|
if (!value || typeof value !== "object") {
|
|
92
149
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "expiration_policy is required");
|
|
93
150
|
}
|
|
94
151
|
const policy = value;
|
|
95
152
|
if (policy.type === "none") {
|
|
96
|
-
return
|
|
153
|
+
return {
|
|
154
|
+
type: "none",
|
|
155
|
+
...(policy.timezone
|
|
156
|
+
? { timezone: assertValidExpirationTimezone(policy.timezone) }
|
|
157
|
+
: {}),
|
|
158
|
+
};
|
|
97
159
|
}
|
|
98
160
|
if (policy.type === "duration") {
|
|
99
|
-
const
|
|
100
|
-
|
|
161
|
+
const legacy = policy.duration === undefined && policy.duration_days !== undefined;
|
|
162
|
+
const duration = Number(legacy ? policy.duration_days : policy.duration);
|
|
163
|
+
const durationUnit = legacy ? "days" : String(policy.duration_unit || "");
|
|
164
|
+
const timePolicy = legacy
|
|
165
|
+
? "exactly"
|
|
166
|
+
: String(policy.time_policy || "day_end");
|
|
167
|
+
if (Number.isInteger(duration) &&
|
|
168
|
+
duration > 0 &&
|
|
169
|
+
["days", "months"].includes(durationUnit) &&
|
|
170
|
+
["exactly", "day_end"].includes(timePolicy)) {
|
|
101
171
|
if (policy.cap_at && Number.isNaN(Date.parse(String(policy.cap_at)))) {
|
|
102
172
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "expiration_policy.cap_at must be a valid date");
|
|
103
173
|
}
|
|
104
|
-
return
|
|
174
|
+
return {
|
|
175
|
+
type: "duration",
|
|
176
|
+
duration,
|
|
177
|
+
duration_unit: durationUnit,
|
|
178
|
+
time_policy: timePolicy,
|
|
179
|
+
...(typeof policy.cap_by_campaign === "boolean"
|
|
180
|
+
? { cap_by_campaign: policy.cap_by_campaign }
|
|
181
|
+
: {}),
|
|
182
|
+
...(policy.cap_at !== undefined
|
|
183
|
+
? { cap_at: policy.cap_at ? String(policy.cap_at) : null }
|
|
184
|
+
: {}),
|
|
185
|
+
...(policy.timezone
|
|
186
|
+
? { timezone: assertValidExpirationTimezone(policy.timezone) }
|
|
187
|
+
: {}),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
if (policy.type === "month_end") {
|
|
192
|
+
const timePolicy = String(policy.time_policy || "day_end");
|
|
193
|
+
if (["exactly", "day_end"].includes(timePolicy)) {
|
|
194
|
+
if (policy.cap_at && Number.isNaN(Date.parse(String(policy.cap_at)))) {
|
|
195
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "expiration_policy.cap_at must be a valid date");
|
|
196
|
+
}
|
|
197
|
+
return {
|
|
198
|
+
type: "month_end",
|
|
199
|
+
time_policy: timePolicy,
|
|
200
|
+
...(typeof policy.cap_by_campaign === "boolean"
|
|
201
|
+
? { cap_by_campaign: policy.cap_by_campaign }
|
|
202
|
+
: {}),
|
|
203
|
+
...(policy.cap_at !== undefined
|
|
204
|
+
? { cap_at: policy.cap_at ? String(policy.cap_at) : null }
|
|
205
|
+
: {}),
|
|
206
|
+
...(policy.timezone
|
|
207
|
+
? { timezone: assertValidExpirationTimezone(policy.timezone) }
|
|
208
|
+
: {}),
|
|
209
|
+
};
|
|
105
210
|
}
|
|
106
211
|
}
|
|
107
212
|
if (policy.type === "fixed") {
|
|
@@ -110,10 +215,25 @@ function assertExpirationPolicy(value) {
|
|
|
110
215
|
if (policy.cap_at && Number.isNaN(Date.parse(String(policy.cap_at)))) {
|
|
111
216
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "expiration_policy.cap_at must be a valid date");
|
|
112
217
|
}
|
|
113
|
-
return
|
|
218
|
+
return {
|
|
219
|
+
type: "fixed",
|
|
220
|
+
expires_at: expiresAt,
|
|
221
|
+
...(typeof policy.cap_by_campaign === "boolean"
|
|
222
|
+
? { cap_by_campaign: policy.cap_by_campaign }
|
|
223
|
+
: {}),
|
|
224
|
+
...(policy.cap_at !== undefined
|
|
225
|
+
? { cap_at: policy.cap_at ? String(policy.cap_at) : null }
|
|
226
|
+
: {}),
|
|
227
|
+
...(policy.timezone
|
|
228
|
+
? { timezone: assertValidExpirationTimezone(policy.timezone) }
|
|
229
|
+
: {}),
|
|
230
|
+
};
|
|
114
231
|
}
|
|
115
232
|
}
|
|
116
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "expiration_policy must be
|
|
233
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "expiration_policy must be none, month_end, duration with duration/duration_unit/time_policy, or fixed with expires_at");
|
|
234
|
+
}
|
|
235
|
+
function assertExpirationPolicy(value) {
|
|
236
|
+
normalizeExpirationPolicy(value);
|
|
117
237
|
}
|
|
118
238
|
function validateCouponConfig(data) {
|
|
119
239
|
const benefitType = data.benefit_type;
|
|
@@ -166,20 +286,54 @@ function validateCouponConfig(data) {
|
|
|
166
286
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "max_issuance_per_order_item must be greater than 0");
|
|
167
287
|
}
|
|
168
288
|
}
|
|
169
|
-
function computeExpirationDate(policy, now = new Date(), campaignEndsAt) {
|
|
170
|
-
|
|
289
|
+
function computeExpirationDate(policy, now = new Date(), campaignEndsAt, defaultTimezone = "UTC") {
|
|
290
|
+
const normalized = normalizeExpirationPolicy(policy);
|
|
291
|
+
if (normalized.type === "none") {
|
|
171
292
|
return null;
|
|
172
293
|
}
|
|
173
294
|
let expiresAt;
|
|
174
|
-
if (
|
|
175
|
-
expiresAt = new Date(
|
|
295
|
+
if (normalized.type === "fixed") {
|
|
296
|
+
expiresAt = new Date(normalized.expires_at);
|
|
176
297
|
}
|
|
177
298
|
else {
|
|
178
|
-
|
|
179
|
-
|
|
299
|
+
const zone = assertValidExpirationTimezone(normalized.timezone || defaultTimezone);
|
|
300
|
+
const issued = (0, dayjs_1.default)(now).tz(zone);
|
|
301
|
+
const issueDate = localDateParts(issued);
|
|
302
|
+
const issueClock = {
|
|
303
|
+
hour: issued.hour(),
|
|
304
|
+
minute: issued.minute(),
|
|
305
|
+
second: issued.second(),
|
|
306
|
+
millisecond: issued.millisecond(),
|
|
307
|
+
};
|
|
308
|
+
if (normalized.type === "month_end") {
|
|
309
|
+
const lastDay = {
|
|
310
|
+
year: issueDate.year,
|
|
311
|
+
month: issueDate.month,
|
|
312
|
+
day: new Date(Date.UTC(issueDate.year, issueDate.month, 0)).getUTCDate(),
|
|
313
|
+
};
|
|
314
|
+
expiresAt = (normalized.time_policy === "day_end"
|
|
315
|
+
? zonedDayEnd(lastDay, zone)
|
|
316
|
+
: zonedWallClock(lastDay, issueClock, zone).subtract(1, "millisecond")).toDate();
|
|
317
|
+
}
|
|
318
|
+
else if (normalized.duration_unit === "days") {
|
|
319
|
+
const targetDate = addLocalCalendarDays(issueDate, normalized.time_policy === "day_end"
|
|
320
|
+
? normalized.duration - 1
|
|
321
|
+
: normalized.duration);
|
|
322
|
+
expiresAt = (normalized.time_policy === "day_end"
|
|
323
|
+
? zonedDayEnd(targetDate, zone)
|
|
324
|
+
: zonedWallClock(targetDate, issueClock, zone).subtract(1, "millisecond")).toDate();
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
const target = addLocalCalendarMonths(issueDate, normalized.duration);
|
|
328
|
+
expiresAt = (normalized.time_policy === "exactly"
|
|
329
|
+
? zonedWallClock(target.date, issueClock, zone).subtract(1, "millisecond")
|
|
330
|
+
: target.missingTargetDay
|
|
331
|
+
? zonedDayEnd(target.date, zone)
|
|
332
|
+
: zonedDayEnd(addLocalCalendarDays(target.date, -1), zone)).toDate();
|
|
333
|
+
}
|
|
180
334
|
}
|
|
181
|
-
const capValue =
|
|
182
|
-
if (
|
|
335
|
+
const capValue = normalized.cap_at || campaignEndsAt;
|
|
336
|
+
if (normalized.cap_by_campaign !== false && capValue) {
|
|
183
337
|
const capAt = new Date(capValue);
|
|
184
338
|
if (!Number.isNaN(capAt.getTime()) &&
|
|
185
339
|
capAt.getTime() < expiresAt.getTime()) {
|
|
@@ -243,6 +397,7 @@ function mergeVariantConfig(productConfig, variantConfig) {
|
|
|
243
397
|
merged.currency_code = normalized.currency_code;
|
|
244
398
|
merged.code_prefix = normalizePrefix(merged.code_prefix);
|
|
245
399
|
merged.shared_code = normalizeCode(merged.shared_code);
|
|
400
|
+
merged.expiration_policy = normalized.expiration_policy;
|
|
246
401
|
validateCouponConfig(merged);
|
|
247
402
|
return merged;
|
|
248
403
|
}
|
|
@@ -261,7 +416,12 @@ function createEntitlementCode(config) {
|
|
|
261
416
|
const timestamp = Date.now().toString(36).toUpperCase();
|
|
262
417
|
return `${prefix}-${timestamp}-${random}`;
|
|
263
418
|
}
|
|
264
|
-
function buildBenefitSnapshot(config) {
|
|
419
|
+
function buildBenefitSnapshot(config, expirationTimezone) {
|
|
420
|
+
const expirationPolicy = normalizeExpirationPolicy(config.expiration_policy);
|
|
421
|
+
const resolvedExpirationPolicy = {
|
|
422
|
+
...expirationPolicy,
|
|
423
|
+
timezone: assertValidExpirationTimezone(expirationPolicy.timezone || expirationTimezone || "UTC"),
|
|
424
|
+
};
|
|
265
425
|
return {
|
|
266
426
|
benefit_type: config.benefit_type,
|
|
267
427
|
amounts: config.amounts.map((row) => ({ ...row })),
|
|
@@ -270,7 +430,7 @@ function buildBenefitSnapshot(config) {
|
|
|
270
430
|
currency_code: config.currency_code,
|
|
271
431
|
code_strategy: config.code_strategy,
|
|
272
432
|
shared_code: config.shared_code,
|
|
273
|
-
expiration_policy:
|
|
433
|
+
expiration_policy: resolvedExpirationPolicy,
|
|
274
434
|
max_issuance_per_order_item: config.max_issuance_per_order_item,
|
|
275
435
|
promotion_status: config.promotion_status,
|
|
276
436
|
promotion_template: config.promotion_template
|
|
@@ -291,6 +451,9 @@ function normalizeConfigInput(input) {
|
|
|
291
451
|
const first = amounts[0];
|
|
292
452
|
return {
|
|
293
453
|
...input,
|
|
454
|
+
expiration_policy: input.expiration_policy
|
|
455
|
+
? normalizeExpirationPolicy(input.expiration_policy)
|
|
456
|
+
: input.expiration_policy,
|
|
294
457
|
purchase_conditions: (0, purchase_conditions_1.normalizePurchaseConditions)(input.purchase_conditions || []),
|
|
295
458
|
amounts,
|
|
296
459
|
amount: first?.amount ?? null,
|
|
@@ -299,4 +462,4 @@ function normalizeConfigInput(input) {
|
|
|
299
462
|
shared_code: normalizeCode(input.shared_code),
|
|
300
463
|
};
|
|
301
464
|
}
|
|
302
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb3Vwb24vdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsc0RBRUM7QUFFRCxzQ0FFQztBQUVELDBDQUVDO0FBRUQsNERBT0M7QUFrQ0Qsd0RBUUM7QUF1QkQsNERBa0JDO0FBRUQsd0RBNkNDO0FBRUQsb0RBK0ZDO0FBRUQsc0RBNkJDO0FBRUQsZ0VBUUM7QUFFRCxnREFrRUM7QUFFRCxvREFFQztBQUVELG9EQUVDO0FBRUQsc0RBU0M7QUFFRCxvREFxQkM7QUFFRCxvREFrQkM7QUFsYkQscURBQXVEO0FBVXZELCtEQUc4QjtBQUU5QixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUE7QUFFakMsU0FBZ0IscUJBQXFCLENBQUMsS0FBcUI7SUFDekQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0FBQ2xELENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsS0FBcUI7SUFDakQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0FBQ2xELENBQUM7QUFFRCxTQUFnQixlQUFlLENBQUMsS0FBcUI7SUFDbkQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0FBQ2xELENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxLQUFjLEVBQUUsUUFBZ0I7SUFDdkUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1B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
|
|
465
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb3Vwb24vdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFnR0Esc0RBRUM7QUFFRCxzQ0FFQztBQUVELDBDQUVDO0FBRUQsNERBT0M7QUFrQ0Qsd0RBUUM7QUF1QkQsNERBa0JDO0FBRUQsc0VBYUM7QUFFRCw4REE2R0M7QUFFRCx3REFJQztBQUVELG9EQStGQztBQUVELHNEQXlFQztBQUVELGdFQVFDO0FBRUQsZ0RBbUVDO0FBRUQsb0RBRUM7QUFFRCxvREFFQztBQUVELHNEQVNDO0FBRUQsb0RBK0JDO0FBRUQsb0RBcUJDO0FBaHBCRCxxREFBdUQ7QUFDdkQsa0RBQXlCO0FBQ3pCLDJEQUFrQztBQUNsQyxxRUFBNEM7QUFXNUMsK0RBRzhCO0FBRTlCLGVBQUssQ0FBQyxNQUFNLENBQUMsYUFBRyxDQUFDLENBQUE7QUFDakIsZUFBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBUSxDQUFDLENBQUE7QUFFdEIsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFBO0FBZWpDLFNBQVMsY0FBYyxDQUFDLEtBQWtCO0lBQ3hDLE9BQU87UUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRTtRQUNsQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7UUFDeEIsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUU7S0FDbEIsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUMzQixLQUFxQixFQUNyQixNQUFjO0lBRWQsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3ZFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFB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
|