@nymphjs/driver-sqlite3 1.0.0-beta.106 → 1.0.0-beta.107
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/CHANGELOG.md +7 -0
- package/dist/SQLite3Driver.d.ts +12 -2
- package/dist/SQLite3Driver.js +143 -54
- package/dist/SQLite3Driver.js.map +1 -1
- package/dist/SQLite3Driver.test.js +5 -0
- package/dist/SQLite3Driver.test.js.map +1 -1
- package/package.json +12 -11
- package/src/SQLite3Driver.test.ts +7 -0
- package/src/SQLite3Driver.ts +252 -65
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.0.0-beta.107](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.106...v1.0.0-beta.107) (2026-02-13)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- move tilmeld fields into columns in entities tables ([5f46048](https://github.com/sciactive/nymphjs/commit/5f46048c3e04839ca9a8b81f71a950b9086d0a41))
|
|
11
|
+
- update packages and fix all new issues ([0e9d17c](https://github.com/sciactive/nymphjs/commit/0e9d17c6e2db12c11bdfb559031719c1b52b5fa1))
|
|
12
|
+
|
|
6
13
|
# [1.0.0-beta.106](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.105...v1.0.0-beta.106) (2025-12-05)
|
|
7
14
|
|
|
8
15
|
### Bug Fixes
|
package/dist/SQLite3Driver.d.ts
CHANGED
|
@@ -45,6 +45,8 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
45
45
|
*/
|
|
46
46
|
isConnected(): boolean;
|
|
47
47
|
private createEntitiesTable;
|
|
48
|
+
private addTilmeldColumnsAndIndexes;
|
|
49
|
+
private createEntitiesTilmeldIndexes;
|
|
48
50
|
private createDataTable;
|
|
49
51
|
private createReferencesTable;
|
|
50
52
|
private createTokensTable;
|
|
@@ -119,6 +121,14 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
119
121
|
sdata: SerializedEntityData;
|
|
120
122
|
etype: string;
|
|
121
123
|
}): Promise<void>;
|
|
124
|
+
importEntityTilmeldAC(entity: {
|
|
125
|
+
guid: string;
|
|
126
|
+
cdate: number;
|
|
127
|
+
mdate: number;
|
|
128
|
+
tags: string[];
|
|
129
|
+
sdata: SerializedEntityData;
|
|
130
|
+
etype: string;
|
|
131
|
+
}): Promise<void>;
|
|
122
132
|
private importEntityInternal;
|
|
123
133
|
importUID({ name, value }: {
|
|
124
134
|
name: string;
|
|
@@ -131,7 +141,7 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
131
141
|
setUID(name: string, curUid: number): Promise<boolean>;
|
|
132
142
|
internalTransaction(name: string): Promise<void>;
|
|
133
143
|
startTransaction(name: string): Promise<import("@nymphjs/nymph").Nymph>;
|
|
134
|
-
needsMigration(): Promise<'json' | 'tokens' | false>;
|
|
135
|
-
liveMigration(
|
|
144
|
+
needsMigration(): Promise<'json' | 'tokens' | 'tilmeldColumns' | false>;
|
|
145
|
+
liveMigration(migrationType: 'tokenTables' | 'tilmeldColumns'): Promise<void>;
|
|
136
146
|
}
|
|
137
147
|
export {};
|
package/dist/SQLite3Driver.js
CHANGED
|
@@ -179,10 +179,25 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
179
179
|
}
|
|
180
180
|
createEntitiesTable(etype) {
|
|
181
181
|
// Create the entity table.
|
|
182
|
-
this.queryRun(`CREATE TABLE IF NOT EXISTS ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("guid" CHARACTER(24) PRIMARY KEY, "tags" TEXT, "cdate" REAL NOT NULL, "mdate" REAL NOT NULL);`);
|
|
182
|
+
this.queryRun(`CREATE TABLE IF NOT EXISTS ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("guid" CHARACTER(24) PRIMARY KEY, "tags" TEXT, "cdate" REAL NOT NULL, "mdate" REAL NOT NULL, "user" CHARACTER(24), "group" CHARACTER(24), "acUser" INT(1), "acGroup" INT(1), "acOther" INT(1), "acRead" TEXT, "acWrite" TEXT, "acFull" TEXT);`);
|
|
183
183
|
this.queryRun(`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(`${this.prefix}entities_${etype}_id_cdate`)} ON ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("cdate");`);
|
|
184
184
|
this.queryRun(`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(`${this.prefix}entities_${etype}_id_mdate`)} ON ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("mdate");`);
|
|
185
185
|
this.queryRun(`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(`${this.prefix}entities_${etype}_id_tags`)} ON ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("tags");`);
|
|
186
|
+
this.createEntitiesTilmeldIndexes(etype);
|
|
187
|
+
}
|
|
188
|
+
addTilmeldColumnsAndIndexes(etype) {
|
|
189
|
+
this.queryRun(`ALTER TABLE ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ADD COLUMN "user" CHARACTER(24), ADD COLUMN "group" CHARACTER(24), ADD COLUMN "acUser" INT(1), ADD COLUMN "acGroup" INT(1), ADD COLUMN "acOther" INT(1), ADD COLUMN "acRead" TEXT, ADD COLUMN "acWrite" TEXT, ADD COLUMN "acFull" TEXT;`);
|
|
190
|
+
this.createEntitiesTilmeldIndexes(etype);
|
|
191
|
+
}
|
|
192
|
+
createEntitiesTilmeldIndexes(etype) {
|
|
193
|
+
this.queryRun(`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(`${this.prefix}entities_${etype}_id_user_acUser`)} ON ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("user", "acUser");`);
|
|
194
|
+
this.queryRun(`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(`${this.prefix}entities_${etype}_id_group_acGroup`)} ON ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("group", "acGroup");`);
|
|
195
|
+
this.queryRun(`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(`${this.prefix}entities_${etype}_id_acUser`)} ON ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("acUser");`);
|
|
196
|
+
this.queryRun(`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(`${this.prefix}entities_${etype}_id_acGroup`)} ON ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("acGroup");`);
|
|
197
|
+
this.queryRun(`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(`${this.prefix}entities_${etype}_id_acOther`)} ON ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("acOther");`);
|
|
198
|
+
this.queryRun(`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(`${this.prefix}entities_${etype}_id_acRead`)} ON ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("acRead");`);
|
|
199
|
+
this.queryRun(`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(`${this.prefix}entities_${etype}_id_acWrite`)} ON ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("acWrite");`);
|
|
200
|
+
this.queryRun(`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(`${this.prefix}entities_${etype}_id_acFull`)} ON ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("acFull");`);
|
|
186
201
|
}
|
|
187
202
|
createDataTable(etype) {
|
|
188
203
|
// Create the data table.
|
|
@@ -1651,14 +1666,17 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
1651
1666
|
return result?.cur_uid ?? null;
|
|
1652
1667
|
}
|
|
1653
1668
|
async importEntity(entity) {
|
|
1654
|
-
return await this.importEntityInternal(entity
|
|
1669
|
+
return await this.importEntityInternal(entity);
|
|
1655
1670
|
}
|
|
1656
1671
|
async importEntityTokens(entity) {
|
|
1657
|
-
return await this.importEntityInternal(entity,
|
|
1672
|
+
return await this.importEntityInternal(entity, { only: 'tokens' });
|
|
1673
|
+
}
|
|
1674
|
+
async importEntityTilmeldAC(entity) {
|
|
1675
|
+
return await this.importEntityInternal(entity, { only: 'tilmeldAC' });
|
|
1658
1676
|
}
|
|
1659
|
-
async importEntityInternal({ guid, cdate, mdate, tags, sdata, etype, },
|
|
1677
|
+
async importEntityInternal({ guid, cdate, mdate, tags, sdata, etype, }, { only = undefined } = {}) {
|
|
1660
1678
|
try {
|
|
1661
|
-
if (
|
|
1679
|
+
if (only == null) {
|
|
1662
1680
|
this.queryRun(`DELETE FROM ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} WHERE "guid"=@guid;`, {
|
|
1663
1681
|
etypes: [etype],
|
|
1664
1682
|
params: {
|
|
@@ -1678,13 +1696,15 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
1678
1696
|
},
|
|
1679
1697
|
});
|
|
1680
1698
|
}
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1699
|
+
if (only == null || only === 'tokens') {
|
|
1700
|
+
this.queryRun(`DELETE FROM ${SQLite3Driver.escape(`${this.prefix}tokens_${etype}`)} WHERE "guid"=@guid;`, {
|
|
1701
|
+
etypes: [etype],
|
|
1702
|
+
params: {
|
|
1703
|
+
guid,
|
|
1704
|
+
},
|
|
1705
|
+
});
|
|
1706
|
+
}
|
|
1707
|
+
if (only == null) {
|
|
1688
1708
|
this.queryRun(`DELETE FROM ${SQLite3Driver.escape(`${this.prefix}uniques_${etype}`)} WHERE "guid"=@guid;`, {
|
|
1689
1709
|
etypes: [etype],
|
|
1690
1710
|
params: {
|
|
@@ -1692,14 +1712,23 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
1692
1712
|
},
|
|
1693
1713
|
});
|
|
1694
1714
|
}
|
|
1695
|
-
if (
|
|
1696
|
-
|
|
1715
|
+
if (only == null) {
|
|
1716
|
+
let { user, group, acUser, acGroup, acOther, acRead, acWrite, acFull } = this.removeAndReturnACValues(etype, {}, sdata);
|
|
1717
|
+
this.queryRun(`INSERT INTO ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("guid", "tags", "cdate", "mdate", "user", "group", "acUser", "acGroup", "acOther", "acRead", "acWrite", "acFull") VALUES (@guid, @tags, @cdate, @mdate, @user, @group, @acUser, @acGroup, @acOther, @acRead, @acWrite, @acFull);`, {
|
|
1697
1718
|
etypes: [etype],
|
|
1698
1719
|
params: {
|
|
1699
1720
|
guid,
|
|
1700
1721
|
tags: ',' + tags.join(',') + ',',
|
|
1701
1722
|
cdate,
|
|
1702
1723
|
mdate,
|
|
1724
|
+
user,
|
|
1725
|
+
group,
|
|
1726
|
+
acUser,
|
|
1727
|
+
acGroup,
|
|
1728
|
+
acOther,
|
|
1729
|
+
acRead: acRead && ',' + acRead.join(',') + ',',
|
|
1730
|
+
acWrite: acWrite && ',' + acWrite.join(',') + ',',
|
|
1731
|
+
acFull: acFull && ',' + acFull.join(',') + ',',
|
|
1703
1732
|
},
|
|
1704
1733
|
});
|
|
1705
1734
|
for (const name in sdata) {
|
|
@@ -1739,45 +1768,64 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
1739
1768
|
}
|
|
1740
1769
|
}
|
|
1741
1770
|
}
|
|
1771
|
+
if (only === 'tilmeldAC') {
|
|
1772
|
+
let { user, group, acUser, acGroup, acOther, acRead, acWrite, acFull } = this.removeAndReturnACValues(etype, {}, sdata);
|
|
1773
|
+
this.queryRun(`UPDATE OR IGNORE ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} SET "user"=@user, "group"=@group, "acUser"=@acUser, "acGroup"=@acGroup, "acOther"=@acOther, "acRead"=@acRead, "acWrite"=@acWrite, "acFull"=@acFull WHERE "guid"=@guid;`, {
|
|
1774
|
+
etypes: [etype],
|
|
1775
|
+
params: {
|
|
1776
|
+
user,
|
|
1777
|
+
group,
|
|
1778
|
+
acUser,
|
|
1779
|
+
acGroup,
|
|
1780
|
+
acOther,
|
|
1781
|
+
acRead: acRead && ',' + acRead.join(',') + ',',
|
|
1782
|
+
acWrite: acWrite && ',' + acWrite.join(',') + ',',
|
|
1783
|
+
acFull: acFull && ',' + acFull.join(',') + ',',
|
|
1784
|
+
guid,
|
|
1785
|
+
},
|
|
1786
|
+
});
|
|
1787
|
+
}
|
|
1742
1788
|
const EntityClass = this.nymph.getEntityClassByEtype(etype);
|
|
1743
|
-
|
|
1744
|
-
let
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1789
|
+
if (only == null || only === 'tokens') {
|
|
1790
|
+
for (let name in sdata) {
|
|
1791
|
+
let tokenString = null;
|
|
1792
|
+
try {
|
|
1793
|
+
tokenString = EntityClass.getFTSText(name, JSON.parse(sdata[name]));
|
|
1794
|
+
}
|
|
1795
|
+
catch (e) {
|
|
1796
|
+
// Ignore error.
|
|
1797
|
+
}
|
|
1798
|
+
if (tokenString != null) {
|
|
1799
|
+
const tokens = this.tokenizer.tokenize(tokenString);
|
|
1800
|
+
while (tokens.length) {
|
|
1801
|
+
const currentTokens = tokens.splice(0, 100);
|
|
1802
|
+
const params = {
|
|
1803
|
+
guid,
|
|
1804
|
+
name,
|
|
1805
|
+
};
|
|
1806
|
+
const values = [];
|
|
1807
|
+
for (let i = 0; i < currentTokens.length; i++) {
|
|
1808
|
+
const token = currentTokens[i];
|
|
1809
|
+
params['token' + i] = token.token;
|
|
1810
|
+
params['position' + i] = token.position;
|
|
1811
|
+
params['stem' + i] = token.stem ? 1 : 0;
|
|
1812
|
+
values.push('(@guid, @name, @token' +
|
|
1813
|
+
i +
|
|
1814
|
+
', @position' +
|
|
1815
|
+
i +
|
|
1816
|
+
', @stem' +
|
|
1817
|
+
i +
|
|
1818
|
+
')');
|
|
1819
|
+
}
|
|
1820
|
+
this.queryRun(`INSERT INTO ${SQLite3Driver.escape(`${this.prefix}tokens_${etype}`)} ("guid", "name", "token", "position", "stem") VALUES ${values.join(', ')};`, {
|
|
1821
|
+
etypes: [etype],
|
|
1822
|
+
params,
|
|
1823
|
+
});
|
|
1772
1824
|
}
|
|
1773
|
-
this.queryRun(`INSERT INTO ${SQLite3Driver.escape(`${this.prefix}tokens_${etype}`)} ("guid", "name", "token", "position", "stem") VALUES ${values.join(', ')};`, {
|
|
1774
|
-
etypes: [etype],
|
|
1775
|
-
params,
|
|
1776
|
-
});
|
|
1777
1825
|
}
|
|
1778
1826
|
}
|
|
1779
1827
|
}
|
|
1780
|
-
if (
|
|
1828
|
+
if (only == null) {
|
|
1781
1829
|
const uniques = await EntityClass.getUniques({
|
|
1782
1830
|
guid,
|
|
1783
1831
|
cdate,
|
|
@@ -2007,12 +2055,21 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2007
2055
|
Object.keys(sdata).length === 0) {
|
|
2008
2056
|
return false;
|
|
2009
2057
|
}
|
|
2010
|
-
|
|
2058
|
+
let { user, group, acUser, acGroup, acOther, acRead, acWrite, acFull, } = this.removeAndReturnACValues(etype, data, sdata);
|
|
2059
|
+
this.queryRun(`INSERT INTO ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} ("guid", "tags", "cdate", "mdate", "user", "group", "acUser", "acGroup", "acOther", "acRead", "acWrite", "acFull") VALUES (@guid, @tags, @cdate, @cdate, @user, @group, @acUser, @acGroup, @acOther, @acRead, @acWrite, @acFull);`, {
|
|
2011
2060
|
etypes: [etype],
|
|
2012
2061
|
params: {
|
|
2013
2062
|
guid,
|
|
2014
2063
|
tags: ',' + tags.join(',') + ',',
|
|
2015
2064
|
cdate,
|
|
2065
|
+
user,
|
|
2066
|
+
group,
|
|
2067
|
+
acUser,
|
|
2068
|
+
acGroup,
|
|
2069
|
+
acOther,
|
|
2070
|
+
acRead: acRead && ',' + acRead.join(',') + ',',
|
|
2071
|
+
acWrite: acWrite && ',' + acWrite.join(',') + ',',
|
|
2072
|
+
acFull: acFull && ',' + acFull.join(',') + ',',
|
|
2016
2073
|
},
|
|
2017
2074
|
});
|
|
2018
2075
|
insertData(guid, data, sdata, uniques, etype);
|
|
@@ -2022,11 +2079,20 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2022
2079
|
Object.keys(sdata).length === 0) {
|
|
2023
2080
|
return false;
|
|
2024
2081
|
}
|
|
2025
|
-
|
|
2082
|
+
let { user, group, acUser, acGroup, acOther, acRead, acWrite, acFull, } = this.removeAndReturnACValues(etype, data, sdata);
|
|
2083
|
+
const info = this.queryRun(`UPDATE ${SQLite3Driver.escape(`${this.prefix}entities_${etype}`)} SET "tags"=@tags, "mdate"=@mdate, "user"=@user, "group"=@group, "acUser"=@acUser, "acGroup"=@acGroup, "acOther"=@acOther, "acRead"=@acRead, "acWrite"=@acWrite, "acFull"=@acFull WHERE "guid"=@guid AND "mdate" <= @emdate;`, {
|
|
2026
2084
|
etypes: [etype],
|
|
2027
2085
|
params: {
|
|
2028
2086
|
tags: ',' + tags.join(',') + ',',
|
|
2029
2087
|
mdate,
|
|
2088
|
+
user,
|
|
2089
|
+
group,
|
|
2090
|
+
acUser,
|
|
2091
|
+
acGroup,
|
|
2092
|
+
acOther,
|
|
2093
|
+
acRead: acRead && ',' + acRead.join(',') + ',',
|
|
2094
|
+
acWrite: acWrite && ',' + acWrite.join(',') + ',',
|
|
2095
|
+
acFull: acFull && ',' + acFull.join(',') + ',',
|
|
2030
2096
|
guid,
|
|
2031
2097
|
emdate: Number(entity.mdate),
|
|
2032
2098
|
},
|
|
@@ -2142,12 +2208,35 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2142
2208
|
if (!table2 || !table2.name) {
|
|
2143
2209
|
return 'tokens';
|
|
2144
2210
|
}
|
|
2211
|
+
const table3 = this.queryGet("SELECT `name` FROM `sqlite_master` WHERE `type`='table' AND `name` LIKE @prefix LIMIT 1;", {
|
|
2212
|
+
params: {
|
|
2213
|
+
prefix: this.prefix + 'entities_' + '%',
|
|
2214
|
+
},
|
|
2215
|
+
});
|
|
2216
|
+
if (table3?.name) {
|
|
2217
|
+
const result = this.queryGet("SELECT 1 AS `exists` FROM pragma_table_info(@table) WHERE `name`='user';", {
|
|
2218
|
+
params: {
|
|
2219
|
+
table: table3.name,
|
|
2220
|
+
},
|
|
2221
|
+
});
|
|
2222
|
+
if (!result?.exists) {
|
|
2223
|
+
return 'tilmeldColumns';
|
|
2224
|
+
}
|
|
2225
|
+
}
|
|
2145
2226
|
return false;
|
|
2146
2227
|
}
|
|
2147
|
-
async liveMigration(
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2228
|
+
async liveMigration(migrationType) {
|
|
2229
|
+
if (migrationType === 'tokenTables') {
|
|
2230
|
+
const etypes = await this.getEtypes();
|
|
2231
|
+
for (let etype of etypes) {
|
|
2232
|
+
this.createTokensTable(etype);
|
|
2233
|
+
}
|
|
2234
|
+
}
|
|
2235
|
+
else if (migrationType === 'tilmeldColumns') {
|
|
2236
|
+
const etypes = await this.getEtypes();
|
|
2237
|
+
for (let etype of etypes) {
|
|
2238
|
+
this.addTilmeldColumnsAndIndexes(etype);
|
|
2239
|
+
}
|
|
2151
2240
|
}
|
|
2152
2241
|
}
|
|
2153
2242
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLite3Driver.js","sourceRoot":"","sources":["../src/SQLite3Driver.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAOrC,OAAO,EACL,WAAW,EAUX,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,GAAG,GACJ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAEL,2BAA2B,IAAI,QAAQ,GACxC,MAAM,iBAAiB,CAAC;AAEzB,MAAM,aAAa;IACV,IAAI,CAAmB;IACvB,SAAS,CAAoB;IAC7B,SAAS,GAAY,KAAK,CAAC;IAC3B,mBAAmB,GAAG,CAAC,CAAC;IAE/B,YAAY,IAAsB;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IAC7C,MAAM,CAAsB;IACzB,MAAM,CAAS;IACzB,iFAAiF;IACvE,KAAK,CAAgB;IAE/B,MAAM,CAAC,MAAM,CAAC,KAAa;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,sBAAsB,CAC9B,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAAa;QAC9B,OAAO,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IACrD,CAAC;IAED,YAAY,MAAoC,EAAE,KAAqB;QACrE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACjC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK;QACV,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACI,OAAO;QACZ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACvC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,aAAa;QACb,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAErB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAEO,QAAQ,CAAC,KAAc;QAC7B,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GACrE,IAAI,CAAC,MAAM,CAAC;QAEd,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,CAAC,IAAsB,EAAE,EAAE;gBAC5C,uCAAuC;gBACvC,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;gBACxC,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACtB,CAAC;gBACD,8CAA8C;gBAC9C,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC,CAChD,OAAe,EACf,OAAe,EACf,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAE7C,CAAC,CAAC;YACZ,CAAC,CAAC;YAEF,IAAI,IAAsB,CAAC;YAC3B,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;oBAC3B,QAAQ,EAAE,CAAC,aAAa,IAAI,CAAC,KAAK;oBAClC,aAAa;oBACb,OAAO;oBACP,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IACE,CAAC,CAAC,IAAI,KAAK,iBAAiB;oBAC5B,CAAC,aAAa;oBACd,CAAC,KAAK;oBACN,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAC1B,CAAC;oBACD,qEAAqE;oBACrE,YAAY;oBACZ,+BAA+B;oBAC/B,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;wBACtC,QAAQ,EAAE,KAAK;wBACf,aAAa;wBACb,OAAO;wBACP,OAAO;qBACR,CAAC,CAAC;oBACH,UAAU,CAAC,SAAS,CAAC,CAAC;oBACtB,SAAS,CAAC,KAAK,EAAE,CAAC;oBAClB,wBAAwB;oBACxB,IAAI,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;wBAC3B,QAAQ,EAAE,IAAI;wBACd,aAAa;wBACb,OAAO;wBACP,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,CAAC;gBACV,CAAC;YACH,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,IAAI,KAAK,CACb,uDAAuD,CACxD,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,KAAK,EAAE,CAAC;gBACjB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YACzB,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YAC5B,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YAC/B,CAAC;YACD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC5B,MAAM,IAAI,kBAAkB,CAC1B,uEAAuE;oBACrE,CAAC,EAAE,OAAO,CACb,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,oBAAoB,CAAC,qBAAqB,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,UAAU;QACrB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBACvD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC9C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YACnC,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,aAAa;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACI,WAAW;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IAEO,mBAAmB,CAAC,KAAa;QACvC,2BAA2B;QAC3B,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,iGAAiG,CACnG,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,WAAW,CAC3C,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,aAAa,CACf,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,WAAW,CAC3C,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,aAAa,CACf,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,UAAU,CAC1C,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,YAAY,CACd,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,KAAa;QACnC,yBAAyB;QACzB,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,8CAA8C,aAAa,CAAC,MAAM,CACjE,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,8KAA8K,CAChL,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,UAAU,CACtC,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAAC,YAAY,CACxE,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,eAAe,CAC3C,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,oBAAoB,CACtB,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,UAAU,CACtC,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAAC,YAAY,CACxE,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,iBAAiB,CAC7C,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,sBAAsB,CACxB,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,iBAAiB,CAC7C,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,sBAAsB,CACxB,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,sBAAsB,CAClD,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,8BAA8B,CAChC,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,iBAAiB,CAC7C,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,sBAAsB,CACxB,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,sBAAsB,CAClD,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,8BAA8B,CAChC,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,gBAAgB,CAC5C,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,sDAAsD,CACxD,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,iBAAiB,CAC7C,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,uDAAuD,CACzD,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,iBAAiB,CAC7C,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,uDAAuD,CACzD,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,YAAY,CACxC,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,kCAAkC,CACpC,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,aAAa,CACzC,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,mCAAmC,CACrC,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,KAAa;QACzC,+BAA+B;QAC/B,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,8CAA8C,aAAa,CAAC,MAAM,CACjE,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,mIAAmI,CACrI,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,UAAU,CAC5C,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,YAAY,CACd,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,UAAU,CAC5C,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,YAAY,CACd,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,oBAAoB,CACtD,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,yBAAyB,CAC3B,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,eAAe,CACjD,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,iBAAiB,CACnB,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,eAAe,CACjD,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,oBAAoB,CACtB,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,yBAAyB,CAC3D,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,iCAAiC,CACnC,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,yBAAyB,CAC3D,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,iCAAiC,CACnC,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,yBAAyB,CAC3D,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,iCAAiC,CACnC,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,6BAA6B,CAC/D,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,+CAA+C,CACjD,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,8BAA8B,CAChE,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,gDAAgD,CAClD,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,KAAa;QACrC,2BAA2B;QAC3B,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,8CAA8C,aAAa,CAAC,MAAM,CACjE,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,uLAAuL,CACzL,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,gBAAgB,CAC9C,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,qBAAqB,CACvB,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,KAAa;QACtC,mCAAmC;QACnC,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC,8CAA8C,aAAa,CAAC,MAAM,CACjE,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,6FAA6F,CAC/F,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,QAAuB,IAAI;QAC9C,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,wBAAwB;gBACxB,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,kEAAkE,CACpE,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;YACrC,MAAM,CAAC,CAAC;QACV,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CACX,QAAW,EACX,KAAa,EACb,SAAmB,EAAE;QAErB,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YACpD,OAAO,QAAQ,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC;YAC1B,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,CAAC;YAC5B,IACE,SAAS,KAAK,cAAc;gBAC5B,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC;gBAClC,IAAI,CAAC,YAAY,EAAE,EACnB,CAAC;gBACD,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;oBACzB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;gBACD,IAAI,CAAC;oBACH,OAAO,QAAQ,EAAE,CAAC;gBACpB,CAAC;gBAAC,OAAO,EAAO,EAAE,CAAC;oBACjB,MAAM,IAAI,gBAAgB,CACxB,gBAAgB,GAAG,EAAE,EAAE,IAAI,GAAG,KAAK,GAAG,EAAE,EAAE,OAAO,EACjD,KAAK,EACL,EAAE,EAAE,IAAI,CACT,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IACL,SAAS,KAAK,0BAA0B;gBACxC,QAAQ,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAC7C,CAAC;gBACD,MAAM,IAAI,2BAA2B,CAAC,8BAA8B,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,gBAAgB,CACxB,gBAAgB,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,CAAC,EAAE,OAAO,EAC/C,KAAK,EACL,CAAC,EAAE,IAAI,CACR,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,UAAU,CAChB,KAAa,EACb,EACE,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,MAC6C,EAAE;QAE5D,OAAO,IAAI,CAAC,KAAK,CACf,GAAG,EAAE,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aACtC,OAAO,CAAC,KAAK,CAAC;aACd,OAAO,CAAC,MAAM,CAAC,EACpB,GAAG,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EACvC,MAAM,CACP,CAAC;IACJ,CAAC;IAEO,QAAQ,CACd,KAAa,EACb,EACE,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,MAC6C,EAAE;QAE5D,OAAO,IAAI,CAAC,KAAK,CACf,GAAG,EAAE,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EACtE,GAAG,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EACvC,MAAM,CACP,CAAC;IACJ,CAAC;IAEO,QAAQ,CACd,KAAa,EACb,EACE,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,MAC6C,EAAE;QAE5D,OAAO,IAAI,CAAC,KAAK,CACf,GAAG,EAAE,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EACtE,GAAG,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EACvC,MAAM,CACP,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,sBAAsB,CAC9B,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,qBAAqB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAEjC,IACE,IAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,SAAS;YACpB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAC1B,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,IAAY,EACZ,SAA6C;QAE7C,IAAI,WAA8B,CAAC;QACnC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC;YACxE,WAAW,GAAG,cAAc,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAChC,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,sBAAsB,EACvB;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,sBAAsB,EACvB;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,sBAAsB,EACvB;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,sBAAsB,EACvB;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC,sBAAsB,EACvB;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC;YACvE,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACpC,MAAM,CAAC,CAAC;QACV,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAClC,6CAA6C;QAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAY;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,sBAAsB,CAAC,wBAAwB,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,sBAAsB,EACvB;YACE,MAAM,EAAE;gBACN,IAAI;aACL;SACF,CACF,CAAC;QACF,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,KAAa;QACnC,MAAM,OAAO,GAIP,EAAE,CAAC;QAET,KAAK,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI;YAC1B,CAAC,MAAM,EAAE,OAAO,CAAC;YACjB,CAAC,YAAY,EAAE,iBAAiB,CAAC;YACjC,CAAC,QAAQ,EAAE,sBAAsB,CAAC;SAKjC,EAAE,CAAC;YACJ,MAAM,gBAAgB,GAA0B,IAAI,CAAC,UAAU,CAC7D,0FAA0F,EAC1F;gBACE,MAAM,EAAE;oBACN,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,KAAK,eAAe,MAAM,EAAE;iBAChE;aACF,CACF,CAAC;YACF,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC;oBACX,KAAK;oBACL,IAAI,EAAG,eAAe,CAAC,IAAe,CAAC,SAAS,CAC9C,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,KAAK,aAAa,CAAC,MAAM,EACnD,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAC5C;oBACD,QAAQ,EACN,CAAE,eAAe,CAAC,GAAc,CAAC,KAAK,CACpC,6BAA6B,CAC9B,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,KAAa,EACb,UAIC;QAED,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,UAAU,CAAC,IAAI,OAAO,CAChE,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,0BAA0B,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAC7E,CAAC;YACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,UAAU,CAAC,IAAI,SAAS,CAClE,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,4BAA4B,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAC/E,CAAC;YACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,UAAU,CAAC,IAAI,SAAS,CAClE,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,4BAA4B,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAC/E,CAAC;YACF,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,UAAU,CAAC,IAAI,SAAS,CAClE,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,4BAA4B,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAC/E,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,cAAc,UAAU,CAAC,IAAI,iBAAiB,CAChF,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,uCAAuC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAC1F,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,QAAQ,CACX,8BAA8B,aAAa,CAAC,MAAM,CAChD,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,cAAc,UAAU,CAAC,IAAI,sBAAsB,CACjF,OAAO,aAAa,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,+CAA+C,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAClG,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,KAAa,EACb,KAAuC,EACvC,IAAY;QAEZ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CACX,wBAAwB,aAAa,CAAC,MAAM,CAC1C,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,IAAI,OAAO,CACrD,GAAG,CACL,CAAC;YACF,IAAI,CAAC,QAAQ,CACX,wBAAwB,aAAa,CAAC,MAAM,CAC1C,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,IAAI,SAAS,CACvD,GAAG,CACL,CAAC;YACF,IAAI,CAAC,QAAQ,CACX,wBAAwB,aAAa,CAAC,MAAM,CAC1C,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,IAAI,SAAS,CACvD,GAAG,CACL,CAAC;YACF,IAAI,CAAC,QAAQ,CACX,wBAAwB,aAAa,CAAC,MAAM,CAC1C,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,IAAI,SAAS,CACvD,GAAG,CACL,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CACX,wBAAwB,aAAa,CAAC,MAAM,CAC1C,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,cAAc,IAAI,iBAAiB,CACrE,GAAG,CACL,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CACX,wBAAwB,aAAa,CAAC,MAAM,CAC1C,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,cAAc,IAAI,sBAAsB,CACtE,GAAG,CACL,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,SAAS;QACpB,MAAM,MAAM,GAA0B,IAAI,CAAC,UAAU,CACnD,kFAAkF,EAClF;YACE,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,GAAG;aACxC;SACF,CACF,CAAC;QACF,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,CAAC,kBAAkB;QAK9B,IACE,MAAM;YACJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;;;;qBAII,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE;CAC/C;SACM,EACD,CAAC;YACD,OAAO;QACT,CAAC;QAED,IACE,MAAM;YACJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;;;;;;CAMhB;SACM,EACD,CAAC;YACD,OAAO;QACT,CAAC;QAED,eAAe;QACf,IAAI,IAAI,GAA0B,IAAI,CAAC,UAAU,CAC/C,iBAAiB,aAAa,CAAC,MAAM,CACnC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,mBAAmB,CACrB,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;gBACtE,OAAO;YACT,CAAC;QACH,CAAC;QAED,IACE,MAAM;YACJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;;;;;;CAMhB;SACM,EACD,CAAC;YACD,OAAO;QACT,CAAC;QAED,kBAAkB;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,mBAAmB;YACnB,MAAM,YAAY,GAA0B,IAAI,CAAC,UAAU,CACzD,0FAA0F,aAAa,CAAC,MAAM,CAC5G,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,gBAAgB,aAAa,CAAC,MAAM,CACnC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,sCAAsC,CACxC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrB,IAAI,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChC,IAAI,mBAAmB,GAAa,EAAE,CAAC;gBACvC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC,CAAC;gBACzD,mBAAmB,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC7D,mBAAmB,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;oBAC7B,wDAAwD;oBACxD,6DAA6D;oBAC7D,GAAG,CAAC;wBACF,MAAM,KAAK,GACT,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG;4BACvB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;4BACpC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG;gCACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gCACpC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG;oCACzB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;oCAClB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;wBAC5B,mBAAmB,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;wBAC3D,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;oBAC9B,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBACrD,CAAC;qBAAM,CAAC;oBACN,yCAAyC;oBACzC,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC9B,CAAC;gBACD,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAE7B,IAAI,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oBACtE,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,eAAe,CACrB,OAAgB,EAChB,kBAAuC,EACvC,KAAa,EACb,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAChB,SAA+B,EAAE,EACjC,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,EAAE,EAChB,SAAmB,EAAE,EACrB,eAAmC,SAAS;QAE5C,IAAI,OAAO,OAAO,CAAC,KAAK,EAAE,YAAY,KAAK,UAAU,EAAE,CAAC;YACtD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAC9C,kBAAkB,EAClB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;YACtC,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC7B,QAAQ,GAAG,EAAE,CAAC;oBACZ,KAAK,MAAM,CAAC;oBACZ,KAAK,OAAO;wBACV,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;4BAC/B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,WAAW;oCACX,IAAI,CAAC;4BACP,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;wBACzB,CAAC;wBACD,MAAM;oBACR,KAAK,KAAK,CAAC;oBACX,KAAK,MAAM;wBACT,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;4BAC9B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,GAAG,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAChC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,gBAAgB;oCAChB,GAAG;oCACH,cAAc,CAAC;4BACjB,MAAM,CAAC,GAAG,CAAC;gCACT,IAAI;oCACJ,MAAM;yCACH,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;yCACrB,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;yCACnB,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;oCACtB,IAAI,CAAC;wBACT,CAAC;wBACD,MAAM;oBACR,KAAK,SAAS,CAAC;oBACf,KAAK,UAAU;wBACb,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;4BAC9B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,QAAQ;gCACN,OAAO;oCACP,UAAU;oCACV,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,yBAAyB;oCACzB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACnD,iBAAiB;oCACjB,IAAI;oCACJ,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;wBACxB,CAAC;wBACD,MAAM;oBACR,KAAK,QAAQ,CAAC;oBACd,KAAK,SAAS;wBACZ,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;4BAC9B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gCACvB,QAAQ;oCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,GAAG;wCACH,OAAO;wCACP,oBAAoB,CAAC;gCACvB,MAAM;4BACR,CAAC;iCAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gCAC9B,QAAQ;oCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,GAAG;wCACH,OAAO;wCACP,oBAAoB,CAAC;gCACvB,MAAM;4BACR,CAAC;iCAAM,CAAC;gCACN,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gCACjC,QAAQ;oCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,6BAA6B;wCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;wCACnD,gBAAgB;wCAChB,OAAO;wCACP,sBAAsB;wCACtB,IAAI;wCACJ,kBAAkB,CAAC;gCACrB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;4BACxB,CAAC;wBACH,CAAC;wBACD,MAAM;oBACR,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ;wBACX,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpC,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpC,MAAM;wBACR,CAAC;6BAAM,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;4BAC3C,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACnD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,iBAAiB;oCACjB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC;6BAAM,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;4BAC3C,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACnD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,iBAAiB;oCACjB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,IAAI,MAAc,CAAC;4BACnB,IACE,QAAQ,CAAC,CAAC,CAAC,YAAY,MAAM;gCAC7B,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,EAC7C,CAAC;gCACD,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;4BACrD,CAAC;iCAAM,CAAC;gCACN,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvC,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACnD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,qBAAqB;oCACrB,KAAK;oCACL,IAAI,CAAC;4BACP,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;wBACzB,CAAC;wBACD,MAAM;oBACR,KAAK,SAAS,CAAC;oBACf,KAAK,UAAU;wBACb,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpC,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpC,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,MAAM,kBAAkB,GAAG,eAAe,EAAE,CAAC;4BAC7C,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,IAAI,MAAc,CAAC;4BACnB,IACE,QAAQ,CAAC,CAAC,CAAC,YAAY,MAAM;gCAC7B,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,EAC7C,CAAC;gCACD,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;4BACrD,CAAC;iCAAM,CAAC;gCACN,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvC,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACnD,IAAI;oCACJ,kBAAkB;oCAClB,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,aAAa;oCACb,KAAK;oCACL,mDAAmD;oCACnD,kBAAkB;oCAClB,YAAY,CAAC;4BACf,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;wBACzB,CAAC;wBACD,MAAM;oBACR,KAAK,QAAQ,CAAC;oBACd,KAAK,SAAS;wBACZ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACvD,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,QAAQ,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;4BAC9D,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BAED,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CACpD,QAAQ,CAAC,CAAC,CAAC,CACZ,CAAC;4BAEF,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gCAC3B,QAAQ,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;4BAChE,CAAC;iCAAM,CAAC;gCACN,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gCAEjC,MAAM,cAAc,GAAG,CAAC,IAAgB,EAAE,EAAE;oCAC1C,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;oCAClC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;oCAC3B,OAAO,CACL,6BAA6B;wCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;wCACrD,gBAAgB;wCAChB,OAAO;wCACP,sBAAsB;wCACtB,IAAI;wCACJ,gBAAgB;wCAChB,KAAK;wCACL,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;wCACvC,GAAG,CACJ,CAAC;gCACJ,CAAC,CAAC;gCAEF,MAAM,eAAe,GAAG,CAAC,MAAwB,EAAE,EAAE;oCACnD,MAAM,gBAAgB,GAAG,eAAe,EAAE,CAAC;oCAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;wCAChD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;wCAClC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;wCAC5B,OAAO;4CACL,UAAU,EACR,CAAC,KAAK,CAAC;gDACL,CAAC,CAAC,OAAO;oDACP,aAAa,CAAC,MAAM,CAClB,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,CAChC;oDACD,IAAI;oDACJ,gBAAgB;oDAChB,GAAG;gDACL,CAAC,CAAC,OAAO;oDACP,aAAa,CAAC,MAAM,CAClB,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,CAChC;oDACD,IAAI;oDACJ,gBAAgB;oDAChB,CAAC;oDACD,OAAO;oDACP,gBAAgB;oDAChB,CAAC;oDACD,aAAa;oDACb,gBAAgB;oDAChB,gBAAgB;oDAChB,gBAAgB;oDAChB,CAAC;oDACD,aAAa;oDACb,gBAAgB;oDAChB,gBAAgB;oDAChB,gBAAgB;oDAChB,CAAC;oDACD,iBAAiB;oDACjB,gBAAgB;oDAChB,iBAAiB;oDACjB,CAAC;4CACP,WAAW,EACT,GAAG;gDACH,gBAAgB;gDAChB,CAAC;gDACD,YAAY;gDACZ,KAAK;gDACL,CAAC,KAAK,CAAC,SAAS;oDACd,CAAC,CAAC,QAAQ,GAAG,gBAAgB,GAAG,CAAC,GAAG,WAAW;oDAC/C,CAAC,CAAC,EAAE,CAAC;yCACV,CAAC;oCACJ,CAAC,CAAC,CAAC;oCACH,OAAO,CACL,kBAAkB;wCAClB,gBAAgB;wCAChB,WAAW;wCACX,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;wCACnD,UAAU;wCACV,gBAAgB;wCAChB,WAAW;wCACX,OAAO;wCACP,eAAe;wCACf,gBAAgB;wCAChB,YAAY;wCACZ,IAAI;wCACJ,OAAO;wCACP,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;wCACxD,GAAG,CACJ,CAAC;gCACJ,CAAC,CAAC;gCAEF,MAAM,aAAa,GAAG,CACpB,IAIoB,EACZ,EAAE;oCACV,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wCAC3B,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;oCAC/B,CAAC;yCAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;wCAC/B,OAAO,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oCAC9C,CAAC;yCAAM,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;wCAC9B,IAAI,UAAU,GAAa,EAAE,CAAC;wCAC9B,KAAK,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;4CAClC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;wCAC1C,CAAC;wCACD,OAAO,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;oCAC7C,CAAC;oCACD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;gCAC9B,CAAC,CAAC;gCAEF,uCAAuC;gCACvC,IAAI,WAAW,GAAa,EAAE,CAAC;gCAC/B,KAAK,IAAI,IAAI,IAAI,cAAc,EAAE,CAAC;oCAChC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;gCACxC,CAAC;gCAED,QAAQ;oCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,GAAG;wCACH,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;wCACzB,GAAG,CAAC;gCAEN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC7B,CAAC;wBACH,CAAC;wBACD,MAAM;oBACR,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ;wBACX,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,mBAAmB;oCACnB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,mBAAmB;oCACnB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACnD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,wBAAwB;oCACxB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC;wBACD,MAAM;oBACR,KAAK,QAAQ,CAAC;oBACd,KAAK,SAAS;wBACZ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,mBAAmB;oCACnB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,mBAAmB;oCACnB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACnD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,qCAAqC;oCACrC,KAAK;oCACL,IAAI,CAAC;4BACP,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC;wBACD,MAAM;oBACR,KAAK,MAAM,CAAC;oBACZ,KAAK,OAAO;wBACV,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,iBAAiB;oCACjB,KAAK;oCACL,eAAe,CAAC;4BAClB,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,iBAAiB;oCACjB,KAAK;oCACL,eAAe,CAAC;4BAClB,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACnD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,sBAAsB;oCACtB,KAAK;oCACL,eAAe,CAAC;4BAClB,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC;wBACD,MAAM;oBACR,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ;wBACX,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,iBAAiB;oCACjB,KAAK;oCACL,eAAe,CAAC;4BAClB,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,iBAAiB;oCACjB,KAAK;oCACL,eAAe,CAAC;4BAClB,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACnD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,mCAAmC;oCACnC,KAAK;oCACL,gBAAgB,CAAC;4BACnB,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC;wBACD,MAAM;oBACR,KAAK,IAAI,CAAC;oBACV,KAAK,KAAK;wBACR,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpC,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpC,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACnD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,iBAAiB;oCACjB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtC,CAAC;wBACD,MAAM;oBACR,KAAK,KAAK,CAAC;oBACX,KAAK,MAAM;wBACT,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,aAAa;oCACb,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpC,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,aAAa;oCACb,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpC,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACnD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,kBAAkB;oCAClB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtC,CAAC;wBACD,MAAM;oBACR,KAAK,IAAI,CAAC;oBACV,KAAK,KAAK;wBACR,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpC,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpC,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACnD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,iBAAiB;oCACjB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtC,CAAC;wBACD,MAAM;oBACR,KAAK,KAAK,CAAC;oBACX,KAAK,MAAM;wBACT,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,aAAa;oCACb,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpC,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,aAAa;oCACb,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpC,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACnD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,kBAAkB;oCAClB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtC,CAAC;wBACD,MAAM;oBACR,KAAK,KAAK,CAAC;oBACX,KAAK,MAAM;wBACT,IAAI,QAAgB,CAAC;wBACrB,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;4BACpC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACzB,CAAC;6BAAM,IAAI,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;4BACjC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBAC9B,CAAC;6BAAM,CAAC;4BACN,QAAQ,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9B,CAAC;wBACD,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC1C,CAAC;wBACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;wBACjC,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;wBACjC,QAAQ;4BACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gCACzC,6BAA6B;gCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;gCACzD,gBAAgB;gCAChB,OAAO;gCACP,sBAAsB;gCACtB,IAAI;gCACJ,oBAAoB;gCACpB,IAAI;gCACJ,GAAG,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;wBACxB,MAAM;oBACR,KAAK,UAAU,CAAC;oBAChB,KAAK,WAAW;wBACd,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CACrC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAC5C,CAAC,QAAQ,CAAC,EACV,KAAK,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,WAAW,EACX,MAAM,CACP,CAAC;wBACF,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC1C,CAAC;wBACD,QAAQ;4BACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gCACzC,GAAG;gCACH,UAAU,CAAC,KAAK;gCAChB,GAAG,CAAC;wBACN,MAAM;oBACR,KAAK,MAAM,CAAC;oBACZ,KAAK,OAAO;wBACV,MAAM,oBAAoB,GAAG,eAAe,EAAE,CAAC;wBAC/C,MAAM,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAGjD,CAAC;wBACF,MAAM,eAAe,GAAG,WAAW,CAAC,KAA0B,CAAC;wBAC/D,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBACnC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CACpC;4BACE,GAAG,WAAW;4BACd,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,IAAI;4BAC9B,MAAM,EAAE,MAAM;4BACd,KAAK,EAAE,eAAe;yBACvB,EACD,aAAa,EACb,eAAe,CAAC,KAAK,EACrB,KAAK,EACL,MAAM,EACN,KAAK,EACL,eAAe,EAAE,EACjB,MAAM,EACN,GAAG,GAAG,oBAAoB,GAAG,cAAc,CAC5C,CAAC;wBACF,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC1C,CAAC;wBACD,MAAM,QAAQ,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;wBACrC,QAAQ;4BACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gCACzC,6BAA6B;gCAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;gCACzD,IAAI;gCACJ,oBAAoB;gCACpB,UAAU;gCACV,oBAAoB;gCACpB,UAAU;gCACV,OAAO;gCACP,eAAe;gCACf,oBAAoB;gCACpB,WAAW;gCACX,QAAQ;gCACR,eAAe;gCACf,SAAS,CAAC,KAAK;gCACf,IAAI,CAAC;wBACP,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC/B,MAAM;gBACV,CAAC;YACH,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CACF,CAAC;QAEF,IAAI,MAAc,CAAC;QACnB,IAAI,WAAmB,CAAC;QACxB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,GAAG,EAAE,CAAC;YACZ,WAAW,GAAG,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,OAAO;oBACV,MAAM,GAAG,YAAY,MAAM,WAAW,KAAK,EAAE,CAAC;oBAC9C,WAAW,GAAG,YAAY,OAAO,WAAW,KAAK,EAAE,CAAC;oBACpD,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,GAAG,YAAY,MAAM,WAAW,KAAK,EAAE,CAAC;oBAC9C,WAAW,GAAG,YAAY,OAAO,WAAW,KAAK,EAAE,CAAC;oBACpD,MAAM;gBACR;oBACE,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;oBACjC,QAAQ,GAAG;;qBAEA,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;8BAC1C,IAAI;iCACD,KAAK,aAAa,KAAK;gBACxC,MAAM,iBAAiB,CAAC;oBAC9B,MAAM,GAAG,YAAY,MAAM,YAAY,KAAK,KAAK,MAAM,YAAY,KAAK,EAAE,CAAC;oBAC3E,WAAW,GAAG,MAAM,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACpB,MAAM;YACV,CAAC;QACH,CAAC;QAED,IAAI,KAAa,CAAC;QAClB,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,GAAG,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;oBACvB,KAAK,GAAG,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACxD,CAAC;gBACD,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;oBACxB,MAAM,GAAG,WAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC3D,CAAC;gBACD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/C,MAAM,UAAU,GAAG,YAAY;oBAC7B,CAAC,CAAC,GAAG,OAAO,WAAW,YAAY,OAAO;oBAC1C,CAAC,CAAC,EAAE,CAAC;gBACP,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBAC/B,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;wBACpB,KAAK,GAAG;;uBAEG,aAAa,CAAC,MAAM,CACzB,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAClC,IAAI,OAAO;wBACJ,UAAU,IAAI,WAAW,IAAI,KAAK,GAAG,MAAM;gBACnD,CAAC;oBACP,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG;qBACC,aAAa,CAAC,MAAM,CACzB,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAClC,IAAI,OAAO;sBACJ,UAAU,IAAI,WAAW,GAAG,CAAC;oBACzC,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACrC,KAAK,GAAG;mBACC,aAAa,CAAC,MAAM,CACzB,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAClC,IAAI,OAAO;cACV,QAAQ;oBACF,UAAU,IAAI,WAAW;cAC/B,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,SAAS,KAAK,GAAG,MAAM,EAAE,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,KAAK,GAAG;gBACF,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;qBACD,MAAM;gBACX,MAAM;gBACN,MAAM;mBACH,aAAa,CAAC,MAAM,CACzB,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAClC,IAAI,MAAM;wBACC,aAAa,CAAC,MAAM,CAC9B,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAC9B,IAAI,MAAM;cACT,QAAQ;;;qBAGD,aAAa,CAAC,MAAM,CACzB,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAClC,IAAI,OAAO;gBACV,QAAQ;sBACF,UAAU,IAAI,WAAW;gBAC/B,WAAW,GAAG,KAAK,GAAG,MAAM;gBAC5B,MAAM;cACR,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,SAAS,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,GAAG,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;oBACvB,KAAK,GAAG,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACxD,CAAC;gBACD,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;oBACxB,MAAM,GAAG,WAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC3D,CAAC;gBACD,MAAM,UAAU,GAAG,YAAY;oBAC7B,CAAC,CAAC,UAAU,OAAO,WAAW,YAAY,EAAE;oBAC5C,CAAC,CAAC,EAAE,CAAC;gBACP,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBAC/B,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;wBACpB,KAAK,GAAG;;uBAEG,aAAa,CAAC,MAAM,CACzB,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAClC,IAAI,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM;gBAC1C,CAAC;oBACP,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG;qBACC,aAAa,CAAC,MAAM,CACzB,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAClC,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;oBAChC,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACrC,KAAK,GAAG;mBACC,aAAa,CAAC,MAAM,CACzB,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAClC,IAAI,OAAO;cACV,QAAQ;cACR,UAAU;cACV,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,SAAS,KAAK,GAAG,MAAM,EAAE,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;wBACpB,KAAK,GAAG;kBACF,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;uBACD,MAAM;kBACX,MAAM;kBACN,MAAM;qBACH,aAAa,CAAC,MAAM,CACzB,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAClC,IAAI,MAAM;0BACC,aAAa,CAAC,MAAM,CAC9B,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAC9B,IAAI,MAAM;gBACT,QAAQ;;;uBAGD,aAAa,CAAC,MAAM,CACzB,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAClC,IAAI,OAAO;kBACV,QAAQ;kBACR,UAAU;kBACV,WAAW,GAAG,KAAK,GAAG,MAAM;kBAC5B,MAAM;gBACR,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,SAAS,CAAC;oBAC7D,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG;kBACF,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;uBACD,MAAM;kBACX,MAAM;kBACN,MAAM;qBACH,aAAa,CAAC,MAAM,CACzB,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAClC,IAAI,MAAM;0BACC,aAAa,CAAC,MAAM,CAC9B,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAC9B,IAAI,MAAM;gBACT,QAAQ;gBACR,YAAY,CAAC,CAAC,CAAC,SAAS,MAAM,WAAW,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;gBAC5D,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,SAAS,CAAC;oBAC7D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAED,OAAO;YACL,KAAK;YACL,MAAM;YACN,MAAM;SACP,CAAC;IACJ,CAAC;IAES,YAAY,CACpB,OAAgB,EAChB,kBAAuC,EACvC,KAAa;QAIb,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CACpD,OAAO,EACP,kBAAkB,EAClB,KAAK,CACN,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CACvD,MAAM,CAAC,QAAQ,CAChB,EAAE,CAAC;QACJ,OAAO;YACL,MAAM;SACP,CAAC;IACJ,CAAC;IAkBM,KAAK,CAAC,WAAW,CACtB,UAAsB,EAAE,EACxB,GAAG,SAAqB;QAIxB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB,CACjD,OAAO,EACP,SAAS,EACT,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAChC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,EAC9C,GAAG,EAAE;YACH,MAAM,IAAI,GAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACvC,CAAC,EACD,GAAG,EAAE,CAAC,SAAS,EACf,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAC1B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EACjB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACR,IAAI,EACF,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACjB,CAAC,CAAC,GAAG,CAAC,IAAI;qBACL,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACZ,KAAK,CAAC,GAAG,CAAC;qBACV,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC;gBACjC,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YACxB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;SACzB,CAAC,EACF,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACR,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EACJ,GAAG,CAAC,KAAK,KAAK,GAAG;gBACf,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC5B,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG;oBACjB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;oBAC5B,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG;wBACjB,CAAC,CAAC,GAAG,CAAC,IAAI;wBACV,CAAC,CAAC,GAAG,CAAC,KAAK;SACpB,CAAC,CACH,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,KAAK,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,MAAM,GAAQ,IAAI,CAAC,QAAQ,CAC/B,yBAAyB,aAAa,CAAC,MAAM,CAC3C,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,sBAAsB,EACvB;YACE,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI;aACX;SACF,CACF,CAAC;QACF,OAAQ,MAAM,EAAE,OAAyB,IAAI,IAAI,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,MAOzB;QACC,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,MAO/B;QACC,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,EACE,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,GAQN,EACD,UAAmB;QAEnB,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,sBAAsB,EACvB;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CAAC;gBACF,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,sBAAsB,EACvB;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CAAC;gBACF,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,sBAAsB,EACvB;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,sBAAsB,EACvB;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC,sBAAsB,EACvB;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,4EAA4E,EAC7E;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;wBACJ,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBAChC,KAAK;wBACL,KAAK;qBACN;iBACF,CACF,CAAC;gBAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,SAAS;oBACX,CAAC;oBACD,MAAM,YAAY,GAChB,OAAO,MAAM,KAAK,QAAQ;wBACxB,CAAC,CAAC,GAAG;wBACL,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ;4BAC1B,CAAC,CAAC,GAAG;4BACL,CAAC,CAAC,GAAG,CAAC;oBACZ,MAAM,SAAS,GAAG,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;oBAEtD,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,sJAAsJ,EACvJ;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;4BACJ,IAAI;4BACJ,YAAY;4BACZ,SAAS;4BACT,MAAM,EAAE,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE;4BACjD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;4BACtB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yBACvB;qBACF,CACF,CAAC;oBAEF,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAC9C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;wBACnC,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,mEAAmE,EACpE;4BACE,MAAM,EAAE,CAAC,KAAK,CAAC;4BACf,MAAM,EAAE;gCACN,IAAI;gCACJ,IAAI;gCACJ,SAAS;6BACV;yBACF,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAE5D,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,WAAW,GAAkB,IAAI,CAAC;gBACtC,IAAI,CAAC;oBACH,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtE,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,gBAAgB;gBAClB,CAAC;gBAED,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;oBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBACpD,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;wBACrB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;wBAC5C,MAAM,MAAM,GAAyB;4BACnC,IAAI;4BACJ,IAAI;yBACL,CAAC;wBACF,MAAM,MAAM,GAAa,EAAE,CAAC;wBAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;4BAC/B,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;4BAClC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;4BACxC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxC,MAAM,CAAC,IAAI,CACT,uBAAuB;gCACrB,CAAC;gCACD,aAAa;gCACb,CAAC;gCACD,SAAS;gCACT,CAAC;gCACD,GAAG,CACN,CAAC;wBACJ,CAAC;wBAED,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,yDAAyD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC9E;4BACE,MAAM,EAAE,CAAC,KAAK,CAAC;4BACf,MAAM;yBACP,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;oBAC3C,IAAI;oBACJ,KAAK;oBACL,KAAK;oBACL,IAAI;oBACJ,IAAI,EAAE,EAAE;oBACR,KAAK;iBACN,CAAC,CAAC;gBACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,IAAI,CAAC;wBACH,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC,8CAA8C,EAC/C;4BACE,MAAM,EAAE,CAAC,KAAK,CAAC;4BACf,MAAM,EAAE;gCACN,IAAI;gCACJ,MAAM;6BACP;yBACF,CACF,CAAC;oBACJ,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBAChB,IAAI,CAAC,YAAY,2BAA2B,EAAE,CAAC;4BAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAC1B,SAAS,EACT,uDAAuD,IAAI,eAAe,KAAK,OAAO,MAAM,GAAG,CAChG,CAAC;wBACJ,CAAC;wBACD,MAAM,CAAC,CAAC;oBACV,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC;YACvE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAmC;QACrE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,sBAAsB,EACvB;gBACE,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,8CAA8C,EAC/C;gBACE,MAAM,EAAE;oBACN,IAAI;oBACJ,KAAK;iBACN;aACF,CACF,CAAC;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC;YACpE,MAAM,IAAI,CAAC,QAAQ,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAuB,SAAS,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM;gBAEF,IAAI,CAAC,QAAQ,CACX,yBAAyB,aAAa,CAAC,MAAM,CAC3C,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,sBAAsB,EACvB;oBACE,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CAEJ,EAAE,OAAO,IAAI,IAAI,CAAC;YACrB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM,GAAG,CAAC,CAAC;gBACX,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,+CAA+C,EAChD;oBACE,MAAM,EAAE;wBACN,IAAI;wBACJ,MAAM;qBACP;iBACF,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC;gBACT,IAAI,CAAC,QAAQ,CACX,UAAU,aAAa,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,4CAA4C,EAC7C;oBACE,MAAM,EAAE;wBACN,MAAM;wBACN,IAAI;qBACL;iBACF,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACpC,MAAM,CAAC,CAAC;QACV,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAClC,OAAO,MAAgB,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,OAAe;QACrD,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACvC,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,CACX,UAAU,aAAa,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,6CAA6C,EAC9C;YACE,MAAM,EAAE;gBACN,OAAO;gBACP,OAAO;aACR;SACF,CACF,CAAC;QACF,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,IAAY;QAChC,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,sBAAsB,CAC9B,gDAAgD,CACjD,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,yBAAyB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAEjC,IACE,IAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,SAAS;YACpB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAC1B,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,MAAuB;QAC7C,MAAM,UAAU,GAAG,CACjB,IAAY,EACZ,IAAgB,EAChB,KAA2B,EAC3B,OAAiB,EACjB,KAAa,EACb,EAAE;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAE5D,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,KAAU,EAAE,MAAc,EAAE,EAAE;gBAClE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,OAAO;gBACT,CAAC;gBACD,MAAM,YAAY,GAChB,OAAO,KAAK,KAAK,QAAQ;oBACvB,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;wBACzB,CAAC,CAAC,GAAG;wBACL,CAAC,CAAC,GAAG,CAAC;gBACZ,MAAM,SAAS,GAAG,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;gBAEvD,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,sJAAsJ,EACvJ;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;wBACJ,IAAI;wBACJ,YAAY;wBACZ,SAAS;wBACT,MAAM,EAAE,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE;wBAChD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;wBACrB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACtB;iBACF,CACF,CAAC;gBAEF,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAC/C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACnC,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,mEAAmE,EACpE;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;4BACJ,IAAI;4BACJ,SAAS;yBACV;qBACF,CACF,CAAC;gBACJ,CAAC;gBAED,IAAI,WAAW,GAAkB,IAAI,CAAC;gBACtC,IAAI,CAAC;oBACH,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACpD,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,gBAAgB;gBAClB,CAAC;gBAED,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;oBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBACpD,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;wBACrB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;wBAC5C,MAAM,MAAM,GAAyB;4BACnC,IAAI;4BACJ,IAAI;yBACL,CAAC;wBACF,MAAM,MAAM,GAAa,EAAE,CAAC;wBAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;4BAC/B,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;4BAClC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;4BACxC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxC,MAAM,CAAC,IAAI,CACT,uBAAuB;gCACrB,CAAC;gCACD,aAAa;gCACb,CAAC;gCACD,SAAS;gCACT,CAAC;gCACD,GAAG,CACN,CAAC;wBACJ,CAAC;wBAED,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,yDAAyD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC9E;4BACE,MAAM,EAAE,CAAC,KAAK,CAAC;4BACf,MAAM;yBACP,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC,8CAA8C,EAC/C;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;4BACJ,MAAM;yBACP;qBACF,CACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,YAAY,2BAA2B,EAAE,CAAC;wBAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAC1B,SAAS,EACT,qDAAqD,IAAI,eAAe,KAAK,OAAO,MAAM,GAAG,CAC9F,CAAC;oBACJ,CAAC;oBACD,MAAM,CAAC,CAAC;gBACV,CAAC;YACH,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC;QACF,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,iBAAiB,CAC3B,MAAM,EACN,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3D,IACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;oBAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAC/B,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,4EAA4E,EAC7E;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;wBACJ,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBAChC,KAAK;qBACN;iBACF,CACF,CAAC;gBACF,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC9C,OAAO,IAAI,CAAC;YACd,CAAC,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;gBACnE,IACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;oBAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAC/B,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CACxB,UAAU,aAAa,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,8EAA8E,EAC/E;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBAChC,KAAK;wBACL,IAAI;wBACJ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC7B;iBACF,CACF,CAAC;gBACF,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,sBAAsB,EACvB;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;yBACL;qBACF,CACF,CAAC;oBACF,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,sBAAsB,EACvB;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;yBACL;qBACF,CACF,CAAC;oBACF,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,sBAAsB,EACvB;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;yBACL;qBACF,CACF,CAAC;oBACF,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC,sBAAsB,EACvB;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;yBACL;qBACF,CACF,CAAC;oBACF,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBAC9C,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,EACD,KAAK,IAAI,EAAE;gBACT,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAC1C,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC,EACD,KAAK,EAAE,OAAO,EAAE,EAAE;gBAChB,IAAI,aAAa,EAAE,CAAC;oBAClB,aAAa,GAAG,KAAK,CAAC;oBACtB,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAClC,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;YACrE,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACpC,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,MAAc;QAC9C,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,sBAAsB,EACvB;YACE,MAAM,EAAE;gBACN,IAAI;aACL;SACF,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,CACX,eAAe,aAAa,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,+CAA+C,EAChD;YACE,MAAM,EAAE;gBACN,IAAI;gBACJ,MAAM;aACP;SACF,CACF,CAAC;QACF,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,IAAY;QAC3C,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACxC,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,sBAAsB,CAC9B,6CAA6C,CAC9C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,aAAa,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,KAAK,CAAC,cAAc;QACzB,MAAM,KAAK,GAAQ,IAAI,CAAC,QAAQ,CAC9B,0FAA0F,EAC1F;YACE,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,GAAG;aACpC;SACF,CACF,CAAC;QACF,IAAI,KAAK,EAAE,IAAI,EAAE,CAAC;YAChB,MAAM,MAAM,GAAQ,IAAI,CAAC,QAAQ,CAC/B,0EAA0E,EAC1E;gBACE,MAAM,EAAE;oBACN,KAAK,EAAE,KAAK,CAAC,IAAI;iBAClB;aACF,CACF,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBACpB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAQ,IAAI,CAAC,QAAQ,CAC/B,8FAA8F,EAC9F;YACE,MAAM,EAAE;gBACN,UAAU,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,GAAG;aAC1C;SACF,CACF,CAAC;QACF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,cAA6B;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEtC,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"SQLite3Driver.js","sourceRoot":"","sources":["../src/SQLite3Driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { tmpdir } from 'node:os';
|
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
3
|
import fs from 'node:fs';
|
|
4
4
|
import { Nymph, EntitiesTest, UIDTest, ExportImportTest } from '@nymphjs/nymph';
|
|
5
|
+
import { TilmeldTest } from '@nymphjs/tilmeld/dist/testArtifacts.js';
|
|
5
6
|
import SQLite3Driver from './SQLite3Driver.js';
|
|
6
7
|
describe('SQLite3Driver In-Memory', () => {
|
|
7
8
|
const sqliteConfig = {
|
|
@@ -16,6 +17,8 @@ describe('SQLite3Driver In-Memory', () => {
|
|
|
16
17
|
EntitiesTest(nymph, it);
|
|
17
18
|
UIDTest(nymph, it);
|
|
18
19
|
ExportImportTest(nymph, it);
|
|
20
|
+
const tilmeldNymph = nymph.clone();
|
|
21
|
+
TilmeldTest(tilmeldNymph, it);
|
|
19
22
|
});
|
|
20
23
|
describe('SQLite3Driver DB File', () => {
|
|
21
24
|
const filename = resolve(tmpdir(), `nymph-test-${Date.now()}.db`);
|
|
@@ -31,6 +34,8 @@ describe('SQLite3Driver DB File', () => {
|
|
|
31
34
|
EntitiesTest(nymph, it);
|
|
32
35
|
UIDTest(nymph, it);
|
|
33
36
|
ExportImportTest(nymph, it);
|
|
37
|
+
const tilmeldNymph = nymph.clone();
|
|
38
|
+
TilmeldTest(tilmeldNymph, it);
|
|
34
39
|
it('cleans up the db', () => {
|
|
35
40
|
try {
|
|
36
41
|
fs.unlinkSync(filename);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLite3Driver.test.js","sourceRoot":"","sources":["../src/SQLite3Driver.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"SQLite3Driver.test.js","sourceRoot":"","sources":["../src/SQLite3Driver.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAErE,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,MAAM,YAAY,GAAG;QACnB,QAAQ,EAAE,UAAU;QACpB,aAAa,EAAE,IAAI;KACpB,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;IAE7D,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/B,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1B,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IACD,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE5B,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IACnC,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG;QACnB,QAAQ;QACR,aAAa,EAAE,IAAI;KACpB,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;IAE7D,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/B,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1B,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IACD,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE5B,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IACnC,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAE9B,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,gBAAgB;QAClB,CAAC;QACD,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,gBAAgB;QAClB,CAAC;QACD,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,gBAAgB;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nymphjs/driver-sqlite3",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.107",
|
|
4
4
|
"description": "Nymph.js - SQLite3 DB Driver",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -31,19 +31,20 @@
|
|
|
31
31
|
},
|
|
32
32
|
"license": "Apache-2.0",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@nymphjs/guid": "^1.0.0-beta.
|
|
35
|
-
"@nymphjs/nymph": "^1.0.0-beta.
|
|
34
|
+
"@nymphjs/guid": "^1.0.0-beta.107",
|
|
35
|
+
"@nymphjs/nymph": "^1.0.0-beta.107",
|
|
36
36
|
"@sciactive/tokenizer": "^3.0.2",
|
|
37
|
-
"better-sqlite3": "^
|
|
37
|
+
"better-sqlite3": "^12.6.2"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@
|
|
41
|
-
"@
|
|
42
|
-
"@types/
|
|
43
|
-
"jest": "^
|
|
44
|
-
"
|
|
40
|
+
"@nymphjs/tilmeld": "^1.0.0-beta.107",
|
|
41
|
+
"@tsconfig/recommended": "^1.0.13",
|
|
42
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
43
|
+
"@types/jest": "^30.0.0",
|
|
44
|
+
"jest": "^30.2.0",
|
|
45
|
+
"ts-jest": "^29.4.6",
|
|
45
46
|
"ts-node": "^10.9.2",
|
|
46
|
-
"typescript": "^5.
|
|
47
|
+
"typescript": "^5.9.3"
|
|
47
48
|
},
|
|
48
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "46f6b6b06820dc0858c347cad1e795aa80927b79"
|
|
49
50
|
}
|
|
@@ -2,6 +2,7 @@ import { tmpdir } from 'node:os';
|
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
3
|
import fs from 'node:fs';
|
|
4
4
|
import { Nymph, EntitiesTest, UIDTest, ExportImportTest } from '@nymphjs/nymph';
|
|
5
|
+
import { TilmeldTest } from '@nymphjs/tilmeld/dist/testArtifacts.js';
|
|
5
6
|
|
|
6
7
|
import SQLite3Driver from './SQLite3Driver.js';
|
|
7
8
|
|
|
@@ -19,6 +20,9 @@ describe('SQLite3Driver In-Memory', () => {
|
|
|
19
20
|
EntitiesTest(nymph, it);
|
|
20
21
|
UIDTest(nymph, it);
|
|
21
22
|
ExportImportTest(nymph, it);
|
|
23
|
+
|
|
24
|
+
const tilmeldNymph = nymph.clone();
|
|
25
|
+
TilmeldTest(tilmeldNymph, it);
|
|
22
26
|
});
|
|
23
27
|
|
|
24
28
|
describe('SQLite3Driver DB File', () => {
|
|
@@ -37,6 +41,9 @@ describe('SQLite3Driver DB File', () => {
|
|
|
37
41
|
UIDTest(nymph, it);
|
|
38
42
|
ExportImportTest(nymph, it);
|
|
39
43
|
|
|
44
|
+
const tilmeldNymph = nymph.clone();
|
|
45
|
+
TilmeldTest(tilmeldNymph, it);
|
|
46
|
+
|
|
40
47
|
it('cleans up the db', () => {
|
|
41
48
|
try {
|
|
42
49
|
fs.unlinkSync(filename);
|
package/src/SQLite3Driver.ts
CHANGED
|
@@ -235,7 +235,7 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
235
235
|
this.queryRun(
|
|
236
236
|
`CREATE TABLE IF NOT EXISTS ${SQLite3Driver.escape(
|
|
237
237
|
`${this.prefix}entities_${etype}`,
|
|
238
|
-
)} ("guid" CHARACTER(24) PRIMARY KEY, "tags" TEXT, "cdate" REAL NOT NULL, "mdate" REAL NOT NULL);`,
|
|
238
|
+
)} ("guid" CHARACTER(24) PRIMARY KEY, "tags" TEXT, "cdate" REAL NOT NULL, "mdate" REAL NOT NULL, "user" CHARACTER(24), "group" CHARACTER(24), "acUser" INT(1), "acGroup" INT(1), "acOther" INT(1), "acRead" TEXT, "acWrite" TEXT, "acFull" TEXT);`,
|
|
239
239
|
);
|
|
240
240
|
this.queryRun(
|
|
241
241
|
`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(
|
|
@@ -258,6 +258,75 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
258
258
|
`${this.prefix}entities_${etype}`,
|
|
259
259
|
)} ("tags");`,
|
|
260
260
|
);
|
|
261
|
+
this.createEntitiesTilmeldIndexes(etype);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
private addTilmeldColumnsAndIndexes(etype: string) {
|
|
265
|
+
this.queryRun(
|
|
266
|
+
`ALTER TABLE ${SQLite3Driver.escape(
|
|
267
|
+
`${this.prefix}entities_${etype}`,
|
|
268
|
+
)} ADD COLUMN "user" CHARACTER(24), ADD COLUMN "group" CHARACTER(24), ADD COLUMN "acUser" INT(1), ADD COLUMN "acGroup" INT(1), ADD COLUMN "acOther" INT(1), ADD COLUMN "acRead" TEXT, ADD COLUMN "acWrite" TEXT, ADD COLUMN "acFull" TEXT;`,
|
|
269
|
+
);
|
|
270
|
+
this.createEntitiesTilmeldIndexes(etype);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
private createEntitiesTilmeldIndexes(etype: string) {
|
|
274
|
+
this.queryRun(
|
|
275
|
+
`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(
|
|
276
|
+
`${this.prefix}entities_${etype}_id_user_acUser`,
|
|
277
|
+
)} ON ${SQLite3Driver.escape(
|
|
278
|
+
`${this.prefix}entities_${etype}`,
|
|
279
|
+
)} ("user", "acUser");`,
|
|
280
|
+
);
|
|
281
|
+
this.queryRun(
|
|
282
|
+
`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(
|
|
283
|
+
`${this.prefix}entities_${etype}_id_group_acGroup`,
|
|
284
|
+
)} ON ${SQLite3Driver.escape(
|
|
285
|
+
`${this.prefix}entities_${etype}`,
|
|
286
|
+
)} ("group", "acGroup");`,
|
|
287
|
+
);
|
|
288
|
+
this.queryRun(
|
|
289
|
+
`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(
|
|
290
|
+
`${this.prefix}entities_${etype}_id_acUser`,
|
|
291
|
+
)} ON ${SQLite3Driver.escape(
|
|
292
|
+
`${this.prefix}entities_${etype}`,
|
|
293
|
+
)} ("acUser");`,
|
|
294
|
+
);
|
|
295
|
+
this.queryRun(
|
|
296
|
+
`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(
|
|
297
|
+
`${this.prefix}entities_${etype}_id_acGroup`,
|
|
298
|
+
)} ON ${SQLite3Driver.escape(
|
|
299
|
+
`${this.prefix}entities_${etype}`,
|
|
300
|
+
)} ("acGroup");`,
|
|
301
|
+
);
|
|
302
|
+
this.queryRun(
|
|
303
|
+
`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(
|
|
304
|
+
`${this.prefix}entities_${etype}_id_acOther`,
|
|
305
|
+
)} ON ${SQLite3Driver.escape(
|
|
306
|
+
`${this.prefix}entities_${etype}`,
|
|
307
|
+
)} ("acOther");`,
|
|
308
|
+
);
|
|
309
|
+
this.queryRun(
|
|
310
|
+
`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(
|
|
311
|
+
`${this.prefix}entities_${etype}_id_acRead`,
|
|
312
|
+
)} ON ${SQLite3Driver.escape(
|
|
313
|
+
`${this.prefix}entities_${etype}`,
|
|
314
|
+
)} ("acRead");`,
|
|
315
|
+
);
|
|
316
|
+
this.queryRun(
|
|
317
|
+
`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(
|
|
318
|
+
`${this.prefix}entities_${etype}_id_acWrite`,
|
|
319
|
+
)} ON ${SQLite3Driver.escape(
|
|
320
|
+
`${this.prefix}entities_${etype}`,
|
|
321
|
+
)} ("acWrite");`,
|
|
322
|
+
);
|
|
323
|
+
this.queryRun(
|
|
324
|
+
`CREATE INDEX IF NOT EXISTS ${SQLite3Driver.escape(
|
|
325
|
+
`${this.prefix}entities_${etype}_id_acFull`,
|
|
326
|
+
)} ON ${SQLite3Driver.escape(
|
|
327
|
+
`${this.prefix}entities_${etype}`,
|
|
328
|
+
)} ("acFull");`,
|
|
329
|
+
);
|
|
261
330
|
}
|
|
262
331
|
|
|
263
332
|
private createDataTable(etype: string) {
|
|
@@ -2226,7 +2295,7 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2226
2295
|
sdata: SerializedEntityData;
|
|
2227
2296
|
etype: string;
|
|
2228
2297
|
}) {
|
|
2229
|
-
return await this.importEntityInternal(entity
|
|
2298
|
+
return await this.importEntityInternal(entity);
|
|
2230
2299
|
}
|
|
2231
2300
|
|
|
2232
2301
|
public async importEntityTokens(entity: {
|
|
@@ -2237,7 +2306,18 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2237
2306
|
sdata: SerializedEntityData;
|
|
2238
2307
|
etype: string;
|
|
2239
2308
|
}) {
|
|
2240
|
-
return await this.importEntityInternal(entity,
|
|
2309
|
+
return await this.importEntityInternal(entity, { only: 'tokens' });
|
|
2310
|
+
}
|
|
2311
|
+
|
|
2312
|
+
public async importEntityTilmeldAC(entity: {
|
|
2313
|
+
guid: string;
|
|
2314
|
+
cdate: number;
|
|
2315
|
+
mdate: number;
|
|
2316
|
+
tags: string[];
|
|
2317
|
+
sdata: SerializedEntityData;
|
|
2318
|
+
etype: string;
|
|
2319
|
+
}) {
|
|
2320
|
+
return await this.importEntityInternal(entity, { only: 'tilmeldAC' });
|
|
2241
2321
|
}
|
|
2242
2322
|
|
|
2243
2323
|
private async importEntityInternal(
|
|
@@ -2256,10 +2336,10 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2256
2336
|
sdata: SerializedEntityData;
|
|
2257
2337
|
etype: string;
|
|
2258
2338
|
},
|
|
2259
|
-
|
|
2339
|
+
{ only = undefined }: { only?: 'tokens' | 'tilmeldAC' } = {},
|
|
2260
2340
|
) {
|
|
2261
2341
|
try {
|
|
2262
|
-
if (
|
|
2342
|
+
if (only == null) {
|
|
2263
2343
|
this.queryRun(
|
|
2264
2344
|
`DELETE FROM ${SQLite3Driver.escape(
|
|
2265
2345
|
`${this.prefix}entities_${etype}`,
|
|
@@ -2294,18 +2374,20 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2294
2374
|
},
|
|
2295
2375
|
);
|
|
2296
2376
|
}
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2377
|
+
if (only == null || only === 'tokens') {
|
|
2378
|
+
this.queryRun(
|
|
2379
|
+
`DELETE FROM ${SQLite3Driver.escape(
|
|
2380
|
+
`${this.prefix}tokens_${etype}`,
|
|
2381
|
+
)} WHERE "guid"=@guid;`,
|
|
2382
|
+
{
|
|
2383
|
+
etypes: [etype],
|
|
2384
|
+
params: {
|
|
2385
|
+
guid,
|
|
2386
|
+
},
|
|
2305
2387
|
},
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
if (
|
|
2388
|
+
);
|
|
2389
|
+
}
|
|
2390
|
+
if (only == null) {
|
|
2309
2391
|
this.queryRun(
|
|
2310
2392
|
`DELETE FROM ${SQLite3Driver.escape(
|
|
2311
2393
|
`${this.prefix}uniques_${etype}`,
|
|
@@ -2319,11 +2401,14 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2319
2401
|
);
|
|
2320
2402
|
}
|
|
2321
2403
|
|
|
2322
|
-
if (
|
|
2404
|
+
if (only == null) {
|
|
2405
|
+
let { user, group, acUser, acGroup, acOther, acRead, acWrite, acFull } =
|
|
2406
|
+
this.removeAndReturnACValues(etype, {}, sdata);
|
|
2407
|
+
|
|
2323
2408
|
this.queryRun(
|
|
2324
2409
|
`INSERT INTO ${SQLite3Driver.escape(
|
|
2325
2410
|
`${this.prefix}entities_${etype}`,
|
|
2326
|
-
)} ("guid", "tags", "cdate", "mdate") VALUES (@guid, @tags, @cdate, @mdate);`,
|
|
2411
|
+
)} ("guid", "tags", "cdate", "mdate", "user", "group", "acUser", "acGroup", "acOther", "acRead", "acWrite", "acFull") VALUES (@guid, @tags, @cdate, @mdate, @user, @group, @acUser, @acGroup, @acOther, @acRead, @acWrite, @acFull);`,
|
|
2327
2412
|
{
|
|
2328
2413
|
etypes: [etype],
|
|
2329
2414
|
params: {
|
|
@@ -2331,6 +2416,14 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2331
2416
|
tags: ',' + tags.join(',') + ',',
|
|
2332
2417
|
cdate,
|
|
2333
2418
|
mdate,
|
|
2419
|
+
user,
|
|
2420
|
+
group,
|
|
2421
|
+
acUser,
|
|
2422
|
+
acGroup,
|
|
2423
|
+
acOther,
|
|
2424
|
+
acRead: acRead && ',' + acRead.join(',') + ',',
|
|
2425
|
+
acWrite: acWrite && ',' + acWrite.join(',') + ',',
|
|
2426
|
+
acFull: acFull && ',' + acFull.join(',') + ',',
|
|
2334
2427
|
},
|
|
2335
2428
|
},
|
|
2336
2429
|
);
|
|
@@ -2386,56 +2479,83 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2386
2479
|
}
|
|
2387
2480
|
}
|
|
2388
2481
|
|
|
2482
|
+
if (only === 'tilmeldAC') {
|
|
2483
|
+
let { user, group, acUser, acGroup, acOther, acRead, acWrite, acFull } =
|
|
2484
|
+
this.removeAndReturnACValues(etype, {}, sdata);
|
|
2485
|
+
|
|
2486
|
+
this.queryRun(
|
|
2487
|
+
`UPDATE OR IGNORE ${SQLite3Driver.escape(
|
|
2488
|
+
`${this.prefix}entities_${etype}`,
|
|
2489
|
+
)} SET "user"=@user, "group"=@group, "acUser"=@acUser, "acGroup"=@acGroup, "acOther"=@acOther, "acRead"=@acRead, "acWrite"=@acWrite, "acFull"=@acFull WHERE "guid"=@guid;`,
|
|
2490
|
+
{
|
|
2491
|
+
etypes: [etype],
|
|
2492
|
+
params: {
|
|
2493
|
+
user,
|
|
2494
|
+
group,
|
|
2495
|
+
acUser,
|
|
2496
|
+
acGroup,
|
|
2497
|
+
acOther,
|
|
2498
|
+
acRead: acRead && ',' + acRead.join(',') + ',',
|
|
2499
|
+
acWrite: acWrite && ',' + acWrite.join(',') + ',',
|
|
2500
|
+
acFull: acFull && ',' + acFull.join(',') + ',',
|
|
2501
|
+
guid,
|
|
2502
|
+
},
|
|
2503
|
+
},
|
|
2504
|
+
);
|
|
2505
|
+
}
|
|
2506
|
+
|
|
2389
2507
|
const EntityClass = this.nymph.getEntityClassByEtype(etype);
|
|
2390
2508
|
|
|
2391
|
-
|
|
2392
|
-
let
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2509
|
+
if (only == null || only === 'tokens') {
|
|
2510
|
+
for (let name in sdata) {
|
|
2511
|
+
let tokenString: string | null = null;
|
|
2512
|
+
try {
|
|
2513
|
+
tokenString = EntityClass.getFTSText(name, JSON.parse(sdata[name]));
|
|
2514
|
+
} catch (e: any) {
|
|
2515
|
+
// Ignore error.
|
|
2516
|
+
}
|
|
2398
2517
|
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2518
|
+
if (tokenString != null) {
|
|
2519
|
+
const tokens = this.tokenizer.tokenize(tokenString);
|
|
2520
|
+
while (tokens.length) {
|
|
2521
|
+
const currentTokens = tokens.splice(0, 100);
|
|
2522
|
+
const params: { [k: string]: any } = {
|
|
2523
|
+
guid,
|
|
2524
|
+
name,
|
|
2525
|
+
};
|
|
2526
|
+
const values: string[] = [];
|
|
2527
|
+
|
|
2528
|
+
for (let i = 0; i < currentTokens.length; i++) {
|
|
2529
|
+
const token = currentTokens[i];
|
|
2530
|
+
params['token' + i] = token.token;
|
|
2531
|
+
params['position' + i] = token.position;
|
|
2532
|
+
params['stem' + i] = token.stem ? 1 : 0;
|
|
2533
|
+
values.push(
|
|
2534
|
+
'(@guid, @name, @token' +
|
|
2535
|
+
i +
|
|
2536
|
+
', @position' +
|
|
2537
|
+
i +
|
|
2538
|
+
', @stem' +
|
|
2539
|
+
i +
|
|
2540
|
+
')',
|
|
2541
|
+
);
|
|
2542
|
+
}
|
|
2408
2543
|
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
', @position' +
|
|
2418
|
-
i +
|
|
2419
|
-
', @stem' +
|
|
2420
|
-
i +
|
|
2421
|
-
')',
|
|
2544
|
+
this.queryRun(
|
|
2545
|
+
`INSERT INTO ${SQLite3Driver.escape(
|
|
2546
|
+
`${this.prefix}tokens_${etype}`,
|
|
2547
|
+
)} ("guid", "name", "token", "position", "stem") VALUES ${values.join(', ')};`,
|
|
2548
|
+
{
|
|
2549
|
+
etypes: [etype],
|
|
2550
|
+
params,
|
|
2551
|
+
},
|
|
2422
2552
|
);
|
|
2423
2553
|
}
|
|
2424
|
-
|
|
2425
|
-
this.queryRun(
|
|
2426
|
-
`INSERT INTO ${SQLite3Driver.escape(
|
|
2427
|
-
`${this.prefix}tokens_${etype}`,
|
|
2428
|
-
)} ("guid", "name", "token", "position", "stem") VALUES ${values.join(', ')};`,
|
|
2429
|
-
{
|
|
2430
|
-
etypes: [etype],
|
|
2431
|
-
params,
|
|
2432
|
-
},
|
|
2433
|
-
);
|
|
2434
2554
|
}
|
|
2435
2555
|
}
|
|
2436
2556
|
}
|
|
2437
2557
|
|
|
2438
|
-
if (
|
|
2558
|
+
if (only == null) {
|
|
2439
2559
|
const uniques = await EntityClass.getUniques({
|
|
2440
2560
|
guid,
|
|
2441
2561
|
cdate,
|
|
@@ -2754,16 +2874,34 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2754
2874
|
) {
|
|
2755
2875
|
return false;
|
|
2756
2876
|
}
|
|
2877
|
+
let {
|
|
2878
|
+
user,
|
|
2879
|
+
group,
|
|
2880
|
+
acUser,
|
|
2881
|
+
acGroup,
|
|
2882
|
+
acOther,
|
|
2883
|
+
acRead,
|
|
2884
|
+
acWrite,
|
|
2885
|
+
acFull,
|
|
2886
|
+
} = this.removeAndReturnACValues(etype, data, sdata);
|
|
2757
2887
|
this.queryRun(
|
|
2758
2888
|
`INSERT INTO ${SQLite3Driver.escape(
|
|
2759
2889
|
`${this.prefix}entities_${etype}`,
|
|
2760
|
-
)} ("guid", "tags", "cdate", "mdate") VALUES (@guid, @tags, @cdate, @cdate);`,
|
|
2890
|
+
)} ("guid", "tags", "cdate", "mdate", "user", "group", "acUser", "acGroup", "acOther", "acRead", "acWrite", "acFull") VALUES (@guid, @tags, @cdate, @cdate, @user, @group, @acUser, @acGroup, @acOther, @acRead, @acWrite, @acFull);`,
|
|
2761
2891
|
{
|
|
2762
2892
|
etypes: [etype],
|
|
2763
2893
|
params: {
|
|
2764
2894
|
guid,
|
|
2765
2895
|
tags: ',' + tags.join(',') + ',',
|
|
2766
2896
|
cdate,
|
|
2897
|
+
user,
|
|
2898
|
+
group,
|
|
2899
|
+
acUser,
|
|
2900
|
+
acGroup,
|
|
2901
|
+
acOther,
|
|
2902
|
+
acRead: acRead && ',' + acRead.join(',') + ',',
|
|
2903
|
+
acWrite: acWrite && ',' + acWrite.join(',') + ',',
|
|
2904
|
+
acFull: acFull && ',' + acFull.join(',') + ',',
|
|
2767
2905
|
},
|
|
2768
2906
|
},
|
|
2769
2907
|
);
|
|
@@ -2777,15 +2915,33 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2777
2915
|
) {
|
|
2778
2916
|
return false;
|
|
2779
2917
|
}
|
|
2918
|
+
let {
|
|
2919
|
+
user,
|
|
2920
|
+
group,
|
|
2921
|
+
acUser,
|
|
2922
|
+
acGroup,
|
|
2923
|
+
acOther,
|
|
2924
|
+
acRead,
|
|
2925
|
+
acWrite,
|
|
2926
|
+
acFull,
|
|
2927
|
+
} = this.removeAndReturnACValues(etype, data, sdata);
|
|
2780
2928
|
const info = this.queryRun(
|
|
2781
2929
|
`UPDATE ${SQLite3Driver.escape(
|
|
2782
2930
|
`${this.prefix}entities_${etype}`,
|
|
2783
|
-
)} SET "tags"=@tags, "mdate"=@mdate WHERE "guid"=@guid AND "mdate" <= @emdate;`,
|
|
2931
|
+
)} SET "tags"=@tags, "mdate"=@mdate, "user"=@user, "group"=@group, "acUser"=@acUser, "acGroup"=@acGroup, "acOther"=@acOther, "acRead"=@acRead, "acWrite"=@acWrite, "acFull"=@acFull WHERE "guid"=@guid AND "mdate" <= @emdate;`,
|
|
2784
2932
|
{
|
|
2785
2933
|
etypes: [etype],
|
|
2786
2934
|
params: {
|
|
2787
2935
|
tags: ',' + tags.join(',') + ',',
|
|
2788
2936
|
mdate,
|
|
2937
|
+
user,
|
|
2938
|
+
group,
|
|
2939
|
+
acUser,
|
|
2940
|
+
acGroup,
|
|
2941
|
+
acOther,
|
|
2942
|
+
acRead: acRead && ',' + acRead.join(',') + ',',
|
|
2943
|
+
acWrite: acWrite && ',' + acWrite.join(',') + ',',
|
|
2944
|
+
acFull: acFull && ',' + acFull.join(',') + ',',
|
|
2789
2945
|
guid,
|
|
2790
2946
|
emdate: Number(entity.mdate),
|
|
2791
2947
|
},
|
|
@@ -2915,7 +3071,9 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2915
3071
|
return this.nymph;
|
|
2916
3072
|
}
|
|
2917
3073
|
|
|
2918
|
-
public async needsMigration(): Promise<
|
|
3074
|
+
public async needsMigration(): Promise<
|
|
3075
|
+
'json' | 'tokens' | 'tilmeldColumns' | false
|
|
3076
|
+
> {
|
|
2919
3077
|
const table: any = this.queryGet(
|
|
2920
3078
|
"SELECT `name` FROM `sqlite_master` WHERE `type`='table' AND `name` LIKE @prefix LIMIT 1;",
|
|
2921
3079
|
{
|
|
@@ -2948,14 +3106,43 @@ export default class SQLite3Driver extends NymphDriver {
|
|
|
2948
3106
|
if (!table2 || !table2.name) {
|
|
2949
3107
|
return 'tokens';
|
|
2950
3108
|
}
|
|
3109
|
+
const table3: any = this.queryGet(
|
|
3110
|
+
"SELECT `name` FROM `sqlite_master` WHERE `type`='table' AND `name` LIKE @prefix LIMIT 1;",
|
|
3111
|
+
{
|
|
3112
|
+
params: {
|
|
3113
|
+
prefix: this.prefix + 'entities_' + '%',
|
|
3114
|
+
},
|
|
3115
|
+
},
|
|
3116
|
+
);
|
|
3117
|
+
if (table3?.name) {
|
|
3118
|
+
const result: any = this.queryGet(
|
|
3119
|
+
"SELECT 1 AS `exists` FROM pragma_table_info(@table) WHERE `name`='user';",
|
|
3120
|
+
{
|
|
3121
|
+
params: {
|
|
3122
|
+
table: table3.name,
|
|
3123
|
+
},
|
|
3124
|
+
},
|
|
3125
|
+
);
|
|
3126
|
+
if (!result?.exists) {
|
|
3127
|
+
return 'tilmeldColumns';
|
|
3128
|
+
}
|
|
3129
|
+
}
|
|
2951
3130
|
return false;
|
|
2952
3131
|
}
|
|
2953
3132
|
|
|
2954
|
-
public async liveMigration(
|
|
2955
|
-
|
|
3133
|
+
public async liveMigration(migrationType: 'tokenTables' | 'tilmeldColumns') {
|
|
3134
|
+
if (migrationType === 'tokenTables') {
|
|
3135
|
+
const etypes = await this.getEtypes();
|
|
2956
3136
|
|
|
2957
|
-
|
|
2958
|
-
|
|
3137
|
+
for (let etype of etypes) {
|
|
3138
|
+
this.createTokensTable(etype);
|
|
3139
|
+
}
|
|
3140
|
+
} else if (migrationType === 'tilmeldColumns') {
|
|
3141
|
+
const etypes = await this.getEtypes();
|
|
3142
|
+
|
|
3143
|
+
for (let etype of etypes) {
|
|
3144
|
+
this.addTilmeldColumnsAndIndexes(etype);
|
|
3145
|
+
}
|
|
2959
3146
|
}
|
|
2960
3147
|
}
|
|
2961
3148
|
}
|