@kkkwww/deploy 1.0.17 → 1.0.19
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/lib/index.js +30 -10
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -11,16 +11,28 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
import fs from 'fs';
|
|
12
12
|
import path from 'path';
|
|
13
13
|
import os from 'os';
|
|
14
|
+
import process from 'process';
|
|
14
15
|
import SftpClient from 'ssh2-sftp-client';
|
|
15
16
|
import { fileURLToPath } from 'url';
|
|
16
17
|
// ==========================
|
|
17
18
|
const __filename = fileURLToPath(import.meta.url);
|
|
18
19
|
const __dirname = path.dirname(__filename);
|
|
19
|
-
// ==========================
|
|
20
20
|
const CONCURRENCY = 5;
|
|
21
21
|
const CACHE_FILE = path.join(os.homedir(), '.deploy-cache.json');
|
|
22
22
|
const SKIP_LOG_FILE = path.join(os.homedir(), '.deploy-skip.log');
|
|
23
23
|
// ==========================
|
|
24
|
+
// 读取 package.json version
|
|
25
|
+
function getVersion() {
|
|
26
|
+
try {
|
|
27
|
+
const pkgPath = path.resolve(process.cwd(), 'package.json');
|
|
28
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
|
29
|
+
return pkg.version || 'unknown';
|
|
30
|
+
}
|
|
31
|
+
catch (_a) {
|
|
32
|
+
return 'unknown';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// ==========================
|
|
24
36
|
function getArgs() {
|
|
25
37
|
const args = {};
|
|
26
38
|
process.argv.slice(2).forEach((arg) => {
|
|
@@ -28,6 +40,9 @@ function getArgs() {
|
|
|
28
40
|
const [key, ...valArr] = arg.slice(2).split('=');
|
|
29
41
|
args[key] = valArr.join('=') || 'true';
|
|
30
42
|
}
|
|
43
|
+
else if (arg === '-v') {
|
|
44
|
+
args.version = 'true';
|
|
45
|
+
}
|
|
31
46
|
});
|
|
32
47
|
return args;
|
|
33
48
|
}
|
|
@@ -44,7 +59,11 @@ function loadCache() {
|
|
|
44
59
|
// ==========================
|
|
45
60
|
function saveCache(host, config) {
|
|
46
61
|
const all = loadCache();
|
|
47
|
-
all[host]
|
|
62
|
+
if (!all[host])
|
|
63
|
+
all[host] = [];
|
|
64
|
+
const exist = all[host].some((c) => c.localPath === config.localPath && c.remotePath === config.remotePath);
|
|
65
|
+
if (!exist)
|
|
66
|
+
all[host].push(config);
|
|
48
67
|
fs.writeFileSync(CACHE_FILE, JSON.stringify(all, null, 2));
|
|
49
68
|
}
|
|
50
69
|
// ==========================
|
|
@@ -93,7 +112,7 @@ function uploadFile(sftp, local, remote) {
|
|
|
93
112
|
}
|
|
94
113
|
const size = fs.statSync(local).size;
|
|
95
114
|
let uploaded = 0;
|
|
96
|
-
console.log(`\n📤
|
|
115
|
+
console.log(`\n📤 ${local} → ${remote}`);
|
|
97
116
|
return new Promise((resolve, reject) => {
|
|
98
117
|
const rs = fs.createReadStream(local);
|
|
99
118
|
rs.on('data', (c) => {
|
|
@@ -148,6 +167,11 @@ function uploadDir(sftp, localDir, remoteDir) {
|
|
|
148
167
|
function run() {
|
|
149
168
|
return __awaiter(this, void 0, void 0, function* () {
|
|
150
169
|
const args = getArgs();
|
|
170
|
+
// ==== 版本打印 ====
|
|
171
|
+
if (args.version) {
|
|
172
|
+
console.log(`Deploy Script Version: ${getVersion()}`);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
151
175
|
const host = args.host;
|
|
152
176
|
const port = Number(args.port || 22);
|
|
153
177
|
const user = args.user || args.username;
|
|
@@ -161,6 +185,8 @@ function run() {
|
|
|
161
185
|
--host=IP --user=root --password=xxx
|
|
162
186
|
--local=./dist 或 --dir=./dist
|
|
163
187
|
--remote=/www/app 或 --serverDir=/www/app
|
|
188
|
+
--backup=false 可关闭备份
|
|
189
|
+
--version 或 -v 查看版本
|
|
164
190
|
`);
|
|
165
191
|
return;
|
|
166
192
|
}
|
|
@@ -171,8 +197,6 @@ function run() {
|
|
|
171
197
|
yield sftp.connect(config);
|
|
172
198
|
console.log('✅ 已连接\n');
|
|
173
199
|
// ======================
|
|
174
|
-
// 根目录处理逻辑
|
|
175
|
-
// ======================
|
|
176
200
|
const localAbs = path.resolve(localPath);
|
|
177
201
|
const baseName = path.basename(localAbs);
|
|
178
202
|
const keepRoot = remotePath.endsWith('/');
|
|
@@ -184,8 +208,6 @@ function run() {
|
|
|
184
208
|
: `📂 不保留根目录,仅上传内容`);
|
|
185
209
|
console.log(`🚀 ${localAbs} → ${finalRemote}`);
|
|
186
210
|
// ======================
|
|
187
|
-
// 备份
|
|
188
|
-
// ======================
|
|
189
211
|
if (backup) {
|
|
190
212
|
try {
|
|
191
213
|
yield sftp.stat(finalRemote);
|
|
@@ -196,8 +218,6 @@ function run() {
|
|
|
196
218
|
catch (_a) { }
|
|
197
219
|
}
|
|
198
220
|
// ======================
|
|
199
|
-
// 上传
|
|
200
|
-
// ======================
|
|
201
221
|
if (fs.statSync(localAbs).isDirectory()) {
|
|
202
222
|
yield uploadDir(sftp, localAbs, finalRemote);
|
|
203
223
|
}
|
|
@@ -205,7 +225,7 @@ function run() {
|
|
|
205
225
|
yield uploadFile(sftp, localAbs, finalRemote);
|
|
206
226
|
}
|
|
207
227
|
console.log('\n🎉 完成');
|
|
208
|
-
//
|
|
228
|
+
// 保存缓存
|
|
209
229
|
saveCache(host, config);
|
|
210
230
|
console.log('✅ 已缓存');
|
|
211
231
|
}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,6BAA6B;AAC7B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,6BAA6B;AAC7B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;AACjE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC;AAalE,6BAA6B;AAC7B,0BAA0B;AAC1B,SAAS,UAAU;IACf,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IACpC,CAAC;IAAC,WAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED,6BAA6B;AAC7B,SAAS,OAAO;IACZ,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAClC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC;QAC3C,CAAC;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,6BAA6B;AAC7B,SAAS,SAAS;IACd,IAAI,CAAC;QACD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAAC,WAAM,CAAC,CAAA,CAAC;IACV,OAAO,EAAE,CAAC;AACd,CAAC;AAED,6BAA6B;AAC7B,SAAS,SAAS,CAAC,IAAY,EAAE,MAAkB;IAC/C,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAChF,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,6BAA6B;AAC7B,SAAS,OAAO,CAAC,KAAa,EAAE,MAAc;IAC1C,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,aAAa,KAAK,UAAU,MAAM,IAAI,CAAC;IAC/E,EAAE,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,6BAA6B;AAC7B,SAAe,UAAU,CAAC,IAAgB,EAAE,KAAa,EAAE,MAAc;;QACrE,IAAI,CAAC;YACD,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,OAAO,CACH,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;gBACjB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CACnE,CAAC;QACN,CAAC;QAAC,WAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;CAAA;AAED,6BAA6B;AAC7B,SAAe,eAAe,CAAC,IAAgB,EAAE,SAAiB;;QAC9D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YACf,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAAC,WAAM,CAAC;gBACL,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;IACL,CAAC;CAAA;AAED,6BAA6B;AAC7B,SAAe,UAAU,CAAC,IAAgB,EAAE,KAAa,EAAE,MAAc;;QACrE,IAAI,MAAM,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACvB,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;QACrC,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,MAAM,EAAE,CAAC,CAAC;QAEzC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,MAAM,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACtC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;gBAChB,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC;gBACrB,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,QAAQ,IAAI,IAAI,KAAK,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;iBACf,IAAI,CAAC,GAAG,EAAE;gBACP,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACvB,OAAO,EAAE,CAAC;YACd,CAAC,CAAC;iBACD,KAAK,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;CAAA;AAED,6BAA6B;AAC7B,SAAe,qBAAqB,CAAC,KAA8B;;QAC/D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAiB,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CAAA;AAED,6BAA6B;AAC7B,SAAe,SAAS,CAAC,IAAgB,EAAE,QAAgB,EAAE,SAAiB;;QAC1E,MAAM,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,KAAK,GAA4B,EAAE,CAAC;QAE1C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEhC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrB,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACJ,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YACtD,CAAC;QACL,CAAC;QAED,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;CAAA;AAED,6BAA6B;AAC7B,SAAe,GAAG;;QACd,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QAEvB,iBAAiB;QACjB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,0BAA0B,UAAU,EAAE,EAAE,CAAC,CAAC;YACtD,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC;QAEvC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC;;;;;;;CAOnB,CAAC,CAAC;YACK,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAe,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;QAE9B,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAa,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEvB,yBAAyB;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,QAAQ;gBACxB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;gBACvC,CAAC,CAAC,UAAU,CAAC;YAEjB,OAAO,CAAC,GAAG,CACP,QAAQ;gBACJ,CAAC,CAAC,YAAY,QAAQ,EAAE;gBACxB,CAAC,CAAC,iBAAiB,CAC1B,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,MAAM,QAAQ,MAAM,WAAW,EAAE,CAAC,CAAC;YAE/C,yBAAyB;YACzB,IAAI,MAAM,EAAE,CAAC;gBACT,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC7B,MAAM,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACtD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;gBAC1C,CAAC;gBAAC,WAAM,CAAC,CAAA,CAAC;YACd,CAAC;YAED,yBAAyB;YACzB,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtC,MAAM,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACJ,MAAM,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAClD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEvB,OAAO;YACP,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEzB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,MAAM,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YACP,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;CAAA;AAED,GAAG,EAAE,CAAC"}
|