taon 18.0.22 → 18.0.23

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.
Files changed (71) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/create-context.mjs +8 -3
  3. package/browser/esm2022/lib/endpoint-context.mjs +12 -2
  4. package/browser/esm2022/lib/models.mjs +1 -1
  5. package/browser/esm2022/lib/orm.mjs +1 -1
  6. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +24 -26
  7. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +4 -9
  8. package/browser/fesm2022/taon.mjs +46 -35
  9. package/browser/fesm2022/taon.mjs.map +1 -1
  10. package/browser/lib/endpoint-context.d.ts +1 -0
  11. package/browser/lib/models.d.ts +1 -0
  12. package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +1 -2
  13. package/browser/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +0 -3
  14. package/client/esm2022/lib/create-context.mjs +8 -3
  15. package/client/esm2022/lib/endpoint-context.mjs +12 -2
  16. package/client/esm2022/lib/models.mjs +1 -1
  17. package/client/esm2022/lib/orm.mjs +1 -1
  18. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +24 -26
  19. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +4 -9
  20. package/client/fesm2022/taon.mjs +46 -35
  21. package/client/fesm2022/taon.mjs.map +1 -1
  22. package/client/lib/endpoint-context.d.ts +1 -0
  23. package/client/lib/models.d.ts +1 -0
  24. package/client/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +1 -2
  25. package/client/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +0 -3
  26. package/lib/base-classes/base-migration.d.ts +2 -2
  27. package/lib/base-classes/base-repository.d.ts +4 -4
  28. package/lib/base-classes/base-subscriber-for-entity.d.ts +2 -2
  29. package/lib/context-db-migrations.d.ts +2 -2
  30. package/lib/create-context.js +8 -2
  31. package/lib/create-context.js.map +1 -1
  32. package/lib/decorators/classes/entity-decorator.d.ts +2 -2
  33. package/lib/decorators/http/http-decorators.d.ts +2 -2
  34. package/lib/decorators/http/http-methods-decorators.d.ts +3 -3
  35. package/lib/endpoint-context.d.ts +2 -1
  36. package/lib/endpoint-context.js +93 -83
  37. package/lib/endpoint-context.js.map +1 -1
  38. package/lib/formly/fromly.d.ts +2 -2
  39. package/lib/models.d.ts +4 -3
  40. package/lib/models.js.map +1 -1
  41. package/lib/orm.d.ts +7 -3
  42. package/lib/orm.js +11 -2
  43. package/lib/orm.js.map +1 -1
  44. package/lib/ui/directives/index.js +2 -2
  45. package/lib/ui/directives/taon-long-press.directive.d.ts +1 -1
  46. package/lib/ui/index.js +2 -2
  47. package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
  48. package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +2 -3
  49. package/lib/ui/taon-github-fork-me-corner/index.js +2 -2
  50. package/lib/ui/taon-github-fork-me-ribbon/index.js +2 -2
  51. package/lib/ui/taon-notifications/taon-notifications.models.js +2 -2
  52. package/lib/ui/taon-progress-bar/index.js +2 -2
  53. package/lib/ui/taon-session-passcode/index.js +2 -2
  54. package/lib/ui/taon-table/index.js +2 -2
  55. package/lib/ui/taon-table/taon-table.component.d.ts +1 -1
  56. package/lib/ui/taon.models.d.ts +2 -2
  57. package/package.json +7 -7
  58. package/tmp-environment.json +30 -29
  59. package/websql/esm2022/lib/create-context.mjs +8 -3
  60. package/websql/esm2022/lib/endpoint-context.mjs +24 -15
  61. package/websql/esm2022/lib/models.mjs +1 -1
  62. package/websql/esm2022/lib/orm.mjs +7 -2
  63. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +24 -26
  64. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +4 -9
  65. package/websql/fesm2022/taon.mjs +62 -48
  66. package/websql/fesm2022/taon.mjs.map +1 -1
  67. package/websql/lib/endpoint-context.d.ts +1 -0
  68. package/websql/lib/models.d.ts +1 -0
  69. package/websql/lib/orm.d.ts +5 -1
  70. package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +1 -2
  71. package/websql/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +0 -3
@@ -51,7 +51,7 @@
51
51
  "homepage": "https://github.com/darekf77/taon#readme"
52
52
  },
53
53
  "name": "taon",
54
- "version": "18.0.22",
54
+ "version": "18.0.23",
55
55
  "description": "Isomorphic solution for backend and frontend",
