text-to-map 1.1.35 → 1.1.36
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.
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SchoolType } from "../types";
|
|
2
|
+
export async function up(knex) {
|
|
3
|
+
await knex.schema.alterTable("school", (t) => {
|
|
4
|
+
t.tinyint("type", 2).defaultTo(SchoolType.Elementary);
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
export async function down(knex) {
|
|
8
|
+
await knex.schema.alterTable("city", (t) => {
|
|
9
|
+
t.dropColumn("type");
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAyNTAzMTYxNjI3MDBfa2luZGVyZ2FydGVucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYi9taWdyYXRpb25zLzIwMjUwMzE2MTYyNzAwX2tpbmRlcmdhcnRlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV0QyxNQUFNLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQyxJQUFVO0lBQ2pDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDM0MsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxJQUFVO0lBQ25DLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDekMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLbmV4IH0gZnJvbSBcImtuZXhcIjtcclxuaW1wb3J0IHsgU2Nob29sVHlwZSB9IGZyb20gXCIuLi90eXBlc1wiO1xyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwKGtuZXg6IEtuZXgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICBhd2FpdCBrbmV4LnNjaGVtYS5hbHRlclRhYmxlKFwic2Nob29sXCIsICh0KSA9PiB7XHJcbiAgICB0LnRpbnlpbnQoXCJ0eXBlXCIsIDIpLmRlZmF1bHRUbyhTY2hvb2xUeXBlLkVsZW1lbnRhcnkpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bihrbmV4OiBLbmV4KSB7XHJcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcclxuICAgIHQuZHJvcENvbHVtbihcInR5cGVcIik7XHJcbiAgfSk7XHJcbn1cclxuIl19
|
package/dist/db/schools.js
CHANGED
|
@@ -18,7 +18,8 @@ export const insertSchools = async (schools) => {
|
|
|
18
18
|
school.redizo,
|
|
19
19
|
school.name,
|
|
20
20
|
school.capacity.toString(),
|
|
21
|
-
|
|
21
|
+
school.type.toString(),
|
|
22
|
+
]), "school", ["izo", "redizo", "name", "capacity", "type"]);
|
|
22
23
|
const locations = toInsert
|
|
23
24
|
.filter((school) => school.locations.length > 0)
|
|
24
25
|
.map((school) => [
|
|
@@ -67,4 +68,4 @@ const filterOutDuplicates = (schools) => {
|
|
|
67
68
|
return !duplicate;
|
|
68
69
|
});
|
|
69
70
|
};
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nob29scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYi9zY2hvb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3JELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQUUsT0FBaUIsRUFBbUIsRUFBRTtJQUN4RSxNQUFNLElBQUksR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUV6QixNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRCxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQy9ELENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUNqQixDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FDbkMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQzlDLENBQUM7SUFDRixNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDL0MsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQ2pDLENBQUM7SUFFRixLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsRUFBRTtRQUM3QixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMs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QUFDO0tBQ2pDO0lBQ0QsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxRSxNQUFNLENBQUMsSUFBSSxDQUNULGNBQWMsQ0FDWixtQkFBbUIsSUFBSSwrQkFBK0IsU0FBUyxJQUFJLEVBQ25FLElBQUksQ0FDTCxDQUNGLENBQUM7SUFFRixPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUMzQyxDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQUMsT0FBaUIsRUFBWSxFQUFFO0lBQzFELE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDekIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDL0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdob2xlTGluZUVycm9yIH0gZnJvbSBcIi4uL3N0cmVldC1tYXJrZG93bi9zbWRcIjtcclxuaW1wb3J0IHsgU21kRXJyb3IgfSBmcm9tIFwiLi4vc3RyZWV0LW1hcmtkb3duL3R5cGVzXCI7XHJcbmltcG9ydCB7IGZpbmRDbG9zZXN0U3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2hlbHBlcnNcIjtcclxuaW1wb3J0IHsgZ2V0S25leERiLCBpbnNlcnRNdWx0aXBsZVJvd3MgfSBmcm9tIFwiLi9kYlwiO1xyXG5pbXBvcnQgeyBTY2hvb2wgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydFNjaG9vbHMgPSBhc3luYyAoc2Nob29sczogU2Nob29sW10pOiBQcm9taXNlPG51bWJlcj4gPT4ge1xyXG4gIGNvbnN0IGtuZXggPSBnZXRLbmV4RGIoKTtcclxuXHJcbiAgY29uc3QgdW5pcXVlU2Nob29scyA9IGZpbHRlck91dER1cGxpY2F0ZXMoc2Nob29scyk7XHJcbiAgY29uc3QgZXhpc3RpbmdJem8gPSAoYXdhaXQga25leC5zZWxlY3QoXCJpem9cIikuZnJvbShcInNjaG9vbFwiKSkubWFwKFxyXG4gICAgKHJvdykgPT4gcm93Lml6b1xyXG4gICk7XHJcblxyXG4gIGNvbnN0IHRvSW5zZXJ0ID0gdW5pcXVlU2Nob29scy5maWx0ZXIoXHJcbiAgICAoc2Nob29sKSA9PiAhZXhpc3RpbmdJem8uaW5jbHVkZXMoc2Nob29sLml6bylcclxuICApO1xyXG4gIGNvbnN0IHRvVXBkYXRlID0gdW5pcXVlU2Nob29scy5maWx0ZXIoKHNjaG9vbCkgPT5cclxuICAgIGV4aXN0aW5nSXpvLmluY2x1ZGVzKHNjaG9vbC5pem8pXHJcbiAgKTtcclxuXHJcbiAgZm9yIChjb25zdCBzY2hvb2wgb2YgdG9VcGRhdGUpIHtcclxuICAgIGF3YWl0IGtuZXguZnJvbShcInNjaG9vbFwiKS53aGVyZShcIml6b1wiLCBzY2hvb2wuaXpvKS51cGRhdGUoe1xyXG4gICAgICBuYW1lOiBzY2hvb2wubmFtZSxcclxuICAgICAgY2FwYWNpdHk6IHNjaG9vbC5jYXBhY2l0eSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgaW5zZXJ0ZWRTY2hvb2xzID0gYXdhaXQgaW5zZXJ0TXVsdGlwbGVSb3dzKFxyXG4gICAgdG9JbnNlcnQubWFwKChzY2hvb2wpID0+IFtcclxuICAgICAgc2Nob29sLml6byxcclxuICAgICAgc2Nob29sLnJlZGl6byxcclxuICAgICAgc2Nob29sLm5hbWUsXHJcbiAgICAgIHNjaG9vbC5jYXBhY2l0eS50b1N0cmluZygpLFxyXG4gICAgICBzY2hvb2wudHlwZS50b1N0cmluZygpLFxyXG4gICAgXSksXHJcbiAgICBcInNjaG9vbFwiLFxyXG4gICAgW1wiaXpvXCIsIFwicmVkaXpvXCIsIFwibmFtZVwiLCBcImNhcGFjaXR5XCIsIFwidHlwZVwiXVxyXG4gICk7XHJcblxyXG4gIGNvbnN0IGxvY2F0aW9ucyA9IHRvSW5zZXJ0XHJcbiAgICAuZmlsdGVyKChzY2hvb2wpID0+IHNjaG9vbC5sb2NhdGlvbnMubGVuZ3RoID4gMClcclxuICAgIC5tYXAoKHNjaG9vbCkgPT4gW1xyXG4gICAgICBzY2hvb2wuaXpvLFxyXG4gICAgICBzY2hvb2wubG9jYXRpb25zWzBdLmFkZHJlc3NQb2ludElkLnRvU3RyaW5nKCksIC8vIGFkZCBvbmx5IGZpcnN0IGxvY2F0aW9uXHJcbiAgICBdKTtcclxuXHJcbiAgbGV0IGluc2VydGVkTG9jYXRpb25zID0gMDtcclxuXHJcbiAgLy8gcGx1cyBmaWx0ZXIgb3V0IGR1cGxpY2F0ZSBsb2NhdGlvbnMgKHNhbWUgYWRkcmVzcyBpZCArIGl6bylcclxuICBmb3IgKGNvbnN0IGxvY2F0aW9uIG9mIGxvY2F0aW9ucykge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaW5zZXJ0ZWRMb2NhdGlvbnMgKz0gYXdhaXQgaW5zZXJ0TXVsdGlwbGVSb3dzKFxyXG4gICAgICAgIFtsb2NhdGlvbl0sXHJcbiAgICAgICAgXCJzY2hvb2xfbG9jYXRpb25cIixcclxuICAgICAgICBbXCJzY2hvb2xfaXpvXCIsIFwiYWRkcmVzc19wb2ludF9pZFwiXSxcclxuICAgICAgICB0cnVlXHJcbiAgICAgICk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICBgQ2Fubm90IGFkZCBsb2NhdGlvbiB3aXRoIFJVSUFOIGNvZGUgJHtsb2NhdGlvblsxXX0gKHNjaG9vbCBJWk8gPSAke2xvY2F0aW9uWzBdfSk6IGNvZGUgZG9lcyBub3QgZXhpc3QuYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGluc2VydGVkU2Nob29scyArIGluc2VydGVkTG9jYXRpb25zO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGZpbmRTY2hvb2wgPSAoXHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIHNjaG9vbHM6IFNjaG9vbFtdLFxyXG4gIG1heERpc3RhbmNlPzogbnVtYmVyXHJcbik6IHsgc2Nob29sOiBTY2hvb2wgfCBudWxsOyBlcnJvcnM6IFNtZEVycm9yW10gfSA9PiB7XHJcbiAgaWYgKHNjaG9vbHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzY2hvb2w6IG51bGwsXHJcbiAgICAgIGVycm9yczogW3dob2xlTGluZUVycm9yKFwiQWt0dcOhbG7DrSB6xZlpem92YXRlbCBuZW3DoSDFvsOhZG7DqSDFoWtvbHkuXCIsIG5hbWUpXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb25zdCBlcnJvcnM6IFNtZEVycm9yW10gPSBbXTtcclxuXHJcbiAgY29uc3QgZXhhY3RTY2hvb2wgPSBzY2hvb2xzLmZpbmQoKHNjaG9vbCkgPT4gc2Nob29sLm5hbWUgPT09IG5hbWUpO1xyXG4gIGlmIChleGFjdFNjaG9vbCkge1xyXG4gICAgcmV0dXJuIHsgc2Nob29sOiBleGFjdFNjaG9vbCwgZXJyb3JzIH07XHJcbiAgfVxyXG5cclxuICBjb25zdCBuYW1lc0xpc3QgPSBzY2hvb2xzLm1hcCgoc2Nob29sKSA9PiBzY2hvb2wubmFtZSk7XHJcbiAgY29uc3QgYmVzdE1hdGNoID0gZmluZENsb3Nlc3RTdHJpbmcobmFtZSwgbmFtZXNMaXN0LCBtYXhEaXN0YW5jZSk7XHJcbiAgaWYgKGJlc3RNYXRjaCA9PT0gbnVsbCkge1xyXG4gICAgZXJyb3JzLnB1c2god2hvbGVMaW5lRXJyb3IoYMWga29sYSBzIG7DoXp2ZW0gJyR7bmFtZX0nIG5lZXhpc3R1amUuYCwgbmFtZSkpO1xyXG4gICAgcmV0dXJuIHsgc2Nob29sOiBudWxsLCBlcnJvcnMgfTtcclxuICB9XHJcbiAgY29uc3QgY2xvc2VzdFNjaG9vbCA9IHNjaG9vbHMuZmluZCgoc2Nob29sKSA9PiBiZXN0TWF0Y2ggPT09IHNjaG9vbC5uYW1lKTtcclxuXHJcbiAgZXJyb3JzLnB1c2goXHJcbiAgICB3aG9sZUxpbmVFcnJvcihcclxuICAgICAgYMWga29sYSBzIG7DoXp2ZW0gJyR7bmFtZX0nIG5lZXhpc3R1amUsIG15c2xlbGkganN0ZSAnJHtiZXN0TWF0Y2h9Jz9gLFxyXG4gICAgICBuYW1lXHJcbiAgICApXHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIHsgc2Nob29sOiBjbG9zZXN0U2Nob29sLCBlcnJvcnMgfTtcclxufTtcclxuXHJcbmNvbnN0IGZpbHRlck91dER1cGxpY2F0ZXMgPSAoc2Nob29sczogU2Nob29sW10pOiBTY2hvb2xbXSA9PiB7XHJcbiAgY29uc3QgaXpvU2V0ID0gbmV3IFNldCgpO1xyXG4gIHJldHVybiBzY2hvb2xzLmZpbHRlcigoc2Nob29sKSA9PiB7XHJcbiAgICBjb25zdCBkdXBsaWNhdGUgPSBpem9TZXQuaGFzKHNjaG9vbC5pem8pO1xyXG4gICAgaXpvU2V0LmFkZChzY2hvb2wuaXpvKTtcclxuICAgIHJldHVybiAhZHVwbGljYXRlO1xyXG4gIH0pO1xyXG59O1xyXG4iXX0=
|
package/dist/db/types.d.ts
CHANGED
|
@@ -4,11 +4,16 @@ export interface SchoolLocation {
|
|
|
4
4
|
schoolIzo?: number;
|
|
5
5
|
addressPointId: number;
|
|
6
6
|
}
|
|
7
|
+
export declare enum SchoolType {
|
|
8
|
+
Kindergarten = 0,
|
|
9
|
+
Elementary = 1
|
|
10
|
+
}
|
|
7
11
|
export interface School {
|
|
8
12
|
name: string;
|
|
9
13
|
izo: string;
|
|
10
14
|
redizo: string;
|
|
11
15
|
capacity: number;
|
|
16
|
+
type?: SchoolType;
|
|
12
17
|
locations: SchoolLocation[];
|
|
13
18
|
}
|
|
14
19
|
export interface Founder {
|
package/dist/db/types.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
export var SchoolType;
|
|
2
|
+
(function (SchoolType) {
|
|
3
|
+
SchoolType[SchoolType["Kindergarten"] = 0] = "Kindergarten";
|
|
4
|
+
SchoolType[SchoolType["Elementary"] = 1] = "Elementary";
|
|
5
|
+
})(SchoolType || (SchoolType = {}));
|
|
1
6
|
export var MunicipalityType;
|
|
2
7
|
(function (MunicipalityType) {
|
|
3
8
|
MunicipalityType[MunicipalityType["City"] = 0] = "City";
|
|
@@ -18,4 +23,4 @@ export var SyncPart;
|
|
|
18
23
|
SyncPart["Streets"] = "streets";
|
|
19
24
|
SyncPart["Cities"] = "cities";
|
|
20
25
|
})(SyncPart || (SyncPart = {}));
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxDQUFOLElBQVksVUFHWDtBQUhELFdBQVksVUFBVTtJQUNwQiwyREFBZ0IsQ0FBQTtJQUNoQix1REFBYyxDQUFBO0FBQ2hCLENBQUMsRUFIVyxVQUFVLEtBQVYsVUFBVSxRQUdyQjtBQW9CRCxNQUFNLENBQU4sSUFBWSxnQkFJWDtBQUpELFdBQVksZ0JBQWdCO0lBQzFCLHVEQUFJLENBQUE7SUFDSiwrREFBUSxDQUFBO0lBQ1IseURBQUssQ0FBQTtBQUNQLENBQUMsRUFKVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSTNCO0FBb0JELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsT0FBZ0IsRUFBZ0IsRUFBRTtJQUN0RSxPQUFPO1FBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7UUFDOUIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7S0FDL0IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVFGLE1BQU0sQ0FBTixJQUFZLFFBTVg7QUFORCxXQUFZLFFBQVE7SUFDbEIsNENBQWdDLENBQUE7SUFDaEMsK0JBQW1CLENBQUE7SUFDbkIsK0JBQW1CLENBQUE7SUFDbkIsK0JBQW1CLENBQUE7SUFDbkIsNkJBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQU5XLFFBQVEsS0FBUixRQUFRLFFBTW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmVhdHVyZUNvbGxlY3Rpb24sIFBvbHlnb24sIE11bHRpUG9seWdvbiB9IGZyb20gXCJAdHVyZi9oZWxwZXJzXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNjaG9vbExvY2F0aW9uIHtcclxuICBpZD86IG51bWJlcjtcclxuICBzY2hvb2xJem8/OiBudW1iZXI7XHJcbiAgYWRkcmVzc1BvaW50SWQ6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU2Nob29sVHlwZSB7XHJcbiAgS2luZGVyZ2FydGVuID0gMCxcclxuICBFbGVtZW50YXJ5ID0gMSxcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTY2hvb2wge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpem86IHN0cmluZztcclxuICByZWRpem86IHN0cmluZztcclxuICBjYXBhY2l0eTogbnVtYmVyO1xyXG4gIHR5cGU/OiBTY2hvb2xUeXBlO1xyXG4gIGxvY2F0aW9uczogU2Nob29sTG9jYXRpb25bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb3VuZGVyIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgaWNvOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxUeXBlPzogbnVtYmVyO1xyXG4gIG11bmljaXBhbGl0eVR5cGU6IE11bmljaXBhbGl0eVR5cGU7XHJcbiAgbXVuaWNpcGFsaXR5Q29kZT86IG51bWJlcjtcclxuICBzY2hvb2xzOiBTY2hvb2xbXTtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTXVuaWNpcGFsaXR5VHlwZSB7XHJcbiAgQ2l0eSxcclxuICBEaXN0cmljdCxcclxuICBPdGhlcixcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQb3NpdGlvbiB7XHJcbiAgbGF0OiBudW1iZXI7XHJcbiAgbG5nOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTXVuaWNpcGFsaXR5IHtcclxuICB0eXBlOiBNdW5pY2lwYWxpdHlUeXBlO1xyXG4gIGNvZGU6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTXVuaWNpcGFsaXR5V2l0aFBvc2l0aW9uID0gTXVuaWNpcGFsaXR5ICYgUG9zaXRpb247XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBsYWNlV2l0aFBvc2l0aW9uIHtcclxuICBjb2RlOiBudW1iZXI7XHJcbiAgbGF0OiBudW1iZXI7XHJcbiAgbG5nOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBmb3VuZGVyVG9NdW5pY2lwYWxpdHkgPSAoZm91bmRlcjogRm91bmRlcik6IE11bmljaXBhbGl0eSA9PiB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHR5cGU6IGZvdW5kZXIubXVuaWNpcGFsaXR5VHlwZSxcclxuICAgIGNvZGU6IGZvdW5kZXIubXVuaWNpcGFsaXR5Q29kZSxcclxuICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEYmZTdHJlZXQge1xyXG4gIEtPRDogc3RyaW5nO1xyXG4gIE5BWkVWOiBzdHJpbmc7XHJcbiAgT0JFQ19LT0Q6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU3luY1BhcnQge1xyXG4gIEFkZHJlc3NQb2ludHMgPSBcImFkZHJlc3MtcG9pbnRzXCIsXHJcbiAgU2Nob29scyA9IFwic2Nob29sc1wiLFxyXG4gIFJlZ2lvbnMgPSBcInJlZ2lvbnNcIixcclxuICBTdHJlZXRzID0gXCJzdHJlZXRzXCIsXHJcbiAgQ2l0aWVzID0gXCJjaXRpZXNcIixcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUG9seWdvbnNCeUNvZGVzID0gUmVjb3JkPFxyXG4gIG51bWJlcixcclxuICBGZWF0dXJlQ29sbGVjdGlvbjxQb2x5Z29uIHwgTXVsdGlQb2x5Z29uPlxyXG4+O1xyXG4iXX0=
|
|
@@ -5,7 +5,7 @@ import sax from "sax";
|
|
|
5
5
|
import { pipeline } from "stream/promises";
|
|
6
6
|
import { insertFounders } from "../db/founders";
|
|
7
7
|
import { insertSchools } from "../db/schools";
|
|
8
|
-
import { MunicipalityType, SyncPart, } from "../db/types";
|
|
8
|
+
import { MunicipalityType, SchoolType, SyncPart, } from "../db/types";
|
|
9
9
|
import { prepareOptions, } from "../utils/helpers";
|
|
10
10
|
import { runSyncPart } from "./common";
|
|
11
11
|
const downloadXml = async (options) => {
|
|
@@ -35,7 +35,8 @@ var XMLState;
|
|
|
35
35
|
XMLState[XMLState["FounderType"] = 10] = "FounderType";
|
|
36
36
|
XMLState[XMLState["FounderIco"] = 11] = "FounderIco";
|
|
37
37
|
})(XMLState || (XMLState = {}));
|
|
38
|
-
const
|
|
38
|
+
const SCHOOL_TYPE_KINDERGARTEN = "A00";
|
|
39
|
+
const SCHOOL_TYPE_ELEMENTARY = "B00";
|
|
39
40
|
const createNewSchool = () => {
|
|
40
41
|
return {
|
|
41
42
|
name: "",
|
|
@@ -56,11 +57,12 @@ const getMunicipalityType = (founderType) => {
|
|
|
56
57
|
: MunicipalityType.Other;
|
|
57
58
|
};
|
|
58
59
|
const processSchoolRegisterXml = async (options) => {
|
|
59
|
-
let
|
|
60
|
-
let
|
|
60
|
+
let currentSchools;
|
|
61
|
+
let currentRedizo;
|
|
62
|
+
let currentName;
|
|
61
63
|
let currentIzo;
|
|
62
64
|
let currentIco;
|
|
63
|
-
let currentType;
|
|
65
|
+
let currentType = null;
|
|
64
66
|
let currentCapacity;
|
|
65
67
|
let currentLocations = [];
|
|
66
68
|
let state = XMLState.None;
|
|
@@ -80,8 +82,11 @@ const processSchoolRegisterXml = async (options) => {
|
|
|
80
82
|
.on("opentag", (tag) => {
|
|
81
83
|
switch (tag.name) {
|
|
82
84
|
case "PravniSubjekt":
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
currentSchools = [];
|
|
86
|
+
currentRedizo = "";
|
|
87
|
+
currentName = "";
|
|
88
|
+
currentIzo = "";
|
|
89
|
+
currentCapacity = 0;
|
|
85
90
|
isRuianCodeMissing = false;
|
|
86
91
|
break;
|
|
87
92
|
case "RedIzo":
|
|
@@ -127,12 +132,12 @@ const processSchoolRegisterXml = async (options) => {
|
|
|
127
132
|
.on("closetag", (tagName) => {
|
|
128
133
|
switch (tagName) {
|
|
129
134
|
case "PravniSubjekt":
|
|
130
|
-
if (
|
|
131
|
-
schools.push(
|
|
135
|
+
if (currentSchools.length > 0) {
|
|
136
|
+
schools.push(...currentSchools);
|
|
132
137
|
currentFounders.forEach((founder) => {
|
|
133
138
|
const key = founder.name + founder.ico;
|
|
134
139
|
if (founders.has(key)) {
|
|
135
|
-
founders.get(key).schools.push(
|
|
140
|
+
founders.get(key).schools.push(...currentSchools);
|
|
136
141
|
}
|
|
137
142
|
else {
|
|
138
143
|
founders.set(key, {
|
|
@@ -140,7 +145,7 @@ const processSchoolRegisterXml = async (options) => {
|
|
|
140
145
|
ico: founder.ico,
|
|
141
146
|
originalType: founder.type,
|
|
142
147
|
municipalityType: getMunicipalityType(founder.type),
|
|
143
|
-
schools: [
|
|
148
|
+
schools: [...currentSchools],
|
|
144
149
|
});
|
|
145
150
|
}
|
|
146
151
|
});
|
|
@@ -152,7 +157,7 @@ const processSchoolRegisterXml = async (options) => {
|
|
|
152
157
|
if (currentFounderIco === "" || currentFounderName === "") {
|
|
153
158
|
currentFounders.push({
|
|
154
159
|
ico: currentIco,
|
|
155
|
-
name:
|
|
160
|
+
name: currentName,
|
|
156
161
|
type: "224", // s.r.o (not all are those, but we don't need to differentiate here)
|
|
157
162
|
});
|
|
158
163
|
}
|
|
@@ -168,19 +173,25 @@ const processSchoolRegisterXml = async (options) => {
|
|
|
168
173
|
currentFounderType = "";
|
|
169
174
|
break;
|
|
170
175
|
case "SkolaZarizeni":
|
|
171
|
-
if (currentType
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
176
|
+
if (currentType !== null) {
|
|
177
|
+
currentSchools.push({
|
|
178
|
+
izo: currentIzo,
|
|
179
|
+
name: currentName,
|
|
180
|
+
redizo: currentRedizo,
|
|
181
|
+
capacity: currentCapacity,
|
|
182
|
+
type: currentType,
|
|
183
|
+
locations: currentLocations,
|
|
184
|
+
});
|
|
175
185
|
}
|
|
176
186
|
currentLocations = [];
|
|
187
|
+
currentType = null;
|
|
177
188
|
break;
|
|
178
189
|
case "SkolaMistoVykonuCinnosti":
|
|
179
190
|
if (isRuianCodeMissing) {
|
|
180
191
|
schoolsWithoutRuian.push({
|
|
181
192
|
izo: currentIzo,
|
|
182
193
|
address: currentAddress,
|
|
183
|
-
|
|
194
|
+
type: currentType,
|
|
184
195
|
});
|
|
185
196
|
}
|
|
186
197
|
break;
|
|
@@ -206,9 +217,9 @@ const processSchoolRegisterXml = async (options) => {
|
|
|
206
217
|
.on("text", (text) => {
|
|
207
218
|
switch (state) {
|
|
208
219
|
case XMLState.RedIzo:
|
|
209
|
-
|
|
220
|
+
currentRedizo = text;
|
|
210
221
|
case XMLState.SchoolName:
|
|
211
|
-
|
|
222
|
+
currentName = text;
|
|
212
223
|
break;
|
|
213
224
|
case XMLState.Izo:
|
|
214
225
|
currentIzo = text;
|
|
@@ -217,9 +228,11 @@ const processSchoolRegisterXml = async (options) => {
|
|
|
217
228
|
currentIco = text;
|
|
218
229
|
break;
|
|
219
230
|
case XMLState.SchoolType:
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
231
|
+
if (text === SCHOOL_TYPE_KINDERGARTEN) {
|
|
232
|
+
currentType = SchoolType.Kindergarten;
|
|
233
|
+
}
|
|
234
|
+
else if (text === SCHOOL_TYPE_ELEMENTARY) {
|
|
235
|
+
currentType = SchoolType.Elementary;
|
|
223
236
|
}
|
|
224
237
|
break;
|
|
225
238
|
case XMLState.RuianCode:
|
|
@@ -278,9 +291,9 @@ const importDataToDb = async (options, saveFoundersToCsv = false, saveSchoolsWit
|
|
|
278
291
|
var csv = createWriteStream(csvFile, {
|
|
279
292
|
flags: "a",
|
|
280
293
|
});
|
|
281
|
-
csv.write("IZO;Je základní;adresa1;adresa2;adresa3\n");
|
|
294
|
+
csv.write("IZO;Je mateřská;Je základní;adresa1;adresa2;adresa3\n");
|
|
282
295
|
schoolsWithoutRuian.forEach((schoolAddress) => {
|
|
283
|
-
csv.write(`#${schoolAddress.izo};${schoolAddress.
|
|
296
|
+
csv.write(`#${schoolAddress.izo};${schoolAddress.type === SchoolType.Kindergarten ? "TRUE" : "FALSE"};${schoolAddress.type === SchoolType.Elementary ? "TRUE" : "FALSE"};${schoolAddress.address.join(";")}\n`);
|
|
284
297
|
});
|
|
285
298
|
csv.end();
|
|
286
299
|
}
|
|
@@ -304,4 +317,4 @@ export const deleteSchoolsXmlFile = (options = {}) => {
|
|
|
304
317
|
rmSync(getXmlFilePath(runOptions));
|
|
305
318
|
}
|
|
306
319
|
};
|
|
307
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nob29scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVuLWRhdGEtc3luYy9zY2hvb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzdFLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sR0FBWSxNQUFNLEtBQUssQ0FBQztBQUUvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUVMLGdCQUFnQixFQUdoQixRQUFRLEdBQ1QsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUdMLGNBQWMsR0FDZixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFdkMsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLE9BQTRCLEVBQWlCLEVBQUU7SUFDeEUsSUFBSSxVQUFVLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7UUFDdkMsT0FBTztLQUNSO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQ2Isb0RBQW9ELFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FDdEUsQ0FBQztLQUNIO0lBQ0QsTUFB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YXRlUmVhZFN0cmVhbSwgY3JlYXRlV3JpdGVTdHJlYW0sIGV4aXN0c1N5bmMsIHJtU3luYyB9IGZyb20gXCJmc1wiO1xyXG5pbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIjtcclxuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJwYXRoXCI7XHJcbmltcG9ydCBzYXgsIHsgVGFnIH0gZnJvbSBcInNheFwiO1xyXG5cclxuaW1wb3J0IHsgcGlwZWxpbmUgfSBmcm9tIFwic3RyZWFtL3Byb21pc2VzXCI7XHJcbmltcG9ydCB7IGluc2VydEZvdW5kZXJzIH0gZnJvbSBcIi4uL2RiL2ZvdW5kZXJzXCI7XHJcbmltcG9ydCB7IGluc2VydFNjaG9vbHMgfSBmcm9tIFwiLi4vZGIvc2Nob29sc1wiO1xyXG5pbXBvcnQge1xyXG4gIEZvdW5kZXIsXHJcbiAgTXVuaWNpcGFsaXR5VHlwZSxcclxuICBTY2hvb2wsXHJcbiAgU2Nob29sTG9jYXRpb24sXHJcbiAgU3luY1BhcnQsXHJcbn0gZnJvbSBcIi4uL2RiL3R5cGVzXCI7XHJcbmltcG9ydCB7XHJcbiAgT3BlbkRhdGFTeW5jT3B0aW9ucyxcclxuICBPcGVuRGF0YVN5bmNPcHRpb25zUGFydGlhbCxcclxuICBwcmVwYXJlT3B0aW9ucyxcclxufSBmcm9tIFwiLi4vdXRpbHMvaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBydW5TeW5jUGFydCB9IGZyb20gXCIuL2NvbW1vblwiO1xyXG5cclxuY29uc3QgZG93bmxvYWRYbWwgPSBhc3luYyAob3B0aW9uczogT3BlbkRhdGFTeW5jT3B0aW9ucyk6IFByb21pc2U8dm9pZD4gPT4ge1xyXG4gIGlmIChleGlzdHNTeW5jKGdldFhtbEZpbGVQYXRoKG9wdGlvbnMpKSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgY29uc29sZS5sb2coXCJEb3dubG9hZGluZyBhIGxhcmdlIFhNTCBmaWxlIHdpdGggc2Nob29sIGRhdGEuLi5cIik7XHJcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChvcHRpb25zLnNjaG9vbHNYbWxVcmwpO1xyXG4gIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDIwMCkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICBgVGhlIFhNTCBmaWxlIGNvdWxkIG5vdCBiZSBkb3dubG9hZGVkLiBIVFRQIENvZGU6ICR7cmVzcG9uc2Uuc3RhdHVzfWBcclxuICAgICk7XHJcbiAgfVxyXG4gIGF3YWl0IHBpcGVsaW5lKHJlc3BvbnNlLmJvZHksIGNyZWF0ZVdyaXRlU3RyZWFtKGdldFhtbEZpbGVQYXRoKG9wdGlvbnMpKSk7XHJcbiAgY29uc29sZS5sb2coXCJGaW5pc2hlZCBkb3dubG9hZGluZy5cIik7XHJcbn07XHJcblxyXG5lbnVtIFhNTFN0YXRlIHtcclxuICBOb25lLFxyXG4gIFJlZEl6byxcclxuICBTY2hvb2xOYW1lLFxyXG4gIEl6byxcclxuICBJY28sXHJcbiAgU2Nob29sVHlwZSxcclxuICBDYXBhY2l0eSxcclxuICBSdWlhbkNvZGUsXHJcbiAgQWRkcmVzcyxcclxuICBGb3VuZGVyTmFtZSxcclxuICBGb3VuZGVyVHlwZSxcclxuICBGb3VuZGVySWNvLFxyXG59XHJcblxyXG5jb25zdCBTQ0hPT0xfVFlQRV9QUklNQVJZID0gXCJCMDBcIjtcclxuXHJcbmNvbnN0IGNyZWF0ZU5ld1NjaG9vbCA9ICgpOiBTY2hvb2wgPT4ge1xyXG4gIHJldHVybiB7XHJcbiAgICBuYW1lOiBcIlwiLFxyXG4gICAgcmVkaXpvOiBcIlwiLFxyXG4gICAgaXpvOiBcIlwiLFxyXG4gICAgY2FwYWNpdHk6IDAsXHJcbiAgICBsb2NhdGlvbnM6IFtdLFxyXG4gIH07XHJcbn07XHJcblxyXG5jb25zdCBnZXRDb3JyZWN0Rm91bmRlclR5cGUgPSAoZm91bmRlclR5cGU6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgcmV0dXJuIGZvdW5kZXJUeXBlID09PSBcIlwiID8gXCIxMDFcIiA6IGZvdW5kZXJUeXBlO1xyXG59O1xyXG5cclxuY29uc3QgZ2V0TXVuaWNpcGFsaXR5VHlwZSA9IChmb3VuZGVyVHlwZTogc3RyaW5nKTogTXVuaWNpcGFsaXR5VHlwZSA9PiB7XHJcbiAgcmV0dXJuIGZvdW5kZXJUeXBlID09PSBcIjI2MVwiXHJcbiAgICA/IE11bmljaXBhbGl0eVR5cGUuQ2l0eVxyXG4gICAgOiBmb3VuZGVyVHlwZSA9PT0gXCIyNjNcIlxyXG4gICAgPyBNdW5pY2lwYWxpdHlUeXBlLkRpc3RyaWN0XHJcbiAgICA6IE11bmljaXBhbGl0eVR5cGUuT3RoZXI7XHJcbn07XHJcblxyXG50eXBlIFNjaG9vbEFkZHJlc3MgPSB7IGl6bzogc3RyaW5nOyBhZGRyZXNzOiBzdHJpbmdbXTsgaXNQcmltYXJ5OiBib29sZWFuIH07XHJcblxyXG5jb25zdCBwcm9jZXNzU2Nob29sUmVnaXN0ZXJYbWwgPSBhc3luYyAoXHJcbiAgb3B0aW9uczogT3BlbkRhdGFTeW5jT3B0aW9uc1xyXG4pOiBQcm9taXNlPHtcclxuICBzY2hvb2xzOiBTY2hvb2xbXTtcclxuICBmb3VuZGVyczogTWFwPHN0cmluZywgRm91bmRlcj47XHJcbiAgc2Nob29sc1dpdGhvdXRSdWlhbjogU2Nob29sQWRkcmVzc1tdO1xyXG59PiA9PiB7XHJcbiAgbGV0IGN1cnJlbnRTY2hvb2w6IFNjaG9vbDtcclxuICBsZXQgaXNDdXJyZW50U2Nob29sUHJpbWFyeTogYm9vbGVhbjtcclxuICBsZXQgY3VycmVudEl6bzogc3RyaW5nO1xyXG4gIGxldCBjdXJyZW50SWNvOiBzdHJpbmc7XHJcbiAgbGV0IGN1cnJlbnRUeXBlOiBzdHJpbmc7XHJcbiAgbGV0IGN1cnJlbnRDYXBhY2l0eTogbnVtYmVyO1xyXG4gIGxldCBjdXJyZW50TG9jYXRpb25zOiBTY2hvb2xMb2NhdGlvbltdID0gW107XHJcbiAgbGV0IHN0YXRlOiBYTUxTdGF0ZSA9IFhNTFN0YXRlLk5vbmU7XHJcbiAgbGV0IGN1cnJlbnRGb3VuZGVycyA9IFtdO1xyXG4gIGxldCBjdXJyZW50Rm91bmRlckljbzogc3RyaW5nO1xyXG4gIGxldCBjdXJyZW50Rm91bmRlck5hbWU6IHN0cmluZztcclxuICBsZXQgY3VycmVudEZvdW5kZXJUeXBlOiBzdHJpbmc7XHJcbiAgbGV0IGlzUnVpYW5Db2RlU2V0ID0gZmFsc2U7XHJcbiAgbGV0IGlzUnVpYW5Db2RlTWlzc2luZyA9IGZhbHNlO1xyXG4gIGxldCBjdXJyZW50QWRkcmVzcyA9IFtdO1xyXG4gIGNvbnN0IGZvdW5kZXJzID0gbmV3IE1hcDxzdHJpbmcsIEZvdW5kZXI+KCk7XHJcbiAgY29uc3Qgc2Nob29sczogU2Nob29sW10gPSBbXTtcclxuICBjb25zdCBzY2hvb2xzV2l0aG91dFJ1aWFuOiBTY2hvb2xBZGRyZXNzW10gPSBbXTtcclxuXHJcbiAgY29uc3Qgc3RyZWFtUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgIGNvbnN0IHNheFN0cmVhbSA9IHNheFxyXG4gICAgICAuY3JlYXRlU3RyZWFtKHRydWUpXHJcbiAgICAgIC5vbihcIm9wZW50YWdcIiwgKHRhZzogVGFnKSA9PiB7XHJcbiAgICAgICAgc3dpdGNoICh0YWcubmFtZSkge1xyXG4gICAgICAgICAgY2FzZSBcIlByYXZuaVN1Ympla3RcIjpcclxuICAgICAgICAgICAgY3VycmVudFNjaG9vbCA9IGNyZWF0ZU5ld1NjaG9vbCgpO1xyXG4gICAgICAgICAgICBpc0N1cnJlbnRTY2hvb2xQcmltYXJ5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlzUnVpYW5Db2RlTWlzc2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgXCJSZWRJem9cIjpcclxuICAgICAgICAgICAgc3RhdGUgPSBYTUxTdGF0ZS5SZWRJem87XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBcIlJlZFBsbnlOYXpldlwiOlxyXG4gICAgICAgICAgICBzdGF0ZSA9IFhNTFN0YXRlLlNjaG9vbE5hbWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBcIklaT1wiOlxyXG4gICAgICAgICAgICBzdGF0ZSA9IFhNTFN0YXRlLkl6bztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFwiSUNPXCI6XHJcbiAgICAgICAgICAgIHN0YXRlID0gWE1MU3RhdGUuSWNvO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgXCJTa29sYURydWhUeXBcIjpcclxuICAgICAgICAgICAgc3RhdGUgPSBYTUxTdGF0ZS5TY2hvb2xUeXBlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgXCJTa29sYUthcGFjaXRhXCI6XHJcbiAgICAgICAgICAgIHN0YXRlID0gWE1MU3RhdGUuQ2FwYWNpdHk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBcIk1pc3RvUlVBSU5Lb2RcIjpcclxuICAgICAgICAgICAgaXNSdWlhbkNvZGVTZXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgY3VycmVudEFkZHJlc3MgPSBbXTtcclxuICAgICAgICAgICAgc3RhdGUgPSBYTUxTdGF0ZS5SdWlhbkNvZGU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBcIlpyaXpOYXpldlwiOlxyXG4gICAgICAgICAgICBzdGF0ZSA9IFhNTFN0YXRlLkZvdW5kZXJOYW1lO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgXCJacml6UHJhdm5pRm9ybWFcIjpcclxuICAgICAgICAgICAgc3RhdGUgPSBYTUxTdGF0ZS5Gb3VuZGVyVHlwZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFwiTWlzdG9BZHJlc2ExXCI6XHJcbiAgICAgICAgICBjYXNlIFwiTWlzdG9BZHJlc2EyXCI6XHJcbiAgICAgICAgICBjYXNlIFwiTWlzdG9BZHJlc2EzXCI6XHJcbiAgICAgICAgICAgIHN0YXRlID0gWE1MU3RhdGUuQWRkcmVzcztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFwiWnJpekRhdHVtTmFyb3plbmlcIjpcclxuICAgICAgICAgIGNhc2UgXCJacml6SUNPXCI6XHJcbiAgICAgICAgICAgIHN0YXRlID0gWE1MU3RhdGUuRm91bmRlckljbztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAub24oXCJjbG9zZXRhZ1wiLCAodGFnTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgc3dpdGNoICh0YWdOYW1lKSB7XHJcbiAgICAgICAgICBjYXNlIFwiUHJhdm5pU3ViamVrdFwiOlxyXG4gICAgICAgICAgICBpZiAoaXNDdXJyZW50U2Nob29sUHJpbWFyeSkge1xyXG4gICAgICAgICAgICAgIHNjaG9vbHMucHVzaChjdXJyZW50U2Nob29sKTtcclxuICAgICAgICAgICAgICBjdXJyZW50Rm91bmRlcnMuZm9yRWFjaCgoZm91bmRlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZm91bmRlci5uYW1lICsgZm91bmRlci5pY287XHJcbiAgICAgICAgICAgICAgICBpZiAoZm91bmRlcnMuaGFzKGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgZm91bmRlcnMuZ2V0KGtleSkuc2Nob29scy5wdXNoKGN1cnJlbnRTY2hvb2wpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZm91bmRlcnMuc2V0KGtleSwge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGZvdW5kZXIubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBpY286IGZvdW5kZXIuaWNvLFxyXG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsVHlwZTogZm91bmRlci50eXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bmljaXBhbGl0eVR5cGU6IGdldE11bmljaXBhbGl0eVR5cGUoZm91bmRlci50eXBlKSxcclxuICAgICAgICAgICAgICAgICAgICBzY2hvb2xzOiBbY3VycmVudFNjaG9vbF0sXHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGN1cnJlbnRJY28gPSBcIlwiO1xyXG4gICAgICAgICAgICBjdXJyZW50Rm91bmRlcnMgPSBbXTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBcIlpyaXpvdmF0ZWxcIjpcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRGb3VuZGVySWNvID09PSBcIlwiIHx8IGN1cnJlbnRGb3VuZGVyTmFtZSA9PT0gXCJcIikge1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRGb3VuZGVycy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGljbzogY3VycmVudEljbyxcclxuICAgICAgICAgICAgICAgIG5hbWU6IGN1cnJlbnRTY2hvb2wubmFtZSxcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwiMjI0XCIsIC8vIHMuci5vIChub3QgYWxsIGFyZSB0aG9zZSwgYnV0IHdlIGRvbid0IG5lZWQgdG8gZGlmZmVyZW50aWF0ZSBoZXJlKVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRGb3VuZGVycy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGljbzogY3VycmVudEZvdW5kZXJJY28sXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBjdXJyZW50Rm91bmRlck5hbWUsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBnZXRDb3JyZWN0Rm91bmRlclR5cGUoY3VycmVudEZvdW5kZXJUeXBlKSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjdXJyZW50Rm91bmRlckljbyA9IFwiXCI7XHJcbiAgICAgICAgICAgIGN1cnJlbnRGb3VuZGVyTmFtZSA9IFwiXCI7XHJcbiAgICAgICAgICAgIGN1cnJlbnRGb3VuZGVyVHlwZSA9IFwiXCI7XHJcblxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgXCJTa29sYVphcml6ZW5pXCI6XHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50VHlwZSA9PT0gU0NIT09MX1RZUEVfUFJJTUFSWSkge1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRTY2hvb2wuaXpvID0gY3VycmVudEl6bztcclxuICAgICAgICAgICAgICBjdXJyZW50U2Nob29sLmxvY2F0aW9ucyA9IGN1cnJlbnRMb2NhdGlvbnM7XHJcbiAgICAgICAgICAgICAgY3VycmVudFNjaG9vbC5jYXBhY2l0eSA9IGN1cnJlbnRDYXBhY2l0eTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjdXJyZW50TG9jYXRpb25zID0gW107XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBcIlNrb2xhTWlzdG9WeWtvbnVDaW5ub3N0aVwiOlxyXG4gICAgICAgICAgICBpZiAoaXNSdWlhbkNvZGVNaXNzaW5nKSB7XHJcbiAgICAgICAgICAgICAgc2Nob29sc1dpdGhvdXRSdWlhbi5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGl6bzogY3VycmVudEl6byxcclxuICAgICAgICAgICAgICAgIGFkZHJlc3M6IGN1cnJlbnRBZGRyZXNzLFxyXG4gICAgICAgICAgICAgICAgaXNQcmltYXJ5OiBjdXJyZW50VHlwZSA9PT0gU0NIT09MX1RZUEVfUFJJTUFSWSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgXCJNaXN0b1JVQUlOS29kXCI6XHJcbiAgICAgICAgICAgIGlzUnVpYW5Db2RlTWlzc2luZyA9ICFpc1J1aWFuQ29kZVNldDtcclxuICAgICAgICAgIGNhc2UgXCJSZWRQbG55TmF6ZXZcIjpcclxuICAgICAgICAgIGNhc2UgXCJSZWRJem9cIjpcclxuICAgICAgICAgIGNhc2UgXCJJQ09cIjpcclxuICAgICAgICAgIGNhc2UgXCJJWk9cIjpcclxuICAgICAgICAgIGNhc2UgXCJTa29sYURydWhUeXBcIjpcclxuICAgICAgICAgIGNhc2UgXCJTa29sYUthcGFjaXRhXCI6XHJcbiAgICAgICAgICBjYXNlIFwiWnJpek5hemV2XCI6XHJcbiAgICAgICAgICBjYXNlIFwiWnJpeklDT1wiOlxyXG4gICAgICAgICAgY2FzZSBcIlpyaXpEYXR1bU5hcm96ZW5pXCI6XHJcbiAgICAgICAgICBjYXNlIFwiWnJpelByYXZuaUZvcm1hXCI6XHJcbiAgICAgICAgICBjYXNlIFwiTWlzdG9BZHJlc2ExXCI6XHJcbiAgICAgICAgICBjYXNlIFwiTWlzdG9BZHJlc2EyXCI6XHJcbiAgICAgICAgICBjYXNlIFwiTWlzdG9BZHJlc2EzXCI6XHJcbiAgICAgICAgICAgIHN0YXRlID0gWE1MU3RhdGUuTm9uZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAub24oXCJ0ZXh0XCIsICh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7XHJcbiAgICAgICAgICBjYXNlIFhNTFN0YXRlLlJlZEl6bzpcclxuICAgICAgICAgICAgY3VycmVudFNjaG9vbC5yZWRpem8gPSB0ZXh0O1xyXG4gICAgICAgICAgY2FzZSBYTUxTdGF0ZS5TY2hvb2xOYW1lOlxyXG4gICAgICAgICAgICBjdXJyZW50U2Nob29sLm5hbWUgPSB0ZXh0O1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgWE1MU3RhdGUuSXpvOlxyXG4gICAgICAgICAgICBjdXJyZW50SXpvID0gdGV4dDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFhNTFN0YXRlLkljbzpcclxuICAgICAgICAgICAgY3VycmVudEljbyA9IHRleHQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBYTUxTdGF0ZS5TY2hvb2xUeXBlOlxyXG4gICAgICAgICAgICBjdXJyZW50VHlwZSA9IHRleHQ7XHJcbiAgICAgICAgICAgIGlmICh0ZXh0ID09PSBTQ0hPT0xfVFlQRV9QUklNQVJZKSB7XHJcbiAgICAgICAgICAgICAgaXNDdXJyZW50U2Nob29sUHJpbWFyeSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFhNTFN0YXRlLlJ1aWFuQ29kZTpcclxuICAgICAgICAgICAgaXNSdWlhbkNvZGVTZXQgPSB0cnVlO1xyXG4gICAgICAgICAgICBjdXJyZW50TG9jYXRpb25zLnB1c2goe1xyXG4gICAgICAgICAgICAgIGFkZHJlc3NQb2ludElkOiBwYXJzZUludCh0ZXh0KSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBYTUxTdGF0ZS5BZGRyZXNzOlxyXG4gICAgICAgICAgICBjdXJyZW50QWRkcmVzcy5wdXNoKHRleHQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgWE1MU3RhdGUuRm91bmRlck5hbWU6XHJcbiAgICAgICAgICAgIGN1cnJlbnRGb3VuZGVyTmFtZSA9IHRleHQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBYTUxTdGF0ZS5Gb3VuZGVySWNvOlxyXG4gICAgICAgICAgICBjdXJyZW50Rm91bmRlckljbyA9IHRleHQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBYTUxTdGF0ZS5Gb3VuZGVyVHlwZTpcclxuICAgICAgICAgICAgY3VycmVudEZvdW5kZXJUeXBlID0gdGV4dDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFhNTFN0YXRlLkNhcGFjaXR5OlxyXG4gICAgICAgICAgICBjdXJyZW50Q2FwYWNpdHkgPSBwYXJzZUludCh0ZXh0KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAub24oXCJlcnJvclwiLCByZWplY3QpXHJcbiAgICAgIC5vbihcImVuZFwiLCByZXNvbHZlKTtcclxuXHJcbiAgICAvLyB3YW50ZWQgdG8gdXNlICdhd2FpdCBwaXBlbGluZShjcmVhdGVSZWFkU3RyZWFtKGdldFhtbEZpbGVQYXRoKG9wdGlvbnMpKSwgc2F4U3RyZWFtKSdcclxuICAgIC8vIGJ1dCB0aGUgcHJvZ3JhbSB3b3VsZCBxdWl0IHNwb250YW5lb3VzbHkgYWZ0ZXIgZmluaXNoaW5nIHN0cmVhbSAtIHVzaW5nIFByb21pc2UgaW5zdGVhZC5cclxuICAgIGNyZWF0ZVJlYWRTdHJlYW0oZ2V0WG1sRmlsZVBhdGgob3B0aW9ucykpLnBpcGUoc2F4U3RyZWFtKTtcclxuICB9KTtcclxuXHJcbiAgYXdhaXQgc3RyZWFtUHJvbWlzZTtcclxuXHJcbiAgcmV0dXJuIHsgc2Nob29scywgZm91bmRlcnMsIHNjaG9vbHNXaXRob3V0UnVpYW4gfTtcclxufTtcclxuXHJcbmNvbnN0IGltcG9ydERhdGFUb0RiID0gYXN5bmMgKFxyXG4gIG9wdGlvbnM6IE9wZW5EYXRhU3luY09wdGlvbnMsXHJcbiAgc2F2ZUZvdW5kZXJzVG9Dc3Y6IGJvb2xlYW4gPSBmYWxzZSxcclxuICBzYXZlU2Nob29sc1dpdGhvdXRSdWlhblRvQ3N2OiBib29sZWFuID0gZmFsc2VcclxuKSA9PiB7XHJcbiAgY29uc3QgeyBzY2hvb2xzLCBmb3VuZGVycywgc2Nob29sc1dpdGhvdXRSdWlhbiB9ID1cclxuICAgIGF3YWl0IHByb2Nlc3NTY2hvb2xSZWdpc3RlclhtbChvcHRpb25zKTtcclxuXHJcbiAgaWYgKHNhdmVGb3VuZGVyc1RvQ3N2KSB7XHJcbiAgICBjb25zdCBjc3ZGaWxlID0gXCJmb3VuZGVycy5jc3ZcIjtcclxuXHJcbiAgICBpZiAoZXhpc3RzU3luYyhjc3ZGaWxlKSkge1xyXG4gICAgICBybVN5bmMoY3N2RmlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGNzdiA9IGNyZWF0ZVdyaXRlU3RyZWFtKGNzdkZpbGUsIHtcclxuICAgICAgZmxhZ3M6IFwiYVwiLFxyXG4gICAgfSk7XHJcbiAgICBjc3Yud3JpdGUoXCJJxIxPO1rFmWl6b3ZhdGVsO1Byw6F2bsOtIGZvcm1hO1BvxI1ldCDFoWtvbDvFoGtvbHlcXG5cIik7XHJcbiAgICBmb3VuZGVycy5mb3JFYWNoKChmb3VuZGVyKSA9PiB7XHJcbiAgICAgIGNzdi53cml0ZShcclxuICAgICAgICBgIyR7Zm91bmRlci5pY299OyR7Zm91bmRlci5uYW1lfTske2ZvdW5kZXIub3JpZ2luYWxUeXBlfTske1xyXG4gICAgICAgICAgZm91bmRlci5zY2hvb2xzLmxlbmd0aFxyXG4gICAgICAgIH07JHtmb3VuZGVyLnNjaG9vbHMubWFwKChzY2hvb2wpID0+IHNjaG9vbC5uYW1lKS5qb2luKFwiLS0tXCIpfVxcbmBcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgY3N2LmVuZCgpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHNhdmVTY2hvb2xzV2l0aG91dFJ1aWFuVG9Dc3YpIHtcclxuICAgIGNvbnN0IGNzdkZpbGUgPSBcInNjaG9vbHNXaXRob3V0UnVpYW4uY3N2XCI7XHJcblxyXG4gICAgaWYgKGV4aXN0c1N5bmMoY3N2RmlsZSkpIHtcclxuICAgICAgcm1TeW5jKGNzdkZpbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBjc3YgPSBjcmVhdGVXcml0ZVN0cmVhbShjc3ZGaWxlLCB7XHJcbiAgICAgIGZsYWdzOiBcImFcIixcclxuICAgIH0pO1xyXG4gICAgY3N2LndyaXRlKFwiSVpPO0plIHrDoWtsYWRuw607YWRyZXNhMTthZHJlc2EyO2FkcmVzYTNcXG5cIik7XHJcbiAgICBzY2hvb2xzV2l0aG91dFJ1aWFuLmZvckVhY2goKHNjaG9vbEFkZHJlc3MpID0+IHtcclxuICAgICAgY3N2LndyaXRlKFxyXG4gICAgICAgIGAjJHtzY2hvb2xBZGRyZXNzLml6b307JHtcclxuICAgICAgICAgIHNjaG9vbEFkZHJlc3MuaXNQcmltYXJ5ID8gXCJUUlVFXCIgOiBcIkZBTFNFXCJcclxuICAgICAgICB9OyR7c2Nob29sQWRkcmVzcy5hZGRyZXNzLmpvaW4oXCI7XCIpfVxcbmBcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgY3N2LmVuZCgpO1xyXG4gIH1cclxuXHJcbiAgYXdhaXQgaW5zZXJ0U2Nob29scyhzY2hvb2xzKTtcclxuXHJcbiAgYXdhaXQgaW5zZXJ0Rm91bmRlcnMoQXJyYXkuZnJvbShmb3VuZGVycy52YWx1ZXMoKSkpO1xyXG59O1xyXG5cclxuY29uc3QgZ2V0WG1sRmlsZVBhdGggPSAob3B0aW9uczogT3BlbkRhdGFTeW5jT3B0aW9uc1BhcnRpYWwpOiBzdHJpbmcgPT4ge1xyXG4gIHJldHVybiBqb2luKG9wdGlvbnMudG1wRGlyLCBvcHRpb25zLnNjaG9vbHNYbWxGaWxlTmFtZSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZG93bmxvYWRBbmRJbXBvcnRTY2hvb2xzID0gYXN5bmMgKFxyXG4gIG9wdGlvbnM6IE9wZW5EYXRhU3luY09wdGlvbnNQYXJ0aWFsID0ge30sXHJcbiAgc2F2ZUZvdW5kZXJzVG9Dc3Y6IGJvb2xlYW4gPSBmYWxzZSxcclxuICBzYXZlU2Nob29sc1dpdGhvdXRSdWlhblRvQ3N2OiBib29sZWFuID0gZmFsc2VcclxuKSA9PiB7XHJcbiAgYXdhaXQgcnVuU3luY1BhcnQoU3luY1BhcnQuU2Nob29scywgW1N5bmNQYXJ0LkFkZHJlc3NQb2ludHNdLCBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBydW5PcHRpb25zID0gcHJlcGFyZU9wdGlvbnMob3B0aW9ucyk7XHJcblxyXG4gICAgYXdhaXQgZG93bmxvYWRYbWwocnVuT3B0aW9ucyk7XHJcbiAgICBhd2FpdCBpbXBvcnREYXRhVG9EYihcclxuICAgICAgcnVuT3B0aW9ucyxcclxuICAgICAgc2F2ZUZvdW5kZXJzVG9Dc3YsXHJcbiAgICAgIHNhdmVTY2hvb2xzV2l0aG91dFJ1aWFuVG9Dc3ZcclxuICAgICk7XHJcbiAgICBkZWxldGVTY2hvb2xzWG1sRmlsZShydW5PcHRpb25zKTtcclxuICB9KTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBkZWxldGVTY2hvb2xzWG1sRmlsZSA9IChcclxuICBvcHRpb25zOiBPcGVuRGF0YVN5bmNPcHRpb25zUGFydGlhbCA9IHt9XHJcbikgPT4ge1xyXG4gIGNvbnN0IHJ1bk9wdGlvbnMgPSBwcmVwYXJlT3B0aW9ucyhvcHRpb25zKTtcclxuXHJcbiAgaWYgKGV4aXN0c1N5bmMoZ2V0WG1sRmlsZVBhdGgocnVuT3B0aW9ucykpKSB7XHJcbiAgICBybVN5bmMoZ2V0WG1sRmlsZVBhdGgocnVuT3B0aW9ucykpO1xyXG4gIH1cclxufTtcclxuIl19
|
|
320
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nob29scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVuLWRhdGEtc3luYy9zY2hvb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzdFLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sR0FBWSxNQUFNLEtBQUssQ0FBQztBQUUvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUVMLGdCQUFnQixFQUdoQixVQUFVLEVBQ1YsUUFBUSxHQUNULE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFHTCxjQUFjLEdBQ2YsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXZDLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxPQUE0QixFQUFpQixFQUFFO0lBQ3hFLElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO1FBQ3ZDLE9BQU87S0FDUjtJQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0RBQWtELENBQUMsQ0FBQztJQUNoRSxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtRQUMzQixNQUFNLElBQUksS0FBSyxDQUNiLG9EQUFvRCxRQUFRLENBQUMsTUFBTSxFQUFFLENBQ3RFLENBQUM7S0FD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UUFDOUIsTUFBTSxjQUFjLENBQ2xCLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsNEJBQTRCLENBQzdCLENBQUM7UUFDRixvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQ2xDLFVBQXNDLEVBQUUsRUFDeEMsRUFBRTtJQUNGLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUzQyxJQUFJLFVBQVUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRTtRQUMxQyxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDcEM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWFkU3RyZWFtLCBjcmVhdGVXcml0ZVN0cmVhbSwgZXhpc3RzU3luYywgcm1TeW5jIH0gZnJvbSBcImZzXCI7XHJcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiO1xyXG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcclxuaW1wb3J0IHNheCwgeyBUYWcgfSBmcm9tIFwic2F4XCI7XHJcblxyXG5pbXBvcnQgeyBwaXBlbGluZSB9IGZyb20gXCJzdHJlYW0vcHJvbWlzZXNcIjtcclxuaW1wb3J0IHsgaW5zZXJ0Rm91bmRlcnMgfSBmcm9tIFwiLi4vZGIvZm91bmRlcnNcIjtcclxuaW1wb3J0IHsgaW5zZXJ0U2Nob29scyB9IGZyb20gXCIuLi9kYi9zY2hvb2xzXCI7XHJcbmltcG9ydCB7XHJcbiAgRm91bmRlcixcclxuICBNdW5pY2lwYWxpdHlUeXBlLFxyXG4gIFNjaG9vbCxcclxuICBTY2hvb2xMb2NhdGlvbixcclxuICBTY2hvb2xUeXBlLFxyXG4gIFN5bmNQYXJ0LFxyXG59IGZyb20gXCIuLi9kYi90eXBlc1wiO1xyXG5pbXBvcnQge1xyXG4gIE9wZW5EYXRhU3luY09wdGlvbnMsXHJcbiAgT3BlbkRhdGFTeW5jT3B0aW9uc1BhcnRpYWwsXHJcbiAgcHJlcGFyZU9wdGlvbnMsXHJcbn0gZnJvbSBcIi4uL3V0aWxzL2hlbHBlcnNcIjtcclxuaW1wb3J0IHsgcnVuU3luY1BhcnQgfSBmcm9tIFwiLi9jb21tb25cIjtcclxuXHJcbmNvbnN0IGRvd25sb2FkWG1sID0gYXN5bmMgKG9wdGlvbnM6IE9wZW5EYXRhU3luY09wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcclxuICBpZiAoZXhpc3RzU3luYyhnZXRYbWxGaWxlUGF0aChvcHRpb25zKSkpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGNvbnNvbGUubG9nKFwiRG93bmxvYWRpbmcgYSBsYXJnZSBYTUwgZmlsZSB3aXRoIHNjaG9vbCBkYXRhLi4uXCIpO1xyXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gob3B0aW9ucy5zY2hvb2xzWG1sVXJsKTtcclxuICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSAyMDApIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgYFRoZSBYTUwgZmlsZSBjb3VsZCBub3QgYmUgZG93bmxvYWRlZC4gSFRUUCBDb2RlOiAke3Jlc3BvbnNlLnN0YXR1c31gXHJcbiAgICApO1xyXG4gIH1cclxuICBhd2FpdCBwaXBlbGluZShyZXNwb25zZS5ib2R5LCBjcmVhdGVXcml0ZVN0cmVhbShnZXRYbWxGaWxlUGF0aChvcHRpb25zKSkpO1xyXG4gIGNvbnNvbGUubG9nKFwiRmluaXNoZWQgZG93bmxvYWRpbmcuXCIpO1xyXG59O1xyXG5cclxuZW51bSBYTUxTdGF0ZSB7XHJcbiAgTm9uZSxcclxuICBSZWRJem8sXHJcbiAgU2Nob29sTmFtZSxcclxuICBJem8sXHJcbiAgSWNvLFxyXG4gIFNjaG9vbFR5cGUsXHJcbiAgQ2FwYWNpdHksXHJcbiAgUnVpYW5Db2RlLFxyXG4gIEFkZHJlc3MsXHJcbiAgRm91bmRlck5hbWUsXHJcbiAgRm91bmRlclR5cGUsXHJcbiAgRm91bmRlckljbyxcclxufVxyXG5cclxuY29uc3QgU0NIT09MX1RZUEVfS0lOREVSR0FSVEVOID0gXCJBMDBcIjtcclxuY29uc3QgU0NIT09MX1RZUEVfRUxFTUVOVEFSWSA9IFwiQjAwXCI7XHJcblxyXG5jb25zdCBjcmVhdGVOZXdTY2hvb2wgPSAoKTogU2Nob29sID0+IHtcclxuICByZXR1cm4ge1xyXG4gICAgbmFtZTogXCJcIixcclxuICAgIHJlZGl6bzogXCJcIixcclxuICAgIGl6bzogXCJcIixcclxuICAgIGNhcGFjaXR5OiAwLFxyXG4gICAgbG9jYXRpb25zOiBbXSxcclxuICB9O1xyXG59O1xyXG5cclxuY29uc3QgZ2V0Q29ycmVjdEZvdW5kZXJUeXBlID0gKGZvdW5kZXJUeXBlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gIHJldHVybiBmb3VuZGVyVHlwZSA9PT0gXCJcIiA/IFwiMTAxXCIgOiBmb3VuZGVyVHlwZTtcclxufTtcclxuXHJcbmNvbnN0IGdldE11bmljaXBhbGl0eVR5cGUgPSAoZm91bmRlclR5cGU6IHN0cmluZyk6IE11bmljaXBhbGl0eVR5cGUgPT4ge1xyXG4gIHJldHVybiBmb3VuZGVyVHlwZSA9PT0gXCIyNjFcIlxyXG4gICAgPyBNdW5pY2lwYWxpdHlUeXBlLkNpdHlcclxuICAgIDogZm91bmRlclR5cGUgPT09IFwiMjYzXCJcclxuICAgID8gTXVuaWNpcGFsaXR5VHlwZS5EaXN0cmljdFxyXG4gICAgOiBNdW5pY2lwYWxpdHlUeXBlLk90aGVyO1xyXG59O1xyXG5cclxudHlwZSBTY2hvb2xBZGRyZXNzID0ge1xyXG4gIGl6bzogc3RyaW5nO1xyXG4gIGFkZHJlc3M6IHN0cmluZ1tdO1xyXG4gIHR5cGU6IFNjaG9vbFR5cGU7XHJcbn07XHJcblxyXG5jb25zdCBwcm9jZXNzU2Nob29sUmVnaXN0ZXJYbWwgPSBhc3luYyAoXHJcbiAgb3B0aW9uczogT3BlbkRhdGFTeW5jT3B0aW9uc1xyXG4pOiBQcm9taXNlPHtcclxuICBzY2hvb2xzOiBTY2hvb2xbXTtcclxuICBmb3VuZGVyczogTWFwPHN0cmluZywgRm91bmRlcj47XHJcbiAgc2Nob29sc1dpdGhvdXRSdWlhbjogU2Nob29sQWRkcmVzc1tdO1xyXG59PiA9PiB7XHJcbiAgbGV0IGN1cnJlbnRTY2hvb2xzOiBTY2hvb2xbXTtcclxuICBsZXQgY3VycmVudFJlZGl6bzogc3RyaW5nO1xyXG4gIGxldCBjdXJyZW50TmFtZTogc3RyaW5nO1xyXG4gIGxldCBjdXJyZW50SXpvOiBzdHJpbmc7XHJcbiAgbGV0IGN1cnJlbnRJY286IHN0cmluZztcclxuICBsZXQgY3VycmVudFR5cGU6IFNjaG9vbFR5cGUgfCBudWxsID0gbnVsbDtcclxuICBsZXQgY3VycmVudENhcGFjaXR5OiBudW1iZXI7XHJcbiAgbGV0IGN1cnJlbnRMb2NhdGlvbnM6IFNjaG9vbExvY2F0aW9uW10gPSBbXTtcclxuICBsZXQgc3RhdGU6IFhNTFN0YXRlID0gWE1MU3RhdGUuTm9uZTtcclxuICBsZXQgY3VycmVudEZvdW5kZXJzID0gW107XHJcbiAgbGV0IGN1cnJlbnRGb3VuZGVySWNvOiBzdHJpbmc7XHJcbiAgbGV0IGN1cnJlbnRGb3VuZGVyTmFtZTogc3RyaW5nO1xyXG4gIGxldCBjdXJyZW50Rm91bmRlclR5cGU6IHN0cmluZztcclxuICBsZXQgaXNSdWlhbkNvZGVTZXQgPSBmYWxzZTtcclxuICBsZXQgaXNSdWlhbkNvZGVNaXNzaW5nID0gZmFsc2U7XHJcbiAgbGV0IGN1cnJlbnRBZGRyZXNzID0gW107XHJcbiAgY29uc3QgZm91bmRlcnMgPSBuZXcgTWFwPHN0cmluZywgRm91bmRlcj4oKTtcclxuICBjb25zdCBzY2hvb2xzOiBTY2hvb2xbXSA9IFtdO1xyXG4gIGNvbnN0IHNjaG9vbHNXaXRob3V0UnVpYW46IFNjaG9vbEFkZHJlc3NbXSA9IFtdO1xyXG5cclxuICBjb25zdCBzdHJlYW1Qcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgY29uc3Qgc2F4U3RyZWFtID0gc2F4XHJcbiAgICAgIC5jcmVhdGVTdHJlYW0odHJ1ZSlcclxuICAgICAgLm9uKFwib3BlbnRhZ1wiLCAodGFnOiBUYWcpID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHRhZy5uYW1lKSB7XHJcbiAgICAgICAgICBjYXNlIFwiUHJhdm5pU3ViamVrdFwiOlxyXG4gICAgICAgICAgICBjdXJyZW50U2Nob29scyA9IFtdO1xyXG4gICAgICAgICAgICBjdXJyZW50UmVkaXpvID0gXCJcIjtcclxuICAgICAgICAgICAgY3VycmVudE5hbWUgPSBcIlwiO1xyXG4gICAgICAgICAgICBjdXJyZW50SXpvID0gXCJcIjtcclxuICAgICAgICAgICAgY3VycmVudENhcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgaXNSdWlhbkNvZGVNaXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBcIlJlZEl6b1wiOlxyXG4gICAgICAgICAgICBzdGF0ZSA9IFhNTFN0YXRlLlJlZEl6bztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFwiUmVkUGxueU5hemV2XCI6XHJcbiAgICAgICAgICAgIHN0YXRlID0gWE1MU3RhdGUuU2Nob29sTmFtZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFwiSVpPXCI6XHJcbiAgICAgICAgICAgIHN0YXRlID0gWE1MU3RhdGUuSXpvO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgXCJJQ09cIjpcclxuICAgICAgICAgICAgc3RhdGUgPSBYTUxTdGF0ZS5JY287XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBcIlNrb2xhRHJ1aFR5cFwiOlxyXG4gICAgICAgICAgICBzdGF0ZSA9IFhNTFN0YXRlLlNjaG9vbFR5cGU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBcIlNrb2xhS2FwYWNpdGFcIjpcclxuICAgICAgICAgICAgc3RhdGUgPSBYTUxTdGF0ZS5DYXBhY2l0eTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFwiTWlzdG9SVUFJTktvZFwiOlxyXG4gICAgICAgICAgICBpc1J1aWFuQ29kZVNldCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjdXJyZW50QWRkcmVzcyA9IFtdO1xyXG4gICAgICAgICAgICBzdGF0ZSA9IFhNTFN0YXRlLlJ1aWFuQ29kZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFwiWnJpek5hemV2XCI6XHJcbiAgICAgICAgICAgIHN0YXRlID0gWE1MU3RhdGUuRm91bmRlck5hbWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBcIlpyaXpQcmF2bmlGb3JtYVwiOlxyXG4gICAgICAgICAgICBzdGF0ZSA9IFhNTFN0YXRlLkZvdW5kZXJUeXBlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgXCJNaXN0b0FkcmVzYTFcIjpcclxuICAgICAgICAgIGNhc2UgXCJNaXN0b0FkcmVzYTJcIjpcclxuICAgICAgICAgIGNhc2UgXCJNaXN0b0FkcmVzYTNcIjpcclxuICAgICAgICAgICAgc3RhdGUgPSBYTUxTdGF0ZS5BZGRyZXNzO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgXCJacml6RGF0dW1OYXJvemVuaVwiOlxyXG4gICAgICAgICAgY2FzZSBcIlpyaXpJQ09cIjpcclxuICAgICAgICAgICAgc3RhdGUgPSBYTUxTdGF0ZS5Gb3VuZGVySWNvO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIC5vbihcImNsb3NldGFnXCIsICh0YWdOYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHRhZ05hbWUpIHtcclxuICAgICAgICAgIGNhc2UgXCJQcmF2bmlTdWJqZWt0XCI6XHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50U2Nob29scy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgc2Nob29scy5wdXNoKC4uLmN1cnJlbnRTY2hvb2xzKTtcclxuICAgICAgICAgICAgICBjdXJyZW50Rm91bmRlcnMuZm9yRWFjaCgoZm91bmRlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZm91bmRlci5uYW1lICsgZm91bmRlci5pY287XHJcbiAgICAgICAgICAgICAgICBpZiAoZm91bmRlcnMuaGFzKGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgZm91bmRlcnMuZ2V0KGtleSkuc2Nob29scy5wdXNoKC4uLmN1cnJlbnRTY2hvb2xzKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIGZvdW5kZXJzLnNldChrZXksIHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmb3VuZGVyLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvOiBmb3VuZGVyLmljbyxcclxuICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFR5cGU6IGZvdW5kZXIudHlwZSxcclxuICAgICAgICAgICAgICAgICAgICBtdW5pY2lwYWxpdHlUeXBlOiBnZXRNdW5pY2lwYWxpdHlUeXBlKGZvdW5kZXIudHlwZSksXHJcbiAgICAgICAgICAgICAgICAgICAgc2Nob29sczogWy4uLmN1cnJlbnRTY2hvb2xzXSxcclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY3VycmVudEljbyA9IFwiXCI7XHJcbiAgICAgICAgICAgIGN1cnJlbnRGb3VuZGVycyA9IFtdO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIFwiWnJpem92YXRlbFwiOlxyXG4gICAgICAgICAgICBpZiAoY3VycmVudEZvdW5kZXJJY28gPT09IFwiXCIgfHwgY3VycmVudEZvdW5kZXJOYW1lID09PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgY3VycmVudEZvdW5kZXJzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaWNvOiBjdXJyZW50SWNvLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogY3VycmVudE5hbWUsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcIjIyNFwiLCAvLyBzLnIubyAobm90IGFsbCBhcmUgdGhvc2UsIGJ1dCB3ZSBkb24ndCBuZWVkIHRvIGRpZmZlcmVudGlhdGUgaGVyZSlcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjdXJyZW50Rm91bmRlcnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBpY286IGN1cnJlbnRGb3VuZGVySWNvLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogY3VycmVudEZvdW5kZXJOYW1lLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogZ2V0Q29ycmVjdEZvdW5kZXJUeXBlKGN1cnJlbnRGb3VuZGVyVHlwZSksXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY3VycmVudEZvdW5kZXJJY28gPSBcIlwiO1xyXG4gICAgICAgICAgICBjdXJyZW50Rm91bmRlck5hbWUgPSBcIlwiO1xyXG4gICAgICAgICAgICBjdXJyZW50Rm91bmRlclR5cGUgPSBcIlwiO1xyXG5cclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFwiU2tvbGFaYXJpemVuaVwiOlxyXG4gICAgICAgICAgICBpZiAoY3VycmVudFR5cGUgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICBjdXJyZW50U2Nob29scy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGl6bzogY3VycmVudEl6byxcclxuICAgICAgICAgICAgICAgIG5hbWU6IGN1cnJlbnROYW1lLFxyXG4gICAgICAgICAgICAgICAgcmVkaXpvOiBjdXJyZW50UmVkaXpvLFxyXG4gICAgICAgICAgICAgICAgY2FwYWNpdHk6IGN1cnJlbnRDYXBhY2l0eSxcclxuICAgICAgICAgICAgICAgIHR5cGU6IGN1cnJlbnRUeXBlLFxyXG4gICAgICAgICAgICAgICAgbG9jYXRpb25zOiBjdXJyZW50TG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGN1cnJlbnRMb2NhdGlvbnMgPSBbXTtcclxuICAgICAgICAgICAgY3VycmVudFR5cGUgPSBudWxsO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgXCJTa29sYU1pc3RvVnlrb251Q2lubm9zdGlcIjpcclxuICAgICAgICAgICAgaWYgKGlzUnVpYW5Db2RlTWlzc2luZykge1xyXG4gICAgICAgICAgICAgIHNjaG9vbHNXaXRob3V0UnVpYW4ucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBpem86IGN1cnJlbnRJem8sXHJcbiAgICAgICAgICAgICAgICBhZGRyZXNzOiBjdXJyZW50QWRkcmVzcyxcclxuICAgICAgICAgICAgICAgIHR5cGU6IGN1cnJlbnRUeXBlLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBcIk1pc3RvUlVBSU5Lb2RcIjpcclxuICAgICAgICAgICAgaXNSdWlhbkNvZGVNaXNzaW5nID0gIWlzUnVpYW5Db2RlU2V0O1xyXG4gICAgICAgICAgY2FzZSBcIlJlZFBsbnlOYXpldlwiOlxyXG4gICAgICAgICAgY2FzZSBcIlJlZEl6b1wiOlxyXG4gICAgICAgICAgY2FzZSBcIklDT1wiOlxyXG4gICAgICAgICAgY2FzZSBcIklaT1wiOlxyXG4gICAgICAgICAgY2FzZSBcIlNrb2xhRHJ1aFR5cFwiOlxyXG4gICAgICAgICAgY2FzZSBcIlNrb2xhS2FwYWNpdGFcIjpcclxuICAgICAgICAgIGNhc2UgXCJacml6TmF6ZXZcIjpcclxuICAgICAgICAgIGNhc2UgXCJacml6SUNPXCI6XHJcbiAgICAgICAgICBjYXNlIFwiWnJpekRhdHVtTmFyb3plbmlcIjpcclxuICAgICAgICAgIGNhc2UgXCJacml6UHJhdm5pRm9ybWFcIjpcclxuICAgICAgICAgIGNhc2UgXCJNaXN0b0FkcmVzYTFcIjpcclxuICAgICAgICAgIGNhc2UgXCJNaXN0b0FkcmVzYTJcIjpcclxuICAgICAgICAgIGNhc2UgXCJNaXN0b0FkcmVzYTNcIjpcclxuICAgICAgICAgICAgc3RhdGUgPSBYTUxTdGF0ZS5Ob25lO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIC5vbihcInRleHRcIiwgKHRleHQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAoc3RhdGUpIHtcclxuICAgICAgICAgIGNhc2UgWE1MU3RhdGUuUmVkSXpvOlxyXG4gICAgICAgICAgICBjdXJyZW50UmVkaXpvID0gdGV4dDtcclxuICAgICAgICAgIGNhc2UgWE1MU3RhdGUuU2Nob29sTmFtZTpcclxuICAgICAgICAgICAgY3VycmVudE5hbWUgPSB0ZXh0O1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgWE1MU3RhdGUuSXpvOlxyXG4gICAgICAgICAgICBjdXJyZW50SXpvID0gdGV4dDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFhNTFN0YXRlLkljbzpcclxuICAgICAgICAgICAgY3VycmVudEljbyA9IHRleHQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBYTUxTdGF0ZS5TY2hvb2xUeXBlOlxyXG4gICAgICAgICAgICBpZiAodGV4dCA9PT0gU0NIT09MX1RZUEVfS0lOREVSR0FSVEVOKSB7XHJcbiAgICAgICAgICAgICAgY3VycmVudFR5cGUgPSBTY2hvb2xUeXBlLktpbmRlcmdhcnRlbjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0ZXh0ID09PSBTQ0hPT0xfVFlQRV9FTEVNRU5UQVJZKSB7XHJcbiAgICAgICAgICAgICAgY3VycmVudFR5cGUgPSBTY2hvb2xUeXBlLkVsZW1lbnRhcnk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFhNTFN0YXRlLlJ1aWFuQ29kZTpcclxuICAgICAgICAgICAgaXNSdWlhbkNvZGVTZXQgPSB0cnVlO1xyXG4gICAgICAgICAgICBjdXJyZW50TG9jYXRpb25zLnB1c2goe1xyXG4gICAgICAgICAgICAgIGFkZHJlc3NQb2ludElkOiBwYXJzZUludCh0ZXh0KSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBYTUxTdGF0ZS5BZGRyZXNzOlxyXG4gICAgICAgICAgICBjdXJyZW50QWRkcmVzcy5wdXNoKHRleHQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgWE1MU3RhdGUuRm91bmRlck5hbWU6XHJcbiAgICAgICAgICAgIGN1cnJlbnRGb3VuZGVyTmFtZSA9IHRleHQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBYTUxTdGF0ZS5Gb3VuZGVySWNvOlxyXG4gICAgICAgICAgICBjdXJyZW50Rm91bmRlckljbyA9IHRleHQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBYTUxTdGF0ZS5Gb3VuZGVyVHlwZTpcclxuICAgICAgICAgICAgY3VycmVudEZvdW5kZXJUeXBlID0gdGV4dDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIFhNTFN0YXRlLkNhcGFjaXR5OlxyXG4gICAgICAgICAgICBjdXJyZW50Q2FwYWNpdHkgPSBwYXJzZUludCh0ZXh0KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAub24oXCJlcnJvclwiLCByZWplY3QpXHJcbiAgICAgIC5vbihcImVuZFwiLCByZXNvbHZlKTtcclxuXHJcbiAgICAvLyB3YW50ZWQgdG8gdXNlICdhd2FpdCBwaXBlbGluZShjcmVhdGVSZWFkU3RyZWFtKGdldFhtbEZpbGVQYXRoKG9wdGlvbnMpKSwgc2F4U3RyZWFtKSdcclxuICAgIC8vIGJ1dCB0aGUgcHJvZ3JhbSB3b3VsZCBxdWl0IHNwb250YW5lb3VzbHkgYWZ0ZXIgZmluaXNoaW5nIHN0cmVhbSAtIHVzaW5nIFByb21pc2UgaW5zdGVhZC5cclxuICAgIGNyZWF0ZVJlYWRTdHJlYW0oZ2V0WG1sRmlsZVBhdGgob3B0aW9ucykpLnBpcGUoc2F4U3RyZWFtKTtcclxuICB9KTtcclxuXHJcbiAgYXdhaXQgc3RyZWFtUHJvbWlzZTtcclxuXHJcbiAgcmV0dXJuIHsgc2Nob29scywgZm91bmRlcnMsIHNjaG9vbHNXaXRob3V0UnVpYW4gfTtcclxufTtcclxuXHJcbmNvbnN0IGltcG9ydERhdGFUb0RiID0gYXN5bmMgKFxyXG4gIG9wdGlvbnM6IE9wZW5EYXRhU3luY09wdGlvbnMsXHJcbiAgc2F2ZUZvdW5kZXJzVG9Dc3Y6IGJvb2xlYW4gPSBmYWxzZSxcclxuICBzYXZlU2Nob29sc1dpdGhvdXRSdWlhblRvQ3N2OiBib29sZWFuID0gZmFsc2VcclxuKSA9PiB7XHJcbiAgY29uc3QgeyBzY2hvb2xzLCBmb3VuZGVycywgc2Nob29sc1dpdGhvdXRSdWlhbiB9ID1cclxuICAgIGF3YWl0IHByb2Nlc3NTY2hvb2xSZWdpc3RlclhtbChvcHRpb25zKTtcclxuXHJcbiAgaWYgKHNhdmVGb3VuZGVyc1RvQ3N2KSB7XHJcbiAgICBjb25zdCBjc3ZGaWxlID0gXCJmb3VuZGVycy5jc3ZcIjtcclxuXHJcbiAgICBpZiAoZXhpc3RzU3luYyhjc3ZGaWxlKSkge1xyXG4gICAgICBybVN5bmMoY3N2RmlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGNzdiA9IGNyZWF0ZVdyaXRlU3RyZWFtKGNzdkZpbGUsIHtcclxuICAgICAgZmxhZ3M6IFwiYVwiLFxyXG4gICAgfSk7XHJcbiAgICBjc3Yud3JpdGUoXCJJxIxPO1rFmWl6b3ZhdGVsO1Byw6F2bsOtIGZvcm1hO1BvxI1ldCDFoWtvbDvFoGtvbHlcXG5cIik7XHJcbiAgICBmb3VuZGVycy5mb3JFYWNoKChmb3VuZGVyKSA9PiB7XHJcbiAgICAgIGNzdi53cml0ZShcclxuICAgICAgICBgIyR7Zm91bmRlci5pY299OyR7Zm91bmRlci5uYW1lfTske2ZvdW5kZXIub3JpZ2luYWxUeXBlfTske1xyXG4gICAgICAgICAgZm91bmRlci5zY2hvb2xzLmxlbmd0aFxyXG4gICAgICAgIH07JHtmb3VuZGVyLnNjaG9vbHMubWFwKChzY2hvb2wpID0+IHNjaG9vbC5uYW1lKS5qb2luKFwiLS0tXCIpfVxcbmBcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgY3N2LmVuZCgpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHNhdmVTY2hvb2xzV2l0aG91dFJ1aWFuVG9Dc3YpIHtcclxuICAgIGNvbnN0IGNzdkZpbGUgPSBcInNjaG9vbHNXaXRob3V0UnVpYW4uY3N2XCI7XHJcblxyXG4gICAgaWYgKGV4aXN0c1N5bmMoY3N2RmlsZSkpIHtcclxuICAgICAgcm1TeW5jKGNzdkZpbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBjc3YgPSBjcmVhdGVXcml0ZVN0cmVhbShjc3ZGaWxlLCB7XHJcbiAgICAgIGZsYWdzOiBcImFcIixcclxuICAgIH0pO1xyXG4gICAgY3N2LndyaXRlKFwiSVpPO0plIG1hdGXFmXNrw6E7SmUgesOha2xhZG7DrTthZHJlc2ExO2FkcmVzYTI7YWRyZXNhM1xcblwiKTtcclxuICAgIHNjaG9vbHNXaXRob3V0UnVpYW4uZm9yRWFjaCgoc2Nob29sQWRkcmVzcykgPT4ge1xyXG4gICAgICBjc3Yud3JpdGUoXHJcbiAgICAgICAgYCMke3NjaG9vbEFkZHJlc3MuaXpvfTske1xyXG4gICAgICAgICAgc2Nob29sQWRkcmVzcy50eXBlID09PSBTY2hvb2xUeXBlLktpbmRlcmdhcnRlbiA/IFwiVFJVRVwiIDogXCJGQUxTRVwiXHJcbiAgICAgICAgfTske1xyXG4gICAgICAgICAgc2Nob29sQWRkcmVzcy50eXBlID09PSBTY2hvb2xUeXBlLkVsZW1lbnRhcnkgPyBcIlRSVUVcIiA6IFwiRkFMU0VcIlxyXG4gICAgICAgIH07JHtzY2hvb2xBZGRyZXNzLmFkZHJlc3Muam9pbihcIjtcIil9XFxuYFxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgICBjc3YuZW5kKCk7XHJcbiAgfVxyXG5cclxuICBhd2FpdCBpbnNlcnRTY2hvb2xzKHNjaG9vbHMpO1xyXG5cclxuICBhd2FpdCBpbnNlcnRGb3VuZGVycyhBcnJheS5mcm9tKGZvdW5kZXJzLnZhbHVlcygpKSk7XHJcbn07XHJcblxyXG5jb25zdCBnZXRYbWxGaWxlUGF0aCA9IChvcHRpb25zOiBPcGVuRGF0YVN5bmNPcHRpb25zUGFydGlhbCk6IHN0cmluZyA9PiB7XHJcbiAgcmV0dXJuIGpvaW4ob3B0aW9ucy50bXBEaXIsIG9wdGlvbnMuc2Nob29sc1htbEZpbGVOYW1lKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBkb3dubG9hZEFuZEltcG9ydFNjaG9vbHMgPSBhc3luYyAoXHJcbiAgb3B0aW9uczogT3BlbkRhdGFTeW5jT3B0aW9uc1BhcnRpYWwgPSB7fSxcclxuICBzYXZlRm91bmRlcnNUb0NzdjogYm9vbGVhbiA9IGZhbHNlLFxyXG4gIHNhdmVTY2hvb2xzV2l0aG91dFJ1aWFuVG9Dc3Y6IGJvb2xlYW4gPSBmYWxzZVxyXG4pID0+IHtcclxuICBhd2FpdCBydW5TeW5jUGFydChTeW5jUGFydC5TY2hvb2xzLCBbU3luY1BhcnQuQWRkcmVzc1BvaW50c10sIGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IHJ1bk9wdGlvbnMgPSBwcmVwYXJlT3B0aW9ucyhvcHRpb25zKTtcclxuXHJcbiAgICBhd2FpdCBkb3dubG9hZFhtbChydW5PcHRpb25zKTtcclxuICAgIGF3YWl0IGltcG9ydERhdGFUb0RiKFxyXG4gICAgICBydW5PcHRpb25zLFxyXG4gICAgICBzYXZlRm91bmRlcnNUb0NzdixcclxuICAgICAgc2F2ZVNjaG9vbHNXaXRob3V0UnVpYW5Ub0NzdlxyXG4gICAgKTtcclxuICAgIGRlbGV0ZVNjaG9vbHNYbWxGaWxlKHJ1bk9wdGlvbnMpO1xyXG4gIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlbGV0ZVNjaG9vbHNYbWxGaWxlID0gKFxyXG4gIG9wdGlvbnM6IE9wZW5EYXRhU3luY09wdGlvbnNQYXJ0aWFsID0ge31cclxuKSA9PiB7XHJcbiAgY29uc3QgcnVuT3B0aW9ucyA9IHByZXBhcmVPcHRpb25zKG9wdGlvbnMpO1xyXG5cclxuICBpZiAoZXhpc3RzU3luYyhnZXRYbWxGaWxlUGF0aChydW5PcHRpb25zKSkpIHtcclxuICAgIHJtU3luYyhnZXRYbWxGaWxlUGF0aChydW5PcHRpb25zKSk7XHJcbiAgfVxyXG59O1xyXG4iXX0=
|
package/package.json
CHANGED
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
},
|
|
74
74
|
"name": "text-to-map",
|
|
75
75
|
"description": "Text To Map usiluje o lepší, strojově zpracovatelné využití částí vyhlášek s výčtem ulic a dalších lokací. Jde o rozšiřitelnou sadu konceptů a nástrojů, které zajistí hladký převod výčtu ulic a jejich rozsahů v lidsky srozumitelném jazyce do strojově zpracovatelného, uchopitelného formátu.",
|
|
76
|
-
"version": "1.1.
|
|
76
|
+
"version": "1.1.36",
|
|
77
77
|
"main": "dist/index.js",
|
|
78
78
|
"types": "dist/index.d.ts",
|
|
79
79
|
"files": [
|