clientnode 4.0.1436 → 4.0.1438

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 (142) hide show
  1. package/dist/Lock.js +83 -94
  2. package/dist/Logger.js +163 -715
  3. package/dist/Semaphore.js +46 -81
  4. package/dist/array.js +337 -568
  5. package/dist/cli.js +37 -71
  6. package/dist/constants.js +110 -209
  7. package/dist/context.js +25 -229
  8. package/dist/cookie.js +48 -226
  9. package/dist/data-transfer.js +166 -725
  10. package/dist/datetime.js +241 -1059
  11. package/dist/domNode.js +277 -441
  12. package/dist/expression/evaluators.js +234 -1112
  13. package/dist/expression/helper.js +82 -135
  14. package/dist/expression/index.js +10 -1245
  15. package/dist/expression/indicator-functions.js +21 -239
  16. package/dist/expression/type.js +4 -34
  17. package/dist/filesystem.js +323 -309
  18. package/dist/function.js +51 -125
  19. package/dist/index.js +26 -2709
  20. package/dist/indicators.js +68 -440
  21. package/dist/module.js +98 -163
  22. package/dist/number.js +25 -423
  23. package/dist/object.js +774 -852
  24. package/dist/process.js +38 -245
  25. package/dist/property-types.js +96 -157
  26. package/dist/scope.js +56 -1825
  27. package/dist/string.js +603 -909
  28. package/dist/test-helper.js +171 -541
  29. package/dist/type.js +8 -37
  30. package/dist/utility.js +91 -336
  31. package/package.json +9 -10
  32. package/dist/Lock.d.ts +0 -39
  33. package/dist/Logger.d.ts +0 -102
  34. package/dist/Semaphore.d.ts +0 -29
  35. package/dist/array.d.ts +0 -150
  36. package/dist/bundle/Lock.js +0 -111
  37. package/dist/bundle/Logger.js +0 -705
  38. package/dist/bundle/Semaphore.js +0 -100
  39. package/dist/bundle/array.js +0 -648
  40. package/dist/bundle/cli.js +0 -85
  41. package/dist/bundle/constants.js +0 -225
  42. package/dist/bundle/context.js +0 -243
  43. package/dist/bundle/cookie.js +0 -262
  44. package/dist/bundle/data-transfer.js +0 -741
  45. package/dist/bundle/datetime.js +0 -1064
  46. package/dist/bundle/domNode.js +0 -471
  47. package/dist/bundle/expression/evaluators.js +0 -1115
  48. package/dist/bundle/expression/helper.js +0 -106
  49. package/dist/bundle/expression/index.js +0 -1223
  50. package/dist/bundle/expression/indicator-functions.js +0 -235
  51. package/dist/bundle/expression/type.js +0 -50
  52. package/dist/bundle/filesystem.js +0 -374
  53. package/dist/bundle/function.js +0 -105
  54. package/dist/bundle/index.js +0 -2686
  55. package/dist/bundle/indicators.js +0 -459
  56. package/dist/bundle/module.js +0 -180
  57. package/dist/bundle/number.js +0 -425
  58. package/dist/bundle/object.js +0 -1004
  59. package/dist/bundle/process.js +0 -275
  60. package/dist/bundle/property-types.js +0 -167
  61. package/dist/bundle/scope.js +0 -1808
  62. package/dist/bundle/string.js +0 -1095
  63. package/dist/bundle/test-helper.js +0 -690
  64. package/dist/bundle/type.js +0 -50
  65. package/dist/bundle/utility.js +0 -362
  66. package/dist/cli.d.ts +0 -31
  67. package/dist/compatible/Lock.js +0 -111
  68. package/dist/compatible/Logger.js +0 -705
  69. package/dist/compatible/Semaphore.js +0 -100
  70. package/dist/compatible/array.js +0 -648
  71. package/dist/compatible/cli.js +0 -85
  72. package/dist/compatible/constants.js +0 -225
  73. package/dist/compatible/context.js +0 -243
  74. package/dist/compatible/cookie.js +0 -262
  75. package/dist/compatible/data-transfer.js +0 -741
  76. package/dist/compatible/datetime.js +0 -1064
  77. package/dist/compatible/domNode.js +0 -471
  78. package/dist/compatible/expression/evaluators.js +0 -1115
  79. package/dist/compatible/expression/helper.js +0 -106
  80. package/dist/compatible/expression/index.js +0 -1223
  81. package/dist/compatible/expression/indicator-functions.js +0 -235
  82. package/dist/compatible/expression/type.js +0 -50
  83. package/dist/compatible/filesystem.js +0 -374
  84. package/dist/compatible/function.js +0 -105
  85. package/dist/compatible/index.js +0 -2686
  86. package/dist/compatible/indicators.js +0 -459
  87. package/dist/compatible/module.js +0 -180
  88. package/dist/compatible/number.js +0 -425
  89. package/dist/compatible/object.js +0 -1004
  90. package/dist/compatible/process.js +0 -275
  91. package/dist/compatible/property-types.js +0 -167
  92. package/dist/compatible/scope.js +0 -1808
  93. package/dist/compatible/string.js +0 -1095
  94. package/dist/compatible/test-helper.js +0 -690
  95. package/dist/compatible/type.js +0 -50
  96. package/dist/compatible/utility.js +0 -362
  97. package/dist/constants.d.ts +0 -99
  98. package/dist/context.d.ts +0 -8
  99. package/dist/cookie.d.ts +0 -31
  100. package/dist/data-transfer.d.ts +0 -45
  101. package/dist/datetime.d.ts +0 -37
  102. package/dist/domNode.d.ts +0 -82
  103. package/dist/expression/evaluators.d.ts +0 -55
  104. package/dist/expression/helper.d.ts +0 -4
  105. package/dist/expression/index.d.ts +0 -7
  106. package/dist/expression/indicator-functions.d.ts +0 -14
  107. package/dist/expression/type.d.ts +0 -70
  108. package/dist/filesystem.d.ts +0 -143
  109. package/dist/function.d.ts +0 -20
  110. package/dist/index.d.ts +0 -23
  111. package/dist/indicators.d.ts +0 -68
  112. package/dist/module.d.ts +0 -8
  113. package/dist/number.d.ts +0 -35
  114. package/dist/object.d.ts +0 -231
  115. package/dist/process.d.ts +0 -22
  116. package/dist/property-types.d.ts +0 -460
  117. package/dist/scope.d.ts +0 -44
  118. package/dist/string.d.ts +0 -312
  119. package/dist/test/Lock.d.ts +0 -1
  120. package/dist/test/Logger.d.ts +0 -1
  121. package/dist/test/Semaphore.d.ts +0 -1
  122. package/dist/test/array.d.ts +0 -1
  123. package/dist/test/cookie.d.ts +0 -1
  124. package/dist/test/data-transfer.d.ts +0 -1
  125. package/dist/test/datetime.d.ts +0 -1
  126. package/dist/test/domNode.d.ts +0 -1
  127. package/dist/test/expression/evaluators.d.ts +0 -1
  128. package/dist/test/expression/helper.d.ts +0 -1
  129. package/dist/test/expression/indicator-functions.d.ts +0 -1
  130. package/dist/test/filesystem.d.ts +0 -1
  131. package/dist/test/function.d.ts +0 -1
  132. package/dist/test/indicators.d.ts +0 -1
  133. package/dist/test/number.d.ts +0 -1
  134. package/dist/test/object.d.ts +0 -1
  135. package/dist/test/process.d.ts +0 -1
  136. package/dist/test/property-types.d.ts +0 -1
  137. package/dist/test/scope.d.ts +0 -1
  138. package/dist/test/string.d.ts +0 -1
  139. package/dist/test/utility.d.ts +0 -1
  140. package/dist/test-helper.d.ts +0 -143
  141. package/dist/type.d.ts +0 -230
  142. package/dist/utility.d.ts +0 -44
