@uipath/agent-tool 1.200.0-preview.120 → 1.201.0-preview.121
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/dist/{agent-project-service-j3sst5cf.js → agent-project-service-j4pgc7gk.js} +3 -3
- package/dist/agent-tool-OK5DK57D-mxt5stp9.js +12 -0
- package/dist/{browser-strategy-v4n9zxyf.js → browser-strategy-16yagjhr.js} +1 -1
- package/dist/{de-LVBY3VVG-tc58p3x6.js → de-WMKOGI7B-r1821wpe.js} +16 -7
- package/dist/{en-4UFXRW7N-mqabr9tf.js → en-X4DLPKLJ-dt1wtdm7.js} +17 -5
- package/dist/{es-CI4AE5B5-55sgqk64.js → es-BVPGJUWA-9gk2g9yb.js} +16 -7
- package/dist/{es-MX-OLZNAYY5-30cmv1dx.js → es-MX-U6YL5KQX-ynwxdjr8.js} +16 -7
- package/dist/executor-tool.js +297 -0
- package/dist/{fr-CCN6ZO5E-x2akzsjt.js → fr-EKTTDR7Z-bmpwp31r.js} +16 -7
- package/dist/index-26bymy67.js +17359 -0
- package/dist/index-9f8q2ege.js +2058 -0
- package/dist/{index-b13x0rpx.js → index-byw2z4xp.js} +12 -9
- package/dist/{index-m7vpyg6b.js → index-f97359cb.js} +5 -5
- package/dist/{packager-tool-mf36zc9b.js → index-hsadteg4.js} +41 -253
- package/dist/{index-w23k88b5.js → index-p50kx6jv.js} +202 -64
- package/dist/{index-08fsnqg0.js → index-rqfxg3fq.js} +1 -1
- package/dist/index.js +15 -12
- package/dist/{integration-tool-service-z414k85p.js → integration-tool-service-n214kzdn.js} +4 -4
- package/dist/{is-client-y2fkfgb9.js → is-client-9b6sp9ag.js} +3 -3
- package/dist/{ja-O2NEV5D6-nt9rhd8c.js → ja-Y2YBTXNN-96cvy5av.js} +16 -7
- package/dist/js-yaml-cggj6w7q.js +3145 -0
- package/dist/{ko-7XWV2SEQ-chk3y7aj.js → ko-S33XAV26-cxf4dn2t.js} +16 -7
- package/dist/{packager-tool-jmzese1s.js → node-strategy-1r3qegaf.js} +62 -32
- package/dist/{packager-tool-973f0r2g.js → packager-tool-1yy9x4vk.js} +17 -5
- package/dist/packager-tool-4fge2k9c.js +419 -0
- package/dist/{packager-tool-yet9qmnt.js → packager-tool-5xdkh3vm.js} +110 -24
- package/dist/{packager-tool-9tv93r4w.js → packager-tool-b098y4a2.js} +2 -418
- package/dist/packager-tool-bpegrcj1.js +5336 -0
- package/dist/{packager-tool-dcazs5r7.js → packager-tool-expj850v.js} +6 -4
- package/dist/packager-tool-fhrpdder.js +4492 -0
- package/dist/{packager-tool-99cr74s9.js → packager-tool-fpj7v9y3.js} +7 -7
- package/dist/{packager-tool-k52eeaqa.js → packager-tool-ggg5bx2h.js} +42767 -28246
- package/dist/{packager-tool-wfbw3w4y.js → packager-tool-gkvdytpj.js} +282 -5275
- package/dist/{packager-tool-1snc64g4.js → packager-tool-q42rrs00.js} +3 -2
- package/dist/packager-tool-qa9gftnj.js +31 -0
- package/dist/{packager-tool-fzq5y98q.js → packager-tool-wzknj3dr.js} +2 -2
- package/dist/packager-tool-yv3rvyas.js +239 -0
- package/dist/packager-tool.js +5 -4
- package/dist/{pt-BR-Z4J3LEEO-cf33d2zv.js → pt-BR-JO45SCNI-4kbfnzc4.js} +16 -7
- package/dist/{pt-CRSN3TCU-txxbbcxm.js → pt-W3NA4LIZ-f02gapvs.js} +16 -7
- package/dist/{ro-WMQEVD7D-6mtq0e6b.js → ro-WLKX6HF5-fcbe2zz8.js} +16 -7
- package/dist/tool.js +15 -12
- package/dist/{tr-UCMB7W3T-xmxp2naq.js → tr-3U2W2XCA-zg3zcmq3.js} +15 -6
- package/dist/{zh-CN-2QOHEFC5-ryjb2byk.js → zh-CN-IPZYQR3P-1h76csc4.js} +16 -7
- package/dist/{zh-TW-Q5QSSTS6-6y7yjbbn.js → zh-TW-YPVSQVGT-wbybwpwt.js} +16 -7
- package/package.json +4 -3
- package/dist/agent-tool-OK5DK57D-8nt05j7t.js +0 -11
- package/dist/node-strategy-cvesesna.js +0 -65
|
@@ -3,9 +3,10 @@ var UIPATH_HOME_DIR = ".uipath";
|
|
|
3
3
|
var AUTH_FILENAME = ".auth";
|
|
4
4
|
var DEFAULT_BASE_URL = "https://cloud.uipath.com";
|
|
5
5
|
var DEFAULT_AUTH_TIMEOUT_MS = 5 * 60 * 1000;
|
|
6
|
+
var AUTH_TIMEOUT_ERROR_CODE = "EAUTHTIMEOUT";
|
|
6
7
|
var AUTH_CANCELLED_ERROR_CODE = "EAUTHCANCELLED";
|
|
7
8
|
var DEFAULT_REDIRECT_URI = "http://localhost:8104/oidc/login";
|
|
8
9
|
|
|
9
|
-
export { UIPATH_HOME_DIR, AUTH_FILENAME, DEFAULT_BASE_URL, DEFAULT_AUTH_TIMEOUT_MS, AUTH_CANCELLED_ERROR_CODE, DEFAULT_REDIRECT_URI };
|
|
10
|
+
export { UIPATH_HOME_DIR, AUTH_FILENAME, DEFAULT_BASE_URL, DEFAULT_AUTH_TIMEOUT_MS, AUTH_TIMEOUT_ERROR_CODE, AUTH_CANCELLED_ERROR_CODE, DEFAULT_REDIRECT_URI };
|
|
10
11
|
|
|
11
|
-
//# debugId=
|
|
12
|
+
//# debugId=0F56C5D203AAAAAA64756E2164756E21
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// ../auth/src/catch-error.ts
|
|
2
|
+
function isPromiseLike(value) {
|
|
3
|
+
return value !== null && typeof value === "object" && typeof value.then === "function";
|
|
4
|
+
}
|
|
5
|
+
function catchError(fnOrPromise) {
|
|
6
|
+
if (isPromiseLike(fnOrPromise)) {
|
|
7
|
+
return settlePromiseLike(fnOrPromise);
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
const result = fnOrPromise();
|
|
11
|
+
if (isPromiseLike(result)) {
|
|
12
|
+
return settlePromiseLike(result);
|
|
13
|
+
}
|
|
14
|
+
return [undefined, result];
|
|
15
|
+
} catch (error) {
|
|
16
|
+
return [
|
|
17
|
+
error instanceof Error ? error : new Error(String(error)),
|
|
18
|
+
undefined
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function settlePromiseLike(thenable) {
|
|
23
|
+
return Promise.resolve(thenable).then((data) => [undefined, data]).catch((error) => [
|
|
24
|
+
error instanceof Error ? error : new Error(String(error)),
|
|
25
|
+
undefined
|
|
26
|
+
]);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { catchError };
|
|
30
|
+
|
|
31
|
+
//# debugId=CD090F76722F72E364756E2164756E21
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OutputFormatter,
|
|
3
3
|
catchError
|
|
4
|
-
} from "./packager-tool-
|
|
4
|
+
} from "./packager-tool-gkvdytpj.js";
|
|
5
5
|
import {
|
|
6
6
|
getFileSystem
|
|
7
|
-
} from "./packager-tool-
|
|
7
|
+
} from "./packager-tool-yv3rvyas.js";
|
|
8
8
|
|
|
9
9
|
// src/services/agent-builder-migrations.ts
|
|
10
10
|
var warnedLegacyToolGuardrailPolicies = false;
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__require
|
|
3
|
+
} from "./packager-tool-wckvcay0.js";
|
|
4
|
+
|
|
5
|
+
// ../filesystem/src/node.ts
|
|
6
|
+
import { randomUUID } from "node:crypto";
|
|
7
|
+
import { existsSync } from "node:fs";
|
|
8
|
+
import * as fs from "node:fs/promises";
|
|
9
|
+
import * as os from "node:os";
|
|
10
|
+
import * as path from "node:path";
|
|
11
|
+
var LOCK_HEARTBEAT_MS = 5000;
|
|
12
|
+
var LOCK_STALE_MS = 15000;
|
|
13
|
+
var LOCK_MAX_WAIT_MS = 20000;
|
|
14
|
+
var LOCK_MAX_HOLD_MS = 60000;
|
|
15
|
+
var LOCK_RETRY_MIN_MS = 100;
|
|
16
|
+
var LOCK_RETRY_JITTER_MS = 200;
|
|
17
|
+
|
|
18
|
+
class NodeFileSystem {
|
|
19
|
+
path = {
|
|
20
|
+
join: path.join,
|
|
21
|
+
resolve: path.resolve,
|
|
22
|
+
relative: path.relative,
|
|
23
|
+
dirname: path.dirname,
|
|
24
|
+
isAbsolute: path.isAbsolute,
|
|
25
|
+
basename: path.basename
|
|
26
|
+
};
|
|
27
|
+
env = {
|
|
28
|
+
cwd: process.cwd,
|
|
29
|
+
homedir: os.homedir,
|
|
30
|
+
tmpdir: os.tmpdir,
|
|
31
|
+
getenv: (key) => process.env[key]
|
|
32
|
+
};
|
|
33
|
+
utils = {
|
|
34
|
+
open: async (url) => {
|
|
35
|
+
const { default: open } = await import("./index-hsadteg4.js");
|
|
36
|
+
await open(url);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
async readFile(path2, options) {
|
|
40
|
+
try {
|
|
41
|
+
if (options) {
|
|
42
|
+
return await fs.readFile(path2, "utf-8");
|
|
43
|
+
}
|
|
44
|
+
return await fs.readFile(path2);
|
|
45
|
+
} catch (error) {
|
|
46
|
+
if (this.isEnoent(error))
|
|
47
|
+
return null;
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async writeFile(filePath, data) {
|
|
52
|
+
const dir = path.dirname(filePath);
|
|
53
|
+
if (dir) {
|
|
54
|
+
await fs.mkdir(dir, { recursive: true });
|
|
55
|
+
}
|
|
56
|
+
await fs.writeFile(filePath, data);
|
|
57
|
+
}
|
|
58
|
+
async appendFile(filePath, data) {
|
|
59
|
+
const dir = path.dirname(filePath);
|
|
60
|
+
if (dir) {
|
|
61
|
+
await fs.mkdir(dir, { recursive: true });
|
|
62
|
+
}
|
|
63
|
+
await fs.appendFile(filePath, data);
|
|
64
|
+
}
|
|
65
|
+
async readdir(dirPath) {
|
|
66
|
+
try {
|
|
67
|
+
return await fs.readdir(dirPath);
|
|
68
|
+
} catch (error) {
|
|
69
|
+
if (this.isEnoent(error))
|
|
70
|
+
return [];
|
|
71
|
+
throw error;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async stat(filePath) {
|
|
75
|
+
try {
|
|
76
|
+
const stats = await fs.stat(filePath);
|
|
77
|
+
return {
|
|
78
|
+
isFile: () => stats.isFile(),
|
|
79
|
+
isDirectory: () => stats.isDirectory(),
|
|
80
|
+
size: stats.size,
|
|
81
|
+
mtimeMs: stats.mtimeMs
|
|
82
|
+
};
|
|
83
|
+
} catch (error) {
|
|
84
|
+
if (this.isEnoent(error))
|
|
85
|
+
return null;
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async exists(filePath) {
|
|
90
|
+
return existsSync(filePath);
|
|
91
|
+
}
|
|
92
|
+
async mkdir(dirPath) {
|
|
93
|
+
await fs.mkdir(dirPath, { recursive: true });
|
|
94
|
+
}
|
|
95
|
+
async acquireLock(lockPath) {
|
|
96
|
+
const canonicalPath = await this.canonicalizeLockTarget(lockPath);
|
|
97
|
+
const lockFile = `${canonicalPath}.lock`;
|
|
98
|
+
const ownerId = randomUUID();
|
|
99
|
+
const start = Date.now();
|
|
100
|
+
while (true) {
|
|
101
|
+
try {
|
|
102
|
+
await fs.writeFile(lockFile, ownerId, { flag: "wx" });
|
|
103
|
+
return this.createLockRelease(lockFile, ownerId);
|
|
104
|
+
} catch (error) {
|
|
105
|
+
if (!this.hasErrnoCode(error, "EEXIST")) {
|
|
106
|
+
throw error;
|
|
107
|
+
}
|
|
108
|
+
const stats = await fs.stat(lockFile).catch(() => null);
|
|
109
|
+
if (stats && Date.now() - stats.mtimeMs > LOCK_STALE_MS) {
|
|
110
|
+
const reclaimed = await fs.rm(lockFile, { force: true }).then(() => true).catch(() => false);
|
|
111
|
+
if (reclaimed)
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if (Date.now() - start > LOCK_MAX_WAIT_MS) {
|
|
115
|
+
throw new Error(`ELOCKED: timed out waiting for lock on ${canonicalPath}`);
|
|
116
|
+
}
|
|
117
|
+
await new Promise((resolve2) => setTimeout(resolve2, LOCK_RETRY_MIN_MS + Math.random() * LOCK_RETRY_JITTER_MS));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
async canonicalizeLockTarget(lockPath) {
|
|
122
|
+
const absolute = path.resolve(lockPath);
|
|
123
|
+
const fullReal = await fs.realpath(absolute).catch(() => null);
|
|
124
|
+
if (fullReal)
|
|
125
|
+
return fullReal;
|
|
126
|
+
const parent = path.dirname(absolute);
|
|
127
|
+
const base = path.basename(absolute);
|
|
128
|
+
const canonicalParent = await fs.realpath(parent).catch(() => parent);
|
|
129
|
+
return path.join(canonicalParent, base);
|
|
130
|
+
}
|
|
131
|
+
createLockRelease(lockFile, ownerId) {
|
|
132
|
+
const heartbeatStart = Date.now();
|
|
133
|
+
let heartbeatTimer;
|
|
134
|
+
let stopped = false;
|
|
135
|
+
const stopHeartbeat = () => {
|
|
136
|
+
stopped = true;
|
|
137
|
+
if (heartbeatTimer)
|
|
138
|
+
clearTimeout(heartbeatTimer);
|
|
139
|
+
};
|
|
140
|
+
const scheduleNextHeartbeat = () => {
|
|
141
|
+
if (stopped)
|
|
142
|
+
return;
|
|
143
|
+
if (Date.now() - heartbeatStart >= LOCK_MAX_HOLD_MS) {
|
|
144
|
+
stopped = true;
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
heartbeatTimer = setTimeout(() => {
|
|
148
|
+
runHeartbeat();
|
|
149
|
+
}, LOCK_HEARTBEAT_MS);
|
|
150
|
+
heartbeatTimer.unref?.();
|
|
151
|
+
};
|
|
152
|
+
const runHeartbeat = async () => {
|
|
153
|
+
if (stopped)
|
|
154
|
+
return;
|
|
155
|
+
const current = await fs.readFile(lockFile, "utf-8").catch(() => null);
|
|
156
|
+
if (stopped)
|
|
157
|
+
return;
|
|
158
|
+
if (current !== ownerId) {
|
|
159
|
+
stopped = true;
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const now = Date.now() / 1000;
|
|
163
|
+
await fs.utimes(lockFile, now, now).catch(() => {});
|
|
164
|
+
scheduleNextHeartbeat();
|
|
165
|
+
};
|
|
166
|
+
scheduleNextHeartbeat();
|
|
167
|
+
let released = false;
|
|
168
|
+
return async () => {
|
|
169
|
+
if (released)
|
|
170
|
+
return;
|
|
171
|
+
released = true;
|
|
172
|
+
stopHeartbeat();
|
|
173
|
+
const current = await fs.readFile(lockFile, "utf-8").catch(() => null);
|
|
174
|
+
if (current === ownerId) {
|
|
175
|
+
await fs.rm(lockFile, { force: true });
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
async rm(filePath) {
|
|
180
|
+
await fs.rm(filePath, { recursive: true, force: true });
|
|
181
|
+
}
|
|
182
|
+
async rename(oldPath, newPath) {
|
|
183
|
+
await fs.rename(oldPath, newPath);
|
|
184
|
+
}
|
|
185
|
+
async realpath(filePath) {
|
|
186
|
+
try {
|
|
187
|
+
return await fs.realpath(filePath);
|
|
188
|
+
} catch (error) {
|
|
189
|
+
if (this.isEnoent(error))
|
|
190
|
+
return filePath;
|
|
191
|
+
throw error;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
async getTempDir() {
|
|
195
|
+
return await fs.mkdtemp(path.join(os.tmpdir(), "uipath-fs-"));
|
|
196
|
+
}
|
|
197
|
+
async copyDirectory(sourcePath, destPath) {
|
|
198
|
+
const sourceStats = await this.stat(sourcePath);
|
|
199
|
+
if (!sourceStats) {
|
|
200
|
+
throw new Error(`Source directory does not exist: ${sourcePath}`);
|
|
201
|
+
}
|
|
202
|
+
if (!sourceStats.isDirectory()) {
|
|
203
|
+
throw new Error(`Source path is not a directory: ${sourcePath}`);
|
|
204
|
+
}
|
|
205
|
+
await this.mkdir(destPath);
|
|
206
|
+
const entries = await this.readdir(sourcePath);
|
|
207
|
+
for (const entry of entries) {
|
|
208
|
+
const srcEntry = path.join(sourcePath, entry);
|
|
209
|
+
const destEntry = path.join(destPath, entry);
|
|
210
|
+
const entryStats = await this.stat(srcEntry);
|
|
211
|
+
if (!entryStats)
|
|
212
|
+
continue;
|
|
213
|
+
if (entryStats.isDirectory()) {
|
|
214
|
+
await this.copyDirectory(srcEntry, destEntry);
|
|
215
|
+
} else if (entryStats.isFile()) {
|
|
216
|
+
const content = await this.readFile(srcEntry);
|
|
217
|
+
if (content !== null) {
|
|
218
|
+
await this.writeFile(destEntry, content);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
isEnoent(error) {
|
|
224
|
+
return this.hasErrnoCode(error, "ENOENT");
|
|
225
|
+
}
|
|
226
|
+
hasErrnoCode(error, code) {
|
|
227
|
+
return typeof error === "object" && error !== null && "code" in error && error.code === code;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// ../filesystem/src/index.ts
|
|
232
|
+
var fsInstance = new NodeFileSystem;
|
|
233
|
+
var setFileSystem = (_fs) => () => {};
|
|
234
|
+
var getFileSystem = () => fsInstance;
|
|
235
|
+
var getFileSystemAsync = async () => fsInstance;
|
|
236
|
+
|
|
237
|
+
export { NodeFileSystem, setFileSystem, getFileSystem, getFileSystemAsync };
|
|
238
|
+
|
|
239
|
+
//# debugId=3E49815A855BD0ED64756E2164756E21
|
package/dist/packager-tool.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ProjectTypes,
|
|
3
3
|
toolsFactoryRepository
|
|
4
|
-
} from "./packager-tool-
|
|
5
|
-
import"./packager-tool-
|
|
4
|
+
} from "./packager-tool-expj850v.js";
|
|
5
|
+
import"./packager-tool-4fge2k9c.js";
|
|
6
6
|
import"./packager-tool-zwztyzps.js";
|
|
7
|
+
import"./packager-tool-b098y4a2.js";
|
|
7
8
|
import {
|
|
8
9
|
__require
|
|
9
10
|
} from "./packager-tool-wckvcay0.js";
|
|
@@ -14,7 +15,7 @@ var AgentToolFactory = class {
|
|
|
14
15
|
this.supportedTypes = [ProjectTypes.Agent];
|
|
15
16
|
}
|
|
16
17
|
async createAsync(logger, fileSystem) {
|
|
17
|
-
const { AgentTool: AgentTool2 } = await import("./agent-tool-OK5DK57D-
|
|
18
|
+
const { AgentTool: AgentTool2 } = await import("./agent-tool-OK5DK57D-mxt5stp9.js");
|
|
18
19
|
return new AgentTool2(fileSystem, logger);
|
|
19
20
|
}
|
|
20
21
|
};
|
|
@@ -30,4 +31,4 @@ export {
|
|
|
30
31
|
registerPackagerFactories
|
|
31
32
|
};
|
|
32
33
|
|
|
33
|
-
//# debugId=
|
|
34
|
+
//# debugId=513F80DD09E6BA2A64756E2164756E21
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import"./packager-tool-c23zrhj8.js";
|
|
2
2
|
import"./packager-tool-wckvcay0.js";
|
|
3
3
|
|
|
4
|
-
// ../../node_modules/@uipath/flow-schema/dist/pt-BR-
|
|
4
|
+
// ../../node_modules/@uipath/flow-schema/dist/pt-BR-JO45SCNI.js
|
|
5
5
|
var agentInputRefs_nodeCollision_message = 'O nó "{{id}}" contém "{{sep}}". Os agentes incorporados codificam referências combinando segmentos de caminho com "{{sep}}", assim "$vars.{{id}}.output.field" pode colidir com outro caminho no runtime. Renomeie o nó para remover "{{sep}}".';
|
|
6
6
|
var agentInputRefs_reservedNamespace_message = '"$agent.{{ref}}" é um namespace de agente-runtime de fluxo interno e não pode ser usado diretamente em prompts. Faça referência à variável do fluxo em "$vars.{{ref}}" ou "$metadata.{{ref}}" em vez disso.';
|
|
7
7
|
var agentInputRefs_unresolvedRef_message = 'Referências de prompt "$vars.{{ref}}", mas não existem nós nem variáveis de fluxo de trabalho "{{rootSegment}}". Adicione a variável/nó ao fluxo ou remova a referência.';
|
|
8
|
-
var agentInputRefs_variableCollision_message = 'A variável do
|
|
8
|
+
var agentInputRefs_variableCollision_message = 'A variável do processo "{{id}}" contém "{{sep}}". Os agentes incorporados codificam referências combinando segmentos de caminho com "{{sep}}", assim "{{id}}" pode colidir com outro caminho no runtime. Renomeie a variável para remover "{{sep}}".';
|
|
9
9
|
var conditionExpression_decisionWrapped_message = 'Condição inválida em "{{nodeLabel}}": {{error}}';
|
|
10
10
|
var conditionExpression_empty_message = "A expressão está vazia";
|
|
11
11
|
var conditionExpression_incomplete_message = "Expressão incompleta";
|
|
12
12
|
var conditionExpression_invalid_message = "Expressão inválida";
|
|
13
|
-
var conditionExpression_required_message = "
|
|
13
|
+
var conditionExpression_required_message = "Adicionar uma condição";
|
|
14
|
+
var conversationalVoiceEndCall_callContextInvalid_message = "{{label}}: o contexto da chamada deve ser vinculado a um objeto de contexto da chamada";
|
|
15
|
+
var conversationalVoice_callContextInvalid_message = "{{label}}: o contexto da chamada deve ser vinculado a um objeto de contexto da chamada";
|
|
16
|
+
var conversationalVoice_callContextRequired_message = "{{label}}: o contexto da chamada é necessário quando a voz está habilitada";
|
|
14
17
|
var dataTransform_customScriptMissing_message = 'A operação de script personalizado "{{nodeLabel}}" não contém um script';
|
|
15
18
|
var dataTransform_filterMissingField_message = 'A condição do filtro "{{nodeLabel}}" não contém um campo';
|
|
16
19
|
var dataTransform_filterNoConditions_message = 'A operação do filtro "{{nodeLabel}}" não tem condições';
|
|
@@ -21,7 +24,7 @@ var dataTransform_mapMissingField_message = 'O mapeamento de campo do mapa "{{no
|
|
|
21
24
|
var dataTransform_mapNoMappings_message = 'A operação do mapa "{{nodeLabel}}" precisa de pelo menos um mapeamento de campo quando os campos originais não são mantidos';
|
|
22
25
|
var dataTransform_missingCollection_message = '"{{nodeLabel}}" não contém uma variável de coleção';
|
|
23
26
|
var dataTransform_noOperations_message = '"{{nodeLabel}}" não contém operações configuradas';
|
|
24
|
-
var escalation_appRequired_message = "
|
|
27
|
+
var escalation_appRequired_message = "Selecionar um aplicativo de ação";
|
|
25
28
|
var escalation_nameRequired_message = "{{label}}: o nome do escalonamento é obrigatório";
|
|
26
29
|
var escalation_quickFormDuplicateFieldLabel_message = '{{label}}: há vários campos rotulados como "{{fieldLabel}}". A tarefa de escalonamento manteria apenas um deles. Tornar os rótulos de campo exclusivos';
|
|
27
30
|
var escalation_recipientRequired_message = "{{label}}: o destinatário de escalonamento é obrigatório";
|
|
@@ -31,7 +34,7 @@ var governance_maxTokensExceeded_message = "O número máximo de tokens por resp
|
|
|
31
34
|
var governance_modelNotAvailable_message = "O modelo {{model}} não é permitido, conforme a política de governança: {{policyName}}";
|
|
32
35
|
var governance_noAllowedModel_message = "Nenhum modelo permitido selecionado, conforme a política de governança: {{policyName}}";
|
|
33
36
|
var governance_temperatureExceeded_message = "A temperatura excede {{maxTemperature}}. Regra aplicada conforme a política de governança: {{policyName}}";
|
|
34
|
-
var hitlQuickForm_emptySchema_message = "
|
|
37
|
+
var hitlQuickForm_emptySchema_message = "Adicione pelo menos um campo";
|
|
35
38
|
var hitlQuickForm_fieldLabelRequired_message = "O rótulo do campo é obrigatório";
|
|
36
39
|
var outputMapping_missing_message = '"{{nodeLabel}}" não tem mapeamento de saída para "{{varId}}"';
|
|
37
40
|
var schemaValidator_genericKeyword_message = '"{{fieldName}}" em "{{nodeLabel}}": {{detail}}';
|
|
@@ -42,7 +45,7 @@ var schemaValidator_outOfRange_message = '"{{fieldName}}" em "{{nodeLabel}}" {{d
|
|
|
42
45
|
var schemaValidator_required_message = '"{{fieldName}}" é obrigatório em "{{nodeLabel}}"';
|
|
43
46
|
var schemaValidator_typeMismatch_message = '"{{fieldName}}" em "{{nodeLabel}}" espera {{type}}';
|
|
44
47
|
var schemaValidator_validation_genericError = "Erro de validação";
|
|
45
|
-
var triggerRequired_message = "O
|
|
48
|
+
var triggerRequired_message = "O processo deve ter pelo menos um nó de gatilho";
|
|
46
49
|
var pt_BR_default = {
|
|
47
50
|
agentInputRefs_nodeCollision_message,
|
|
48
51
|
agentInputRefs_reservedNamespace_message,
|
|
@@ -53,6 +56,9 @@ var pt_BR_default = {
|
|
|
53
56
|
conditionExpression_incomplete_message,
|
|
54
57
|
conditionExpression_invalid_message,
|
|
55
58
|
conditionExpression_required_message,
|
|
59
|
+
conversationalVoiceEndCall_callContextInvalid_message,
|
|
60
|
+
conversationalVoice_callContextInvalid_message,
|
|
61
|
+
conversationalVoice_callContextRequired_message,
|
|
56
62
|
dataTransform_customScriptMissing_message,
|
|
57
63
|
dataTransform_filterMissingField_message,
|
|
58
64
|
dataTransform_filterNoConditions_message,
|
|
@@ -120,6 +126,9 @@ export {
|
|
|
120
126
|
dataTransform_filterNoConditions_message,
|
|
121
127
|
dataTransform_filterMissingField_message,
|
|
122
128
|
dataTransform_customScriptMissing_message,
|
|
129
|
+
conversationalVoice_callContextRequired_message,
|
|
130
|
+
conversationalVoice_callContextInvalid_message,
|
|
131
|
+
conversationalVoiceEndCall_callContextInvalid_message,
|
|
123
132
|
conditionExpression_required_message,
|
|
124
133
|
conditionExpression_invalid_message,
|
|
125
134
|
conditionExpression_incomplete_message,
|
|
@@ -131,4 +140,4 @@ export {
|
|
|
131
140
|
agentInputRefs_nodeCollision_message
|
|
132
141
|
};
|
|
133
142
|
|
|
134
|
-
//# debugId=
|
|
143
|
+
//# debugId=8765BCC31306566364756E2164756E21
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import"./packager-tool-c23zrhj8.js";
|
|
2
2
|
import"./packager-tool-wckvcay0.js";
|
|
3
3
|
|
|
4
|
-
// ../../node_modules/@uipath/flow-schema/dist/pt-
|
|
4
|
+
// ../../node_modules/@uipath/flow-schema/dist/pt-W3NA4LIZ.js
|
|
5
5
|
var agentInputRefs_nodeCollision_message = 'O nó "{{id}}" contém "{{sep}}". Os agentes inline codificam referências ao unir os segmentos de caminho com "{{sep}}", pelo que "$vars.{{id}}.output.field" entraria em conflito com outro caminho no runtime. Mude o nome do nó para remover "{{sep}}".';
|
|
6
6
|
var agentInputRefs_reservedNamespace_message = '"$agent.{{ref}}" é um espaço de nomes de runtime de agente interno do Fluxo e não pode ser utilizado diretamente em pedidos. Referencie a variável de fluxo através de "$vars.{{ref}}" ou "$metadata.{{ref}}" no seu lugar.';
|
|
7
7
|
var agentInputRefs_unresolvedRef_message = 'O pedido referencia "$vars.{{ref}}" mas não existe nenhuma variável de fluxo de trabalho ou nó "{{rootSegment}}". Adicione a variável/nó ao fluxo ou remova a referência.';
|
|
8
|
-
var agentInputRefs_variableCollision_message = 'A variável de
|
|
8
|
+
var agentInputRefs_variableCollision_message = 'A variável de processo "{{id}}" contém "{{sep}}". Os agentes inline codificam referências ao unir segmentos de caminho com "{{sep}}", pelo que "{{id}}" entraria em conflito com outro caminho no runtime. Mude o nome da variável para remover "{{sep}}".';
|
|
9
9
|
var conditionExpression_decisionWrapped_message = 'Condição inválida em "{{nodeLabel}}": {{error}}';
|
|
10
10
|
var conditionExpression_empty_message = "A expressão está vazia";
|
|
11
11
|
var conditionExpression_incomplete_message = "Expressão incompleta";
|
|
12
12
|
var conditionExpression_invalid_message = "Expressão inválida";
|
|
13
|
-
var conditionExpression_required_message = "
|
|
13
|
+
var conditionExpression_required_message = "Adicionar uma condição";
|
|
14
|
+
var conversationalVoiceEndCall_callContextInvalid_message = "{{label}}: o contexto da chamada tem de estar vinculado a um objeto de contexto de chamada";
|
|
15
|
+
var conversationalVoice_callContextInvalid_message = "{{label}}: o contexto da chamada tem de estar vinculado a um objeto de contexto de chamada";
|
|
16
|
+
var conversationalVoice_callContextRequired_message = "{{label}}: O contexto de chamada é necessário quando a voz está ativada";
|
|
14
17
|
var dataTransform_customScriptMissing_message = 'A operação de script personalizada "{{nodeLabel}}" não tem script';
|
|
15
18
|
var dataTransform_filterMissingField_message = 'A condição de filtro "{{nodeLabel}}" tem um campo em falta';
|
|
16
19
|
var dataTransform_filterNoConditions_message = 'A operação de filtro "{{nodeLabel}}" não tem condições';
|
|
@@ -21,7 +24,7 @@ var dataTransform_mapMissingField_message = 'O mapeamento de campo do mapa "{{no
|
|
|
21
24
|
var dataTransform_mapNoMappings_message = 'A operação de mapa "{{nodeLabel}}" necessita de, pelo menos, um mapeamento de campo quando os campos originais não são mantidos';
|
|
22
25
|
var dataTransform_missingCollection_message = '"{{nodeLabel}}" tem uma variável de coleção em falta';
|
|
23
26
|
var dataTransform_noOperations_message = '"{{nodeLabel}}" não tem operações configuradas';
|
|
24
|
-
var escalation_appRequired_message = "
|
|
27
|
+
var escalation_appRequired_message = "Selecionar uma aplicação de ação";
|
|
25
28
|
var escalation_nameRequired_message = "{{label}}: O nome do escalamento é necessário";
|
|
26
29
|
var escalation_quickFormDuplicateFieldLabel_message = '{{label}}: Vários campos estão etiquetados como "{{fieldLabel}}" – a tarefa de escalamento iria manter apenas um deles. Tornar as etiquetas de campos únicas';
|
|
27
30
|
var escalation_recipientRequired_message = "{{label}}: É necessários um destinatário de escalamento";
|
|
@@ -31,7 +34,7 @@ var governance_maxTokensExceeded_message = "O máximo de tokens por resposta exc
|
|
|
31
34
|
var governance_modelNotAvailable_message = "O modelo {{model}} não é permitido, aplicado pela política de governação: {{policyName}}";
|
|
32
35
|
var governance_noAllowedModel_message = "Não foi selecionado um modelo permitido, aplicado pela política de governação: {{policyName}}";
|
|
33
36
|
var governance_temperatureExceeded_message = "A temperatura ultrapassa {{maxTemperature}}. Regra imposta pela política de governação: {{policyName}}";
|
|
34
|
-
var hitlQuickForm_emptySchema_message = "
|
|
37
|
+
var hitlQuickForm_emptySchema_message = "Adicione, pelo menos, um campo";
|
|
35
38
|
var hitlQuickForm_fieldLabelRequired_message = "A etiqueta de campo é obrigatória";
|
|
36
39
|
var outputMapping_missing_message = '"{{nodeLabel}}" tem um mapeamento de saída em falta para "{{varId}}"';
|
|
37
40
|
var schemaValidator_genericKeyword_message = '"{{fieldName}}" em "{{nodeLabel}}": {{detail}}';
|
|
@@ -42,7 +45,7 @@ var schemaValidator_outOfRange_message = '"{{fieldName}}" em "{{nodeLabel}}" {{d
|
|
|
42
45
|
var schemaValidator_required_message = '"{{fieldName}}" é necessário em "{{nodeLabel}}"';
|
|
43
46
|
var schemaValidator_typeMismatch_message = '"{{fieldName}}" em "{{nodeLabel}}" espera {{type}}';
|
|
44
47
|
var schemaValidator_validation_genericError = "Erro de validação";
|
|
45
|
-
var triggerRequired_message = "O
|
|
48
|
+
var triggerRequired_message = "O processo tem de ter, pelo menos, um nó de acionador";
|
|
46
49
|
var pt_default = {
|
|
47
50
|
agentInputRefs_nodeCollision_message,
|
|
48
51
|
agentInputRefs_reservedNamespace_message,
|
|
@@ -53,6 +56,9 @@ var pt_default = {
|
|
|
53
56
|
conditionExpression_incomplete_message,
|
|
54
57
|
conditionExpression_invalid_message,
|
|
55
58
|
conditionExpression_required_message,
|
|
59
|
+
conversationalVoiceEndCall_callContextInvalid_message,
|
|
60
|
+
conversationalVoice_callContextInvalid_message,
|
|
61
|
+
conversationalVoice_callContextRequired_message,
|
|
56
62
|
dataTransform_customScriptMissing_message,
|
|
57
63
|
dataTransform_filterMissingField_message,
|
|
58
64
|
dataTransform_filterNoConditions_message,
|
|
@@ -120,6 +126,9 @@ export {
|
|
|
120
126
|
dataTransform_filterNoConditions_message,
|
|
121
127
|
dataTransform_filterMissingField_message,
|
|
122
128
|
dataTransform_customScriptMissing_message,
|
|
129
|
+
conversationalVoice_callContextRequired_message,
|
|
130
|
+
conversationalVoice_callContextInvalid_message,
|
|
131
|
+
conversationalVoiceEndCall_callContextInvalid_message,
|
|
123
132
|
conditionExpression_required_message,
|
|
124
133
|
conditionExpression_invalid_message,
|
|
125
134
|
conditionExpression_incomplete_message,
|
|
@@ -131,4 +140,4 @@ export {
|
|
|
131
140
|
agentInputRefs_nodeCollision_message
|
|
132
141
|
};
|
|
133
142
|
|
|
134
|
-
//# debugId=
|
|
143
|
+
//# debugId=CE072DEDFFD83C9964756E2164756E21
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import"./packager-tool-c23zrhj8.js";
|
|
2
2
|
import"./packager-tool-wckvcay0.js";
|
|
3
3
|
|
|
4
|
-
// ../../node_modules/@uipath/flow-schema/dist/ro-
|
|
4
|
+
// ../../node_modules/@uipath/flow-schema/dist/ro-WLKX6HF5.js
|
|
5
5
|
var agentInputRefs_nodeCollision_message = "Nodul „{{id}}” conține „{{sep}}”. Agenții inline codifică referințele prin unirea segmentelor de cale cu „{{sep}}”, astfel încât „$vars.{{id}}.output.field” ar intra în conflict cu o altă cale în timpul rulării. Redenumiți nodul pentru a elimina „{{sep}}”.";
|
|
6
6
|
var agentInputRefs_reservedNamespace_message = '"$agent.{{ref}}" este un spațiu de nume intern al runtime-ului agentului din Flow și nu poate fi utilizat direct în prompturi. Faceți referire în schimb la variabila de flux prin "$vars.{{ref}}" sau "$metadata.{{ref}}".';
|
|
7
7
|
var agentInputRefs_unresolvedRef_message = 'Promptul face referire la "$vars.{{ref}}", dar nu există nicio variabilă workflow sau niciun nod „{{rootSegment}}”. Adăugați variabila/nodul în flux sau eliminați referința.';
|
|
8
|
-
var agentInputRefs_variableCollision_message =
|
|
8
|
+
var agentInputRefs_variableCollision_message = 'Variabila de proces "{{id}}" conține "{{sep}}". Agenții inline codifică referințele prin concatenarea segmentelor de cale cu "{{sep}}", astfel încât "{{id}}" ar intra în conflict cu o altă cale în timpul execuției. Redenumiți variabila pentru a elimina "{{sep}}".';
|
|
9
9
|
var conditionExpression_decisionWrapped_message = "Condiție nevalidă pentru „{{nodeLabel}}”: {{error}}";
|
|
10
10
|
var conditionExpression_empty_message = "Expresia este goală";
|
|
11
11
|
var conditionExpression_incomplete_message = "Expresie incompletă";
|
|
12
12
|
var conditionExpression_invalid_message = "Expresie invalidă";
|
|
13
|
-
var conditionExpression_required_message = "
|
|
13
|
+
var conditionExpression_required_message = "Adăugați o condiție";
|
|
14
|
+
var conversationalVoiceEndCall_callContextInvalid_message = "{{label}}: Contextul apelului trebuie asociat cu un obiect de context al apelului";
|
|
15
|
+
var conversationalVoice_callContextInvalid_message = "{{label}}: Contextul apelului trebuie asociat cu un obiect de context al apelului";
|
|
16
|
+
var conversationalVoice_callContextRequired_message = "{{label}}: Contextul apelului este necesar când vocea este activată";
|
|
14
17
|
var dataTransform_customScriptMissing_message = "Operațiunea de script personalizat „{{nodeLabel}}” nu are niciun script";
|
|
15
18
|
var dataTransform_filterMissingField_message = "Condiției de filtrare „{{nodeLabel}}” îi lipsește un câmp";
|
|
16
19
|
var dataTransform_filterNoConditions_message = "Operațiunea de filtrare „{{nodeLabel}}” nu are condiții";
|
|
@@ -21,7 +24,7 @@ var dataTransform_mapMissingField_message = "În maparea câmpurilor pentru „{
|
|
|
21
24
|
var dataTransform_mapNoMappings_message = "Operațiunea de mapare „{{nodeLabel}}” necesită cel puțin o mapare a câmpurilor atunci când câmpurile originale nu sunt păstrate";
|
|
22
25
|
var dataTransform_missingCollection_message = "„{{nodeLabel}}” nu are o variabilă de colecție";
|
|
23
26
|
var dataTransform_noOperations_message = '"{{nodeLabel}}" nu are nicio operațiune configurată';
|
|
24
|
-
var escalation_appRequired_message = "
|
|
27
|
+
var escalation_appRequired_message = "Selectează o aplicație de acțiune";
|
|
25
28
|
var escalation_nameRequired_message = "{{label}}: Numele escaladării este obligatoriu";
|
|
26
29
|
var escalation_quickFormDuplicateFieldLabel_message = "{{label}}: Mai multe câmpuri sunt etichetate „{{fieldLabel}}” — sarcina de escaladare ar păstra doar unul dintre ele. Faceți etichetele câmpurilor unice";
|
|
27
30
|
var escalation_recipientRequired_message = "{{label}}: Destinatarul escaladării este obligatoriu";
|
|
@@ -31,7 +34,7 @@ var governance_maxTokensExceeded_message = "Numărul maxim de tokenuri per răsp
|
|
|
31
34
|
var governance_modelNotAvailable_message = "{{model}} model nu este permis, impus de politica de guvernanță: {{policyName}}";
|
|
32
35
|
var governance_noAllowedModel_message = "Nu este selectat niciun model permis, impus de politica de guvernanță: {{policyName}}";
|
|
33
36
|
var governance_temperatureExceeded_message = "Temperatura depășește {{maxTemperature}}. Regula este aplicată prin politica de guvernanță: {{policyName}}";
|
|
34
|
-
var hitlQuickForm_emptySchema_message = "
|
|
37
|
+
var hitlQuickForm_emptySchema_message = "Adăugați cel puțin un câmp";
|
|
35
38
|
var hitlQuickForm_fieldLabelRequired_message = "Eticheta câmpului este obligatorie";
|
|
36
39
|
var outputMapping_missing_message = '"{{nodeLabel}}" nu are mapare de ieșire pentru "{{varId}}"';
|
|
37
40
|
var schemaValidator_genericKeyword_message = '"{{fieldName}}" pe "{{nodeLabel}}": {{detail}}';
|
|
@@ -42,7 +45,7 @@ var schemaValidator_outOfRange_message = '"{{fieldName}}" pe "{{nodeLabel}}" {{d
|
|
|
42
45
|
var schemaValidator_required_message = '"{{fieldName}}" este obligatoriu în "{{nodeLabel}}"';
|
|
43
46
|
var schemaValidator_typeMismatch_message = "„{{fieldName}}” din „{{nodeLabel}}” așteaptă {{type}}";
|
|
44
47
|
var schemaValidator_validation_genericError = "Eroare de validare";
|
|
45
|
-
var triggerRequired_message = "
|
|
48
|
+
var triggerRequired_message = "Procesul trebuie să aibă cel puțin un nod de declanșare";
|
|
46
49
|
var ro_default = {
|
|
47
50
|
agentInputRefs_nodeCollision_message,
|
|
48
51
|
agentInputRefs_reservedNamespace_message,
|
|
@@ -53,6 +56,9 @@ var ro_default = {
|
|
|
53
56
|
conditionExpression_incomplete_message,
|
|
54
57
|
conditionExpression_invalid_message,
|
|
55
58
|
conditionExpression_required_message,
|
|
59
|
+
conversationalVoiceEndCall_callContextInvalid_message,
|
|
60
|
+
conversationalVoice_callContextInvalid_message,
|
|
61
|
+
conversationalVoice_callContextRequired_message,
|
|
56
62
|
dataTransform_customScriptMissing_message,
|
|
57
63
|
dataTransform_filterMissingField_message,
|
|
58
64
|
dataTransform_filterNoConditions_message,
|
|
@@ -120,6 +126,9 @@ export {
|
|
|
120
126
|
dataTransform_filterNoConditions_message,
|
|
121
127
|
dataTransform_filterMissingField_message,
|
|
122
128
|
dataTransform_customScriptMissing_message,
|
|
129
|
+
conversationalVoice_callContextRequired_message,
|
|
130
|
+
conversationalVoice_callContextInvalid_message,
|
|
131
|
+
conversationalVoiceEndCall_callContextInvalid_message,
|
|
123
132
|
conditionExpression_required_message,
|
|
124
133
|
conditionExpression_invalid_message,
|
|
125
134
|
conditionExpression_incomplete_message,
|
|
@@ -131,4 +140,4 @@ export {
|
|
|
131
140
|
agentInputRefs_nodeCollision_message
|
|
132
141
|
};
|
|
133
142
|
|
|
134
|
-
//# debugId=
|
|
143
|
+
//# debugId=4E1E145A0E7B2E5064756E2164756E21
|
package/dist/tool.js
CHANGED
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
2
|
metadata,
|
|
3
3
|
registerCommands
|
|
4
|
-
} from "./packager-tool-
|
|
5
|
-
import"./packager-tool-
|
|
6
|
-
import"./packager-tool-
|
|
7
|
-
import"./packager-tool-
|
|
8
|
-
import"./packager-tool-
|
|
4
|
+
} from "./packager-tool-ggg5bx2h.js";
|
|
5
|
+
import"./packager-tool-fpj7v9y3.js";
|
|
6
|
+
import"./packager-tool-1yy9x4vk.js";
|
|
7
|
+
import"./packager-tool-c23zrhj8.js";
|
|
8
|
+
import"./packager-tool-fhrpdder.js";
|
|
9
|
+
import"./packager-tool-wzknj3dr.js";
|
|
10
|
+
import"./packager-tool-bpegrcj1.js";
|
|
11
|
+
import"./packager-tool-5xdkh3vm.js";
|
|
12
|
+
import"./packager-tool-gkvdytpj.js";
|
|
9
13
|
import"./packager-tool-nsrs2tm5.js";
|
|
10
|
-
import"./packager-tool-973f0r2g.js";
|
|
11
|
-
import"./packager-tool-9tv93r4w.js";
|
|
12
14
|
import"./packager-tool-0gctz400.js";
|
|
13
|
-
import"./packager-tool-
|
|
14
|
-
import"./packager-tool-
|
|
15
|
-
import"./packager-tool-
|
|
15
|
+
import"./packager-tool-qa9gftnj.js";
|
|
16
|
+
import"./packager-tool-yv3rvyas.js";
|
|
17
|
+
import"./packager-tool-q42rrs00.js";
|
|
18
|
+
import"./packager-tool-4fge2k9c.js";
|
|
16
19
|
import"./packager-tool-zwztyzps.js";
|
|
17
|
-
import"./packager-tool-
|
|
20
|
+
import"./packager-tool-b098y4a2.js";
|
|
18
21
|
import"./packager-tool-wckvcay0.js";
|
|
19
22
|
export {
|
|
20
23
|
registerCommands,
|
|
21
24
|
metadata
|
|
22
25
|
};
|
|
23
26
|
|
|
24
|
-
//# debugId=
|
|
27
|
+
//# debugId=DF4E0430A569A00964756E2164756E21
|