@phalanx-engine/client 0.1.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 +1037 -0
- package/dist/DesyncDetector.d.ts +80 -0
- package/dist/DesyncDetector.d.ts.map +1 -0
- package/dist/DesyncDetector.js +93 -0
- package/dist/DesyncDetector.js.map +1 -0
- package/dist/DeterministicRandom.d.ts +78 -0
- package/dist/DeterministicRandom.d.ts.map +1 -0
- package/dist/DeterministicRandom.js +122 -0
- package/dist/DeterministicRandom.js.map +1 -0
- package/dist/EventEmitter.d.ts +65 -0
- package/dist/EventEmitter.d.ts.map +1 -0
- package/dist/EventEmitter.js +102 -0
- package/dist/EventEmitter.js.map +1 -0
- package/dist/FixedMath.d.ts +22 -0
- package/dist/FixedMath.d.ts.map +1 -0
- package/dist/FixedMath.js +26 -0
- package/dist/FixedMath.js.map +1 -0
- package/dist/PhalanxClient.d.ts +335 -0
- package/dist/PhalanxClient.d.ts.map +1 -0
- package/dist/PhalanxClient.js +844 -0
- package/dist/PhalanxClient.js.map +1 -0
- package/dist/RenderLoop.d.ts +95 -0
- package/dist/RenderLoop.d.ts.map +1 -0
- package/dist/RenderLoop.js +192 -0
- package/dist/RenderLoop.js.map +1 -0
- package/dist/SocketManager.d.ts +228 -0
- package/dist/SocketManager.d.ts.map +1 -0
- package/dist/SocketManager.js +584 -0
- package/dist/SocketManager.js.map +1 -0
- package/dist/StateHasher.d.ts +76 -0
- package/dist/StateHasher.d.ts.map +1 -0
- package/dist/StateHasher.js +129 -0
- package/dist/StateHasher.js.map +1 -0
- package/dist/auth/AuthManager.d.ts +188 -0
- package/dist/auth/AuthManager.d.ts.map +1 -0
- package/dist/auth/AuthManager.js +462 -0
- package/dist/auth/AuthManager.js.map +1 -0
- package/dist/auth/adapters/GoogleOAuthAdapter.d.ts +164 -0
- package/dist/auth/adapters/GoogleOAuthAdapter.d.ts.map +1 -0
- package/dist/auth/adapters/GoogleOAuthAdapter.js +521 -0
- package/dist/auth/adapters/GoogleOAuthAdapter.js.map +1 -0
- package/dist/auth/index.d.ts +45 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +54 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/storage.d.ts +56 -0
- package/dist/auth/storage.d.ts.map +1 -0
- package/dist/auth/storage.js +78 -0
- package/dist/auth/storage.js.map +1 -0
- package/dist/auth/types.d.ts +212 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +7 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/index.d.ts +70 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +83 -0
- package/dist/index.js.map +1 -0
- package/dist/recovery/BrowserLifecycle.d.ts +33 -0
- package/dist/recovery/BrowserLifecycle.d.ts.map +1 -0
- package/dist/recovery/BrowserLifecycle.js +62 -0
- package/dist/recovery/BrowserLifecycle.js.map +1 -0
- package/dist/recovery/GuestPlayerIdStore.d.ts +17 -0
- package/dist/recovery/GuestPlayerIdStore.d.ts.map +1 -0
- package/dist/recovery/GuestPlayerIdStore.js +31 -0
- package/dist/recovery/GuestPlayerIdStore.js.map +1 -0
- package/dist/recovery/KeyValueStorage.d.ts +32 -0
- package/dist/recovery/KeyValueStorage.d.ts.map +1 -0
- package/dist/recovery/KeyValueStorage.js +58 -0
- package/dist/recovery/KeyValueStorage.js.map +1 -0
- package/dist/recovery/MobileTransport.d.ts +12 -0
- package/dist/recovery/MobileTransport.d.ts.map +1 -0
- package/dist/recovery/MobileTransport.js +24 -0
- package/dist/recovery/MobileTransport.js.map +1 -0
- package/dist/recovery/NetworkQuality.d.ts +22 -0
- package/dist/recovery/NetworkQuality.d.ts.map +1 -0
- package/dist/recovery/NetworkQuality.js +35 -0
- package/dist/recovery/NetworkQuality.js.map +1 -0
- package/dist/recovery/RoomPersistence.d.ts +55 -0
- package/dist/recovery/RoomPersistence.d.ts.map +1 -0
- package/dist/recovery/RoomPersistence.js +68 -0
- package/dist/recovery/RoomPersistence.js.map +1 -0
- package/dist/recovery/RoomRecoveryController.d.ts +146 -0
- package/dist/recovery/RoomRecoveryController.d.ts.map +1 -0
- package/dist/recovery/RoomRecoveryController.js +348 -0
- package/dist/recovery/RoomRecoveryController.js.map +1 -0
- package/dist/recovery/index.d.ts +13 -0
- package/dist/recovery/index.d.ts.map +1 -0
- package/dist/recovery/index.js +8 -0
- package/dist/recovery/index.js.map +1 -0
- package/dist/types.d.ts +501 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateHasher.d.ts","sourceRoot":"","sources":["../src/StateHasher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAe;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAa;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEhD,OAAO,CAAC,IAAI,CAAS;;IAMrB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAiB3B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7B;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAW9B;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAM7B;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAQnC;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAQrC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAMlB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAKb;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,WAAW;CAG7B"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StateHasher - Deterministic state hasher using FNV-1a algorithm
|
|
3
|
+
*
|
|
4
|
+
* Works only with primitives - game-agnostic by design.
|
|
5
|
+
* Games use this to hash their own state structure.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const hash = new StateHasher()
|
|
10
|
+
* .addInt(tick)
|
|
11
|
+
* .addInt(entityCount)
|
|
12
|
+
* .addFloat(entity.x)
|
|
13
|
+
* .addFloat(entity.y)
|
|
14
|
+
* .addString(entity.state)
|
|
15
|
+
* .finalize();
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export class StateHasher {
|
|
19
|
+
static FNV_OFFSET = 2166136261n;
|
|
20
|
+
static FNV_PRIME = 16777619n;
|
|
21
|
+
static FLOAT_PRECISION = 10000; // 4 decimal places
|
|
22
|
+
hash;
|
|
23
|
+
constructor() {
|
|
24
|
+
this.hash = StateHasher.FNV_OFFSET;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Add an integer to the hash
|
|
28
|
+
* @param value - Integer value to hash
|
|
29
|
+
* @returns this (for chaining)
|
|
30
|
+
*/
|
|
31
|
+
addInt(value) {
|
|
32
|
+
// Ensure integer
|
|
33
|
+
const int = Math.floor(value) | 0;
|
|
34
|
+
// Hash each byte (32-bit integer = 4 bytes)
|
|
35
|
+
this.hash ^= BigInt(int & 0xff);
|
|
36
|
+
this.hash *= StateHasher.FNV_PRIME;
|
|
37
|
+
this.hash ^= BigInt((int >> 8) & 0xff);
|
|
38
|
+
this.hash *= StateHasher.FNV_PRIME;
|
|
39
|
+
this.hash ^= BigInt((int >> 16) & 0xff);
|
|
40
|
+
this.hash *= StateHasher.FNV_PRIME;
|
|
41
|
+
this.hash ^= BigInt((int >> 24) & 0xff);
|
|
42
|
+
this.hash *= StateHasher.FNV_PRIME;
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Add a float to the hash (converted to fixed-point for determinism)
|
|
47
|
+
* @param value - Float value to hash
|
|
48
|
+
* @returns this (for chaining)
|
|
49
|
+
*/
|
|
50
|
+
addFloat(value) {
|
|
51
|
+
// Convert to fixed-point integer for determinism across browsers
|
|
52
|
+
const fixed = Math.round(value * StateHasher.FLOAT_PRECISION);
|
|
53
|
+
return this.addInt(fixed);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Add a string to the hash
|
|
57
|
+
* @param value - String value to hash
|
|
58
|
+
* @returns this (for chaining)
|
|
59
|
+
*/
|
|
60
|
+
addString(value) {
|
|
61
|
+
for (let i = 0; i < value.length; i++) {
|
|
62
|
+
this.hash ^= BigInt(value.charCodeAt(i));
|
|
63
|
+
this.hash *= StateHasher.FNV_PRIME;
|
|
64
|
+
}
|
|
65
|
+
// Add null terminator for safety
|
|
66
|
+
this.hash ^= 0n;
|
|
67
|
+
this.hash *= StateHasher.FNV_PRIME;
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Add a boolean to the hash
|
|
72
|
+
* @param value - Boolean value to hash
|
|
73
|
+
* @returns this (for chaining)
|
|
74
|
+
*/
|
|
75
|
+
addBool(value) {
|
|
76
|
+
this.hash ^= value ? 1n : 0n;
|
|
77
|
+
this.hash *= StateHasher.FNV_PRIME;
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Add multiple integers (useful for arrays)
|
|
82
|
+
* @param values - Array of integers to hash
|
|
83
|
+
* @returns this (for chaining)
|
|
84
|
+
*/
|
|
85
|
+
addIntArray(values) {
|
|
86
|
+
this.addInt(values.length);
|
|
87
|
+
for (const v of values) {
|
|
88
|
+
this.addInt(v);
|
|
89
|
+
}
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Add multiple floats (useful for positions, etc.)
|
|
94
|
+
* @param values - Array of floats to hash
|
|
95
|
+
* @returns this (for chaining)
|
|
96
|
+
*/
|
|
97
|
+
addFloatArray(values) {
|
|
98
|
+
this.addInt(values.length);
|
|
99
|
+
for (const v of values) {
|
|
100
|
+
this.addFloat(v);
|
|
101
|
+
}
|
|
102
|
+
return this;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Finalize and get the hash as a hex string
|
|
106
|
+
* @returns 8-character hex string (32-bit hash)
|
|
107
|
+
*/
|
|
108
|
+
finalize() {
|
|
109
|
+
// Mask to 32 bits for consistent output
|
|
110
|
+
const masked = this.hash & 0xffffffffn;
|
|
111
|
+
return masked.toString(16).padStart(8, '0');
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Reset hasher to initial state (for reuse)
|
|
115
|
+
* @returns this (for chaining)
|
|
116
|
+
*/
|
|
117
|
+
reset() {
|
|
118
|
+
this.hash = StateHasher.FNV_OFFSET;
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Create a new hasher (static factory)
|
|
123
|
+
* @returns New StateHasher instance
|
|
124
|
+
*/
|
|
125
|
+
static create() {
|
|
126
|
+
return new StateHasher();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=StateHasher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateHasher.js","sourceRoot":"","sources":["../src/StateHasher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phalanx Auth Manager
|
|
3
|
+
*
|
|
4
|
+
* Central manager for OAuth authentication.
|
|
5
|
+
* Handles auth state lifecycle, coordinates adapters, manages token refresh,
|
|
6
|
+
* and persists sessions to storage.
|
|
7
|
+
*/
|
|
8
|
+
import type { AuthResult, AuthState, AuthUser, CallbackParams, DiscordOAuthConfig, GoogleOAuthConfig, LoginOptions, SteamAuthConfig } from './types.js';
|
|
9
|
+
import type { AuthStorage } from './storage.js';
|
|
10
|
+
/**
|
|
11
|
+
* Configuration for AuthManager.
|
|
12
|
+
*/
|
|
13
|
+
export interface AuthManagerConfig {
|
|
14
|
+
/** OAuth provider to use */
|
|
15
|
+
provider: 'google' | 'discord' | 'steam';
|
|
16
|
+
/** Google OAuth configuration (required if provider is 'google') */
|
|
17
|
+
google?: GoogleOAuthConfig;
|
|
18
|
+
/** Discord OAuth configuration (required if provider is 'discord') */
|
|
19
|
+
discord?: DiscordOAuthConfig;
|
|
20
|
+
/** Steam auth configuration (required if provider is 'steam') */
|
|
21
|
+
steam?: SteamAuthConfig;
|
|
22
|
+
/** Auto-refresh tokens before expiry (default: true) */
|
|
23
|
+
autoRefresh?: boolean;
|
|
24
|
+
/** Refresh tokens this many ms before expiry (default: 60000 = 1 minute) */
|
|
25
|
+
refreshBeforeExpiryMs?: number;
|
|
26
|
+
/** Storage key prefix (default: 'phalanx_auth') */
|
|
27
|
+
storageKey?: string;
|
|
28
|
+
/** Custom storage implementation */
|
|
29
|
+
storage?: AuthStorage;
|
|
30
|
+
/** Enable debug logging */
|
|
31
|
+
debug?: boolean;
|
|
32
|
+
/** Callback when auth state changes */
|
|
33
|
+
onAuthStateChange?: (state: AuthState) => void;
|
|
34
|
+
/** Callback when token is refreshed */
|
|
35
|
+
onTokenRefresh?: (newToken: string) => void;
|
|
36
|
+
/** Callback when auth error occurs */
|
|
37
|
+
onAuthError?: (error: Error) => void;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Main authentication manager.
|
|
41
|
+
*
|
|
42
|
+
* Provides a simple API for OAuth authentication with automatic
|
|
43
|
+
* token refresh, session persistence, and state management.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const auth = new AuthManager({
|
|
48
|
+
* provider: 'google',
|
|
49
|
+
* google: {
|
|
50
|
+
* clientId: 'your-client-id.apps.googleusercontent.com'
|
|
51
|
+
* },
|
|
52
|
+
* onAuthStateChange: (state) => {
|
|
53
|
+
* console.log('Auth state changed:', state);
|
|
54
|
+
* }
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* // Check for existing session on app startup
|
|
58
|
+
* const hasSession = await auth.checkSession();
|
|
59
|
+
*
|
|
60
|
+
* if (!hasSession) {
|
|
61
|
+
* // Redirect to login
|
|
62
|
+
* auth.login();
|
|
63
|
+
* // Or use popup
|
|
64
|
+
* const result = await auth.loginWithPopup();
|
|
65
|
+
* }
|
|
66
|
+
*
|
|
67
|
+
* // Get token for Phalanx client
|
|
68
|
+
* const token = auth.getToken();
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare class AuthManager {
|
|
72
|
+
private adapter;
|
|
73
|
+
private storage;
|
|
74
|
+
private config;
|
|
75
|
+
private state;
|
|
76
|
+
private refreshTimer?;
|
|
77
|
+
/**
|
|
78
|
+
* Create a new AuthManager.
|
|
79
|
+
* @param config - Auth manager configuration
|
|
80
|
+
*/
|
|
81
|
+
constructor(config: AuthManagerConfig);
|
|
82
|
+
/**
|
|
83
|
+
* Check for existing session and restore it.
|
|
84
|
+
* Call this on app startup to restore user session.
|
|
85
|
+
*
|
|
86
|
+
* @returns True if a valid session was restored
|
|
87
|
+
*/
|
|
88
|
+
checkSession(): Promise<boolean>;
|
|
89
|
+
/**
|
|
90
|
+
* Start login flow using redirect.
|
|
91
|
+
* User will be redirected to the OAuth provider.
|
|
92
|
+
*
|
|
93
|
+
* @param options - Optional login options
|
|
94
|
+
*/
|
|
95
|
+
login(options?: LoginOptions): void;
|
|
96
|
+
/**
|
|
97
|
+
* Prepare PKCE and redirect to OAuth provider.
|
|
98
|
+
*/
|
|
99
|
+
private prepareAndRedirect;
|
|
100
|
+
/**
|
|
101
|
+
* Start login flow using popup.
|
|
102
|
+
* Better UX as user stays on the game page.
|
|
103
|
+
*
|
|
104
|
+
* @param options - Optional login options
|
|
105
|
+
* @returns Auth result after popup flow completes
|
|
106
|
+
*/
|
|
107
|
+
loginWithPopup(options?: LoginOptions): Promise<AuthResult>;
|
|
108
|
+
/**
|
|
109
|
+
* Handle OAuth callback.
|
|
110
|
+
* Call this on your callback page.
|
|
111
|
+
*
|
|
112
|
+
* @param params - Callback parameters (parsed from URL if not provided)
|
|
113
|
+
* @returns Auth result
|
|
114
|
+
*/
|
|
115
|
+
handleCallback(params?: CallbackParams): Promise<AuthResult>;
|
|
116
|
+
/**
|
|
117
|
+
* Logout and clear session.
|
|
118
|
+
* Optionally revokes the token with the provider.
|
|
119
|
+
*/
|
|
120
|
+
logout(): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Get current auth state.
|
|
123
|
+
* @returns Copy of current auth state
|
|
124
|
+
*/
|
|
125
|
+
getState(): AuthState;
|
|
126
|
+
/**
|
|
127
|
+
* Get current token (for Phalanx client).
|
|
128
|
+
* @returns Current auth token or null
|
|
129
|
+
*/
|
|
130
|
+
getToken(): string | null;
|
|
131
|
+
/**
|
|
132
|
+
* Check if user is authenticated.
|
|
133
|
+
* @returns True if user is authenticated
|
|
134
|
+
*/
|
|
135
|
+
isAuthenticated(): boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Get current user info.
|
|
138
|
+
* @returns User info or null
|
|
139
|
+
*/
|
|
140
|
+
getUser(): AuthUser | null;
|
|
141
|
+
/**
|
|
142
|
+
* Get the OAuth provider name.
|
|
143
|
+
* @returns Provider name
|
|
144
|
+
*/
|
|
145
|
+
getProvider(): string;
|
|
146
|
+
/**
|
|
147
|
+
* Manually refresh the current token.
|
|
148
|
+
* @returns True if refresh was successful
|
|
149
|
+
*/
|
|
150
|
+
refreshToken(): Promise<boolean>;
|
|
151
|
+
/**
|
|
152
|
+
* Get the login URL without redirecting.
|
|
153
|
+
* Useful for custom login UI.
|
|
154
|
+
*
|
|
155
|
+
* @param options - Optional login options
|
|
156
|
+
* @returns Authorization URL
|
|
157
|
+
*/
|
|
158
|
+
getLoginUrl(options?: LoginOptions): string;
|
|
159
|
+
/**
|
|
160
|
+
* Create the appropriate adapter based on configuration.
|
|
161
|
+
*/
|
|
162
|
+
private createAdapter;
|
|
163
|
+
/**
|
|
164
|
+
* Handle successful authentication.
|
|
165
|
+
*/
|
|
166
|
+
private handleAuthSuccess;
|
|
167
|
+
/**
|
|
168
|
+
* Schedule automatic token refresh.
|
|
169
|
+
*/
|
|
170
|
+
private scheduleTokenRefresh;
|
|
171
|
+
/**
|
|
172
|
+
* Update state and notify listeners.
|
|
173
|
+
*/
|
|
174
|
+
private updateState;
|
|
175
|
+
/**
|
|
176
|
+
* Get initial auth state.
|
|
177
|
+
*/
|
|
178
|
+
private getInitialState;
|
|
179
|
+
/**
|
|
180
|
+
* Parse OAuth callback parameters from current URL.
|
|
181
|
+
*/
|
|
182
|
+
private parseCallbackFromUrl;
|
|
183
|
+
/**
|
|
184
|
+
* Log debug message if debug mode is enabled.
|
|
185
|
+
*/
|
|
186
|
+
private log;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=AuthManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthManager.d.ts","sourceRoot":"","sources":["../../src/auth/AuthManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAEV,UAAU,EACV,SAAS,EACT,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EAEhB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAQhD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAEzC,oEAAoE;IACpE,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B,sEAAsE;IACtE,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAE7B,iEAAiE;IACjE,KAAK,CAAC,EAAE,eAAe,CAAC;IAExB,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,4EAA4E;IAC5E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,oCAAoC;IACpC,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAE/C,uCAAuC;IACvC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE5C,sCAAsC;IACtC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACtC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,YAAY,CAAC,CAAgC;IAErD;;;OAGG;gBACS,MAAM,EAAE,iBAAiB;IAoBrC;;;;;OAKG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAgDtC;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAOnC;;OAEG;YACW,kBAAkB;IAgBhC;;;;;;OAMG;IACG,cAAc,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAuEjE;;;;;;OAMG;IACG,cAAc,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAyBlE;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B7B;;;OAGG;IACH,QAAQ,IAAI,SAAS;IAIrB;;;OAGG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB;;;OAGG;IACH,eAAe,IAAI,OAAO;IAI1B;;;OAGG;IACH,OAAO,IAAI,QAAQ,GAAG,IAAI;IAI1B;;;OAGG;IACH,WAAW,IAAI,MAAM;IAIrB;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAmBtC;;;;;;OAMG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IAQ3C;;OAEG;IACH,OAAO,CAAC,aAAa;IA6BrB;;OAEG;YACW,iBAAiB;IAsC/B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ"}
|