@@ -1,115 +1,7 @@
1
- 'use strict';if(typeof module!=='undefined'&&module!==null&&eval('typeof require')!=='undefined'&&eval('require')!==null&&'main'in eval('require')&&eval('typeof require.main')!=='undefined'&&eval('require.main')!==null){var ORIGINAL_MAIN_MODULE=module;if(module!==eval('require.main')&&'paths'in module&&'paths'in eval('require.main')&&typeof __dirname!=='undefined'&&__dirname!==null)module.paths=eval('require.main.paths').concat(module.paths.filter(function(path){return eval('require.main.paths').includes(path)}))};if(typeof window==='undefined'||window===null)var window=(typeof global==='undefined'||global===null)?{}:global;(function webpackUniversalModuleDefinition(root, factory) {
2
- if(typeof exports === 'object' && typeof module === 'object')
3
- module.exports = factory(require("core-js/modules/es.array.includes.js"));
4
- else if(typeof define === 'function' && define.amd)
5
- define(["core-js/modules/es.array.includes.js"], factory);
6
- else {
7
- var a = typeof exports === 'object' ? factory(require("core-js/modules/es.array.includes.js")) : factory(root["core-js/modules/es.array.includes.js"]);
8
- for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
9
- }
10
- })(this, function(__WEBPACK_EXTERNAL_MODULE__0__) {
11
- return /******/ (function() { // webpackBootstrap
12
- /******/ "use strict";
13
- /******/ var __webpack_modules__ = ([
14
- /* 0 */
15
- /***/ (function(module) {
16
-
17
- module.exports = __WEBPACK_EXTERNAL_MODULE__0__;
18
-
19
- /***/ })
20
- /******/ ]);
21
- /************************************************************************/
22
- /******/ // The module cache
23
- /******/ var __webpack_module_cache__ = {};
24
- /******/
25
- /******/ // The require function
26
- /******/ function __webpack_require__(moduleId) {
27
- /******/ // Check if module is in cache
28
- /******/ var cachedModule = __webpack_module_cache__[moduleId];
29
- /******/ if (cachedModule !== undefined) {
30
- /******/ return cachedModule.exports;
31
- /******/ }
32
- /******/ // Create a new module (and put it into the cache)
33
- /******/ var module = __webpack_module_cache__[moduleId] = {
34
- /******/ // no module.id needed
35
- /******/ // no module.loaded needed
36
- /******/ exports: {}
37
- /******/ };
38
- /******/
39
- /******/ // Execute the module function
40
- /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
41
- /******/
42
- /******/ // Return the exports of the module
43
- /******/ return module.exports;
44
- /******/ }
45
- /******/
46
- /************************************************************************/
47
- /******/ /* webpack/runtime/compat get default export */
48
- /******/ !function() {
49
- /******/ // getDefaultExport function for compatibility with non-harmony modules
50
- /******/ __webpack_require__.n = function(module) {
51
- /******/ var getter = module && module.__esModule ?
52
- /******/ function() { return module['default']; } :
53
- /******/ function() { return module; };
54
- /******/ __webpack_require__.d(getter, { a: getter });
55
- /******/ return getter;
56
- /******/ };
57
- /******/ }();
58
- /******/
59
- /******/ /* webpack/runtime/define property getters */
60
- /******/ !function() {
61
- /******/ // define getter/value functions for harmony exports
62
- /******/ __webpack_require__.d = function(exports, definition) {
63
- /******/ if(Array.isArray(definition)) {
64
- /******/ var i = 0;
65
- /******/ while(i < definition.length) {
66
- /******/ var key = definition[i++];
67
- /******/ var binding = definition[i++];
68
- /******/ if(!__webpack_require__.o(exports, key)) {
69
- /******/ if(binding === 0) {
70
- /******/ Object.defineProperty(exports, key, { enumerable: true, value: definition[i++] });
71
- /******/ } else {
72
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: binding });
73
- /******/ }
74
- /******/ } else if(binding === 0) { i++; }
75
- /******/ }
76
- /******/ } else {
77
- /******/ for(var key in definition) {
78
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
79
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
80
- /******/ }
81
- /******/ }
82
- /******/ }
83
- /******/ };
84
- /******/ }();
85
- /******/
86
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
87
- /******/ !function() {
88
- /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
89
- /******/ }();
90
- /******/
91
- /******/ /* webpack/runtime/make namespace object */
92
- /******/ !function() {
93
- /******/ // define __esModule on exports
94
- /******/ __webpack_require__.r = function(exports) {
95
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
96
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
97
- /******/ }
98
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
99
- /******/ };
100
- /******/ }();
101
- /******/
102
- /************************************************************************/
103
- var __webpack_exports__ = {};
104
- __webpack_require__.r(__webpack_exports__);
105
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
106
- /* harmony export */ viewArrayAsScope: function() { return /* binding */ viewArrayAsScope; },
107
- /* harmony export */ viewObjectAsScope: function() { return /* binding */ _viewObjectAsScope; }
108
- /* harmony export */ });
109
- /* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
110
- /* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__);
111
1
  // #!/usr/bin/env babel-node
112
2
  // -*- coding: utf-8 -*-
3
+ 'use strict';
4
+
113
5
  /* !
114
6
  region header
115
7
  [Project page](https://torben.website/clientnode)
@@ -123,28 +15,83 @@ __webpack_require__.r(__webpack_exports__);
123
15
  naming 3.0 unported license.
124
16
  See https://creativecommons.org/licenses/by/3.0/deed.de
125
17
  endregion
126
- */function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t.return||t.return()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}var viewArrayAsScope=function viewArrayAsScope(data,childrenPropertyNames,propertyReferenceKeys){return new Proxy(data,{ownKeys:function ownKeys(target){return Reflect.ownKeys(target)},get:function get(target,name){var _iterator=_createForOfIteratorHelper(target),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var element=_step.value;var _iterator2=_createForOfIteratorHelper(propertyReferenceKeys),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var key=_step2.value;if(element[key]===name){// NOTE: Type[keyof Type]
127
- // NOTE: ScopeType[keyof ScopeType]
128
- // type ScopeValueType = object
129
- /*
130
- eslint-disable
131
- @typescript-eslint/no-unnecessary-type-arguments
132
- */return _viewObjectAsScope(element,childrenPropertyNames,propertyReferenceKeys);/*
133
- eslint-enable
134
- @typescript-eslint/no-unnecessary-type-arguments
135
- */}}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}}}catch(err){_iterator.e(err)}finally{_iterator.f()}return undefined},set:function set(target,name,value){var index=0;var _iterator3=_createForOfIteratorHelper(target),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var item=_step3.value;var _iterator4=_createForOfIteratorHelper(propertyReferenceKeys),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var key=_step4.value;if(item[key]===name){target[index]=value;return true}}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}index+=1}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}return false}})};var _viewObjectAsScope=function viewObjectAsScope(data,childrenPropertyNames,propertyReferenceKeys){if(childrenPropertyNames===void 0){childrenPropertyNames=["children"]}if(propertyReferenceKeys===void 0){propertyReferenceKeys=["name"]}return new Proxy(data,{ownKeys:function ownKeys(target){return Reflect.ownKeys(target)},get:function get(target,name){var value=target[name];if(Object.prototype.hasOwnProperty.call(target,name)){if(childrenPropertyNames.includes(name)&&Array.isArray(value)){// NOTE: Type[keyof Type]
136
- // NOTE: ScopeType[keyof ScopeType]
137
- return viewArrayAsScope(value,childrenPropertyNames,propertyReferenceKeys)}if(value!==null&&_typeof(value)==="object"){// NOTE: Type[keyof Type]
138
- // NOTE: ScopeType[keyof ScopeType]
139
- // type ScopeValueType = object
140
- /*
141
- eslint-disable
142
- @typescript-eslint/no-unnecessary-type-arguments
143
- */return _viewObjectAsScope(value,childrenPropertyNames,propertyReferenceKeys);/*
144
- eslint-enable
145
- @typescript-eslint/no-unnecessary-type-arguments
146
- */}return value}return undefined},set:function set(target,name,value){if(Object.prototype.hasOwnProperty.call(target,name))if(Object.prototype.hasOwnProperty.call(target,name)){target[name]=value;return true}return false}})};
147
- /******/ return __webpack_exports__;
148
- /******/ })()
149
- ;
150
- });
18
+ */
19
+ import "core-js/modules/es.array.includes.js";
20
+ export const viewArrayAsScope = (data, childrenPropertyNames, propertyReferenceKeys) => new Proxy(data, {
21
+ ownKeys(target) {
22
+ return Reflect.ownKeys(target);
23
+ },
24
+ get(target, name) {
25
+ for (const element of target) for (const key of propertyReferenceKeys) if (element[key] === name) {
26
+ // NOTE: Type[keyof Type]
27
+
28
+ // NOTE: ScopeType[keyof ScopeType]
29
+ // type ScopeValueType = object
30
+
31
+ /*
32
+ eslint-disable
33
+ @typescript-eslint/no-unnecessary-type-arguments
34
+ */
35
+ return viewObjectAsScope(element, childrenPropertyNames, propertyReferenceKeys);
36
+ /*
37
+ eslint-enable
38
+ @typescript-eslint/no-unnecessary-type-arguments
39
+ */
40
+ }
41
+ return undefined;
42
+ },
43
+ set(target, name, value) {
44
+ let index = 0;
45
+ for (const item of target) {
46
+ for (const key of propertyReferenceKeys) if (item[key] === name) {
47
+ target[index] = value;
48
+ return true;
49
+ }
50
+ index += 1;
51
+ }
52
+ return false;
53
+ }
54
+ });
55
+ export const viewObjectAsScope = (data, childrenPropertyNames = ['children'], propertyReferenceKeys = ['name']) => new Proxy(data, {
56
+ ownKeys(target) {
57
+ return Reflect.ownKeys(target);
58
+ },
59
+ get(target, name) {
60
+ const value = target[name];
61
+ if (Object.prototype.hasOwnProperty.call(target, name)) {
62
+ if (childrenPropertyNames.includes(name) && Array.isArray(value)) {
63
+ // NOTE: Type[keyof Type]
64
+
65
+ // NOTE: ScopeType[keyof ScopeType]
66
+
67
+ return viewArrayAsScope(value, childrenPropertyNames, propertyReferenceKeys);
68
+ }
69
+ if (value !== null && typeof value === 'object') {
70
+ // NOTE: Type[keyof Type]
71
+
72
+ // NOTE: ScopeType[keyof ScopeType]
73
+ // type ScopeValueType = object
74
+
75
+ /*
76
+ eslint-disable
77
+ @typescript-eslint/no-unnecessary-type-arguments
78
+ */
79
+ return viewObjectAsScope(value, childrenPropertyNames, propertyReferenceKeys);
80
+ /*
81
+ eslint-enable
82
+ @typescript-eslint/no-unnecessary-type-arguments
83
+ */
84
+ }
85
+ return value;
86
+ }
87
+ return undefined;
88
+ },
89
+ set(target, name, value) {
90
+ if (Object.prototype.hasOwnProperty.call(target, name)) if (Object.prototype.hasOwnProperty.call(target, name)) {
91
+ target[name] = value;
92
+ return true;
93
+ }
94
+ return false;
95
+ }
96
+ });
97
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4cHJlc3Npb24vaGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vICMhL3Vzci9iaW4vZW52IGJhYmVsLW5vZGVcbi8vIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLVxuJ3VzZSBzdHJpY3QnXG4vKiAhXG4gICAgcmVnaW9uIGhlYWRlclxuICAgIFtQcm9qZWN0IHBhZ2VdKGh0dHBzOi8vdG9yYmVuLndlYnNpdGUvY2xpZW50bm9kZSlcblxuICAgIENvcHlyaWdodCBUb3JiZW4gU2lja2VydCAoaW5mb1tcIn5hdH5cIl10b3JiZW4ud2Vic2l0ZSkgMTYuMTIuMjAxMlxuXG4gICAgTGljZW5zZVxuICAgIC0tLS0tLS1cblxuICAgIFRoaXMgbGlicmFyeSB3cml0dGVuIGJ5IFRvcmJlbiBTaWNrZXJ0IHN0YW5kcyB1bmRlciBhIGNyZWF0aXZlIGNvbW1vbnNcbiAgICBuYW1pbmcgMy4wIHVucG9ydGVkIGxpY2Vuc2UuXG4gICAgU2VlIGh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvZGVlZC5kZVxuICAgIGVuZHJlZ2lvblxuKi9cbmltcG9ydCB0eXBlIHtNYXBwaW5nfSBmcm9tICcuLi8nXG5cbmltcG9ydCB0eXBlIHtCYXNpY1Njb3BlVHlwZX0gZnJvbSAnLi90eXBlJ1xuXG5leHBvcnQgY29uc3Qgdmlld0FycmF5QXNTY29wZSA9IDxcbiAgICBUeXBlIGV4dGVuZHMgQXJyYXk8TWFwcGluZzx1bmtub3duPj4sIFNjb3BlVHlwZSBleHRlbmRzIEJhc2ljU2NvcGVUeXBlXG4+KFxuICAgICAgICBkYXRhOiBUeXBlLFxuICAgICAgICBjaGlsZHJlblByb3BlcnR5TmFtZXM6IEFycmF5PHN0cmluZz4sXG4gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlS2V5czogQXJyYXk8c3RyaW5nPlxuICAgICk6IFNjb3BlVHlwZSA9PlxuICAgIG5ldyBQcm94eShkYXRhLCB7XG4gICAgICAgIG93bktleXModGFyZ2V0OiBUeXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldClcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0KHRhcmdldDogVHlwZSwgbmFtZTogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGFyZ2V0KVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHByb3BlcnR5UmVmZXJlbmNlS2V5cylcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRba2V5IGFzIHVua25vd24gYXMgc3RyaW5nXSA9PT0gbmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogVHlwZVtrZXlvZiBUeXBlXVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBWYWx1ZVR5cGUgPSBNYXBwaW5nPHVua25vd24+XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBTY29wZVR5cGVba2V5b2YgU2NvcGVUeXBlXVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHlwZSBTY29wZVZhbHVlVHlwZSA9IG9iamVjdFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzbGludC1kaXNhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtYXJndW1lbnRzXG4gICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpZXdPYmplY3RBc1Njb3BlPFZhbHVlVHlwZT4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblByb3BlcnR5TmFtZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlSZWZlcmVuY2VLZXlzXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzbGludC1lbmFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1hcmd1bWVudHNcbiAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9LFxuICAgICAgICBzZXQodGFyZ2V0OiBUeXBlLCBuYW1lOiBzdHJpbmcgfCBzeW1ib2wsIHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSAwXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgcHJvcGVydHlSZWZlcmVuY2VLZXlzKVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbVtrZXkgYXMgdW5rbm93biBhcyBrZXlvZiB0eXBlb2YgaXRlbV0gPT09IG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICh0YXJnZXRbaW5kZXhdIGFzIHVua25vd24pID0gdmFsdWVcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDFcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICB9KSBhcyB1bmtub3duIGFzIFNjb3BlVHlwZVxuXG5leHBvcnQgY29uc3Qgdmlld09iamVjdEFzU2NvcGUgPSA8XG4gICAgVHlwZSBleHRlbmRzIE1hcHBpbmc8dW5rbm93bj4sXG4gICAgU2NvcGVUeXBlIGV4dGVuZHMgQmFzaWNTY29wZVR5cGUgPSBCYXNpY1Njb3BlVHlwZVxuPihcbiAgICAgICAgZGF0YTogVHlwZSxcbiAgICAgICAgY2hpbGRyZW5Qcm9wZXJ0eU5hbWVzID0gWydjaGlsZHJlbiddLFxuICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZUtleXMgPSBbJ25hbWUnXVxuICAgICk6IFNjb3BlVHlwZSA9PlxuICAgIG5ldyBQcm94eShkYXRhLCB7XG4gICAgICAgIG93bktleXModGFyZ2V0OiBUeXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldClcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0KHRhcmdldDogVHlwZSwgbmFtZTogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRhcmdldFtuYW1lIGFzIGtleW9mIFR5cGVdXG5cbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBuYW1lKSkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5Qcm9wZXJ0eU5hbWVzLmluY2x1ZGVzKG5hbWUgYXMgc3RyaW5nKSAmJlxuICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBUeXBlW2tleW9mIFR5cGVdXG4gICAgICAgICAgICAgICAgICAgIHR5cGUgVmFsdWVUeXBlID0gQXJyYXk8TWFwcGluZzx1bmtub3duPj5cbiAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogU2NvcGVUeXBlW2tleW9mIFNjb3BlVHlwZV1cbiAgICAgICAgICAgICAgICAgICAgdHlwZSBTY29wZVZhbHVlVHlwZSA9IEFycmF5PEJhc2ljU2NvcGVUeXBlPlxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2aWV3QXJyYXlBc1Njb3BlPFZhbHVlVHlwZSwgU2NvcGVWYWx1ZVR5cGU+KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblByb3BlcnR5TmFtZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZUtleXNcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IFR5cGVba2V5b2YgVHlwZV1cbiAgICAgICAgICAgICAgICAgICAgdHlwZSBWYWx1ZVR5cGUgPSBNYXBwaW5nPHVua25vd24+XG4gICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IFNjb3BlVHlwZVtrZXlvZiBTY29wZVR5cGVdXG4gICAgICAgICAgICAgICAgICAgIC8vIHR5cGUgU2NvcGVWYWx1ZVR5cGUgPSBvYmplY3RcblxuICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgZXNsaW50LWRpc2FibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLWFyZ3VtZW50c1xuICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlld09iamVjdEFzU2NvcGU8VmFsdWVUeXBlPihcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGFzIFZhbHVlVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuUHJvcGVydHlOYW1lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UmVmZXJlbmNlS2V5c1xuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICBlc2xpbnQtZW5hYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1hcmd1bWVudHNcbiAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9LFxuICAgICAgICBzZXQodGFyZ2V0OiBUeXBlLCBuYW1lOiBzdHJpbmcgfCBzeW1ib2wsIHZhbHVlOiBUeXBlW2tleW9mIFR5cGVdKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRhcmdldCwgbmFtZSkpXG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0YXJnZXQsIG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtuYW1lIGFzIGtleW9mIFR5cGVdID0gdmFsdWVcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICB9KSBhcyB1bmtub3duIGFzIFNjb3BlVHlwZVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsWUFBWTs7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYkE7QUFrQkEsT0FBTyxNQUFNLGdCQUFnQixHQUFHLENBR3hCLElBQVUsRUFDVixxQkFBb0MsRUFDcEMscUJBQW9DLEtBRXhDLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtFQUNaLE9BQU8sQ0FBQyxNQUFZLEVBQUU7SUFDbEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztF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