56
56
  "scripts": {
57
57
  "mkdocs": "python3 -m mkdocs"
@@ -66,18 +66,18 @@
66
66
  },
67
67
  "homepage": "https://github.com/darekf77/taon#readme",
68
68
  "dependencies": {
69
- "json10": "~18.0.17",
70
- "lodash-walk-object": "~18.0.17",
71
- "ng2-rest": "~18.0.17",
69
+ "json10": "~18.0.18",
70
+ "lodash-walk-object": "~18.0.18",
71
+ "ng2-rest": "~18.0.18",
72
72
  "ora": "3.4.0",
73
73
  "socket.io": "4.7.5",
74
- "taon-type-sql": "18.0.17",
75
- "tnp": "~18.0.19",
74
+ "taon-type-sql": "18.0.18",
75
+ "tnp": "~18.0.23",
76
76
  "tslib": "~2.6.3"
77
77
  },
78
78
  "license": "MIT",
79
79
  "private": false,
80
- "lastBuildTagHash": "d0943f74b3e4bf07e174f2db17fbbe7e3d15da3d",
80
+ "lastBuildTagHash": "4295d1dd29047b6cb4454ae737387447c5efee4b",
81
81
  "devDependencies": {
82
82
  "@angular-builders/custom-webpack": "~18.0.0",
83
83
  "@angular-devkit/build-angular": "~18.1.4",
@@ -242,13 +242,14 @@
242
242
  "image-focus": "1.2.1",
243
243
  "immer": "10.0.2",
244
244
  "immutable": "4.3.7",
245
- "incremental-compiler": "~18.0.17",
245
+ "incremental-compiler": "~18.0.19",
246
246
  "inquirer": "7.3.3",
247
247
  "inquirer-autocomplete-prompt": "1.4.0",
248
248
  "inquirer-autocomplete-standalone": "0.8.1",
249
249
  "inquirer-select-pro": "1.0.0-alpha.7",
250
+ "inquirer-toggle": "1.0.1",
250
251
  "is-elevated": "3.0.0",
251
- "isomorphic-region-loader": "~18.0.17",
252
+ "isomorphic-region-loader": "~18.0.18",
252
253
  "istanbul-instrumenter-loader": "3.0.1",
253
254
  "jest": "29.7.0",
254
255
  "jest-date-mock": "1.0.10",
@@ -259,7 +260,7 @@
259
260
  "joi": "17.13.3",
260
261
  "jscodeshift": "0.6.3",
261
262
  "json-stringify-safe": "5.0.1",
262
- "json10-writer": "~18.0.17",
263
+ "json10-writer": "~18.0.18",
263
264
  "json5": "2.2.3",
264
265
  "json5-writer": "0.2.0",
265
266
  "jszip": "3.10.1",
@@ -269,7 +270,7 @@
269
270
  "lockfile": "1.0.4",
270
271
  "lodash": "4.17.21",
271
272
  "lowdb": "7.0.1",
272
- "magic-renamer": "~18.0.17",
273
+ "magic-renamer": "~18.0.18",
273
274
  "material-design-icons": "3.0.1",
274
275
  "method-override": "2.3.10",
275
276
  "minimist": "1.2.8",
@@ -280,10 +281,10 @@
280
281
  "ng-in-viewport": "16.1.0",
281
282
  "ng-lock": "18.0.1",
282
283
  "ng-packagr": "18.1.0",
283
- "ng-talkback": "~18.0.16",
284
- "ng2-logger": "~18.0.19",
284
+ "ng-talkback": "~18.0.17",
285
+ "ng2-logger": "~18.0.20",
285
286
  "ng2-pdfjs-viewer": "18.0.0",
286
- "ng2-rest-swagger-generator": "18.0.14",
287
+ "ng2-rest-swagger-generator": "18.0.15",
287
288
  "ngx-ace-wrapper": "17.0.0",
288
289
  "ngx-editor": "17.5.4",
289
290
  "ngx-highlightjs": "12.0.0",
@@ -297,7 +298,7 @@
297
298
  "ngx-scrolltop": "18.0.0",
298
299
  "ngx-store": "3.1.1",
299
300
  "ngx-typed-js": "2.1.1",
300
- "node-cli-tester": "~18.0.16",
301
+ "node-cli-tester": "~18.0.17",
301
302
  "node-localstorage": "2.1.6",
302
303
  "node-notifier": "10.0.1",
303
304
  "node-polyfill-webpack-plugin": "2.0.1",
@@ -327,7 +328,7 @@
327
328
  "q": "1.5.1",
328
329
  "rallax.js": "2.0.4",
329
330
  "randomcolor": "0.5.3",
330
- "record-replay-req-res-scenario": "~18.0.16",
331
+ "record-replay-req-res-scenario": "~18.0.17",
331
332
  "reflect-metadata": "0.2.2",
332
333
  "rimraf": "2.6.2",
333
334
  "rxjs": "~7.8.1",
@@ -340,21 +341,21 @@
340
341
  "sql-template-strings": "2.2.2",
341
342
  "sql-template-tag": "5.2.1",
342
343
  "sql.js": "1.8.0",
343
- "static-columns": "~18.0.18",
344
+ "static-columns": "~18.0.19",
344
345
  "string-similarity": "4.0.4",
345
346
  "sudo-block": "3.0.0",
346
347
  "supertest": "7.0.0",
347
348
  "sweetalert2": "11.7.32",
348
349
  "systeminformation": "3.45.7",
349
350
  "taon": "^18",
350
- "taon-storage": "18.0.25",
351
- "taon-typeorm": "18.0.15",
351
+ "taon-storage": "18.0.26",
352
+ "taon-typeorm": "18.0.16",
352
353
  "task.js": "0.1.5",
353
354
  "threads": "1.7.0",
354
- "tnp-config": "~18.0.19",
355
- "tnp-core": "~18.0.43",
356
- "tnp-helpers": "~18.0.17",
357
- "tnp-models": "~18.0.18",
355
+ "tnp-config": "~18.0.20",
356
+ "tnp-core": "~18.0.45",
357
+ "tnp-helpers": "~18.0.18",
358
+ "tnp-models": "~18.0.19",
358
359
  "ts-debug": "1.3.0",
359
360
  "ts-json-schema-generator": "2.3.0-next.5",
360
361
  "ts-loader": "2.3.1",
@@ -365,14 +366,14 @@
365
366
  "typedoc": "0.26.5",
366
367
  "typedoc-plugin-markdown": "4.2.3",
367
368
  "typescript": "~5.5.4",
368
- "typescript-class-helpers": "~18.0.18",
369
+ "typescript-class-helpers": "~18.0.19",
369
370
  "typescript-formatter": "~7.2.2",
370
371
  "typescript-string-enums": "~1.0.0",
371
372
  "underscore": "1.13.7",
372
373
  "uuid": "10.0.0",
373
374
  "validator": "13.5.2",
374
375
  "video.js": "8.3.0",
375
- "vpn-split": "~18.0.15",
376
+ "vpn-split": "~18.0.16",
376
377
  "vscode": "1.1.37",
377
378
  "wait-on": "8.0.1",
378
379
  "watch": "1.0.2",
@@ -390,14 +391,14 @@
390
391
  }
