@fayz-ai/plugin-financial 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/FinancialContext.d.ts +44 -0
- package/dist/FinancialContext.d.ts.map +1 -0
- package/dist/FinancialPage.d.ts +18 -0
- package/dist/FinancialPage.d.ts.map +1 -0
- package/dist/components/FinancialGeneralSettings.d.ts +3 -0
- package/dist/components/FinancialGeneralSettings.d.ts.map +1 -0
- package/dist/components/FinancialOnboarding.d.ts +5 -0
- package/dist/components/FinancialOnboarding.d.ts.map +1 -0
- package/dist/components/FinancialSettings.d.ts +8 -0
- package/dist/components/FinancialSettings.d.ts.map +1 -0
- package/dist/components/PaymentModal.d.ts +8 -0
- package/dist/components/PaymentModal.d.ts.map +1 -0
- package/dist/data/index.d.ts +3 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/mock.d.ts +9 -0
- package/dist/data/mock.d.ts.map +1 -0
- package/dist/data/supabase.d.ts +3 -0
- package/dist/data/supabase.d.ts.map +1 -0
- package/dist/data/types.d.ts +27 -0
- package/dist/data/types.d.ts.map +1 -0
- package/dist/index.cjs +4937 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +91 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4930 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/tenant.d.ts +3 -0
- package/dist/lib/tenant.d.ts.map +1 -0
- package/dist/locales/en.d.ts +2 -0
- package/dist/locales/en.d.ts.map +1 -0
- package/dist/locales/index.d.ts +2 -0
- package/dist/locales/index.d.ts.map +1 -0
- package/dist/locales/pt-BR.d.ts +2 -0
- package/dist/locales/pt-BR.d.ts.map +1 -0
- package/dist/registries.d.ts +3 -0
- package/dist/registries.d.ts.map +1 -0
- package/dist/store.d.ts +38 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/types.d.ts +302 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/views/CardsView.d.ts +3 -0
- package/dist/views/CardsView.d.ts.map +1 -0
- package/dist/views/CashRegistersView.d.ts +3 -0
- package/dist/views/CashRegistersView.d.ts.map +1 -0
- package/dist/views/CommissionsView.d.ts +3 -0
- package/dist/views/CommissionsView.d.ts.map +1 -0
- package/dist/views/InvoiceDetailView.d.ts +9 -0
- package/dist/views/InvoiceDetailView.d.ts.map +1 -0
- package/dist/views/InvoiceFormView.d.ts +13 -0
- package/dist/views/InvoiceFormView.d.ts.map +1 -0
- package/dist/views/InvoiceListView.d.ts +8 -0
- package/dist/views/InvoiceListView.d.ts.map +1 -0
- package/dist/views/PayablesView.d.ts +7 -0
- package/dist/views/PayablesView.d.ts.map +1 -0
- package/dist/views/ReceivablesView.d.ts +7 -0
- package/dist/views/ReceivablesView.d.ts.map +1 -0
- package/dist/views/StatementsView.d.ts +3 -0
- package/dist/views/StatementsView.d.ts.map +1 -0
- package/dist/views/SummaryView.d.ts +9 -0
- package/dist/views/SummaryView.d.ts.map +1 -0
- package/dist/views/dashboardWidgets.d.ts +11 -0
- package/dist/views/dashboardWidgets.d.ts.map +1 -0
- package/package.json +55 -0
- package/src/FinancialContext.tsx +47 -0
- package/src/FinancialPage.tsx +261 -0
- package/src/README.md +155 -0
- package/src/components/FinancialGeneralSettings.tsx +26 -0
- package/src/components/FinancialOnboarding.tsx +87 -0
- package/src/components/FinancialSettings.tsx +31 -0
- package/src/components/PaymentModal.tsx +322 -0
- package/src/data/index.ts +2 -0
- package/src/data/mock.ts +520 -0
- package/src/data/supabase.ts +509 -0
- package/src/data/types.ts +53 -0
- package/src/index.ts +307 -0
- package/src/lib/tenant.ts +3 -0
- package/src/locales/en.ts +331 -0
- package/src/locales/index.ts +7 -0
- package/src/locales/pt-BR.ts +331 -0
- package/src/migrations/001_financial_base.sql +109 -0
- package/src/migrations/002_chart_of_accounts.sql +28 -0
- package/src/migrations/003_card_brands.sql +12 -0
- package/src/migrations/004_order_to_cash.sql +164 -0
- package/src/migrations/005_seed_defaults.sql +38 -0
- package/src/registries.ts +305 -0
- package/src/store.ts +221 -0
- package/src/types.ts +359 -0
- package/src/views/CardsView.tsx +74 -0
- package/src/views/CashRegistersView.tsx +597 -0
- package/src/views/CommissionsView.tsx +18 -0
- package/src/views/InvoiceDetailView.tsx +595 -0
- package/src/views/InvoiceFormView.tsx +900 -0
- package/src/views/InvoiceListView.tsx +177 -0
- package/src/views/PayablesView.tsx +37 -0
- package/src/views/ReceivablesView.tsx +37 -0
- package/src/views/StatementsView.tsx +123 -0
- package/src/views/SummaryView.tsx +12 -0
- package/src/views/dashboardWidgets.tsx +191 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { formatCurrency, type CurrencyConfig, type EntityLookupMap, type EntityLookup } from '@fayz-ai/saas';
|
|
2
|
+
import type { FinancialPluginLabels, ItemTypeOption } from './index';
|
|
3
|
+
import type { FinancialDataProvider } from './data/types';
|
|
4
|
+
import type { FinancialUIState } from './store';
|
|
5
|
+
export interface FinancialModules {
|
|
6
|
+
payables: boolean;
|
|
7
|
+
receivables: boolean;
|
|
8
|
+
cashRegisters: boolean;
|
|
9
|
+
statements: boolean;
|
|
10
|
+
commissions: boolean;
|
|
11
|
+
cards: boolean;
|
|
12
|
+
}
|
|
13
|
+
export type FinancialCurrency = CurrencyConfig;
|
|
14
|
+
export interface LocationOption {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
isHQ?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface ResolvedFinancialConfig {
|
|
20
|
+
modules: FinancialModules;
|
|
21
|
+
labels: FinancialPluginLabels;
|
|
22
|
+
currency: FinancialCurrency;
|
|
23
|
+
itemTypes: ItemTypeOption[];
|
|
24
|
+
enableServiceExecution: boolean;
|
|
25
|
+
contactEntity: {
|
|
26
|
+
archetypeKind: string;
|
|
27
|
+
label: string;
|
|
28
|
+
};
|
|
29
|
+
locations: LocationOption[];
|
|
30
|
+
entityLookups: EntityLookupMap;
|
|
31
|
+
contactLookup?: EntityLookup;
|
|
32
|
+
onBookingClick?: (orderId: string) => void;
|
|
33
|
+
}
|
|
34
|
+
export declare const FinancialContextProvider: import("react").FC<{
|
|
35
|
+
config: ResolvedFinancialConfig;
|
|
36
|
+
provider: FinancialDataProvider;
|
|
37
|
+
store: import("zustand").StoreApi<FinancialUIState>;
|
|
38
|
+
children?: React.ReactNode;
|
|
39
|
+
}>;
|
|
40
|
+
export declare const useFinancialConfig: () => ResolvedFinancialConfig;
|
|
41
|
+
export declare const useFinancialProvider: () => FinancialDataProvider;
|
|
42
|
+
export declare const useFinancialStore: <T>(selector: (state: FinancialUIState) => T) => T;
|
|
43
|
+
export { formatCurrency };
|
|
44
|
+
//# sourceMappingURL=FinancialContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FinancialContext.d.ts","sourceRoot":"","sources":["../src/FinancialContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AACjI,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAM/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAA;AAE9C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,gBAAgB,CAAA;IACzB,MAAM,EAAE,qBAAqB,CAAA;IAC7B,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,aAAa,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACvD,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,aAAa,EAAE,eAAe,CAAA;IAC9B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC3C;AAID,eAAO,MAAM,wBAAwB;;;;;EAAsB,CAAA;AAC3D,eAAO,MAAM,kBAAkB,+BAAgB,CAAA;AAC/C,eAAO,MAAM,oBAAoB,6BAAkB,CAAA;AACnD,eAAO,MAAM,iBAAiB,oDAAe,CAAA;AAE7C,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { StoreApi } from 'zustand/vanilla';
|
|
3
|
+
import { type ResolvedFinancialConfig } from './FinancialContext';
|
|
4
|
+
import type { FinancialDataProvider } from './data/types';
|
|
5
|
+
import type { FinancialUIState } from './store';
|
|
6
|
+
import type { PluginRegistryDef } from '@fayz-ai/core';
|
|
7
|
+
export interface ViewIntent {
|
|
8
|
+
view: string;
|
|
9
|
+
mode?: 'list' | 'new' | 'edit' | 'detail';
|
|
10
|
+
editId?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function FinancialPage({ config, provider, store, registries }: {
|
|
13
|
+
config: ResolvedFinancialConfig;
|
|
14
|
+
provider: FinancialDataProvider;
|
|
15
|
+
store: StoreApi<FinancialUIState>;
|
|
16
|
+
registries?: PluginRegistryDef[];
|
|
17
|
+
}): React.JSX.Element;
|
|
18
|
+
//# sourceMappingURL=FinancialPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FinancialPage.d.ts","sourceRoot":"","sources":["../src/FinancialPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG/C,OAAO,EAA4B,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,eAAe,CAAA;AAgBzE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AA4GD,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;IACrE,MAAM,EAAE,uBAAuB,CAAA;IAC/B,QAAQ,EAAE,qBAAqB,CAAA;IAC/B,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAA;CACjC,qBAwHA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FinancialGeneralSettings.d.ts","sourceRoot":"","sources":["../../src/components/FinancialGeneralSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,wBAAgB,wBAAwB,sBAqBvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FinancialOnboarding.d.ts","sourceRoot":"","sources":["../../src/components/FinancialOnboarding.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAYvC,wBAAgB,mBAAmB,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,qBA0E7E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PluginRegistryDef } from '@fayz-ai/core';
|
|
3
|
+
export declare function FinancialSettings({ registries, routeBase, onClose }: {
|
|
4
|
+
registries: PluginRegistryDef[];
|
|
5
|
+
routeBase: string;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
}): React.JSX.Element;
|
|
8
|
+
//# sourceMappingURL=FinancialSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FinancialSettings.d.ts","sourceRoot":"","sources":["../../src/components/FinancialSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAGtD,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;IACpE,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,qBAoBA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { FinancialMovement } from '../types';
|
|
3
|
+
export declare function PaymentModal({ movement, onClose, onPaid }: {
|
|
4
|
+
movement: FinancialMovement;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
onPaid: () => void;
|
|
7
|
+
}): React.ReactPortal;
|
|
8
|
+
//# sourceMappingURL=PaymentModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaymentModal.d.ts","sourceRoot":"","sources":["../../src/components/PaymentModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAQ3D,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,UAAU,CAAA;AA6BpE,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAC1D,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB,qBAwRA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,QAAQ,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FinancialDataProvider } from './types';
|
|
2
|
+
export interface MockFinancialProviderOptions {
|
|
3
|
+
paymentMethodTypes?: Array<{
|
|
4
|
+
name: string;
|
|
5
|
+
transactionType?: string;
|
|
6
|
+
}>;
|
|
7
|
+
}
|
|
8
|
+
export declare function createMockFinancialProvider(options?: MockFinancialProviderOptions): FinancialDataProvider;
|
|
9
|
+
//# sourceMappingURL=mock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/data/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AA2HpD,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACvE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,4BAA4B,GAAG,qBAAqB,CAwYzG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/data/supabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAkHpD,wBAAgB,+BAA+B,IAAI,qBAAqB,CA0YvE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Invoice, InvoiceItem, FinancialMovement, BankAccount, CashSession, PaymentMethod, PaymentMethodType, ChartOfAccountsNode, CardTransaction, CreateInvoiceInput, PayMovementInput, OpenCashSessionInput, CloseCashSessionInput, CreateBankAccountInput, InvoiceQuery, MovementQuery, StatementQuery, PaginatedResult, FinancialSummary, StatementEntry, CashSessionSummary, DateRange } from '../types';
|
|
2
|
+
export interface FinancialDataProvider {
|
|
3
|
+
getInvoices(query: InvoiceQuery): Promise<PaginatedResult<Invoice>>;
|
|
4
|
+
getInvoiceById(id: string): Promise<Invoice | null>;
|
|
5
|
+
getInvoiceItems(invoiceId: string): Promise<InvoiceItem[]>;
|
|
6
|
+
createInvoice(input: CreateInvoiceInput): Promise<Invoice>;
|
|
7
|
+
updateInvoice(id: string, data: Partial<Invoice>): Promise<Invoice>;
|
|
8
|
+
cancelInvoice(id: string): Promise<void>;
|
|
9
|
+
getMovements(query: MovementQuery): Promise<PaginatedResult<FinancialMovement>>;
|
|
10
|
+
payMovement(input: PayMovementInput): Promise<FinancialMovement>;
|
|
11
|
+
cancelMovement(id: string): Promise<void>;
|
|
12
|
+
getBankAccounts(): Promise<BankAccount[]>;
|
|
13
|
+
createBankAccount(data: CreateBankAccountInput): Promise<BankAccount>;
|
|
14
|
+
updateBankAccount(id: string, data: Partial<BankAccount>): Promise<BankAccount>;
|
|
15
|
+
getCashSessions(bankAccountId?: string): Promise<CashSession[]>;
|
|
16
|
+
getOpenSession(bankAccountId: string): Promise<CashSession | null>;
|
|
17
|
+
openCashSession(input: OpenCashSessionInput): Promise<CashSession>;
|
|
18
|
+
closeCashSession(input: CloseCashSessionInput): Promise<CashSession>;
|
|
19
|
+
getCashSessionSummary(sessionId: string): Promise<CashSessionSummary>;
|
|
20
|
+
getPaymentMethods(): Promise<PaymentMethod[]>;
|
|
21
|
+
getPaymentMethodTypes(): Promise<PaymentMethodType[]>;
|
|
22
|
+
getChartOfAccounts(): Promise<ChartOfAccountsNode[]>;
|
|
23
|
+
getCardTransactions(dateRange?: DateRange): Promise<CardTransaction[]>;
|
|
24
|
+
getStatement(query: StatementQuery): Promise<StatementEntry[]>;
|
|
25
|
+
getSummary(dateRange?: DateRange): Promise<FinancialSummary>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EACpD,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAClE,eAAe,EACf,kBAAkB,EAAE,gBAAgB,EACpC,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EACnE,YAAY,EAAE,aAAa,EAAE,cAAc,EAC3C,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EACrE,SAAS,EACV,MAAM,UAAU,CAAA;AAEjB,MAAM,WAAW,qBAAqB;IAEpC,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;IACnE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IACnD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1D,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACnE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAGxC,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC/E,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAChE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAGzC,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IACzC,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACrE,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAG/E,eAAe,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAC/D,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAClE,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAClE,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACpE,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAGrE,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IAC7C,qBAAqB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;IAGrD,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAGpD,mBAAmB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;IAGtE,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAG9D,UAAU,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC7D"}
|