@designbasekorea/figma-ui 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -73
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +83 -2
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.css.map +1 -1
- package/dist/index.esm.js +253 -4
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +255 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -51,8 +51,263 @@ const Footer = ({ logoSrc, logoAlt = 'Logo', logoLinks = [], onLicensePageClick,
|
|
|
51
51
|
};
|
|
52
52
|
Footer.displayName = 'Footer';
|
|
53
53
|
|
|
54
|
+
const FormWithSubmit = ({ onLicenseSubmit, disabled = false, isSubmitting = false, value = '', onValueChange, label = 'License Key', placeholder = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', submitText = 'Submit', submittingText = 'Verifying...', className, }) => {
|
|
55
|
+
const [inputValue, setInputValue] = React.useState(value);
|
|
56
|
+
React.useEffect(() => {
|
|
57
|
+
setInputValue(value);
|
|
58
|
+
}, [value]);
|
|
59
|
+
const handleSubmit = async (e) => {
|
|
60
|
+
e.preventDefault();
|
|
61
|
+
await onLicenseSubmit(inputValue);
|
|
62
|
+
};
|
|
63
|
+
const handleChange = (e) => {
|
|
64
|
+
const newValue = e.target.value;
|
|
65
|
+
setInputValue(newValue);
|
|
66
|
+
onValueChange?.(newValue);
|
|
67
|
+
};
|
|
68
|
+
return (React.createElement("form", { className: `designbase-figma-form-with-submit ${className || ''}`, onSubmit: handleSubmit },
|
|
69
|
+
isSubmitting && (React.createElement("div", { className: "designbase-figma-form-with-submit__spinner" },
|
|
70
|
+
React.createElement(ui.Spinner, { size: "s" }))),
|
|
71
|
+
React.createElement("div", { className: "designbase-figma-form-with-submit__field" },
|
|
72
|
+
React.createElement("label", { className: "designbase-figma-form-with-submit__label" }, label),
|
|
73
|
+
React.createElement(ui.Input, { value: inputValue, onChange: handleChange, placeholder: placeholder, disabled: disabled || isSubmitting, size: "m" })),
|
|
74
|
+
React.createElement(ui.Button, { type: "submit", variant: "primary", size: "m", disabled: !inputValue.trim() || isSubmitting || disabled, fullWidth: true }, isSubmitting ? submittingText : submitText)));
|
|
75
|
+
};
|
|
76
|
+
FormWithSubmit.displayName = 'FormWithSubmit';
|
|
77
|
+
|
|
78
|
+
const PaymentStatusSection = ({ status, usageCount, activationLimit, activationUsage, licenseKey, onDeactivate, isDeactivating = false, showDetails = false, className, }) => {
|
|
79
|
+
const remainingActivations = activationLimit - activationUsage;
|
|
80
|
+
return (React.createElement("div", { className: `designbase-figma-payment-status ${className || ''}` },
|
|
81
|
+
React.createElement("p", { className: "designbase-figma-payment-status__license-key" },
|
|
82
|
+
"\uB77C\uC774\uC13C\uC2A4 \uD0A4: ",
|
|
83
|
+
React.createElement("span", null, licenseKey)),
|
|
84
|
+
showDetails && (React.createElement("div", { className: "designbase-figma-payment-status__details" },
|
|
85
|
+
React.createElement("div", { className: "designbase-figma-payment-status__activation-info" },
|
|
86
|
+
React.createElement("p", { className: "designbase-figma-payment-status__remaining" },
|
|
87
|
+
remainingActivations,
|
|
88
|
+
" ",
|
|
89
|
+
remainingActivations === 1 ? '활성' : '활성',
|
|
90
|
+
" \uC790\uB9AC \uB0A8\uC74C"),
|
|
91
|
+
React.createElement("p", { className: "designbase-figma-payment-status__usage" },
|
|
92
|
+
activationUsage,
|
|
93
|
+
"/",
|
|
94
|
+
activationLimit)),
|
|
95
|
+
React.createElement(ui.Button, { onClick: onDeactivate, variant: "tertiary", size: "s", disabled: isDeactivating }, isDeactivating ? '비활성화중...' : '라이센스 비활성화')))));
|
|
96
|
+
};
|
|
97
|
+
PaymentStatusSection.displayName = 'PaymentStatusSection';
|
|
98
|
+
|
|
99
|
+
const defaultFeatures = [
|
|
100
|
+
{ name: '사용 제한', free: '일일 제한', pro: '무제한' },
|
|
101
|
+
{ name: '모든 주제 사용', free: false, pro: true },
|
|
102
|
+
{ name: '최대 선택 제한', free: '최대 5개', pro: '최대 30개' },
|
|
103
|
+
{ name: '더미 개수', free: '1,400개', pro: '4,400개 +' },
|
|
104
|
+
{ name: '커스텀 숫자 사용', free: false, pro: true },
|
|
105
|
+
];
|
|
106
|
+
const defaultPricing = {
|
|
107
|
+
monthly: 2,
|
|
108
|
+
yearly: 21.6,
|
|
109
|
+
};
|
|
110
|
+
const PricingComparison = ({ features = defaultFeatures, pricing = defaultPricing, t = (key) => key, className, }) => {
|
|
111
|
+
const [isYearly, setIsYearly] = React.useState(false);
|
|
112
|
+
const getPrice = () => {
|
|
113
|
+
const price = isYearly ? pricing.yearly : pricing.monthly;
|
|
114
|
+
return `$${price.toLocaleString()} / ${isYearly ? t('perYear') : t('perMonth')}`;
|
|
115
|
+
};
|
|
116
|
+
return (React.createElement("div", { className: `designbase-figma-pricing-comparison ${className || ''}` },
|
|
117
|
+
React.createElement("div", { className: "designbase-figma-pricing-comparison__billing-toggle" },
|
|
118
|
+
React.createElement("span", { className: !isYearly ? 'active' : '' }, t('monthlyBilling') || '월간 결제'),
|
|
119
|
+
React.createElement(ui.Toggle, { size: "s", checked: isYearly, onChange: (e) => setIsYearly(e.target.checked) }),
|
|
120
|
+
React.createElement("span", { className: isYearly ? 'active' : '' }, t('yearlyBilling') || '연간 결제'),
|
|
121
|
+
React.createElement("span", { className: "designbase-figma-pricing-comparison__discount-badge" }, t('save10Percent') || '10% 절약')),
|
|
122
|
+
React.createElement("table", { className: "designbase-figma-pricing-comparison__table" },
|
|
123
|
+
React.createElement("thead", null,
|
|
124
|
+
React.createElement("tr", null,
|
|
125
|
+
React.createElement("th", null, t('feature') || '기능'),
|
|
126
|
+
React.createElement("th", null,
|
|
127
|
+
React.createElement("div", { className: "designbase-figma-pricing-comparison__plan-name" }, t('free') || 'Free'),
|
|
128
|
+
React.createElement("p", null, t('freePrice') || '$0')),
|
|
129
|
+
React.createElement("th", { className: "designbase-figma-pricing-comparison__recommended" },
|
|
130
|
+
React.createElement("div", { className: "designbase-figma-pricing-comparison__plan-name" },
|
|
131
|
+
t('pro') || 'Pro',
|
|
132
|
+
React.createElement("span", { className: "designbase-figma-pricing-comparison__recommended-badge" }, t('recommended') || '추천')),
|
|
133
|
+
React.createElement("p", null, getPrice())))),
|
|
134
|
+
React.createElement("tbody", null, features.map((feature, index) => (React.createElement("tr", { key: index },
|
|
135
|
+
React.createElement("td", null, feature.name),
|
|
136
|
+
React.createElement("td", null, typeof feature.free === 'boolean'
|
|
137
|
+
? (feature.free ? '✓' : '✗')
|
|
138
|
+
: feature.free),
|
|
139
|
+
React.createElement("td", null, typeof feature.pro === 'boolean'
|
|
140
|
+
? (feature.pro ? '✓' : '✗')
|
|
141
|
+
: feature.pro))))))));
|
|
142
|
+
};
|
|
143
|
+
PricingComparison.displayName = 'PricingComparison';
|
|
144
|
+
|
|
145
|
+
const PageLicense = ({ status: initialStatus, onClose, usageCount: initialUsageCount = 0, onLicenseSubmit, licenseKey: initialLicenseKey = '', setPaymentStatus, setUsageCount, setShowLicensePage, paymentPageUrl = 'https://designbasekorea.lemonsqueezy.com/buy/fc202a67-6f1a-4a61-9242-c643b282e230', t = (key) => key, className, }) => {
|
|
146
|
+
const [isSubmitting, setIsSubmitting] = React.useState(false);
|
|
147
|
+
const [isDeactivating, setIsDeactivating] = React.useState(false);
|
|
148
|
+
const [licenseKey, setLicenseKey] = React.useState(initialLicenseKey);
|
|
149
|
+
const [status, setStatus] = React.useState(initialStatus);
|
|
150
|
+
const [usageCount, setLocalUsageCount] = React.useState(initialUsageCount);
|
|
151
|
+
const { showToast } = ui.useToast();
|
|
152
|
+
const [activationLimit, setActivationLimit] = React.useState(0);
|
|
153
|
+
const [activationUsage, setActivationUsage] = React.useState(0);
|
|
154
|
+
const [showDetails, setShowDetails] = React.useState(false);
|
|
155
|
+
React.useEffect(() => {
|
|
156
|
+
const handleMessage = (event) => {
|
|
157
|
+
const { type, paymentStatus, licenseKey, activationLimit, activationUsage, success, message, usageCount } = event.data.pluginMessage || {};
|
|
158
|
+
if (type === 'update-plugin-status' || type === 'license-verification-result') {
|
|
159
|
+
if (paymentStatus)
|
|
160
|
+
setStatus(paymentStatus);
|
|
161
|
+
if (licenseKey)
|
|
162
|
+
setLicenseKey(licenseKey);
|
|
163
|
+
if (activationLimit !== undefined)
|
|
164
|
+
setActivationLimit(activationLimit);
|
|
165
|
+
if (activationUsage !== undefined)
|
|
166
|
+
setActivationUsage(activationUsage);
|
|
167
|
+
if (paymentStatus)
|
|
168
|
+
setPaymentStatus(paymentStatus);
|
|
169
|
+
if (usageCount !== undefined) {
|
|
170
|
+
setLocalUsageCount(usageCount);
|
|
171
|
+
setUsageCount(usageCount);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (type === 'license-verification-result') {
|
|
175
|
+
setIsSubmitting(false);
|
|
176
|
+
if (message)
|
|
177
|
+
showToast(message);
|
|
178
|
+
if (success) {
|
|
179
|
+
setStatus('PAID');
|
|
180
|
+
setPaymentStatus('PAID');
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (type === 'license-deactivation-result') {
|
|
184
|
+
setIsDeactivating(false);
|
|
185
|
+
if (message)
|
|
186
|
+
showToast(message);
|
|
187
|
+
if (success) {
|
|
188
|
+
setStatus('UNPAID');
|
|
189
|
+
setPaymentStatus('UNPAID');
|
|
190
|
+
setLicenseKey('');
|
|
191
|
+
setLocalUsageCount(20);
|
|
192
|
+
setActivationLimit(0);
|
|
193
|
+
setActivationUsage(0);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
window.addEventListener('message', handleMessage);
|
|
198
|
+
if (typeof parent !== 'undefined') {
|
|
199
|
+
parent.postMessage({ pluginMessage: { type: 'initialize' } }, '*');
|
|
200
|
+
}
|
|
201
|
+
return () => window.removeEventListener('message', handleMessage);
|
|
202
|
+
}, [setPaymentStatus, setUsageCount, showToast]);
|
|
203
|
+
const handleLicenseSubmit = async (submittedLicenseKey) => {
|
|
204
|
+
setIsSubmitting(true);
|
|
205
|
+
if (typeof parent !== 'undefined') {
|
|
206
|
+
parent.postMessage({
|
|
207
|
+
pluginMessage: {
|
|
208
|
+
type: 'verify-license',
|
|
209
|
+
licenseKey: submittedLicenseKey
|
|
210
|
+
}
|
|
211
|
+
}, '*');
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
const handleDeactivateLicense = () => {
|
|
215
|
+
setIsDeactivating(true);
|
|
216
|
+
if (typeof parent !== 'undefined') {
|
|
217
|
+
parent.postMessage({
|
|
218
|
+
pluginMessage: { type: 'deactivate-license' }
|
|
219
|
+
}, '*');
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
const isPaid = status === 'PAID';
|
|
223
|
+
return (React.createElement("div", { className: `designbase-figma-page-license ${className || ''}` },
|
|
224
|
+
React.createElement("div", { className: "designbase-figma-page-license__content" },
|
|
225
|
+
React.createElement("div", { className: "designbase-figma-page-license__header" },
|
|
226
|
+
React.createElement("div", { className: "designbase-figma-page-license__title" },
|
|
227
|
+
isPaid ? React.createElement(icons.StarIcon, { size: 24 }) : React.createElement(icons.KeyIcon, { size: 24 }),
|
|
228
|
+
React.createElement("h2", null, isPaid ? t('proAccount') || '프로 계정' : t('upgradeToPro') || '프로로 업그레이드')),
|
|
229
|
+
React.createElement("p", { className: "designbase-figma-page-license__description" }, isPaid
|
|
230
|
+
? t('allFeaturesAvailable') || '모든 기능을 사용할 수 있습니다.'
|
|
231
|
+
: t('purchaseForUnlimited') || '라이센스 구매 후 무제한 접근이 가능합니다.')),
|
|
232
|
+
React.createElement(PricingComparison, { t: t }),
|
|
233
|
+
React.createElement(ui.Divider, null),
|
|
234
|
+
isPaid && (React.createElement("div", { className: "designbase-figma-page-license__section" },
|
|
235
|
+
React.createElement("div", { className: "designbase-figma-page-license__section-header" },
|
|
236
|
+
React.createElement("h3", null, t('licenseActivated') || '라이선스 활성화됨'),
|
|
237
|
+
React.createElement(ui.Button, { onClick: () => setShowDetails(!showDetails), variant: "tertiary", size: "s" },
|
|
238
|
+
React.createElement(icons.SettingsIcon, { size: 16 }))),
|
|
239
|
+
React.createElement(PaymentStatusSection, { status: status, usageCount: usageCount, activationLimit: activationLimit, activationUsage: activationUsage, licenseKey: licenseKey, onDeactivate: handleDeactivateLicense, isDeactivating: isDeactivating, showDetails: showDetails }))),
|
|
240
|
+
React.createElement("div", { className: "designbase-figma-page-license__section" },
|
|
241
|
+
React.createElement("div", { className: "designbase-figma-page-license__section-header" },
|
|
242
|
+
React.createElement("h3", null, t('enterLicenseKey') || '라이선스 키 입력'),
|
|
243
|
+
!isPaid && (React.createElement(ui.Button, { onClick: () => window.open(paymentPageUrl, '_blank'), variant: "primary", size: "s" }, t('purchaseLicense') || '라이센스 구매'))),
|
|
244
|
+
React.createElement(FormWithSubmit, { onLicenseSubmit: handleLicenseSubmit, disabled: isPaid, isSubmitting: isSubmitting, value: licenseKey, onValueChange: setLicenseKey, label: t('licenseKey') || 'License Key', submitText: t('submit') || 'Submit', submittingText: t('verifying') || 'Verifying...' }),
|
|
245
|
+
React.createElement("p", { className: "designbase-figma-page-license__disclaimer" }, isPaid
|
|
246
|
+
? t('licenseActivatedSuccess') || '라이선스가 성공적으로 활성화되었습니다.'
|
|
247
|
+
: t('enterLicenseFromEmail') || '구독 후 이메일로 받은 라이선스 키를 입력하세요.'))),
|
|
248
|
+
React.createElement("button", { className: "designbase-figma-page-license__close", onClick: onClose, "aria-label": "Close" },
|
|
249
|
+
React.createElement(icons.CloseIcon, { size: 20 }))));
|
|
250
|
+
};
|
|
251
|
+
PageLicense.displayName = 'PageLicense';
|
|
252
|
+
|
|
253
|
+
const UpgradeBanner = ({ onClick, isLoading = false, title, description, buttonText, t = (key) => key, className, }) => {
|
|
254
|
+
return (React.createElement("div", { className: `designbase-figma-upgrade-banner ${className || ''}` },
|
|
255
|
+
React.createElement("div", { className: "designbase-figma-upgrade-banner__content" },
|
|
256
|
+
React.createElement("div", { className: "designbase-figma-upgrade-banner__text-wrap" },
|
|
257
|
+
React.createElement("h3", { className: "designbase-figma-upgrade-banner__title" }, title || t('bannerTitle') || '프로로 업그레이드하세요'),
|
|
258
|
+
React.createElement("p", { className: "designbase-figma-upgrade-banner__text" }, description || t('bannerText') || '무제한 기능을 사용하고 더 많은 혜택을 누리세요.')),
|
|
259
|
+
React.createElement(ui.Button, { onClick: onClick, variant: "primary", size: "m", disabled: isLoading }, buttonText || t('upgradeNow') || '지금 업그레이드'))));
|
|
260
|
+
};
|
|
261
|
+
UpgradeBanner.displayName = 'UpgradeBanner';
|
|
262
|
+
|
|
263
|
+
const ResizablePlugin = ({ children, minWidth = 360, maxWidth = 460, minHeight = 440, maxHeight = 700, icon, className, }) => {
|
|
264
|
+
const [isResizing, setIsResizing] = React.useState(false);
|
|
265
|
+
const resizeHandleRef = React.useRef(null);
|
|
266
|
+
React.useEffect(() => {
|
|
267
|
+
const handleMouseMove = (e) => {
|
|
268
|
+
if (!isResizing)
|
|
269
|
+
return;
|
|
270
|
+
const newWidth = Math.max(minWidth, Math.min(maxWidth, e.clientX + 10));
|
|
271
|
+
const newHeight = Math.max(minHeight, Math.min(maxHeight, e.clientY + 10));
|
|
272
|
+
if (typeof parent !== 'undefined') {
|
|
273
|
+
parent.postMessage({
|
|
274
|
+
pluginMessage: {
|
|
275
|
+
type: 'resize',
|
|
276
|
+
width: newWidth,
|
|
277
|
+
height: newHeight
|
|
278
|
+
}
|
|
279
|
+
}, '*');
|
|
280
|
+
}
|
|
281
|
+
};
|
|
282
|
+
const handleMouseUp = () => {
|
|
283
|
+
setIsResizing(false);
|
|
284
|
+
};
|
|
285
|
+
if (isResizing) {
|
|
286
|
+
window.addEventListener('mousemove', handleMouseMove);
|
|
287
|
+
window.addEventListener('mouseup', handleMouseUp);
|
|
288
|
+
}
|
|
289
|
+
return () => {
|
|
290
|
+
window.removeEventListener('mousemove', handleMouseMove);
|
|
291
|
+
window.removeEventListener('mouseup', handleMouseUp);
|
|
292
|
+
};
|
|
293
|
+
}, [isResizing, minWidth, maxWidth, minHeight, maxHeight]);
|
|
294
|
+
return (React.createElement("div", { className: `designbase-figma-resizable-plugin ${className || ''}` },
|
|
295
|
+
children,
|
|
296
|
+
React.createElement("div", { ref: resizeHandleRef, className: `designbase-figma-resizable-plugin__handle ${isResizing ? 'resizing' : ''}`, onMouseDown: (e) => {
|
|
297
|
+
e.preventDefault();
|
|
298
|
+
setIsResizing(true);
|
|
299
|
+
}, role: "button", tabIndex: 0, "aria-label": "Resize plugin" }, icon || React.createElement(icons.ArrowsExpandIcon, { size: 12 }))));
|
|
300
|
+
};
|
|
301
|
+
ResizablePlugin.displayName = 'ResizablePlugin';
|
|
302
|
+
|
|
54
303
|
exports.Footer = Footer;
|
|
304
|
+
exports.FormWithSubmit = FormWithSubmit;
|
|
55
305
|
exports.LogoDropdown = LogoDropdown;
|
|
306
|
+
exports.PageLicense = PageLicense;
|
|
307
|
+
exports.PaymentStatusSection = PaymentStatusSection;
|
|
308
|
+
exports.PricingComparison = PricingComparison;
|
|
309
|
+
exports.ResizablePlugin = ResizablePlugin;
|
|
310
|
+
exports.UpgradeBanner = UpgradeBanner;
|
|
56
311
|
Object.keys(ui).forEach(function (k) {
|
|
57
312
|
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
58
313
|
enumerable: true,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/clsx/dist/clsx.mjs","../src/components/LogoDropdown/LogoDropdown.tsx","../src/components/Footer/Footer.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport { ExternalLinkIcon } from '@designbasekorea/icons';\nimport './LogoDropdown.scss';\nexport const LogoDropdown = ({ logoSrc, logoAlt = 'Logo', links, position = 'bottom-left', className, t = (key) => key, }) => {\n const [isOpen, setIsOpen] = useState(false);\n const toggleDropdown = () => setIsOpen(!isOpen);\n const handleLinkClick = (url) => {\n if (url.startsWith('mailto:')) {\n return;\n }\n window.open(url, '_blank', 'noopener,noreferrer');\n };\n const classes = clsx('designbase-figma-logo-dropdown', `designbase-figma-logo-dropdown--${position}`, {\n 'designbase-figma-logo-dropdown--open': isOpen,\n }, className);\n return (React.createElement(\"div\", { className: classes },\n React.createElement(\"img\", { className: \"designbase-figma-logo-dropdown__logo\", src: logoSrc, alt: logoAlt, onClick: toggleDropdown }),\n isOpen && (React.createElement(\"ul\", { className: \"designbase-figma-logo-dropdown__menu\" }, links.map((link, index) => (React.createElement(\"li\", { key: index, className: \"designbase-figma-logo-dropdown__item\" },\n React.createElement(\"button\", { type: \"button\", className: \"designbase-figma-logo-dropdown__link\", onClick: () => handleLinkClick(link.url) },\n link.icon && (React.createElement(\"span\", { className: \"designbase-figma-logo-dropdown__icon\" }, link.icon)),\n React.createElement(\"span\", { className: \"designbase-figma-logo-dropdown__text\" }, t(link.name)),\n React.createElement(ExternalLinkIcon, { size: 16, className: \"designbase-figma-logo-dropdown__arrow\" })))))))));\n};\nLogoDropdown.displayName = 'LogoDropdown';\nexport default LogoDropdown;\n","import React from 'react';\nimport clsx from 'clsx';\nimport { LogoDropdown } from '../LogoDropdown/LogoDropdown';\nimport { Badge } from '@designbasekorea/ui';\nimport './Footer.scss';\nexport const Footer = ({ logoSrc, logoAlt = 'Logo', logoLinks = [], onLicensePageClick, paymentStatus = 'FREE', usageCount = 0, isLoading = false, showPaymentStatus = true, maxDailyUsage = 20, className, t = (key) => key, children, }) => {\n const isActive = paymentStatus === 'PAID';\n const hasChildren = React.Children.count(children) > 0;\n const classes = clsx('designbase-figma-footer', {\n 'designbase-figma-footer--has-children': hasChildren,\n }, className);\n return (React.createElement(\"footer\", { className: classes },\n React.createElement(\"div\", { className: \"designbase-figma-footer__wrap\" },\n React.createElement(LogoDropdown, { logoSrc: logoSrc, logoAlt: logoAlt, links: logoLinks, position: \"bottom-left\", t: t }),\n showPaymentStatus && (React.createElement(\"div\", { className: \"designbase-figma-footer__payment-states\" },\n !isLoading && (React.createElement(\"div\", { className: \"designbase-figma-footer__usage-info\" }, isActive ? (React.createElement(\"span\", { className: \"designbase-figma-footer__unlimited-usage\" }, t('unlimitedUsage'))) : (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: \"designbase-figma-footer__usage-count\" }, usageCount),\n React.createElement(\"span\", { className: \"designbase-figma-footer__max-daily-usage\" },\n \"/\",\n maxDailyUsage,\n \" \",\n t('perDay')),\n React.createElement(\"span\", { className: \"designbase-figma-footer__reset-info\" }, t('resetsDaily')))))),\n React.createElement(Badge, { variant: isActive ? 'success' : 'secondary', size: \"s\", onClick: onLicensePageClick, style: { cursor: 'pointer' } }, isLoading ? t('loading') : isActive ? t('premium') : t('free'))))),\n children));\n};\nFooter.displayName = 'Footer';\nexport default Footer;\n"],"names":["useState","ExternalLinkIcon","Badge"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/clsx/dist/clsx.mjs","../src/components/LogoDropdown/LogoDropdown.tsx","../src/components/Footer/Footer.tsx","../src/components/FormWithSubmit/FormWithSubmit.tsx","../src/components/PaymentStatusSection/PaymentStatusSection.tsx","../src/components/PricingComparison/PricingComparison.tsx","../src/components/PageLicense/PageLicense.tsx","../src/components/UpgradeBanner/UpgradeBanner.tsx","../src/components/ResizablePlugin/ResizablePlugin.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport { ExternalLinkIcon } from '@designbasekorea/icons';\nimport './LogoDropdown.scss';\nexport const LogoDropdown = ({ logoSrc, logoAlt = 'Logo', links, position = 'bottom-left', className, t = (key) => key, }) => {\n const [isOpen, setIsOpen] = useState(false);\n const toggleDropdown = () => setIsOpen(!isOpen);\n const handleLinkClick = (url) => {\n if (url.startsWith('mailto:')) {\n return;\n }\n window.open(url, '_blank', 'noopener,noreferrer');\n };\n const classes = clsx('designbase-figma-logo-dropdown', `designbase-figma-logo-dropdown--${position}`, {\n 'designbase-figma-logo-dropdown--open': isOpen,\n }, className);\n return (React.createElement(\"div\", { className: classes },\n React.createElement(\"img\", { className: \"designbase-figma-logo-dropdown__logo\", src: logoSrc, alt: logoAlt, onClick: toggleDropdown }),\n isOpen && (React.createElement(\"ul\", { className: \"designbase-figma-logo-dropdown__menu\" }, links.map((link, index) => (React.createElement(\"li\", { key: index, className: \"designbase-figma-logo-dropdown__item\" },\n React.createElement(\"button\", { type: \"button\", className: \"designbase-figma-logo-dropdown__link\", onClick: () => handleLinkClick(link.url) },\n link.icon && (React.createElement(\"span\", { className: \"designbase-figma-logo-dropdown__icon\" }, link.icon)),\n React.createElement(\"span\", { className: \"designbase-figma-logo-dropdown__text\" }, t(link.name)),\n React.createElement(ExternalLinkIcon, { size: 16, className: \"designbase-figma-logo-dropdown__arrow\" })))))))));\n};\nLogoDropdown.displayName = 'LogoDropdown';\nexport default LogoDropdown;\n","import React from 'react';\nimport clsx from 'clsx';\nimport { LogoDropdown } from '../LogoDropdown/LogoDropdown';\nimport { Badge } from '@designbasekorea/ui';\nimport './Footer.scss';\nexport const Footer = ({ logoSrc, logoAlt = 'Logo', logoLinks = [], onLicensePageClick, paymentStatus = 'FREE', usageCount = 0, isLoading = false, showPaymentStatus = true, maxDailyUsage = 20, className, t = (key) => key, children, }) => {\n const isActive = paymentStatus === 'PAID';\n const hasChildren = React.Children.count(children) > 0;\n const classes = clsx('designbase-figma-footer', {\n 'designbase-figma-footer--has-children': hasChildren,\n }, className);\n return (React.createElement(\"footer\", { className: classes },\n React.createElement(\"div\", { className: \"designbase-figma-footer__wrap\" },\n React.createElement(LogoDropdown, { logoSrc: logoSrc, logoAlt: logoAlt, links: logoLinks, position: \"bottom-left\", t: t }),\n showPaymentStatus && (React.createElement(\"div\", { className: \"designbase-figma-footer__payment-states\" },\n !isLoading && (React.createElement(\"div\", { className: \"designbase-figma-footer__usage-info\" }, isActive ? (React.createElement(\"span\", { className: \"designbase-figma-footer__unlimited-usage\" }, t('unlimitedUsage'))) : (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: \"designbase-figma-footer__usage-count\" }, usageCount),\n React.createElement(\"span\", { className: \"designbase-figma-footer__max-daily-usage\" },\n \"/\",\n maxDailyUsage,\n \" \",\n t('perDay')),\n React.createElement(\"span\", { className: \"designbase-figma-footer__reset-info\" }, t('resetsDaily')))))),\n React.createElement(Badge, { variant: isActive ? 'success' : 'secondary', size: \"s\", onClick: onLicensePageClick, style: { cursor: 'pointer' } }, isLoading ? t('loading') : isActive ? t('premium') : t('free'))))),\n children));\n};\nFooter.displayName = 'Footer';\nexport default Footer;\n","import React, { useState, useEffect } from 'react';\nimport { Button, Input, Spinner } from '@designbasekorea/ui';\nimport './FormWithSubmit.scss';\nexport const FormWithSubmit = ({ onLicenseSubmit, disabled = false, isSubmitting = false, value = '', onValueChange, label = 'License Key', placeholder = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', submitText = 'Submit', submittingText = 'Verifying...', className, }) => {\n const [inputValue, setInputValue] = useState(value);\n useEffect(() => {\n setInputValue(value);\n }, [value]);\n const handleSubmit = async (e) => {\n e.preventDefault();\n await onLicenseSubmit(inputValue);\n };\n const handleChange = (e) => {\n const newValue = e.target.value;\n setInputValue(newValue);\n onValueChange?.(newValue);\n };\n return (React.createElement(\"form\", { className: `designbase-figma-form-with-submit ${className || ''}`, onSubmit: handleSubmit },\n isSubmitting && (React.createElement(\"div\", { className: \"designbase-figma-form-with-submit__spinner\" },\n React.createElement(Spinner, { size: \"s\" }))),\n React.createElement(\"div\", { className: \"designbase-figma-form-with-submit__field\" },\n React.createElement(\"label\", { className: \"designbase-figma-form-with-submit__label\" }, label),\n React.createElement(Input, { value: inputValue, onChange: handleChange, placeholder: placeholder, disabled: disabled || isSubmitting, size: \"m\" })),\n React.createElement(Button, { type: \"submit\", variant: \"primary\", size: \"m\", disabled: !inputValue.trim() || isSubmitting || disabled, fullWidth: true }, isSubmitting ? submittingText : submitText)));\n};\nFormWithSubmit.displayName = 'FormWithSubmit';\nexport default FormWithSubmit;\n","import React from 'react';\nimport { Button } from '@designbasekorea/ui';\nimport './PaymentStatusSection.scss';\nexport const PaymentStatusSection = ({ status, usageCount, activationLimit, activationUsage, licenseKey, onDeactivate, isDeactivating = false, showDetails = false, className, }) => {\n const remainingActivations = activationLimit - activationUsage;\n return (React.createElement(\"div\", { className: `designbase-figma-payment-status ${className || ''}` },\n React.createElement(\"p\", { className: \"designbase-figma-payment-status__license-key\" },\n \"\\uB77C\\uC774\\uC13C\\uC2A4 \\uD0A4: \",\n React.createElement(\"span\", null, licenseKey)),\n showDetails && (React.createElement(\"div\", { className: \"designbase-figma-payment-status__details\" },\n React.createElement(\"div\", { className: \"designbase-figma-payment-status__activation-info\" },\n React.createElement(\"p\", { className: \"designbase-figma-payment-status__remaining\" },\n remainingActivations,\n \" \",\n remainingActivations === 1 ? '활성' : '활성',\n \" \\uC790\\uB9AC \\uB0A8\\uC74C\"),\n React.createElement(\"p\", { className: \"designbase-figma-payment-status__usage\" },\n activationUsage,\n \"/\",\n activationLimit)),\n React.createElement(Button, { onClick: onDeactivate, variant: \"tertiary\", size: \"s\", disabled: isDeactivating }, isDeactivating ? '비활성화중...' : '라이센스 비활성화')))));\n};\nPaymentStatusSection.displayName = 'PaymentStatusSection';\nexport default PaymentStatusSection;\n","import React, { useState } from 'react';\nimport { Toggle } from '@designbasekorea/ui';\nimport './PricingComparison.scss';\nconst defaultFeatures = [\n { name: '사용 제한', free: '일일 제한', pro: '무제한' },\n { name: '모든 주제 사용', free: false, pro: true },\n { name: '최대 선택 제한', free: '최대 5개', pro: '최대 30개' },\n { name: '더미 개수', free: '1,400개', pro: '4,400개 +' },\n { name: '커스텀 숫자 사용', free: false, pro: true },\n];\nconst defaultPricing = {\n monthly: 2,\n yearly: 21.6,\n};\nexport const PricingComparison = ({ features = defaultFeatures, pricing = defaultPricing, t = (key) => key, className, }) => {\n const [isYearly, setIsYearly] = useState(false);\n const getPrice = () => {\n const price = isYearly ? pricing.yearly : pricing.monthly;\n return `$${price.toLocaleString()} / ${isYearly ? t('perYear') : t('perMonth')}`;\n };\n return (React.createElement(\"div\", { className: `designbase-figma-pricing-comparison ${className || ''}` },\n React.createElement(\"div\", { className: \"designbase-figma-pricing-comparison__billing-toggle\" },\n React.createElement(\"span\", { className: !isYearly ? 'active' : '' }, t('monthlyBilling') || '월간 결제'),\n React.createElement(Toggle, { size: \"s\", checked: isYearly, onChange: (e) => setIsYearly(e.target.checked) }),\n React.createElement(\"span\", { className: isYearly ? 'active' : '' }, t('yearlyBilling') || '연간 결제'),\n React.createElement(\"span\", { className: \"designbase-figma-pricing-comparison__discount-badge\" }, t('save10Percent') || '10% 절약')),\n React.createElement(\"table\", { className: \"designbase-figma-pricing-comparison__table\" },\n React.createElement(\"thead\", null,\n React.createElement(\"tr\", null,\n React.createElement(\"th\", null, t('feature') || '기능'),\n React.createElement(\"th\", null,\n React.createElement(\"div\", { className: \"designbase-figma-pricing-comparison__plan-name\" }, t('free') || 'Free'),\n React.createElement(\"p\", null, t('freePrice') || '$0')),\n React.createElement(\"th\", { className: \"designbase-figma-pricing-comparison__recommended\" },\n React.createElement(\"div\", { className: \"designbase-figma-pricing-comparison__plan-name\" },\n t('pro') || 'Pro',\n React.createElement(\"span\", { className: \"designbase-figma-pricing-comparison__recommended-badge\" }, t('recommended') || '추천')),\n React.createElement(\"p\", null, getPrice())))),\n React.createElement(\"tbody\", null, features.map((feature, index) => (React.createElement(\"tr\", { key: index },\n React.createElement(\"td\", null, feature.name),\n React.createElement(\"td\", null, typeof feature.free === 'boolean'\n ? (feature.free ? '✓' : '✗')\n : feature.free),\n React.createElement(\"td\", null, typeof feature.pro === 'boolean'\n ? (feature.pro ? '✓' : '✗')\n : feature.pro))))))));\n};\nPricingComparison.displayName = 'PricingComparison';\nexport default PricingComparison;\n","import React, { useState, useEffect } from 'react';\nimport { Button, Divider, useToast } from '@designbasekorea/ui';\nimport { CloseIcon, KeyIcon, StarIcon, SettingsIcon } from '@designbasekorea/icons';\nimport { PaymentStatusSection } from '../PaymentStatusSection/PaymentStatusSection';\nimport { FormWithSubmit } from '../FormWithSubmit/FormWithSubmit';\nimport { PricingComparison } from '../PricingComparison/PricingComparison';\nimport './PageLicense.scss';\nexport const PageLicense = ({ status: initialStatus, onClose, usageCount: initialUsageCount = 0, onLicenseSubmit, licenseKey: initialLicenseKey = '', setPaymentStatus, setUsageCount, setShowLicensePage, paymentPageUrl = 'https://designbasekorea.lemonsqueezy.com/buy/fc202a67-6f1a-4a61-9242-c643b282e230', t = (key) => key, className, }) => {\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isDeactivating, setIsDeactivating] = useState(false);\n const [licenseKey, setLicenseKey] = useState(initialLicenseKey);\n const [status, setStatus] = useState(initialStatus);\n const [usageCount, setLocalUsageCount] = useState(initialUsageCount);\n const { showToast } = useToast();\n const [activationLimit, setActivationLimit] = useState(0);\n const [activationUsage, setActivationUsage] = useState(0);\n const [showDetails, setShowDetails] = useState(false);\n useEffect(() => {\n const handleMessage = (event) => {\n const { type, paymentStatus, licenseKey, activationLimit, activationUsage, success, message, usageCount } = event.data.pluginMessage || {};\n if (type === 'update-plugin-status' || type === 'license-verification-result') {\n if (paymentStatus)\n setStatus(paymentStatus);\n if (licenseKey)\n setLicenseKey(licenseKey);\n if (activationLimit !== undefined)\n setActivationLimit(activationLimit);\n if (activationUsage !== undefined)\n setActivationUsage(activationUsage);\n if (paymentStatus)\n setPaymentStatus(paymentStatus);\n if (usageCount !== undefined) {\n setLocalUsageCount(usageCount);\n setUsageCount(usageCount);\n }\n }\n if (type === 'license-verification-result') {\n setIsSubmitting(false);\n if (message)\n showToast(message);\n if (success) {\n setStatus('PAID');\n setPaymentStatus('PAID');\n }\n }\n if (type === 'license-deactivation-result') {\n setIsDeactivating(false);\n if (message)\n showToast(message);\n if (success) {\n setStatus('UNPAID');\n setPaymentStatus('UNPAID');\n setLicenseKey('');\n setLocalUsageCount(20);\n setActivationLimit(0);\n setActivationUsage(0);\n }\n }\n };\n window.addEventListener('message', handleMessage);\n if (typeof parent !== 'undefined') {\n parent.postMessage({ pluginMessage: { type: 'initialize' } }, '*');\n }\n return () => window.removeEventListener('message', handleMessage);\n }, [setPaymentStatus, setUsageCount, showToast]);\n const handleLicenseSubmit = async (submittedLicenseKey) => {\n setIsSubmitting(true);\n if (typeof parent !== 'undefined') {\n parent.postMessage({\n pluginMessage: {\n type: 'verify-license',\n licenseKey: submittedLicenseKey\n }\n }, '*');\n }\n };\n const handleDeactivateLicense = () => {\n setIsDeactivating(true);\n if (typeof parent !== 'undefined') {\n parent.postMessage({\n pluginMessage: { type: 'deactivate-license' }\n }, '*');\n }\n };\n const isPaid = status === 'PAID';\n return (React.createElement(\"div\", { className: `designbase-figma-page-license ${className || ''}` },\n React.createElement(\"div\", { className: \"designbase-figma-page-license__content\" },\n React.createElement(\"div\", { className: \"designbase-figma-page-license__header\" },\n React.createElement(\"div\", { className: \"designbase-figma-page-license__title\" },\n isPaid ? React.createElement(StarIcon, { size: 24 }) : React.createElement(KeyIcon, { size: 24 }),\n React.createElement(\"h2\", null, isPaid ? t('proAccount') || '프로 계정' : t('upgradeToPro') || '프로로 업그레이드')),\n React.createElement(\"p\", { className: \"designbase-figma-page-license__description\" }, isPaid\n ? t('allFeaturesAvailable') || '모든 기능을 사용할 수 있습니다.'\n : t('purchaseForUnlimited') || '라이센스 구매 후 무제한 접근이 가능합니다.')),\n React.createElement(PricingComparison, { t: t }),\n React.createElement(Divider, null),\n isPaid && (React.createElement(\"div\", { className: \"designbase-figma-page-license__section\" },\n React.createElement(\"div\", { className: \"designbase-figma-page-license__section-header\" },\n React.createElement(\"h3\", null, t('licenseActivated') || '라이선스 활성화됨'),\n React.createElement(Button, { onClick: () => setShowDetails(!showDetails), variant: \"tertiary\", size: \"s\" },\n React.createElement(SettingsIcon, { size: 16 }))),\n React.createElement(PaymentStatusSection, { status: status, usageCount: usageCount, activationLimit: activationLimit, activationUsage: activationUsage, licenseKey: licenseKey, onDeactivate: handleDeactivateLicense, isDeactivating: isDeactivating, showDetails: showDetails }))),\n React.createElement(\"div\", { className: \"designbase-figma-page-license__section\" },\n React.createElement(\"div\", { className: \"designbase-figma-page-license__section-header\" },\n React.createElement(\"h3\", null, t('enterLicenseKey') || '라이선스 키 입력'),\n !isPaid && (React.createElement(Button, { onClick: () => window.open(paymentPageUrl, '_blank'), variant: \"primary\", size: \"s\" }, t('purchaseLicense') || '라이센스 구매'))),\n React.createElement(FormWithSubmit, { onLicenseSubmit: handleLicenseSubmit, disabled: isPaid, isSubmitting: isSubmitting, value: licenseKey, onValueChange: setLicenseKey, label: t('licenseKey') || 'License Key', submitText: t('submit') || 'Submit', submittingText: t('verifying') || 'Verifying...' }),\n React.createElement(\"p\", { className: \"designbase-figma-page-license__disclaimer\" }, isPaid\n ? t('licenseActivatedSuccess') || '라이선스가 성공적으로 활성화되었습니다.'\n : t('enterLicenseFromEmail') || '구독 후 이메일로 받은 라이선스 키를 입력하세요.'))),\n React.createElement(\"button\", { className: \"designbase-figma-page-license__close\", onClick: onClose, \"aria-label\": \"Close\" },\n React.createElement(CloseIcon, { size: 20 }))));\n};\nPageLicense.displayName = 'PageLicense';\nexport default PageLicense;\n","import React from 'react';\nimport { Button } from '@designbasekorea/ui';\nimport './UpgradeBanner.scss';\nexport const UpgradeBanner = ({ onClick, isLoading = false, title, description, buttonText, t = (key) => key, className, }) => {\n return (React.createElement(\"div\", { className: `designbase-figma-upgrade-banner ${className || ''}` },\n React.createElement(\"div\", { className: \"designbase-figma-upgrade-banner__content\" },\n React.createElement(\"div\", { className: \"designbase-figma-upgrade-banner__text-wrap\" },\n React.createElement(\"h3\", { className: \"designbase-figma-upgrade-banner__title\" }, title || t('bannerTitle') || '프로로 업그레이드하세요'),\n React.createElement(\"p\", { className: \"designbase-figma-upgrade-banner__text\" }, description || t('bannerText') || '무제한 기능을 사용하고 더 많은 혜택을 누리세요.')),\n React.createElement(Button, { onClick: onClick, variant: \"primary\", size: \"m\", disabled: isLoading }, buttonText || t('upgradeNow') || '지금 업그레이드'))));\n};\nUpgradeBanner.displayName = 'UpgradeBanner';\nexport default UpgradeBanner;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { ArrowsExpandIcon } from '@designbasekorea/icons';\nimport './ResizablePlugin.scss';\nexport const ResizablePlugin = ({ children, minWidth = 360, maxWidth = 460, minHeight = 440, maxHeight = 700, icon, className, }) => {\n const [isResizing, setIsResizing] = useState(false);\n const resizeHandleRef = useRef(null);\n useEffect(() => {\n const handleMouseMove = (e) => {\n if (!isResizing)\n return;\n const newWidth = Math.max(minWidth, Math.min(maxWidth, e.clientX + 10));\n const newHeight = Math.max(minHeight, Math.min(maxHeight, e.clientY + 10));\n if (typeof parent !== 'undefined') {\n parent.postMessage({\n pluginMessage: {\n type: 'resize',\n width: newWidth,\n height: newHeight\n }\n }, '*');\n }\n };\n const handleMouseUp = () => {\n setIsResizing(false);\n };\n if (isResizing) {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n }\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n };\n }, [isResizing, minWidth, maxWidth, minHeight, maxHeight]);\n return (React.createElement(\"div\", { className: `designbase-figma-resizable-plugin ${className || ''}` },\n children,\n React.createElement(\"div\", { ref: resizeHandleRef, className: `designbase-figma-resizable-plugin__handle ${isResizing ? 'resizing' : ''}`, onMouseDown: (e) => {\n e.preventDefault();\n setIsResizing(true);\n }, role: \"button\", tabIndex: 0, \"aria-label\": \"Resize plugin\" }, icon || React.createElement(ArrowsExpandIcon, { size: 12 }))));\n};\nResizablePlugin.displayName = 'ResizablePlugin';\nexport default ResizablePlugin;\n"],"names":["useState","ExternalLinkIcon","Badge","useEffect","Spinner","Input","Button","Toggle","useToast","StarIcon","KeyIcon","Divider","SettingsIcon","CloseIcon","useRef","ArrowsExpandIcon"],"mappings":";;;;;;AAAA,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAQ,SAAS,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;;ACInW,MAAC,YAAY,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,aAAa,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,KAAK;AAC9H,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,IAAI,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AACpD,IAAI,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK;AACrC,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AACvC,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;AAC1D,KAAK,CAAC;AACN,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,gCAAgC,EAAE,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAC,EAAE;AAC1G,QAAQ,sCAAsC,EAAE,MAAM;AACtD,KAAK,EAAE,SAAS,CAAC,CAAC;AAClB,IAAI,QAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;AAC7D,QAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,sCAAsC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;AAC9I,QAAQ,MAAM,KAAK,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,sCAAsC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MAAM,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,sCAAsC,EAAE;AAC3N,YAAY,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,sCAAsC,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACzJ,gBAAgB,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,sCAAsC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5H,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,sCAAsC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChH,gBAAgB,KAAK,CAAC,aAAa,CAACC,sBAAgB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,uCAAuC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChI,EAAE;AACF,YAAY,CAAC,WAAW,GAAG,cAAc;;ACnB7B,MAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,kBAAkB,EAAE,aAAa,GAAG,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAAE,aAAa,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,QAAQ,GAAG,KAAK;AAC9O,IAAI,MAAM,QAAQ,GAAG,aAAa,KAAK,MAAM,CAAC;AAC9C,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC3D,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,EAAE;AACpD,QAAQ,uCAAuC,EAAE,WAAW;AAC5D,KAAK,EAAE,SAAS,CAAC,CAAC;AAClB,IAAI,QAAQ,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;AAChE,QAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,+BAA+B,EAAE;AACjF,YAAY,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACtI,YAAY,iBAAiB,KAAK,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,yCAAyC,EAAE;AACrH,gBAAgB,CAAC,SAAS,KAAK,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qCAAqC,EAAE,EAAE,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,0CAA0C,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,KAAK,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI;AACpR,oBAAoB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,sCAAsC,EAAE,EAAE,UAAU,CAAC;AAClH,oBAAoB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,0CAA0C,EAAE;AACzG,wBAAwB,GAAG;AAC3B,wBAAwB,aAAa;AACrC,wBAAwB,GAAG;AAC3B,wBAAwB,CAAC,CAAC,QAAQ,CAAC,CAAC;AACpC,oBAAoB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,qCAAqC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3H,gBAAgB,KAAK,CAAC,aAAa,CAACC,QAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACpO,QAAQ,QAAQ,CAAC,EAAE;AACnB,EAAE;AACF,MAAM,CAAC,WAAW,GAAG,QAAQ;;ACvBjB,MAAC,cAAc,GAAG,CAAC,EAAE,eAAe,EAAE,QAAQ,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,aAAa,EAAE,KAAK,GAAG,aAAa,EAAE,WAAW,GAAG,sCAAsC,EAAE,UAAU,GAAG,QAAQ,EAAE,cAAc,GAAG,cAAc,EAAE,SAAS,GAAG,KAAK;AAC3Q,IAAI,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGF,cAAQ,CAAC,KAAK,CAAC,CAAC;AACxD,IAAIG,eAAS,CAAC,MAAM;AACpB,QAAQ,aAAa,CAAC,KAAK,CAAC,CAAC;AAC7B,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAChB,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK;AACtC,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,QAAQ,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;AAC1C,KAAK,CAAC;AACN,IAAI,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK;AAChC,QAAQ,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AACxC,QAAQ,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChC,QAAQ,aAAa,GAAG,QAAQ,CAAC,CAAC;AAClC,KAAK,CAAC;AACN,IAAI,QAAQ,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,kCAAkC,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE;AACrI,QAAQ,YAAY,KAAK,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,4CAA4C,EAAE;AAC/G,YAAY,KAAK,CAAC,aAAa,CAACC,UAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACzD,QAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,0CAA0C,EAAE;AAC5F,YAAY,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,0CAA0C,EAAE,EAAE,KAAK,CAAC;AAC1G,YAAY,KAAK,CAAC,aAAa,CAACC,QAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,IAAI,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/J,QAAQ,KAAK,CAAC,aAAa,CAACC,SAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,YAAY,IAAI,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,YAAY,GAAG,cAAc,GAAG,UAAU,CAAC,CAAC,EAAE;AAChN,EAAE;AACF,cAAc,CAAC,WAAW,GAAG,gBAAgB;;ACtBjC,MAAC,oBAAoB,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK;AACrL,IAAI,MAAM,oBAAoB,GAAG,eAAe,GAAG,eAAe,CAAC;AACnE,IAAI,QAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,gCAAgC,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,EAAE;AAC1G,QAAQ,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,8CAA8C,EAAE;AAC9F,YAAY,mCAAmC;AAC/C,YAAY,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAC1D,QAAQ,WAAW,KAAK,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,0CAA0C,EAAE;AAC5G,YAAY,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,kDAAkD,EAAE;AACxG,gBAAgB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,4CAA4C,EAAE;AACpG,oBAAoB,oBAAoB;AACxC,oBAAoB,GAAG;AACvB,oBAAoB,oBAAoB,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI;AAC5D,oBAAoB,4BAA4B,CAAC;AACjD,gBAAgB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,wCAAwC,EAAE;AAChG,oBAAoB,eAAe;AACnC,oBAAoB,GAAG;AACvB,oBAAoB,eAAe,CAAC,CAAC;AACrC,YAAY,KAAK,CAAC,aAAa,CAACA,SAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5K,EAAE;AACF,oBAAoB,CAAC,WAAW,GAAG,sBAAsB;;ACnBzD,MAAM,eAAe,GAAG;AACxB,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE;AAChD,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;AAChD,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE;AACtD,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE;AACtD,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;AACjD,CAAC,CAAC;AACF,MAAM,cAAc,GAAG;AACvB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,MAAM,EAAE,IAAI;AAChB,CAAC,CAAC;AACU,MAAC,iBAAiB,GAAG,CAAC,EAAE,QAAQ,GAAG,eAAe,EAAE,OAAO,GAAG,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,SAAS,GAAG,KAAK;AAC7H,IAAI,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAGN,cAAQ,CAAC,KAAK,CAAC,CAAC;AACpD,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,QAAQ,MAAM,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;AAClE,QAAQ,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACzF,KAAK,CAAC;AACN,IAAI,QAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,oCAAoC,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,EAAE;AAC9G,QAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qDAAqD,EAAE;AACvG,YAAY,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC;AACjH,YAAY,KAAK,CAAC,aAAa,CAACO,SAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;AACzH,YAAY,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC;AAC/G,YAAY,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,qDAAqD,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,CAAC;AAC9I,QAAQ,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,4CAA4C,EAAE;AAChG,YAAY,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI;AAC7C,gBAAgB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI;AAC9C,oBAAoB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AACzE,oBAAoB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI;AAClD,wBAAwB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gDAAgD,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;AACxI,wBAAwB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC;AAC/E,oBAAoB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,kDAAkD,EAAE;AAC/G,wBAAwB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gDAAgD,EAAE;AAClH,4BAA4B,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK;AAC7C,4BAA4B,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,wDAAwD,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC;AAC3J,wBAAwB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,YAAY,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,MAAM,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;AACzH,gBAAgB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;AAC7D,gBAAgB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS;AACjF,uBAAuB,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG;AAC/C,sBAAsB,OAAO,CAAC,IAAI,CAAC;AACnC,gBAAgB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,OAAO,CAAC,GAAG,KAAK,SAAS;AAChF,uBAAuB,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG;AAC9C,sBAAsB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1C,EAAE;AACF,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;;ACxCvC,MAAC,WAAW,GAAG,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,GAAG,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,GAAG,EAAE,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,GAAG,mFAAmF,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,SAAS,GAAG,KAAK;AACpV,IAAI,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGP,cAAQ,CAAC,KAAK,CAAC,CAAC;AAC5D,IAAI,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC,CAAC;AAChE,IAAI,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGA,cAAQ,CAAC,iBAAiB,CAAC,CAAC;AACpE,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAC,aAAa,CAAC,CAAC;AACxD,IAAI,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,GAAGA,cAAQ,CAAC,iBAAiB,CAAC,CAAC;AACzE,IAAI,MAAM,EAAE,SAAS,EAAE,GAAGQ,WAAQ,EAAE,CAAC;AACrC,IAAI,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAGR,cAAQ,CAAC,CAAC,CAAC,CAAC;AAC9D,IAAI,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAGA,cAAQ,CAAC,CAAC,CAAC,CAAC;AAC9D,IAAI,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC,CAAC;AAC1D,IAAIG,eAAS,CAAC,MAAM;AACpB,QAAQ,MAAM,aAAa,GAAG,CAAC,KAAK,KAAK;AACzC,YAAY,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;AACvJ,YAAY,IAAI,IAAI,KAAK,sBAAsB,IAAI,IAAI,KAAK,6BAA6B,EAAE;AAC3F,gBAAgB,IAAI,aAAa;AACjC,oBAAoB,SAAS,CAAC,aAAa,CAAC,CAAC;AAC7C,gBAAgB,IAAI,UAAU;AAC9B,oBAAoB,aAAa,CAAC,UAAU,CAAC,CAAC;AAC9C,gBAAgB,IAAI,eAAe,KAAK,SAAS;AACjD,oBAAoB,kBAAkB,CAAC,eAAe,CAAC,CAAC;AACxD,gBAAgB,IAAI,eAAe,KAAK,SAAS;AACjD,oBAAoB,kBAAkB,CAAC,eAAe,CAAC,CAAC;AACxD,gBAAgB,IAAI,aAAa;AACjC,oBAAoB,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACpD,gBAAgB,IAAI,UAAU,KAAK,SAAS,EAAE;AAC9C,oBAAoB,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACnD,oBAAoB,aAAa,CAAC,UAAU,CAAC,CAAC;AAC9C,iBAAiB;AACjB,aAAa;AACb,YAAY,IAAI,IAAI,KAAK,6BAA6B,EAAE;AACxD,gBAAgB,eAAe,CAAC,KAAK,CAAC,CAAC;AACvC,gBAAgB,IAAI,OAAO;AAC3B,oBAAoB,SAAS,CAAC,OAAO,CAAC,CAAC;AACvC,gBAAgB,IAAI,OAAO,EAAE;AAC7B,oBAAoB,SAAS,CAAC,MAAM,CAAC,CAAC;AACtC,oBAAoB,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC7C,iBAAiB;AACjB,aAAa;AACb,YAAY,IAAI,IAAI,KAAK,6BAA6B,EAAE;AACxD,gBAAgB,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACzC,gBAAgB,IAAI,OAAO;AAC3B,oBAAoB,SAAS,CAAC,OAAO,CAAC,CAAC;AACvC,gBAAgB,IAAI,OAAO,EAAE;AAC7B,oBAAoB,SAAS,CAAC,QAAQ,CAAC,CAAC;AACxC,oBAAoB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC/C,oBAAoB,aAAa,CAAC,EAAE,CAAC,CAAC;AACtC,oBAAoB,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAC3C,oBAAoB,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1C,oBAAoB,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC1C,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC1D,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAC3C,YAAY,MAAM,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC/E,SAAS;AACT,QAAQ,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC1E,KAAK,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;AACrD,IAAI,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,KAAK;AAC/D,QAAQ,eAAe,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAC3C,YAAY,MAAM,CAAC,WAAW,CAAC;AAC/B,gBAAgB,aAAa,EAAE;AAC/B,oBAAoB,IAAI,EAAE,gBAAgB;AAC1C,oBAAoB,UAAU,EAAE,mBAAmB;AACnD,iBAAiB;AACjB,aAAa,EAAE,GAAG,CAAC,CAAC;AACpB,SAAS;AACT,KAAK,CAAC;AACN,IAAI,MAAM,uBAAuB,GAAG,MAAM;AAC1C,QAAQ,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAChC,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAC3C,YAAY,MAAM,CAAC,WAAW,CAAC;AAC/B,gBAAgB,aAAa,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE;AAC7D,aAAa,EAAE,GAAG,CAAC,CAAC;AACpB,SAAS;AACT,KAAK,CAAC;AACN,IAAI,MAAM,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;AACrC,IAAI,QAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,8BAA8B,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,EAAE;AACxG,QAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,wCAAwC,EAAE;AAC1F,YAAY,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,uCAAuC,EAAE;AAC7F,gBAAgB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,sCAAsC,EAAE;AAChG,oBAAoB,MAAM,GAAG,KAAK,CAAC,aAAa,CAACM,cAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAACC,aAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACrH,oBAAoB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,CAAC;AAC5H,gBAAgB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,4CAA4C,EAAE,EAAE,MAAM;AAC5G,sBAAsB,CAAC,CAAC,sBAAsB,CAAC,IAAI,oBAAoB;AACvE,sBAAsB,CAAC,CAAC,sBAAsB,CAAC,IAAI,0BAA0B,CAAC,CAAC;AAC/E,YAAY,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5D,YAAY,KAAK,CAAC,aAAa,CAACC,UAAO,EAAE,IAAI,CAAC;AAC9C,YAAY,MAAM,KAAK,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,wCAAwC,EAAE;AACzG,gBAAgB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,+CAA+C,EAAE;AACzG,oBAAoB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAAI,WAAW,CAAC;AACzF,oBAAoB,KAAK,CAAC,aAAa,CAACL,SAAM,EAAE,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE;AAC/H,wBAAwB,KAAK,CAAC,aAAa,CAACM,kBAAY,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACzE,gBAAgB,KAAK,CAAC,aAAa,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,uBAAuB,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AACpS,YAAY,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,wCAAwC,EAAE;AAC9F,gBAAgB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,+CAA+C,EAAE;AACzG,oBAAoB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,WAAW,CAAC;AACxF,oBAAoB,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa,CAACN,SAAM,EAAE,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;AACzL,gBAAgB,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,cAAc,EAAE,CAAC;AAC5T,gBAAgB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,2CAA2C,EAAE,EAAE,MAAM;AAC3G,sBAAsB,CAAC,CAAC,yBAAyB,CAAC,IAAI,uBAAuB;AAC7E,sBAAsB,CAAC,CAAC,uBAAuB,CAAC,IAAI,6BAA6B,CAAC,CAAC,CAAC;AACpF,QAAQ,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,sCAAsC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE;AACpI,YAAY,KAAK,CAAC,aAAa,CAACO,eAAS,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5D,EAAE;AACF,WAAW,CAAC,WAAW,GAAG,aAAa;;AC9G3B,MAAC,aAAa,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,SAAS,GAAG,KAAK;AAC/H,IAAI,QAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,gCAAgC,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,EAAE;AAC1G,QAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,0CAA0C,EAAE;AAC5F,YAAY,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,4CAA4C,EAAE;AAClG,gBAAgB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,wCAAwC,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC;AAC/I,gBAAgB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,uCAAuC,EAAE,EAAE,WAAW,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,6BAA6B,CAAC,CAAC;AAClK,YAAY,KAAK,CAAC,aAAa,CAACP,SAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,UAAU,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;AAClK,EAAE;AACF,aAAa,CAAC,WAAW,GAAG,eAAe;;ACR/B,MAAC,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG,EAAE,SAAS,GAAG,GAAG,EAAE,SAAS,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,KAAK;AACrI,IAAI,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGN,cAAQ,CAAC,KAAK,CAAC,CAAC;AACxD,IAAI,MAAM,eAAe,GAAGc,YAAM,CAAC,IAAI,CAAC,CAAC;AACzC,IAAIX,eAAS,CAAC,MAAM;AACpB,QAAQ,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK;AACvC,YAAY,IAAI,CAAC,UAAU;AAC3B,gBAAgB,OAAO;AACvB,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;AACpF,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;AACvF,YAAY,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAC/C,gBAAgB,MAAM,CAAC,WAAW,CAAC;AACnC,oBAAoB,aAAa,EAAE;AACnC,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,KAAK,EAAE,QAAQ;AACvC,wBAAwB,MAAM,EAAE,SAAS;AACzC,qBAAqB;AACrB,iBAAiB,EAAE,GAAG,CAAC,CAAC;AACxB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,MAAM,aAAa,GAAG,MAAM;AACpC,YAAY,aAAa,CAAC,KAAK,CAAC,CAAC;AACjC,SAAS,CAAC;AACV,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AAClE,YAAY,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC9D,SAAS;AACT,QAAQ,OAAO,MAAM;AACrB,YAAY,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACrE,YAAY,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACjE,SAAS,CAAC;AACV,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/D,IAAI,QAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,kCAAkC,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,EAAE;AAC5G,QAAQ,QAAQ;AAChB,QAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,0CAA0C,EAAE,UAAU,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK;AACvK,gBAAgB,CAAC,CAAC,cAAc,EAAE,CAAC;AACnC,gBAAgB,aAAa,CAAC,IAAI,CAAC,CAAC;AACpC,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE,IAAI,IAAI,KAAK,CAAC,aAAa,CAACY,sBAAgB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5I,EAAE;AACF,eAAe,CAAC,WAAW,GAAG,iBAAiB;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}
|