text-to-map 1.1.27 → 1.1.29
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/bin/address-points.js +1 -0
- package/dist/bin/cities.js +1 -0
- package/dist/bin/clear-all.js +1 -0
- package/dist/bin/constants.js +1 -0
- package/dist/bin/generate-syntax-diagrams.js +1 -0
- package/dist/bin/init-db.js +1 -0
- package/dist/bin/knex.js +1 -0
- package/dist/bin/parse-ordinance.js +17 -17
- package/dist/bin/polygons.js +4 -2
- package/dist/bin/regions.js +1 -0
- package/dist/bin/schools.js +1 -0
- package/dist/bin/streets.js +1 -0
- package/dist/bin/sync-all.js +1 -0
- package/dist/db/address-points.js +1 -1
- package/dist/db/cities.d.ts +5 -3
- package/dist/db/cities.js +43 -6
- package/dist/db/db.js +1 -0
- package/dist/db/founders.js +4 -3
- package/dist/db/meta.js +1 -0
- package/dist/db/migrations/20230704125715_initial.js +1 -0
- package/dist/db/migrations/20230731232915_city_positions.js +1 -0
- package/dist/db/migrations/20240106224603_city_polygon.js +1 -0
- package/dist/db/migrations/20240320200534_district_polygon.js +24 -0
- package/dist/db/regions.js +1 -0
- package/dist/db/schools.js +1 -0
- package/dist/db/street-sync.js +1 -0
- package/dist/db/sync-log.js +1 -0
- package/dist/db/types.d.ts +3 -1
- package/dist/db/types.js +2 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -2
- package/dist/open-data-sync/address-points.js +1 -0
- package/dist/open-data-sync/cities.js +1 -0
- package/dist/open-data-sync/common.js +1 -0
- package/dist/open-data-sync/regions.js +1 -0
- package/dist/open-data-sync/schools.js +1 -0
- package/dist/open-data-sync/streets.js +18 -11
- package/dist/smd-to-csv/json-to-csv.js +1 -0
- package/dist/smd-to-csv/ordinance-to-csv-rules.js +1 -0
- package/dist/smd-to-csv/txt-to-json.js +1 -0
- package/dist/street-markdown/municipality.js +1 -0
- package/dist/street-markdown/polygons.d.ts +7 -4
- package/dist/street-markdown/polygons.js +117 -28
- package/dist/street-markdown/roman-numerals.js +1 -0
- package/dist/street-markdown/smd-line-parser.js +1 -0
- package/dist/street-markdown/smd-parser.js +1 -0
- package/dist/street-markdown/smd.d.ts +1 -1
- package/dist/street-markdown/smd.js +47 -21
- package/dist/street-markdown/token-definition.js +1 -0
- package/dist/street-markdown/types.d.ts +5 -0
- package/dist/street-markdown/types.js +3 -2
- package/dist/utils/atom.js +1 -0
- package/dist/utils/helpers.d.ts +2 -0
- package/dist/utils/helpers.js +3 -0
- package/dist/utils/jtsk2wgs84.js +1 -0
- package/package.json +14 -14
|
@@ -66,11 +66,17 @@ export const convertMunicipality = (municipality) => {
|
|
|
66
66
|
name: school.name,
|
|
67
67
|
izo: school.izo,
|
|
68
68
|
addresses: Array.from(school.addressMap.values()).filter((point) => point.lat !== 0 && point.lng !== 0),
|
|
69
|
+
isWholeMunicipality: school.isWholeMunicipality,
|
|
69
70
|
position: school.position,
|
|
70
71
|
};
|
|
71
72
|
}),
|
|
73
|
+
code: municipality.founder.municipalityCode,
|
|
74
|
+
municipalityType: municipality.founder.municipalityType === MunicipalityType.City
|
|
75
|
+
? "city"
|
|
76
|
+
: "district",
|
|
72
77
|
cityCodes: [...new Set(municipality.cityCodes)],
|
|
73
78
|
districtCodes: [...new Set(municipality.districtCodes)],
|
|
79
|
+
wholeMunicipalityPoints: municipality.wholeMunicipalityPoints,
|
|
74
80
|
unmappedPoints: municipality.unmappedPoints.filter((point) => point.lat !== 0 && point.lng !== 0),
|
|
75
81
|
};
|
|
76
82
|
};
|
|
@@ -173,12 +179,6 @@ const processMunicipalitySwitchLine = ({ line, state, lineNumber, onError, }) =>
|
|
|
173
179
|
onError({ lineNumber, line, errors });
|
|
174
180
|
}
|
|
175
181
|
else {
|
|
176
|
-
if (municipality.type === MunicipalityType.City) {
|
|
177
|
-
state.currentMunicipality.cityCodes.push(municipality.code);
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
state.currentMunicipality.districtCodes.push(municipality.code);
|
|
181
|
-
}
|
|
182
182
|
state.currentFilterMunicipality = municipality;
|
|
183
183
|
}
|
|
184
184
|
});
|
|
@@ -194,20 +194,35 @@ const processWholeMunicipalityLine = ({ line, state, lineNumber, onError, }) =>
|
|
|
194
194
|
else {
|
|
195
195
|
state.currentMunicipality.districtCodes.push(municipality.code);
|
|
196
196
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
municipality
|
|
200
|
-
|
|
201
|
-
|
|
197
|
+
if (state.currentMunicipality.founder.municipalityCode ===
|
|
198
|
+
municipality.code &&
|
|
199
|
+
state.currentMunicipality.founder.municipalityType === municipality.type) {
|
|
200
|
+
// whole municipality, since there is higher likelyhood of multiple schools having
|
|
201
|
+
// the whole municipality area, we will add the address points to the municipality
|
|
202
|
+
if (state.currentMunicipality.wholeMunicipalityPoints.length === 0) {
|
|
203
|
+
state.currentMunicipality.wholeMunicipalityPoints = (yield findAddressPoints({
|
|
204
|
+
type: "wholeMunicipality",
|
|
205
|
+
municipality,
|
|
206
|
+
})).map((point) => mapAddressPointForExport(point));
|
|
207
|
+
}
|
|
208
|
+
state.currentSchool.isWholeMunicipality = true;
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
const addressPoints = yield findAddressPoints({
|
|
212
|
+
type: "wholeMunicipality",
|
|
213
|
+
municipality,
|
|
214
|
+
});
|
|
215
|
+
addAddressPointsToSchool(state.currentSchool, addressPoints, lineNumber);
|
|
216
|
+
}
|
|
202
217
|
}
|
|
203
218
|
});
|
|
204
|
-
const addAddressPointsToSchool = (school, addressPoints, lineNumber) => {
|
|
219
|
+
const addAddressPointsToSchool = (school, addressPoints, lineNumber, municipalityCode) => {
|
|
205
220
|
for (const point of addressPoints) {
|
|
206
221
|
if (school.addressMap.has(point.id)) {
|
|
207
222
|
school.addressMap.get(point.id).lineNumbers.push(lineNumber - 1);
|
|
208
223
|
}
|
|
209
224
|
else {
|
|
210
|
-
school.addressMap.set(point.id, mapAddressPointForExport(point, lineNumber));
|
|
225
|
+
school.addressMap.set(point.id, mapAddressPointForExport(point, lineNumber, municipalityCode));
|
|
211
226
|
}
|
|
212
227
|
}
|
|
213
228
|
};
|
|
@@ -229,7 +244,10 @@ const processAddressPointLine = ({ line, state, lineNumber, onError, onWarning,
|
|
|
229
244
|
smdLine,
|
|
230
245
|
municipality: state.currentFilterMunicipality,
|
|
231
246
|
});
|
|
232
|
-
addAddressPointsToSchool(state.currentSchool, addressPoints, lineNumber
|
|
247
|
+
addAddressPointsToSchool(state.currentSchool, addressPoints, lineNumber, state.currentMunicipality.code !==
|
|
248
|
+
state.currentFilterMunicipality.code
|
|
249
|
+
? state.currentFilterMunicipality.code
|
|
250
|
+
: undefined);
|
|
233
251
|
}
|
|
234
252
|
}
|
|
235
253
|
else if (smdLine.type === "municipalityPart") {
|
|
@@ -280,7 +298,7 @@ const addRestWithNoStreetNameToSchool = (lineNumber, state) => __awaiter(void 0,
|
|
|
280
298
|
const pointsNoStreetName = yield findAddressPoints({
|
|
281
299
|
type: "wholeMunicipalityNoStreetName",
|
|
282
300
|
municipality: {
|
|
283
|
-
code: state.currentMunicipality.founder.
|
|
301
|
+
code: state.currentMunicipality.founder.municipalityCode,
|
|
284
302
|
type: state.currentMunicipality.founder.municipalityType,
|
|
285
303
|
},
|
|
286
304
|
});
|
|
@@ -293,11 +311,14 @@ const addRestOfMunicipalityToUnmappedPoints = (state) => __awaiter(void 0, void
|
|
|
293
311
|
state.currentMunicipality.unmappedPoints = (yield getRestOfMunicipality(state)).map((point) => mapAddressPointForExport(point));
|
|
294
312
|
});
|
|
295
313
|
const getRestOfMunicipality = (state) => __awaiter(void 0, void 0, void 0, function* () {
|
|
314
|
+
if (state.currentMunicipality.wholeMunicipalityPoints.length > 0) {
|
|
315
|
+
return [];
|
|
316
|
+
}
|
|
296
317
|
// get all address points for current municipality
|
|
297
318
|
const allPoints = yield findAddressPoints({
|
|
298
319
|
type: "wholeMunicipality",
|
|
299
320
|
municipality: {
|
|
300
|
-
code: state.currentMunicipality.founder.
|
|
321
|
+
code: state.currentMunicipality.founder.municipalityCode,
|
|
301
322
|
type: state.currentMunicipality.founder.municipalityType,
|
|
302
323
|
},
|
|
303
324
|
});
|
|
@@ -326,12 +347,15 @@ const getNewMunicipality = (founder, errors) => ({
|
|
|
326
347
|
municipalityName: founder ? founder.name : "Neznámá obec",
|
|
327
348
|
founder,
|
|
328
349
|
schools: [],
|
|
350
|
+
code: founder ? founder.municipalityCode : 0,
|
|
351
|
+
municipalityType: founder.municipalityType === MunicipalityType.City ? "city" : "district",
|
|
329
352
|
cityCodes: founder.municipalityType === MunicipalityType.City
|
|
330
|
-
? [founder.
|
|
353
|
+
? [founder.municipalityCode]
|
|
331
354
|
: [],
|
|
332
355
|
districtCodes: founder.municipalityType === MunicipalityType.District
|
|
333
|
-
? [founder.
|
|
356
|
+
? [founder.municipalityCode]
|
|
334
357
|
: [],
|
|
358
|
+
wholeMunicipalityPoints: [],
|
|
335
359
|
unmappedPoints: [],
|
|
336
360
|
},
|
|
337
361
|
errors,
|
|
@@ -340,6 +364,7 @@ export const getNewSchool = (name, founder, lineNumber, onError) => __awaiter(vo
|
|
|
340
364
|
let exportSchool = {
|
|
341
365
|
name,
|
|
342
366
|
izo: "",
|
|
367
|
+
isWholeMunicipality: false,
|
|
343
368
|
addresses: [],
|
|
344
369
|
};
|
|
345
370
|
if (founder !== null) {
|
|
@@ -353,7 +378,7 @@ export const getNewSchool = (name, founder, lineNumber, onError) => __awaiter(vo
|
|
|
353
378
|
if (school.locations.length > 0) {
|
|
354
379
|
const position = yield getAddressPointById(school.locations[0].addressPointId);
|
|
355
380
|
if (position !== null) {
|
|
356
|
-
exportSchool.position = position;
|
|
381
|
+
exportSchool.position = mapAddressPointForExport(position);
|
|
357
382
|
}
|
|
358
383
|
}
|
|
359
384
|
}
|
|
@@ -369,8 +394,8 @@ const getAllAddressPointsIds = (municipality) => {
|
|
|
369
394
|
}
|
|
370
395
|
return addressPointsIds;
|
|
371
396
|
};
|
|
372
|
-
const mapAddressPointForExport = (addressPoint, lineNumber) => {
|
|
373
|
-
return Object.assign({ address: addressPoint.address, lat: roundToNDecimalPlaces(addressPoint.lat, 6), lng: roundToNDecimalPlaces(addressPoint.lng, 6) }, (lineNumber !== undefined ? { lineNumbers: [lineNumber - 1] } : {}));
|
|
397
|
+
const mapAddressPointForExport = (addressPoint, lineNumber, municipalityCode) => {
|
|
398
|
+
return Object.assign(Object.assign({ address: addressPoint.address, lat: roundToNDecimalPlaces(addressPoint.lat, 6), lng: roundToNDecimalPlaces(addressPoint.lng, 6) }, (lineNumber !== undefined ? { lineNumbers: [lineNumber - 1] } : {})), (municipalityCode !== undefined ? { municipalityCode } : {}));
|
|
374
399
|
};
|
|
375
400
|
const mapSchoolForExport = (school) => (Object.assign(Object.assign({}, school), { position: school.position ? mapAddressPointForExport(school.position) : null }));
|
|
376
401
|
const cleanLine = (line) => {
|
|
@@ -385,3 +410,4 @@ const roundToNDecimalPlaces = (toRound, decimalPlaces) => {
|
|
|
385
410
|
return (Math.round(toRound * Math.pow(10, decimalPlaces)) /
|
|
386
411
|
Math.pow(10, decimalPlaces));
|
|
387
412
|
};
|
|
413
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmVldC1tYXJrZG93bi9zbWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsbUJBQW1CLEdBQ3BCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFXLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9FLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4Qiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQXlCOUMsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsQ0FBTyxFQUNsRCxLQUFLLEVBQ0wsWUFBWSxHQUFHLEVBQUUsRUFDakIsT0FBTyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFDbEIsU0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFDcEIsZUFBZSxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFDMUIsNEJBQTRCLEdBQUcsS0FBSyxHQUNoQixFQUEyQixFQUFFO0lBQ2pELElBQUk7UUFDRixNQUFNLEtBQUssbUJBQ1QsbUJBQW1CLEVBQUUsSUFBSSxFQUN6Qix5QkFBeUIsRUFBRSxJQUFJLEVBQy9CLGFBQWEsRUFBRSxJQUFJLEVBQ25CLEtBQUss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QUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FDNUIsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgY2hlY2tTdHJlZXRFeGlzdHMsXHJcbiAgZmluZEFkZHJlc3NQb2ludHMsXHJcbiAgZ2V0QWRkcmVzc1BvaW50QnlJZCxcclxufSBmcm9tIFwiLi4vZGIvYWRkcmVzcy1wb2ludHNcIjtcclxuaW1wb3J0IHsgZGlzY29ubmVjdEtuZXggfSBmcm9tIFwiLi4vZGIvZGJcIjtcclxuaW1wb3J0IHsgZmluZEZvdW5kZXIsIGdldEZvdW5kZXJCeUlkIH0gZnJvbSBcIi4uL2RiL2ZvdW5kZXJzXCI7XHJcbmltcG9ydCB7IGZpbmRTY2hvb2wgfSBmcm9tIFwiLi4vZGIvc2Nob29sc1wiO1xyXG5pbXBvcnQgeyBGb3VuZGVyLCBNdW5pY2lwYWxpdHlUeXBlLCBmb3VuZGVyVG9NdW5pY2lwYWxpdHkgfSBmcm9tIFwiLi4vZGIvdHlwZXNcIjtcclxuaW1wb3J0IHtcclxuICBnZXRNdW5pY2lwYWxpdHlQYXJ0UmVzdWx0LFxyXG4gIGdldFJlc3RPZk11bmljaXBhbGl0eVBhcnQsXHJcbiAgZ2V0U3dpdGNoTXVuaWNpcGFsaXR5LFxyXG4gIGdldFdob2xlTXVuaWNpcGFsaXR5LFxyXG4gIGlzTXVuaWNpcGFsaXR5U3dpdGNoLFxyXG4gIGlzUmVzdE9mTXVuaWNpcGFsaXR5TGluZSxcclxuICBpc1Jlc3RPZk11bmljaXBhbGl0eVBhcnRMaW5lLFxyXG4gIGlzUmVzdFdpdGhOb1N0cmVldE5hbWVMaW5lLFxyXG4gIGlzV2hvbGVNdW5pY2lwYWxpdHksXHJcbn0gZnJvbSBcIi4vbXVuaWNpcGFsaXR5XCI7XHJcbmltcG9ydCB7IHBhcnNlTGluZSB9IGZyb20gXCIuL3NtZC1saW5lLXBhcnNlclwiO1xyXG5pbXBvcnQge1xyXG4gIEFkZHJlc3NQb2ludCxcclxuICBFcnJvckNhbGxiYWNrUGFyYW1zLFxyXG4gIEV4cG9ydEFkZHJlc3NQb2ludCxcclxuICBJbnRlcm1lZGlhdGVNdW5pY2lwYWxpdHksXHJcbiAgSW50ZXJtZWRpYXRlTXVuaWNpcGFsaXR5UmVzdWx0LFxyXG4gIEludGVybWVkaWF0ZVNjaG9vbCxcclxuICBNdW5pY2lwYWxpdHksXHJcbiAgUHJvY2Vzc0xpbmVDYWxsYmFja1BhcmFtcyxcclxuICBQcm9jZXNzTGluZVBhcmFtcyxcclxuICBTY2hvb2wsXHJcbiAgU21kRXJyb3IsXHJcbiAgU21kU3RhdGUsXHJcbn0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbmludGVyZmFjZSBQYXJzZU9yZGluYW5jZVByb3BzIHtcclxuICBsaW5lczogc3RyaW5nW107XHJcbiAgaW5pdGlhbFN0YXRlPzogUGFydGlhbDxTbWRTdGF0ZT47XHJcbiAgb25FcnJvcj86IChwYXJhbXM6IEVycm9yQ2FsbGJhY2tQYXJhbXMpID0+IHZvaWQ7XHJcbiAgb25XYXJuaW5nPzogKHBhcmFtczogRXJyb3JDYWxsYmFja1BhcmFtcykgPT4gdm9pZDtcclxuICBvblByb2Nlc3NlZExpbmU/OiAocGFyYW1zOiBQcm9jZXNzTGluZUNhbGxiYWNrUGFyYW1zKSA9PiB2b2lkO1xyXG4gIGluY2x1ZGVVbm1hcHBlZEFkZHJlc3NQb2ludHM6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBwYXJzZU9yZGluYW5jZVRvQWRkcmVzc1BvaW50cyA9IGFzeW5jICh7XHJcbiAgbGluZXMsXHJcbiAgaW5pdGlhbFN0YXRlID0ge30sXHJcbiAgb25FcnJvciA9ICgpID0+IHt9LFxyXG4gIG9uV2FybmluZyA9ICgpID0+IHt9LFxyXG4gIG9uUHJvY2Vzc2VkTGluZSA9ICgpID0+IHt9LFxyXG4gIGluY2x1ZGVVbm1hcHBlZEFkZHJlc3NQb2ludHMgPSBmYWxzZSxcclxufTogUGFyc2VPcmRpbmFuY2VQcm9wcyk6IFByb21pc2U8TXVuaWNpcGFsaXR5W10+ID0+IHtcclxuICB0cnkge1xyXG4gICAgY29uc3Qgc3RhdGU6IFNtZFN0YXRlID0ge1xyXG4gICAgICBjdXJyZW50TXVuaWNpcGFsaXR5OiBudWxsLFxyXG4gICAgICBjdXJyZW50RmlsdGVyTXVuaWNpcGFsaXR5OiBudWxsLFxyXG4gICAgICBjdXJyZW50U2Nob29sOiBudWxsLFxyXG4gICAgICByZXN0czoge1xyXG4gICAgICAgIG5vU3RyZWV0TmFtZVNjaG9vbDoge1xyXG4gICAgICAgICAgaXpvOiBudWxsLFxyXG4gICAgICAgICAgbGluZU51bWJlcjogbnVsbCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIG11bmljaXBhbGl0eVBhcnRzOiBbXSxcclxuICAgICAgICB3aG9sZU11bmljaXBhbGl0eVNjaG9vbDoge1xyXG4gICAgICAgICAgaXpvOiBudWxsLFxyXG4gICAgICAgICAgbGluZU51bWJlcjogbnVsbCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGluY2x1ZGVVbm1hcHBlZEFkZHJlc3NQb2ludHMsXHJcbiAgICAgIH0sXHJcbiAgICAgIGNpdHlDb2RlczogW10sXHJcbiAgICAgIG11bmljaXBhbGl0aWVzOiBbXSxcclxuICAgICAgLi4uaW5pdGlhbFN0YXRlLFxyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgbGluZU51bWJlciA9IDE7XHJcblxyXG4gICAgZm9yIChjb25zdCByYXdMaW5lIG9mIGxpbmVzKSB7XHJcbiAgICAgIGNvbnN0IGxpbmUgPSBjbGVhbkxpbmUocmF3TGluZSk7XHJcbiAgICAgIGF3YWl0IHByb2Nlc3NPbmVMaW5lKHtcclxuICAgICAgICBsaW5lLFxyXG4gICAgICAgIHN0YXRlLFxyXG4gICAgICAgIGxpbmVOdW1iZXIsXHJcbiAgICAgICAgb25FcnJvcixcclxuICAgICAgICBvbldhcm5pbmcsXHJcbiAgICAgIH0pO1xyXG4gICAgICBvblByb2Nlc3NlZExpbmUoeyBsaW5lTnVtYmVyLCBsaW5lIH0pO1xyXG4gICAgICBsaW5lTnVtYmVyKys7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0YXRlLmN1cnJlbnRTY2hvb2wgIT0gbnVsbCkge1xyXG4gICAgICBpZiAoc3RhdGUuY3VycmVudE11bmljaXBhbGl0eSA9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLmN1cnJlbnRNdW5pY2lwYWxpdHkuc2Nob29scy5wdXNoKFxyXG4gICAgICAgIG1hcFNjaG9vbEZvckV4cG9ydChzdGF0ZS5jdXJyZW50U2Nob29sKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGF3YWl0IGNvbXBsZXRlQ3VycmVudE11bmljaXBhbGl0eShzdGF0ZSk7XHJcblxyXG4gICAgcmV0dXJuIHN0YXRlLm11bmljaXBhbGl0aWVzO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICB9IGZpbmFsbHkge1xyXG4gICAgYXdhaXQgZGlzY29ubmVjdEtuZXgoKTtcclxuICB9XHJcbiAgcmV0dXJuIFtdO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNvbnZlcnRNdW5pY2lwYWxpdHkgPSAoXHJcbiAgbXVuaWNpcGFsaXR5OiBJbnRlcm1lZGlhdGVNdW5pY2lwYWxpdHlcclxuKTogTXVuaWNpcGFsaXR5ID0+IHtcclxuICByZXR1cm4ge1xyXG4gICAgbXVuaWNpcGFsaXR5TmFtZTogbXVuaWNpcGFsaXR5Lm11bmljaXBhbGl0eU5hbWUsXHJcbiAgICBzY2hvb2xzOiBtdW5pY2lwYWxpdHkuc2Nob29scy5tYXAoKHNjaG9vbCkgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6IHNjaG9vbC5uYW1lLFxyXG4gICAgICAgIGl6bzogc2Nob29sLml6byxcclxuICAgICAgICBhZGRyZXNzZXM6IEFycmF5LmZyb20oc2Nob29sLmFkZHJlc3NNYXAudmFsdWVzKCkpLmZpbHRlcihcclxuICAgICAgICAgIChwb2ludCkgPT4gcG9pbnQubGF0ICE9PSAwICYmIHBvaW50LmxuZyAhPT0gMFxyXG4gICAgICAgICksXHJcbiAgICAgICAgaXNXaG9sZU11bmljaXBhbGl0eTogc2Nob29sLmlzV2hvbGVNdW5pY2lwYWxpdHksXHJcbiAgICAgICAgcG9zaXRpb246IHNjaG9vbC5wb3NpdGlvbixcclxuICAgICAgfTtcclxuICAgIH0pLFxyXG4gICAgY29kZTogbXVuaWNpcGFsaXR5LmZvdW5kZXIubXVuaWNpcGFsaXR5Q29kZSxcclxuICAgIG11bmljaXBhbGl0eVR5cGU6XHJcbiAgICAgIG11bmljaXBhbGl0eS5mb3VuZGVyLm11bmljaXBhbGl0eVR5cGUgPT09IE11bmljaXBhbGl0eVR5cGUuQ2l0eVxyXG4gICAgICAgID8gXCJjaXR5XCJcclxuICAgICAgICA6IFwiZGlzdHJpY3RcIixcclxuICAgIGNpdHlDb2RlczogWy4uLm5ldyBTZXQobXVuaWNpcGFsaXR5LmNpdHlDb2RlcyldLFxyXG4gICAgZGlzdHJpY3RDb2RlczogWy4uLm5ldyBTZXQobXVuaWNpcGFsaXR5LmRpc3RyaWN0Q29kZXMpXSxcclxuICAgIHdob2xlTXVuaWNpcGFsaXR5UG9pbnRzOiBtdW5pY2lwYWxpdHkud2hvbGVNdW5pY2lwYWxpdHlQb2ludHMsXHJcbiAgICB1bm1hcHBlZFBvaW50czogbXVuaWNpcGFsaXR5LnVubWFwcGVkUG9pbnRzLmZpbHRlcihcclxuICAgICAgKHBvaW50KSA9PiBwb2ludC5sYXQgIT09IDAgJiYgcG9pbnQubG5nICE9PSAwXHJcbiAgICApLFxyXG4gIH07XHJcbn07XHJcblxyXG5jb25zdCBwcm9jZXNzT25lTGluZSA9IGFzeW5jIChwYXJhbXM6IFByb2Nlc3NMaW5lUGFyYW1zKSA9PiB7XHJcbiAgY29uc3QgeyBsaW5lLCBsaW5lTnVtYmVyLCBzdGF0ZSB9ID0gcGFyYW1zO1xyXG5cclxuICBpZiAobGluZVswXSA9PT0gXCIjXCIpIHtcclxuICAgIGF3YWl0IHByb2Nlc3NNdW5pY2lwYWxpdHlMaW5lKHBhcmFtcyk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBpZiAobGluZSA9PT0gXCJcIikge1xyXG4gICAgLy8gZW5kIG9mIHNjaG9vbFxyXG4gICAgcHJvY2Vzc0VtcHR5TGluZShwYXJhbXMpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKGxpbmVbMF0gPT09IFwiIVwiKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBpZiAoc3RhdGUuY3VycmVudFNjaG9vbCA9PT0gbnVsbCkge1xyXG4gICAgYXdhaXQgcHJvY2Vzc1NjaG9vbExpbmUocGFyYW1zKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGlmIChpc011bmljaXBhbGl0eVN3aXRjaChsaW5lKSkge1xyXG4gICAgcHJvY2Vzc011bmljaXBhbGl0eVN3aXRjaExpbmUocGFyYW1zKTtcclxuICB9IGVsc2UgaWYgKGlzV2hvbGVNdW5pY2lwYWxpdHkobGluZSkpIHtcclxuICAgIGF3YWl0IHByb2Nlc3NXaG9sZU11bmljaXBhbGl0eUxpbmUocGFyYW1zKTtcclxuICB9IGVsc2UgaWYgKGlzUmVzdFdpdGhOb1N0cmVldE5hbWVMaW5lKGxpbmUpKSB7XHJcbiAgICBzdGF0ZS5yZXN0cy5ub1N0cmVldE5hbWVTY2hvb2wgPSB7XHJcbiAgICAgIGl6bzogc3RhdGUuY3VycmVudFNjaG9vbC5pem8sXHJcbiAgICAgIGxpbmVOdW1iZXIsXHJcbiAgICB9O1xyXG4gIH0gZWxzZSBpZiAoaXNSZXN0T2ZNdW5pY2lwYWxpdHlMaW5lKGxpbmUpKSB7XHJcbiAgICBzdGF0ZS5yZXN0cy53aG9sZU11bmljaXBhbGl0eVNjaG9vbCA9IHtcclxuICAgICAgaXpvOiBzdGF0ZS5jdXJyZW50U2Nob29sLml6byxcclxuICAgICAgbGluZU51bWJlcixcclxuICAgIH07XHJcbiAgfSBlbHNlIGlmIChpc1Jlc3RPZk11bmljaXBhbGl0eVBhcnRMaW5lKGxpbmUpKSB7XHJcbiAgICBjb25zdCB7IG11bmljaXBhbGl0eVBhcnRDb2RlLCBlcnJvcnMgfSA9IGF3YWl0IGdldFJlc3RPZk11bmljaXBhbGl0eVBhcnQoXHJcbiAgICAgIGxpbmUsXHJcbiAgICAgIHN0YXRlLmN1cnJlbnRNdW5pY2lwYWxpdHkuZm91bmRlclxyXG4gICAgKTtcclxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBwYXJhbXMub25FcnJvcih7IGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGxpbmUsIGVycm9ycyB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN0YXRlLnJlc3RzLm11bmljaXBhbGl0eVBhcnRzLnB1c2goe1xyXG4gICAgICAgIG11bmljaXBhbGl0eVBhcnRDb2RlLFxyXG4gICAgICAgIHNjaG9vbEl6bzogc3RhdGUuY3VycmVudFNjaG9vbC5pem8sXHJcbiAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlcixcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIGF3YWl0IHByb2Nlc3NBZGRyZXNzUG9pbnRMaW5lKHBhcmFtcyk7XHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgcHJvY2Vzc011bmljaXBhbGl0eUxpbmUgPSBhc3luYyAoe1xyXG4gIGxpbmUsXHJcbiAgbGluZU51bWJlcixcclxuICBzdGF0ZSxcclxuICBvbkVycm9yLFxyXG59OiBQcm9jZXNzTGluZVBhcmFtcykgPT4ge1xyXG4gIGlmIChzdGF0ZS5jdXJyZW50U2Nob29sICE9PSBudWxsKSB7XHJcbiAgICBzdGF0ZS5jdXJyZW50TXVuaWNpcGFsaXR5LnNjaG9vbHMucHVzaChzdGF0ZS5jdXJyZW50U2Nob29sKTtcclxuICAgIHN0YXRlLmN1cnJlbnRTY2hvb2wgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgYXdhaXQgY29tcGxldGVDdXJyZW50TXVuaWNpcGFsaXR5KHN0YXRlKTtcclxuXHJcbiAgY29uc3QgeyBtdW5pY2lwYWxpdHksIGVycm9ycyB9ID0gYXdhaXQgZ2V0TmV3TXVuaWNpcGFsaXR5QnlOYW1lKGxpbmUpO1xyXG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xyXG4gICAgb25FcnJvcih7IGxpbmVOdW1iZXIsIGxpbmUsIGVycm9ycyB9KTtcclxuICB9XHJcbiAgc3RhdGUuY3VycmVudE11bmljaXBhbGl0eSA9IG11bmljaXBhbGl0eTtcclxuICBzdGF0ZS5jdXJyZW50RmlsdGVyTXVuaWNpcGFsaXR5ID0gZm91bmRlclRvTXVuaWNpcGFsaXR5KFxyXG4gICAgc3RhdGUuY3VycmVudE11bmljaXBhbGl0eS5mb3VuZGVyXHJcbiAgKTtcclxuXHJcbiAgc3RhdGUuY3VycmVudFNjaG9vbCA9IG51bGw7XHJcbn07XHJcblxyXG5jb25zdCBjb21wbGV0ZUN1cnJlbnRNdW5pY2lwYWxpdHkgPSBhc3luYyAoc3RhdGU6IFNtZFN0YXRlKSA9PiB7XHJcbiAgaWYgKHN0YXRlLmN1cnJlbnRNdW5pY2lwYWxpdHkgIT09IG51bGwpIHtcclxuICAgIGF3YWl0IGFkZFJlc3RzKHN0YXRlKTtcclxuICAgIHN0YXRlLm11bmljaXBhbGl0aWVzLnB1c2goY29udmVydE11bmljaXBhbGl0eShzdGF0ZS5jdXJyZW50TXVuaWNpcGFsaXR5KSk7XHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgcHJvY2Vzc0VtcHR5TGluZSA9ICh7IHN0YXRlIH06IFByb2Nlc3NMaW5lUGFyYW1zKSA9PiB7XHJcbiAgaWYgKHN0YXRlLmN1cnJlbnRTY2hvb2wgIT09IG51bGwpIHtcclxuICAgIHN0YXRlLmN1cnJlbnRNdW5pY2lwYWxpdHkuc2Nob29scy5wdXNoKHN0YXRlLmN1cnJlbnRTY2hvb2wpO1xyXG4gICAgc3RhdGUuY3VycmVudFNjaG9vbCA9IG51bGw7XHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgcHJvY2Vzc1NjaG9vbExpbmUgPSBhc3luYyAoe1xyXG4gIGxpbmUsXHJcbiAgbGluZU51bWJlcixcclxuICBzdGF0ZSxcclxuICBvbkVycm9yLFxyXG59OiBQcm9jZXNzTGluZVBhcmFtcykgPT4ge1xyXG4gIGlmIChzdGF0ZS5jdXJyZW50TXVuaWNpcGFsaXR5ID09PSBudWxsKSB7XHJcbiAgICBvbkVycm9yKHtcclxuICAgICAgbGluZU51bWJlcixcclxuICAgICAgbGluZSxcclxuICAgICAgZXJyb3JzOiBbXHJcbiAgICAgICAgd2hvbGVMaW5lRXJyb3IoXHJcbiAgICAgICAgICBcIkRlZmluaWNpIMWha29seSBtdXPDrSBwxZllZGNow6F6ZXQgZGVmaW5pY2UgesWZaXpvdmF0ZWxlICh1dm96ZW7DoSAnIycsIG5hcMWZLiAnIyBTdHJha29uaWNlJykuXCIsXHJcbiAgICAgICAgICBsaW5lXHJcbiAgICAgICAgKSxcclxuICAgICAgXSxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBzdGF0ZS5jdXJyZW50U2Nob29sID0gYXdhaXQgZ2V0TmV3U2Nob29sKFxyXG4gICAgbGluZSxcclxuICAgIHN0YXRlLmN1cnJlbnRNdW5pY2lwYWxpdHkuZm91bmRlcixcclxuICAgIGxpbmVOdW1iZXIsXHJcbiAgICBvbkVycm9yXHJcbiAgKTtcclxuICBzdGF0ZS5jdXJyZW50RmlsdGVyTXVuaWNpcGFsaXR5ID0gZm91bmRlclRvTXVuaWNpcGFsaXR5KFxyXG4gICAgc3RhdGUuY3VycmVudE11bmljaXBhbGl0eS5mb3VuZGVyXHJcbiAgKTtcclxufTtcclxuXHJcbmNvbnN0IHByb2Nlc3NNdW5pY2lwYWxpdHlTd2l0Y2hMaW5lID0gYXN5bmMgKHtcclxuICBsaW5lLFxyXG4gIHN0YXRlLFxyXG4gIGxpbmVOdW1iZXIsXHJcbiAgb25FcnJvcixcclxufTogUHJvY2Vzc0xpbmVQYXJhbXMpID0+IHtcclxuICBjb25zdCB7IG11bmljaXBhbGl0eSwgZXJyb3JzIH0gPSBhd2FpdCBnZXRTd2l0Y2hNdW5pY2lwYWxpdHkoXHJcbiAgICBsaW5lLFxyXG4gICAgc3RhdGUuY3VycmVudE11bmljaXBhbGl0eS5mb3VuZGVyXHJcbiAgKTtcclxuICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcclxuICAgIG9uRXJyb3IoeyBsaW5lTnVtYmVyLCBsaW5lLCBlcnJvcnMgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHN0YXRlLmN1cnJlbnRGaWx0ZXJNdW5pY2lwYWxpdHkgPSBtdW5pY2lwYWxpdHk7XHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgcHJvY2Vzc1dob2xlTXVuaWNpcGFsaXR5TGluZSA9IGFzeW5jICh7XHJcbiAgbGluZSxcclxuICBzdGF0ZSxcclxuICBsaW5lTnVtYmVyLFxyXG4gIG9uRXJyb3IsXHJcbn06IFByb2Nlc3NMaW5lUGFyYW1zKSA9PiB7XHJcbiAgY29uc3QgeyBtdW5pY2lwYWxpdHksIGVycm9ycyB9ID0gYXdhaXQgZ2V0V2hvbGVNdW5pY2lwYWxpdHkoXHJcbiAgICBsaW5lLFxyXG4gICAgc3RhdGUuY3VycmVudE11bmljaXBhbGl0eS5mb3VuZGVyXHJcbiAgKTtcclxuICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcclxuICAgIG9uRXJyb3IoeyBsaW5lTnVtYmVyLCBsaW5lLCBlcnJvcnMgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGlmIChtdW5pY2lwYWxpdHkudHlwZSA9PT0gTXVuaWNpcGFsaXR5VHlwZS5DaXR5KSB7XHJcbiAgICAgIHN0YXRlLmN1cnJlbnRNdW5pY2lwYWxpdHkuY2l0eUNvZGVzLnB1c2gobXVuaWNpcGFsaXR5LmNvZGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3RhdGUuY3VycmVudE11bmljaXBhbGl0eS5kaXN0cmljdENvZGVzLnB1c2gobXVuaWNpcGFsaXR5LmNvZGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBzdGF0ZS5jdXJyZW50TXVuaWNpcGFsaXR5LmZvdW5kZXIubXVuaWNpcGFsaXR5Q29kZSA9PT1cclxuICAgICAgICBtdW5pY2lwYWxpdHkuY29kZSAmJlxyXG4gICAgICBzdGF0ZS5jdXJyZW50TXVuaWNpcGFsaXR5LmZvdW5kZXIubXVuaWNpcGFsaXR5VHlwZSA9PT0gbXVuaWNpcGFsaXR5LnR5cGVcclxuICAgICkge1xyXG4gICAgICAvLyB3aG9sZSBtdW5pY2lwYWxpdHksIHNpbmNlIHRoZXJlIGlzIGhpZ2hlciBsaWtlbHlob29kIG9mIG11bHRpcGxlIHNjaG9vbHMgaGF2aW5nXHJcbiAgICAgIC8vIHRoZSB3aG9sZSBtdW5pY2lwYWxpdHkgYXJlYSwgd2Ugd2lsbCBhZGQgdGhlIGFkZHJlc3MgcG9pbnRzIHRvIHRoZSBtdW5pY2lwYWxpdHlcclxuICAgICAgaWYgKHN0YXRlLmN1cnJlbnRNdW5pY2lwYWxpdHkud2hvbGVNdW5pY2lwYWxpdHlQb2ludHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgc3RhdGUuY3VycmVudE11bmljaXBhbGl0eS53aG9sZU11bmljaXBhbGl0eVBvaW50cyA9IChcclxuICAgICAgICAgIGF3YWl0IGZpbmRBZGRyZXNzUG9pbnRzKHtcclxuICAgICAgICAgICAgdHlwZTogXCJ3aG9sZU11bmljaXBhbGl0eVwiLFxyXG4gICAgICAgICAgICBtdW5pY2lwYWxpdHksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICkubWFwKChwb2ludCkgPT4gbWFwQWRkcmVzc1BvaW50Rm9yRXhwb3J0KHBvaW50KSk7XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUuY3VycmVudFNjaG9vbC5pc1dob2xlTXVuaWNpcGFsaXR5ID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGFkZHJlc3NQb2ludHMgPSBhd2FpdCBmaW5kQWRkcmVzc1BvaW50cyh7XHJcbiAgICAgICAgdHlwZTogXCJ3aG9sZU11bmljaXBhbGl0eVwiLFxyXG4gICAgICAgIG11bmljaXBhbGl0eSxcclxuICAgICAgfSk7XHJcbiAgICAgIGFkZEFkZHJlc3NQb2ludHNUb1NjaG9vbChzdGF0ZS5jdXJyZW50U2Nob29sLCBhZGRyZXNzUG9pbnRzLCBsaW5lTnVtYmVyKTtcclxuICAgIH1cclxuICB9XHJcbn07XHJcblxyXG5jb25zdCBhZGRBZGRyZXNzUG9pbnRzVG9TY2hvb2wgPSAoXHJcbiAgc2Nob29sOiBJbnRlcm1lZGlhdGVTY2hvb2wsXHJcbiAgYWRkcmVzc1BvaW50czogQWRkcmVzc1BvaW50W10sXHJcbiAgbGluZU51bWJlcjogbnVtYmVyLFxyXG4gIG11bmljaXBhbGl0eUNvZGU/OiBudW1iZXJcclxuKSA9PiB7XHJcbiAgZm9yIChjb25zdCBwb2ludCBvZiBhZGRyZXNzUG9pbnRzKSB7XHJcbiAgICBpZiAoc2Nob29sLmFkZHJlc3NNYXAuaGFzKHBvaW50LmlkKSkge1xyXG4gICAgICBzY2hvb2wuYWRkcmVzc01hcC5nZXQocG9pbnQuaWQpLmxpbmVOdW1iZXJzLnB1c2gobGluZU51bWJlciAtIDEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2Nob29sLmFkZHJlc3NNYXAuc2V0KFxyXG4gICAgICAgIHBvaW50LmlkLFxyXG4gICAgICAgIG1hcEFkZHJlc3NQb2ludEZvckV4cG9ydChwb2ludCwgbGluZU51bWJlciwgbXVuaWNpcGFsaXR5Q29kZSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn07XHJcblxyXG5jb25zdCBwcm9jZXNzQWRkcmVzc1BvaW50TGluZSA9IGFzeW5jICh7XHJcbiAgbGluZSxcclxuICBzdGF0ZSxcclxuICBsaW5lTnVtYmVyLFxyXG4gIG9uRXJyb3IsXHJcbiAgb25XYXJuaW5nLFxyXG59OiBQcm9jZXNzTGluZVBhcmFtcykgPT4ge1xyXG4gIGNvbnN0IHsgc21kTGluZXMsIGVycm9ycyB9ID0gcGFyc2VMaW5lKGxpbmUpO1xyXG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xyXG4gICAgb25FcnJvcih7IGxpbmVOdW1iZXIsIGxpbmUsIGVycm9ycyB9KTtcclxuICB9IGVsc2Uge1xyXG4gICAgZm9yIChjb25zdCBzbWRMaW5lIG9mIHNtZExpbmVzKSB7XHJcbiAgICAgIGlmIChzbWRMaW5lLnR5cGUgPT09IFwic3RyZWV0XCIpIHtcclxuICAgICAgICBjb25zdCB7IGV4aXN0cywgZXJyb3JzIH0gPSBhd2FpdCBjaGVja1N0cmVldEV4aXN0cyhcclxuICAgICAgICAgIHNtZExpbmUuc3RyZWV0LFxyXG4gICAgICAgICAgc3RhdGUuY3VycmVudE11bmljaXBhbGl0eS5mb3VuZGVyXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIG9uV2FybmluZyh7IGxpbmVOdW1iZXIsIGxpbmUsIGVycm9ycyB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV4aXN0cykge1xyXG4gICAgICAgICAgY29uc3QgYWRkcmVzc1BvaW50cyA9IGF3YWl0IGZpbmRBZGRyZXNzUG9pbnRzKHtcclxuICAgICAgICAgICAgdHlwZTogXCJzbWRMaW5lXCIsXHJcbiAgICAgICAgICAgIHNtZExpbmUsXHJcbiAgICAgICAgICAgIG11bmljaXBhbGl0eTogc3RhdGUuY3VycmVudEZpbHRlck11bmljaXBhbGl0eSxcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIGFkZEFkZHJlc3NQb2ludHNUb1NjaG9vbChcclxuICAgICAgICAgICAgc3RhdGUuY3VycmVudFNjaG9vbCxcclxuICAgICAgICAgICAgYWRkcmVzc1BvaW50cyxcclxuICAgICAgICAgICAgbGluZU51bWJlcixcclxuICAgICAgICAgICAgc3RhdGUuY3VycmVudE11bmljaXBhbGl0eS5jb2RlICE9PVxyXG4gICAgICAgICAgICAgIHN0YXRlLmN1cnJlbnRGaWx0ZXJNdW5pY2lwYWxpdHkuY29kZVxyXG4gICAgICAgICAgICAgID8gc3RhdGUuY3VycmVudEZpbHRlck11bmljaXBhbGl0eS5jb2RlXHJcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWRcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHNtZExpbmUudHlwZSA9PT0gXCJtdW5pY2lwYWxpdHlQYXJ0XCIpIHtcclxuICAgICAgICBjb25zdCB7IG11bmljaXBhbGl0eVBhcnRDb2RlLCBlcnJvcnMgfSA9XHJcbiAgICAgICAgICBhd2FpdCBnZXRNdW5pY2lwYWxpdHlQYXJ0UmVzdWx0KFxyXG4gICAgICAgICAgICBzbWRMaW5lLm11bmljaXBhbGl0eVBhcnQsXHJcbiAgICAgICAgICAgIGxpbmUsXHJcbiAgICAgICAgICAgIHN0YXRlLmN1cnJlbnRNdW5pY2lwYWxpdHkuZm91bmRlclxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIG9uV2FybmluZyh7IGxpbmVOdW1iZXIsIGxpbmUsIGVycm9ycyB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgYWRkcmVzc1BvaW50cyA9IGF3YWl0IGZpbmRBZGRyZXNzUG9pbnRzKHtcclxuICAgICAgICAgICAgdHlwZTogXCJzbWRMaW5lXCIsXHJcbiAgICAgICAgICAgIHNtZExpbmUsXHJcbiAgICAgICAgICAgIG11bmljaXBhbGl0eTogc3RhdGUuY3VycmVudEZpbHRlck11bmljaXBhbGl0eSxcclxuICAgICAgICAgICAgbXVuaWNpcGFsaXR5UGFydENvZGUsXHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICBhZGRBZGRyZXNzUG9pbnRzVG9TY2hvb2woXHJcbiAgICAgICAgICAgIHN0YXRlLmN1cnJlbnRTY2hvb2wsXHJcbiAgICAgICAgICAgIGFkZHJlc3NQb2ludHMsXHJcbiAgICAgICAgICAgIGxpbmVOdW1iZXJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgYWRkUmVzdFRvU2Nob29sID0gKFxyXG4gIHJlc3RQb2ludHM6IEFkZHJlc3NQb2ludFtdLFxyXG4gIHNjaG9vbEl6bzogc3RyaW5nLFxyXG4gIGxpbmVOdW1iZXI6IG51bWJlcixcclxuICBzdGF0ZTogU21kU3RhdGVcclxuKSA9PiB7XHJcbiAgY29uc3QgYWRkcmVzc1BvaW50c0lkcyA9IGdldEFsbEFkZHJlc3NQb2ludHNJZHMoc3RhdGUuY3VycmVudE11bmljaXBhbGl0eSk7XHJcblxyXG4gIC8vIGZpbHRlciBvdXQgYWRkcmVzcyBwb2ludHMgYWxyZWFkeSBwcmVzZW50XHJcbiAgY29uc3QgcmVtYWluaW5nUG9pbnRzID0gcmVzdFBvaW50cy5maWx0ZXIoXHJcbiAgICAocG9pbnQpID0+ICFhZGRyZXNzUG9pbnRzSWRzLmhhcyhwb2ludC5pZClcclxuICApO1xyXG5cclxuICAvLyBmaW5kIHRoZSByaWdodCBzY2hvb2wgYW5kIGFkZCB0aGUgcmVtYWluaW5nIGFkZHJlc3MgcG9pbnRzXHJcbiAgY29uc3Qgc2Nob29sSW5kZXggPSBzdGF0ZS5jdXJyZW50TXVuaWNpcGFsaXR5LnNjaG9vbHMuZmluZEluZGV4KFxyXG4gICAgKHNjaG9vbCkgPT4gc2Nob29sLml6byA9PT0gc2Nob29sSXpvXHJcbiAgKTtcclxuXHJcbiAgYWRkQWRkcmVzc1BvaW50c1RvU2Nob29sKFxyXG4gICAgc3RhdGUuY3VycmVudE11bmljaXBhbGl0eS5zY2hvb2xzW3NjaG9vbEluZGV4XSxcclxuICAgIHJlbWFpbmluZ1BvaW50cyxcclxuICAgIGxpbmVOdW1iZXJcclxuICApO1xyXG59O1xyXG5cclxuY29uc3QgYWRkUmVzdHMgPSBhc3luYyAoc3RhdGU6IFNtZFN0YXRlKSA9PiB7XHJcbiAgaWYgKHN0YXRlLnJlc3RzLm5vU3RyZWV0TmFtZVNjaG9vbC5pem8pIHtcclxuICAgIGF3YWl0IGFkZFJlc3RXaXRoTm9TdHJlZXROYW1lVG9TY2hvb2woXHJcbiAgICAgIHN0YXRlLnJlc3RzLm5vU3RyZWV0TmFtZVNjaG9vbC5saW5lTnVtYmVyLFxyXG4gICAgICBzdGF0ZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlmIChzdGF0ZS5yZXN0cy53aG9sZU11bmljaXBhbGl0eVNjaG9vbC5pem8pIHtcclxuICAgIGF3YWl0IGFkZFJlc3RPZk11bmljaXBhbGl0eShcclxuICAgICAgc3RhdGUucmVzdHMud2hvbGVNdW5pY2lwYWxpdHlTY2hvb2wubGluZU51bWJlcixcclxuICAgICAgc3RhdGVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBmb3IgKGNvbnN0IHJlc3Qgb2Ygc3RhdGUucmVzdHMubXVuaWNpcGFsaXR5UGFydHMpIHtcclxuICAgIGF3YWl0IGFkZFJlc3RPZk11bmljaXBhbGl0eVBhcnQoXHJcbiAgICAgIHN0YXRlLFxyXG4gICAgICByZXN0Lm11bmljaXBhbGl0eVBhcnRDb2RlLFxyXG4gICAgICByZXN0LnNjaG9vbEl6byxcclxuICAgICAgcmVzdC5saW5lTnVtYmVyXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaWYgKHN0YXRlLnJlc3RzLmluY2x1ZGVVbm1hcHBlZEFkZHJlc3NQb2ludHMpIHtcclxuICAgIGF3YWl0IGFkZFJlc3RPZk11bmljaXBhbGl0eVRvVW5tYXBwZWRQb2ludHMoc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGUucmVzdHMubm9TdHJlZXROYW1lU2Nob29sLml6byA9IG51bGw7XHJcbiAgc3RhdGUucmVzdHMud2hvbGVNdW5pY2lwYWxpdHlTY2hvb2wuaXpvID0gbnVsbDtcclxuICBzdGF0ZS5yZXN0cy5tdW5pY2lwYWxpdHlQYXJ0cyA9IFtdO1xyXG59O1xyXG5cclxuY29uc3QgYWRkUmVzdFdpdGhOb1N0cmVldE5hbWVUb1NjaG9vbCA9IGFzeW5jIChcclxuICBsaW5lTnVtYmVyOiBudW1iZXIsXHJcbiAgc3RhdGU6IFNtZFN0YXRlXHJcbikgPT4ge1xyXG4gIC8vIGdldCBhbGwgYWRkcmVzcyBwb2ludHMgd2l0aG91dCBzdHJlZXQgbmFtZSBmb3IgY3VycmVudCBtdW5pY2lwYWxpdHlcclxuICBjb25zdCBwb2ludHNOb1N0cmVldE5hbWUgPSBhd2FpdCBmaW5kQWRkcmVzc1BvaW50cyh7XHJcbiAgICB0eXBlOiBcIndob2xlTXVuaWNpcGFsaXR5Tm9TdHJlZXROYW1lXCIsXHJcbiAgICBtdW5pY2lwYWxpdHk6IHtcclxuICAgICAgY29kZTogc3RhdGUuY3VycmVudE11bmljaXBhbGl0eS5mb3VuZGVyLm11bmljaXBhbGl0eUNvZGUsXHJcbiAgICAgIHR5cGU6IHN0YXRlLmN1cnJlbnRNdW5pY2lwYWxpdHkuZm91bmRlci5tdW5pY2lwYWxpdHlUeXBlLFxyXG4gICAgfSxcclxuICB9KTtcclxuICBhZGRSZXN0VG9TY2hvb2woXHJcbiAgICBwb2ludHNOb1N0cmVldE5hbWUsXHJcbiAgICBzdGF0ZS5yZXN0cy5ub1N0cmVldE5hbWVTY2hvb2wuaXpvLFxyXG4gICAgbGluZU51bWJlcixcclxuICAgIHN0YXRlXHJcbiAgKTtcclxufTtcclxuXHJcbmNvbnN0IGFkZFJlc3RPZk11bmljaXBhbGl0eSA9IGFzeW5jIChsaW5lTnVtYmVyOiBudW1iZXIsIHN0YXRlOiBTbWRTdGF0ZSkgPT4ge1xyXG4gIGFkZFJlc3RUb1NjaG9vbChcclxuICAgIGF3YWl0IGdldFJlc3RPZk11bmljaXBhbGl0eShzdGF0ZSksXHJcbiAgICBzdGF0ZS5yZXN0cy53aG9sZU11bmljaXBhbGl0eVNjaG9vbC5pem8sXHJcbiAgICBsaW5lTnVtYmVyLFxyXG4gICAgc3RhdGVcclxuICApO1xyXG59O1xyXG5cclxuY29uc3QgYWRkUmVzdE9mTXVuaWNpcGFsaXR5VG9Vbm1hcHBlZFBvaW50cyA9IGFzeW5jIChzdGF0ZTogU21kU3RhdGUpID0+IHtcclxuICBzdGF0ZS5jdXJyZW50TXVuaWNpcGFsaXR5LnVubWFwcGVkUG9pbnRzID0gKFxyXG4gICAgYXdhaXQgZ2V0UmVzdE9mTXVuaWNpcGFsaXR5KHN0YXRlKVxyXG4gICkubWFwKChwb2ludCkgPT4gbWFwQWRkcmVzc1BvaW50Rm9yRXhwb3J0KHBvaW50KSk7XHJcbn07XHJcblxyXG5jb25zdCBnZXRSZXN0T2ZNdW5pY2lwYWxpdHkgPSBhc3luYyAoXHJcbiAgc3RhdGU6IFNtZFN0YXRlXHJcbik6IFByb21pc2U8QWRkcmVzc1BvaW50W10+ID0+IHtcclxuICBpZiAoc3RhdGUuY3VycmVudE11bmljaXBhbGl0eS53aG9sZU11bmljaXBhbGl0eVBvaW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG5cclxuICAvLyBnZXQgYWxsIGFkZHJlc3MgcG9pbnRzIGZvciBjdXJyZW50IG11bmljaXBhbGl0eVxyXG4gIGNvbnN0IGFsbFBvaW50cyA9IGF3YWl0IGZpbmRBZGRyZXNzUG9pbnRzKHtcclxuICAgIHR5cGU6IFwid2hvbGVNdW5pY2lwYWxpdHlcIixcclxuICAgIG11bmljaXBhbGl0eToge1xyXG4gICAgICBjb2RlOiBzdGF0ZS5jdXJyZW50TXVuaWNpcGFsaXR5LmZvdW5kZXIubXVuaWNpcGFsaXR5Q29kZSxcclxuICAgICAgdHlwZTogc3RhdGUuY3VycmVudE11bmljaXBhbGl0eS5mb3VuZGVyLm11bmljaXBhbGl0eVR5cGUsXHJcbiAgICB9LFxyXG4gIH0pO1xyXG5cclxuICAvLyBmaWx0ZXIgb3V0IGFkZHJlc3MgcG9pbnRzIGFscmVhZHkgcHJlc2VudFxyXG4gIGNvbnN0IGFkZHJlc3NQb2ludHNJZHMgPSBnZXRBbGxBZGRyZXNzUG9pbnRzSWRzKHN0YXRlLmN1cnJlbnRNdW5pY2lwYWxpdHkpO1xyXG4gIHJldHVybiBhbGxQb2ludHMuZmlsdGVyKChwb2ludCkgPT4gIWFkZHJlc3NQb2ludHNJZHMuaGFzKHBvaW50LmlkKSk7XHJcbn07XHJcblxyXG5jb25zdCBhZGRSZXN0T2ZNdW5pY2lwYWxpdHlQYXJ0ID0gYXN5bmMgKFxyXG4gIHN0YXRlOiBTbWRTdGF0ZSxcclxuICBtdW5pY2lwYWxpdHlQYXJ0Q29kZTogbnVtYmVyLFxyXG4gIHNjaG9vbEl6bzogc3RyaW5nLFxyXG4gIGxpbmVOdW1iZXI6IG51bWJlclxyXG4pID0+IHtcclxuICAvLyBnZXQgYWxsIGFkZHJlc3MgcG9pbnRzIGZvciBjdXJyZW50IG11bmljaXBhbGl0eVxyXG4gIGNvbnN0IGFsbFBvaW50cyA9IGF3YWl0IGZpbmRBZGRyZXNzUG9pbnRzKHtcclxuICAgIHR5cGU6IFwid2hvbGVNdW5pY2lwYWxpdHlQYXJ0XCIsXHJcbiAgICBtdW5pY2lwYWxpdHlQYXJ0Q29kZSxcclxuICB9KTtcclxuICBhZGRSZXN0VG9TY2hvb2woYWxsUG9pbnRzLCBzY2hvb2xJem8sIGxpbmVOdW1iZXIsIHN0YXRlKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXROZXdNdW5pY2lwYWxpdHlCeU5hbWUgPSBhc3luYyAoXHJcbiAgbmFtZTogc3RyaW5nXHJcbik6IFByb21pc2U8SW50ZXJtZWRpYXRlTXVuaWNpcGFsaXR5UmVzdWx0PiA9PiB7XHJcbiAgY29uc3QgeyBmb3VuZGVyLCBlcnJvcnMgfSA9IGF3YWl0IGZpbmRGb3VuZGVyKG5hbWUpO1xyXG4gIHJldHVybiBnZXROZXdNdW5pY2lwYWxpdHkoZm91bmRlciwgZXJyb3JzKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXROZXdNdW5pY2lwYWxpdHlCeUZvdW5kZXJJZCA9IGFzeW5jIChcclxuICBmb3VuZGVySWQ6IG51bWJlclxyXG4pOiBQcm9taXNlPEludGVybWVkaWF0ZU11bmljaXBhbGl0eVJlc3VsdD4gPT4ge1xyXG4gIGNvbnN0IHsgZm91bmRlciwgZXJyb3JzIH0gPSBhd2FpdCBnZXRGb3VuZGVyQnlJZChmb3VuZGVySWQpO1xyXG4gIHJldHVybiBnZXROZXdNdW5pY2lwYWxpdHkoZm91bmRlciwgZXJyb3JzKTtcclxufTtcclxuXHJcbmNvbnN0IGdldE5ld011bmljaXBhbGl0eSA9IChcclxuICBmb3VuZGVyOiBGb3VuZGVyLFxyXG4gIGVycm9yczogU21kRXJyb3JbXVxyXG4pOiBJbnRlcm1lZGlhdGVNdW5pY2lwYWxpdHlSZXN1bHQgPT4gKHtcclxuICBtdW5pY2lwYWxpdHk6IHtcclxuICAgIG11bmljaXBhbGl0eU5hbWU6IGZvdW5kZXIgPyBmb3VuZGVyLm5hbWUgOiBcIk5lem7DoW3DoSBvYmVjXCIsXHJcbiAgICBmb3VuZGVyLFxyXG4gICAgc2Nob29sczogW10sXHJcbiAgICBjb2RlOiBmb3VuZGVyID8gZm91bmRlci5tdW5pY2lwYWxpdHlDb2RlIDogMCxcclxuICAgIG11bmljaXBhbGl0eVR5cGU6XHJcbiAgICAgIGZvdW5kZXIubXVuaWNpcGFsaXR5VHlwZSA9PT0gTXVuaWNpcGFsaXR5VHlwZS5DaXR5ID8gXCJjaXR5XCIgOiBcImRpc3RyaWN0XCIsXHJcbiAgICBjaXR5Q29kZXM6XHJcbiAgICAgIGZvdW5kZXIubXVuaWNpcGFsaXR5VHlwZSA9PT0gTXVuaWNpcGFsaXR5VHlwZS5DaXR5XHJcbiAgICAgICAgPyBbZm91bmRlci5tdW5pY2lwYWxpdHlDb2RlXVxyXG4gICAgICAgIDogW10sXHJcbiAgICBkaXN0cmljdENvZGVzOlxyXG4gICAgICBmb3VuZGVyLm11bmljaXBhbGl0eVR5cGUgPT09IE11bmljaXBhbGl0eVR5cGUuRGlzdHJpY3RcclxuICAgICAgICA/IFtmb3VuZGVyLm11bmljaXBhbGl0eUNvZGVdXHJcbiAgICAgICAgOiBbXSxcclxuICAgIHdob2xlTXVuaWNpcGFsaXR5UG9pbnRzOiBbXSxcclxuICAgIHVubWFwcGVkUG9pbnRzOiBbXSxcclxuICB9LFxyXG4gIGVycm9ycyxcclxufSk7XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0TmV3U2Nob29sID0gYXN5bmMgKFxyXG4gIG5hbWU6IHN0cmluZyxcclxuICBmb3VuZGVyOiBGb3VuZGVyIHwgbnVsbCxcclxuICBsaW5lTnVtYmVyOiBudW1iZXIsXHJcbiAgb25FcnJvcjogKHBhcmFtczogRXJyb3JDYWxsYmFja1BhcmFtcykgPT4gdm9pZFxyXG4pOiBQcm9taXNlPEludGVybWVkaWF0ZVNjaG9vbD4gPT4ge1xyXG4gIGxldCBleHBvcnRTY2hvb2w6IFNjaG9vbCA9IHtcclxuICAgIG5hbWUsXHJcbiAgICBpem86IFwiXCIsXHJcbiAgICBpc1dob2xlTXVuaWNpcGFsaXR5OiBmYWxzZSxcclxuICAgIGFkZHJlc3NlczogW10sXHJcbiAgfTtcclxuICBpZiAoZm91bmRlciAhPT0gbnVsbCkge1xyXG4gICAgY29uc3QgeyBzY2hvb2wsIGVycm9ycyB9ID0gZmluZFNjaG9vbChuYW1lLCBmb3VuZGVyLnNjaG9vbHMpO1xyXG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIG9uRXJyb3IoeyBsaW5lTnVtYmVyLCBsaW5lOiBuYW1lLCBlcnJvcnMgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoc2Nob29sKSB7XHJcbiAgICAgIGV4cG9ydFNjaG9vbC5uYW1lID0gc2Nob29sLm5hbWU7XHJcbiAgICAgIGV4cG9ydFNjaG9vbC5pem8gPSBzY2hvb2wuaXpvIHx8IFwiXCI7XHJcbiAgICAgIGlmIChzY2hvb2wubG9jYXRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGF3YWl0IGdldEFkZHJlc3NQb2ludEJ5SWQoXHJcbiAgICAgICAgICBzY2hvb2wubG9jYXRpb25zWzBdLmFkZHJlc3NQb2ludElkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAocG9zaXRpb24gIT09IG51bGwpIHtcclxuICAgICAgICAgIGV4cG9ydFNjaG9vbC5wb3NpdGlvbiA9IG1hcEFkZHJlc3NQb2ludEZvckV4cG9ydChwb3NpdGlvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB7IC4uLmV4cG9ydFNjaG9vbCwgYWRkcmVzc01hcDogbmV3IE1hcDxudW1iZXIsIEV4cG9ydEFkZHJlc3NQb2ludD4oKSB9O1xyXG59O1xyXG5cclxuY29uc3QgZ2V0QWxsQWRkcmVzc1BvaW50c0lkcyA9IChcclxuICBtdW5pY2lwYWxpdHk6IEludGVybWVkaWF0ZU11bmljaXBhbGl0eVxyXG4pOiBTZXQ8bnVtYmVyPiA9PiB7XHJcbiAgY29uc3QgYWRkcmVzc1BvaW50c0lkcyA9IG5ldyBTZXQ8bnVtYmVyPigpO1xyXG5cclxuICBmb3IgKGNvbnN0IHNjaG9vbCBvZiBtdW5pY2lwYWxpdHkuc2Nob29scykge1xyXG4gICAgZm9yIChjb25zdCBpZCBvZiBzY2hvb2wuYWRkcmVzc01hcC5rZXlzKCkpIHtcclxuICAgICAgYWRkcmVzc1BvaW50c0lkcy5hZGQoaWQpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYWRkcmVzc1BvaW50c0lkcztcclxufTtcclxuXHJcbmNvbnN0IG1hcEFkZHJlc3NQb2ludEZvckV4cG9ydCA9IChcclxuICBhZGRyZXNzUG9pbnQ6IEFkZHJlc3NQb2ludCB8IEV4cG9ydEFkZHJlc3NQb2ludCxcclxuICBsaW5lTnVtYmVyPzogbnVtYmVyLFxyXG4gIG11bmljaXBhbGl0eUNvZGU/OiBudW1iZXJcclxuKTogRXhwb3J0QWRkcmVzc1BvaW50ID0+IHtcclxuICByZXR1cm4ge1xyXG4gICAgYWRkcmVzczogYWRkcmVzc1BvaW50LmFkZHJlc3MsXHJcbiAgICBsYXQ6IHJvdW5kVG9ORGVjaW1hbFBsYWNlcyhhZGRyZXNzUG9pbnQubGF0LCA2KSxcclxuICAgIGxuZzogcm91bmRUb05EZWNpbWFsUGxhY2VzKGFkZHJlc3NQb2ludC5sbmcsIDYpLFxyXG4gICAgLi4uKGxpbmVOdW1iZXIgIT09IHVuZGVmaW5lZCA/IHsgbGluZU51bWJlcnM6IFtsaW5lTnVtYmVyIC0gMV0gfSA6IHt9KSxcclxuICAgIC4uLihtdW5pY2lwYWxpdHlDb2RlICE9PSB1bmRlZmluZWQgPyB7IG11bmljaXBhbGl0eUNvZGUgfSA6IHt9KSxcclxuICB9O1xyXG59O1xyXG5cclxuY29uc3QgbWFwU2Nob29sRm9yRXhwb3J0ID0gKFxyXG4gIHNjaG9vbDogSW50ZXJtZWRpYXRlU2Nob29sXHJcbik6IEludGVybWVkaWF0ZVNjaG9vbCA9PiAoe1xyXG4gIC4uLnNjaG9vbCxcclxuICBwb3NpdGlvbjogc2Nob29sLnBvc2l0aW9uID8gbWFwQWRkcmVzc1BvaW50Rm9yRXhwb3J0KHNjaG9vbC5wb3NpdGlvbikgOiBudWxsLFxyXG59KTtcclxuXHJcbmNvbnN0IGNsZWFuTGluZSA9IChsaW5lOiBzdHJpbmcpID0+IHtcclxuICByZXR1cm4gbGluZS50cmltKCkucmVwbGFjZSgv4oCTL2csIFwiLVwiKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB3aG9sZUxpbmVFcnJvciA9IChtZXNzYWdlOiBzdHJpbmcsIGxpbmU6IHN0cmluZyk6IFNtZEVycm9yID0+ICh7XHJcbiAgbWVzc2FnZSxcclxuICBzdGFydE9mZnNldDogMCxcclxuICBlbmRPZmZzZXQ6IGxpbmUubGVuZ3RoICsgMSxcclxufSk7XHJcblxyXG5jb25zdCByb3VuZFRvTkRlY2ltYWxQbGFjZXMgPSAoXHJcbiAgdG9Sb3VuZDogbnVtYmVyLFxyXG4gIGRlY2ltYWxQbGFjZXM6IG51bWJlclxyXG4pOiBudW1iZXIgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICBNYXRoLnJvdW5kKHRvUm91bmQgKiBNYXRoLnBvdygxMCwgZGVjaW1hbFBsYWNlcykpIC9cclxuICAgIE1hdGgucG93KDEwLCBkZWNpbWFsUGxhY2VzKVxyXG4gICk7XHJcbn07XHJcbiJdfQ==
|
|
@@ -165,3 +165,4 @@ smdTokens.forEach((tokenType) => {
|
|
|
165
165
|
tokenVocabulary[tokenType.name] = tokenType;
|
|
166
166
|
});
|
|
167
167
|
export { MainSeparator, Separator, OddType, EvenType, DescriptiveType, AllType, Number, From, To, AndAbove, AndBelow, Without, Hyphen, Slash, Space, StreetName, MunicipalityPartName, smdTokens, tokenVocabulary, };
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJlZXQtbWFya2Rvd24vdG9rZW4tZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBbUIsTUFBTSxZQUFZLENBQUM7QUFFakUsSUFBSSxjQUFjLEdBQUcsS0FBSyxDQUFDO0FBRTNCLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFTLEVBQUU7SUFDeEMsY0FBYyxHQUFHLEtBQUssQ0FBQztBQUN6QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUMxQyxPQUFPLElBQUk7U0FDUixPQUFPLENBQUMsNkJBQTZCLEVBQUUsT0FBTyxDQUFDO1NBQy9DLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO1NBQ2xCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDO0FBRUYsNEZBQTRGO0FBQzVGLHNEQUFzRDtBQUN0RCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLE9BQWUsRUFDa0QsRUFBRTtJQUNuRSxNQUFNLGFBQWEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0MsT0FBTyxDQUFDLElBQVksRUFBRSxXQUFtQixFQUEwQixFQUFFO1FBQ25FLElBQUksY0FBYyxFQUFFO1lBQ2xCLGFBQWEsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO1lBQ3RDLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUc7SUFDeEIsT0FBTztJQUNQLE1BQU07SUFDTixJQUFJO0lB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OUIsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUM7QUFDOUMsQ0FBQyxDQUFDLENBQUM7QUFFSCxPQUFPLEVBQ0wsYUFBYSxFQUNiLFNBQVMsRUFDVCxPQUFPLEVBQ1AsUUFBUSxFQUNSLGVBQWUsRUFDZixPQUFPLEVBQ1AsTUFBTSxFQUNOLElBQUksRUFDSixFQUFFLEVBQ0YsUUFBUSxFQUNSLFFBQVEsRUFDUixPQUFPLEVBQ1AsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixTQUFTLEVBQ1QsZUFBZSxHQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlVG9rZW4sIExleGVyLCBUb2tlblZvY2FidWxhcnkgfSBmcm9tIFwiY2hldnJvdGFpblwiO1xyXG5cclxubGV0IG5hbWVXYXNNYXRjaGVkID0gZmFsc2U7XHJcblxyXG5leHBvcnQgY29uc3QgcmVzZXRUb2tlblN0YXRlID0gKCk6IHZvaWQgPT4ge1xyXG4gIG5hbWVXYXNNYXRjaGVkID0gZmFsc2U7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgcHJlcGFyZUxpbmUgPSAodGV4dDogc3RyaW5nKSA9PiB7XHJcbiAgcmV0dXJuIHRleHRcclxuICAgIC5yZXBsYWNlKC8oW0lWWExDRE1dKykgLSAoW0lWWExDRE1dKykvLCBcIiQxLSQyXCIpXHJcbiAgICAucmVwbGFjZSgvOy9nLCBcIixcIilcclxuICAgIC5yZXBsYWNlKC8sJC8sIFwiXCIpO1xyXG59O1xyXG5cclxuLy8gdGhpcyBmdW5jdGlvbiBwcmV2ZW50cyBudW1iZXJzIHRoYXQgbWFrZSBwYXJ0IG9mIHRoZSBzdHJlZXQgbmFtZSB0byBiZSBtYXRjaGVkIGJlZm9yZSB0aGVcclxuLy8gc3RyZWV0L211bmljaXBhbGl0eSBwYXJ0IG5hbWUgaXMgY29tcGxldGVseSBtYXRjaGVkXHJcbmNvbnN0IHRva2VuQmxvY2tlckZhY3RvcnkgPSAoXHJcbiAgcGF0dGVybjogUmVnRXhwXHJcbik6ICgodGV4dDogc3RyaW5nLCBzdGFydE9mZnNldDogbnVtYmVyKSA9PiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsKSA9PiB7XHJcbiAgY29uc3Qgc3RpY2t5UGF0dGVybiA9IG5ldyBSZWdFeHAocGF0dGVybiwgXCJ5XCIpO1xyXG4gIHJldHVybiAodGV4dDogc3RyaW5nLCBzdGFydE9mZnNldDogbnVtYmVyKTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9PiB7XHJcbiAgICBpZiAobmFtZVdhc01hdGNoZWQpIHtcclxuICAgICAgc3RpY2t5UGF0dGVybi5sYXN0SW5kZXggPSBzdGFydE9mZnNldDtcclxuICAgICAgcmV0dXJuIHN0aWNreVBhdHRlcm4uZXhlYyh0ZXh0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH07XHJcbn07XHJcblxyXG5jb25zdCBpbnRlcnJ1cHRQYXR0ZXJucyA9IFtcclxuICBcImxpY2jDoVwiLFxyXG4gIFwic3Vkw6FcIixcclxuICBcIsSNLlwiLFxyXG4gIFwib2RcIixcclxuICBcImRvXCIsXHJcbiAgXCJwb3V6ZVwiLFxyXG4gIFwidsWhZWNobmFcIixcclxuICBcImJlelwiLFxyXG4gIFwidnlqbWFcIixcclxuICBcIm1pbW9cIixcclxuICBcInMgdsO9amlta291XCIsXHJcbiAgXCJrcm9txJtcIixcclxuXTtcclxuLy8gdGhpcyBwYXR0ZXJuIGFsbG93cyBhIHNpbmdsZSBzcGFjZSBvciBhIHNpbmdsZSBoeXBoZW4gKHdpdGhvdXQgYW4gYWRqYWNlbnQgc3BhY2UpIGJldHdlZW4gd29yZHNcclxuY29uc3Qgc3RyZWV0TmFtZVBhdHRlcm4gPSAvW14gLV0rKFsgLV0/W14gLV0rKSovO1xyXG5cclxuLy8gc2FtZSBidXQgd2l0aCBhIHByZWZpeCBvZiBtdW5pY2lwYWxpdHkgcGFydFxyXG5jb25zdCBtdW5pY2lwYWxpdHlQYXJ0TmFtZVBhdHRlcm4gPSAvxI3DoXN0IChvYmNlfG3Em3N0YSkgW14gLV0rKFsgLV0/W14gLV0rKSovO1xyXG5cclxuZXhwb3J0IGNvbnN0IG5hbWVNYXRjaGVyRmFjdG9yeSA9IChwYXR0ZXJuOiBSZWdFeHApID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgdGV4dDogc3RyaW5nLFxyXG4gICAgc3RhcnRPZmZzZXQ6IG51bWJlclxyXG4gICk6IFJlZ0V4cEV4ZWNBcnJheSB8IFtzdHJpbmddIHwgbnVsbCA9PiB7XHJcbiAgICBpZiAobmFtZVdhc01hdGNoZWQgfHwgc3RhcnRPZmZzZXQgPiAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gcGF0dGVybi5leGVjKHRleHQpO1xyXG4gICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7XHJcbiAgICAgICAgbmFtZVdhc01hdGNoZWQgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGZpcnN0SW5kZXggPSBpbnRlcnJ1cHRQYXR0ZXJucy5yZWR1Y2UoXHJcbiAgICAgICAgICAoY3VycmVudE1pbjogbnVtYmVyLCBwYXR0ZXJuOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0ZXh0LnNlYXJjaChuZXcgUmVnRXhwKGAgJHtwYXR0ZXJufSggfCQpYCkpO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXggPj0gMCA/IE1hdGgubWluKGluZGV4LCBjdXJyZW50TWluKSA6IGN1cnJlbnRNaW47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgSW5maW5pdHlcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChmaXJzdEluZGV4IDwgSW5maW5pdHkpIHtcclxuICAgICAgICAgIHJldHVybiBbcmVzdWx0WzBdLnN1YnN0cmluZygwLCBmaXJzdEluZGV4KS50cmltKCldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gIH07XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3Qgc3RyZWV0TmFtZU1hdGNoZXIgPSBuYW1lTWF0Y2hlckZhY3Rvcnkoc3RyZWV0TmFtZVBhdHRlcm4pO1xyXG5cclxuY29uc3QgTWFpblNlcGFyYXRvciA9IGNyZWF0ZVRva2VuKHsgbmFtZTogXCJNYWluU2VwYXJhdG9yXCIsIHBhdHRlcm46IC8gLSAvIH0pO1xyXG5jb25zdCBGcm9tID0gY3JlYXRlVG9rZW4oeyBuYW1lOiBcIkZyb21cIiwgcGF0dGVybjogL29kLyB9KTtcclxuY29uc3QgVG8gPSBjcmVhdGVUb2tlbih7IG5hbWU6IFwiVG9cIiwgcGF0dGVybjogL2RvLyB9KTtcclxuY29uc3QgQW5kQWJvdmUgPSBjcmVhdGVUb2tlbih7XHJcbiAgbmFtZTogXCJBbmRBYm92ZVwiLFxyXG4gIHBhdHRlcm46IC8gKGEgKT8odsO9xaFlP3x2ecWhxaHDrSkvLFxyXG59KTtcclxuY29uc3QgQW5kQmVsb3cgPSBjcmVhdGVUb2tlbih7XHJcbiAgbmFtZTogXCJBbmRCZWxvd1wiLFxyXG4gIHBhdHRlcm46IC8gYSAobsOtxb5lP3xuacW+xaHDrSkvLFxyXG59KTtcclxuY29uc3QgU2VwYXJhdG9yID0gY3JlYXRlVG9rZW4oe1xyXG4gIG5hbWU6IFwiU2VwYXJhdG9yXCIsXHJcbiAgcGF0dGVybjogLyx8IGEgLyxcclxuICBsb25nZXJfYWx0OiBbQW5kQWJvdmUsIEFuZEJlbG93XSxcclxufSk7XHJcbmNvbnN0IERlc2NyaXB0aXZlVHlwZSA9IGNyZWF0ZVRva2VuKHtcclxuICBuYW1lOiBcIkNQVHlwZVwiLFxyXG4gIHBhdHRlcm46IC8ocG91emUgfHbFoWVjaG5hICk/xI0uID9wLi8sXHJcbn0pO1xyXG5jb25zdCBBbGxUeXBlID0gY3JlYXRlVG9rZW4oe1xyXG4gIG5hbWU6IFwiQWxsVHlwZVwiLFxyXG4gIHBhdHRlcm46IC8ocG91emUgfHbFoWVjaG5hICk/KMSNKFxcLnzDrXNsYSkoID9vXFwuKT98bGljaMOhIGkgc3Vkw6EpLyxcclxuICBsb25nZXJfYWx0OiBEZXNjcmlwdGl2ZVR5cGUsXHJcbn0pO1xyXG5jb25zdCBPZGRUeXBlID0gY3JlYXRlVG9rZW4oe1xyXG4gIG5hbWU6IFwiT2RkVHlwZVwiLFxyXG4gIHBhdHRlcm46XHJcbiAgICAvKHBvdXplIHx2xaFlY2huYSApPyhsaWNoKFvDocOpXXzDvWNoKSggxI0oXFwufMOtc2xhKSk/KCA/b1xcLik/fMSNKFxcLnzDrXNsYSkoID9vXFwuKT8gbGljaFvDocOpXSkvLFxyXG4gIGxvbmdlcl9hbHQ6IEFsbFR5cGUsXHJcbn0pO1xyXG5jb25zdCBFdmVuVHlwZSA9IGNyZWF0ZVRva2VuKHtcclxuICBuYW1lOiBcIkV2ZW5UeXBlXCIsXHJcbiAgcGF0dGVybjpcclxuICAgIC8ocG91emUgfHbFoWVjaG5hICk/KHN1ZChbw6HDqV18w71jaCkoIMSNKFxcLnzDrXNsYSkpPyggP29cXC4pP3zEjShcXC58w61zbGEpKCA/b1xcLik/IHN1ZFvDocOpXSkvLFxyXG59KTtcclxuY29uc3QgV2l0aG91dCA9IGNyZWF0ZVRva2VuKHtcclxuICBuYW1lOiBcIldpdGhvdXRcIixcclxuICBwYXR0ZXJuOiAvYmV6fHZ5am1hfG1pbW98cyB2w71qaW1rb3V8a3JvbcSbLyxcclxufSk7XHJcbmNvbnN0IE11bmljaXBhbGl0eVBhcnROYW1lID0gY3JlYXRlVG9rZW4oe1xyXG4gIG5hbWU6IFwiTXVuaWNpcGFsaXR5UGFydE5hbWVcIixcclxuICBwYXR0ZXJuOiBuYW1lTWF0Y2hlckZhY3RvcnkobXVuaWNpcGFsaXR5UGFydE5hbWVQYXR0ZXJuKSxcclxufSk7XHJcbmNvbnN0IFN0cmVldE5hbWUgPSBjcmVhdGVUb2tlbih7XHJcbiAgbmFtZTogXCJTdHJlZXROYW1lXCIsXHJcbiAgcGF0dGVybjogbmFtZU1hdGNoZXJGYWN0b3J5KHN0cmVldE5hbWVQYXR0ZXJuKSxcclxufSk7XHJcblxyXG5jb25zdCBOdW1iZXIgPSBjcmVhdGVUb2tlbih7XHJcbiAgbmFtZTogXCJOdW1iZXJcIixcclxuICBwYXR0ZXJuOiB0b2tlbkJsb2NrZXJGYWN0b3J5KC9cXGQrW2EtekEtWl0/LyksXHJcbn0pO1xyXG5jb25zdCBIeXBoZW4gPSBjcmVhdGVUb2tlbih7IG5hbWU6IFwiSHlwaGVuXCIsIHBhdHRlcm46IC8tfGHFvi8gfSk7XHJcbmNvbnN0IFNsYXNoID0gY3JlYXRlVG9rZW4oeyBuYW1lOiBcIkh5cGhlblwiLCBwYXR0ZXJuOiAvXFwvLyB9KTtcclxuY29uc3QgU3BhY2UgPSBjcmVhdGVUb2tlbih7XHJcbiAgbmFtZTogXCJTcGFjZVwiLFxyXG4gIHBhdHRlcm46IC8gKy8sXHJcbiAgbG9uZ2VyX2FsdDogW01haW5TZXBhcmF0b3IsIFNlcGFyYXRvcl0sXHJcbiAgZ3JvdXA6IExleGVyLlNLSVBQRUQsXHJcbn0pO1xyXG4vLyBjb25zdCBDb2xvbiA9IGNyZWF0ZVRva2VuKHtcclxuLy8gICBuYW1lOiBcIkNvbG9uXCIsXHJcbi8vICAgcGF0dGVybjogLzovLFxyXG4vLyAgIGdyb3VwOiBMZXhlci5TS0lQUEVELFxyXG4vLyB9KTtcclxuXHJcbmNvbnN0IHNtZFRva2VucyA9IFtcclxuICBNYWluU2VwYXJhdG9yLFxyXG4gIFNlcGFyYXRvcixcclxuICBPZGRUeXBlLFxyXG4gIEV2ZW5UeXBlLFxyXG4gIERlc2NyaXB0aXZlVHlwZSxcclxuICBBbGxUeXBlLFxyXG4gIE51bWJlcixcclxuICBGcm9tLFxyXG4gIFRvLFxyXG4gIEFuZEFib3ZlLFxyXG4gIEFuZEJlbG93LFxyXG4gIFdpdGhvdXQsXHJcbiAgSHlwaGVuLFxyXG4gIFNsYXNoLFxyXG4gIFNwYWNlLFxyXG4gIC8vIENvbG9uLFxyXG4gIE11bmljaXBhbGl0eVBhcnROYW1lLFxyXG4gIFN0cmVldE5hbWUsXHJcbl07XHJcblxyXG5NYWluU2VwYXJhdG9yLkxBQkVMID0gXCInIC0gJ1wiO1xyXG5TZXBhcmF0b3IuTEFCRUwgPSBcIicsJ1wiO1xyXG5IeXBoZW4uTEFCRUwgPSBcIictJ1wiO1xyXG5TbGFzaC5MQUJFTCA9IFwiJy8nXCI7XHJcbkZyb20uTEFCRUwgPSBcIidvZCdcIjtcclxuVG8uTEFCRUwgPSBcIidkbydcIjtcclxuQW5kQWJvdmUuTEFCRUwgPSBcIidhIHbDvcWhZSdcIjtcclxuQW5kQmVsb3cuTEFCRUwgPSBcIidhIG7DrcW+ZSdcIjtcclxuU3BhY2UuTEFCRUwgPSBcIicgJ1wiO1xyXG5PZGRUeXBlLkxBQkVMID0gXCInbGljaMOhIMSNLidcIjtcclxuRXZlblR5cGUuTEFCRUwgPSBcIidzdWTDoSDEjS4nXCI7XHJcbkRlc2NyaXB0aXZlVHlwZS5MQUJFTCA9IFwiJ8SNLiBwLidcIjtcclxuQWxsVHlwZS5MQUJFTCA9IFwiJ8SNLidcIjtcclxuV2l0aG91dC5MQUJFTCA9IFwiJ2JleidcIjtcclxuXHJcbmNvbnN0IHRva2VuVm9jYWJ1bGFyeTogVG9rZW5Wb2NhYnVsYXJ5ID0ge307XHJcblxyXG5zbWRUb2tlbnMuZm9yRWFjaCgodG9rZW5UeXBlKSA9PiB7XHJcbiAgdG9rZW5Wb2NhYnVsYXJ5W3Rva2VuVHlwZS5uYW1lXSA9IHRva2VuVHlwZTtcclxufSk7XHJcblxyXG5leHBvcnQge1xyXG4gIE1haW5TZXBhcmF0b3IsXHJcbiAgU2VwYXJhdG9yLFxyXG4gIE9kZFR5cGUsXHJcbiAgRXZlblR5cGUsXHJcbiAgRGVzY3JpcHRpdmVUeXBlLFxyXG4gIEFsbFR5cGUsXHJcbiAgTnVtYmVyLFxyXG4gIEZyb20sXHJcbiAgVG8sXHJcbiAgQW5kQWJvdmUsXHJcbiAgQW5kQmVsb3csXHJcbiAgV2l0aG91dCxcclxuICBIeXBoZW4sXHJcbiAgU2xhc2gsXHJcbiAgU3BhY2UsXHJcbiAgU3RyZWV0TmFtZSxcclxuICBNdW5pY2lwYWxpdHlQYXJ0TmFtZSxcclxuICBzbWRUb2tlbnMsXHJcbiAgdG9rZW5Wb2NhYnVsYXJ5LFxyXG59O1xyXG4iXX0=
|
|
@@ -54,12 +54,14 @@ export interface ExportAddressPoint {
|
|
|
54
54
|
lat: number;
|
|
55
55
|
lng: number;
|
|
56
56
|
lineNumbers?: number[];
|
|
57
|
+
municipalityCode?: number;
|
|
57
58
|
}
|
|
58
59
|
export declare const isAddressPoint: (something: AddressPoint | ExportAddressPoint) => something is AddressPoint;
|
|
59
60
|
export interface School {
|
|
60
61
|
name: string;
|
|
61
62
|
izo: string;
|
|
62
63
|
position?: AddressPoint | ExportAddressPoint;
|
|
64
|
+
isWholeMunicipality: boolean;
|
|
63
65
|
addresses: ExportAddressPoint[];
|
|
64
66
|
}
|
|
65
67
|
export interface IntermediateSchool extends School {
|
|
@@ -67,9 +69,12 @@ export interface IntermediateSchool extends School {
|
|
|
67
69
|
}
|
|
68
70
|
export interface Municipality {
|
|
69
71
|
municipalityName: string;
|
|
72
|
+
code: number;
|
|
73
|
+
municipalityType: "city" | "district";
|
|
70
74
|
cityCodes: number[];
|
|
71
75
|
districtCodes: number[];
|
|
72
76
|
schools: School[];
|
|
77
|
+
wholeMunicipalityPoints: ExportAddressPoint[];
|
|
73
78
|
unmappedPoints: ExportAddressPoint[];
|
|
74
79
|
}
|
|
75
80
|
export interface DbMunicipalityResult {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export const isSeriesSpecArray = (something) => Array.isArray(something);
|
|
2
2
|
export const isNegativeSeriesSpec = (something) => something.hasOwnProperty("negative");
|
|
3
|
-
export const isFullStreetNumber = (something) => something.hasOwnProperty("
|
|
4
|
-
export const isRange = (something) => !something.hasOwnProperty("
|
|
3
|
+
export const isFullStreetNumber = (something) => something.hasOwnProperty("orientationalNumber");
|
|
4
|
+
export const isRange = (something) => !something.hasOwnProperty("orientationalNumber");
|
|
5
5
|
export var SeriesType;
|
|
6
6
|
(function (SeriesType) {
|
|
7
7
|
SeriesType[SeriesType["Even"] = 0] = "Even";
|
|
@@ -10,3 +10,4 @@ export var SeriesType;
|
|
|
10
10
|
SeriesType[SeriesType["Description"] = 3] = "Description";
|
|
11
11
|
})(SeriesType || (SeriesType = {}));
|
|
12
12
|
export const isAddressPoint = (something) => something.hasOwnProperty("id");
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RyZWV0LW1hcmtkb3duL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1DQSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixTQUE0QyxFQUNqQixFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUV6RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUNsQyxTQUE0QyxFQUNqQixFQUFFLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQWlCckUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FDaEMsU0FBdUMsRUFDUixFQUFFLENBQ2pDLFNBQVMsQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FDckIsU0FBdUMsRUFDZixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFFOUUsTUFBTSxDQUFOLElBQVksVUFLWDtBQUxELFdBQVksVUFBVTtJQUNwQiwyQ0FBSSxDQUFBO0lBQ0oseUNBQUcsQ0FBQTtJQUNILHlDQUFHLENBQUE7SUFDSCx5REFBVyxDQUFBO0FBQ2IsQ0FBQyxFQUxXLFVBQVUsS0FBVixVQUFVLFFBS3JCO0FBa0JELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUM1QixTQUE0QyxFQUNqQixFQUFFLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkZHJlc3NQb2ludCBhcyBDemVjaEFkZHJlc3NQb2ludCB9IGZyb20gXCJjemVjaC1hZGRyZXNzXCI7XHJcbmltcG9ydCB7IE11bmljaXBhbGl0eSBhcyBEYk11bmljaXBhbGl0eSwgRm91bmRlciB9IGZyb20gXCIuLi9kYi90eXBlc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzZWRTbWRMaW5lcyB7XHJcbiAgc21kTGluZXM6IFNtZExpbmVbXTtcclxuICBlcnJvcnM6IFNtZEVycm9yW107XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFNtZExpbmVUeXBlID1cclxuICB8IFwic3RyZWV0XCJcclxuICB8IFwid2hvbGVNdW5pY2lwYWxpdHlMaW5lXCJcclxuICB8IFwibXVuaWNpcGFsaXR5U3dpdGNoXCJcclxuICB8IFwibXVuaWNpcGFsaXR5UGFydFwiO1xyXG5cclxuZXhwb3J0IHR5cGUgU21kTGluZSA9XHJcbiAgfCB7XHJcbiAgICAgIHR5cGU6IFwic3RyZWV0XCI7XHJcbiAgICAgIHN0cmVldDogc3RyaW5nO1xyXG4gICAgICBudW1iZXJTcGVjOiBTZXJpZXNTcGVjW10gfCBOZWdhdGl2ZVNlcmllc1NwZWM7XHJcbiAgICB9XHJcbiAgfCB7XHJcbiAgICAgIHR5cGU6IFwibXVuaWNpcGFsaXR5UGFydFwiO1xyXG4gICAgICBtdW5pY2lwYWxpdHlQYXJ0OiBzdHJpbmc7XHJcbiAgICAgIG51bWJlclNwZWM6IFNlcmllc1NwZWNbXSB8IE5lZ2F0aXZlU2VyaWVzU3BlYztcclxuICAgIH07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlcmllc1NwZWMge1xyXG4gIHR5cGU6IFNlcmllc1R5cGU7XHJcbiAgcmFuZ2VzOiAoUmFuZ2VTcGVjIHwgRnVsbFN0cmVldE51bWJlcilbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOZWdhdGl2ZVNlcmllc1NwZWMgZXh0ZW5kcyBTZXJpZXNTcGVjIHtcclxuICBuZWdhdGl2ZTogdHJ1ZTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGlzU2VyaWVzU3BlY0FycmF5ID0gKFxyXG4gIHNvbWV0aGluZzogU2VyaWVzU3BlY1tdIHwgTmVnYXRpdmVTZXJpZXNTcGVjXHJcbik6IHNvbWV0aGluZyBpcyBTZXJpZXNTcGVjW10gPT4gQXJyYXkuaXNBcnJheShzb21ldGhpbmcpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGlzTmVnYXRpdmVTZXJpZXNTcGVjID0gKFxyXG4gIHNvbWV0aGluZzogU2VyaWVzU3BlY1tdIHwgTmVnYXRpdmVTZXJpZXNTcGVjXHJcbik6IHNvbWV0aGluZyBpcyBTZXJpZXNTcGVjW10gPT4gc29tZXRoaW5nLmhhc093blByb3BlcnR5KFwibmVnYXRpdmVcIik7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlU3BlYyB7XHJcbiAgZnJvbT86IFJpY2hOdW1iZXI7XHJcbiAgdG8/OiBSaWNoTnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJpY2hOdW1iZXIge1xyXG4gIG51bWJlcjogbnVtYmVyO1xyXG4gIGxldHRlcj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGdWxsU3RyZWV0TnVtYmVyIHtcclxuICBkZXNjcmlwdGlvbk51bWJlcjogUmljaE51bWJlcjtcclxuICBvcmllbnRhdGlvbmFsTnVtYmVyOiBSaWNoTnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgaXNGdWxsU3RyZWV0TnVtYmVyID0gKFxyXG4gIHNvbWV0aGluZzogUmFuZ2VTcGVjIHwgRnVsbFN0cmVldE51bWJlclxyXG4pOiBzb21ldGhpbmcgaXMgRnVsbFN0cmVldE51bWJlciA9PlxyXG4gIHNvbWV0aGluZy5oYXNPd25Qcm9wZXJ0eShcIm9yaWVudGF0aW9uYWxOdW1iZXJcIik7XHJcblxyXG5leHBvcnQgY29uc3QgaXNSYW5nZSA9IChcclxuICBzb21ldGhpbmc6IFJhbmdlU3BlYyB8IEZ1bGxTdHJlZXROdW1iZXJcclxuKTogc29tZXRoaW5nIGlzIFJhbmdlU3BlYyA9PiAhc29tZXRoaW5nLmhhc093blByb3BlcnR5KFwib3JpZW50YXRpb25hbE51bWJlclwiKTtcclxuXHJcbmV4cG9ydCBlbnVtIFNlcmllc1R5cGUge1xyXG4gIEV2ZW4sXHJcbiAgT2RkLFxyXG4gIEFsbCxcclxuICBEZXNjcmlwdGlvbixcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBZGRyZXNzUG9pbnQgZXh0ZW5kcyBDemVjaEFkZHJlc3NQb2ludCB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBhZGRyZXNzOiBzdHJpbmc7XHJcbiAgbGF0OiBudW1iZXI7XHJcbiAgbG5nOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0QWRkcmVzc1BvaW50IHtcclxuICBhZGRyZXNzOiBzdHJpbmc7XHJcbiAgbGF0OiBudW1iZXI7XHJcbiAgbG5nOiBudW1iZXI7XHJcbiAgbGluZU51bWJlcnM/OiBudW1iZXJbXTtcclxuICAvLyBkZWZpbmVkIGlmIHRoZSBwb2ludCBpcyBpbiBhIGRpZmZlcmVudCBtdW5pY2lwYWxpdHksIGV4Y2VwdCBhIHdob2xlIG11bmljaXBhbGl0eSBmb3IgdGhlIHNhbWUgc2Nob29sXHJcbiAgbXVuaWNpcGFsaXR5Q29kZT86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGlzQWRkcmVzc1BvaW50ID0gKFxyXG4gIHNvbWV0aGluZzogQWRkcmVzc1BvaW50IHwgRXhwb3J0QWRkcmVzc1BvaW50XHJcbik6IHNvbWV0aGluZyBpcyBBZGRyZXNzUG9pbnQgPT4gc29tZXRoaW5nLmhhc093blByb3BlcnR5KFwiaWRcIik7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNjaG9vbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGl6bzogc3RyaW5nO1xyXG4gIHBvc2l0aW9uPzogQWRkcmVzc1BvaW50IHwgRXhwb3J0QWRkcmVzc1BvaW50O1xyXG4gIGlzV2hvbGVNdW5pY2lwYWxpdHk6IGJvb2xlYW47XHJcbiAgYWRkcmVzc2VzOiBFeHBvcnRBZGRyZXNzUG9pbnRbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbnRlcm1lZGlhdGVTY2hvb2wgZXh0ZW5kcyBTY2hvb2wge1xyXG4gIGFkZHJlc3NNYXA6IE1hcDxudW1iZXIsIEV4cG9ydEFkZHJlc3NQb2ludD47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTXVuaWNpcGFsaXR5IHtcclxuICBtdW5pY2lwYWxpdHlOYW1lOiBzdHJpbmc7XHJcbiAgY29kZTogbnVtYmVyO1xyXG4gIG11bmljaXBhbGl0eVR5cGU6IFwiY2l0eVwiIHwgXCJkaXN0cmljdFwiO1xyXG4gIGNpdHlDb2RlczogbnVtYmVyW107XHJcbiAgZGlzdHJpY3RDb2RlczogbnVtYmVyW107XHJcbiAgc2Nob29sczogU2Nob29sW107XHJcbiAgd2hvbGVNdW5pY2lwYWxpdHlQb2ludHM6IEV4cG9ydEFkZHJlc3NQb2ludFtdO1xyXG4gIHVubWFwcGVkUG9pbnRzOiBFeHBvcnRBZGRyZXNzUG9pbnRbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEYk11bmljaXBhbGl0eVJlc3VsdCB7XHJcbiAgbXVuaWNpcGFsaXR5OiBEYk11bmljaXBhbGl0eTtcclxuICBlcnJvcnM6IFNtZEVycm9yW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTXVuaWNpcGFsaXR5UGFydFJlc3VsdCB7XHJcbiAgbXVuaWNpcGFsaXR5UGFydENvZGU6IG51bWJlcjtcclxuICBlcnJvcnM6IFNtZEVycm9yW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTXVuaWNpcGFsaXR5V2l0aEZvdW5kZXIgZXh0ZW5kcyBNdW5pY2lwYWxpdHkge1xyXG4gIGZvdW5kZXI6IEZvdW5kZXIgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEludGVybWVkaWF0ZU11bmljaXBhbGl0eSBleHRlbmRzIE11bmljaXBhbGl0eVdpdGhGb3VuZGVyIHtcclxuICBzY2hvb2xzOiBJbnRlcm1lZGlhdGVTY2hvb2xbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbnRlcm1lZGlhdGVNdW5pY2lwYWxpdHlSZXN1bHQge1xyXG4gIG11bmljaXBhbGl0eTogSW50ZXJtZWRpYXRlTXVuaWNpcGFsaXR5O1xyXG4gIGVycm9yczogU21kRXJyb3JbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWRTdGF0ZSB7XHJcbiAgY3VycmVudE11bmljaXBhbGl0eTogSW50ZXJtZWRpYXRlTXVuaWNpcGFsaXR5O1xyXG4gIGN1cnJlbnRGaWx0ZXJNdW5pY2lwYWxpdHk6IERiTXVuaWNpcGFsaXR5O1xyXG4gIGN1cnJlbnRTY2hvb2w6IEludGVybWVkaWF0ZVNjaG9vbDtcclxuICByZXN0czoge1xyXG4gICAgbm9TdHJlZXROYW1lU2Nob29sOiB7XHJcbiAgICAgIGl6bzogc3RyaW5nO1xyXG4gICAgICBsaW5lTnVtYmVyOiBudW1iZXI7XHJcbiAgICB9O1xyXG4gICAgbXVuaWNpcGFsaXR5UGFydHM6IHtcclxuICAgICAgbXVuaWNpcGFsaXR5UGFydENvZGU6IG51bWJlcjtcclxuICAgICAgc2Nob29sSXpvOiBzdHJpbmc7XHJcbiAgICAgIGxpbmVOdW1iZXI6IG51bWJlcjtcclxuICAgIH1bXTtcclxuICAgIHdob2xlTXVuaWNpcGFsaXR5U2Nob29sOiB7XHJcbiAgICAgIGl6bzogc3RyaW5nO1xyXG4gICAgICBsaW5lTnVtYmVyOiBudW1iZXI7XHJcbiAgICB9O1xyXG4gICAgaW5jbHVkZVVubWFwcGVkQWRkcmVzc1BvaW50czogYm9vbGVhbjtcclxuICB9O1xyXG4gIGNpdHlDb2RlczogbnVtYmVyW107XHJcbiAgbXVuaWNpcGFsaXRpZXM6IE11bmljaXBhbGl0eVtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2Nlc3NMaW5lQ2FsbGJhY2tQYXJhbXMge1xyXG4gIGxpbmVOdW1iZXI6IG51bWJlcjtcclxuICBsaW5lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JDYWxsYmFja1BhcmFtcyBleHRlbmRzIFByb2Nlc3NMaW5lQ2FsbGJhY2tQYXJhbXMge1xyXG4gIGVycm9yczogU21kRXJyb3JbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzTGluZVBhcmFtcyB7XHJcbiAgbGluZTogc3RyaW5nO1xyXG4gIHN0YXRlOiBTbWRTdGF0ZTtcclxuICBsaW5lTnVtYmVyOiBudW1iZXI7XHJcbiAgb25FcnJvcjogKHBhcmFtczogRXJyb3JDYWxsYmFja1BhcmFtcykgPT4gdm9pZDtcclxuICBvbldhcm5pbmc6IChwYXJhbXM6IEVycm9yQ2FsbGJhY2tQYXJhbXMpID0+IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21kRXJyb3Ige1xyXG4gIHN0YXJ0T2Zmc2V0OiBudW1iZXI7XHJcbiAgZW5kT2Zmc2V0OiBudW1iZXI7XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
package/dist/utils/atom.js
CHANGED
|
@@ -63,3 +63,4 @@ export const getAllUrlsFromAtomFeed = (atomFeedUrl) => __awaiter(void 0, void 0,
|
|
|
63
63
|
throw new Error("Could not find any dataset feed link.");
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hdG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQ3RDLFdBQW1CLEVBQ0YsRUFBRTtJQUNuQixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0QyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7SUFFaEIsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtRQUMzQixNQUFNLElBQUksS0FBSyxDQUNiLDREQUE0RCxRQUFRLENBQUMsTUFBTSxFQUFFLENBQzlFLENBQUM7S0FDSDtJQUVELFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0lBQzFFLENBQUMsQ0FBQyxDQUFDO0lBRUgsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUU7UUFDeEIsSUFBSSxJQUFxQixDQUFDO1FBRTFCLElBQUksT0FBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUU7Z0JBQ3ZCLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNsQjtTQUNGO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRTFDLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtRQUNoQixPQUFPLElBQUksQ0FBQztLQUNiO1NBQU07UUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7S0FDMUQ7QUFDSCxDQUFDLENBQUEsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQ3BDLFdBQW1CLEVBQ0EsRUFBRTtJQUNyQixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0QyxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7SUFFM0IsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtRQUMzQixNQUFNLElBQUksS0FBSyxDQUNiLDREQUE0RCxRQUFRLENBQUMsTUFBTSxFQUFFLENBQzlFLENBQUM7S0FDSDtJQUVELFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0lBQzFFLENBQUMsQ0FBQyxDQUFDO0lBRUgsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUU7UUFDeEIsSUFBSSxJQUFxQixDQUFDO1FBRTFCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDM0IsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFMUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNwQixPQUFPLEtBQUssQ0FBQztLQUNkO1NBQU07UUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7S0FDMUQ7QUFDSCxDQUFDLENBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGZWVkUGFyc2VyIGZyb20gXCJmZWVkcGFyc2VyXCI7XHJcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiO1xyXG5pbXBvcnQgeyBwaXBlbGluZSB9IGZyb20gXCJzdHJlYW0vcHJvbWlzZXNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRMYXRlc3RVcmxGcm9tQXRvbUZlZWQgPSBhc3luYyAoXHJcbiAgYXRvbUZlZWRVcmw6IHN0cmluZ1xyXG4pOiBQcm9taXNlPHN0cmluZz4gPT4ge1xyXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYXRvbUZlZWRVcmwpO1xyXG4gIGNvbnN0IGZlZWRwYXJzZXIgPSBuZXcgRmVlZFBhcnNlcih7fSk7XHJcbiAgbGV0IGxpbmsgPSBudWxsO1xyXG5cclxuICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSAyMDApIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgYFRoZSBBdG9tIGZlZWQgZnJvbSBhdG9tLmN1emsuY3ogbm90IHdvcmtpbmcuIEhUVFAgc3RhdHVzICR7cmVzcG9uc2Uuc3RhdHVzfWBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBmZWVkcGFyc2VyLm9uKFwiZXJyb3JcIiwgKGVycm9yKSA9PiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBBdG9tIGZlZWQgZnJvbSBhdG9tLmN1emsuY3ogY291bGQgbm90IGJlIGxvYWRlZC5gKTtcclxuICB9KTtcclxuXHJcbiAgZmVlZHBhcnNlci5vbihcInJlYWRhYmxlXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgIGxldCBpdGVtOiBGZWVkUGFyc2VyLkl0ZW07XHJcblxyXG4gICAgbGV0IG1heERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgbWF4RGF0ZS5zZXRGdWxsWWVhcigxOTkwKTtcclxuICAgIHdoaWxlICgoaXRlbSA9IHRoaXMucmVhZCgpKSkge1xyXG4gICAgICBpZiAoaXRlbS5kYXRlID4gbWF4RGF0ZSkge1xyXG4gICAgICAgIG1heERhdGUgPSBpdGVtLmRhdGU7XHJcbiAgICAgICAgbGluayA9IGl0ZW0ubGluaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBhd2FpdCBwaXBlbGluZShyZXNwb25zZS5ib2R5LCBmZWVkcGFyc2VyKTtcclxuXHJcbiAgaWYgKGxpbmsgIT0gbnVsbCkge1xyXG4gICAgcmV0dXJuIGxpbms7XHJcbiAgfSBlbHNlIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBmaW5kIGFueSBkYXRhc2V0IGZlZWQgbGluay5cIik7XHJcbiAgfVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldEFsbFVybHNGcm9tQXRvbUZlZWQgPSBhc3luYyAoXHJcbiAgYXRvbUZlZWRVcmw6IHN0cmluZ1xyXG4pOiBQcm9taXNlPHN0cmluZ1tdPiA9PiB7XHJcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChhdG9tRmVlZFVybCk7XHJcbiAgY29uc3QgZmVlZHBhcnNlciA9IG5ldyBGZWVkUGFyc2VyKHt9KTtcclxuICBjb25zdCBsaW5rczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjAwKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgIGBUaGUgQXRvbSBmZWVkIGZyb20gYXRvbS5jdXprLmN6IG5vdCB3b3JraW5nLiBIVFRQIHN0YXR1cyAke3Jlc3BvbnNlLnN0YXR1c31gXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmVlZHBhcnNlci5vbihcImVycm9yXCIsIChlcnJvcikgPT4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgQXRvbSBmZWVkIGZyb20gYXRvbS5jdXprLmN6IGNvdWxkIG5vdCBiZSBsb2FkZWQuYCk7XHJcbiAgfSk7XHJcblxyXG4gIGZlZWRwYXJzZXIub24oXCJyZWFkYWJsZVwiLCBmdW5jdGlvbiAoKSB7XHJcbiAgICBsZXQgaXRlbTogRmVlZFBhcnNlci5JdGVtO1xyXG5cclxuICAgIHdoaWxlICgoaXRlbSA9IHRoaXMucmVhZCgpKSkge1xyXG4gICAgICBsaW5rcy5wdXNoKGl0ZW0ubGluayk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGF3YWl0IHBpcGVsaW5lKHJlc3BvbnNlLmJvZHksIGZlZWRwYXJzZXIpO1xyXG5cclxuICBpZiAobGlua3MubGVuZ3RoID4gMCkge1xyXG4gICAgcmV0dXJuIGxpbmtzO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgZmluZCBhbnkgZGF0YXNldCBmZWVkIGxpbmsuXCIpO1xyXG4gIH1cclxufTtcclxuIl19
|
package/dist/utils/helpers.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export interface OpenDataSyncOptions {
|
|
|
11
11
|
streetZipFolderName: string;
|
|
12
12
|
streetDbfFileName: string;
|
|
13
13
|
polygonShpFileName: string;
|
|
14
|
+
districtPolygonShpFileName: string;
|
|
15
|
+
districtPolygonDbfFileName: string;
|
|
14
16
|
schoolsXmlUrl: string;
|
|
15
17
|
schoolsXmlFileName: string;
|
|
16
18
|
regionsCsvUrl: string;
|
package/dist/utils/helpers.js
CHANGED
|
@@ -32,6 +32,8 @@ export const prepareOptions = (options) => {
|
|
|
32
32
|
streetZipFolderName: "streets",
|
|
33
33
|
streetDbfFileName: "UL_L.dbf",
|
|
34
34
|
polygonShpFileName: "OBEC_P.shp",
|
|
35
|
+
districtPolygonShpFileName: "MOMC_P.shp",
|
|
36
|
+
districtPolygonDbfFileName: "MOMC_P.dbf",
|
|
35
37
|
schoolsXmlUrl: "https://rejstriky.msmt.cz/opendata/vrejcelk.xml",
|
|
36
38
|
schoolsXmlFileName: "school-register.xml",
|
|
37
39
|
regionsCsvUrl: "https://www.czso.cz/documents/10180/23208674/struktura_uzemi_cr.csv",
|
|
@@ -162,3 +164,4 @@ const levenshteinDistance = (str1, str2) => {
|
|
|
162
164
|
}
|
|
163
165
|
return matrix[str2.length][str1.length];
|
|
164
166
|
};
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDNUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNwQyxPQUFPLEVBQVcsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEQsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDO0FBeUI5QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFXLEVBQUUsQ0FDNUMsSUFBSSxDQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTztJQUNqQixDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksUUFBUTtRQUMzQixDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsc0JBQXNCO1FBQzNDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxlQUFlLENBQUMsRUFDekMsT0FBTyxDQUNSLENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FDNUIsT0FBbUMsRUFDZCxFQUFFOztJQUN2QixNQUFNLE9BQU8sR0FBRyxNQUFBLE9BQU8sQ0FBQyxPQUFPLG1DQUFJLGlCQUFpQixFQUFFLENBQUM7SUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN4QixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDcEI7SUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsSUFBSSxDQUFDLFVBQVUsQ0FB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QUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDUixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7S0FDVCxDQUFDO0lBRUYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWpDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFM0IsSUFDRSxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7WUFDNUIscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUM1QztZQUNBLGtFQUFrRTtZQUNsRSxRQUFRLElBQUksR0FBRyxDQUFDO1NBQ2pCO0tBQ0Y7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQUMsSUFBWSxFQUFFLElBQVksRUFBVSxFQUFFO0lBQ2pFLE1BQU0sTUFBTSxHQUFlLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ1YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRWhELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3JDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbEI7SUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNyQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ2xCO0lBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDckMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQy9CLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNyQztpQkFBTTtnQkFDTCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNWLElBQUksQ0FBQyxHQUFHLENBQ04sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxXQUFXO29CQUM3QixNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVk7b0JBQzlCLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWU7cUJBQ3JDLEdBQUcsQ0FBQyxDQUFDO2FBQ1Q7U0FDRjtLQUNGO0lBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCBta2RpclN5bmMgfSBmcm9tIFwiZnNcIjtcclxuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSBcIm9zXCI7XHJcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tIFwicGF0aFwiO1xyXG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSBcInVybFwiO1xyXG5pbXBvcnQgeyBGb3VuZGVyLCBNdW5pY2lwYWxpdHlUeXBlIH0gZnJvbSBcIi4uL2RiL3R5cGVzXCI7XHJcblxyXG5jb25zdCBhcHBOYW1lID0gXCJ0ZXh0LXRvLW1hcFwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcGVuRGF0YVN5bmNPcHRpb25zIHtcclxuICB0bXBEaXI6IHN0cmluZztcclxuICBkYXRhRGlyOiBzdHJpbmc7XHJcbiAgZGJGaWxlUGF0aDogc3RyaW5nO1xyXG4gIGRiSW5pdEZpbGVQYXRoOiBzdHJpbmc7XHJcbiAgYWRkcmVzc1BvaW50c0F0b21Vcmw6IHN0cmluZztcclxuICBhZGRyZXNzUG9pbnRzWmlwRmlsZU5hbWU6IHN0cmluZztcclxuICBhZGRyZXNzUG9pbnRzQ3N2Rm9sZGVyTmFtZTogc3RyaW5nO1xyXG4gIHN0cmVldHNBdG9tVXJsOiBzdHJpbmc7XHJcbiAgc3RyZWV0WmlwRm9sZGVyTmFtZTogc3RyaW5nO1xyXG4gIHN0cmVldERiZkZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgcG9seWdvblNocEZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgZGlzdHJpY3RQb2x5Z29uU2hwRmlsZU5hbWU6IHN0cmluZztcclxuICBkaXN0cmljdFBvbHlnb25EYmZGaWxlTmFtZTogc3RyaW5nO1xyXG4gIHNjaG9vbHNYbWxVcmw6IHN0cmluZztcclxuICBzY2hvb2xzWG1sRmlsZU5hbWU6IHN0cmluZztcclxuICByZWdpb25zQ3N2VXJsOiBzdHJpbmc7XHJcbiAgcmVnaW9uc1NjaGVtYVVybDogc3RyaW5nO1xyXG4gIHJlZ2lvbnNDc3ZGaWxlTmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGVuRGF0YVN5bmNPcHRpb25zUGFydGlhbCA9IFBhcnRpYWw8T3BlbkRhdGFTeW5jT3B0aW9ucz47XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0QXBwRGF0YURpclBhdGggPSAoKTogc3RyaW5nID0+XHJcbiAgam9pbihcclxuICAgIHByb2Nlc3MuZW52LkFQUERBVEEgfHxcclxuICAgICAgKHByb2Nlc3MucGxhdGZvcm0gPT0gXCJkYXJ3aW5cIlxyXG4gICAgICAgID8gcHJvY2Vzcy5lbnYuSE9NRSArIFwiL0xpYnJhcnkvUHJlZmVyZW5jZXNcIlxyXG4gICAgICAgIDogcHJvY2Vzcy5lbnYuSE9NRSArIFwiLy5sb2NhbC9zaGFyZVwiKSxcclxuICAgIGFwcE5hbWVcclxuICApO1xyXG5cclxuZXhwb3J0IGNvbnN0IHByZXBhcmVPcHRpb25zID0gKFxyXG4gIG9wdGlvbnM6IE9wZW5EYXRhU3luY09wdGlvbnNQYXJ0aWFsXHJcbik6IE9wZW5EYXRhU3luY09wdGlvbnMgPT4ge1xyXG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXIgPz8gZ2V0QXBwRGF0YURpclBhdGgoKTtcclxuICBpZiAoIWV4aXN0c1N5bmMoZGF0YURpcikpIHtcclxuICAgIG1rZGlyU3luYyhkYXRhRGlyKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHRtcEFwcERpciA9IGpvaW4odG1wZGlyKCksIGFwcE5hbWUpO1xyXG4gIGlmICghZXhpc3RzU3luYyh0bXBBcHBEaXIpKSB7XHJcbiAgICBta2RpclN5bmModG1wQXBwRGlyKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IF9fZmlsZW5hbWUgPSBmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCk7XHJcbiAgY29uc3QgX19kaXJuYW1lID0gZGlybmFtZShfX2ZpbGVuYW1lKTtcclxuXHJcbiAgY29uc3QgZGVmYXVsdHM6IE9wZW5EYXRhU3luY09wdGlvbnMgPSB7XHJcbiAgICB0bXBEaXI6IHRtcEFwcERpcixcclxuICAgIGRhdGFEaXI6IGRhdGFEaXIsXHJcbiAgICBkYkZpbGVQYXRoOiBqb2luKGRhdGFEaXIsIFwiYWRkcmVzc19wb2ludHMuZGJcIiksXHJcbiAgICBkYkluaXRGaWxlUGF0aDogam9pbihfX2Rpcm5hbWUsIFwiLi5cIiwgXCJhZGRyZXNzX3BvaW50c19pbml0LmRiXCIpLFxyXG4gICAgYWRkcmVzc1BvaW50c0F0b21Vcmw6XHJcbiAgICAgIFwiaHR0cHM6Ly9hdG9tLmN1emsuY3ovUlVJQU4tQ1NWLUFEUi1TVC9SVUlBTi1DU1YtQURSLVNULnhtbFwiLFxyXG4gICAgYWRkcmVzc1BvaW50c1ppcEZpbGVOYW1lOiBcInJ1aWFuX2Nzdi56aXBcIixcclxuICAgIGFkZHJlc3NQb2ludHNDc3ZGb2xkZXJOYW1lOiBcIkNTVlwiLFxyXG4gICAgc3RyZWV0c0F0b21Vcmw6IFwiaHR0cHM6Ly9hdG9tLmN1emsuY3ovUlVJQU4tT0JDRS1TSFAvUlVJQU4tT0JDRS1TSFAueG1sXCIsXHJcbiAgICBzdHJlZXRaaXBGb2xkZXJOYW1lOiBcInN0cmVldHNcIixcclxuICAgIHN0cmVldERiZkZpbGVOYW1lOiBcIlVMX0wuZGJmXCIsXHJcbiAgICBwb2x5Z29uU2hwRmlsZU5hbWU6IFwiT0JFQ19QLnNocFwiLFxyXG4gICAgZGlzdHJpY3RQb2x5Z29uU2hwRmlsZU5hbWU6IFwiTU9NQ19QLnNocFwiLFxyXG4gICAgZGlzdHJpY3RQb2x5Z29uRGJmRmlsZU5hbWU6IFwiTU9NQ19QLmRiZlwiLFxyXG4gICAgc2Nob29sc1htbFVybDogXCJodHRwczovL3JlanN0cmlreS5tc210LmN6L29wZW5kYXRhL3ZyZWpjZWxrLnhtbFwiLFxyXG4gICAgc2Nob29sc1htbEZpbGVOYW1lOiBcInNjaG9vbC1yZWdpc3Rlci54bWxcIixcclxuICAgIHJlZ2lvbnNDc3ZVcmw6XHJcbiAgICAgIFwiaHR0cHM6Ly93d3cuY3pzby5jei9kb2N1bWVudHMvMTAxODAvMjMyMDg2NzQvc3RydWt0dXJhX3V6ZW1pX2NyLmNzdlwiLFxyXG4gICAgcmVnaW9uc1NjaGVtYVVybDpcclxuICAgICAgXCJodHRwczovL3d3dy5jenNvLmN6L2RvY3VtZW50cy8xMDE4MC8yMzIwODY3NC9zdHJ1a3R1cmFfdXplbWlfY3ItbWV0YWRhdGEuanNvblwiLFxyXG4gICAgcmVnaW9uc0NzdkZpbGVOYW1lOiBcInN0cnVrdHVyYV91emVtaV9jci5jc3ZcIixcclxuICB9O1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgLi4uZGVmYXVsdHMsXHJcbiAgICAuLi5vcHRpb25zLFxyXG4gIH07XHJcbn07XHJcblxyXG5jb25zdCBjaXR5UGF0dGVybnMgPSBbXHJcbiAgL15bc1NddGF0dXTDoXJuw60gbcSbc3RvICsoLiopJC8sXHJcbiAgL15bb09dYmVjICsoLiopJC8sXHJcbiAgL15bbU1dxJtzdG8gKyguKikkLyxcclxuICAvXlttTV3Em3N0eXMgKyguKikkLyxcclxuXTtcclxuXHJcbmNvbnN0IGRpc3RyaWN0UGF0dGVybnMgPSBbXHJcbiAgL15bbU1dxJtzdHNrw6EgxI3DoXN0ICsoLiopJC8sXHJcbiAgL15bbU1dxJtzdHNrw70gb2J2b2QgKyguKikkLyxcclxuICAvXltzU110YXR1dMOhcm7DrSBtxJtzdG8gKy4qLCBbbU1dxJtzdHNrw6EgxI3DoXN0ICsoLiopJC8sXHJcbiAgL15bc1NddGF0dXTDoXJuw60gbcSbc3RvICsuKiwgW21NXcSbc3Rza8O9IG9idm9kICsoLiopJC8sXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgZXh0cmFjdE11bmljaXBhbGl0eU5hbWUgPSAoZm91bmRlcjogRm91bmRlcik6IHN0cmluZyA9PiB7XHJcbiAgY29uc3QgcGF0dGVybnMgPVxyXG4gICAgZm91bmRlci5tdW5pY2lwYWxpdHlUeXBlID09PSBNdW5pY2lwYWxpdHlUeXBlLkNpdHlcclxuICAgICAgPyBjaXR5UGF0dGVybnNcclxuICAgICAgOiBkaXN0cmljdFBhdHRlcm5zO1xyXG4gIGNvbnN0IGNvcnJlY3RQYXR0ZXJuID0gcGF0dGVybnMuZmlsdGVyKChwYXR0ZXJuKSA9PlxyXG4gICAgcGF0dGVybi50ZXN0KGZvdW5kZXIubmFtZSlcclxuICApO1xyXG4gIGlmIChjb3JyZWN0UGF0dGVybi5sZW5ndGggPiAwKSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBjb3JyZWN0UGF0dGVyblswXS5leGVjKGZvdW5kZXIubmFtZSk7XHJcbiAgICBpZiAodHlwZW9mIHJlc3VsdFsxXSAhPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICByZXR1cm4gcmVzdWx0WzFdXHJcbiAgICAgICAgLnJlcGxhY2UoXCIgLSBcIiwgXCItXCIpXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcc3syLH0vZywgXCIgXCIpXHJcbiAgICAgICAgLnRyaW0oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBmb3VuZGVyLm5hbWU7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3Qgc2FuaXRpemVNdW5pY2lwYWxpdHlOYW1lID0gKG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgcmV0dXJuIG5hbWVcclxuICAgIC5yZXBsYWNlKFwiIC0gXCIsIFwiLVwiKVxyXG4gICAgLnJlcGxhY2UoL1xcc3syLH0vZywgXCIgXCIpXHJcbiAgICAudHJpbSgpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGZpbmRDbG9zZXN0U3RyaW5nID0gKHN0cjogc3RyaW5nLCBhcnI6IHN0cmluZ1tdKTogc3RyaW5nID0+IHtcclxuICBsZXQgY2xvc2VzdFN0ciA9IFwiXCI7XHJcbiAgbGV0IGNsb3Nlc3REaXN0YW5jZSA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xyXG5cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgY29uc3QgY3VycmVudFN0ciA9IGFycltpXTtcclxuICAgIGNvbnN0IGRpc3RhbmNlID0gaW50ZXJwdW5jdGlvbkRpc3RhbmNlKHN0ciwgY3VycmVudFN0cik7XHJcblxyXG4gICAgaWYgKGRpc3RhbmNlIDwgY2xvc2VzdERpc3RhbmNlKSB7XHJcbiAgICAgIGNsb3Nlc3RTdHIgPSBjdXJyZW50U3RyO1xyXG4gICAgICBjbG9zZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBleGFjdCBtYXRjaCBmb3VuZCwgZXhpdCBsb29wXHJcbiAgICBpZiAoY2xvc2VzdERpc3RhbmNlID09PSAwKSB7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNsb3Nlc3RTdHI7XHJcbn07XHJcblxyXG5jb25zdCBpbnRlcnB1bmN0aW9uRGlzdGFuY2UgPSAoc3RyMTogc3RyaW5nLCBzdHIyOiBzdHJpbmcpOiBudW1iZXIgPT4ge1xyXG4gIGxldCBkaXN0YW5jZSA9IGxldmVuc2h0ZWluRGlzdGFuY2Uoc3RyMSwgc3RyMik7XHJcblxyXG4gIGNvbnN0IGludGVycHVuY3Rpb25NaXN0YWtlcyA9IHtcclxuICAgIGE6IFtcIsOhXCJdLFxyXG4gICAgw6E6IFtcImFcIl0sXHJcbiAgICBlOiBbXCLDqVwiLCBcIsSbXCJdLFxyXG4gICAgw6k6IFtcImVcIiwgXCLEm1wiXSxcclxuICAgIMSbOiBbXCJlXCIsIFwiw6lcIl0sXHJcbiAgICBpOiBbXCLDrVwiXSxcclxuICAgIMOtOiBbXCJpXCJdLFxyXG4gICAgeTogW1wiw71cIl0sXHJcbiAgICDDvTogW1wieVwiXSxcclxuICAgIG86IFtcIsOzXCJdLFxyXG4gICAgw7M6IFtcIm9cIl0sXHJcbiAgICB1OiBbXCLDulwiLCBcIsWvXCJdLFxyXG4gICAgxa86IFtcInVcIiwgXCLDulwiXSxcclxuICAgIMO6OiBbXCJ1XCIsIFwixa9cIl0sXHJcbiAgICBjOiBbXCLEjVwiXSxcclxuICAgIMSNOiBbXCJjXCJdLFxyXG4gICAgZDogW1wixI9cIl0sXHJcbiAgICDEjzogW1wiZFwiXSxcclxuICAgIG46IFtcIsWIXCJdLFxyXG4gICAgxYg6IFtcIm5cIl0sXHJcbiAgICByOiBbXCLFmVwiXSxcclxuICAgIMWZOiBbXCJyXCJdLFxyXG4gICAgczogW1wixaFcIl0sXHJcbiAgICDFoTogW1wic1wiXSxcclxuICAgIHQ6IFtcIsWlXCJdLFxyXG4gICAgxaU6IFtcInRcIl0sXHJcbiAgICB6OiBbXCLFvlwiXSxcclxuICAgIMW+OiBbXCJ6XCJdLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0IHN0cjFDaGFycyA9IHN0cjEuc3BsaXQoXCJcIik7XHJcbiAgY29uc3Qgc3RyMkNoYXJzID0gc3RyMi5zcGxpdChcIlwiKTtcclxuXHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIxQ2hhcnMubGVuZ3RoOyBpKyspIHtcclxuICAgIGNvbnN0IGNoYXIxID0gc3RyMUNoYXJzW2ldO1xyXG4gICAgY29uc3QgY2hhcjIgPSBzdHIyQ2hhcnNbaV07XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBpbnRlcnB1bmN0aW9uTWlzdGFrZXNbY2hhcjFdICYmXHJcbiAgICAgIGludGVycHVuY3Rpb25NaXN0YWtlc1tjaGFyMV0uaW5jbHVkZXMoY2hhcjIpXHJcbiAgICApIHtcclxuICAgICAgLy8gU3VidHJhY3QgYSBwZW5hbHR5IGZyb20gdGhlIGRpc3RhbmNlIGZvciBpbnRlcnB1bmN0aW9uIG1pc3Rha2VzXHJcbiAgICAgIGRpc3RhbmNlIC09IDAuNTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBkaXN0YW5jZTtcclxufTtcclxuXHJcbmNvbnN0IGxldmVuc2h0ZWluRGlzdGFuY2UgPSAoc3RyMTogc3RyaW5nLCBzdHIyOiBzdHJpbmcpOiBudW1iZXIgPT4ge1xyXG4gIGNvbnN0IG1hdHJpeDogbnVtYmVyW11bXSA9IEFycmF5KHN0cjIubGVuZ3RoICsgMSlcclxuICAgIC5maWxsKG51bGwpXHJcbiAgICAubWFwKCgpID0+IEFycmF5KHN0cjEubGVuZ3RoICsgMSkuZmlsbChudWxsKSk7XHJcblxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDw9IHN0cjEubGVuZ3RoOyBpKyspIHtcclxuICAgIG1hdHJpeFswXVtpXSA9IGk7XHJcbiAgfVxyXG5cclxuICBmb3IgKGxldCBqID0gMDsgaiA8PSBzdHIyLmxlbmd0aDsgaisrKSB7XHJcbiAgICBtYXRyaXhbal1bMF0gPSBqO1xyXG4gIH1cclxuXHJcbiAgZm9yIChsZXQgaiA9IDE7IGogPD0gc3RyMi5sZW5ndGg7IGorKykge1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gc3RyMS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoc3RyMVtpIC0gMV0gPT09IHN0cjJbaiAtIDFdKSB7XHJcbiAgICAgICAgbWF0cml4W2pdW2ldID0gbWF0cml4W2ogLSAxXVtpIC0gMV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbWF0cml4W2pdW2ldID1cclxuICAgICAgICAgIE1hdGgubWluKFxyXG4gICAgICAgICAgICBtYXRyaXhbal1baSAtIDFdLCAvLyBkZWxldGlvblxyXG4gICAgICAgICAgICBtYXRyaXhbaiAtIDFdW2ldLCAvLyBpbnNlcnRpb25cclxuICAgICAgICAgICAgbWF0cml4W2ogLSAxXVtpIC0gMV0gLy8gc3Vic3RpdHV0aW9uXHJcbiAgICAgICAgICApICsgMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG1hdHJpeFtzdHIyLmxlbmd0aF1bc3RyMS5sZW5ndGhdO1xyXG59O1xyXG4iXX0=
|
package/dist/utils/jtsk2wgs84.js
CHANGED
|
@@ -82,3 +82,4 @@ function roundToNDecimalPlaces(toRound, decimalPlaces) {
|
|
|
82
82
|
return (Math.round(toRound * Math.pow(10, decimalPlaces)) /
|
|
83
83
|
Math.pow(10, decimalPlaces));
|
|
84
84
|
}
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianRzazJ3Z3M4NC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9qdHNrMndnczg0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxVQUFVLENBQ2hDLENBQVMsRUFDVCxDQUFTLEVBQ1QsSUFBWSxHQUFHO0lBRWYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztJQUVwQixJQUFJLENBQUMsR0FBRyxhQUFhLENBQUM7SUFDdEIsSUFBSSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7SUFDMUIsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7SUFDekIsSUFBSSxHQUFHLEdBQUcsaUJBQWlCLENBQUM7SUFDNUIsSUFBSSxLQUFLLEdBQUcsaUJBQWlCLENBQUM7SUFDOUIsSUFBSSxLQUFLLEdBQUcsaUJBQWlCLENBQUM7SUFDOUIsSUFBSSxLQUFLLEdBQUcsaUJBQWlCLENBQUM7SUFDOUIsSUFBSSxLQUFLLEdBQUcsaUJBQWlCLENBQUM7SUFDOUIsSUFBSSxLQUFLLEdBQUcsaUJBQWlCLENBQUM7SUFDOUIsSUFBSSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7SUFFMUIsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsQyxJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxJQUFJLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVFLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixJQUFJLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDdEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUN4QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDekMsSUFBSSxJQUFJLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3pDLElBQUksSUFBSSxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN6QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUU1QixJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7SUFFZixHQUFHO1FBQ0QsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNYLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDN0IsUUFBUSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxLQUFLLEVBQUU7SUFFdkMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFdEQsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDO0lBQ3ZCLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTlDLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUNoQixJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDZixJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDaEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDNUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDN0MsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQ2pCLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5QyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFOUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUNkLEVBQUUsR0FBRyxhQUFhLENBQUM7SUFDbkIsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNwRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXJFLE9BQU87UUFDTCxNQUFNLEVBQUUsU0FBUztRQUNqQixNQUFNLEVBQUUsU0FBUztRQUNqQixHQUFHLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbEQsR0FBRyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHO0tBQ3BDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxPQUFlLEVBQUUsYUFBcUI7SUFDbkUsT0FBTyxDQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUM1QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ29udmVyc2lvblJlc3VsdCB7XHJcbiAganRza194OiBudW1iZXI7XHJcbiAganRza195OiBudW1iZXI7XHJcbiAgbGF0OiBudW1iZXI7XHJcbiAgbG9uOiBudW1iZXI7XHJcbiAgYWx0aXR1ZGU6IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbnZlcnQgSlRTSyB0byBXR1M4NCAtIHRha2VuIGZyb20gQGFyb2RheC9qdHNrMndnczg0IHBhY2thZ2UgdGhhdCBoYWQgc29tZVxyXG4gKiBpbXBvcnQgaXNzdWVzLlxyXG4gKlxyXG4gKiBAcGFyYW0geFxyXG4gKiBAcGFyYW0geVxyXG4gKiBAcGFyYW0gaFxyXG4gKiBAcmV0dXJuIHt7anRza194OiBudW1iZXIsIGp0c2tfeTogbnVtYmVyLCBsb246IG51bWJlciwgbGF0OiBudW1iZXIsIGFsdGl0dWRlOiBudW1iZXJ9fVxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24ganRzazJ3Z3M4NChcclxuICB4OiBudW1iZXIsXHJcbiAgeTogbnVtYmVyLFxyXG4gIGg6IG51bWJlciA9IDIwMFxyXG4pOiBDb252ZXJzaW9uUmVzdWx0IHtcclxuICBjb25zdCBvcmlnaW5hbFggPSB4O1xyXG4gIGNvbnN0IG9yaWdpbmFsWSA9IHk7XHJcblxyXG4gIGxldCBhID0gNjM3NzM5Ny4xNTUwODtcclxuICBsZXQgZSA9IDAuMDgxNjk2ODMxMjE1MzAzO1xyXG4gIGxldCBuID0gMC45Nzk5MjQ3MDQ2MjA4MztcclxuICBsZXQgdVJvID0gMTIzMTAyMzAuMTI3OTcwMzY7XHJcbiAgbGV0IHNpblVRID0gMC44NjM0OTk5Njk1MDYzNDE7XHJcbiAgbGV0IGNvc1VRID0gMC41MDQzNDg4ODk4MTk4ODI7XHJcbiAgbGV0IHNpblZRID0gMC40MjAyMTUxNDQ1ODY0OTM7XHJcbiAgbGV0IGNvc1ZRID0gMC45MDc0MjQ1MDQ5OTIwOTc7XHJcbiAgbGV0IGFscGhhID0gMS4wMDA1OTc0OTgzNzE1NDI7XHJcbiAgbGV0IGsgPSAxLjAwMzQxOTE2Mzk2NjU3NTtcclxuXHJcbiAgbGV0IHJvID0gTWF0aC5zcXJ0KHggKiB4ICsgeSAqIHkpO1xyXG4gIGxldCBlcHNpbG9uID0gMiAqIE1hdGguYXRhbih5IC8gKHJvICsgeCkpO1xyXG4gIGxldCBEID0gZXBzaWxvbiAvIG47XHJcbiAgbGV0IFMgPSAyICogTWF0aC5hdGFuKE1hdGguZXhwKCgxIC8gbikgKiBNYXRoLmxvZyh1Um8gLyBybykpKSAtIE1hdGguUEkgLyAyO1xyXG4gIGxldCBzaW5TID0gTWF0aC5zaW4oUyk7XHJcbiAgbGV0IGNvc1MgPSBNYXRoLmNvcyhTKTtcclxuICBsZXQgc2luVSA9IHNpblVRICogc2luUyAtIGNvc1VRICogY29zUyAqIE1hdGguY29zKEQpO1xyXG4gIGxldCBjb3NVID0gTWF0aC5zcXJ0KDEgLSBzaW5VICogc2luVSk7XHJcbiAgbGV0IHNpbkRWID0gKE1hdGguc2luKEQpICogY29zUykgLyBjb3NVO1xyXG4gIGxldCBjb3NEViA9IE1hdGguc3FydCgxIC0gc2luRFYgKiBzaW5EVik7XHJcbiAgbGV0IHNpblYgPSBzaW5WUSAqIGNvc0RWIC0gY29zVlEgKiBzaW5EVjtcclxuICBsZXQgY29zViA9IGNvc1ZRICogY29zRFYgKyBzaW5WUSAqIHNpbkRWO1xyXG4gIGxldCBsSnRzayA9ICgyICogTWF0aC5hdGFuKHNpblYgLyAoMSArIGNvc1YpKSkgLyBhbHBoYTtcclxuICBsZXQgdCA9IE1hdGguZXhwKCgyIC8gYWxwaGEpICogTWF0aC5sb2coKDEgKyBzaW5VKSAvIGNvc1UgLyBrKSk7XHJcbiAgbGV0IHBvbSA9ICh0IC0gMSkgLyAodCArIDEpO1xyXG5cclxuICBsZXQgc2luQiA9IHBvbTtcclxuXHJcbiAgZG8ge1xyXG4gICAgc2luQiA9IHBvbTtcclxuICAgIHBvbSA9IHQgKiBNYXRoLmV4cChlICogTWF0aC5sb2coKDEgKyBlICogc2luQikgLyAoMSAtIGUgKiBzaW5CKSkpO1xyXG4gICAgcG9tID0gKHBvbSAtIDEpIC8gKHBvbSArIDEpO1xyXG4gIH0gd2hpbGUgKE1hdGguYWJzKHBvbSAtIHNpbkIpID4gMWUtMTUpO1xyXG5cclxuICBsZXQgYkp0c2sgPSBNYXRoLmF0YW4ocG9tIC8gTWF0aC5zcXJ0KDEgLSBwb20gKiBwb20pKTtcclxuXHJcbiAgbGV0IGYxID0gMjk5LjE1MjgxMjg1MztcclxuICBsZXQgZTIgPSAxIC0gKDEgLSAxIC8gZjEpICogKDEgLSAxIC8gZjEpO1xyXG4gIHJvID0gYSAvIE1hdGguc3FydCgxIC0gZTIgKiBNYXRoLnNpbihiSnRzaykgKiBNYXRoLnNpbihiSnRzaykpO1xyXG4gIHggPSAocm8gKyBoKSAqIE1hdGguY29zKGJKdHNrKSAqIE1hdGguY29zKGxKdHNrKTtcclxuICB5ID0gKHJvICsgaCkgKiBNYXRoLmNvcyhiSnRzaykgKiBNYXRoLnNpbihsSnRzayk7XHJcbiAgbGV0IHogPSAoKDEgLSBlMikgKiBybyArIGgpICogTWF0aC5zaW4oYkp0c2spO1xyXG5cclxuICBsZXQgZHggPSA1NzAuNjk7XHJcbiAgbGV0IGR5ID0gODUuNjk7XHJcbiAgbGV0IGR6ID0gNDYyLjg0O1xyXG4gIGxldCB3eiA9ICgoLTUuMjYxMSAvIDM2MDApICogTWF0aC5QSSkgLyAxODA7XHJcbiAgbGV0IHd5ID0gKCgtMS41ODY3NiAvIDM2MDApICogTWF0aC5QSSkgLyAxODA7XHJcbiAgbGV0IHd4ID0gKCgtNC45OTgyMSAvIDM2MDApICogTWF0aC5QSSkgLyAxODA7XHJcbiAgbGV0IG0gPSAzLjU0M2UtNjtcclxuICBsZXQgeG4gPSBkeCArICgxICsgbSkgKiAoeCArIHd6ICogeSAtIHd5ICogeik7XHJcbiAgbGV0IHluID0gZHkgKyAoMSArIG0pICogKC13eiAqIHggKyB5ICsgd3ggKiB6KTtcclxuICBsZXQgem4gPSBkeiArICgxICsgbSkgKiAod3kgKiB4IC0gd3ggKiB5ICsgeik7XHJcblxyXG4gIGEgPSA2Mzc4MTM3LjA7XHJcbiAgZjEgPSAyOTguMjU3MjIzNTYzO1xyXG4gIGxldCBhQiA9IGYxIC8gKGYxIC0gMSk7XHJcbiAgbGV0IHAgPSBNYXRoLnNxcnQoeG4gKiB4biArIHluICogeW4pO1xyXG4gIGUyID0gMSAtICgxIC0gMSAvIGYxKSAqICgxIC0gMSAvIGYxKTtcclxuICBsZXQgdGhldGEgPSBNYXRoLmF0YW4oKHpuICogYUIpIC8gcCk7XHJcbiAgbGV0IHN0ID0gTWF0aC5zaW4odGhldGEpO1xyXG4gIGxldCBjdCA9IE1hdGguY29zKHRoZXRhKTtcclxuICB0ID0gKHpuICsgZTIgKiBhQiAqIGEgKiBzdCAqIHN0ICogc3QpIC8gKHAgLSBlMiAqIGEgKiBjdCAqIGN0ICogY3QpO1xyXG4gIGxldCBCID0gTWF0aC5hdGFuKHQpO1xyXG4gIGxldCBMID0gMiAqIE1hdGguYXRhbih5biAvIChwICsgeG4pKTtcclxuICBoID0gTWF0aC5zcXJ0KDEgKyB0ICogdCkgKiAocCAtIGEgLyBNYXRoLnNxcnQoMSArICgxIC0gZTIpICogdCAqIHQpKTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGp0c2tfeDogb3JpZ2luYWxYLFxyXG4gICAganRza195OiBvcmlnaW5hbFksXHJcbiAgICBsYXQ6IHJvdW5kVG9ORGVjaW1hbFBsYWNlcygoQiAvIE1hdGguUEkpICogMTgwLCA2KSxcclxuICAgIGxvbjogcm91bmRUb05EZWNpbWFsUGxhY2VzKChMIC8gTWF0aC5QSSkgKiAxODAsIDYpLFxyXG4gICAgYWx0aXR1ZGU6IE1hdGgucm91bmQoaCAqIDEwMCkgLyAxMDAsXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gcm91bmRUb05EZWNpbWFsUGxhY2VzKHRvUm91bmQ6IG51bWJlciwgZGVjaW1hbFBsYWNlczogbnVtYmVyKTogbnVtYmVyIHtcclxuICByZXR1cm4gKFxyXG4gICAgTWF0aC5yb3VuZCh0b1JvdW5kICogTWF0aC5wb3coMTAsIGRlY2ltYWxQbGFjZXMpKSAvXHJcbiAgICBNYXRoLnBvdygxMCwgZGVjaW1hbFBsYWNlcylcclxuICApO1xyXG59XHJcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -43,21 +43,21 @@
|
|
|
43
43
|
"npm-run-all": "^1.7.0",
|
|
44
44
|
"rimraf": "^5.0.1",
|
|
45
45
|
"ts-jest": "^29.1.1",
|
|
46
|
-
"
|
|
46
|
+
"tsx": "^4.7.1"
|
|
47
47
|
},
|
|
48
48
|
"scripts": {
|
|
49
|
-
"sync-all": "
|
|
50
|
-
"address-points": "
|
|
51
|
-
"regions": "
|
|
52
|
-
"cities": "
|
|
53
|
-
"polygons": "
|
|
54
|
-
"schools": "
|
|
55
|
-
"streets": "
|
|
56
|
-
"diagrams": "
|
|
57
|
-
"clear-all": "
|
|
58
|
-
"init-db": "
|
|
59
|
-
"parse-ordinance": "
|
|
60
|
-
"knex": "
|
|
49
|
+
"sync-all": "tsx src/bin/sync-all.ts",
|
|
50
|
+
"address-points": "tsx src/bin/address-points.ts",
|
|
51
|
+
"regions": "tsx src/bin/regions.ts",
|
|
52
|
+
"cities": "tsx src/bin/cities.ts",
|
|
53
|
+
"polygons": "tsx src/bin/polygons.ts",
|
|
54
|
+
"schools": "tsx src/bin/schools.ts",
|
|
55
|
+
"streets": "tsx src/bin/streets.ts",
|
|
56
|
+
"diagrams": "tsx src/bin/generate-syntax-diagrams.ts",
|
|
57
|
+
"clear-all": "tsx src/bin/clear-all.ts",
|
|
58
|
+
"init-db": "tsx src/bin/init-db.ts",
|
|
59
|
+
"parse-ordinance": "tsx src/bin/parse-ordinance.ts",
|
|
60
|
+
"knex": "tsx src/bin/knex.ts",
|
|
61
61
|
"test": "node --experimental-vm-modules --no-warnings node_modules/jest/bin/jest.js -c=jest-esm.config.mjs --no-cache",
|
|
62
62
|
"ordinance-to-csv-rules": "node src/smd-to-csv/ordinance-to-csv-rules.js",
|
|
63
63
|
"clean": "rimraf dist",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
},
|
|
70
70
|
"name": "text-to-map",
|
|
71
71
|
"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.",
|
|
72
|
-
"version": "1.1.
|
|
72
|
+
"version": "1.1.29",
|
|
73
73
|
"main": "dist/index.js",
|
|
74
74
|
"types": "dist/index.d.ts",
|
|
75
75
|
"files": [
|