@capacitor-community/sqlite 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -2
- package/android/src/main/java/com/getcapacitor/community/database/sqlite/CapacitorSQLite.java +10 -0
- package/android/src/main/java/com/getcapacitor/community/database/sqlite/CapacitorSQLitePlugin.java +81 -2
- package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsDownloadFromHTTP.java +116 -0
- package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsFile.java +89 -12
- package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsUpgrade.java +2 -1
- package/dist/esm/definitions.d.ts +28 -0
- package/dist/esm/definitions.js +10 -0
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/web.d.ts +2 -1
- package/dist/esm/web.js +11 -0
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +21 -0
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +21 -0
- package/dist/plugin.js.map +1 -1
- package/electron/dist/plugin.js +121 -22
- package/electron/dist/plugin.js.map +1 -1
- package/electron/rollup.config.js +1 -0
- package/ios/Plugin/CapacitorSQLite.swift +37 -7
- package/ios/Plugin/CapacitorSQLitePlugin.m +1 -0
- package/ios/Plugin/CapacitorSQLitePlugin.swift +59 -18
- package/ios/Plugin/Utils/UtilsDownloadFromHTTP.swift +122 -0
- package/ios/Plugin/Utils/UtilsFile.swift +40 -19
- package/ios/Plugin/Utils/UtilsMigrate.swift +1 -1
- package/ios/Plugin/Utils/UtilsUpgrade.swift +3 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<a href="https://www.npmjs.com/package/@capacitor-community/sqlite"><img src="https://img.shields.io/npm/dw/@capacitor-community/sqlite?style=flat-square" /></a>
|
|
17
17
|
<a href="https://www.npmjs.com/package/@capacitor-community/sqlite"><img src="https://img.shields.io/npm/v/@capacitor-community/sqlite?style=flat-square" /></a>
|
|
18
18
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
19
|
-
<a href="#contributors-"><img src="https://img.shields.io/badge/all%20contributors-
|
|
19
|
+
<a href="#contributors-"><img src="https://img.shields.io/badge/all%20contributors-22-orange?style=flat-square" /></a>
|
|
20
20
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
21
21
|
</p>
|
|
22
22
|
|
|
@@ -78,6 +78,7 @@ See [#301](https://github.com/capacitor-community/sqlite/issues/301) and [SO que
|
|
|
78
78
|
cd electron
|
|
79
79
|
npm install --save sqlite3
|
|
80
80
|
npm install --save jszip
|
|
81
|
+
npm install --save node-fetch
|
|
81
82
|
npm install --save-dev @types/sqlite3
|
|
82
83
|
```
|
|
83
84
|
|
|
@@ -137,6 +138,7 @@ npm install --save-dev @types/sqlite3
|
|
|
137
138
|
| closeNCConnection | ✅ | ✅ | ❌ | ❌ |
|
|
138
139
|
| isNCDatabase | ✅ | ✅ | ❌ | ❌ |
|
|
139
140
|
| transaction | ✅ | ✅ | ✅ | ✅ |
|
|
141
|
+
| getFromHTTPRequest | ✅ | ✅ | ✅ | ✅ | since 4.2.0
|
|
140
142
|
|
|
141
143
|
|
|
142
144
|
## Documentation & APIs
|
|
@@ -209,7 +211,7 @@ npm install --save-dev @types/sqlite3
|
|
|
209
211
|
|
|
210
212
|
The iOS and Android codes are using `SQLCipher` allowing for database encryption.
|
|
211
213
|
The iOS codes is using `ZIPFoundation` for unzipping assets files
|
|
212
|
-
The Electron code is using `sqlite3
|
|
214
|
+
The Electron code is using `sqlite3` and `node-fetch` from 4.2.0.
|
|
213
215
|
The Web code is using the Stencil component `jeep-sqlite` based on `sql.js`, `localforage`. and `jszip`
|
|
214
216
|
|
|
215
217
|
## Contributors ✨
|
|
@@ -241,6 +243,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|
|
241
243
|
<a href="https://github.com/antoniovlx" title="antoniovlx"><img src="https://github.com/antoniovlx.png?size=100" width="50" height="50" /></a>
|
|
242
244
|
<a href="https://github.com/HarelM" title="HarelM"><img src="https://github.com/HarelM.png?size=100" width="50" height="50" /></a>
|
|
243
245
|
<a href="https://github.com/rdlabo" title="rdlabo"><img src="https://github.com/rdlabo.png?size=100" width="50" height="50" /></a>
|
|
246
|
+
<a href="https://github.com/axkristiansen" title="rdlabo"><img src="https://github.com/axkristiansen.png?size=100" width="50" height="50" /></a>
|
|
244
247
|
</p>
|
|
245
248
|
|
|
246
249
|
<!-- markdownlint-enable -->
|
package/android/src/main/java/com/getcapacitor/community/database/sqlite/CapacitorSQLite.java
CHANGED
|
@@ -17,6 +17,7 @@ import com.getcapacitor.community.database.sqlite.SQLite.ImportExportJson.JsonSQ
|
|
|
17
17
|
import com.getcapacitor.community.database.sqlite.SQLite.ImportExportJson.UtilsJson;
|
|
18
18
|
import com.getcapacitor.community.database.sqlite.SQLite.SqliteConfig;
|
|
19
19
|
import com.getcapacitor.community.database.sqlite.SQLite.UtilsBiometric;
|
|
20
|
+
import com.getcapacitor.community.database.sqlite.SQLite.UtilsDownloadFromHTTP;
|
|
20
21
|
import com.getcapacitor.community.database.sqlite.SQLite.UtilsFile;
|
|
21
22
|
import com.getcapacitor.community.database.sqlite.SQLite.UtilsMigrate;
|
|
22
23
|
import com.getcapacitor.community.database.sqlite.SQLite.UtilsNCDatabase;
|
|
@@ -46,6 +47,7 @@ public class CapacitorSQLite {
|
|
|
46
47
|
private final UtilsJson uJson = new UtilsJson();
|
|
47
48
|
private final UtilsMigrate uMigrate = new UtilsMigrate();
|
|
48
49
|
private final UtilsNCDatabase uNCDatabase = new UtilsNCDatabase();
|
|
50
|
+
private final UtilsDownloadFromHTTP uHTTP = new UtilsDownloadFromHTTP();
|
|
49
51
|
private UtilsSecret uSecret;
|
|
50
52
|
private SharedPreferences sharedPreferences = null;
|
|
51
53
|
private MasterKey masterKeyAlias;
|
|
@@ -537,6 +539,14 @@ public class CapacitorSQLite {
|
|
|
537
539
|
}
|
|
538
540
|
}
|
|
539
541
|
|
|
542
|
+
public void getFromHTTPRequest(String url) throws Exception {
|
|
543
|
+
try {
|
|
544
|
+
uHTTP.download(context, url);
|
|
545
|
+
} catch (Exception e) {
|
|
546
|
+
throw new Exception(e.getMessage());
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
|
|
540
550
|
public Boolean checkConnectionsConsistency(JSArray dbNames, JSArray openModes) throws Exception {
|
|
541
551
|
Set<String> keys = new HashSet<String>(Collections.list(dbDict.keys()));
|
|
542
552
|
String msg = "All Native Connections released";
|
package/android/src/main/java/com/getcapacitor/community/database/sqlite/CapacitorSQLitePlugin.java
CHANGED
|
@@ -12,8 +12,10 @@ import com.getcapacitor.annotation.CapacitorPlugin;
|
|
|
12
12
|
import com.getcapacitor.community.database.sqlite.SQLite.Database;
|
|
13
13
|
import com.getcapacitor.community.database.sqlite.SQLite.ImportExportJson.JsonSQLite;
|
|
14
14
|
import com.getcapacitor.community.database.sqlite.SQLite.SqliteConfig;
|
|
15
|
+
import java.util.Collections;
|
|
15
16
|
import java.util.Dictionary;
|
|
16
17
|
import java.util.Hashtable;
|
|
18
|
+
import java.util.List;
|
|
17
19
|
import org.json.JSONArray;
|
|
18
20
|
import org.json.JSONException;
|
|
19
21
|
import org.json.JSONObject;
|
|
@@ -1220,7 +1222,18 @@ public class CapacitorSQLitePlugin extends Plugin {
|
|
|
1220
1222
|
if (implementation != null) {
|
|
1221
1223
|
try {
|
|
1222
1224
|
Dictionary<Integer, JSONObject> upgDict = implementation.addUpgradeStatement(upgrade);
|
|
1223
|
-
|
|
1225
|
+
|
|
1226
|
+
if (versionUpgrades.get(dbName) != null) {
|
|
1227
|
+
List<Integer> keys = Collections.list(upgDict.keys());
|
|
1228
|
+
for (Integer versionKey : keys) {
|
|
1229
|
+
JSONObject upgObj = upgDict.get(versionKey);
|
|
1230
|
+
|
|
1231
|
+
versionUpgrades.get(dbName).put(versionKey, upgObj);
|
|
1232
|
+
}
|
|
1233
|
+
} else {
|
|
1234
|
+
versionUpgrades.put(dbName, upgDict);
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1224
1237
|
rHandler.retResult(call, null, null);
|
|
1225
1238
|
return;
|
|
1226
1239
|
} catch (Exception e) {
|
|
@@ -1347,7 +1360,7 @@ public class CapacitorSQLitePlugin extends Plugin {
|
|
|
1347
1360
|
JSObject retObj = new JSObject();
|
|
1348
1361
|
JsonSQLite retJson = new JsonSQLite();
|
|
1349
1362
|
if (!call.getData().has("database")) {
|
|
1350
|
-
String msg = "
|
|
1363
|
+
String msg = "DeleteExportedRows: Must provide a database name";
|
|
1351
1364
|
rHandler.retResult(call, null, msg);
|
|
1352
1365
|
return;
|
|
1353
1366
|
}
|
|
@@ -1395,6 +1408,72 @@ public class CapacitorSQLitePlugin extends Plugin {
|
|
|
1395
1408
|
}
|
|
1396
1409
|
}
|
|
1397
1410
|
|
|
1411
|
+
/**
|
|
1412
|
+
* GetFromHTTPRequest
|
|
1413
|
+
* get a database or a zipped database from HTTP Request
|
|
1414
|
+
*
|
|
1415
|
+
* @param call
|
|
1416
|
+
*/
|
|
1417
|
+
@PluginMethod
|
|
1418
|
+
public void getFromHTTPRequest(PluginCall call) {
|
|
1419
|
+
if (!call.getData().has("url")) {
|
|
1420
|
+
String msg = "GetFromHTTPRequest: Must provide a database url";
|
|
1421
|
+
rHandler.retResult(call, null, msg);
|
|
1422
|
+
return;
|
|
1423
|
+
}
|
|
1424
|
+
String url = call.getString("url");
|
|
1425
|
+
if (implementation != null) {
|
|
1426
|
+
Runnable setHTTPRunnable = new Runnable() {
|
|
1427
|
+
@Override
|
|
1428
|
+
public void run() {
|
|
1429
|
+
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);
|
|
1430
|
+
try {
|
|
1431
|
+
implementation.getFromHTTPRequest(url);
|
|
1432
|
+
getActivity()
|
|
1433
|
+
.runOnUiThread(
|
|
1434
|
+
new Runnable() {
|
|
1435
|
+
@Override
|
|
1436
|
+
public void run() {
|
|
1437
|
+
rHandler.retResult(call, null, null);
|
|
1438
|
+
return;
|
|
1439
|
+
}
|
|
1440
|
+
}
|
|
1441
|
+
);
|
|
1442
|
+
} catch (Exception e) {
|
|
1443
|
+
getActivity()
|
|
1444
|
+
.runOnUiThread(
|
|
1445
|
+
new Runnable() {
|
|
1446
|
+
@Override
|
|
1447
|
+
public void run() {
|
|
1448
|
+
String msg = "GetFromHTTPRequest: " + e.getMessage();
|
|
1449
|
+
rHandler.retResult(call, null, msg);
|
|
1450
|
+
return;
|
|
1451
|
+
}
|
|
1452
|
+
}
|
|
1453
|
+
);
|
|
1454
|
+
}
|
|
1455
|
+
}
|
|
1456
|
+
};
|
|
1457
|
+
Thread myHttpThread = new Thread(setHTTPRunnable);
|
|
1458
|
+
myHttpThread.start();
|
|
1459
|
+
while (myHttpThread.isAlive());
|
|
1460
|
+
System.out.println("Thread Exiting!");
|
|
1461
|
+
/* try {
|
|
1462
|
+
implementation.getFromHTTPRequest(url);
|
|
1463
|
+
rHandler.retResult(call, null, null);
|
|
1464
|
+
return;
|
|
1465
|
+
} catch (Exception e) {
|
|
1466
|
+
String msg = "GetFromHTTPRequest: " + e.getMessage();
|
|
1467
|
+
rHandler.retResult(call, null, msg);
|
|
1468
|
+
return;
|
|
1469
|
+
}
|
|
1470
|
+
*/
|
|
1471
|
+
} else {
|
|
1472
|
+
rHandler.retResult(call, null, loadMessage);
|
|
1473
|
+
return;
|
|
1474
|
+
}
|
|
1475
|
+
}
|
|
1476
|
+
|
|
1398
1477
|
private void AddObserversToNotificationCenter() {
|
|
1399
1478
|
NotificationCenter
|
|
1400
1479
|
.defaultCenter()
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
package com.getcapacitor.community.database.sqlite.SQLite;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.content.res.AssetManager;
|
|
5
|
+
import java.io.File;
|
|
6
|
+
import java.io.FileOutputStream;
|
|
7
|
+
import java.io.IOException;
|
|
8
|
+
import java.io.InputStream;
|
|
9
|
+
import java.net.HttpURLConnection;
|
|
10
|
+
import java.net.URL;
|
|
11
|
+
|
|
12
|
+
public class UtilsDownloadFromHTTP {
|
|
13
|
+
|
|
14
|
+
private static final String TAG = UtilsDownloadFromHTTP.class.getName();
|
|
15
|
+
private static final int BUFFER_SIZE = 4096;
|
|
16
|
+
private final UtilsFile _uFile = new UtilsFile();
|
|
17
|
+
|
|
18
|
+
public void download(Context context, String fileUrl) throws Exception {
|
|
19
|
+
AssetManager assetManager = context.getAssets();
|
|
20
|
+
String fileName = fileUrl.substring(fileUrl.lastIndexOf('/') + 1);
|
|
21
|
+
String dbName = fileName;
|
|
22
|
+
Boolean isZip = false;
|
|
23
|
+
if (!fileName.contains("SQLite.db")) {
|
|
24
|
+
if (_uFile.getFileExtension((fileName)).equals("db")) {
|
|
25
|
+
dbName = fileName.substring(0, fileName.length() - 3) + "SQLite.db";
|
|
26
|
+
}
|
|
27
|
+
if (_uFile.isLast(fileName, ".zip")) {
|
|
28
|
+
isZip = true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
File cacheDir = context.getCacheDir();
|
|
32
|
+
String cachePath = cacheDir.getAbsolutePath();
|
|
33
|
+
String tmpFilePath = cachePath + File.separator + dbName;
|
|
34
|
+
String databasePath = _uFile.getDatabaseDirectoryPath(context);
|
|
35
|
+
File databaseDir = new File(databasePath);
|
|
36
|
+
try {
|
|
37
|
+
// delete file if exists in cache
|
|
38
|
+
Boolean isExists = _uFile.isPathExists(tmpFilePath);
|
|
39
|
+
if (isExists) {
|
|
40
|
+
_uFile.deleteFile(cachePath, dbName);
|
|
41
|
+
}
|
|
42
|
+
downloadFileToCache(fileUrl, cachePath);
|
|
43
|
+
if (isZip) {
|
|
44
|
+
_uFile.unzipCopyDatabase(cachePath, null, tmpFilePath, true);
|
|
45
|
+
// delete zip file from cache
|
|
46
|
+
_uFile.deleteFile(cachePath, dbName);
|
|
47
|
+
}
|
|
48
|
+
// move files to database folder
|
|
49
|
+
_uFile.moveAllDBs(cacheDir, databaseDir);
|
|
50
|
+
} catch (Exception e) {
|
|
51
|
+
throw new Exception(e.getMessage());
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public static void downloadFileToCache(String fileURL, String cacheDir) throws Exception {
|
|
56
|
+
HttpURLConnection httpConn = null;
|
|
57
|
+
try {
|
|
58
|
+
URL url = new URL(fileURL);
|
|
59
|
+
httpConn = (HttpURLConnection) url.openConnection();
|
|
60
|
+
int responseCode = httpConn.getResponseCode();
|
|
61
|
+
if (responseCode == HttpURLConnection.HTTP_OK) {
|
|
62
|
+
String fileName = "";
|
|
63
|
+
String disposition = httpConn.getHeaderField("Content-Disposition");
|
|
64
|
+
// String contentType = httpConn.getContentType();
|
|
65
|
+
int contentLength = httpConn.getContentLength();
|
|
66
|
+
|
|
67
|
+
if (disposition != null) {
|
|
68
|
+
// extracts file name from header field
|
|
69
|
+
int index = disposition.indexOf("filename=");
|
|
70
|
+
if (index > 0) {
|
|
71
|
+
fileName = disposition.substring(index + 10, disposition.length() - 1);
|
|
72
|
+
}
|
|
73
|
+
} else {
|
|
74
|
+
// extracts file name from URL
|
|
75
|
+
fileName = fileURL.substring(fileURL.lastIndexOf("/") + 1);
|
|
76
|
+
}
|
|
77
|
+
String dbName = fileName;
|
|
78
|
+
if (!fileName.contains("SQLite.db")) {
|
|
79
|
+
if (fileName.substring(fileName.length() - 3).equals(".db")) {
|
|
80
|
+
dbName = fileName.substring(0, fileName.length() - 3) + "SQLite.db";
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// System.out.println("Content-Type = " + contentType);
|
|
85
|
+
// System.out.println("Content-Disposition = " + disposition);
|
|
86
|
+
// System.out.println("Content-Length = " + contentLength);
|
|
87
|
+
// System.out.println("fileName = " + fileName);
|
|
88
|
+
// opens input stream from the HTTP connection
|
|
89
|
+
InputStream inputStream = httpConn.getInputStream();
|
|
90
|
+
// create temporary file path
|
|
91
|
+
String tmpFilePath = cacheDir + File.separator + dbName;
|
|
92
|
+
// opens an output stream to save into file
|
|
93
|
+
FileOutputStream outputStream = new FileOutputStream(tmpFilePath);
|
|
94
|
+
int bytesRead = -1;
|
|
95
|
+
byte[] buffer = new byte[BUFFER_SIZE];
|
|
96
|
+
while ((bytesRead = inputStream.read(buffer)) != -1) {
|
|
97
|
+
outputStream.write(buffer, 0, bytesRead);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
outputStream.close();
|
|
101
|
+
inputStream.close();
|
|
102
|
+
|
|
103
|
+
System.out.println("File " + fileName + " downloaded (" + contentLength + ")");
|
|
104
|
+
} else {
|
|
105
|
+
String msg = "No file to download. Server replied HTTP code: " + responseCode;
|
|
106
|
+
throw new IOException(msg);
|
|
107
|
+
}
|
|
108
|
+
} catch (IOException e) {
|
|
109
|
+
throw new Exception(e);
|
|
110
|
+
} finally {
|
|
111
|
+
if (httpConn != null) {
|
|
112
|
+
httpConn.disconnect();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsFile.java
CHANGED
|
@@ -2,7 +2,9 @@ package com.getcapacitor.community.database.sqlite.SQLite;
|
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
import android.content.res.AssetManager;
|
|
5
|
+
import android.os.Build;
|
|
5
6
|
import android.util.Log;
|
|
7
|
+
import androidx.annotation.RequiresApi;
|
|
6
8
|
import java.io.File;
|
|
7
9
|
import java.io.FileInputStream;
|
|
8
10
|
import java.io.FileOutputStream;
|
|
@@ -10,8 +12,16 @@ import java.io.IOException;
|
|
|
10
12
|
import java.io.InputStream;
|
|
11
13
|
import java.io.OutputStream;
|
|
12
14
|
import java.nio.channels.FileChannel;
|
|
15
|
+
import java.nio.file.DirectoryStream;
|
|
16
|
+
import java.nio.file.Files;
|
|
17
|
+
import java.nio.file.Path;
|
|
18
|
+
import java.nio.file.Paths;
|
|
13
19
|
import java.util.ArrayList;
|
|
20
|
+
import java.util.HashSet;
|
|
14
21
|
import java.util.List;
|
|
22
|
+
import java.util.Set;
|
|
23
|
+
import java.util.stream.Collectors;
|
|
24
|
+
import java.util.stream.Stream;
|
|
15
25
|
import java.util.zip.ZipEntry;
|
|
16
26
|
import java.util.zip.ZipInputStream;
|
|
17
27
|
|
|
@@ -33,6 +43,10 @@ public class UtilsFile {
|
|
|
33
43
|
}
|
|
34
44
|
}
|
|
35
45
|
|
|
46
|
+
public String getDatabaseDirectoryPath(Context context) {
|
|
47
|
+
return context != null && context.getDatabasePath("x") != null ? context.getDatabasePath("x").getParent() : "";
|
|
48
|
+
}
|
|
49
|
+
|
|
36
50
|
public String[] getListOfFiles(Context context) {
|
|
37
51
|
String[] files = context.databaseList();
|
|
38
52
|
List<String> dbs = new ArrayList<>();
|
|
@@ -64,6 +78,10 @@ public class UtilsFile {
|
|
|
64
78
|
return file.delete();
|
|
65
79
|
}
|
|
66
80
|
|
|
81
|
+
public Boolean deleteFile(File file) {
|
|
82
|
+
return file.delete();
|
|
83
|
+
}
|
|
84
|
+
|
|
67
85
|
public void copyFromAssetsToDatabase(Context context, Boolean overwrite) throws Exception {
|
|
68
86
|
AssetManager assetManager = context.getAssets();
|
|
69
87
|
String assetsDatabasePath = "public/assets/databases";
|
|
@@ -99,7 +117,8 @@ public class UtilsFile {
|
|
|
99
117
|
if (isLast(fileName, ".zip")) {
|
|
100
118
|
// unzip file and extract databases
|
|
101
119
|
String zipPathName = assetsDatabasePath + "/" + fileName;
|
|
102
|
-
|
|
120
|
+
String databasePath = getDatabaseDirectoryPath(context);
|
|
121
|
+
unzipCopyDatabase(databasePath, assetManager, zipPathName, overwrite);
|
|
103
122
|
}
|
|
104
123
|
}
|
|
105
124
|
return;
|
|
@@ -109,26 +128,33 @@ public class UtilsFile {
|
|
|
109
128
|
}
|
|
110
129
|
}
|
|
111
130
|
|
|
112
|
-
public void unzipCopyDatabase(
|
|
113
|
-
|
|
114
|
-
|
|
131
|
+
public void unzipCopyDatabase(String databasePath, AssetManager asm, String zipPath, Boolean overwrite) throws IOException {
|
|
132
|
+
InputStream is = null;
|
|
133
|
+
FileInputStream isF = null;
|
|
134
|
+
ZipInputStream zis;
|
|
115
135
|
byte[] buffer = new byte[1024];
|
|
116
|
-
try {
|
|
117
|
-
is = asm.open(zipPath);
|
|
118
|
-
ZipInputStream zis = new ZipInputStream(is);
|
|
119
136
|
|
|
137
|
+
try {
|
|
138
|
+
if (asm != null) {
|
|
139
|
+
is = asm.open(zipPath);
|
|
140
|
+
zis = new ZipInputStream(is);
|
|
141
|
+
} else {
|
|
142
|
+
File zipFile = new File(zipPath);
|
|
143
|
+
isF = new FileInputStream(zipFile);
|
|
144
|
+
zis = new ZipInputStream(isF);
|
|
145
|
+
}
|
|
120
146
|
ZipEntry ze = zis.getNextEntry();
|
|
121
147
|
while (ze != null) {
|
|
122
148
|
String fileName = ze.getName();
|
|
123
149
|
if (isLast(fileName, ".db")) {
|
|
124
150
|
String toFileName = addSQLiteSuffix(fileName);
|
|
125
|
-
|
|
151
|
+
String dbPath = databasePath + File.separator + toFileName;
|
|
152
|
+
boolean isExist = isPathExists(dbPath);
|
|
126
153
|
if (!isExist || overwrite) {
|
|
127
154
|
if (overwrite && isExist) {
|
|
128
|
-
|
|
155
|
+
deleteFile(databasePath, toFileName);
|
|
129
156
|
}
|
|
130
|
-
|
|
131
|
-
File newFile = new File(toPathName);
|
|
157
|
+
File newFile = new File(dbPath);
|
|
132
158
|
System.out.println("Unzipping to " + newFile.getAbsolutePath());
|
|
133
159
|
FileOutputStream fos = new FileOutputStream(newFile);
|
|
134
160
|
int len;
|
|
@@ -145,7 +171,11 @@ public class UtilsFile {
|
|
|
145
171
|
//close last ZipEntry
|
|
146
172
|
zis.closeEntry();
|
|
147
173
|
zis.close();
|
|
148
|
-
is
|
|
174
|
+
if (asm != null && is != null) {
|
|
175
|
+
is.close();
|
|
176
|
+
} else if (isF != null) {
|
|
177
|
+
isF.close();
|
|
178
|
+
}
|
|
149
179
|
} catch (IOException e) {
|
|
150
180
|
throw new IOException("in unzipCopyDatabase " + e.getLocalizedMessage());
|
|
151
181
|
}
|
|
@@ -294,6 +324,53 @@ public class UtilsFile {
|
|
|
294
324
|
}
|
|
295
325
|
}
|
|
296
326
|
|
|
327
|
+
public void moveAllDBs(File fromDir, File toDir) throws Exception {
|
|
328
|
+
// get the file List from fromDir
|
|
329
|
+
List<String> fileList;
|
|
330
|
+
String fromDirPath = fromDir.getAbsolutePath();
|
|
331
|
+
String toDirPath = toDir.getAbsolutePath();
|
|
332
|
+
|
|
333
|
+
try {
|
|
334
|
+
fileList = listDatabases(fromDir);
|
|
335
|
+
for (String fileName : fileList) {
|
|
336
|
+
// Check if the file exists in toDir
|
|
337
|
+
File toFile = new File(toDirPath, fileName);
|
|
338
|
+
Boolean isPath = isPathExists(toFile.getAbsolutePath());
|
|
339
|
+
if (isPath) {
|
|
340
|
+
deleteFile(toFile);
|
|
341
|
+
}
|
|
342
|
+
File fromFile = new File(fromDirPath, fileName);
|
|
343
|
+
|
|
344
|
+
Boolean success = fromFile.renameTo(toFile);
|
|
345
|
+
if (!success) {
|
|
346
|
+
throw new Exception("moveAllDBs: move file " + fileName + " failed");
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
} catch (Exception e) {
|
|
350
|
+
throw new Exception(e.getMessage());
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
public List<String> listDatabases(File fileDir) throws Exception {
|
|
355
|
+
List<String> fileList = new ArrayList<>();
|
|
356
|
+
if (!fileDir.exists()) {
|
|
357
|
+
throw new Exception("File " + fileDir.getAbsolutePath() + " does not exist");
|
|
358
|
+
}
|
|
359
|
+
if (!fileDir.isDirectory()) {
|
|
360
|
+
throw new Exception("File " + fileDir.getAbsolutePath() + " is not a directory");
|
|
361
|
+
}
|
|
362
|
+
File[] fList = fileDir.listFiles();
|
|
363
|
+
for (File file : fList) {
|
|
364
|
+
if (file.isFile()) {
|
|
365
|
+
String fileName = file.getName();
|
|
366
|
+
if (getFileExtension((fileName)).equals("db")) {
|
|
367
|
+
fileList.add(fileName);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
return fileList;
|
|
372
|
+
}
|
|
373
|
+
|
|
297
374
|
private static void copyFileFromFile(File sourceFile, File destFile) throws IOException {
|
|
298
375
|
if (!destFile.getParentFile().exists()) destFile.getParentFile().mkdirs();
|
|
299
376
|
|
package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsUpgrade.java
CHANGED
|
@@ -25,13 +25,14 @@ public class UtilsUpgrade {
|
|
|
25
25
|
*/
|
|
26
26
|
public void onUpgrade(Database db, Dictionary<Integer, JSONObject> upgDict, Integer curVersion, Integer targetVersion)
|
|
27
27
|
throws Exception {
|
|
28
|
-
Log.i(TAG, "UtilsUpgrade.onUpgrade: " + curVersion + "
|
|
28
|
+
Log.i(TAG, "UtilsUpgrade.onUpgrade: from " + curVersion + " to " + targetVersion);
|
|
29
29
|
|
|
30
30
|
List<Integer> sortedKeys = Collections.list(upgDict.keys());
|
|
31
31
|
Collections.sort(sortedKeys);
|
|
32
32
|
|
|
33
33
|
for (Integer versionKey : sortedKeys) {
|
|
34
34
|
if (versionKey > curVersion && versionKey <= targetVersion) {
|
|
35
|
+
Log.i(TAG, "- UtilsUpgrade.onUpgrade toVersion: " + versionKey);
|
|
35
36
|
JSONObject upgrade = upgDict.get(versionKey);
|
|
36
37
|
|
|
37
38
|
JSONArray statementsJson = upgrade.has("statements") ? upgrade.getJSONArray("statements") : new JSONArray();
|
|
@@ -229,6 +229,13 @@ export interface CapacitorSQLitePlugin {
|
|
|
229
229
|
* @since 2.9.0 refactor
|
|
230
230
|
*/
|
|
231
231
|
copyFromAssets(options: capSQLiteFromAssetsOptions): Promise<void>;
|
|
232
|
+
/**
|
|
233
|
+
* Get database or zipped database(s) from url
|
|
234
|
+
* @param options: capSQLiteHTTPOptions
|
|
235
|
+
* @returns Promise<void>
|
|
236
|
+
* @since 4.1.1
|
|
237
|
+
*/
|
|
238
|
+
getFromHTTPRequest(options: capSQLiteHTTPOptions): Promise<void>;
|
|
232
239
|
/**
|
|
233
240
|
* Get the database list
|
|
234
241
|
* @returns Promise<capSQLiteValues>
|
|
@@ -525,6 +532,18 @@ export interface capSQLiteFromAssetsOptions {
|
|
|
525
532
|
*/
|
|
526
533
|
overwrite?: boolean;
|
|
527
534
|
}
|
|
535
|
+
export interface capSQLiteHTTPOptions {
|
|
536
|
+
/**
|
|
537
|
+
* The url of the database or the zipped database(s)
|
|
538
|
+
*/
|
|
539
|
+
url?: string;
|
|
540
|
+
/**
|
|
541
|
+
* Set the overwrite mode for the copy from assets
|
|
542
|
+
* "true"/"false" default to "true"
|
|
543
|
+
*
|
|
544
|
+
*/
|
|
545
|
+
overwrite?: boolean;
|
|
546
|
+
}
|
|
528
547
|
export interface capSQLiteSyncDateOptions {
|
|
529
548
|
/**
|
|
530
549
|
* The database name
|
|
@@ -972,6 +991,14 @@ export interface ISQLiteConnection {
|
|
|
972
991
|
* @since 2.9.0 refactor
|
|
973
992
|
*/
|
|
974
993
|
copyFromAssets(overwrite?: boolean): Promise<void>;
|
|
994
|
+
/**
|
|
995
|
+
*
|
|
996
|
+
* @param url
|
|
997
|
+
* @param overwrite
|
|
998
|
+
* @returns Promise<void>
|
|
999
|
+
* @since 4.1.1
|
|
1000
|
+
*/
|
|
1001
|
+
getFromHTTPRequest(url?: string, overwrite?: boolean): Promise<void>;
|
|
975
1002
|
/**
|
|
976
1003
|
* Check if a database exists
|
|
977
1004
|
* @param database
|
|
@@ -1054,6 +1081,7 @@ export declare class SQLiteConnection implements ISQLiteConnection {
|
|
|
1054
1081
|
importFromJson(jsonstring: string): Promise<capSQLiteChanges>;
|
|
1055
1082
|
isJsonValid(jsonstring: string): Promise<capSQLiteResult>;
|
|
1056
1083
|
copyFromAssets(overwrite?: boolean): Promise<void>;
|
|
1084
|
+
getFromHTTPRequest(url: string, overwrite?: boolean): Promise<void>;
|
|
1057
1085
|
isDatabase(database: string): Promise<capSQLiteResult>;
|
|
1058
1086
|
getDatabaseList(): Promise<capSQLiteValues>;
|
|
1059
1087
|
getMigratableDbList(folderPath: string): Promise<capSQLiteValues>;
|
package/dist/esm/definitions.js
CHANGED
|
@@ -286,6 +286,16 @@ export class SQLiteConnection {
|
|
|
286
286
|
return Promise.reject(err);
|
|
287
287
|
}
|
|
288
288
|
}
|
|
289
|
+
async getFromHTTPRequest(url, overwrite) {
|
|
290
|
+
const mOverwrite = overwrite != null ? overwrite : true;
|
|
291
|
+
try {
|
|
292
|
+
await this.sqlite.getFromHTTPRequest({ url, overwrite: mOverwrite });
|
|
293
|
+
return Promise.resolve();
|
|
294
|
+
}
|
|
295
|
+
catch (err) {
|
|
296
|
+
return Promise.reject(err);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
289
299
|
async isDatabase(database) {
|
|
290
300
|
if (database.endsWith('.db'))
|
|
291
301
|
database = database.slice(0, -3);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAwkC9C;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAE3B,YAAoB,MAAW;QAAX,WAAM,GAAN,MAAM,CAAK;QADvB,oBAAe,GAAoC,IAAI,GAAG,EAAE,CAAC;IACnC,CAAC;IAEnC,KAAK,CAAC,YAAY;QAChB,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC5C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAa;QACtB,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,cAAc;QAClB,IAAI;YACF,MAAM,GAAG,GAAoB,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAChE,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,UAAkB;QAC1C,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;YAClE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,sBAAsB,CAC1B,UAAkB,EAClB,aAAqB;QAErB,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC;gBACvC,UAAU,EAAE,UAAU;gBACtB,aAAa,EAAE,aAAa;aAC7B,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,qBAAqB;QACzB,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC1C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,mBAAmB,CACvB,QAAgB,EAChB,SAAiB,EACjB,UAAoB;QAEpB,MAAM,OAAO,GAA4B;YACvC,SAAS;YACT,UAAU;SACX,CAAC;QACF,IAAI;YACF,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;gBACpC,QAAQ;gBACR,OAAO,EAAE,CAAC,OAAO,CAAC;aACnB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,gBAAgB,CACpB,QAAgB,EAChB,SAAkB,EAClB,IAAY,EACZ,OAAe,EACf,QAAiB;QAEjB,IAAI;YACF,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBACjC,QAAQ;gBACR,SAAS;gBACT,IAAI;gBACJ,OAAO;gBACP,QAAQ;aACT,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC;YAChE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,QAAiB;QACvD,IAAI;YACF,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC;YAChE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,QAAiB;QAEjB,MAAM,GAAG,GAAoB,EAAqB,CAAC;QACnD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC;QAChE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,KAAK,CAAC,kBAAkB,CACtB,QAAgB,EAChB,QAAiB;QAEjB,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC;QAChE,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,OAAO,IAAI,IAAI,WAAW;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iBACxD;gBACH,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,QAAQ,eAAe,CAAC,CAAC;aAC9D;SACF;aAAM;YACL,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,QAAQ,iBAAiB,CAAC,CAAC;SAChE;IACH,CAAC;IACD,KAAK,CAAC,iBAAiB,CACrB,IAAY,EACZ,QAAgB;QAEhB,IAAI;YACF,MAAM,YAAY,GAChB,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBAClC,IAAI;gBACJ,QAAQ;aACT,CAAC,CAAC;YACL,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SACtC;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,kBAAkB,CACtB,YAAoB,EACpB,OAAe;QAEf,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;gBACnC,YAAY;gBACZ,OAAO;aACR,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,MAAM,YAAY,GAAG,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,YAAoB;QAC1C,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,MAAM,YAAY,GAAG,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,YAAoB;QACvC,MAAM,GAAG,GAAoB,EAAqB,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,YAAY,GAAG,CAAC;QACvC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,KAAK,CAAC,oBAAoB,CACxB,YAAoB;QAEpB,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YAC1C,MAAM,QAAQ,GAAG,MAAM,YAAY,GAAG,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,OAAO,IAAI,IAAI,WAAW;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iBACxD;gBACH,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,YAAY,eAAe,CAAC,CAAC;aAClE;SACF;aAAM;YACL,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,YAAY,iBAAiB,CAAC,CAAC;SACpE;IACH,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,YAAoB;QACrC,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;YAC7D,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACD,KAAK,CAAC,mBAAmB;QACvB,MAAM,OAAO,GAA2C,IAAI,GAAG,EAAE,CAAC;QAClE,IAAI;YACF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE;gBAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC9D,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aACxB;YAED,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE;gBAChC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAClC;YACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,2BAA2B;QAC/B,IAAI;YACF,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;aAChC;YACD,MAAM,GAAG,GACP,MAAM,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC;gBAC5C,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;YACL,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAE,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,UAAkB;QACrC,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;YACzE,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,UAAkB;QAClC,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;YACtE,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,SAAmB;QACtC,MAAM,UAAU,GAAY,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAEjE,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;YAC5D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,kBAAkB,CAAC,GAAW,EAAE,SAAmB;QACvD,MAAM,UAAU,GAAY,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;YACrE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjE,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,eAAe;QACnB,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAChD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,mBAAmB,CAAC,UAAkB;QAC1C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1C,OAAO,OAAO,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;SACzD;QACD,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;gBAChD,UAAU,EAAE,UAAU;aACvB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,eAAe,CACnB,UAAmB,EACnB,UAAqB;QAErB,MAAM,IAAI,GAAW,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,MAAM,MAAM,GAAa,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;gBAC5C,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,MAAM;aACnB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,kBAAkB,CACtB,UAAmB,EACnB,UAAqB;QAErB,MAAM,IAAI,GAAW,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,MAAM,MAAM,GAAa,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;gBAC/C,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,MAAM;aACnB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,UAAmB,EACnB,UAAqB;QAErB,MAAM,IAAI,GAAW,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,MAAM,MAAM,GAAa,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC;YAC3C,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;SACnB,CAAC,CAAC;IACL,CAAC;CACF;AAyJD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAC7B,YACU,MAAc,EACd,QAAiB,EACjB,MAAW;QAFX,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAS;QACjB,WAAM,GAAN,MAAM,CAAK;IAClB,CAAC;IAEJ,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,qBAAqB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACrB,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,KAAK;QACT,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACtB,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,MAAM;QACV,IAAI;YACF,MAAM,GAAG,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjD,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,UAAU;QACd,IAAI;YACF,MAAM,OAAO,GAAqB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC7D,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACjC;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,YAAY;QAChB,IAAI;YACF,MAAM,GAAG,GAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC9C,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,OAAO,CACX,UAAkB,EAClB,WAAW,GAAG,IAAI;QAElB,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,GAAG,GAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBACzC,QAAQ,EAAE,IAAI,CAAC,MAAM;oBACrB,UAAU,EAAE,UAAU;oBACtB,WAAW,EAAE,WAAW;oBACxB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC7B;iBAAM;gBACL,OAAO,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;aACxD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,SAAiB,EAAE,MAAc;QAC3C,IAAI,GAAQ,CAAC;QACb,IAAI;YACF,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC5B,QAAQ,EAAE,IAAI,CAAC,MAAM;oBACrB,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,MAAM;oBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;aACJ;iBAAM;gBACL,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC5B,QAAQ,EAAE,IAAI,CAAC,MAAM;oBACrB,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,EAAE;oBACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;aACJ;YACD,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBAC5C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;oBACtD,MAAM,UAAU,GAAa,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;oBAC1D,MAAM,MAAM,GAAU,EAAE,CAAC;oBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC1C,MAAM,OAAO,GAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBACnC,MAAM,UAAU,GAAQ,EAAE,CAAC;wBAC3B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;4BAC7B,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;yBAClC;wBACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBACzB;oBACD,GAAG,GAAG,EAAE,CAAC;oBACT,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;iBACxB;aACF;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,GAAG,CACP,SAAiB,EACjB,MAAc,EACd,WAAW,GAAG,IAAI;QAElB,IAAI,GAAQ,CAAC;QACb,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC/B,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;wBAC1B,QAAQ,EAAE,IAAI,CAAC,MAAM;wBACrB,SAAS,EAAE,SAAS;wBACpB,MAAM,EAAE,MAAM;wBACd,WAAW,EAAE,WAAW;wBACxB,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAC;oBACH,WAAW;iBACZ;qBAAM;oBACL,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;wBAC1B,QAAQ,EAAE,IAAI,CAAC,MAAM;wBACrB,SAAS,EAAE,SAAS;wBACpB,MAAM,EAAE,EAAE;wBACV,WAAW,EAAE,WAAW;wBACxB,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAC;iBACJ;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC7B;iBAAM;gBACL,OAAO,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;aACxD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,UAAU,CACd,GAAmB,EACnB,WAAW,GAAG,IAAI;QAElB,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,GAAG,GAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC5C,QAAQ,EAAE,IAAI,CAAC,MAAM;oBACrB,GAAG,EAAE,GAAG;oBACR,WAAW,EAAE,WAAW;oBACxB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,SAAS;gBACT,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC7B;iBAAM;gBACL,OAAO,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;aACxD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,IAAI;YACF,MAAM,GAAG,GAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC5C,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,KAAa;QACzB,IAAI;YACF,MAAM,GAAG,GAAoB,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3D,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,IAAI;YACF,MAAM,GAAG,GAAoB,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACtD,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,MAAM;QACV,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;oBAC/B,QAAQ,EAAE,IAAI,CAAC,MAAM;oBACrB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;aAC1B;iBAAM;gBACL,OAAO,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;aACxD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,eAAe;QACnB,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,GAAG,GAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;oBACjD,QAAQ,EAAE,IAAI,CAAC,MAAM;oBACrB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC7B;iBAAM;gBACL,OAAO,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;aACxD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;oBAC5B,QAAQ,EAAE,IAAI,CAAC,MAAM;oBACrB,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;aAC1B;iBAAM;gBACL,OAAO,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;aACxD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,WAAW;QACf,IAAI;YACF,MAAM,GAAG,GAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC7C,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC;gBAClB,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACxD,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACjC;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,IAAY;QAC7B,IAAI;YACF,MAAM,GAAG,GAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC9C,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,cAAc,EAAE,IAAI;gBACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IACD,KAAK,CAAC,kBAAkB;QACtB,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;oBACnC,QAAQ,EAAE,IAAI,CAAC,MAAM;oBACrB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;aAC1B;iBAAM;gBACL,OAAO,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;aACxD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,GAA4C;QAE5C,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBACpC,QAAQ,EAAE,IAAI,CAAC,MAAM;oBACrB,UAAU,EAAE,oBAAoB;oBAChC,WAAW,EAAE,KAAK;iBACnB,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE;oBAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;iBACrD;gBACD,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;oBACtB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACzC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;4BAChC,QAAQ,EAAE,IAAI,CAAC,MAAM;4BACrB,SAAS,EAAE,IAAI,CAAC,SAAS;4BACzB,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,WAAW,EAAE,KAAK;4BAClB,QAAQ,EAAE,KAAK;yBAChB,CAAC,CAAC;wBACH,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;4BAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;4BACvC,OAAO,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;yBACpD;qBACF;yBAAM;wBACL,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;4BACpC,QAAQ,EAAE,IAAI,CAAC,MAAM;4BACrB,UAAU,EAAE,IAAI,CAAC,SAAS;4BAC1B,WAAW,EAAE,KAAK;4BAClB,QAAQ,EAAE,KAAK;yBAChB,CAAC,CAAC;wBACH,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE;4BAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gCACxB,QAAQ,EAAE,IAAI,CAAC,MAAM;gCACrB,UAAU,EAAE,WAAW;gCACvB,WAAW,EAAE,KAAK;gCAClB,QAAQ,EAAE,KAAK;6BAChB,CAAC,CAAC;4BACH,OAAO,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;yBACxD;qBACF;iBACF;gBACD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBACxB,QAAQ,EAAE,IAAI,CAAC,MAAM;oBACrB,UAAU,EAAE,SAAS;oBACrB,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;aAC1B;iBAAM;gBACL,OAAO,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;aACxD;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACxB,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,UAAU,EAAE,WAAW;gBACvB,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;CACF"}
|