sonamu 0.7.29 → 0.7.30
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/dict/en.d.ts +3 -0
- package/dist/dict/en.d.ts.map +1 -1
- package/dist/dict/en.js +6 -2
- package/dist/dict/ko.d.ts +3 -0
- package/dist/dict/ko.d.ts.map +1 -1
- package/dist/dict/ko.js +6 -2
- package/dist/template/implementations/sd.template.d.ts +5 -3
- package/dist/template/implementations/sd.template.d.ts.map +1 -1
- package/dist/template/implementations/sd.template.js +37 -34
- package/dist/ui/api.d.ts.map +1 -1
- package/dist/ui/api.js +364 -153
- package/dist/ui-web/assets/{index-CF0q64BA.js → index-D7mN6Acb.js} +70 -70
- package/dist/ui-web/assets/index-uQrvbg86.css +1 -0
- package/dist/ui-web/index.html +2 -2
- package/dist/utils/dict-parser.d.ts +26 -0
- package/dist/utils/dict-parser.d.ts.map +1 -0
- package/dist/utils/dict-parser.js +136 -0
- package/package.json +4 -4
- package/src/dict/en.ts +5 -0
- package/src/dict/ko.ts +5 -0
- package/src/template/implementations/sd.template.ts +47 -34
- package/src/ui/api.ts +388 -152
- package/src/utils/dict-parser.ts +164 -0
- package/dist/ui-web/assets/index-DdsG87sJ.css +0 -1
package/dist/dict/en.d.ts
CHANGED
|
@@ -28,6 +28,9 @@ declare const _default: {
|
|
|
28
28
|
readonly "validation.range": (field: string, min: number, max: number) => string;
|
|
29
29
|
readonly "validation.email": "Invalid email format";
|
|
30
30
|
readonly "validation.url": "Invalid URL format";
|
|
31
|
+
readonly "entity.list": (name: string) => string;
|
|
32
|
+
readonly "entity.create": (name: string) => string;
|
|
33
|
+
readonly "entity.edit": (name: string, id: number) => string;
|
|
31
34
|
};
|
|
32
35
|
export default _default;
|
|
33
36
|
//# sourceMappingURL=en.d.ts.map
|
package/dist/dict/en.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/dict/en.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;4CA4B8B,MAAM;6CACL,MAAM,OAAO,MAAM;6CAEnB,MAAM,OAAO,MAAM;yCAEvB,MAAM,OAAO,MAAM,OAAO,MAAM
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/dict/en.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;4CA4B8B,MAAM;6CACL,MAAM,OAAO,MAAM;6CAEnB,MAAM,OAAO,MAAM;yCAEvB,MAAM,OAAO,MAAM,OAAO,MAAM;;;mCAMtC,MAAM;qCACJ,MAAM;mCACR,MAAM,MAAM,MAAM;;AAxC1C,wBAyCW"}
|
package/dist/dict/en.js
CHANGED
|
@@ -30,7 +30,11 @@
|
|
|
30
30
|
"validation.maxLength": (field, max)=>`${field} must be at most ${max} characters`,
|
|
31
31
|
"validation.range": (field, min, max)=>`${field} must be between ${min} and ${max}`,
|
|
32
32
|
"validation.email": "Invalid email format",
|
|
33
|
-
"validation.url": "Invalid URL format"
|
|
33
|
+
"validation.url": "Invalid URL format",
|
|
34
|
+
// Entity pages (template functions)
|
|
35
|
+
"entity.list": (name)=>`${name} List`,
|
|
36
|
+
"entity.create": (name)=>`Create ${name}`,
|
|
37
|
+
"entity.edit": (name, id)=>`Edit ${name} (#${id})`
|
|
34
38
|
};
|
|
35
39
|
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWN0L2VuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU29uYW11IEJ1aWx0LWluIEVuZ2xpc2ggRGljdGlvbmFyeVxuICogUHJvamVjdCBjYW4gb3ZlcnJpZGUgdGhlc2UgYnkgZGVmaW5pbmcgdGhlIHNhbWUga2V5cy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBFcnJvciBtZXNzYWdlc1xuICBcImVycm9yLmJhZFJlcXVlc3RcIjogXCJCYWQgUmVxdWVzdFwiLFxuICBcImVycm9yLnVuYXV0aG9yaXplZFwiOiBcIkF1dGhlbnRpY2F0aW9uIHJlcXVpcmVkXCIsXG4gIFwiZXJyb3IuZm9yYmlkZGVuXCI6IFwiUGVybWlzc2lvbiBkZW5pZWRcIixcbiAgXCJlcnJvci5ub3RGb3VuZFwiOiBcIk5vdCBmb3VuZFwiLFxuICBcImVycm9yLnNlcnZpY2VVbmF2YWlsYWJsZVwiOiBcIlNlcnZpY2UgdW5hdmFpbGFibGVcIixcbiAgXCJlcnJvci5pbnRlcm5hbFNlcnZlckVycm9yXCI6IFwiSW50ZXJuYWwgc2VydmVyIGVycm9yXCIsXG4gIFwiZXJyb3IuYWxyZWFkeVByb2Nlc3NlZFwiOiBcIkFscmVhZHkgcHJvY2Vzc2VkXCIsXG4gIFwiZXJyb3IuZHVwbGljYXRlUm93XCI6IFwiRHVwbGljYXRlIGRhdGFcIixcbiAgXCJlcnJvci50YXJnZXROb3RGb3VuZFwiOiBcIlRhcmdldCBub3QgZm91bmRcIixcblxuICAvLyBDb21tb24gVUlcbiAgXCJjb21tb24uc2F2ZVwiOiBcIlNhdmVcIixcbiAgXCJjb21tb24uY2FuY2VsXCI6IFwiQ2FuY2VsXCIsXG4gIFwiY29tbW9uLmRlbGV0ZVwiOiBcIkRlbGV0ZVwiLFxuICBcImNvbW1vbi5lZGl0XCI6IFwiRWRpdFwiLFxuICBcImNvbW1vbi5jcmVhdGVcIjogXCJDcmVhdGVcIixcbiAgXCJjb21tb24uc2VhcmNoXCI6IFwiU2VhcmNoXCIsXG4gIFwiY29tbW9uLmNvbmZpcm1cIjogXCJDb25maXJtXCIsXG4gIFwiY29tbW9uLmNsb3NlXCI6IFwiQ2xvc2VcIixcblxuICAvLyBDb25maXJtYXRpb24gbWVzc2FnZXNcbiAgXCJjb25maXJtLmRlbGV0ZVwiOiBcIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGU/XCIsXG4gIFwiY29uZmlybS5zYXZlXCI6IFwiRG8geW91IHdhbnQgdG8gc2F2ZT9cIixcblxuICAvLyBWYWxpZGF0aW9uIG1lc3NhZ2VzICh0ZW1wbGF0ZSBmdW5jdGlvbnMpXG4gIFwidmFsaWRhdGlvbi5yZXF1aXJlZFwiOiAoZmllbGQ6IHN0cmluZykgPT4gYCR7ZmllbGR9IGlzIHJlcXVpcmVkYCxcbiAgXCJ2YWxpZGF0aW9uLm1pbkxlbmd0aFwiOiAoZmllbGQ6IHN0cmluZywgbWluOiBudW1iZXIpID0+XG4gICAgYCR7ZmllbGR9IG11c3QgYmUgYXQgbGVhc3QgJHttaW59IGNoYXJhY3RlcnNgLFxuICBcInZhbGlkYXRpb24ubWF4TGVuZ3RoXCI6IChmaWVsZDogc3RyaW5nLCBtYXg6IG51bWJlcikgPT5cbiAgICBgJHtmaWVsZH0gbXVzdCBiZSBhdCBtb3N0ICR7bWF4fSBjaGFyYWN0ZXJzYCxcbiAgXCJ2YWxpZGF0aW9uLnJhbmdlXCI6IChmaWVsZDogc3RyaW5nLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWN0L2VuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU29uYW11IEJ1aWx0LWluIEVuZ2xpc2ggRGljdGlvbmFyeVxuICogUHJvamVjdCBjYW4gb3ZlcnJpZGUgdGhlc2UgYnkgZGVmaW5pbmcgdGhlIHNhbWUga2V5cy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBFcnJvciBtZXNzYWdlc1xuICBcImVycm9yLmJhZFJlcXVlc3RcIjogXCJCYWQgUmVxdWVzdFwiLFxuICBcImVycm9yLnVuYXV0aG9yaXplZFwiOiBcIkF1dGhlbnRpY2F0aW9uIHJlcXVpcmVkXCIsXG4gIFwiZXJyb3IuZm9yYmlkZGVuXCI6IFwiUGVybWlzc2lvbiBkZW5pZWRcIixcbiAgXCJlcnJvci5ub3RGb3VuZFwiOiBcIk5vdCBmb3VuZFwiLFxuICBcImVycm9yLnNlcnZpY2VVbmF2YWlsYWJsZVwiOiBcIlNlcnZpY2UgdW5hdmFpbGFibGVcIixcbiAgXCJlcnJvci5pbnRlcm5hbFNlcnZlckVycm9yXCI6IFwiSW50ZXJuYWwgc2VydmVyIGVycm9yXCIsXG4gIFwiZXJyb3IuYWxyZWFkeVByb2Nlc3NlZFwiOiBcIkFscmVhZHkgcHJvY2Vzc2VkXCIsXG4gIFwiZXJyb3IuZHVwbGljYXRlUm93XCI6IFwiRHVwbGljYXRlIGRhdGFcIixcbiAgXCJlcnJvci50YXJnZXROb3RGb3VuZFwiOiBcIlRhcmdldCBub3QgZm91bmRcIixcblxuICAvLyBDb21tb24gVUlcbiAgXCJjb21tb24uc2F2ZVwiOiBcIlNhdmVcIixcbiAgXCJjb21tb24uY2FuY2VsXCI6IFwiQ2FuY2VsXCIsXG4gIFwiY29tbW9uLmRlbGV0ZVwiOiBcIkRlbGV0ZVwiLFxuICBcImNvbW1vbi5lZGl0XCI6IFwiRWRpdFwiLFxuICBcImNvbW1vbi5jcmVhdGVcIjogXCJDcmVhdGVcIixcbiAgXCJjb21tb24uc2VhcmNoXCI6IFwiU2VhcmNoXCIsXG4gIFwiY29tbW9uLmNvbmZpcm1cIjogXCJDb25maXJtXCIsXG4gIFwiY29tbW9uLmNsb3NlXCI6IFwiQ2xvc2VcIixcblxuICAvLyBDb25maXJtYXRpb24gbWVzc2FnZXNcbiAgXCJjb25maXJtLmRlbGV0ZVwiOiBcIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGU/XCIsXG4gIFwiY29uZmlybS5zYXZlXCI6IFwiRG8geW91IHdhbnQgdG8gc2F2ZT9cIixcblxuICAvLyBWYWxpZGF0aW9uIG1lc3NhZ2VzICh0ZW1wbGF0ZSBmdW5jdGlvbnMpXG4gIFwidmFsaWRhdGlvbi5yZXF1aXJlZFwiOiAoZmllbGQ6IHN0cmluZykgPT4gYCR7ZmllbGR9IGlzIHJlcXVpcmVkYCxcbiAgXCJ2YWxpZGF0aW9uLm1pbkxlbmd0aFwiOiAoZmllbGQ6IHN0cmluZywgbWluOiBudW1iZXIpID0+XG4gICAgYCR7ZmllbGR9IG11c3QgYmUgYXQgbGVhc3QgJHttaW59IGNoYXJhY3RlcnNgLFxuICBcInZhbGlkYXRpb24ubWF4TGVuZ3RoXCI6IChmaWVsZDogc3RyaW5nLCBtYXg6IG51bWJlcikgPT5cbiAgICBgJHtmaWVsZH0gbXVzdCBiZSBhdCBtb3N0ICR7bWF4fSBjaGFyYWN0ZXJzYCxcbiAgXCJ2YWxpZGF0aW9uLnJhbmdlXCI6IChmaWVsZDogc3RyaW5nLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+XG4gICAgYCR7ZmllbGR9IG11c3QgYmUgYmV0d2VlbiAke21pbn0gYW5kICR7bWF4fWAsXG4gIFwidmFsaWRhdGlvbi5lbWFpbFwiOiBcIkludmFsaWQgZW1haWwgZm9ybWF0XCIsXG4gIFwidmFsaWRhdGlvbi51cmxcIjogXCJJbnZhbGlkIFVSTCBmb3JtYXRcIixcblxuICAvLyBFbnRpdHkgcGFnZXMgKHRlbXBsYXRlIGZ1bmN0aW9ucylcbiAgXCJlbnRpdHkubGlzdFwiOiAobmFtZTogc3RyaW5nKSA9PiBgJHtuYW1lfSBMaXN0YCxcbiAgXCJlbnRpdHkuY3JlYXRlXCI6IChuYW1lOiBzdHJpbmcpID0+IGBDcmVhdGUgJHtuYW1lfWAsXG4gIFwiZW50aXR5LmVkaXRcIjogKG5hbWU6IHN0cmluZywgaWQ6IG51bWJlcikgPT4gYEVkaXQgJHtuYW1lfSAoIyR7aWR9KWAsXG59IGFzIGNvbnN0O1xuIl0sIm5hbWVzIjpbImZpZWxkIiwibWluIiwibWF4IiwibmFtZSIsImlkIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxlQUFlO0lBQ2IsaUJBQWlCO0lBQ2pCLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIsbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQiw0QkFBNEI7SUFDNUIsNkJBQTZCO0lBQzdCLDBCQUEwQjtJQUMxQixzQkFBc0I7SUFDdEIsd0JBQXdCO0lBRXhCLFlBQVk7SUFDWixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBRWhCLHdCQUF3QjtJQUN4QixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBRWhCLDJDQUEyQztJQUMzQyx1QkFBdUIsQ0FBQ0EsUUFBa0IsR0FBR0EsTUFBTSxZQUFZLENBQUM7SUFDaEUsd0JBQXdCLENBQUNBLE9BQWVDLE1BQ3RDLEdBQUdELE1BQU0sa0JBQWtCLEVBQUVDLElBQUksV0FBVyxDQUFDO0lBQy9DLHdCQUF3QixDQUFDRCxPQUFlRSxNQUN0QyxHQUFHRixNQUFNLGlCQUFpQixFQUFFRSxJQUFJLFdBQVcsQ0FBQztJQUM5QyxvQkFBb0IsQ0FBQ0YsT0FBZUMsS0FBYUMsTUFDL0MsR0FBR0YsTUFBTSxpQkFBaUIsRUFBRUMsSUFBSSxLQUFLLEVBQUVDLEtBQUs7SUFDOUMsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUVsQixvQ0FBb0M7SUFDcEMsZUFBZSxDQUFDQyxPQUFpQixHQUFHQSxLQUFLLEtBQUssQ0FBQztJQUMvQyxpQkFBaUIsQ0FBQ0EsT0FBaUIsQ0FBQyxPQUFPLEVBQUVBLE1BQU07SUFDbkQsZUFBZSxDQUFDQSxNQUFjQyxLQUFlLENBQUMsS0FBSyxFQUFFRCxLQUFLLEdBQUcsRUFBRUMsR0FBRyxDQUFDLENBQUM7QUFDdEUsRUFBVyJ9
|
package/dist/dict/ko.d.ts
CHANGED
|
@@ -28,6 +28,9 @@ declare const _default: {
|
|
|
28
28
|
readonly "validation.range": (field: string, min: number, max: number) => string;
|
|
29
29
|
readonly "validation.email": "올바른 이메일 형식이 아닙니다";
|
|
30
30
|
readonly "validation.url": "올바른 URL 형식이 아닙니다";
|
|
31
|
+
readonly "entity.list": (name: string) => string;
|
|
32
|
+
readonly "entity.create": (name: string) => string;
|
|
33
|
+
readonly "entity.edit": (name: string, id: number) => string;
|
|
31
34
|
};
|
|
32
35
|
export default _default;
|
|
33
36
|
//# sourceMappingURL=ko.d.ts.map
|
package/dist/dict/ko.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ko.d.ts","sourceRoot":"","sources":["../../src/dict/ko.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;4CA4B8B,MAAM;6CACL,MAAM,OAAO,MAAM;6CAEnB,MAAM,OAAO,MAAM;yCAEvB,MAAM,OAAO,MAAM,OAAO,MAAM
|
|
1
|
+
{"version":3,"file":"ko.d.ts","sourceRoot":"","sources":["../../src/dict/ko.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;4CA4B8B,MAAM;6CACL,MAAM,OAAO,MAAM;6CAEnB,MAAM,OAAO,MAAM;yCAEvB,MAAM,OAAO,MAAM,OAAO,MAAM;;;mCAMtC,MAAM;qCACJ,MAAM;mCACR,MAAM,MAAM,MAAM;;AAxC1C,wBAyCW"}
|
package/dist/dict/ko.js
CHANGED
|
@@ -30,7 +30,11 @@
|
|
|
30
30
|
"validation.maxLength": (field, max)=>`${field}은(는) 최대 ${max}자까지 입력할 수 있습니다`,
|
|
31
31
|
"validation.range": (field, min, max)=>`${field}은(는) ${min}~${max} 사이여야 합니다`,
|
|
32
32
|
"validation.email": "올바른 이메일 형식이 아닙니다",
|
|
33
|
-
"validation.url": "올바른 URL 형식이 아닙니다"
|
|
33
|
+
"validation.url": "올바른 URL 형식이 아닙니다",
|
|
34
|
+
// Entity 페이지 (템플릿 함수)
|
|
35
|
+
"entity.list": (name)=>`${name} 목록`,
|
|
36
|
+
"entity.create": (name)=>`${name} 생성`,
|
|
37
|
+
"entity.edit": (name, id)=>`${name} 수정 (#${id})`
|
|
34
38
|
};
|
|
35
39
|
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWN0L2tvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU29uYW11IOuCtOyepSDtlZzqta3slrQgRGljdGlvbmFyeVxuICog7ZSE66Gc7KCd7Yq47JeQ7IScIOuPmeydvO2VnCDtgqTrpbwg7KCV7J2Y7ZWY66m0IOuNruyWtOyUgeuLiOuLpC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQge1xuICAvLyDsl5Drn6wg66mU7Iuc7KeAXG4gIFwiZXJyb3IuYmFkUmVxdWVzdFwiOiBcIuyemOuqu+uQnCDsmpTssq3snoXri4jri6RcIixcbiAgXCJlcnJvci51bmF1dGhvcml6ZWRcIjogXCLsnbjspp3snbQg7ZWE7JqU7ZWp64uI64ukXCIsXG4gIFwiZXJyb3IuZm9yYmlkZGVuXCI6IFwi6raM7ZWc7J20IOyXhuyKteuLiOuLpFwiLFxuICBcImVycm9yLm5vdEZvdW5kXCI6IFwi7LC+7J2EIOyImCDsl4bsirXri4jri6RcIixcbiAgXCJlcnJvci5zZXJ2aWNlVW5hdmFpbGFibGVcIjogXCLshJzruYTsiqTrpbwg7IKs7Jqp7ZWgIOyImCDsl4bsirXri4jri6RcIixcbiAgXCJlcnJvci5pbnRlcm5hbFNlcnZlckVycm9yXCI6IFwi7ISc67KEIOyYpOulmOqwgCDrsJzsg53tlojsirXri4jri6RcIixcbiAgXCJlcnJvci5hbHJlYWR5UHJvY2Vzc2VkXCI6IFwi7J2066+4IOyymOumrOuQmOyXiOyKteuLiOuLpFwiLFxuICBcImVycm9yLmR1cGxpY2F0ZVJvd1wiOiBcIuykkeuzteuQnCDrjbDsnbTthLDsnoXri4jri6RcIixcbiAgXCJlcnJvci50YXJnZXROb3RGb3VuZFwiOiBcIuuMgOyDgeydhCDssL7snYQg7IiYIOyXhuyKteuLiOuLpFwiLFxuXG4gIC8vIOqzte2GtSBVSVxuICBcImNvbW1vbi5zYXZlXCI6IFwi7KCA7J6lXCIsXG4gIFwiY29tbW9uLmNhbmNlbFwiOiBcIuy3qOyGjFwiLFxuICBcImNvbW1vbi5kZWxldGVcIjogXCLsgq3soJxcIixcbiAgXCJjb21tb24uZWRpdFwiOiBcIuyImOyglVwiLFxuICBcImNvbW1vbi5jcmVhdGVcIjogXCLsg53shLFcIixcbiAgXCJjb21tb24uc2VhcmNoXCI6IFwi6rKA7IOJXCIsXG4gIFwiY29tbW9uLmNvbmZpcm1cIjogXCLtmZXsnbhcIixcbiAgXCJjb21tb24uY2xvc2VcIjogXCLri6vquLBcIixcblxuICAvLyDtmZXsnbgg66mU7Iuc7KeAXG4gIFwiY29uZmlybS5kZWxldGVcIjogXCLsoJXrp5Ag7IKt7KCc7ZWY7Iuc6rKg7Iq164uI6rmMP1wiLFxuICBcImNvbmZpcm0uc2F2ZVwiOiBcIuyggOyepe2VmOyLnOqyoOyKteuLiOq5jD9cIixcblxuICAvLyDqsoDspp0g66mU7Iuc7KeAICjthZztlIzrpr8g7ZWo7IiYKVxuICBcInZhbGlkYXRpb24ucmVxdWlyZWRcIjogKGZpZWxkOiBzdHJpbmcpID0+IGAke2ZpZWxkfeydgCjripQpIO2VhOyImOyeheuLiOuLpGAsXG4gIFwidmFsaWRhdGlvbi5taW5MZW5ndGhcIjogKGZpZWxkOiBzdHJpbmcsIG1pbjogbnVtYmVyKSA9PlxuICAgIGAke2ZpZWxkfeydgCjripQpIOy1nOyGjCAke21pbn3snpAg7J207IOB7J207Ja07JW8IO2VqeuLiOuLpGAsXG4gIFwidmFsaWRhdGlvbi5tYXhMZW5ndGhcIjogKGZpZWxkOiBzdHJpbmcsIG1heDogbnVtYmVyKSA9PlxuICAgIGAke2ZpZWxkfeydgCjripQpIOy1nOuMgCAke21heH3snpDquYzsp4Ag7J6F66Cl7ZWgIOyImCDsnojsirXri4jri6RgLFxuICBcInZhbGlkYXRpb24ucmFuZ2VcIjogKGZpZWxkOiBzdHJpbmcsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikgPT5cbiAgICBgJHtmaWVsZH3snYAo64qUKSAke21pbn1+
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWN0L2tvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU29uYW11IOuCtOyepSDtlZzqta3slrQgRGljdGlvbmFyeVxuICog7ZSE66Gc7KCd7Yq47JeQ7IScIOuPmeydvO2VnCDtgqTrpbwg7KCV7J2Y7ZWY66m0IOuNruyWtOyUgeuLiOuLpC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQge1xuICAvLyDsl5Drn6wg66mU7Iuc7KeAXG4gIFwiZXJyb3IuYmFkUmVxdWVzdFwiOiBcIuyemOuqu+uQnCDsmpTssq3snoXri4jri6RcIixcbiAgXCJlcnJvci51bmF1dGhvcml6ZWRcIjogXCLsnbjspp3snbQg7ZWE7JqU7ZWp64uI64ukXCIsXG4gIFwiZXJyb3IuZm9yYmlkZGVuXCI6IFwi6raM7ZWc7J20IOyXhuyKteuLiOuLpFwiLFxuICBcImVycm9yLm5vdEZvdW5kXCI6IFwi7LC+7J2EIOyImCDsl4bsirXri4jri6RcIixcbiAgXCJlcnJvci5zZXJ2aWNlVW5hdmFpbGFibGVcIjogXCLshJzruYTsiqTrpbwg7IKs7Jqp7ZWgIOyImCDsl4bsirXri4jri6RcIixcbiAgXCJlcnJvci5pbnRlcm5hbFNlcnZlckVycm9yXCI6IFwi7ISc67KEIOyYpOulmOqwgCDrsJzsg53tlojsirXri4jri6RcIixcbiAgXCJlcnJvci5hbHJlYWR5UHJvY2Vzc2VkXCI6IFwi7J2066+4IOyymOumrOuQmOyXiOyKteuLiOuLpFwiLFxuICBcImVycm9yLmR1cGxpY2F0ZVJvd1wiOiBcIuykkeuzteuQnCDrjbDsnbTthLDsnoXri4jri6RcIixcbiAgXCJlcnJvci50YXJnZXROb3RGb3VuZFwiOiBcIuuMgOyDgeydhCDssL7snYQg7IiYIOyXhuyKteuLiOuLpFwiLFxuXG4gIC8vIOqzte2GtSBVSVxuICBcImNvbW1vbi5zYXZlXCI6IFwi7KCA7J6lXCIsXG4gIFwiY29tbW9uLmNhbmNlbFwiOiBcIuy3qOyGjFwiLFxuICBcImNvbW1vbi5kZWxldGVcIjogXCLsgq3soJxcIixcbiAgXCJjb21tb24uZWRpdFwiOiBcIuyImOyglVwiLFxuICBcImNvbW1vbi5jcmVhdGVcIjogXCLsg53shLFcIixcbiAgXCJjb21tb24uc2VhcmNoXCI6IFwi6rKA7IOJXCIsXG4gIFwiY29tbW9uLmNvbmZpcm1cIjogXCLtmZXsnbhcIixcbiAgXCJjb21tb24uY2xvc2VcIjogXCLri6vquLBcIixcblxuICAvLyDtmZXsnbgg66mU7Iuc7KeAXG4gIFwiY29uZmlybS5kZWxldGVcIjogXCLsoJXrp5Ag7IKt7KCc7ZWY7Iuc6rKg7Iq164uI6rmMP1wiLFxuICBcImNvbmZpcm0uc2F2ZVwiOiBcIuyggOyepe2VmOyLnOqyoOyKteuLiOq5jD9cIixcblxuICAvLyDqsoDspp0g66mU7Iuc7KeAICjthZztlIzrpr8g7ZWo7IiYKVxuICBcInZhbGlkYXRpb24ucmVxdWlyZWRcIjogKGZpZWxkOiBzdHJpbmcpID0+IGAke2ZpZWxkfeydgCjripQpIO2VhOyImOyeheuLiOuLpGAsXG4gIFwidmFsaWRhdGlvbi5taW5MZW5ndGhcIjogKGZpZWxkOiBzdHJpbmcsIG1pbjogbnVtYmVyKSA9PlxuICAgIGAke2ZpZWxkfeydgCjripQpIOy1nOyGjCAke21pbn3snpAg7J207IOB7J207Ja07JW8IO2VqeuLiOuLpGAsXG4gIFwidmFsaWRhdGlvbi5tYXhMZW5ndGhcIjogKGZpZWxkOiBzdHJpbmcsIG1heDogbnVtYmVyKSA9PlxuICAgIGAke2ZpZWxkfeydgCjripQpIOy1nOuMgCAke21heH3snpDquYzsp4Ag7J6F66Cl7ZWgIOyImCDsnojsirXri4jri6RgLFxuICBcInZhbGlkYXRpb24ucmFuZ2VcIjogKGZpZWxkOiBzdHJpbmcsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikgPT5cbiAgICBgJHtmaWVsZH3snYAo64qUKSAke21pbn1+JHttYXh9IOyCrOydtOyXrOyVvCDtlanri4jri6RgLFxuICBcInZhbGlkYXRpb24uZW1haWxcIjogXCLsmKzrsJTrpbgg7J2066mU7J28IO2YleyLneydtCDslYTri5nri4jri6RcIixcbiAgXCJ2YWxpZGF0aW9uLnVybFwiOiBcIuyYrOuwlOuluCBVUkwg7ZiV7Iud7J20IOyVhOuLmeuLiOuLpFwiLFxuXG4gIC8vIEVudGl0eSDtjpjsnbTsp4AgKO2FnO2UjOumvyDtlajsiJgpXG4gIFwiZW50aXR5Lmxpc3RcIjogKG5hbWU6IHN0cmluZykgPT4gYCR7bmFtZX0g66qp66GdYCxcbiAgXCJlbnRpdHkuY3JlYXRlXCI6IChuYW1lOiBzdHJpbmcpID0+IGAke25hbWV9IOyDneyEsWAsXG4gIFwiZW50aXR5LmVkaXRcIjogKG5hbWU6IHN0cmluZywgaWQ6IG51bWJlcikgPT4gYCR7bmFtZX0g7IiY7KCVICgjJHtpZH0pYCxcbn0gYXMgY29uc3Q7XG4iXSwibmFtZXMiOlsiZmllbGQiLCJtaW4iLCJtYXgiLCJuYW1lIiwiaWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELGVBQWU7SUFDYixTQUFTO0lBQ1Qsb0JBQW9CO0lBQ3BCLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLDRCQUE0QjtJQUM1Qiw2QkFBNkI7SUFDN0IsMEJBQTBCO0lBQzFCLHNCQUFzQjtJQUN0Qix3QkFBd0I7SUFFeEIsUUFBUTtJQUNSLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFFaEIsU0FBUztJQUNULGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFFaEIsa0JBQWtCO0lBQ2xCLHVCQUF1QixDQUFDQSxRQUFrQixHQUFHQSxNQUFNLFVBQVUsQ0FBQztJQUM5RCx3QkFBd0IsQ0FBQ0EsT0FBZUMsTUFDdEMsR0FBR0QsTUFBTSxRQUFRLEVBQUVDLElBQUksV0FBVyxDQUFDO0lBQ3JDLHdCQUF3QixDQUFDRCxPQUFlRSxNQUN0QyxHQUFHRixNQUFNLFFBQVEsRUFBRUUsSUFBSSxjQUFjLENBQUM7SUFDeEMsb0JBQW9CLENBQUNGLE9BQWVDLEtBQWFDLE1BQy9DLEdBQUdGLE1BQU0sS0FBSyxFQUFFQyxJQUFJLENBQUMsRUFBRUMsSUFBSSxTQUFTLENBQUM7SUFDdkMsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUVsQixzQkFBc0I7SUFDdEIsZUFBZSxDQUFDQyxPQUFpQixHQUFHQSxLQUFLLEdBQUcsQ0FBQztJQUM3QyxpQkFBaUIsQ0FBQ0EsT0FBaUIsR0FBR0EsS0FBSyxHQUFHLENBQUM7SUFDL0MsZUFBZSxDQUFDQSxNQUFjQyxLQUFlLEdBQUdELEtBQUssTUFBTSxFQUFFQyxHQUFHLENBQUMsQ0FBQztBQUNwRSxFQUFXIn0=
|
|
@@ -21,11 +21,9 @@ export declare class Template__sd extends Template {
|
|
|
21
21
|
private capitalize;
|
|
22
22
|
/**
|
|
23
23
|
* 모든 entity.json에서 entity labels 추출
|
|
24
|
+
* entity.json에서 직접 관리되는 값만 포함 (자동 생성 값 제외)
|
|
24
25
|
* - entity.{entityId}: entity title
|
|
25
26
|
* - entity.{entityId}.{propName}: prop desc
|
|
26
|
-
* - entity.{entityId}.list: 목록
|
|
27
|
-
* - entity.{entityId}.create: 생성
|
|
28
|
-
* - entity.{entityId}.edit: 수정 (함수)
|
|
29
27
|
* - enum.{EnumId}.{value}: enum label
|
|
30
28
|
*/
|
|
31
29
|
private extractEntityLabels;
|
|
@@ -34,5 +32,9 @@ export declare class Template__sd extends Template {
|
|
|
34
32
|
*/
|
|
35
33
|
private generateEntityLabelsCode;
|
|
36
34
|
private escapeString;
|
|
35
|
+
/**
|
|
36
|
+
* sonamu dict 소스 파일을 읽어 파싱하고 코드로 변환
|
|
37
|
+
*/
|
|
38
|
+
private generateDictCodeFromSource;
|
|
37
39
|
}
|
|
38
40
|
//# sourceMappingURL=sd.template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/sd.template.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sd.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/sd.template.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;GAGG;AACH,qBAAa,YAAa,SAAQ,QAAQ;;IAKxC,gBAAgB,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK;;;;IAW7E,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC;;;;;;;IAkLrC,OAAO,CAAC,UAAU;IAIlB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,0BAA0B;CAyBnC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
1
3
|
import { Sonamu } from "../../api/sonamu.js";
|
|
2
|
-
import { sonamuDictEn, sonamuDictKo } from "../../dict/index.js";
|
|
3
4
|
import { EntityManager } from "../../entity/entity-manager.js";
|
|
5
|
+
import { parseDictFile } from "../../utils/dict-parser.js";
|
|
4
6
|
import { Template } from "../template.js";
|
|
5
7
|
/**
|
|
6
8
|
* Sonamu Dictionary (SD) 템플릿
|
|
@@ -52,6 +54,9 @@ export function getCurrentLocale(): string {
|
|
|
52
54
|
return _currentLocale;
|
|
53
55
|
}
|
|
54
56
|
`.trim();
|
|
57
|
+
// sonamuDict를 소스 파일에서 파싱하여 코드로 변환 (타입 정보 보존)
|
|
58
|
+
const sonamuDictKoCode = this.generateDictCodeFromSource("sonamuDictKo", "ko");
|
|
59
|
+
const sonamuDictEnCode = this.generateDictCodeFromSource("sonamuDictEn", "en");
|
|
55
60
|
// locale import
|
|
56
61
|
const localeImports = supportedLocales.map((locale)=>`import ${locale} from "./${locale}";`).join("\n");
|
|
57
62
|
// entityLabels를 코드로 변환
|
|
@@ -62,10 +67,10 @@ ${localeManagementCode}
|
|
|
62
67
|
${localeImports}
|
|
63
68
|
|
|
64
69
|
// entity.json에서 추출한 entity labels (defaultLocale 전용)
|
|
65
|
-
${entityLabelsCode}
|
|
70
|
+
${entityLabelsCode}
|
|
66
71
|
|
|
67
|
-
|
|
68
|
-
|
|
72
|
+
${sonamuDictKoCode}
|
|
73
|
+
${sonamuDictEnCode}
|
|
69
74
|
|
|
70
75
|
// defaultLocale의 dictionary를 기준으로 키 추출
|
|
71
76
|
type ProjectDictionary = typeof ${defaultLocale};
|
|
@@ -183,11 +188,9 @@ SD.enumLabels = (enumName: string): Record<string, LocalizedString> => {
|
|
|
183
188
|
}
|
|
184
189
|
/**
|
|
185
190
|
* 모든 entity.json에서 entity labels 추출
|
|
191
|
+
* entity.json에서 직접 관리되는 값만 포함 (자동 생성 값 제외)
|
|
186
192
|
* - entity.{entityId}: entity title
|
|
187
193
|
* - entity.{entityId}.{propName}: prop desc
|
|
188
|
-
* - entity.{entityId}.list: 목록
|
|
189
|
-
* - entity.{entityId}.create: 생성
|
|
190
|
-
* - entity.{entityId}.edit: 수정 (함수)
|
|
191
194
|
* - enum.{EnumId}.{value}: enum label
|
|
192
195
|
*/ extractEntityLabels() {
|
|
193
196
|
const labels = [];
|
|
@@ -197,26 +200,12 @@ SD.enumLabels = (enumName: string): Record<string, LocalizedString> => {
|
|
|
197
200
|
const entityIds = EntityManager.getAllIds();
|
|
198
201
|
for (const entityId of entityIds){
|
|
199
202
|
const entity = EntityManager.get(entityId);
|
|
200
|
-
// entity title
|
|
203
|
+
// entity title (entity.json에서 관리)
|
|
201
204
|
labels.push({
|
|
202
205
|
key: `entity.${entityId}`,
|
|
203
206
|
value: entity.title
|
|
204
207
|
});
|
|
205
|
-
// entity
|
|
206
|
-
labels.push({
|
|
207
|
-
key: `entity.${entityId}.list`,
|
|
208
|
-
value: `${entity.title} 목록`
|
|
209
|
-
});
|
|
210
|
-
labels.push({
|
|
211
|
-
key: `entity.${entityId}.create`,
|
|
212
|
-
value: `${entity.title} 생성`
|
|
213
|
-
});
|
|
214
|
-
labels.push({
|
|
215
|
-
key: `entity.${entityId}.edit`,
|
|
216
|
-
value: `${entity.title} 수정 (#\${id})`,
|
|
217
|
-
isFunction: true
|
|
218
|
-
});
|
|
219
|
-
// prop labels (prop name을 camelCase로 변환)
|
|
208
|
+
// prop labels (entity.json에서 관리)
|
|
220
209
|
for (const prop of entity.props){
|
|
221
210
|
if (prop.desc) {
|
|
222
211
|
labels.push({
|
|
@@ -225,7 +214,7 @@ SD.enumLabels = (enumName: string): Record<string, LocalizedString> => {
|
|
|
225
214
|
});
|
|
226
215
|
}
|
|
227
216
|
}
|
|
228
|
-
// enum labels
|
|
217
|
+
// enum labels (entity.json에서 관리)
|
|
229
218
|
for (const [enumId, enumLabelsMap] of Object.entries(entity.enumLabels)){
|
|
230
219
|
for (const [value, label] of Object.entries(enumLabelsMap)){
|
|
231
220
|
labels.push({
|
|
@@ -243,15 +232,7 @@ SD.enumLabels = (enumName: string): Record<string, LocalizedString> => {
|
|
|
243
232
|
if (labels.length === 0) {
|
|
244
233
|
return "const entityLabels = {} as const;";
|
|
245
234
|
}
|
|
246
|
-
const entries =
|
|
247
|
-
for (const { key, value, isFunction } of labels){
|
|
248
|
-
if (isFunction) {
|
|
249
|
-
// 함수로 생성 (id 파라미터)
|
|
250
|
-
entries.push(` "${key}": (id: number) => \`${value}\`,`);
|
|
251
|
-
} else {
|
|
252
|
-
entries.push(` "${key}": "${this.escapeString(value)}",`);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
235
|
+
const entries = labels.map(({ key, value })=>` "${key}": "${this.escapeString(value)}",`);
|
|
255
236
|
return `const entityLabels = {
|
|
256
237
|
${entries.join("\n")}
|
|
257
238
|
} as const;`;
|
|
@@ -259,6 +240,28 @@ ${entries.join("\n")}
|
|
|
259
240
|
escapeString(str) {
|
|
260
241
|
return str.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n");
|
|
261
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* sonamu dict 소스 파일을 읽어 파싱하고 코드로 변환
|
|
245
|
+
*/ generateDictCodeFromSource(varName, locale) {
|
|
246
|
+
// sonamu 패키지 루트에서 src/dict 경로 찾기
|
|
247
|
+
// __dirname이 dist/template/implementations일 수 있으므로 패키지 루트 기준으로 접근
|
|
248
|
+
const packageRoot = path.resolve(import.meta.dirname, "..", "..", "..");
|
|
249
|
+
const dictPath = path.join(packageRoot, "src", "dict", `${locale}.ts`);
|
|
250
|
+
if (!fs.existsSync(dictPath)) {
|
|
251
|
+
return `const ${varName} = {};`;
|
|
252
|
+
}
|
|
253
|
+
const entries = parseDictFile(dictPath);
|
|
254
|
+
if (entries.length === 0) {
|
|
255
|
+
return `const ${varName} = {};`;
|
|
256
|
+
}
|
|
257
|
+
const entryLines = entries.map(({ key, value, isFunction })=>{
|
|
258
|
+
const codeValue = isFunction ? value : `"${this.escapeString(value)}"`;
|
|
259
|
+
return ` "${key}": ${codeValue},`;
|
|
260
|
+
});
|
|
261
|
+
return `const ${varName} = {
|
|
262
|
+
${entryLines.join("\n")}
|
|
263
|
+
};`;
|
|
264
|
+
}
|
|
262
265
|
}
|
|
263
266
|
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvc2QudGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uLy4uL2FwaS9zb25hbXVcIjtcbmltcG9ydCB7IHNvbmFtdURpY3RFbiwgc29uYW11RGljdEtvIH0gZnJvbSBcIi4uLy4uL2RpY3RcIjtcbmltcG9ydCB7IEVudGl0eU1hbmFnZXIsIHR5cGUgRW50aXR5TmFtZXNSZWNvcmQgfSBmcm9tIFwiLi4vLi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlT3B0aW9ucyB9IGZyb20gXCIuLi8uLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiLi4vdGVtcGxhdGVcIjtcblxuLyoqXG4gKiBTb25hbXUgRGljdGlvbmFyeSAoU0QpIO2FnO2UjOumv1xuICogaTE4buydhCDsnITtlZwgc2QuZ2VuZXJhdGVkLnRzIO2MjOydvOydhCDsg53shLHtlanri4jri6QuXG4gKi9cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZV9fc2QgZXh0ZW5kcyBUZW1wbGF0ZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwic2RcIik7XG4gIH1cblxuICBnZXRUYXJnZXRBbmRQYXRoKF9uYW1lcz86IEVudGl0eU5hbWVzUmVjb3JkLCBzZFRhcmdldD86IFwiYXBpXCIgfCBcIndlYlwiIHwgXCJhcHBcIikge1xuICAgIGNvbnN0IHRhcmdldCA9IHNkVGFyZ2V0ID8/IFwiYXBpXCI7XG4gICAgLy8gYXBpLmRpcuydgCDsg4HrjIAg6rK966GcKFwiYXBpXCIp7J2066+A66GcLCB3ZWIvYXBw64+EIOyDgeuMgCDqsr3roZzroZwg66ee7LakXG4gICAgY29uc3QgZGlyID0gdGFyZ2V0ID09PSBcImFwaVwiID8gU29uYW11LmNvbmZpZy5hcGkuZGlyIDogdGFyZ2V0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRhcmdldDogYCR7ZGlyfS9zcmMvaTE4bmAsXG4gICAgICBwYXRoOiBcInNkLmdlbmVyYXRlZC50c1wiLFxuICAgIH07XG4gIH1cblxuICByZW5kZXIob3B0aW9uczogVGVtcGxhdGVPcHRpb25zW1wic2RcIl0pIHtcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBpMThuQ29uZmlnID0gU29uYW11LmNvbmZpZy5pMThuID8/IHtcbiAgICAgIGRlZmF1bHRMb2NhbGU6IFwia29cIixcbiAgICAgIHN1cHBvcnRlZExvY2FsZXM6IFtcImtvXCJdLFxuICAgIH07XG5cbiAgICBjb25zdCB7IGRlZmF1bHRMb2NhbGUsIHN1cHBvcnRlZExvY2FsZXMgfSA9IGkxOG5Db25maWc7XG5cbiAgICAvLyBlbnRpdHkuanNvbuyXkOyEnCBlbnRpdHkgbGFiZWxzIOy2lOy2nFxuICAgIGNvbnN0IGVudGl0eUxhYmVscyA9IHRoaXMuZXh0cmFjdEVudGl0eUxhYmVscygpO1xuXG4gICAgLy8g7ZSM656r7Y+867OEIGxvY2FsZSDqtIDrpqwg7L2U65OcXG4gICAgY29uc3QgbG9jYWxlTWFuYWdlbWVudENvZGUgPVxuICAgICAgdGFyZ2V0ID09PSBcImFwaVwiXG4gICAgICAgID8gYFxuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcInNvbmFtdVwiO1xuXG5jb25zdCBERUZBVUxUX0xPQ0FMRSA9IFwiJHtkZWZhdWx0TG9jYWxlfVwiO1xuY29uc3QgU1VQUE9SVEVEX0xPQ0FMRVMgPSAke0pTT04uc3RyaW5naWZ5KHN1cHBvcnRlZExvY2FsZXMpfTtcbmZ1bmN0aW9uIGdldEN1cnJlbnRMb2NhbGUoKTogc3RyaW5nIHtcbiAgY29uc3QgY3R4ID0gU29uYW11LmdldENvbnRleHQoKTtcbiAgcmV0dXJuIGN0eD8ubG9jYWxlID8/IERFRkFVTFRfTE9DQUxFO1xufVxuYC50cmltKClcbiAgICAgICAgOiBgXG5jb25zdCBERUZBVUxUX0xPQ0FMRSA9IFwiJHtkZWZhdWx0TG9jYWxlfVwiO1xuY29uc3QgU1VQUE9SVEVEX0xPQ0FMRVMgPSAke0pTT04uc3RyaW5naWZ5KHN1cHBvcnRlZExvY2FsZXMpfTtcbmxldCBfY3VycmVudExvY2FsZSA9IERFRkFVTFRfTE9DQUxFO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0TG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gIF9jdXJyZW50TG9jYWxlID0gbG9jYWxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VycmVudExvY2FsZSgpOiBzdHJpbmcge1xuICByZXR1cm4gX2N1cnJlbnRMb2NhbGU7XG59XG5gLnRyaW0oKTtcblxuICAgIC8vIGxvY2FsZSBpbXBvcnRcbiAgICBjb25zdCBsb2NhbGVJbXBvcnRzID0gc3VwcG9ydGVkTG9jYWxlc1xuICAgICAgLm1hcCgobG9jYWxlKSA9PiBgaW1wb3J0ICR7bG9jYWxlfSBmcm9tIFwiLi8ke2xvY2FsZX1cIjtgKVxuICAgICAgLmpvaW4oXCJcXG5cIik7XG5cbiAgICAvLyBlbnRpdHlMYWJlbHPrpbwg7L2U65Oc66GcIOuzgO2ZmFxuICAgIGNvbnN0IGVudGl0eUxhYmVsc0NvZGUgPSB0aGlzLmdlbmVyYXRlRW50aXR5TGFiZWxzQ29kZShlbnRpdHlMYWJlbHMpO1xuXG4gICAgY29uc3QgYm9keSA9IGBcbiR7bG9jYWxlTWFuYWdlbWVudENvZGV9XG5cbiR7bG9jYWxlSW1wb3J0c31cblxuLy8gZW50aXR5Lmpzb27sl5DshJwg7LaU7Lac7ZWcIGVudGl0eSBsYWJlbHMgKGRlZmF1bHRMb2NhbGUg7KCE7JqpKVxuJHtlbnRpdHlMYWJlbHNDb2RlfSAgICBcblxuY29uc3Qgc29uYW11RGljdEtvID0gJHtKU09OLnN0cmluZ2lmeShzb25hbXVEaWN0S28sIG51bGwsIDIpfTtcbmNvbnN0IHNvbmFtdURpY3RFbiA9ICR7SlNPTi5zdHJpbmdpZnkoc29uYW11RGljdEVuLCBudWxsLCAyKX07XG5cbi8vIGRlZmF1bHRMb2NhbGXsnZggZGljdGlvbmFyeeulvCDquLDspIDsnLzroZwg7YKkIOy2lOy2nFxudHlwZSBQcm9qZWN0RGljdGlvbmFyeSA9IHR5cGVvZiAke2RlZmF1bHRMb2NhbGV9O1xudHlwZSBTb25hbXVEaWN0aW9uYXJ5ID0gdHlwZW9mIHNvbmFtdURpY3Qke3RoaXMuY2FwaXRhbGl6ZShkZWZhdWx0TG9jYWxlKX07XG50eXBlIEVudGl0eUxhYmVscyA9IHR5cGVvZiBlbnRpdHlMYWJlbHM7XG50eXBlIFJhd01lcmdlZERpY3Rpb25hcnkgPSBFbnRpdHlMYWJlbHMgJiBTb25hbXVEaWN0aW9uYXJ5ICYgUHJvamVjdERpY3Rpb25hcnk7XG5cbi8vIO2CpOuKlCDsnKDsp4DtlZjrkJgsIOqwkiDtg4DsnoXsnYAgc3RyaW5nIOuYkOuKlCDtlajsiJjroZwg7J2867CY7ZmUICjri6TrpbggbG9jYWxl7J2YIOumrO2EsOuftCDtg4DsnoUg7Lap64+MIOuwqeyngClcbnR5cGUgTWVyZ2VkRGljdGlvbmFyeSA9IHtcbiAgW0sgaW4ga2V5b2YgUmF3TWVyZ2VkRGljdGlvbmFyeV06IFJhd01lcmdlZERpY3Rpb25hcnlbS10gZXh0ZW5kcyAoLi4uYXJnczogaW5mZXIgUCkgPT4gc3RyaW5nXG4gICAgPyAoLi4uYXJnczogUCkgPT4gc3RyaW5nXG4gICAgOiBzdHJpbmc7XG59O1xudHlwZSBEaWN0S2V5ID0ga2V5b2YgTWVyZ2VkRGljdGlvbmFyeTtcbmV4cG9ydCB0eXBlIExvY2FsaXplZFN0cmluZyA9IHN0cmluZyAmIHsgX19icmFuZDogXCJMb2NhbGl6ZWRTdHJpbmdcIiB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lTG9jYWxlKGRpY3Q6IFBhcnRpYWw8TWVyZ2VkRGljdGlvbmFyeT4pIHtcbiAgcmV0dXJuIGRpY3Q7XG59XG5cbi8vIOqwgSBsb2NhbGXrs4TroZwgZW50aXR5IGxhYmVscyArIFNvbmFtdSDrgrTsnqUgZGljdCArIO2UhOuhnOygne2KuCBkaWN0IO2Vqey5qFxuY29uc3QgZGljdGlvbmFyaWVzOiBSZWNvcmQ8c3RyaW5nLCBQYXJ0aWFsPE1lcmdlZERpY3Rpb25hcnk+PiA9IHtcbiAgJHtkZWZhdWx0TG9jYWxlfTogeyAuLi5zb25hbXVEaWN0JHt0aGlzLmNhcGl0YWxpemUoZGVmYXVsdExvY2FsZSl9LCAuLi5lbnRpdHlMYWJlbHMsIC4uLiR7ZGVmYXVsdExvY2FsZX0gfSxcbiAgJHtzdXBwb3J0ZWRMb2NhbGVzXG4gICAgLmZpbHRlcigobG9jYWxlKSA9PiBsb2NhbGUgIT09IGRlZmF1bHRMb2NhbGUpXG4gICAgLm1hcCgobG9jYWxlKSA9PiBgICAke2xvY2FsZX06IHsgLi4uc29uYW11RGljdCR7dGhpcy5jYXBpdGFsaXplKGxvY2FsZSl9LCAuLi4ke2xvY2FsZX0gfSxgKVxuICAgIC5qb2luKFwiXFxuXCIpfVxufTtcblxudHlwZSBTRFJldHVyblR5cGU8SyBleHRlbmRzIERpY3RLZXk+ID0gTWVyZ2VkRGljdGlvbmFyeVtLXSBleHRlbmRzICguLi5hcmdzOiBpbmZlciBQKSA9PiBzdHJpbmdcbiAgPyAoLi4uYXJnczogUCkgPT4gTG9jYWxpemVkU3RyaW5nXG4gIDogTG9jYWxpemVkU3RyaW5nO1xuXG5mdW5jdGlvbiBnZXREaWN0VmFsdWU8SyBleHRlbmRzIERpY3RLZXk+KGtleTogSywgbG9jYWxlOiBzdHJpbmcpOiBTRFJldHVyblR5cGU8Sz4ge1xuICBjb25zdCBkaWN0ID0gZGljdGlvbmFyaWVzW2xvY2FsZV07XG4gIGNvbnN0IHZhbHVlID0gZGljdD8uW2tleV0gPz8gZGljdGlvbmFyaWVzW0RFRkFVTFRfTE9DQUxFXT8uW2tleV0gPz8ga2V5O1xuICByZXR1cm4gdmFsdWUgYXMgdW5rbm93biBhcyBTRFJldHVyblR5cGU8Sz47XG59XG5cbi8qKlxuICogU29uYW11IERpY3Rpb25hcnkg7ZWo7IiYXG4gKiBsb2NhbGXsl5Ag66ee64qUIOuyiOyXrSDthY3siqTtirjrpbwg67CY7ZmY7ZWp64uI64ukLlxuICpcbiAqIEBleGFtcGxlXG4gKiBTRChcImNvbW1vbi5zYXZlXCIpICAvLyDihpIgXCLsoIDsnqVcIiAoTG9jYWxpemVkU3RyaW5nKVxuICogU0QoXCJ1c2VyLm5vdEZvdW5kXCIpKDEpICAvLyDihpIgXCLsobTsnqztlZjsp4Ag7JWK64qUIFVzZXIgSUQgMVwiIChMb2NhbGl6ZWRTdHJpbmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTRDxLIGV4dGVuZHMgRGljdEtleT4oa2V5OiBLKTogU0RSZXR1cm5UeXBlPEs+IHtcbiAgY29uc3QgbG9jYWxlID0gZ2V0Q3VycmVudExvY2FsZSgpO1xuICByZXR1cm4gZ2V0RGljdFZhbHVlKGtleSwgbG9jYWxlKTtcbn1cblxuLyoqXG4gKiDtirnsoJUgbG9jYWxl7J2YIOuyiOyXrSDthY3siqTtirjrpbwg67CY7ZmY7ZWY64qUIO2VqOyImOulvCDsg53shLHtlanri4jri6QuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IEVOID0gU0QubG9jYWxlKFwiZW5cIik7XG4gKiBFTihcImNvbW1vbi5zYXZlXCIpICAvLyDihpIgXCJTYXZlXCJcbiAqL1xuU0QubG9jYWxlID0gKGxvY2FsZTogc3RyaW5nKSA9PiA8SyBleHRlbmRzIERpY3RLZXk+KGtleTogSyk6IFNEUmV0dXJuVHlwZTxLPiA9PiB7XG4gIHJldHVybiBnZXREaWN0VmFsdWUoa2V5LCBsb2NhbGUpO1xufTtcblxuLyoqXG4gKiBsb2NhbGXsl5Ag65Sw6528IOyggeygiO2VnCDsu6zrn7wg6rCS7J2EIOuwmO2ZmO2VqeuLiOuLpC5cbiAqIERC7JeQIG5hbWUsIG5hbWVfa28sIG5hbWVfZW7sspjrn7wgbG9jYWxpemVkIGNvbHVtbuydtCDsnojsnYQg65WMIOyCrOyaqe2VqeuLiOuLpC5cbiAqXG4gKiDsmrDshKDsiJzsnIQgKGtvIGxvY2FsZSk6IGNvbHVtbl9rbyDihpIgY29sdW1uIOKGkiBjb2x1bW5fZW5cbiAqIOyasOyEoOyInOychCAoZW4gbG9jYWxlKTogY29sdW1uX2VuIOKGkiBjb2x1bW4g4oaSIGNvbHVtbl9rb1xuICpcbiAqIEBleGFtcGxlXG4gKiBsb2NhbGl6ZWRDb2x1bW4odGFnLCBcIm5hbWVcIilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsaXplZENvbHVtbjxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIEsgZXh0ZW5kcyBrZXlvZiBUICYgc3RyaW5nPihcbiAgcm93OiBULFxuICBjb2x1bW46IEssXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBsb2NhbGUgPSBnZXRDdXJyZW50TG9jYWxlKCk7XG4gIGNvbnN0IG90aGVyTG9jYWxlcyA9IFNVUFBPUlRFRF9MT0NBTEVTLmZpbHRlcigobDogc3RyaW5nKSA9PiBsICE9PSBsb2NhbGUpO1xuICBjb25zdCBsb2NhbGl6ZWRLZXkgPSAoY29sdW1uOiBLLCBsb2NhbGU6IHN0cmluZykgPT4gXFxgXFwke1N0cmluZyhjb2x1bW4pfV9cXCR7bG9jYWxlfVxcYDtcbiAgY29uc3Qga2V5cyA9IFtsb2NhbGl6ZWRLZXkoY29sdW1uLCBsb2NhbGUpLCBjb2x1bW4sIC4uLm90aGVyTG9jYWxlcy5tYXAoKGwpID0+IGxvY2FsaXplZEtleShjb2x1bW4sIGwpKV07XG5cbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIGNvbnN0IHZhbHVlID0gcm93W2tleV07XG4gICAgaWYgKHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT09IFwiXCIpIHtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogRW51beydmCBsb2NhbGl6ZWQgbGFiZWxz66W8IFByb3h566GcIOuwmO2ZmO2VqeuLiOuLpC5cbiAqIFNlbGVjdCDsu7Ttj6zrhIztirgg65Ox7JeQ7IScIEVudW1MYWJlbFtrZXldIOuMgOyLoCDsgqzsmqntlanri4jri6QuXG4gKlxuICogQGV4YW1wbGVcbiAqIFNELmVudW1MYWJlbHMoXCJUYWdPcmRlckJ5XCIpW2tleV0gIC8vIOKGkiDtmITsnqwgbG9jYWxl7J2YIOudvOuyqFxuICovXG5TRC5lbnVtTGFiZWxzID0gKGVudW1OYW1lOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBMb2NhbGl6ZWRTdHJpbmc+ID0+IHtcbiAgcmV0dXJuIG5ldyBQcm94eSh7fSBhcyBSZWNvcmQ8c3RyaW5nLCBMb2NhbGl6ZWRTdHJpbmc+LCB7XG4gICAgZ2V0KF8sIGtleTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBkaWN0S2V5ID0gXFxgZW51bS5cXCR7ZW51bU5hbWV9LlxcJHtrZXl9XFxgIGFzIERpY3RLZXk7XG4gICAgICByZXR1cm4gZ2V0RGljdFZhbHVlKGRpY3RLZXksIGdldEN1cnJlbnRMb2NhbGUoKSk7XG4gICAgfVxuICB9KTtcbn07XG5gLnRyaW0oKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldFRhcmdldEFuZFBhdGgodW5kZWZpbmVkLCB0YXJnZXQpLFxuICAgICAgYm9keSxcbiAgICAgIGltcG9ydEtleXM6IFtdLFxuICAgICAgY3VzdG9tSGVhZGVyczogW10sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY2FwaXRhbGl6ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDrqqjrk6AgZW50aXR5Lmpzb27sl5DshJwgZW50aXR5IGxhYmVscyDstpTstpxcbiAgICogLSBlbnRpdHkue2VudGl0eUlkfTogZW50aXR5IHRpdGxlXG4gICAqIC0gZW50aXR5LntlbnRpdHlJZH0ue3Byb3BOYW1lfTogcHJvcCBkZXNjXG4gICAqIC0gZW50aXR5LntlbnRpdHlJZH0ubGlzdDog66qp66GdXG4gICAqIC0gZW50aXR5LntlbnRpdHlJZH0uY3JlYXRlOiDsg53shLFcbiAgICogLSBlbnRpdHkue2VudGl0eUlkfS5lZGl0OiDsiJjsoJUgKO2VqOyImClcbiAgICogLSBlbnVtLntFbnVtSWR9Lnt2YWx1ZX06IGVudW0gbGFiZWxcbiAgICovXG4gIHByaXZhdGUgZXh0cmFjdEVudGl0eUxhYmVscygpOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyBpc0Z1bmN0aW9uPzogYm9vbGVhbiB9W10ge1xuICAgIGNvbnN0IGxhYmVsczogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZzsgaXNGdW5jdGlvbj86IGJvb2xlYW4gfVtdID0gW107XG5cbiAgICBpZiAoIUVudGl0eU1hbmFnZXIuaXNBdXRvbG9hZGVkKSB7XG4gICAgICByZXR1cm4gbGFiZWxzO1xuICAgIH1cblxuICAgIGNvbnN0IGVudGl0eUlkcyA9IEVudGl0eU1hbmFnZXIuZ2V0QWxsSWRzKCk7XG5cbiAgICBmb3IgKGNvbnN0IGVudGl0eUlkIG9mIGVudGl0eUlkcykge1xuICAgICAgY29uc3QgZW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQoZW50aXR5SWQpO1xuXG4gICAgICAvLyBlbnRpdHkgdGl0bGVcbiAgICAgIGxhYmVscy5wdXNoKHsga2V5OiBgZW50aXR5LiR7ZW50aXR5SWR9YCwgdmFsdWU6IGVudGl0eS50aXRsZSB9KTtcblxuICAgICAgLy8gZW50aXR5IENSVUQgbGFiZWxzXG4gICAgICBsYWJlbHMucHVzaCh7IGtleTogYGVudGl0eS4ke2VudGl0eUlkfS5saXN0YCwgdmFsdWU6IGAke2VudGl0eS50aXRsZX0g66qp66GdYCB9KTtcbiAgICAgIGxhYmVscy5wdXNoKHsga2V5OiBgZW50aXR5LiR7ZW50aXR5SWR9LmNyZWF0ZWAsIHZhbHVlOiBgJHtlbnRpdHkudGl0bGV9IOyDneyEsWAgfSk7XG4gICAgICBsYWJlbHMucHVzaCh7XG4gICAgICAgIGtleTogYGVudGl0eS4ke2VudGl0eUlkfS5lZGl0YCxcbiAgICAgICAgdmFsdWU6IGAke2VudGl0eS50aXRsZX0g7IiY7KCVICgjXFwke2lkfSlgLFxuICAgICAgICBpc0Z1bmN0aW9uOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHByb3AgbGFiZWxzIChwcm9wIG5hbWXsnYQgY2FtZWxDYXNl66GcIOuzgO2ZmClcbiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBlbnRpdHkucHJvcHMpIHtcbiAgICAgICAgaWYgKHByb3AuZGVzYykge1xuICAgICAgICAgIGxhYmVscy5wdXNoKHsga2V5OiBgZW50aXR5LiR7ZW50aXR5SWR9LiR7cHJvcC5uYW1lfWAsIHZhbHVlOiBwcm9wLmRlc2MgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gZW51bSBsYWJlbHNcbiAgICAgIGZvciAoY29uc3QgW2VudW1JZCwgZW51bUxhYmVsc01hcF0gb2YgT2JqZWN0LmVudHJpZXMoZW50aXR5LmVudW1MYWJlbHMpKSB7XG4gICAgICAgIGZvciAoY29uc3QgW3ZhbHVlLCBsYWJlbF0gb2YgT2JqZWN0LmVudHJpZXMoZW51bUxhYmVsc01hcCkpIHtcbiAgICAgICAgICBsYWJlbHMucHVzaCh7IGtleTogYGVudW0uJHtlbnVtSWR9LiR7dmFsdWV9YCwgdmFsdWU6IGxhYmVsIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIC8qKlxuICAgKiBlbnRpdHlMYWJlbHPrpbwgVHlwZVNjcmlwdCDsvZTrk5zroZwg67OA7ZmYXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlRW50aXR5TGFiZWxzQ29kZShcbiAgICBsYWJlbHM6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmc7IGlzRnVuY3Rpb24/OiBib29sZWFuIH1bXSxcbiAgKTogc3RyaW5nIHtcbiAgICBpZiAobGFiZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFwiY29uc3QgZW50aXR5TGFiZWxzID0ge30gYXMgY29uc3Q7XCI7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cmllczogc3RyaW5nW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgeyBrZXksIHZhbHVlLCBpc0Z1bmN0aW9uIH0gb2YgbGFiZWxzKSB7XG4gICAgICBpZiAoaXNGdW5jdGlvbikge1xuICAgICAgICAvLyDtlajsiJjroZwg7IOd7ISxIChpZCDtjIzrnbzrr7jthLApXG4gICAgICAgIGVudHJpZXMucHVzaChgICBcIiR7a2V5fVwiOiAoaWQ6IG51bWJlcikgPT4gXFxgJHt2YWx1ZX1cXGAsYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbnRyaWVzLnB1c2goYCAgXCIke2tleX1cIjogXCIke3RoaXMuZXNjYXBlU3RyaW5nKHZhbHVlKX1cIixgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYGNvbnN0IGVudGl0eUxhYmVscyA9IHtcbiR7ZW50cmllcy5qb2luKFwiXFxuXCIpfVxufSBhcyBjb25zdDtgO1xuICB9XG5cbiAgcHJpdmF0ZSBlc2NhcGVTdHJpbmcoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvXFxcXC9nLCBcIlxcXFxcXFxcXCIpLnJlcGxhY2UoL1wiL2csICdcXFxcXCInKS5yZXBsYWNlKC9cXG4vZywgXCJcXFxcblwiKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNvbmFtdSIsInNvbmFtdURpY3RFbiIsInNvbmFtdURpY3RLbyIsIkVudGl0eU1hbmFnZXIiLCJUZW1wbGF0ZSIsIlRlbXBsYXRlX19zZCIsImdldFRhcmdldEFuZFBhdGgiLCJfbmFtZXMiLCJzZFRhcmdldCIsInRhcmdldCIsImRpciIsImNvbmZpZyIsImFwaSIsInBhdGgiLCJyZW5kZXIiLCJvcHRpb25zIiwiaTE4bkNvbmZpZyIsImkxOG4iLCJkZWZhdWx0TG9jYWxlIiwic3VwcG9ydGVkTG9jYWxlcyIsImVudGl0eUxhYmVscyIsImV4dHJhY3RFbnRpdHlMYWJlbHMiLCJsb2NhbGVNYW5hZ2VtZW50Q29kZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0cmltIiwibG9jYWxlSW1wb3J0cyIsIm1hcCIsImxvY2FsZSIsImpvaW4iLCJlbnRpdHlMYWJlbHNDb2RlIiwiZ2VuZXJhdGVFbnRpdHlMYWJlbHNDb2RlIiwiYm9keSIsImNhcGl0YWxpemUiLCJmaWx0ZXIiLCJ1bmRlZmluZWQiLCJpbXBvcnRLZXlzIiwiY3VzdG9tSGVhZGVycyIsInN0ciIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJsYWJlbHMiLCJpc0F1dG9sb2FkZWQiLCJlbnRpdHlJZHMiLCJnZXRBbGxJZHMiLCJlbnRpdHlJZCIsImVudGl0eSIsImdldCIsInB1c2giLCJrZXkiLCJ2YWx1ZSIsInRpdGxlIiwiaXNGdW5jdGlvbiIsInByb3AiLCJwcm9wcyIsImRlc2MiLCJuYW1lIiwiZW51bUlkIiwiZW51bUxhYmVsc01hcCIsIk9iamVjdCIsImVudHJpZXMiLCJlbnVtTGFiZWxzIiwibGFiZWwiLCJsZW5ndGgiLCJlc2NhcGVTdHJpbmciLCJyZXBsYWNlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxNQUFNLFFBQVEsc0JBQW1CO0FBQzFDLFNBQVNDLFlBQVksRUFBRUMsWUFBWSxRQUFRLHNCQUFhO0FBQ3hELFNBQVNDLGFBQWEsUUFBZ0MsaUNBQThCO0FBRXBGLFNBQVNDLFFBQVEsUUFBUSxpQkFBYztBQUV2Qzs7O0NBR0MsR0FDRCxPQUFPLE1BQU1DLHFCQUFxQkQ7SUFDaEMsYUFBYztRQUNaLEtBQUssQ0FBQztJQUNSO0lBRUFFLGlCQUFpQkMsTUFBMEIsRUFBRUMsUUFBZ0MsRUFBRTtRQUM3RSxNQUFNQyxTQUFTRCxZQUFZO1FBQzNCLCtDQUErQztRQUMvQyxNQUFNRSxNQUFNRCxXQUFXLFFBQVFULE9BQU9XLE1BQU0sQ0FBQ0MsR0FBRyxDQUFDRixHQUFHLEdBQUdEO1FBRXZELE9BQU87WUFDTEEsUUFBUSxHQUFHQyxJQUFJLFNBQVMsQ0FBQztZQUN6QkcsTUFBTTtRQUNSO0lBQ0Y7SUFFQUMsT0FBT0MsT0FBOEIsRUFBRTtRQUNyQyxNQUFNLEVBQUVOLE1BQU0sRUFBRSxHQUFHTTtRQUNuQixNQUFNQyxhQUFhaEIsT0FBT1csTUFBTSxDQUFDTSxJQUFJLElBQUk7WUFDdkNDLGVBQWU7WUFDZkMsa0JBQWtCO2dCQUFDO2FBQUs7UUFDMUI7UUFFQSxNQUFNLEVBQUVELGFBQWEsRUFBRUMsZ0JBQWdCLEVBQUUsR0FBR0g7UUFFNUMsaUNBQWlDO1FBQ2pDLE1BQU1JLGVBQWUsSUFBSSxD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
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvc2QudGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi8uLi9hcGkvc29uYW11XCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyLCB0eXBlIEVudGl0eU5hbWVzUmVjb3JkIH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IHBhcnNlRGljdEZpbGUgfSBmcm9tIFwiLi4vLi4vdXRpbHMvZGljdC1wYXJzZXJcIjtcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlXCI7XG5cbi8qKlxuICogU29uYW11IERpY3Rpb25hcnkgKFNEKSDthZztlIzrpr9cbiAqIGkxOG7snYQg7JyE7ZWcIHNkLmdlbmVyYXRlZC50cyDtjIzsnbzsnYQg7IOd7ISx7ZWp64uI64ukLlxuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVfX3NkIGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcInNkXCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChfbmFtZXM/OiBFbnRpdHlOYW1lc1JlY29yZCwgc2RUYXJnZXQ/OiBcImFwaVwiIHwgXCJ3ZWJcIiB8IFwiYXBwXCIpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBzZFRhcmdldCA/PyBcImFwaVwiO1xuICAgIC8vIGFwaS5kaXLsnYAg7IOB64yAIOqyveuhnChcImFwaVwiKeydtOuvgOuhnCwgd2ViL2FwcOuPhCDsg4HrjIAg6rK966Gc66GcIOunnuy2pFxuICAgIGNvbnN0IGRpciA9IHRhcmdldCA9PT0gXCJhcGlcIiA/IFNvbmFtdS5jb25maWcuYXBpLmRpciA6IHRhcmdldDtcblxuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IGAke2Rpcn0vc3JjL2kxOG5gLFxuICAgICAgcGF0aDogXCJzZC5nZW5lcmF0ZWQudHNcIixcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uc1tcInNkXCJdKSB7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgaTE4bkNvbmZpZyA9IFNvbmFtdS5jb25maWcuaTE4biA/PyB7XG4gICAgICBkZWZhdWx0TG9jYWxlOiBcImtvXCIsXG4gICAgICBzdXBwb3J0ZWRMb2NhbGVzOiBbXCJrb1wiXSxcbiAgICB9O1xuXG4gICAgY29uc3QgeyBkZWZhdWx0TG9jYWxlLCBzdXBwb3J0ZWRMb2NhbGVzIH0gPSBpMThuQ29uZmlnO1xuXG4gICAgLy8gZW50aXR5Lmpzb27sl5DshJwgZW50aXR5IGxhYmVscyDstpTstpxcbiAgICBjb25zdCBlbnRpdHlMYWJlbHMgPSB0aGlzLmV4dHJhY3RFbnRpdHlMYWJlbHMoKTtcblxuICAgIC8vIO2UjOueq+2PvOuzhCBsb2NhbGUg6rSA66asIOy9lOuTnFxuICAgIGNvbnN0IGxvY2FsZU1hbmFnZW1lbnRDb2RlID1cbiAgICAgIHRhcmdldCA9PT0gXCJhcGlcIlxuICAgICAgICA/IGBcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCJzb25hbXVcIjtcblxuY29uc3QgREVGQVVMVF9MT0NBTEUgPSBcIiR7ZGVmYXVsdExvY2FsZX1cIjtcbmNvbnN0IFNVUFBPUlRFRF9MT0NBTEVTID0gJHtKU09OLnN0cmluZ2lmeShzdXBwb3J0ZWRMb2NhbGVzKX07XG5mdW5jdGlvbiBnZXRDdXJyZW50TG9jYWxlKCk6IHN0cmluZyB7XG4gIGNvbnN0IGN0eCA9IFNvbmFtdS5nZXRDb250ZXh0KCk7XG4gIHJldHVybiBjdHg/LmxvY2FsZSA/PyBERUZBVUxUX0xPQ0FMRTtcbn1cbmAudHJpbSgpXG4gICAgICAgIDogYFxuY29uc3QgREVGQVVMVF9MT0NBTEUgPSBcIiR7ZGVmYXVsdExvY2FsZX1cIjtcbmNvbnN0IFNVUFBPUlRFRF9MT0NBTEVTID0gJHtKU09OLnN0cmluZ2lmeShzdXBwb3J0ZWRMb2NhbGVzKX07XG5sZXQgX2N1cnJlbnRMb2NhbGUgPSBERUZBVUxUX0xPQ0FMRTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldExvY2FsZShsb2NhbGU6IHN0cmluZykge1xuICBfY3VycmVudExvY2FsZSA9IGxvY2FsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRMb2NhbGUoKTogc3RyaW5nIHtcbiAgcmV0dXJuIF9jdXJyZW50TG9jYWxlO1xufVxuYC50cmltKCk7XG5cbiAgICAvLyBzb25hbXVEaWN066W8IOyGjOyKpCDtjIzsnbzsl5DshJwg7YyM7Iux7ZWY7JesIOy9lOuTnOuhnCDrs4DtmZggKO2DgOyehSDsoJXrs7Qg67O07KG0KVxuICAgIGNvbnN0IHNvbmFtdURpY3RLb0NvZGUgPSB0aGlzLmdlbmVyYXRlRGljdENvZGVGcm9tU291cmNlKFwic29uYW11RGljdEtvXCIsIFwia29cIik7XG4gICAgY29uc3Qgc29uYW11RGljdEVuQ29kZSA9IHRoaXMuZ2VuZXJhdGVEaWN0Q29kZUZyb21Tb3VyY2UoXCJzb25hbXVEaWN0RW5cIiwgXCJlblwiKTtcblxuICAgIC8vIGxvY2FsZSBpbXBvcnRcbiAgICBjb25zdCBsb2NhbGVJbXBvcnRzID0gc3VwcG9ydGVkTG9jYWxlc1xuICAgICAgLm1hcCgobG9jYWxlKSA9PiBgaW1wb3J0ICR7bG9jYWxlfSBmcm9tIFwiLi8ke2xvY2FsZX1cIjtgKVxuICAgICAgLmpvaW4oXCJcXG5cIik7XG5cbiAgICAvLyBlbnRpdHlMYWJlbHPrpbwg7L2U65Oc66GcIOuzgO2ZmFxuICAgIGNvbnN0IGVudGl0eUxhYmVsc0NvZGUgPSB0aGlzLmdlbmVyYXRlRW50aXR5TGFiZWxzQ29kZShlbnRpdHlMYWJlbHMpO1xuXG4gICAgY29uc3QgYm9keSA9IGBcbiR7bG9jYWxlTWFuYWdlbWVudENvZGV9XG5cbiR7bG9jYWxlSW1wb3J0c31cblxuLy8gZW50aXR5Lmpzb27sl5DshJwg7LaU7Lac7ZWcIGVudGl0eSBsYWJlbHMgKGRlZmF1bHRMb2NhbGUg7KCE7JqpKVxuJHtlbnRpdHlMYWJlbHNDb2RlfVxuXG4ke3NvbmFtdURpY3RLb0NvZGV9XG4ke3NvbmFtdURpY3RFbkNvZGV9XG5cbi8vIGRlZmF1bHRMb2NhbGXsnZggZGljdGlvbmFyeeulvCDquLDspIDsnLzroZwg7YKkIOy2lOy2nFxudHlwZSBQcm9qZWN0RGljdGlvbmFyeSA9IHR5cGVvZiAke2RlZmF1bHRMb2NhbGV9O1xudHlwZSBTb25hbXVEaWN0aW9uYXJ5ID0gdHlwZW9mIHNvbmFtdURpY3Qke3RoaXMuY2FwaXRhbGl6ZShkZWZhdWx0TG9jYWxlKX07XG50eXBlIEVudGl0eUxhYmVscyA9IHR5cGVvZiBlbnRpdHlMYWJlbHM7XG50eXBlIFJhd01lcmdlZERpY3Rpb25hcnkgPSBFbnRpdHlMYWJlbHMgJiBTb25hbXVEaWN0aW9uYXJ5ICYgUHJvamVjdERpY3Rpb25hcnk7XG5cbi8vIO2CpOuKlCDsnKDsp4DtlZjrkJgsIOqwkiDtg4DsnoXsnYAgc3RyaW5nIOuYkOuKlCDtlajsiJjroZwg7J2867CY7ZmUICjri6TrpbggbG9jYWxl7J2YIOumrO2EsOuftCDtg4DsnoUg7Lap64+MIOuwqeyngClcbnR5cGUgTWVyZ2VkRGljdGlvbmFyeSA9IHtcbiAgW0sgaW4ga2V5b2YgUmF3TWVyZ2VkRGljdGlvbmFyeV06IFJhd01lcmdlZERpY3Rpb25hcnlbS10gZXh0ZW5kcyAoLi4uYXJnczogaW5mZXIgUCkgPT4gc3RyaW5nXG4gICAgPyAoLi4uYXJnczogUCkgPT4gc3RyaW5nXG4gICAgOiBzdHJpbmc7XG59O1xudHlwZSBEaWN0S2V5ID0ga2V5b2YgTWVyZ2VkRGljdGlvbmFyeTtcbmV4cG9ydCB0eXBlIExvY2FsaXplZFN0cmluZyA9IHN0cmluZyAmIHsgX19icmFuZDogXCJMb2NhbGl6ZWRTdHJpbmdcIiB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lTG9jYWxlKGRpY3Q6IFBhcnRpYWw8TWVyZ2VkRGljdGlvbmFyeT4pIHtcbiAgcmV0dXJuIGRpY3Q7XG59XG5cbi8vIOqwgSBsb2NhbGXrs4TroZwgZW50aXR5IGxhYmVscyArIFNvbmFtdSDrgrTsnqUgZGljdCArIO2UhOuhnOygne2KuCBkaWN0IO2Vqey5qFxuY29uc3QgZGljdGlvbmFyaWVzOiBSZWNvcmQ8c3RyaW5nLCBQYXJ0aWFsPE1lcmdlZERpY3Rpb25hcnk+PiA9IHtcbiAgJHtkZWZhdWx0TG9jYWxlfTogeyAuLi5zb25hbXVEaWN0JHt0aGlzLmNhcGl0YWxpemUoZGVmYXVsdExvY2FsZSl9LCAuLi5lbnRpdHlMYWJlbHMsIC4uLiR7ZGVmYXVsdExvY2FsZX0gfSxcbiAgJHtzdXBwb3J0ZWRMb2NhbGVzXG4gICAgLmZpbHRlcigobG9jYWxlKSA9PiBsb2NhbGUgIT09IGRlZmF1bHRMb2NhbGUpXG4gICAgLm1hcCgobG9jYWxlKSA9PiBgICAke2xvY2FsZX06IHsgLi4uc29uYW11RGljdCR7dGhpcy5jYXBpdGFsaXplKGxvY2FsZSl9LCAuLi4ke2xvY2FsZX0gfSxgKVxuICAgIC5qb2luKFwiXFxuXCIpfVxufTtcblxudHlwZSBTRFJldHVyblR5cGU8SyBleHRlbmRzIERpY3RLZXk+ID0gTWVyZ2VkRGljdGlvbmFyeVtLXSBleHRlbmRzICguLi5hcmdzOiBpbmZlciBQKSA9PiBzdHJpbmdcbiAgPyAoLi4uYXJnczogUCkgPT4gTG9jYWxpemVkU3RyaW5nXG4gIDogTG9jYWxpemVkU3RyaW5nO1xuXG5mdW5jdGlvbiBnZXREaWN0VmFsdWU8SyBleHRlbmRzIERpY3RLZXk+KGtleTogSywgbG9jYWxlOiBzdHJpbmcpOiBTRFJldHVyblR5cGU8Sz4ge1xuICBjb25zdCBkaWN0ID0gZGljdGlvbmFyaWVzW2xvY2FsZV07XG4gIGNvbnN0IHZhbHVlID0gZGljdD8uW2tleV0gPz8gZGljdGlvbmFyaWVzW0RFRkFVTFRfTE9DQUxFXT8uW2tleV0gPz8ga2V5O1xuICByZXR1cm4gdmFsdWUgYXMgdW5rbm93biBhcyBTRFJldHVyblR5cGU8Sz47XG59XG5cbi8qKlxuICogU29uYW11IERpY3Rpb25hcnkg7ZWo7IiYXG4gKiBsb2NhbGXsl5Ag66ee64qUIOuyiOyXrSDthY3siqTtirjrpbwg67CY7ZmY7ZWp64uI64ukLlxuICpcbiAqIEBleGFtcGxlXG4gKiBTRChcImNvbW1vbi5zYXZlXCIpICAvLyDihpIgXCLsoIDsnqVcIiAoTG9jYWxpemVkU3RyaW5nKVxuICogU0QoXCJ1c2VyLm5vdEZvdW5kXCIpKDEpICAvLyDihpIgXCLsobTsnqztlZjsp4Ag7JWK64qUIFVzZXIgSUQgMVwiIChMb2NhbGl6ZWRTdHJpbmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTRDxLIGV4dGVuZHMgRGljdEtleT4oa2V5OiBLKTogU0RSZXR1cm5UeXBlPEs+IHtcbiAgY29uc3QgbG9jYWxlID0gZ2V0Q3VycmVudExvY2FsZSgpO1xuICByZXR1cm4gZ2V0RGljdFZhbHVlKGtleSwgbG9jYWxlKTtcbn1cblxuLyoqXG4gKiDtirnsoJUgbG9jYWxl7J2YIOuyiOyXrSDthY3siqTtirjrpbwg67CY7ZmY7ZWY64qUIO2VqOyImOulvCDsg53shLHtlanri4jri6QuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IEVOID0gU0QubG9jYWxlKFwiZW5cIik7XG4gKiBFTihcImNvbW1vbi5zYXZlXCIpICAvLyDihpIgXCJTYXZlXCJcbiAqL1xuU0QubG9jYWxlID0gKGxvY2FsZTogc3RyaW5nKSA9PiA8SyBleHRlbmRzIERpY3RLZXk+KGtleTogSyk6IFNEUmV0dXJuVHlwZTxLPiA9PiB7XG4gIHJldHVybiBnZXREaWN0VmFsdWUoa2V5LCBsb2NhbGUpO1xufTtcblxuLyoqXG4gKiBsb2NhbGXsl5Ag65Sw6528IOyggeygiO2VnCDsu6zrn7wg6rCS7J2EIOuwmO2ZmO2VqeuLiOuLpC5cbiAqIERC7JeQIG5hbWUsIG5hbWVfa28sIG5hbWVfZW7sspjrn7wgbG9jYWxpemVkIGNvbHVtbuydtCDsnojsnYQg65WMIOyCrOyaqe2VqeuLiOuLpC5cbiAqXG4gKiDsmrDshKDsiJzsnIQgKGtvIGxvY2FsZSk6IGNvbHVtbl9rbyDihpIgY29sdW1uIOKGkiBjb2x1bW5fZW5cbiAqIOyasOyEoOyInOychCAoZW4gbG9jYWxlKTogY29sdW1uX2VuIOKGkiBjb2x1bW4g4oaSIGNvbHVtbl9rb1xuICpcbiAqIEBleGFtcGxlXG4gKiBsb2NhbGl6ZWRDb2x1bW4odGFnLCBcIm5hbWVcIilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsaXplZENvbHVtbjxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIEsgZXh0ZW5kcyBrZXlvZiBUICYgc3RyaW5nPihcbiAgcm93OiBULFxuICBjb2x1bW46IEssXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBsb2NhbGUgPSBnZXRDdXJyZW50TG9jYWxlKCk7XG4gIGNvbnN0IG90aGVyTG9jYWxlcyA9IFNVUFBPUlRFRF9MT0NBTEVTLmZpbHRlcigobDogc3RyaW5nKSA9PiBsICE9PSBsb2NhbGUpO1xuICBjb25zdCBsb2NhbGl6ZWRLZXkgPSAoY29sdW1uOiBLLCBsb2NhbGU6IHN0cmluZykgPT4gXFxgXFwke1N0cmluZyhjb2x1bW4pfV9cXCR7bG9jYWxlfVxcYDtcbiAgY29uc3Qga2V5cyA9IFtsb2NhbGl6ZWRLZXkoY29sdW1uLCBsb2NhbGUpLCBjb2x1bW4sIC4uLm90aGVyTG9jYWxlcy5tYXAoKGwpID0+IGxvY2FsaXplZEtleShjb2x1bW4sIGwpKV07XG5cbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIGNvbnN0IHZhbHVlID0gcm93W2tleV07XG4gICAgaWYgKHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT09IFwiXCIpIHtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogRW51beydmCBsb2NhbGl6ZWQgbGFiZWxz66W8IFByb3h566GcIOuwmO2ZmO2VqeuLiOuLpC5cbiAqIFNlbGVjdCDsu7Ttj6zrhIztirgg65Ox7JeQ7IScIEVudW1MYWJlbFtrZXldIOuMgOyLoCDsgqzsmqntlanri4jri6QuXG4gKlxuICogQGV4YW1wbGVcbiAqIFNELmVudW1MYWJlbHMoXCJUYWdPcmRlckJ5XCIpW2tleV0gIC8vIOKGkiDtmITsnqwgbG9jYWxl7J2YIOudvOuyqFxuICovXG5TRC5lbnVtTGFiZWxzID0gKGVudW1OYW1lOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBMb2NhbGl6ZWRTdHJpbmc+ID0+IHtcbiAgcmV0dXJuIG5ldyBQcm94eSh7fSBhcyBSZWNvcmQ8c3RyaW5nLCBMb2NhbGl6ZWRTdHJpbmc+LCB7XG4gICAgZ2V0KF8sIGtleTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBkaWN0S2V5ID0gXFxgZW51bS5cXCR7ZW51bU5hbWV9LlxcJHtrZXl9XFxgIGFzIERpY3RLZXk7XG4gICAgICByZXR1cm4gZ2V0RGljdFZhbHVlKGRpY3RLZXksIGdldEN1cnJlbnRMb2NhbGUoKSk7XG4gICAgfVxuICB9KTtcbn07XG5gLnRyaW0oKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldFRhcmdldEFuZFBhdGgodW5kZWZpbmVkLCB0YXJnZXQpLFxuICAgICAgYm9keSxcbiAgICAgIGltcG9ydEtleXM6IFtdLFxuICAgICAgY3VzdG9tSGVhZGVyczogW10sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY2FwaXRhbGl6ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDrqqjrk6AgZW50aXR5Lmpzb27sl5DshJwgZW50aXR5IGxhYmVscyDstpTstpxcbiAgICogZW50aXR5Lmpzb27sl5DshJwg7KeB7KCRIOq0gOumrOuQmOuKlCDqsJLrp4wg7Y+s7ZWoICjsnpDrj5kg7IOd7ISxIOqwkiDsoJzsmbgpXG4gICAqIC0gZW50aXR5LntlbnRpdHlJZH06IGVudGl0eSB0aXRsZVxuICAgKiAtIGVudGl0eS57ZW50aXR5SWR9Lntwcm9wTmFtZX06IHByb3AgZGVzY1xuICAgKiAtIGVudW0ue0VudW1JZH0ue3ZhbHVlfTogZW51bSBsYWJlbFxuICAgKi9cbiAgcHJpdmF0ZSBleHRyYWN0RW50aXR5TGFiZWxzKCk6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdIHtcbiAgICBjb25zdCBsYWJlbHM6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdID0gW107XG5cbiAgICBpZiAoIUVudGl0eU1hbmFnZXIuaXNBdXRvbG9hZGVkKSB7XG4gICAgICByZXR1cm4gbGFiZWxzO1xuICAgIH1cblxuICAgIGNvbnN0IGVudGl0eUlkcyA9IEVudGl0eU1hbmFnZXIuZ2V0QWxsSWRzKCk7XG5cbiAgICBmb3IgKGNvbnN0IGVudGl0eUlkIG9mIGVudGl0eUlkcykge1xuICAgICAgY29uc3QgZW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQoZW50aXR5SWQpO1xuXG4gICAgICAvLyBlbnRpdHkgdGl0bGUgKGVudGl0eS5qc29u7JeQ7IScIOq0gOumrClcbiAgICAgIGxhYmVscy5wdXNoKHsga2V5OiBgZW50aXR5LiR7ZW50aXR5SWR9YCwgdmFsdWU6IGVudGl0eS50aXRsZSB9KTtcblxuICAgICAgLy8gcHJvcCBsYWJlbHMgKGVudGl0eS5qc29u7JeQ7IScIOq0gOumrClcbiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBlbnRpdHkucHJvcHMpIHtcbiAgICAgICAgaWYgKHByb3AuZGVzYykge1xuICAgICAgICAgIGxhYmVscy5wdXNoKHsga2V5OiBgZW50aXR5LiR7ZW50aXR5SWR9LiR7cHJvcC5uYW1lfWAsIHZhbHVlOiBwcm9wLmRlc2MgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gZW51bSBsYWJlbHMgKGVudGl0eS5qc29u7JeQ7IScIOq0gOumrClcbiAgICAgIGZvciAoY29uc3QgW2VudW1JZCwgZW51bUxhYmVsc01hcF0gb2YgT2JqZWN0LmVudHJpZXMoZW50aXR5LmVudW1MYWJlbHMpKSB7XG4gICAgICAgIGZvciAoY29uc3QgW3ZhbHVlLCBsYWJlbF0gb2YgT2JqZWN0LmVudHJpZXMoZW51bUxhYmVsc01hcCkpIHtcbiAgICAgICAgICBsYWJlbHMucHVzaCh7IGtleTogYGVudW0uJHtlbnVtSWR9LiR7dmFsdWV9YCwgdmFsdWU6IGxhYmVsIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIC8qKlxuICAgKiBlbnRpdHlMYWJlbHPrpbwgVHlwZVNjcmlwdCDsvZTrk5zroZwg67OA7ZmYXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlRW50aXR5TGFiZWxzQ29kZShsYWJlbHM6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdKTogc3RyaW5nIHtcbiAgICBpZiAobGFiZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFwiY29uc3QgZW50aXR5TGFiZWxzID0ge30gYXMgY29uc3Q7XCI7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cmllcyA9IGxhYmVscy5tYXAoKHsga2V5LCB2YWx1ZSB9KSA9PiBgICBcIiR7a2V5fVwiOiBcIiR7dGhpcy5lc2NhcGVTdHJpbmcodmFsdWUpfVwiLGApO1xuXG4gICAgcmV0dXJuIGBjb25zdCBlbnRpdHlMYWJlbHMgPSB7XG4ke2VudHJpZXMuam9pbihcIlxcblwiKX1cbn0gYXMgY29uc3Q7YDtcbiAgfVxuXG4gIHByaXZhdGUgZXNjYXBlU3RyaW5nKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1xcXFwvZywgXCJcXFxcXFxcXFwiKS5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csIFwiXFxcXG5cIik7XG4gIH1cblxuICAvKipcbiAgICogc29uYW11IGRpY3Qg7IaM7IqkIO2MjOydvOydhCDsnb3slrQg7YyM7Iux7ZWY6rOgIOy9lOuTnOuhnCDrs4DtmZhcbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVEaWN0Q29kZUZyb21Tb3VyY2UodmFyTmFtZTogc3RyaW5nLCBsb2NhbGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gc29uYW11IO2MqO2CpOyngCDro6jtirjsl5DshJwgc3JjL2RpY3Qg6rK966GcIOywvuq4sFxuICAgIC8vIF9fZGlybmFtZeydtCBkaXN0L3RlbXBsYXRlL2ltcGxlbWVudGF0aW9uc+ydvCDsiJgg7J6I7Jy866+A66GcIO2MqO2CpOyngCDro6jtirgg6riw7KSA7Jy866GcIOygkeq3vFxuICAgIGNvbnN0IHBhY2thZ2VSb290ID0gcGF0aC5yZXNvbHZlKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiLi5cIiwgXCIuLlwiLCBcIi4uXCIpO1xuICAgIGNvbnN0IGRpY3RQYXRoID0gcGF0aC5qb2luKHBhY2thZ2VSb290LCBcInNyY1wiLCBcImRpY3RcIiwgYCR7bG9jYWxlfS50c2ApO1xuXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGRpY3RQYXRoKSkge1xuICAgICAgcmV0dXJuIGBjb25zdCAke3Zhck5hbWV9ID0ge307YDtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRyaWVzID0gcGFyc2VEaWN0RmlsZShkaWN0UGF0aCk7XG5cbiAgICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBgY29uc3QgJHt2YXJOYW1lfSA9IHt9O2A7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnlMaW5lcyA9IGVudHJpZXMubWFwKCh7IGtleSwgdmFsdWUsIGlzRnVuY3Rpb24gfSkgPT4ge1xuICAgICAgY29uc3QgY29kZVZhbHVlID0gaXNGdW5jdGlvbiA/IHZhbHVlIDogYFwiJHt0aGlzLmVzY2FwZVN0cmluZyh2YWx1ZSl9XCJgO1xuICAgICAgcmV0dXJuIGAgIFwiJHtrZXl9XCI6ICR7Y29kZVZhbHVlfSxgO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGBjb25zdCAke3Zhck5hbWV9ID0ge1xuJHtlbnRyeUxpbmVzLmpvaW4oXCJcXG5cIil9XG59O2A7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmcyIsInBhdGgiLCJTb25hbXUiLCJFbnRpdHlNYW5hZ2VyIiwicGFyc2VEaWN0RmlsZSIsIlRlbXBsYXRlIiwiVGVtcGxhdGVfX3NkIiwiZ2V0VGFyZ2V0QW5kUGF0aCIsIl9uYW1lcyIsInNkVGFyZ2V0IiwidGFyZ2V0IiwiZGlyIiwiY29uZmlnIiwiYXBpIiwicmVuZGVyIiwib3B0aW9ucyIsImkxOG5Db25maWciLCJpMThuIiwiZGVmYXVsdExvY2FsZSIsInN1cHBvcnRlZExvY2FsZXMiLCJlbnRpdHlMYWJlbHMiLCJleHRyYWN0RW50aXR5TGFiZWxzIiwibG9jYWxlTWFuYWdlbWVudENvZGUiLCJKU09OIiwic3RyaW5naWZ5IiwidHJpbSIsInNvbmFtdURpY3RLb0NvZGUiLCJnZW5lcmF0ZURpY3RDb2RlRnJvbVNvdXJjZSIsInNvbmFtdURpY3RFbkNvZGUiLCJsb2NhbGVJbXBvcnRzIiwibWFwIiwibG9jYWxlIiwiam9pbiIsImVudGl0eUxhYmVsc0NvZGUiLCJnZW5lcmF0ZUVudGl0eUxhYmVsc0NvZGUiLCJib2R5IiwiY2FwaXRhbGl6ZSIsImZpbHRlciIsInVuZGVmaW5lZCIsImltcG9ydEtleXMiLCJjdXN0b21IZWFkZXJzIiwic3RyIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImxhYmVscyIsImlzQXV0b2xvYWRlZCIsImVudGl0eUlkcyIsImdldEFsbElkcyIsImVudGl0eUlkIiwiZW50aXR5IiwiZ2V0IiwicHVzaCIsImtleSIsInZhbHVlIiwidGl0bGUiLCJwcm9wIiwicHJvcHMiLCJkZXNjIiwibmFtZSIsImVudW1JZCIsImVudW1MYWJlbHNNYXAiLCJPYmplY3QiLCJlbnRyaWVzIiwiZW51bUxhYmVscyIsImxhYmVsIiwibGVuZ3RoIiwiZXNjYXBlU3RyaW5nIiwicmVwbGFjZSIsInZhck5hbWUiLCJwYWNrYWdlUm9vdCIsInJlc29sdmUiLCJkaXJuYW1lIiwiZGljdFBhdGgiLCJleGlzdHNTeW5jIiwiZW50cnlMaW5lcyIsImlzRnVuY3Rpb24iLCJjb2RlVmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFFBQVEsS0FBSztBQUNwQixPQUFPQyxVQUFVLE9BQU87QUFDeEIsU0FBU0MsTUFBTSxRQUFRLHNCQUFtQjtBQUMxQyxTQUFTQyxhQUFhLFFBQWdDLGlDQUE4QjtBQUVwRixTQUFTQyxhQUFhLFFBQVEsNkJBQTBCO0FBQ3hELFNBQVNDLFFBQVEsUUFBUSxpQkFBYztBQUV2Qzs7O0NBR0MsR0FDRCxPQUFPLE1BQU1DLHFCQUFxQkQ7SUFDaEMsYUFBYztRQUNaLEtBQUssQ0FBQztJQUNSO0lBRUFFLGlCQUFpQkMsTUFBMEIsRUFBRUMsUUFBZ0MsRUFBRTtRQUM3RSxNQUFNQyxTQUFTRCxZQUFZO1FBQzNCLCtDQUErQztRQUMvQyxNQUFNRSxNQUFNRCxXQUFXLFFBQVFSLE9BQU9VLE1BQU0sQ0FBQ0MsR0FBRyxDQUFDRixHQUFHLEdBQUdEO1FBRXZELE9BQU87WUFDTEEsUUFBUSxHQUFHQyxJQUFJLFNBQVMsQ0FBQztZQUN6QlYsTUFBTTtRQUNSO0lBQ0Y7SUFFQWEsT0FBT0MsT0FBOEIsRUFBRTtRQUNyQyxNQUFNLEVBQUVMLE1BQU0sRUFBRSxHQUFHSztRQUNuQixNQUFNQyxhQUFhZCxPQUFPVSxNQUFNLENBQUNLLElBQUksSUFBSTtZQUN2Q0MsZUFBZTtZQUNmQyxrQkFBa0I7Z0JBQUM7YUFBSztRQUMxQjtRQUVBLE1BQU0sRUFBRUQsYUFBYSxFQUFFQyxnQkFBZ0IsRUFBRSxHQUFHSDtRQUU1QyxpQ0FBaUM7UUFDakMsTUFBTUksZUFBZSxJQUFJLENBQUNDLG1CQUFtQjtRQUU3QyxvQkFBb0I7UUFDcEIsTUFBTUMsdUJBQ0paLFdBQVcsUUFDUCxDQUFDOzs7d0JBR2EsRUFBRVEsY0FBYzswQkFDZCxFQUFFSyxLQUFLQyxTQUFTLENBQUNMLGtCQUFrQjs7Ozs7QUFLN0QsQ0FBQyxDQUFDTSxJQUFJLEtBQ0ksQ0FBQzt3QkFDYSxFQUFFUCxjQUFjOzBCQUNkLEVBQUVLLEtBQUtDLFNBQVMsQ0FBQ0wsa0JBQWtCOzs7Ozs7Ozs7O0FBVTdELENBQUMsQ0FBQ00sSUFBSTtRQUVGLDZDQUE2QztRQUM3QyxNQUFNQyxtQkFBbUIsSUFBSSxDQUFDQywwQkFBMEIsQ0FBQyxnQkFBZ0I7UUFDekUsTUFBTUMsbUJBQW1CLElBQUksQ0FBQ0QsMEJBQTBCLENBQUMsZ0JBQWdCO1FBRXpFLGdCQUFnQjtRQUNoQixNQUFNRSxnQkFBZ0JWLGlCQUNuQlcsR0FBRyxDQUFDLENBQUNDLFNBQVcsQ0FBQyxPQUFPLEVBQUVBLE9BQU8sU0FBUyxFQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUN0REMsSUFBSSxDQUFDO1FBRVIsdUJBQXVCO1FBQ3ZCLE1BQU1DLG1CQUFtQixJQUFJLENBQUNDLHdCQUF3QixDQUFDZDtRQUV2RCxNQUFNZSxPQUFPLENBQUM7QUFDbEIsRUFBRWIscUJBQXFCOztBQUV2QixFQUFFTyxjQUFjOzs7QUFHaEIsRUFBRUksaUJBQWlCOztBQUVuQixFQUFFUCxpQkFBaUI7QUFDbkIsRUFBRUUsaUJBQWlCOzs7Z0NBR2EsRUFBRVYsY0FBYzt5Q0FDUCxFQUFFLElBQUksQ0FBQ2tCLFVBQVUsQ0FBQ2xCLGVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtQnhFLEVBQUVBLGNBQWMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDa0IsVUFBVSxDQUFDbEIsZUFBZSxzQkFBc0IsRUFBRUEsY0FBYztFQUN4RyxFQUFFQyxpQkFDQ2tCLE1BQU0sQ0FBQyxDQUFDTixTQUFXQSxXQUFXYixlQUM5QlksR0FBRyxDQUFDLENBQUNDLFNBQVcsQ0FBQyxFQUFFLEVBQUVBLE9BQU8saUJBQWlCLEVBQUUsSUFBSSxDQUFDSyxVQUFVLENBQUNMLFFBQVEsS0FBSyxFQUFFQSxPQUFPLEdBQUcsQ0FBQyxFQUN6RkMsSUFBSSxDQUFDLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlGaEIsQ0FBQyxDQUFDUCxJQUFJO1FBRUYsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDbEIsZ0JBQWdCLENBQUMrQixXQUFXNUIsT0FBTztZQUMzQ3lCO1lBQ0FJLFlBQVksRUFBRTtZQUNkQyxlQUFlLEVBQUU7UUFDbkI7SUFDRjtJQUVRSixXQUFXSyxHQUFXLEVBQVU7UUFDdEMsT0FBT0EsSUFBSUMsTUFBTSxDQUFDLEdBQUdDLFdBQVcsS0FBS0YsSUFBSUcsS0FBSyxDQUFDO0lBQ2pEO0lBRUE7Ozs7OztHQU1DLEdBQ0QsQUFBUXZCLHNCQUF3RDtRQUM5RCxNQUFNd0IsU0FBMkMsRUFBRTtRQUVuRCxJQUFJLENBQUMxQyxjQUFjMkMsWUFBWSxFQUFFO1lBQy9CLE9BQU9EO1FBQ1Q7UUFFQSxNQUFNRSxZQUFZNUMsY0FBYzZDLFNBQVM7UUFFekMsS0FBSyxNQUFNQyxZQUFZRixVQUFXO1lBQ2hDLE1BQU1HLFNBQVMvQyxjQUFjZ0QsR0FBRyxDQUFDRjtZQUVqQyxrQ0FBa0M7WUFDbENKLE9BQU9PLElBQUksQ0FBQztnQkFBRUMsS0FBSyxDQUFDLE9BQU8sRUFBRUosVUFBVTtnQkFBRUssT0FBT0osT0FBT0ssS0FBSztZQUFDO1lBRTdELGlDQUFpQztZQUNqQyxLQUFLLE1BQU1DLFFBQVFOLE9BQU9PLEtBQUssQ0FBRTtnQkFDL0IsSUFBSUQsS0FBS0UsSUFBSSxFQUFFO29CQUNiYixPQUFPTyxJQUFJLENBQUM7d0JBQUVDLEtBQUssQ0FBQyxPQUFPLEVBQUVKLFNBQVMsQ0FBQyxFQUFFTyxLQUFLRyxJQUFJLEVBQUU7d0JBQUVMLE9BQU9FLEtBQUtFLElBQUk7b0JBQUM7Z0JBQ3pFO1lBQ0Y7WUFFQSxpQ0FBaUM7WUFDakMsS0FBSyxNQUFNLENBQUNFLFFBQVFDLGNBQWMsSUFBSUMsT0FBT0MsT0FBTyxDQUFDYixPQUFPYyxVQUFVLEVBQUc7Z0JBQ3ZFLEtBQUssTUFBTSxDQUFDVixPQUFPVyxNQUFNLElBQUlILE9BQU9DLE9BQU8sQ0FBQ0YsZUFBZ0I7b0JBQzFEaEIsT0FBT08sSUFBSSxDQUFDO3dCQUFFQyxLQUFLLENBQUMsS0FBSyxFQUFFTyxPQUFPLENBQUMsRUFBRU4sT0FBTzt3QkFBRUEsT0FBT1c7b0JBQU07Z0JBQzdEO1lBQ0Y7UUFDRjtRQUVBLE9BQU9wQjtJQUNUO0lBRUE7O0dBRUMsR0FDRCxBQUFRWCx5QkFBeUJXLE1BQXdDLEVBQVU7UUFDakYsSUFBSUEsT0FBT3FCLE1BQU0sS0FBSyxHQUFHO1lBQ3ZCLE9BQU87UUFDVDtRQUVBLE1BQU1ILFVBQVVsQixPQUFPZixHQUFHLENBQUMsQ0FBQyxFQUFFdUIsR0FBRyxFQUFFQyxLQUFLLEVBQUUsR0FBSyxDQUFDLEdBQUcsRUFBRUQsSUFBSSxJQUFJLEVBQUUsSUFBSSxDQUFDYyxZQUFZLENBQUNiLE9BQU8sRUFBRSxDQUFDO1FBRTNGLE9BQU8sQ0FBQztBQUNaLEVBQUVTLFFBQVEvQixJQUFJLENBQUMsTUFBTTtXQUNWLENBQUM7SUFDVjtJQUVRbUMsYUFBYTFCLEdBQVcsRUFBVTtRQUN4QyxPQUFPQSxJQUFJMkIsT0FBTyxDQUFDLE9BQU8sUUFBUUEsT0FBTyxDQUFDLE1BQU0sT0FBT0EsT0FBTyxDQUFDLE9BQU87SUFDeEU7SUFFQTs7R0FFQyxHQUNELEFBQVF6QywyQkFBMkIwQyxPQUFlLEVBQUV0QyxNQUFjLEVBQVU7UUFDMUUsaUNBQWlDO1FBQ2pDLGtFQUFrRTtRQUNsRSxNQUFNdUMsY0FBY3JFLEtBQUtzRSxPQUFPLENBQUMsWUFBWUMsT0FBTyxFQUFFLE1BQU0sTUFBTTtRQUNsRSxNQUFNQyxXQUFXeEUsS0FBSytCLElBQUksQ0FBQ3NDLGFBQWEsT0FBTyxRQUFRLEdBQUd2QyxPQUFPLEdBQUcsQ0FBQztRQUVyRSxJQUFJLENBQUMvQixHQUFHMEUsVUFBVSxDQUFDRCxXQUFXO1lBQzVCLE9BQU8sQ0FBQyxNQUFNLEVBQUVKLFFBQVEsTUFBTSxDQUFDO1FBQ2pDO1FBRUEsTUFBTU4sVUFBVTNELGNBQWNxRTtRQUU5QixJQUFJVixRQUFRRyxNQUFNLEtBQUssR0FBRztZQUN4QixPQUFPLENBQUMsTUFBTSxFQUFFRyxRQUFRLE1BQU0sQ0FBQztRQUNqQztRQUVBLE1BQU1NLGFBQWFaLFFBQVFqQyxHQUFHLENBQUMsQ0FBQyxFQUFFdUIsR0FBRyxFQUFFQyxLQUFLLEVBQUVzQixVQUFVLEVBQUU7WUFDeEQsTUFBTUMsWUFBWUQsYUFBYXRCLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDYSxZQUFZLENBQUNiLE9BQU8sQ0FBQyxDQUFDO1lBQ3RFLE9BQU8sQ0FBQyxHQUFHLEVBQUVELElBQUksR0FBRyxFQUFFd0IsVUFBVSxDQUFDLENBQUM7UUFDcEM7UUFFQSxPQUFPLENBQUMsTUFBTSxFQUFFUixRQUFRO0FBQzVCLEVBQUVNLFdBQVczQyxJQUFJLENBQUMsTUFBTTtFQUN0QixDQUFDO0lBQ0Q7QUFDRiJ9
|
package/dist/ui/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/ui/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/ui/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAgC/C,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,iBAg6C/D"}
|