391
392
  },
392
393
  "build": {
393
- "number": 1766,
394
- "date": "2025-01-03T16:13:41.000Z",
395
- "hash": "4295d1dd29047b6cb4454ae737387447c5efee4b"
394
+ "number": 1773,
395
+ "date": "2025-01-14T22:34:57.000Z",
396
+ "hash": "ac1051e99c26d1d5cb81e7b29801c57fc01c0240"
396
397
  },
397
398
  "currentProjectName": "taon",
398
399
  "currentProjectGenericName": "taon",
399
400
  "currentProjectType": "isomorphic-lib",
400
- "currentFrameworkVersion": "18.0.19",
401
+ "currentFrameworkVersion": "18.0.23",
401
402
  "isStandaloneProject": true,
402
403
  "isSmartContainer": false,
403
404
  "pathesTsconfig": "\"paths\": {\"taon\":[\"./src/lib\"],\"taon/*\":[\"./src/lib/*\"]},",
@@ -1,4 +1,4 @@
1
- import { Helpers } from 'tnp-core/websql';
1
+ import { Helpers, UtilsOs } from 'tnp-core/websql';
2
2
  import { EndpointContext } from './endpoint-context';
3
3
  import { ENV } from './env';
4
4
  import { TaonAdminService } from './ui/taon-admin-mode-configuration/taon-admin.service';
