nostr-core 0.7.0 → 0.9.0
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 +15 -3
- package/dist/blossom.d.ts +122 -0
- package/dist/blossom.d.ts.map +1 -0
- package/dist/blossom.js +237 -0
- package/dist/blossom.js.map +1 -0
- package/dist/bolt11.d.ts +78 -0
- package/dist/bolt11.d.ts.map +1 -0
- package/dist/bolt11.js +296 -0
- package/dist/bolt11.js.map +1 -0
- package/dist/index.d.ts +14 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/nip58.d.ts +29 -49
- package/dist/nip58.d.ts.map +1 -1
- package/dist/nip58.js +119 -88
- package/dist/nip58.js.map +1 -1
- package/dist/nip60.d.ts +132 -0
- package/dist/nip60.d.ts.map +1 -0
- package/dist/nip60.js +256 -0
- package/dist/nip60.js.map +1 -0
- package/dist/nwc.d.ts +4 -3
- package/dist/nwc.d.ts.map +1 -1
- package/dist/nwc.js +51 -64
- package/dist/nwc.js.map +1 -1
- package/dist/rss.d.ts +108 -0
- package/dist/rss.d.ts.map +1 -0
- package/dist/rss.js +357 -0
- package/dist/rss.js.map +1 -0
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -3
package/dist/nip58.js
CHANGED
|
@@ -134,71 +134,147 @@ export function parseProfileBadges(event) {
|
|
|
134
134
|
return badges;
|
|
135
135
|
}
|
|
136
136
|
/**
|
|
137
|
-
* Create a badge request event template (
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
* The badge issuer can then verify the proof and award the badge.
|
|
137
|
+
* Create a kind 30058 badge request event template (addressable).
|
|
138
|
+
* The `d` tag is the badge address, ensuring one active request per badge per user.
|
|
139
|
+
* Withdrawal is done via NIP-09 deletion (kind 5).
|
|
141
140
|
*/
|
|
142
141
|
export function createBadgeRequestTemplate(request) {
|
|
143
|
-
const tags = [
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
break;
|
|
152
|
-
case 'membership':
|
|
153
|
-
tags.push(['proof', 'membership', request.proof.groupId, request.proof.membershipEventId]);
|
|
154
|
-
break;
|
|
142
|
+
const tags = [
|
|
143
|
+
['d', request.badgeAddress],
|
|
144
|
+
['a', request.badgeAddress, ...(request.relayUrl ? [request.relayUrl] : [])],
|
|
145
|
+
['p', request.issuerPubkey],
|
|
146
|
+
];
|
|
147
|
+
if (request.proofs) {
|
|
148
|
+
for (const proof of request.proofs) {
|
|
149
|
+
tags.push(['proof', proof]);
|
|
155
150
|
}
|
|
156
151
|
}
|
|
157
152
|
return {
|
|
158
|
-
kind:
|
|
153
|
+
kind: 30058,
|
|
159
154
|
tags,
|
|
160
155
|
content: request.content ?? '',
|
|
161
156
|
created_at: Math.floor(Date.now() / 1000),
|
|
162
157
|
};
|
|
163
158
|
}
|
|
164
159
|
/**
|
|
165
|
-
*
|
|
160
|
+
* Create and sign a badge request event.
|
|
161
|
+
*/
|
|
162
|
+
export function createBadgeRequestEvent(request, secretKey) {
|
|
163
|
+
return finalizeEvent(createBadgeRequestTemplate(request), secretKey);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Parse a kind 30058 badge request event.
|
|
166
167
|
*/
|
|
167
168
|
export function parseBadgeRequest(event) {
|
|
168
|
-
|
|
169
|
+
let badgeAddress = '';
|
|
170
|
+
let issuerPubkey = '';
|
|
171
|
+
let relayUrl;
|
|
172
|
+
const proofs = [];
|
|
169
173
|
for (const tag of event.tags) {
|
|
170
|
-
|
|
171
|
-
|
|
174
|
+
switch (tag[0]) {
|
|
175
|
+
case 'd':
|
|
176
|
+
badgeAddress = tag[1] ?? '';
|
|
177
|
+
break;
|
|
178
|
+
case 'a':
|
|
179
|
+
if (!badgeAddress && tag[1])
|
|
180
|
+
badgeAddress = tag[1];
|
|
181
|
+
if (tag[2])
|
|
182
|
+
relayUrl = tag[2];
|
|
183
|
+
break;
|
|
184
|
+
case 'p':
|
|
185
|
+
issuerPubkey = tag[1] ?? '';
|
|
186
|
+
break;
|
|
187
|
+
case 'proof':
|
|
188
|
+
if (tag[1])
|
|
189
|
+
proofs.push(tag[1]);
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
172
192
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
193
|
+
return {
|
|
194
|
+
badgeAddress,
|
|
195
|
+
issuerPubkey,
|
|
196
|
+
...(proofs.length > 0 ? { proofs } : {}),
|
|
197
|
+
...(event.content ? { content: event.content } : {}),
|
|
198
|
+
...(relayUrl ? { relayUrl } : {}),
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Create a kind 30059 badge denial event template (addressable).
|
|
203
|
+
* The `d` tag is the request event id, ensuring one denial per request.
|
|
204
|
+
* Revocation is done via NIP-09 deletion (kind 5).
|
|
205
|
+
*/
|
|
206
|
+
export function createBadgeDenialTemplate(denial) {
|
|
207
|
+
return {
|
|
208
|
+
kind: 30059,
|
|
209
|
+
tags: [
|
|
210
|
+
['d', denial.requestEventId],
|
|
211
|
+
['a', denial.badgeAddress, ...(denial.relayUrl ? [denial.relayUrl] : [])],
|
|
212
|
+
['e', denial.requestEventId, ...(denial.relayUrl ? [denial.relayUrl] : [])],
|
|
213
|
+
['p', denial.requesterPubkey],
|
|
214
|
+
],
|
|
215
|
+
content: denial.reason ?? '',
|
|
216
|
+
created_at: Math.floor(Date.now() / 1000),
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Create and sign a badge denial event.
|
|
221
|
+
*/
|
|
222
|
+
export function createBadgeDenialEvent(denial, secretKey) {
|
|
223
|
+
return finalizeEvent(createBadgeDenialTemplate(denial), secretKey);
|
|
179
224
|
}
|
|
180
225
|
/**
|
|
181
|
-
*
|
|
226
|
+
* Parse a kind 30059 badge denial event.
|
|
182
227
|
*/
|
|
183
|
-
export function
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
228
|
+
export function parseBadgeDenial(event) {
|
|
229
|
+
let requestEventId = '';
|
|
230
|
+
let badgeAddress = '';
|
|
231
|
+
let requesterPubkey = '';
|
|
232
|
+
let relayUrl;
|
|
233
|
+
for (const tag of event.tags) {
|
|
234
|
+
switch (tag[0]) {
|
|
235
|
+
case 'd':
|
|
236
|
+
requestEventId = tag[1] ?? '';
|
|
237
|
+
break;
|
|
238
|
+
case 'a':
|
|
239
|
+
badgeAddress = tag[1] ?? '';
|
|
240
|
+
if (tag[2])
|
|
241
|
+
relayUrl = tag[2];
|
|
242
|
+
break;
|
|
243
|
+
case 'p':
|
|
244
|
+
requesterPubkey = tag[1] ?? '';
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
196
247
|
}
|
|
248
|
+
return {
|
|
249
|
+
requestEventId,
|
|
250
|
+
badgeAddress,
|
|
251
|
+
requesterPubkey,
|
|
252
|
+
...(event.content ? { reason: event.content } : {}),
|
|
253
|
+
...(relayUrl ? { relayUrl } : {}),
|
|
254
|
+
};
|
|
197
255
|
}
|
|
198
256
|
/**
|
|
199
|
-
*
|
|
257
|
+
* Resolve the state of a badge request.
|
|
258
|
+
* Priority: Fulfilled (kind 8 award exists) > Denied (kind 30059 exists) > Pending.
|
|
200
259
|
*/
|
|
201
|
-
export
|
|
260
|
+
export function resolveBadgeRequestState(requestEvent, badgeAwards, badgeDenials) {
|
|
261
|
+
const badgeAddress = requestEvent.tags.find(t => t[0] === 'd')?.[1] ?? '';
|
|
262
|
+
const requesterPubkey = requestEvent.pubkey;
|
|
263
|
+
// 1. Check for fulfillment — kind 8 award from issuer to requester for this badge
|
|
264
|
+
const fulfilled = badgeAwards.some(award => award.kind === 8 &&
|
|
265
|
+
award.tags.some(t => t[0] === 'a' && t[1] === badgeAddress) &&
|
|
266
|
+
award.tags.some(t => t[0] === 'p' && t[1] === requesterPubkey));
|
|
267
|
+
if (fulfilled)
|
|
268
|
+
return 'fulfilled';
|
|
269
|
+
// 2. Check for denial — kind 30059 referencing this request
|
|
270
|
+
const denied = badgeDenials.some(denial => denial.kind === 30059 &&
|
|
271
|
+
denial.tags.some(t => t[0] === 'e' && t[1] === requestEvent.id));
|
|
272
|
+
if (denied)
|
|
273
|
+
return 'denied';
|
|
274
|
+
// 3. Otherwise pending
|
|
275
|
+
return 'pending';
|
|
276
|
+
}
|
|
277
|
+
// ── Badge Utilities ────────────────────────────────────────────────────
|
|
202
278
|
/**
|
|
203
279
|
* Validate that a badge award event references the correct badge definition.
|
|
204
280
|
*/
|
|
@@ -211,54 +287,9 @@ export function validateBadgeAward(award, definition) {
|
|
|
211
287
|
const defIdentifier = definition.tags.find(t => t[0] === 'd')?.[1];
|
|
212
288
|
if (!defIdentifier)
|
|
213
289
|
return false;
|
|
214
|
-
// Address format: kind:pubkey:identifier
|
|
215
290
|
const expectedAddress = `30009:${definition.pubkey}:${defIdentifier}`;
|
|
216
291
|
return awardAddress === expectedAddress;
|
|
217
292
|
}
|
|
218
|
-
/**
|
|
219
|
-
* Create a badge acceptance event template (kind 8434).
|
|
220
|
-
* Published by the badge issuer to accept a badge request and implicitly award.
|
|
221
|
-
*/
|
|
222
|
-
export function createBadgeAcceptanceTemplate(acceptance) {
|
|
223
|
-
return {
|
|
224
|
-
kind: 8434,
|
|
225
|
-
tags: [
|
|
226
|
-
['e', acceptance.requestEventId],
|
|
227
|
-
['a', acceptance.badgeAddress],
|
|
228
|
-
['p', acceptance.recipientPubkey],
|
|
229
|
-
],
|
|
230
|
-
content: '',
|
|
231
|
-
created_at: Math.floor(Date.now() / 1000),
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Create and sign a badge acceptance event.
|
|
236
|
-
*/
|
|
237
|
-
export function createBadgeAcceptanceEvent(acceptance, secretKey) {
|
|
238
|
-
return finalizeEvent(createBadgeAcceptanceTemplate(acceptance), secretKey);
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Create a badge rejection event template (kind 8435).
|
|
242
|
-
* Published by the badge issuer to reject a badge request.
|
|
243
|
-
*/
|
|
244
|
-
export function createBadgeRejectionTemplate(rejection) {
|
|
245
|
-
return {
|
|
246
|
-
kind: 8435,
|
|
247
|
-
tags: [
|
|
248
|
-
['e', rejection.requestEventId],
|
|
249
|
-
['a', rejection.badgeAddress],
|
|
250
|
-
],
|
|
251
|
-
content: rejection.reason ?? '',
|
|
252
|
-
created_at: Math.floor(Date.now() / 1000),
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Create and sign a badge rejection event.
|
|
257
|
-
*/
|
|
258
|
-
export function createBadgeRejectionEvent(rejection, secretKey) {
|
|
259
|
-
return finalizeEvent(createBadgeRejectionTemplate(rejection), secretKey);
|
|
260
|
-
}
|
|
261
|
-
// ── Badge Utility: Build address from definition ───────────────────────
|
|
262
293
|
/**
|
|
263
294
|
* Build a badge address string (`30009:pubkey:identifier`) from a badge definition event.
|
|
264
295
|
*/
|
package/dist/nip58.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nip58.js","sourceRoot":"","sources":["../src/nip58.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"nip58.js","sourceRoot":"","sources":["../src/nip58.ts"],"names":[],"mappings":"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"}
|
package/dist/nip60.d.ts
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { type NostrEvent, type EventTemplate } from './event.js';
|
|
2
|
+
export declare const WALLET_KIND = 17375;
|
|
3
|
+
export declare const TOKEN_KIND = 7375;
|
|
4
|
+
export declare const HISTORY_KIND = 7376;
|
|
5
|
+
export declare const QUOTE_KIND = 7374;
|
|
6
|
+
/** A single Cashu proof (token unit). */
|
|
7
|
+
export type CashuProof = {
|
|
8
|
+
id: string;
|
|
9
|
+
amount: number;
|
|
10
|
+
secret: string;
|
|
11
|
+
C: string;
|
|
12
|
+
};
|
|
13
|
+
/** Decrypted content of a kind 7375 token event. */
|
|
14
|
+
export type CashuToken = {
|
|
15
|
+
mint: string;
|
|
16
|
+
proofs: CashuProof[];
|
|
17
|
+
unit?: string;
|
|
18
|
+
del?: string[];
|
|
19
|
+
};
|
|
20
|
+
/** Decrypted content of a kind 17375 wallet event. */
|
|
21
|
+
export type CashuWallet = {
|
|
22
|
+
privkey: string;
|
|
23
|
+
mints: string[];
|
|
24
|
+
};
|
|
25
|
+
/** An event reference inside a history entry. */
|
|
26
|
+
export type CashuHistoryRef = {
|
|
27
|
+
id: string;
|
|
28
|
+
relay?: string;
|
|
29
|
+
marker: 'created' | 'destroyed' | 'redeemed';
|
|
30
|
+
};
|
|
31
|
+
/** Decrypted content of a kind 7376 history event. */
|
|
32
|
+
export type CashuHistory = {
|
|
33
|
+
direction: 'in' | 'out';
|
|
34
|
+
amount: string;
|
|
35
|
+
unit: string;
|
|
36
|
+
events: CashuHistoryRef[];
|
|
37
|
+
};
|
|
38
|
+
/** Parameters for a kind 7374 quote event. */
|
|
39
|
+
export type CashuQuote = {
|
|
40
|
+
quoteId: string;
|
|
41
|
+
mint: string;
|
|
42
|
+
expiration: number;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Create a kind 17375 wallet event template (unsigned).
|
|
46
|
+
*
|
|
47
|
+
* The wallet event is a replaceable event storing the wallet's private key
|
|
48
|
+
* and mint list, NIP-44 encrypted to self.
|
|
49
|
+
*/
|
|
50
|
+
export declare function createWalletEventTemplate(wallet: CashuWallet, secretKey: Uint8Array): EventTemplate;
|
|
51
|
+
/**
|
|
52
|
+
* Create and sign a kind 17375 wallet event.
|
|
53
|
+
*/
|
|
54
|
+
export declare function createWalletEvent(wallet: CashuWallet, secretKey: Uint8Array): NostrEvent;
|
|
55
|
+
/**
|
|
56
|
+
* Decrypt and parse a kind 17375 wallet event.
|
|
57
|
+
*/
|
|
58
|
+
export declare function parseWalletEvent(event: NostrEvent, secretKey: Uint8Array): CashuWallet;
|
|
59
|
+
/**
|
|
60
|
+
* Create a kind 7375 token event template (unsigned).
|
|
61
|
+
*
|
|
62
|
+
* Each token event stores unspent Cashu proofs for a single mint,
|
|
63
|
+
* NIP-44 encrypted to self.
|
|
64
|
+
*/
|
|
65
|
+
export declare function createTokenEventTemplate(token: CashuToken, secretKey: Uint8Array): EventTemplate;
|
|
66
|
+
/**
|
|
67
|
+
* Create and sign a kind 7375 token event.
|
|
68
|
+
*/
|
|
69
|
+
export declare function createTokenEvent(token: CashuToken, secretKey: Uint8Array): NostrEvent;
|
|
70
|
+
/**
|
|
71
|
+
* Decrypt and parse a kind 7375 token event.
|
|
72
|
+
*/
|
|
73
|
+
export declare function parseTokenEvent(event: NostrEvent, secretKey: Uint8Array): CashuToken;
|
|
74
|
+
/**
|
|
75
|
+
* Create a kind 7376 spending history event template (unsigned).
|
|
76
|
+
*
|
|
77
|
+
* Records a wallet transaction. Event references with "redeemed" marker
|
|
78
|
+
* are placed in unencrypted tags; all others are NIP-44 encrypted.
|
|
79
|
+
*/
|
|
80
|
+
export declare function createHistoryEventTemplate(history: CashuHistory, secretKey: Uint8Array): EventTemplate;
|
|
81
|
+
/**
|
|
82
|
+
* Create and sign a kind 7376 spending history event.
|
|
83
|
+
*/
|
|
84
|
+
export declare function createHistoryEvent(history: CashuHistory, secretKey: Uint8Array): NostrEvent;
|
|
85
|
+
/**
|
|
86
|
+
* Decrypt and parse a kind 7376 spending history event.
|
|
87
|
+
*/
|
|
88
|
+
export declare function parseHistoryEvent(event: NostrEvent, secretKey: Uint8Array): CashuHistory;
|
|
89
|
+
/**
|
|
90
|
+
* Create a kind 7374 quote event template (unsigned).
|
|
91
|
+
*
|
|
92
|
+
* Tracks a pending mint quote while a Lightning payment is in-flight.
|
|
93
|
+
* Uses NIP-40 expiration tag.
|
|
94
|
+
*/
|
|
95
|
+
export declare function createQuoteEventTemplate(quote: CashuQuote, secretKey: Uint8Array): EventTemplate;
|
|
96
|
+
/**
|
|
97
|
+
* Create and sign a kind 7374 quote event.
|
|
98
|
+
*/
|
|
99
|
+
export declare function createQuoteEvent(quote: CashuQuote, secretKey: Uint8Array): NostrEvent;
|
|
100
|
+
/**
|
|
101
|
+
* Decrypt and parse a kind 7374 quote event.
|
|
102
|
+
*/
|
|
103
|
+
export declare function parseQuoteEvent(event: NostrEvent, secretKey: Uint8Array): CashuQuote;
|
|
104
|
+
/**
|
|
105
|
+
* Create a kind 5 deletion event template for spent token events.
|
|
106
|
+
*
|
|
107
|
+
* Per NIP-60, the deletion MUST include `["k", "7375"]` for filtering.
|
|
108
|
+
*/
|
|
109
|
+
export declare function createTokenDeleteTemplate(tokenEventIds: string[]): EventTemplate;
|
|
110
|
+
/**
|
|
111
|
+
* Create and sign a kind 5 deletion event for spent token events.
|
|
112
|
+
*/
|
|
113
|
+
export declare function createTokenDeleteEvent(tokenEventIds: string[], secretKey: Uint8Array): NostrEvent;
|
|
114
|
+
/**
|
|
115
|
+
* Build filters to fetch a user's wallet and all unspent token events.
|
|
116
|
+
*/
|
|
117
|
+
export declare function getWalletFilters(pubkey: string): {
|
|
118
|
+
kinds: number[];
|
|
119
|
+
authors: string[];
|
|
120
|
+
}[];
|
|
121
|
+
/**
|
|
122
|
+
* Build a filter to fetch a user's spending history.
|
|
123
|
+
*/
|
|
124
|
+
export declare function getHistoryFilter(pubkey: string): {
|
|
125
|
+
kinds: number[];
|
|
126
|
+
authors: string[];
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Sum the total amount of a set of Cashu proofs.
|
|
130
|
+
*/
|
|
131
|
+
export declare function getProofsBalance(proofs: CashuProof[]): number;
|
|
132
|
+
//# sourceMappingURL=nip60.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nip60.d.ts","sourceRoot":"","sources":["../src/nip60.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAK/E,eAAO,MAAM,WAAW,QAAQ,CAAA;AAChC,eAAO,MAAM,UAAU,OAAO,CAAA;AAC9B,eAAO,MAAM,YAAY,OAAO,CAAA;AAChC,eAAO,MAAM,UAAU,OAAO,CAAA;AAI9B,yCAAyC;AACzC,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,oDAAoD;AACpD,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CACf,CAAA;AAED,sDAAsD;AACtD,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAED,iDAAiD;AACjD,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAA;CAC7C,CAAA;AAED,sDAAsD;AACtD,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,IAAI,GAAG,KAAK,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,eAAe,EAAE,CAAA;CAC1B,CAAA;AAED,8CAA8C;AAC9C,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAgBD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,UAAU,GACpB,aAAa,CAWf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,UAAU,GACpB,UAAU,CAEZ;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,UAAU,GACpB,WAAW,CAYb;AAID;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,UAAU,GACpB,aAAa,CAaf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,UAAU,GACpB,UAAU,CAEZ;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,UAAU,GACpB,UAAU,CAWZ;AAID;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,UAAU,GACpB,aAAa,CAuBf;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,UAAU,GACpB,UAAU,CAEZ;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,UAAU,GACpB,YAAY,CA0Bd;AAID;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,UAAU,GACpB,aAAa,CAUf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,UAAU,GACpB,UAAU,CAEZ;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,UAAU,GACpB,UAAU,CAWZ;AAID;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,aAAa,CAUhF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EAAE,EACvB,SAAS,EAAE,UAAU,GACpB,UAAU,CAEZ;AAID;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM;;;IAK9C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM;;;EAE9C;AAID;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAE7D"}
|