@@ -80,9 +80,14 @@ export const createContext = (configFn) => {
80
80
  keepWebsqlDbDataAfterReload =
81
81
  TaonAdminService.Instance?.keepWebsqlDbDataAfterReload;
82
82
  if (!Helpers.isNode && keepWebsqlDbDataAfterReload) {
83
- Helpers.info(`[taon] Keep websql data after reload`);
83
+ !UtilsOs.isRunningInCliMode() &&
84
+ Helpers.info(`[taon] Keeping websql data after reload ` +
85
+ `(context=${endpointContextRef.contextName}).`);
84
86
  }
85
87
  else {
88
+ !UtilsOs.isRunningInCliMode() &&
89
+ Helpers.info(`[taon] Dropping all tables and data ` +
90
+ `(context=${endpointContextRef.contextName}).`);
86
91
  await endpointContextRef.reinitControllers();
87
92
  }
88
93
  ///#region TODO this may be usefull but for now
@@ -118,4 +123,4 @@ export const createContext = (configFn) => {
118
123
  };
119
124
  ;
120
125
  ({}); // @--end-of-file-for-module=taon lib/create-context.ts
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvY3JlYXRlLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBT3pGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQVczQixRQVVDLEVBQ0QsRUFBRTtJQUNGLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUzQixNQUFNLGtCQUFrQixHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVqRSxNQUFNLEdBQUcsR0FBRztRQUVWLEtBQUssRUFBRTtZQW1CTCxJQUFJLFdBQVc7Z0JBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLFlBQVk7Z0JBQ2QsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLFNBQVM7Z0JBQ1gsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQzFCLENBQUM7WUFDRCxJQUFJLFdBQVc7Z0JBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLFVBQVU7Z0JBQ1osT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQzNCLENBQUM7U0FDRjtRQUdELElBQUksUUFBUTtZQUNWLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxX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QUksUUFBUTtZQUNWLE9BQU87Z0JBQ0wsSUFBSSxNQUFNO29CQUNSLE9BQU8sa0JBQWtCLENBQUMsY0FBYyxDQUFDO2dCQUMzQyxDQUFDO2dCQUNELElBQUksTUFBTTtvQkFDUixPQUFPLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztnQkFDM0MsQ0FBQzthQUNGLENBQUM7UUFDSixDQUFDO0tBQ0YsQ0FBQztJQUNGLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBR0QsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx1REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEVuZHBvaW50Q29udGV4dCB9IGZyb20gJy4vZW5kcG9pbnQtY29udGV4dCc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5cbmltcG9ydCB7IEVOViB9IGZyb20gJy4vZW52JztcblxuaW1wb3J0IHsgVGFvbkFkbWluU2VydmljZSB9IGZyb20gJy4vdWkvdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24vdGFvbi1hZG1pbi5zZXJ2aWNlJztcblxuXG5cblxuXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDb250ZXh0ID0gPFxuXG4gIENUWCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG9iamVjdD4sXG4gIENUUkwgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBFTlRJVFkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBSRVBPIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgUFJPVklERVIgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBTVUJTQ1JJQkVSIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgTUlHUkFUSU9OIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcblxuPihcbiAgY29uZmlnRm46IChcbiAgICBlbnY6IGFueSxcbiAgKSA9PiBNb2RlbHMuQ29udGV4dE9wdGlvbnM8XG4gICAgQ1RYLFxuICAgIENUUkwsXG4gICAgRU5USVRZLFxuICAgIFJFUE8sXG4gICAgUFJPVklERVIsXG4gICAgU1VCU0NSSUJFUixcbiAgICBNSUdSQVRJT05cbiAgPixcbikgPT4ge1xuICBsZXQgY29uZmlnID0gY29uZmlnRm4oRU5WKTtcblxuICBjb25zdCBlbmRwb2ludENvbnRleHRSZWYgPSBuZXcgRW5kcG9pbnRDb250ZXh0KGNvbmZpZywgY29uZmlnRm4pO1xuXG4gIGNvbnN0IHJlcyA9IHtcblxuICAgIHR5cGVzOiB7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgICBnZXQgY29udHJvbGxlcnMoKSB7XG4gICAgICAgIHJldHVybiBjb25maWcuY29udHJvbGxlcnM7XG4gICAgICB9LFxuICAgICAgZ2V0IHJlcG9zaXRvcmllcygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5yZXBvc2l0b3JpZXM7XG4gICAgICB9LFxuICAgICAgZ2V0IHByb3ZpZGVycygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5wcm92aWRlcnM7XG4gICAgICB9LFxuICAgICAgZ2V0IHN1YnNjcmliZXJzKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLnN1YnNjcmliZXJzO1xuICAgICAgfSxcbiAgICAgIGdldCBtaWdyYXRpb25zKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLm1pZ3JhdGlvbnM7XG4gICAgICB9LFxuICAgIH0sXG5cblxuICAgIGdldCBjb250ZXh0cygpIHtcbiAgICAgIHJldHVybiBjb25maWcuY29udGV4dHM7XG4gICAgfSxcbiAgICBnZXQgY29udGV4dE5hbWUoKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmNvbnRleHROYW1lO1xuICAgIH0sXG5cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogLSBnZXQgcmVmZXJlbmNlIHRvIGludGVybmFsIGNvbnRleHRcbiAgICAgKi9cbiAgICBhc3luYyBfX3JlZigpIHtcbiAgICAgIGlmICghZW5kcG9pbnRDb250ZXh0UmVmLmluaXRlZCkge1xuICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuaW5pdCh7XG4gICAgICAgICAgaW5pdEZyb21SZWNydXNpdmVDb250ZXh0UmVzb3ZsZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZW5kcG9pbnRDb250ZXh0UmVmO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogb25seSBmb3IgaW50ZXJuYWwgdXNlXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBnZXQgX19yZWZTeW5jKCkge1xuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZjtcbiAgICB9LFxuICAgIGdldENsYXNzSW5zdGFuY2U8VD4oY3RvcjogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQge1xuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5nZXRJbnN0YW5jZUJ5KGN0b3IpO1xuICAgIH0sXG5cbiAgICBnZXRDbGFzczxUPihjdG9yOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCB7XG4gICAgICBjb25zdCBjbGFzc0Z1biA9IGVuZHBvaW50Q29udGV4dFJlZi5nZXRDbGFzc0Z1bkJ5Q2xhc3MoY3Rvcik7XG4gICAgICByZXR1cm4gY2xhc3NGdW4gYXMgYW55O1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgfSxcblxuXG4gICAgLyoqXG4gICAgICogLSBjcmVhdGUgY29udHJvbGxlciBpbnN0YW5jZXMgZm9yIGNvbnRleHRcbiAgICAgKiAtIGluaXQgZGF0YWJhc2UgKGlmIGVuYWJsZSkgKyBtaWdhdGlvbiBzY3JpcHRzXG4gICAgICovXG4gICAgaW5pdGlhbGl6ZTogYXN5bmMgKG92ZXJyaWRlT3B0aW9ucz86IHtcbiAgICAgIG92ZXJyaWRlSG9zdD86IHN0cmluZztcbiAgICAgIG92ZXJyaWRlUmVtb3RlSG9zdD86IHN0cmluZztcbiAgICAgIG9ubHlNaWdyYXRpb25SdW4/OiBib29sZWFuO1xuICAgICAgb25seU1pZ3JhdGlvblJldmVydFRvVGltZXN0YW1wPzogbnVtYmVyO1xuICAgIH0pOiBQcm9taXNlPEVuZHBvaW50Q29udGV4dD4gPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXQoe1xuICAgICAgICAgICAgLi4ub3ZlcnJpZGVPcHRpb25zLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKGNvbmZpZy5hYnN0cmFjdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBYnN0cmFjdCBjb250ZXh0IGNhbiBub3QgYmUgaW5pdGlhbGl6ZWRgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuaW5pdEVudGl0aWVzKCk7XG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRTdWJzY3JpYmVycygpO1xuXG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXREYXRhYmFzZUNvbm5lY3Rpb24oKTtcblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5kYk1pZ3JhdGlvbnMuZW5zdXJlTWlncmF0aW9uVGFibGVFeGlzdHMoKTtcblxuXG5cblxuXG5cbiAgICAgICAgICBlbmRwb2ludENvbnRleHRSZWYuaW5pdENvbnRyb2xsZXJzKCk7XG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLnN0YXJ0U2VydmVyKCk7XG5cbiAgICAgICAgICBlbmRwb2ludENvbnRleHRSZWYud3JpdGVBY3RpdmVSb3V0ZXMoKTtcblxuXG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRDbGFzc2VzKCk7XG4gICAgICAgICAgbGV0IGtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZCA9IGZhbHNlO1xuXG4gICAgICAgICAga2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkID1cbiAgICAgICAgICAgIFRhb25BZG1pblNlcnZpY2UuSW5zdGFuY2U/LmtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZDtcblxuICAgICAgICAgIGlmICghSGVscGVycy5pc05vZGUgJiYga2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkKSB7XG4gICAgICAgICAgICBIZWxwZXJzLmluZm8oYFt0YW9uXSBLZWVwIHdlYnNxbCBkYXRhIGFmdGVyIHJlbG9hZGApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYucmVpbml0Q29udHJvbGxlcnMoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8vI3JlZ2lvbiBUT0RPIHRoaXMgbWF5IGJlIHVzZWZ1bGwgYnV0IGZvciBub3dcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgICAgICAgaWYgKGVuZHBvaW50Q29udGV4dFJlZi5vbmx5TWlncmF0aW9uUnVuKSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLnJ1bkFsbE5vdENvbXBsZXRlZE1pZ3JhdGlvbnMoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGVuZHBvaW50Q29udGV4dFJlZi5vbmx5TWlncmF0aW9uUmV2ZXJ0VG9UaW1lc3RhbXApIHtcbiAgICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5kYk1pZ3JhdGlvbnMucmV2ZXJ0TWlncmF0aW9uVG9UaW1lc3RhbXAoXG4gICAgICAgICAgICAgIGVuZHBvaW50Q29udGV4dFJlZi5vbmx5TWlncmF0aW9uUmV2ZXJ0VG9UaW1lc3RhbXAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLnJ1bkFsbE5vdENvbXBsZXRlZE1pZ3JhdGlvbnMoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXNvbHZlKGVuZHBvaW50Q29udGV4dFJlZik7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJlYWx0aW1lIGNvbW11bmljYXRpb24gd2l0aCBzZXJ2ZXJcbiAgICAgKiBVZHAgc29ja2V0LmlvIChvciBpcGMpIGJhc2VkLlxuICAgICAqL1xuICAgIGdldCByZWFsdGltZSgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldCBjbGllbnQoKSB7XG4gICAgICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5yZWFsdGltZUNsaWVudDtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0IHNlcnZlcigpIHtcbiAgICAgICAgICByZXR1cm4gZW5kcG9pbnRDb250ZXh0UmVmLnJlYWx0aW1lU2VydmVyO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICB9O1xuICByZXR1cm4gcmVzO1xufTtcblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvY3JlYXRlLWNvbnRleHQudHMiXX0=
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvY3JlYXRlLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUU1QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQU96RixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FXM0IsUUFVQyxFQUNELEVBQUU7SUFDRixJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFM0IsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFakUsTUFBTSxHQUFHLEdBQUc7UUFFVixLQUFLLEVBQUU7WUFtQkwsSUFBSSxXQUFXO2dCQUNiLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSxZQUFZO2dCQUNkLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQztZQUM3QixDQUFDO1lBQ0QsSUFBSSxTQUFTO2dCQUNYLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUMxQixDQUFDO1lBQ0QsSUFBSSxXQUFXO2dCQUNiLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSxVQUFVO2dCQUNaLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUMzQixDQUFDO1NBQ0Y7UUFHRCxJQUFJLFFBQVE7WUFDVixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQztR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QztvQkFDSixDQUFDO3lCQUFNLENBQUM7d0JBQ04sTUFBTSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztvQkFDdkUsQ0FBQztvQkFFRCxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRDs7O1dBR0c7UUFDSCxJQUFJLFFBQVE7WUFDVixPQUFPO2dCQUNMLElBQUksTUFBTTtvQkFDUixPQUFPLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztnQkFDM0MsQ0FBQztnQkFDRCxJQUFJLE1BQU07b0JBQ1IsT0FBTyxrQkFBa0IsQ0FBQyxjQUFjLENBQUM7Z0JBQzNDLENBQUM7YUFDRixDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUM7SUFDRixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUdELENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsdURBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgSGVscGVycywgVXRpbHNPcyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBFbmRwb2ludENvbnRleHQgfSBmcm9tICcuL2VuZHBvaW50LWNvbnRleHQnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5pbXBvcnQgeyBFTlYgfSBmcm9tICcuL2Vudic7XG5cbmltcG9ydCB7IFRhb25BZG1pblNlcnZpY2UgfSBmcm9tICcuL3VpL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uL3Rhb24tYWRtaW4uc2VydmljZSc7XG5cblxuXG5cblxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ29udGV4dCA9IDxcblxuICBDVFggZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+LFxuICBDVFJMIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgRU5USVRZIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgUkVQTyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4sXG4gIFBST1ZJREVSIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgU1VCU0NSSUJFUiBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4sXG4gIE1JR1JBVElPTiBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4sXG5cbj4oXG4gIGNvbmZpZ0ZuOiAoXG4gICAgZW52OiBhbnksXG4gICkgPT4gTW9kZWxzLkNvbnRleHRPcHRpb25zPFxuICAgIENUWCxcbiAgICBDVFJMLFxuICAgIEVOVElUWSxcbiAgICBSRVBPLFxuICAgIFBST1ZJREVSLFxuICAgIFNVQlNDUklCRVIsXG4gICAgTUlHUkFUSU9OXG4gID4sXG4pID0+IHtcbiAgbGV0IGNvbmZpZyA9IGNvbmZpZ0ZuKEVOVik7XG5cbiAgY29uc3QgZW5kcG9pbnRDb250ZXh0UmVmID0gbmV3IEVuZHBvaW50Q29udGV4dChjb25maWcsIGNvbmZpZ0ZuKTtcblxuICBjb25zdCByZXMgPSB7XG5cbiAgICB0eXBlczoge1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAgICAgZ2V0IGNvbnRyb2xsZXJzKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLmNvbnRyb2xsZXJzO1xuICAgICAgfSxcbiAgICAgIGdldCByZXBvc2l0b3JpZXMoKSB7XG4gICAgICAgIHJldHVybiBjb25maWcucmVwb3NpdG9yaWVzO1xuICAgICAgfSxcbiAgICAgIGdldCBwcm92aWRlcnMoKSB7XG4gICAgICAgIHJldHVybiBjb25maWcucHJvdmlkZXJzO1xuICAgICAgfSxcbiAgICAgIGdldCBzdWJzY3JpYmVycygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5zdWJzY3JpYmVycztcbiAgICAgIH0sXG4gICAgICBnZXQgbWlncmF0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5taWdyYXRpb25zO1xuICAgICAgfSxcbiAgICB9LFxuXG5cbiAgICBnZXQgY29udGV4dHMoKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmNvbnRleHRzO1xuICAgIH0sXG4gICAgZ2V0IGNvbnRleHROYW1lKCkge1xuICAgICAgcmV0dXJuIGNvbmZpZy5jb250ZXh0TmFtZTtcbiAgICB9LFxuXG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIC0gZ2V0IHJlZmVyZW5jZSB0byBpbnRlcm5hbCBjb250ZXh0XG4gICAgICovXG4gICAgYXN5bmMgX19yZWYoKSB7XG4gICAgICBpZiAoIWVuZHBvaW50Q29udGV4dFJlZi5pbml0ZWQpIHtcbiAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXQoe1xuICAgICAgICAgIGluaXRGcm9tUmVjcnVzaXZlQ29udGV4dFJlc292bGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZjtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIG9ubHkgZm9yIGludGVybmFsIHVzZVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgZ2V0IF9fcmVmU3luYygpIHtcbiAgICAgIHJldHVybiBlbmRwb2ludENvbnRleHRSZWY7XG4gICAgfSxcbiAgICBnZXRDbGFzc0luc3RhbmNlPFQ+KGN0b3I6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQpOiBUIHtcbiAgICAgIHJldHVybiBlbmRwb2ludENvbnRleHRSZWYuZ2V0SW5zdGFuY2VCeShjdG9yKTtcbiAgICB9LFxuXG4gICAgZ2V0Q2xhc3M8VD4oY3RvcjogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQge1xuICAgICAgY29uc3QgY2xhc3NGdW4gPSBlbmRwb2ludENvbnRleHRSZWYuZ2V0Q2xhc3NGdW5CeUNsYXNzKGN0b3IpO1xuICAgICAgcmV0dXJuIGNsYXNzRnVuIGFzIGFueTtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAgIH0sXG5cblxuICAgIC8qKlxuICAgICAqIC0gY3JlYXRlIGNvbnRyb2xsZXIgaW5zdGFuY2VzIGZvciBjb250ZXh0XG4gICAgICogLSBpbml0IGRhdGFiYXNlIChpZiBlbmFibGUpICsgbWlnYXRpb24gc2NyaXB0c1xuICAgICAqL1xuICAgIGluaXRpYWxpemU6IGFzeW5jIChvdmVycmlkZU9wdGlvbnM/OiB7XG4gICAgICBvdmVycmlkZUhvc3Q/OiBzdHJpbmc7XG4gICAgICBvdmVycmlkZVJlbW90ZUhvc3Q/OiBzdHJpbmc7XG4gICAgICBvbmx5TWlncmF0aW9uUnVuPzogYm9vbGVhbjtcbiAgICAgIG9ubHlNaWdyYXRpb25SZXZlcnRUb1RpbWVzdGFtcD86IG51bWJlcjtcbiAgICB9KTogUHJvbWlzZTxFbmRwb2ludENvbnRleHQ+ID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0KHtcbiAgICAgICAgICAgIC4uLm92ZXJyaWRlT3B0aW9ucyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChjb25maWcuYWJzdHJhY3QpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQWJzdHJhY3QgY29udGV4dCBjYW4gbm90IGJlIGluaXRpYWxpemVkYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRFbnRpdGllcygpO1xuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0U3Vic2NyaWJlcnMoKTtcblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0RGF0YWJhc2VDb25uZWN0aW9uKCk7XG5cbiAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLmVuc3VyZU1pZ3JhdGlvblRhYmxlRXhpc3RzKCk7XG5cblxuXG5cblxuXG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRDb250cm9sbGVycygpO1xuICAgICAgICAgIGVuZHBvaW50Q29udGV4dFJlZi5zdGFydFNlcnZlcigpO1xuXG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLndyaXRlQWN0aXZlUm91dGVzKCk7XG5cblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0Q2xhc3NlcygpO1xuICAgICAgICAgIGxldCBrZWVwV2Vic3FsRGJEYXRhQWZ0ZXJSZWxvYWQgPSBmYWxzZTtcblxuICAgICAgICAgIGtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZCA9XG4gICAgICAgICAgICBUYW9uQWRtaW5TZXJ2aWNlLkluc3RhbmNlPy5rZWVwV2Vic3FsRGJEYXRhQWZ0ZXJSZWxvYWQ7XG5cblxuICAgICAgICAgIGlmICghSGVscGVycy5pc05vZGUgJiYga2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkKSB7XG4gICAgICAgICAgICAhVXRpbHNPcy5pc1J1bm5pbmdJbkNsaU1vZGUoKSAmJlxuICAgICAgICAgICAgICBIZWxwZXJzLmluZm8oXG4gICAgICAgICAgICAgICAgYFt0YW9uXSBLZWVwaW5nIHdlYnNxbCBkYXRhIGFmdGVyIHJlbG9hZCBgICtcbiAgICAgICAgICAgICAgICAgIGAoY29udGV4dD0ke2VuZHBvaW50Q29udGV4dFJlZi5jb250ZXh0TmFtZX0pLmAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICFVdGlsc09zLmlzUnVubmluZ0luQ2xpTW9kZSgpICYmXG4gICAgICAgICAgICAgIEhlbHBlcnMuaW5mbyhcbiAgICAgICAgICAgICAgICBgW3Rhb25dIERyb3BwaW5nIGFsbCB0YWJsZXMgYW5kIGRhdGEgYCArXG4gICAgICAgICAgICAgICAgICBgKGNvbnRleHQ9JHtlbmRwb2ludENvbnRleHRSZWYuY29udGV4dE5hbWV9KS5gLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLnJlaW5pdENvbnRyb2xsZXJzKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vLyNyZWdpb24gVE9ETyB0aGlzIG1heSBiZSB1c2VmdWxsIGJ1dCBmb3Igbm93XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAgICAgICAgIGlmIChlbmRwb2ludENvbnRleHRSZWYub25seU1pZ3JhdGlvblJ1bikge1xuICAgICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmRiTWlncmF0aW9ucy5ydW5BbGxOb3RDb21wbGV0ZWRNaWdyYXRpb25zKCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChlbmRwb2ludENvbnRleHRSZWYub25seU1pZ3JhdGlvblJldmVydFRvVGltZXN0YW1wKSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLnJldmVydE1pZ3JhdGlvblRvVGltZXN0YW1wKFxuICAgICAgICAgICAgICBlbmRwb2ludENvbnRleHRSZWYub25seU1pZ3JhdGlvblJldmVydFRvVGltZXN0YW1wLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmRiTWlncmF0aW9ucy5ydW5BbGxOb3RDb21wbGV0ZWRNaWdyYXRpb25zKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzb2x2ZShlbmRwb2ludENvbnRleHRSZWYpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiByZWFsdGltZSBjb21tdW5pY2F0aW9uIHdpdGggc2VydmVyXG4gICAgICogVWRwIHNvY2tldC5pbyAob3IgaXBjKSBiYXNlZC5cbiAgICAgKi9cbiAgICBnZXQgcmVhbHRpbWUoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBnZXQgY2xpZW50KCkge1xuICAgICAgICAgIHJldHVybiBlbmRwb2ludENvbnRleHRSZWYucmVhbHRpbWVDbGllbnQ7XG4gICAgICAgIH0sXG4gICAgICAgIGdldCBzZXJ2ZXIoKSB7XG4gICAgICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5yZWFsdGltZVNlcnZlcjtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIHJlcztcbn07XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2NyZWF0ZS1jb250ZXh0LnRzIl19