ontimize-web-ngx 15.6.0-next.1 → 15.6.0-next.11

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 (161) hide show
  1. package/esm2020/lib/components/app-header/o-app-header.component.mjs +3 -3
  2. package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +19 -3
  3. package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +17 -4
  4. package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +7 -5
  5. package/esm2020/lib/components/filter-builder/o-filter-builder.component.mjs +1 -1
  6. package/esm2020/lib/components/form/navigation/o-form-navigation.component.mjs +42 -24
  7. package/esm2020/lib/components/form/o-form.component.mjs +4 -3
  8. package/esm2020/lib/components/form/services/o-form-message.service.mjs +2 -2
  9. package/esm2020/lib/components/grid/o-grid.component.mjs +19 -17
  10. package/esm2020/lib/components/grid/skeketon/o-grid-skeleton.component.mjs +12 -15
  11. package/esm2020/lib/components/index.mjs +2 -1
  12. package/esm2020/lib/components/input/file-input/o-file-input.component.mjs +3 -2
  13. package/esm2020/lib/components/input/o-boolean-form-data-component.class.mjs +9 -1
  14. package/esm2020/lib/components/input/o-form-service-component.class.mjs +4 -3
  15. package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +8 -3
  16. package/esm2020/lib/components/list/o-list.component.mjs +41 -16
  17. package/esm2020/lib/components/list/skeleton/o-list-skeleton.component.mjs +12 -15
  18. package/esm2020/lib/components/o-form-data-component.class.mjs +2 -2
  19. package/esm2020/lib/components/o-repeatable-skeleton.component.mjs +33 -0
  20. package/esm2020/lib/components/o-service-base-component.class.mjs +5 -4
  21. package/esm2020/lib/components/o-service-component.class.mjs +10 -9
  22. package/esm2020/lib/components/o-skeleton.component.mjs +15 -6
  23. package/esm2020/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.mjs +2 -2
  24. package/esm2020/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.mjs +1 -1
  25. package/esm2020/lib/components/table/column/cell-renderer/service/o-table-cell-renderer-service.component.mjs +5 -4
  26. package/esm2020/lib/components/table/column/o-column.class.mjs +2 -1
  27. package/esm2020/lib/components/table/column/o-table-column.component.mjs +10 -4
  28. package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs +24 -6
  29. package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +75 -87
  30. package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.mjs +53 -0
  31. package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +12 -4
  32. package/esm2020/lib/components/table/extensions/header/table-menu/o-table-menu.component.mjs +2 -2
  33. package/esm2020/lib/components/table/extensions/o-table.dao.mjs +6 -4
  34. package/esm2020/lib/components/table/extensions/skeleton/o-table-skeleton.component.mjs +5 -19
  35. package/esm2020/lib/components/table/o-table-base.class.mjs +1 -1
  36. package/esm2020/lib/components/table/o-table.component.mjs +104 -10
  37. package/esm2020/lib/components/table/o-table.module.mjs +4 -1
  38. package/esm2020/lib/components/tree/o-tree.component.mjs +96 -14
  39. package/esm2020/lib/components/tree/o-tree.datasource.mjs +3 -3
  40. package/esm2020/lib/components/user-info/o-user-info.component.mjs +5 -4
  41. package/esm2020/lib/config/o-providers.mjs +5 -3
  42. package/esm2020/lib/i18n/i18n.mjs +6 -3
  43. package/esm2020/lib/injection-tokens/index.mjs +19 -0
  44. package/esm2020/lib/interfaces/base-response.interface.mjs +1 -1
  45. package/esm2020/lib/interfaces/form-layout-manager.interface.mjs +1 -1
  46. package/esm2020/lib/interfaces/index.mjs +3 -1
  47. package/esm2020/lib/interfaces/jsonapi-config.interface.mjs +3 -0
  48. package/esm2020/lib/interfaces/jsonapi-response.interface.mjs +2 -1
  49. package/esm2020/lib/interfaces/o-table-column.interface.mjs +1 -1
  50. package/esm2020/lib/interfaces/service-response.interface.mjs +1 -1
  51. package/esm2020/lib/layouts/app-layout/o-app-layout-base.class.mjs +1 -1
  52. package/esm2020/lib/layouts/app-layout/o-app-layout.component.mjs +26 -9
  53. package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +4 -3
  54. package/esm2020/lib/layouts/form-layout/split-pane/o-form-layout-split-pane.component.mjs +2 -2
  55. package/esm2020/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.mjs +2 -1
  56. package/esm2020/lib/services/base-service.class.mjs +3 -3
  57. package/esm2020/lib/services/factories.mjs +25 -53
  58. package/esm2020/lib/services/index.mjs +2 -2
  59. package/esm2020/lib/services/jsonapi/jsonapi-preferences.service.mjs +2 -2
  60. package/esm2020/lib/services/jsonapi/jsonapi.service.mjs +53 -21
  61. package/esm2020/lib/services/request-adapter/base-request-argument.adapter.mjs +12 -0
  62. package/esm2020/lib/services/request-adapter/base-request-argument.interface.mjs +2 -0
  63. package/esm2020/lib/services/request-adapter/index.mjs +5 -0
  64. package/esm2020/lib/services/request-adapter/jsonapi-request-arguments.adapter.mjs +70 -0
  65. package/esm2020/lib/services/request-adapter/ontimize-request-arguments.adapter.mjs +19 -0
  66. package/esm2020/lib/services/state/o-filter-builder-component-state.service.mjs +1 -1
  67. package/esm2020/lib/services/state/o-table-component-state.class.mjs +7 -1
  68. package/esm2020/lib/services/state/o-table-component-state.service.mjs +8 -2
  69. package/esm2020/lib/services/translate/o-translate.service.mjs +3 -2
  70. package/esm2020/lib/types/config.type.mjs +1 -1
  71. package/esm2020/lib/types/form-layout-detail-component-data.type.mjs +1 -1
  72. package/esm2020/lib/types/index.mjs +1 -2
  73. package/esm2020/lib/types/service-configuration.type.mjs +1 -1
  74. package/esm2020/lib/types/table/index.mjs +2 -1
  75. package/esm2020/lib/types/table/o-column-value-filter.type.mjs +1 -1
  76. package/esm2020/lib/types/table/o-table-expandable-row-state.type.mjs +2 -0
  77. package/esm2020/lib/util/codes.mjs +3 -1
  78. package/esm2020/lib/util/errors.mjs +3 -9
  79. package/esm2020/lib/util/factory.util.mjs +67 -0
  80. package/esm2020/lib/util/index.mjs +3 -1
  81. package/esm2020/lib/util/injection-token.utils.mjs +4 -0
  82. package/esm2020/lib/util/preference-mapping-util.mjs +2 -2
  83. package/esm2020/lib/util/sqltypes.mjs +2 -2
  84. package/esm2020/lib/util/util.mjs +11 -53
  85. package/esm2020/public-api.mjs +2 -1
  86. package/fesm2015/ontimize-web-ngx.mjs +6995 -6537
  87. package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
  88. package/fesm2020/ontimize-web-ngx.mjs +6634 -6194
  89. package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
  90. package/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.d.ts +3 -0
  91. package/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.d.ts +1 -0
  92. package/lib/components/app-sidenav/o-app-sidenav.component.d.ts +2 -1
  93. package/lib/components/filter-builder/o-filter-builder.component.d.ts +1 -1
  94. package/lib/components/form/navigation/o-form-navigation.component.d.ts +7 -4
  95. package/lib/components/grid/skeketon/o-grid-skeleton.component.d.ts +4 -7
  96. package/lib/components/index.d.ts +1 -0
  97. package/lib/components/input/o-boolean-form-data-component.class.d.ts +1 -0
  98. package/lib/components/list/o-list.component.d.ts +5 -1
  99. package/lib/components/list/skeleton/o-list-skeleton.component.d.ts +4 -7
  100. package/lib/components/o-repeatable-skeleton.component.d.ts +9 -0
  101. package/lib/components/o-skeleton.component.d.ts +10 -5
  102. package/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.d.ts +1 -1
  103. package/lib/components/table/column/o-column.class.d.ts +2 -1
  104. package/lib/components/table/column/o-table-column.component.d.ts +2 -2
  105. package/lib/components/table/extensions/contextmenu/o-table-context-menu.component.d.ts +2 -0
  106. package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.d.ts +9 -6
  107. package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.d.ts +12 -0
  108. package/lib/components/table/extensions/header/o-table-header-components.d.ts +2 -2
  109. package/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.d.ts +1 -1
  110. package/lib/components/table/extensions/skeleton/o-table-skeleton.component.d.ts +1 -10
  111. package/lib/components/table/o-table-base.class.d.ts +2 -0
  112. package/lib/components/table/o-table.component.d.ts +12 -2
  113. package/lib/components/tree/o-tree.component.d.ts +10 -1
  114. package/lib/components/user-info/o-user-info.component.d.ts +2 -1
  115. package/lib/config/o-directives.d.ts +1 -1
  116. package/lib/i18n/i18n.d.ts +3 -0
  117. package/lib/injection-tokens/index.d.ts +33 -0
  118. package/lib/interfaces/base-response.interface.d.ts +0 -2
  119. package/lib/interfaces/form-layout-manager.interface.d.ts +1 -1
  120. package/lib/interfaces/index.d.ts +2 -0
  121. package/lib/interfaces/jsonapi-config.interface.d.ts +3 -0
  122. package/lib/interfaces/jsonapi-response.interface.d.ts +47 -7
  123. package/lib/interfaces/o-table-column.interface.d.ts +2 -1
  124. package/lib/interfaces/service-response.interface.d.ts +2 -0
  125. package/lib/layouts/app-layout/o-app-layout-base.class.d.ts +1 -1
  126. package/lib/layouts/app-layout/o-app-layout.component.d.ts +7 -3
  127. package/lib/services/base-service.class.d.ts +2 -2
  128. package/lib/services/factories.d.ts +7 -28
  129. package/lib/services/index.d.ts +1 -1
  130. package/lib/services/jsonapi/jsonapi.service.d.ts +7 -4
  131. package/lib/services/{query-arguments/base-query-argument.adapter.d.ts → request-adapter/base-request-argument.adapter.d.ts} +2 -1
  132. package/lib/services/{query-arguments/base-query-argument.interface.d.ts → request-adapter/base-request-argument.interface.d.ts} +1 -1
  133. package/lib/services/request-adapter/index.d.ts +4 -0
  134. package/lib/services/request-adapter/jsonapi-request-arguments.adapter.d.ts +13 -0
  135. package/lib/services/request-adapter/ontimize-request-arguments.adapter.d.ts +8 -0
  136. package/lib/services/state/o-filter-builder-component-state.service.d.ts +1 -1
  137. package/lib/services/state/o-table-component-state.class.d.ts +3 -0
  138. package/lib/types/config.type.d.ts +2 -2
  139. package/lib/types/form-layout-detail-component-data.type.d.ts +1 -1
  140. package/lib/types/index.d.ts +0 -1
  141. package/lib/types/service-configuration.type.d.ts +12 -2
  142. package/lib/types/table/index.d.ts +1 -0
  143. package/lib/types/table/o-column-value-filter.type.d.ts +3 -0
  144. package/lib/types/table/o-table-expandable-row-state.type.d.ts +5 -0
  145. package/lib/util/codes.d.ts +3 -0
  146. package/lib/util/factory.util.d.ts +10 -0
  147. package/lib/util/index.d.ts +2 -0
  148. package/lib/util/injection-token.utils.d.ts +2 -0
  149. package/lib/util/util.d.ts +1 -5
  150. package/package.json +1 -1
  151. package/public-api.d.ts +1 -0
  152. package/esm2020/lib/services/query-arguments/base-query-argument.adapter.mjs +0 -9
  153. package/esm2020/lib/services/query-arguments/base-query-argument.interface.mjs +0 -2
  154. package/esm2020/lib/services/query-arguments/index.mjs +0 -5
  155. package/esm2020/lib/services/query-arguments/jsonapi-query-arguments.adapter.mjs +0 -62
  156. package/esm2020/lib/services/query-arguments/ontimize-query-arguments.adapter.mjs +0 -19
  157. package/esm2020/lib/types/ontimize-service-config.type.mjs +0 -2
  158. package/lib/services/query-arguments/index.d.ts +0 -4
  159. package/lib/services/query-arguments/jsonapi-query-arguments.adapter.d.ts +0 -12
  160. package/lib/services/query-arguments/ontimize-query-arguments.adapter.d.ts +0 -8
  161. package/lib/types/ontimize-service-config.type.d.ts +0 -5
@@ -124,4 +124,6 @@ Codes.VISIBLE_EXPORT_BUTTONS = ['xlsx', 'pdf', 'html'];
124
124
  Codes.VISIBLE_EXPORT_BUTTONS3X = ['xlsx', 'pdf', 'csv'];
125
125
  Codes.DEFAULT_CHANGE_EVENT = 'onValueChange';
126
126
  Codes.TYPES_DATE_GROUPS = ["YEAR", "MONTH", "YEAR_MONTH", "YEAR_MONTH_DAY"];
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9jb2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLE9BQU8sS0FBSztJQThIaEIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxLQUFLLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBYTtRQUNuQyxPQUFPLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUI7UUFDdEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDOUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjO1FBQ2hDLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQWdCO1FBRXhDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFL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QUM7QUFDdkMsa0JBQVksR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFeEMsNkJBQXVCLEdBQW1CLFNBQVMsQ0FBQztBQUNwRCw0QkFBc0IsR0FBbUIsUUFBUSxDQUFDO0FBQ2xELDRCQUFzQixHQUFhLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMzRCw4QkFBd0IsR0FBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFNUQsMEJBQW9CLEdBQWtCLGVBQWUsQ0FBQztBQUN0RCx1QkFBaUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBPQXBwTGF5b3V0TW9kZSA9ICdtb2JpbGUnIHwgJ2Rlc2t0b3AnO1xuZXhwb3J0IHR5cGUgT1NpZGVuYXZNb2RlID0gJ292ZXInIHwgJ3B1c2gnIHwgJ3NpZGUnO1xuZXhwb3J0IHR5cGUgQ0hBTkdFX0VWRU5UUyA9ICdvblZhbHVlQ2hhbmdlJyB8ICdvbkNoYW5nZSc7XG5cbmV4cG9ydCB0eXBlIE9Sb3dIZWlnaHQgPSAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnO1xuZXhwb3J0IHR5cGUgT1RhYmxlRWRpdGlvbk1vZGUgPSAnbm9uZScgfCAnY2xpY2snIHwgJ2RibGNsaWNrJyB8ICdkb3VibGVjbGljayc7XG5leHBvcnQgdHlwZSBPVGFibGVEZXRhaWxNb2RlID0gJ25vbmUnIHwgJ2NsaWNrJyB8ICdkYmxjbGljaycgfCAnZG91YmxlY2xpY2snO1xuZXhwb3J0IGNsYXNzIENvZGVzIHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBR0lOQVRFRF9RVUVSWV9NRVRIT0QgPSAnYWR2YW5jZWRRdWVyeSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVMRVRFX01FVEhPRCA9ICdkZWxldGUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOU0VSVF9NRVRIT0QgPSAnaW5zZXJ0JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVUERBVEVfTUVUSE9EID0gJ3VwZGF0ZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUVVFUllfTUVUSE9EID0gJ3F1ZXJ5JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBRVUVSWUJZSURfTUVUSE9EID0gJ3F1ZXJ5QnlJZCc7XG5cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1FVRVJZX1JPV1MgPSAxMDtcbiAgcHVibGljIHN0YXRpYyBQQUdFX1NJWkVfT1BUSU9OUyA9IFsxMCwgMjUsIDUwLCAxMDBdO1xuXG4gIHB1YmxpYyBzdGF0aWMgREVUQUlMX0lDT04gPSAnY2hldnJvbl9yaWdodCc7XG4gIHB1YmxpYyBzdGF0aWMgRURJVF9JQ09OID0gJ21vZGVfZWRpdCc7XG5cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1JPV19IRUlHSFQgPSAnbWVkaXVtJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVkFJTEFCTEVfUk9XX0hFSUdIVFNfVkFMVUVTID0gWydzbWFsbCcsICdtZWRpdW0nLCAnbGFyZ2UnXTtcblxuICBwdWJsaWMgc3RhdGljIERFVEFJTF9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgREVUQUlMX01PREVfQ0xJQ0sgPSAnY2xpY2snO1xuICBwdWJsaWMgc3RhdGljIERFVEFJTF9NT0RFX0RCTENMSUNLX1ZBTFVFUyA9IFsnZGJsY2xpY2snLCAnZG91YmxlY2xpY2snXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVkFJTEFCTEVfREVUQUlMX01PREVTID0gW0NvZGVzLkRFVEFJTF9NT0RFX05PTkUsIENvZGVzLkRFVEFJTF9NT0RFX0NMSUNLLCAuLi5Db2Rlcy5ERVRBSUxfTU9ERV9EQkxDTElDS19WQUxVRVNdO1xuXG4gIHB1YmxpYyBzdGF0aWMgRURJVElPTl9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgRURJVElPTl9NT0RFX0NMSUNLID0gJ2NsaWNrJztcbiAgcHVibGljIHN0YXRpYyBFRElUSU9OX01PREVfREJMQ0xJQ0tfVkFMVUVTID0gWydkYmxjbGljaycsICdkb3VibGVjbGljayddO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWQUlMQUJMRV9NT0RFUyA9IFtDb2Rlcy5FRElUSU9OX01PREVfTk9ORSwgQ29kZXMuRURJVElPTl9NT0RFX0NMSUNLLCAuLi5Db2Rlcy5FRElUSU9OX01PREVfREJMQ0xJQ0tfVkFMVUVTXTtcblxuICBwdWJsaWMgc3RhdGljIFNFTEVDVElPTl9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgU0VMRUNUSU9OX01PREVfU0lOR0xFID0gJ3NpbmdsZSc7XG4gIHB1YmxpYyBzdGF0aWMgU0VMRUNUSU9OX01PREVfTVVMVElQTEUgPSAnbXVsdGlwbGUnO1xuXG4gIHB1YmxpYyBzdGF0aWMgRVhQT1JUX01PREVfVklTSUJMRSA9ICd2aXNpYmxlJztcbiAgcHVibGljIHN0YXRpYyBFWFBPUlRfTU9ERV9MT0NBTCA9ICdsb2NhbCc7XG4gIHB1YmxpYyBzdGF0aWMgRVhQT1JUX01PREVfQUxMID0gJ2FsbCc7XG5cbiAgcHVibGljIHN0YXRpYyBIWVBIRU5fU0VQQVJBVE9SID0gJy0nO1xuICBwdWJsaWMgc3RhdGljIFNQQUNFX1NFUEFSQVRPUiA9ICcgJztcbiAgcHVibGljIHN0YXRpYyBDT0xVTU5TX0FMSUFTX1NFUEFSQVRPUiA9ICc6JztcbiAgcHVibGljIHN0YXRpYyBBUlJBWV9JTlBVVF9TRVBBUkFUT1IgPSAnOyc7XG4gIHB1YmxpYyBzdGF0aWMgVFlQRV9TRVBBUkFUT1IgPSAnOic7XG4gIHB1YmxpYyBzdGF0aWMgVkFMVUVTX1NFUEFSQVRPUiA9ICc9JztcbiAgcHVibGljIHN0YXRpYyBBU0NfU09SVCA9ICdhc2MnO1xuICBwdWJsaWMgc3RhdGljIERFU0NfU09SVCA9ICdkZXNjJztcblxuICBwdWJsaWMgc3RhdGljIFRZUEVfSU5UID0gJ2ludCc7XG5cbiAgcHVibGljIHN0YXRpYyBST1VURV9TRVBBUkFUT1IgPSAnLyc7XG4gIHB1YmxpYyBzdGF0aWMgUk9VVEVfVkFSSUFCTEVfQ0hBUiA9ICc6JztcblxuICBwdWJsaWMgc3RhdGljIFBBUkVOVF9LRVlTX0tFWSA9ICdwayc7XG4gIHB1YmxpYyBzdGF0aWMgUVVFUllfUEFSQU1TID0gJ3F1ZXJ5UGFyYW1zJztcbiAgcHVibGljIHN0YXRpYyBJU19ERVRBSUwgPSAnaXNkZXRhaWwnO1xuXG4gIHB1YmxpYyBzdGF0aWMgTEFOR1VBR0VfS0VZID0gJ2xhbmcnO1xuICBwdWJsaWMgc3RhdGljIFNFU1NJT05fS0VZID0gJ3Nlc3Npb24nO1xuICBwdWJsaWMgc3RhdGljIFNFU1NJT05fRVhQSVJFRF9LRVkgPSAnc2Vzc2lvbi1leHBpcmVkJztcblxuICBwdWJsaWMgc3RhdGljIExPR0lOX1JPVVRFID0gJy9sb2dpbic7XG4gIHB1YmxpYyBzdGF0aWMgRk9SQklEREVOX1JPVVRFID0gJzQwMyc7XG4gIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9FRElUX1JPVVRFID0gJ2VkaXQnO1xuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfREVUQUlMX1JPVVRFID0gdW5kZWZpbmVkO1xuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfSU5TRVJUX1JPVVRFID0gJ25ldyc7XG5cbiAgcHVibGljIHN0YXRpYyBJR05PUkVfQ0FOX0RFQUNUSVZBVEUgPSAnaWdub3JlX2Nhbl9kZWFjdGl2YXRlJztcbiAgcHVibGljIHN0YXRpYyBJTlNFUlRJT05fTU9ERSA9ICdpbnNlcnRpb25Nb2RlJztcblxuICBwdWJsaWMgc3RhdGljIE9OVElNSVpFX1NVQ0NFU1NGVUxfQ09ERSA9IDA7XG4gIHB1YmxpYyBzdGF0aWMgT05USU1JWkVfRkFJTEVEX0NPREUgPSAxO1xuICBwdWJsaWMgc3RhdGljIE9OVElNSVpFX1VOQVVUSE9SSVpFRF9DT0RFID0gMztcblxuICBwdWJsaWMgc3RhdGljIElDT05fUE9TSVRJT05fTEVGVCA9ICdsZWZ0JztcbiAgcHVibGljIHN0YXRpYyBJQ09OX1BPU0lUSU9OX1JJR0hUID0gJ3JpZ2h0JztcblxuICBwdWJsaWMgc3RhdGljIENPTFVNTl9USVRMRV9BTElHTl9TVEFSVCA9ICdzdGFydCc7XG4gIHB1YmxpYyBzdGF0aWMgQ09MVU1OX1RJVExFX0FMSUdOX0NFTlRFUiA9ICdjZW50ZXInO1xuICBwdWJsaWMgc3RhdGljIENPTFVNTl9USVRMRV9BTElHTl9FTkQgPSAnZW5kJztcbiAgcHVibGljIHN0YXRpYyBDT0xVTU5fVElUTEVfQUxJR05fQVVUTyA9ICdhdXRvJztcbiAgcHVibGljIHN0YXRpYyBBVkFJTEFCTEVfQ09MVU1OX1RJVExFX0FMSUdOUyA9XG4gICAgW0NvZGVzLkNPTFVNTl9USVRMRV9BTElHTl9TVEFSVCwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0NFTlRFUiwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0VORCwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0FVVE9dO1xuXG4gIHB1YmxpYyBzdGF0aWMgT19NQVRfRVJST1JfU1RBTkRBUkQgPSAnc3RhbmRhcmQnO1xuICBwdWJsaWMgc3RhdGljIE9fTUFUX0VSUk9SX0xJVEUgPSAnbGl0ZSc7XG5cbiAgcHVibGljIHN0YXRpYyBPX0lOUFVUU19PUFRJT05TX0NPTE9SX0FDQ0VOVCA9ICdhY2NlbnQnO1xuICBwdWJsaWMgc3RhdGljIEhvdXJGb3JtYXQgPSB7XG4gICAgVFdFTFZFOiAnaGg6bW0gYScsXG4gICAgVFdFTlRZX0ZPVVI6ICdISDptbSBhJyxcbiAgfTtcblxuICAvLyBPRm9ybUNvbXBvbmVudFxuICBwdWJsaWMgc3RhdGljIENMT1NFX0RFVEFJTF9BQ1RJT046IHN0cmluZyA9ICdDTE9TRSc7XG4gIHB1YmxpYyBzdGF0aWMgQkFDS19BQ1RJT046IHN0cmluZyA9ICdCQUNLJztcbiAgcHVibGljIHN0YXRpYyBSRUxPQURfQUNUSU9OOiBzdHJpbmcgPSAnUkVMT0FEJztcbiAgcHVibGljIHN0YXRpYyBHT19FRElUX0FDVElPTjogc3RyaW5nID0gJ0dPX0VESVQnO1xuICBwdWJsaWMgc3RhdGljIEVESVRfQUNUSU9OOiBzdHJpbmcgPSAnRURJVCc7XG4gIHB1YmxpYyBzdGF0aWMgSU5TRVJUX0FDVElPTjogc3RyaW5nID0gJ0lOU0VSVCc7XG4gIHB1YmxpYyBzdGF0aWMgR09fSU5TRVJUX0FDVElPTjogc3RyaW5nID0gJ0dPX0lOU0VSVCc7XG4gIHB1YmxpYyBzdGF0aWMgREVMRVRFX0FDVElPTjogc3RyaW5nID0gJ0RFTEVURSc7XG4gIHB1YmxpYyBzdGF0aWMgVU5ET19MQVNUX0NIQU5HRV9BQ1RJT046IHN0cmluZyA9ICdVTkRPX0xBU1RfQ0hBTkdFJztcblxuICAvLyBPVGFibGVDb21wb25lbnRcbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX0NPTFVNTl9NSU5fV0lEVEggPSA4MDtcbiAgcHVibGljIHN0YXRpYyBOQU1FX0NPTFVNTl9TRUxFQ1QgPSAnc2VsZWN0JztcbiAgcHVibGljIHN0YXRpYyBOQU1FX0NPTFVNTl9FWFBBTkRBQkxFID0gJ2V4cGFuZGFibGUnO1xuICBwdWJsaWMgc3RhdGljIFNVRkZJWF9DT0xVTU5fSU5TRVJUQUJMRSA9ICdfaW5zZXJ0YWJsZSc7XG4gIHB1YmxpYyBzdGF0aWMgTElNSVRfU0NST0xMVklSVFVBTCA9IDUwO1xuXG4gIHB1YmxpYyBzdGF0aWMgVFdFTlRZX0ZPVVJfSE9VUl9GT1JNQVQgPSAyNDtcbiAgcHVibGljIHN0YXRpYyBUV0VMVkVfRk9VUl9IT1VSX0ZPUk1BVCA9IDEyO1xuXG4gIHB1YmxpYyBzdGF0aWMgT0FwcExheW91dE1vZGVzOiBPQXBwTGF5b3V0TW9kZVtdID0gWydtb2JpbGUnLCAnZGVza3RvcCddO1xuICBwdWJsaWMgc3RhdGljIE9TaWRlbmF2TW9kZXM6IE9TaWRlbmF2TW9kZVtdID0gWydvdmVyJywgJ3B1c2gnLCAnc2lkZSddO1xuXG4gIHB1YmxpYyBzdGF0aWMgT0FwcExheW91dE1vZGUgPSBbJ21vYmlsZScsICdkZXNrdG9wJ107XG4gIHB1YmxpYyBzdGF0aWMgT1NpZGVuYXZNb2RlID0gWydvdmVyJywgJ3B1c2gnLCAnc2lkZSddO1xuXG4gIHB1YmxpYyBzdGF0aWMgQVBQX0xBWU9VVF9NT0RFX0RFU0tUT1A6IE9BcHBMYXlvdXRNb2RlID0gJ2Rlc2t0b3AnO1xuICBwdWJsaWMgc3RhdGljIEFQUF9MQVlPVVRfTU9ERV9NT0JJTEU6IE9BcHBMYXlvdXRNb2RlID0gJ21vYmlsZSc7XG4gIHB1YmxpYyBzdGF0aWMgVklTSUJMRV9FWFBPUlRfQlVUVE9OUzogc3RyaW5nW10gPSBbJ3hsc3gnLCAncGRmJywgJ2h0bWwnXTtcbiAgcHVibGljIHN0YXRpYyBWSVNJQkxFX0VYUE9SVF9CVVRUT05TM1g6IHN0cmluZ1tdID0gWyd4bHN4JywgJ3BkZicsICdjc3YnXTtcblxuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfQ0hBTkdFX0VWRU5UOiBDSEFOR0VfRVZFTlRTID0gJ29uVmFsdWVDaGFuZ2UnO1xuICBwdWJsaWMgc3RhdGljIFRZUEVTX0RBVEVfR1JPVVBTID0gW1wiWUVBUlwiLCBcIk1PTlRIXCIsIFwiWUVBUl9NT05USFwiLCBcIllFQVJfTU9OVEhfREFZXCJdO1xuXG5cbiAgc3RhdGljIGlzRG91YmxlQ2xpY2tNb2RlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ29kZXMuREVUQUlMX01PREVfREJMQ0xJQ0tfVkFMVUVTLmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkUm93SGVpZ2h0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ29kZXMuQVZBSUxBQkxFX1JPV19IRUlHSFRTX1ZBTFVFUy5pbmRleE9mKHZhbHVlKSAhPT0gLTE7XG4gIH1cblxuICBzdGF0aWMgZ2V0SXNEZXRhaWxPYmplY3QoKTogYW55IHtcbiAgICBjb25zdCByZXMgPSB7fTtcbiAgICByZXNbQ29kZXMuSVNfREVUQUlMXSA9ICd0cnVlJztcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdFN0cmluZyhmb3JtYXQ6IG51bWJlcikge1xuICAgIHJldHVybiAoZm9ybWF0ID09PSBDb2Rlcy5UV0VOVFlfRk9VUl9IT1VSX0ZPUk1BVCA/IENvZGVzLkhvdXJGb3JtYXQuVFdFTlRZX0ZPVVIgOiBDb2Rlcy5Ib3VyRm9ybWF0LlRXRUxWRSk7XG4gIH1cblxuICBzdGF0aWMgaXNIb3VySW5wdXRBbGxvd2VkKGU6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAvLyBBbGxvdzogYmFja3NwYWNlLCBkZWxldGUsIHRhYiwgZXNjYXBlLCBlbnRlclxuICAgIGlmIChbNDYsIDgsIDksIDI3LCAxM10uc29tZShuID0+IG4gPT09IGUua2V5Q29kZSkgfHxcbiAgICAgIChlLmtleSA9PT0gJzonKSB8fFxuICAgICAgLy8gQWxsb3c6IEN0cmwvY21kK0FcbiAgICAgIChlLmtleUNvZGUgPT09IDY1ICYmIChlLmN0cmxLZXkgPT09IHRydWUgfHwgZS5tZXRhS2V5ID09PSB0cnVlKSkgfHxcbiAgICAgIC8vIEFsbG93OiBDdHJsL2NtZCtDXG4gICAgICAoZS5rZXlDb2RlID09PSA2NyAmJiAoZS5jdHJsS2V5ID09PSB0cnVlIHx8IGUubWV0YUtleSA9PT0gdHJ1ZSkpIHx8XG4gICAgICAvLyBBbGxvdzogQ3RybC9jbWQrWFxuICAgICAgKGUua2V5Q29kZSA9PT0gODggJiYgKGUuY3RybEtleSA9PT0gdHJ1ZSB8fCBlLm1ldGFLZXkgPT09IHRydWUpKSB8fFxuICAgICAgLy8gQWxsb3c6IGhvbWUsIGVuZCwgbGVmdCwgcmlnaHQsIHVwLCBkb3duXG4gICAgICAoZS5rZXlDb2RlID49IDM1ICYmIGUua2V5Q29kZSA8PSA0MCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gISgoZS5rZXlDb2RlIDwgNDggfHwgZS5rZXlDb2RlID4gNTcpICYmIChlLmtleUNvZGUgPCA5NiB8fCBlLmtleUNvZGUgPiAxMDUpKTtcbiAgfVxuICBzdGF0aWMgaXNWYWxpZEVkaXRpb25Nb2RlKGVkaXRpb25Nb2RlOiBPVGFibGVFZGl0aW9uTW9kZSkge1xuICAgIHJldHVybiBDb2Rlcy5BVkFJTEFCTEVfTU9ERVMuaW5kZXhPZihlZGl0aW9uTW9kZSkgIT09IC0xO1xuICB9XG4gIHN0YXRpYyBpc1ZhbGlkRGV0YWlsTW9kZShkZXRhaWxNb2RlOiBPVGFibGVEZXRhaWxNb2RlKTogYW55IHtcbiAgICByZXR1cm4gQ29kZXMuQVZBSUxBQkxFX0RFVEFJTF9NT0RFUy5pbmRleE9mKGRldGFpbE1vZGUpICE9PSAtMTtcbiAgfVxuXG59XG4iXX0=
127
+ Codes.TOOLTIP_DISPLAY_MODE = ['always', 'never', 'only-collapsed', 'only-expanded'];
128
+ Codes.TOOLTIP_DISPLAY_COLLAPSED = 'only-collapsed';
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9jb2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLE9BQU8sS0FBSztJQWdJaEIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxLQUFLLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBYTtRQUNuQyxPQUFPLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUI7UUFDdEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDOUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjO1FBQ2hDLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQWdCO1FBRXhDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFL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QUM7QUFDdkMsa0JBQVksR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFeEMsNkJBQXVCLEdBQW1CLFNBQVMsQ0FBQztBQUNwRCw0QkFBc0IsR0FBbUIsUUFBUSxDQUFDO0FBQ2xELDRCQUFzQixHQUFhLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMzRCw4QkFBd0IsR0FBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFNUQsMEJBQW9CLEdBQWtCLGVBQWUsQ0FBQztBQUN0RCx1QkFBaUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDN0QsMEJBQW9CLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBQzlFLCtCQUF5QixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT0FwcExheW91dE1vZGUgPSAnbW9iaWxlJyB8ICdkZXNrdG9wJztcbmV4cG9ydCB0eXBlIE9TaWRlbmF2TW9kZSA9ICdvdmVyJyB8ICdwdXNoJyB8ICdzaWRlJztcbmV4cG9ydCB0eXBlIENIQU5HRV9FVkVOVFMgPSAnb25WYWx1ZUNoYW5nZScgfCAnb25DaGFuZ2UnO1xuXG5leHBvcnQgdHlwZSBPUm93SGVpZ2h0ID0gJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcbmV4cG9ydCB0eXBlIE9UYWJsZUVkaXRpb25Nb2RlID0gJ25vbmUnIHwgJ2NsaWNrJyB8ICdkYmxjbGljaycgfCAnZG91YmxlY2xpY2snO1xuZXhwb3J0IHR5cGUgT1RhYmxlRGV0YWlsTW9kZSA9ICdub25lJyB8ICdjbGljaycgfCAnZGJsY2xpY2snIHwgJ2RvdWJsZWNsaWNrJztcbmV4cG9ydCB0eXBlIE9Ub29sdGlwRGlzcGxheU1vZGUgPSAnYWx3YXlzJ3wgJ25ldmVyJyB8ICdvbmx5LWNvbGxhcHNlZCd8ICdvbmx5LWV4cGFuZGVkJztcblxuZXhwb3J0IGNsYXNzIENvZGVzIHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBR0lOQVRFRF9RVUVSWV9NRVRIT0QgPSAnYWR2YW5jZWRRdWVyeSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVMRVRFX01FVEhPRCA9ICdkZWxldGUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOU0VSVF9NRVRIT0QgPSAnaW5zZXJ0JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVUERBVEVfTUVUSE9EID0gJ3VwZGF0ZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUVVFUllfTUVUSE9EID0gJ3F1ZXJ5JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBRVUVSWUJZSURfTUVUSE9EID0gJ3F1ZXJ5QnlJZCc7XG5cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1FVRVJZX1JPV1MgPSAxMDtcbiAgcHVibGljIHN0YXRpYyBQQUdFX1NJWkVfT1BUSU9OUyA9IFsxMCwgMjUsIDUwLCAxMDBdO1xuXG4gIHB1YmxpYyBzdGF0aWMgREVUQUlMX0lDT04gPSAnY2hldnJvbl9yaWdodCc7XG4gIHB1YmxpYyBzdGF0aWMgRURJVF9JQ09OID0gJ21vZGVfZWRpdCc7XG5cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1JPV19IRUlHSFQgPSAnbWVkaXVtJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVkFJTEFCTEVfUk9XX0hFSUdIVFNfVkFMVUVTID0gWydzbWFsbCcsICdtZWRpdW0nLCAnbGFyZ2UnXTtcblxuICBwdWJsaWMgc3RhdGljIERFVEFJTF9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgREVUQUlMX01PREVfQ0xJQ0sgPSAnY2xpY2snO1xuICBwdWJsaWMgc3RhdGljIERFVEFJTF9NT0RFX0RCTENMSUNLX1ZBTFVFUyA9IFsnZGJsY2xpY2snLCAnZG91YmxlY2xpY2snXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVkFJTEFCTEVfREVUQUlMX01PREVTID0gW0NvZGVzLkRFVEFJTF9NT0RFX05PTkUsIENvZGVzLkRFVEFJTF9NT0RFX0NMSUNLLCAuLi5Db2Rlcy5ERVRBSUxfTU9ERV9EQkxDTElDS19WQUxVRVNdO1xuXG4gIHB1YmxpYyBzdGF0aWMgRURJVElPTl9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgRURJVElPTl9NT0RFX0NMSUNLID0gJ2NsaWNrJztcbiAgcHVibGljIHN0YXRpYyBFRElUSU9OX01PREVfREJMQ0xJQ0tfVkFMVUVTID0gWydkYmxjbGljaycsICdkb3VibGVjbGljayddO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWQUlMQUJMRV9NT0RFUyA9IFtDb2Rlcy5FRElUSU9OX01PREVfTk9ORSwgQ29kZXMuRURJVElPTl9NT0RFX0NMSUNLLCAuLi5Db2Rlcy5FRElUSU9OX01PREVfREJMQ0xJQ0tfVkFMVUVTXTtcblxuICBwdWJsaWMgc3RhdGljIFNFTEVDVElPTl9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgU0VMRUNUSU9OX01PREVfU0lOR0xFID0gJ3NpbmdsZSc7XG4gIHB1YmxpYyBzdGF0aWMgU0VMRUNUSU9OX01PREVfTVVMVElQTEUgPSAnbXVsdGlwbGUnO1xuXG4gIHB1YmxpYyBzdGF0aWMgRVhQT1JUX01PREVfVklTSUJMRSA9ICd2aXNpYmxlJztcbiAgcHVibGljIHN0YXRpYyBFWFBPUlRfTU9ERV9MT0NBTCA9ICdsb2NhbCc7XG4gIHB1YmxpYyBzdGF0aWMgRVhQT1JUX01PREVfQUxMID0gJ2FsbCc7XG5cbiAgcHVibGljIHN0YXRpYyBIWVBIRU5fU0VQQVJBVE9SID0gJy0nO1xuICBwdWJsaWMgc3RhdGljIFNQQUNFX1NFUEFSQVRPUiA9ICcgJztcbiAgcHVibGljIHN0YXRpYyBDT0xVTU5TX0FMSUFTX1NFUEFSQVRPUiA9ICc6JztcbiAgcHVibGljIHN0YXRpYyBBUlJBWV9JTlBVVF9TRVBBUkFUT1IgPSAnOyc7XG4gIHB1YmxpYyBzdGF0aWMgVFlQRV9TRVBBUkFUT1IgPSAnOic7XG4gIHB1YmxpYyBzdGF0aWMgVkFMVUVTX1NFUEFSQVRPUiA9ICc9JztcbiAgcHVibGljIHN0YXRpYyBBU0NfU09SVCA9ICdhc2MnO1xuICBwdWJsaWMgc3RhdGljIERFU0NfU09SVCA9ICdkZXNjJztcblxuICBwdWJsaWMgc3RhdGljIFRZUEVfSU5UID0gJ2ludCc7XG5cbiAgcHVibGljIHN0YXRpYyBST1VURV9TRVBBUkFUT1IgPSAnLyc7XG4gIHB1YmxpYyBzdGF0aWMgUk9VVEVfVkFSSUFCTEVfQ0hBUiA9ICc6JztcblxuICBwdWJsaWMgc3RhdGljIFBBUkVOVF9LRVlTX0tFWSA9ICdwayc7XG4gIHB1YmxpYyBzdGF0aWMgUVVFUllfUEFSQU1TID0gJ3F1ZXJ5UGFyYW1zJztcbiAgcHVibGljIHN0YXRpYyBJU19ERVRBSUwgPSAnaXNkZXRhaWwnO1xuXG4gIHB1YmxpYyBzdGF0aWMgTEFOR1VBR0VfS0VZID0gJ2xhbmcnO1xuICBwdWJsaWMgc3RhdGljIFNFU1NJT05fS0VZID0gJ3Nlc3Npb24nO1xuICBwdWJsaWMgc3RhdGljIFNFU1NJT05fRVhQSVJFRF9LRVkgPSAnc2Vzc2lvbi1leHBpcmVkJztcblxuICBwdWJsaWMgc3RhdGljIExPR0lOX1JPVVRFID0gJy9sb2dpbic7XG4gIHB1YmxpYyBzdGF0aWMgRk9SQklEREVOX1JPVVRFID0gJzQwMyc7XG4gIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9FRElUX1JPVVRFID0gJ2VkaXQnO1xuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfREVUQUlMX1JPVVRFID0gdW5kZWZpbmVkO1xuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfSU5TRVJUX1JPVVRFID0gJ25ldyc7XG5cbiAgcHVibGljIHN0YXRpYyBJR05PUkVfQ0FOX0RFQUNUSVZBVEUgPSAnaWdub3JlX2Nhbl9kZWFjdGl2YXRlJztcbiAgcHVibGljIHN0YXRpYyBJTlNFUlRJT05fTU9ERSA9ICdpbnNlcnRpb25Nb2RlJztcblxuICBwdWJsaWMgc3RhdGljIE9OVElNSVpFX1NVQ0NFU1NGVUxfQ09ERSA9IDA7XG4gIHB1YmxpYyBzdGF0aWMgT05USU1JWkVfRkFJTEVEX0NPREUgPSAxO1xuICBwdWJsaWMgc3RhdGljIE9OVElNSVpFX1VOQVVUSE9SSVpFRF9DT0RFID0gMztcblxuICBwdWJsaWMgc3RhdGljIElDT05fUE9TSVRJT05fTEVGVCA9ICdsZWZ0JztcbiAgcHVibGljIHN0YXRpYyBJQ09OX1BPU0lUSU9OX1JJR0hUID0gJ3JpZ2h0JztcblxuICBwdWJsaWMgc3RhdGljIENPTFVNTl9USVRMRV9BTElHTl9TVEFSVCA9ICdzdGFydCc7XG4gIHB1YmxpYyBzdGF0aWMgQ09MVU1OX1RJVExFX0FMSUdOX0NFTlRFUiA9ICdjZW50ZXInO1xuICBwdWJsaWMgc3RhdGljIENPTFVNTl9USVRMRV9BTElHTl9FTkQgPSAnZW5kJztcbiAgcHVibGljIHN0YXRpYyBDT0xVTU5fVElUTEVfQUxJR05fQVVUTyA9ICdhdXRvJztcbiAgcHVibGljIHN0YXRpYyBBVkFJTEFCTEVfQ09MVU1OX1RJVExFX0FMSUdOUyA9XG4gICAgW0NvZGVzLkNPTFVNTl9USVRMRV9BTElHTl9TVEFSVCwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0NFTlRFUiwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0VORCwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0FVVE9dO1xuXG4gIHB1YmxpYyBzdGF0aWMgT19NQVRfRVJST1JfU1RBTkRBUkQgPSAnc3RhbmRhcmQnO1xuICBwdWJsaWMgc3RhdGljIE9fTUFUX0VSUk9SX0xJVEUgPSAnbGl0ZSc7XG5cbiAgcHVibGljIHN0YXRpYyBPX0lOUFVUU19PUFRJT05TX0NPTE9SX0FDQ0VOVCA9ICdhY2NlbnQnO1xuICBwdWJsaWMgc3RhdGljIEhvdXJGb3JtYXQgPSB7XG4gICAgVFdFTFZFOiAnaGg6bW0gYScsXG4gICAgVFdFTlRZX0ZPVVI6ICdISDptbSBhJyxcbiAgfTtcblxuICAvLyBPRm9ybUNvbXBvbmVudFxuICBwdWJsaWMgc3RhdGljIENMT1NFX0RFVEFJTF9BQ1RJT046IHN0cmluZyA9ICdDTE9TRSc7XG4gIHB1YmxpYyBzdGF0aWMgQkFDS19BQ1RJT046IHN0cmluZyA9ICdCQUNLJztcbiAgcHVibGljIHN0YXRpYyBSRUxPQURfQUNUSU9OOiBzdHJpbmcgPSAnUkVMT0FEJztcbiAgcHVibGljIHN0YXRpYyBHT19FRElUX0FDVElPTjogc3RyaW5nID0gJ0dPX0VESVQnO1xuICBwdWJsaWMgc3RhdGljIEVESVRfQUNUSU9OOiBzdHJpbmcgPSAnRURJVCc7XG4gIHB1YmxpYyBzdGF0aWMgSU5TRVJUX0FDVElPTjogc3RyaW5nID0gJ0lOU0VSVCc7XG4gIHB1YmxpYyBzdGF0aWMgR09fSU5TRVJUX0FDVElPTjogc3RyaW5nID0gJ0dPX0lOU0VSVCc7XG4gIHB1YmxpYyBzdGF0aWMgREVMRVRFX0FDVElPTjogc3RyaW5nID0gJ0RFTEVURSc7XG4gIHB1YmxpYyBzdGF0aWMgVU5ET19MQVNUX0NIQU5HRV9BQ1RJT046IHN0cmluZyA9ICdVTkRPX0xBU1RfQ0hBTkdFJztcblxuICAvLyBPVGFibGVDb21wb25lbnRcbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX0NPTFVNTl9NSU5fV0lEVEggPSA4MDtcbiAgcHVibGljIHN0YXRpYyBOQU1FX0NPTFVNTl9TRUxFQ1QgPSAnc2VsZWN0JztcbiAgcHVibGljIHN0YXRpYyBOQU1FX0NPTFVNTl9FWFBBTkRBQkxFID0gJ2V4cGFuZGFibGUnO1xuICBwdWJsaWMgc3RhdGljIFNVRkZJWF9DT0xVTU5fSU5TRVJUQUJMRSA9ICdfaW5zZXJ0YWJsZSc7XG4gIHB1YmxpYyBzdGF0aWMgTElNSVRfU0NST0xMVklSVFVBTCA9IDUwO1xuXG4gIHB1YmxpYyBzdGF0aWMgVFdFTlRZX0ZPVVJfSE9VUl9GT1JNQVQgPSAyNDtcbiAgcHVibGljIHN0YXRpYyBUV0VMVkVfRk9VUl9IT1VSX0ZPUk1BVCA9IDEyO1xuXG4gIHB1YmxpYyBzdGF0aWMgT0FwcExheW91dE1vZGVzOiBPQXBwTGF5b3V0TW9kZVtdID0gWydtb2JpbGUnLCAnZGVza3RvcCddO1xuICBwdWJsaWMgc3RhdGljIE9TaWRlbmF2TW9kZXM6IE9TaWRlbmF2TW9kZVtdID0gWydvdmVyJywgJ3B1c2gnLCAnc2lkZSddO1xuXG4gIHB1YmxpYyBzdGF0aWMgT0FwcExheW91dE1vZGUgPSBbJ21vYmlsZScsICdkZXNrdG9wJ107XG4gIHB1YmxpYyBzdGF0aWMgT1NpZGVuYXZNb2RlID0gWydvdmVyJywgJ3B1c2gnLCAnc2lkZSddO1xuXG4gIHB1YmxpYyBzdGF0aWMgQVBQX0xBWU9VVF9NT0RFX0RFU0tUT1A6IE9BcHBMYXlvdXRNb2RlID0gJ2Rlc2t0b3AnO1xuICBwdWJsaWMgc3RhdGljIEFQUF9MQVlPVVRfTU9ERV9NT0JJTEU6IE9BcHBMYXlvdXRNb2RlID0gJ21vYmlsZSc7XG4gIHB1YmxpYyBzdGF0aWMgVklTSUJMRV9FWFBPUlRfQlVUVE9OUzogc3RyaW5nW10gPSBbJ3hsc3gnLCAncGRmJywgJ2h0bWwnXTtcbiAgcHVibGljIHN0YXRpYyBWSVNJQkxFX0VYUE9SVF9CVVRUT05TM1g6IHN0cmluZ1tdID0gWyd4bHN4JywgJ3BkZicsICdjc3YnXTtcblxuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfQ0hBTkdFX0VWRU5UOiBDSEFOR0VfRVZFTlRTID0gJ29uVmFsdWVDaGFuZ2UnO1xuICBwdWJsaWMgc3RhdGljIFRZUEVTX0RBVEVfR1JPVVBTID0gW1wiWUVBUlwiLCBcIk1PTlRIXCIsIFwiWUVBUl9NT05USFwiLCBcIllFQVJfTU9OVEhfREFZXCJdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRPT0xUSVBfRElTUExBWV9NT0RFID0gWydhbHdheXMnLCAnbmV2ZXInLCAnb25seS1jb2xsYXBzZWQnLCAnb25seS1leHBhbmRlZCddO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRPT0xUSVBfRElTUExBWV9DT0xMQVBTRUQgPSAnb25seS1jb2xsYXBzZWQnO1xuXG5cbiAgc3RhdGljIGlzRG91YmxlQ2xpY2tNb2RlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ29kZXMuREVUQUlMX01PREVfREJMQ0xJQ0tfVkFMVUVTLmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkUm93SGVpZ2h0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ29kZXMuQVZBSUxBQkxFX1JPV19IRUlHSFRTX1ZBTFVFUy5pbmRleE9mKHZhbHVlKSAhPT0gLTE7XG4gIH1cblxuICBzdGF0aWMgZ2V0SXNEZXRhaWxPYmplY3QoKTogYW55IHtcbiAgICBjb25zdCByZXMgPSB7fTtcbiAgICByZXNbQ29kZXMuSVNfREVUQUlMXSA9ICd0cnVlJztcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdFN0cmluZyhmb3JtYXQ6IG51bWJlcikge1xuICAgIHJldHVybiAoZm9ybWF0ID09PSBDb2Rlcy5UV0VOVFlfRk9VUl9IT1VSX0ZPUk1BVCA/IENvZGVzLkhvdXJGb3JtYXQuVFdFTlRZX0ZPVVIgOiBDb2Rlcy5Ib3VyRm9ybWF0LlRXRUxWRSk7XG4gIH1cblxuICBzdGF0aWMgaXNIb3VySW5wdXRBbGxvd2VkKGU6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAvLyBBbGxvdzogYmFja3NwYWNlLCBkZWxldGUsIHRhYiwgZXNjYXBlLCBlbnRlclxuICAgIGlmIChbNDYsIDgsIDksIDI3LCAxM10uc29tZShuID0+IG4gPT09IGUua2V5Q29kZSkgfHxcbiAgICAgIChlLmtleSA9PT0gJzonKSB8fFxuICAgICAgLy8gQWxsb3c6IEN0cmwvY21kK0FcbiAgICAgIChlLmtleUNvZGUgPT09IDY1ICYmIChlLmN0cmxLZXkgPT09IHRydWUgfHwgZS5tZXRhS2V5ID09PSB0cnVlKSkgfHxcbiAgICAgIC8vIEFsbG93OiBDdHJsL2NtZCtDXG4gICAgICAoZS5rZXlDb2RlID09PSA2NyAmJiAoZS5jdHJsS2V5ID09PSB0cnVlIHx8IGUubWV0YUtleSA9PT0gdHJ1ZSkpIHx8XG4gICAgICAvLyBBbGxvdzogQ3RybC9jbWQrWFxuICAgICAgKGUua2V5Q29kZSA9PT0gODggJiYgKGUuY3RybEtleSA9PT0gdHJ1ZSB8fCBlLm1ldGFLZXkgPT09IHRydWUpKSB8fFxuICAgICAgLy8gQWxsb3c6IGhvbWUsIGVuZCwgbGVmdCwgcmlnaHQsIHVwLCBkb3duXG4gICAgICAoZS5rZXlDb2RlID49IDM1ICYmIGUua2V5Q29kZSA8PSA0MCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gISgoZS5rZXlDb2RlIDwgNDggfHwgZS5rZXlDb2RlID4gNTcpICYmIChlLmtleUNvZGUgPCA5NiB8fCBlLmtleUNvZGUgPiAxMDUpKTtcbiAgfVxuICBzdGF0aWMgaXNWYWxpZEVkaXRpb25Nb2RlKGVkaXRpb25Nb2RlOiBPVGFibGVFZGl0aW9uTW9kZSkge1xuICAgIHJldHVybiBDb2Rlcy5BVkFJTEFCTEVfTU9ERVMuaW5kZXhPZihlZGl0aW9uTW9kZSkgIT09IC0xO1xuICB9XG4gIHN0YXRpYyBpc1ZhbGlkRGV0YWlsTW9kZShkZXRhaWxNb2RlOiBPVGFibGVEZXRhaWxNb2RlKTogYW55IHtcbiAgICByZXR1cm4gQ29kZXMuQVZBSUxBQkxFX0RFVEFJTF9NT0RFUy5pbmRleE9mKGRldGFpbE1vZGUpICE9PSAtMTtcbiAgfVxuXG59XG4iXX0=
@@ -1,15 +1,9 @@
1
- import { O_MAT_ERROR_OPTIONS } from '../services/factories';
1
+ import { O_MAT_ERROR_OPTIONS } from '../injection-tokens';
2
2
  import { Codes } from './codes';
3
3
  import { Util } from './util';
4
4
  export class ErrorsUtils {
5
5
  static getErrorOptions(injector) {
6
- let result;
7
- try {
8
- result = injector.get(O_MAT_ERROR_OPTIONS) || {};
9
- }
10
- catch (e) {
11
- result = {};
12
- }
6
+ const result = injector.get(O_MAT_ERROR_OPTIONS, {});
13
7
  if (!Util.isDefined(result.type)) {
14
8
  result.type = Codes.O_MAT_ERROR_STANDARD;
15
9
  }
@@ -75,4 +69,4 @@ export class ErrorsUtils {
75
69
  comp.errorsData.push(...newErrorsData.filter(err => !comp.errorsData.find(existingError => existingError.name === err.name)));
76
70
  }
77
71
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3V0aWwvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQWtCOUIsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFrQjtRQUN2QyxJQUFJLE1BQXdCLENBQUE7UUFDNUIsSUFBSTtZQUNGLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2xEO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLEdBQUcsRUFBRSxDQUFDO1NBQ2I7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEMsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsb0JBQXFDLENBQUM7U0FDM0Q7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLG9CQUFvQixDQUFDLElBQTBDO1FBQ3BFLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvRCxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQjtpQkFDdEMsTUFBTSxDQUFDLENBQUMsU0FBNkIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7aUJB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SUFBSSxLQUFLLEtBQUssQ0FBQyxvQkFBb0IsRUFBRTtZQUN6RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzlFO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQTBDLEVBQUUsZ0JBQTZCLEVBQUU7UUFFakcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoSSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9fTUFUX0VSUk9SX09QVElPTlMgfSBmcm9tICcuLi9zZXJ2aWNlcy9mYWN0b3JpZXMnO1xuaW1wb3J0IHsgT01hdEVycm9yT3B0aW9ucywgT01hdEVycm9yVHlwZSB9IGZyb20gJy4uL3R5cGVzL28tbWF0LWVycm9yLnR5cGUnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgQXN5bmNWYWxpZGF0b3JGbiwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JEYXRhIH0gZnJvbSAnLi4vdHlwZXMvZXJyb3ItZGF0YS50eXBlJztcbmltcG9ydCB7IE9WYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvY29tcG9uZW50cy92YWxpZGF0aW9uL28tdmFsaWRhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPTWF0RXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL28tbWF0LWVycm9yLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50V2l0aFZhbGlkYXRvcnNBbmRFcnJvcnNEYXRhIHtcbiAgZXJyb3JPcHRpb25zOiBPTWF0RXJyb3JPcHRpb25zO1xuICBlcnJvcnNEYXRhOiBFcnJvckRhdGFbXTtcbiAgdmFsaWRhdG9yQ2hpbGRyZW46IFF1ZXJ5TGlzdDxPVmFsaWRhdG9yQ29tcG9uZW50PjtcbiAgb01hdEVycm9yQ2hpbGRyZW46IFF1ZXJ5TGlzdDxPTWF0RXJyb3JEaXJlY3RpdmU+O1xuICB0b29sdGlwUG9zaXRpb246IHN0cmluZztcbiAgZ2V0Rm9ybUNvbnRyb2woKTogRm9ybUNvbnRyb2w7XG4gIHJlc29sdmVWYWxpZGF0b3JzOiAoKSA9PiBWYWxpZGF0b3JGbltdO1xuICByZXNvbHZlQXN5bmNWYWxpZGF0b3JzOiAoKSA9PiBBc3luY1ZhbGlkYXRvckZuW107XG4gIGhhc0Vycm9yOiAoZXJyb3I6IHN0cmluZykgPT4gYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEVycm9yc1V0aWxzIHtcbiAgc3RhdGljIGdldEVycm9yT3B0aW9ucyhpbmplY3RvcjogSW5qZWN0b3IpOiBPTWF0RXJyb3JPcHRpb25zIHtcbiAgICBsZXQgcmVzdWx0OiBPTWF0RXJyb3JPcHRpb25zXG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IGluamVjdG9yLmdldChPX01BVF9FUlJPUl9PUFRJT05TKSB8fCB7fTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXN1bHQgPSB7fTtcbiAgICB9XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZChyZXN1bHQudHlwZSkpIHtcbiAgICAgIHJlc3VsdC50eXBlID0gQ29kZXMuT19NQVRfRVJST1JfU1RBTkRBUkQgYXMgT01hdEVycm9yVHlwZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRFcnJvcnNUb29sdGlwVGV4dChjb21wOiBDb21wb25lbnRXaXRoVmFsaWRhdG9yc0FuZEVycm9yc0RhdGEpOiBzdHJpbmcge1xuICAgIGxldCBlcnJvcnNUZXh0ID0gW107XG4gICAgaWYgKGNvbXAub01hdEVycm9yQ2hpbGRyZW4gJiYgY29tcC5vTWF0RXJyb3JDaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBlcnJvcnNUZXh0LnB1c2goLi4uY29tcC5vTWF0RXJyb3JDaGlsZHJlblxuICAgICAgICAuZmlsdGVyKChvTWF0RXJyb3I6IE9NYXRFcnJvckRpcmVjdGl2ZSkgPT4gVXRpbC5pc0RlZmluZWQob01hdEVycm9yLnRleHQpKVxuICAgICAgICAubWFwKChvTWF0RXJyb3I6IE9NYXRFcnJvckRpcmVjdGl2ZSkgPT4gb01hdEVycm9yLnRleHQpKTtcbiAgICB9XG4gICAgaWYgKGNvbXAuZXJyb3JzRGF0YSAmJiBjb21wLmVycm9yc0RhdGEubGVuZ3RoID4gMCkge1xuICAgICAgZXJyb3JzVGV4dC5wdXNoKC4uLmNvbXAuZXJyb3JzRGF0YVxuICAgICAgICAuZmlsdGVyKChpdGVtOiBFcnJvckRhdGEpID0+IGNvbXAuaGFzRXJyb3IoaXRlbS5uYW1lKSlcbiAgICAgICAgLm1hcCgoaXRlbTogRXJyb3JEYXRhKSA9PiBpdGVtLnRleHQpKTtcbiAgICB9XG4gICAgcmV0dXJuIGVycm9yc1RleHQuam9pbignXFxuJyk7XG4gIH1cblxuICBzdGF0aWMgZ2V0VG9vbHRpcENsYXNzZXMoY29tcDogQ29tcG9uZW50V2l0aFZhbGlkYXRvcnNBbmRFcnJvcnNEYXRhKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSBgby10b29sdGlwICR7Y29tcC50b29sdGlwUG9zaXRpb259YDtcbiAgICBjb25zdCBsaXRlRXJyb3IgPSBjb21wLmVycm9yT3B0aW9ucy50eXBlID09PSBDb2Rlcy5PX01BVF9FUlJPUl9MSVRFO1xuICAgIGlmICghbGl0ZUVycm9yKSB7XG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICAgIGNvbnN0IGZvcm1Db250cm9sID0gY29tcC5nZXRGb3JtQ29udHJvbCgpO1xuICAgIGNvbnN0IGVycm9yQ2xhc3MgPSBVdGlsLmlzRGVmaW5lZChmb3JtQ29udHJvbCkgJiYgVXRpbC5pc0RlZmluZWQoZm9ybUNvbnRyb2wuZXJyb3JzKSA/ICdvLW1hdC1lcnJvcicgOiAnJztcbiAgICByZXR1cm4gYCR7cmVzdWx0fSAke2Vycm9yQ2xhc3N9YDtcbiAgfVxuXG4gIHN0YXRpYyB1cGRhdGVGb3JtQ29udHJvbFZhbGlkYXRvcnMoY29tcDogQ29tcG9uZW50V2l0aFZhbGlkYXRvcnNBbmRFcnJvcnNEYXRhKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSBjb21wLmdldEZvcm1Db250cm9sKCk7XG4gICAgaWYgKCFmb3JtQ29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gY29tcC5yZXNvbHZlVmFsaWRhdG9ycygpO1xuICAgIGNvbnN0IGFzeW5jVmFsaWRhdG9ycyA9IGNvbXAucmVzb2x2ZUFzeW5jVmFsaWRhdG9ycygpO1xuICAgIGlmIChjb21wLnZhbGlkYXRvckNoaWxkcmVuKSB7XG4gICAgICBjb21wLnZhbGlkYXRvckNoaWxkcmVuLmZvckVhY2goKG9WYWxpZGF0b3I6IE9WYWxpZGF0b3JDb21wb25lbnQpID0+IHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9yRnVuY3Rpb246IFZhbGlkYXRvckZuID0gb1ZhbGlkYXRvci5nZXRWYWxpZGF0b3JGbigpO1xuICAgICAgICBpZiAodmFsaWRhdG9yRnVuY3Rpb24pIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2godmFsaWRhdG9yRnVuY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFzeW5jVmFsaWRhdG9yRnVuY3Rpb246IEFzeW5jVmFsaWRhdG9yRm4gPSBvVmFsaWRhdG9yLmdldEFzeW5jVmFsaWRhdG9yRm4oKTtcbiAgICAgICAgaWYgKGFzeW5jVmFsaWRhdG9yRnVuY3Rpb24pIHtcbiAgICAgICAgICBhc3luY1ZhbGlkYXRvcnMucHVzaChhc3luY1ZhbGlkYXRvckZ1bmN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvcnNEYXRhOiBFcnJvckRhdGFbXSA9IG9WYWxpZGF0b3IuZ2V0RXJyb3JzRGF0YSgpO1xuICAgICAgICBjb21wLmVycm9yc0RhdGEucHVzaCguLi5lcnJvcnNEYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgIGZvcm1Db250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnMpO1xuICAgIGZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICB9XG5cbiAgc3RhdGljIGdldEFjdGl2ZU9FcnJvcnMoY29tcDogQ29tcG9uZW50V2l0aFZhbGlkYXRvcnNBbmRFcnJvcnNEYXRhKTogRXJyb3JEYXRhW10ge1xuICAgIGlmIChjb21wLmVycm9yT3B0aW9ucy50eXBlID09PSBDb2Rlcy5PX01BVF9FUlJPUl9TVEFOREFSRCkge1xuICAgICAgcmV0dXJuIGNvbXAuZXJyb3JzRGF0YS5maWx0ZXIoKGl0ZW06IEVycm9yRGF0YSkgPT4gY29tcC5oYXNFcnJvcihpdGVtLm5hbWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgc3RhdGljIHB1c2hUb0Vycm9yc0RhdGEoY29tcDogQ29tcG9uZW50V2l0aFZhbGlkYXRvcnNBbmRFcnJvcnNEYXRhLCBuZXdFcnJvcnNEYXRhOiBFcnJvckRhdGFbXSA9IFtdKTogdm9pZCB7XG4gICAgLy8gYXZvaWQgcHVzaGluZyByZXBlYXRlZCBlcnJvcnMgZGF0YVxuICAgIGNvbXAuZXJyb3JzRGF0YS5wdXNoKC4uLm5ld0Vycm9yc0RhdGEuZmlsdGVyKGVyciA9PiAhY29tcC5lcnJvcnNEYXRhLmZpbmQoZXhpc3RpbmdFcnJvciA9PiBleGlzdGluZ0Vycm9yLm5hbWUgPT09IGVyci5uYW1lKSkpO1xuICB9XG59XG5cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3V0aWwvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQWtCOUIsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFrQjtRQUN2QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxvQkFBcUMsQ0FBQztTQUMzRDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBMEM7UUFDcEUsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9ELFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCO2lCQUN0QyxNQUFNLENBQUMsQ0FBQyxTQUE2QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDekUsR0FBRyxDQUFDLENBQUMsU0FBNkIsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDNUQ7UUFDRCxJ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LEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDOUU7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBMEMsRUFBRSxnQkFBNkIsRUFBRTtRQUVqRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hJLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT19NQVRfRVJST1JfT1BUSU9OUyB9IGZyb20gJy4uL2luamVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgT01hdEVycm9yT3B0aW9ucywgT01hdEVycm9yVHlwZSB9IGZyb20gJy4uL3R5cGVzL28tbWF0LWVycm9yLnR5cGUnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgQXN5bmNWYWxpZGF0b3JGbiwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JEYXRhIH0gZnJvbSAnLi4vdHlwZXMvZXJyb3ItZGF0YS50eXBlJztcbmltcG9ydCB7IE9WYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvY29tcG9uZW50cy92YWxpZGF0aW9uL28tdmFsaWRhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPTWF0RXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL28tbWF0LWVycm9yLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50V2l0aFZhbGlkYXRvcnNBbmRFcnJvcnNEYXRhIHtcbiAgZXJyb3JPcHRpb25zOiBPTWF0RXJyb3JPcHRpb25zO1xuICBlcnJvcnNEYXRhOiBFcnJvckRhdGFbXTtcbiAgdmFsaWRhdG9yQ2hpbGRyZW46IFF1ZXJ5TGlzdDxPVmFsaWRhdG9yQ29tcG9uZW50PjtcbiAgb01hdEVycm9yQ2hpbGRyZW46IFF1ZXJ5TGlzdDxPTWF0RXJyb3JEaXJlY3RpdmU+O1xuICB0b29sdGlwUG9zaXRpb246IHN0cmluZztcbiAgZ2V0Rm9ybUNvbnRyb2woKTogRm9ybUNvbnRyb2w7XG4gIHJlc29sdmVWYWxpZGF0b3JzOiAoKSA9PiBWYWxpZGF0b3JGbltdO1xuICByZXNvbHZlQXN5bmNWYWxpZGF0b3JzOiAoKSA9PiBBc3luY1ZhbGlkYXRvckZuW107XG4gIGhhc0Vycm9yOiAoZXJyb3I6IHN0cmluZykgPT4gYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEVycm9yc1V0aWxzIHtcbiAgc3RhdGljIGdldEVycm9yT3B0aW9ucyhpbmplY3RvcjogSW5qZWN0b3IpOiBPTWF0RXJyb3JPcHRpb25zIHtcbiAgICBjb25zdCByZXN1bHQgPSBpbmplY3Rvci5nZXQoT19NQVRfRVJST1JfT1BUSU9OUywge30pO1xuXG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZChyZXN1bHQudHlwZSkpIHtcbiAgICAgIHJlc3VsdC50eXBlID0gQ29kZXMuT19NQVRfRVJST1JfU1RBTkRBUkQgYXMgT01hdEVycm9yVHlwZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRFcnJvcnNUb29sdGlwVGV4dChjb21wOiBDb21wb25lbnRXaXRoVmFsaWRhdG9yc0FuZEVycm9yc0RhdGEpOiBzdHJpbmcge1xuICAgIGxldCBlcnJvcnNUZXh0ID0gW107XG4gICAgaWYgKGNvbXAub01hdEVycm9yQ2hpbGRyZW4gJiYgY29tcC5vTWF0RXJyb3JDaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBlcnJvcnNUZXh0LnB1c2goLi4uY29tcC5vTWF0RXJyb3JDaGlsZHJlblxuICAgICAgICAuZmlsdGVyKChvTWF0RXJyb3I6IE9NYXRFcnJvckRpcmVjdGl2ZSkgPT4gVXRpbC5pc0RlZmluZWQob01hdEVycm9yLnRleHQpKVxuICAgICAgICAubWFwKChvTWF0RXJyb3I6IE9NYXRFcnJvckRpcmVjdGl2ZSkgPT4gb01hdEVycm9yLnRleHQpKTtcbiAgICB9XG4gICAgaWYgKGNvbXAuZXJyb3JzRGF0YSAmJiBjb21wLmVycm9yc0RhdGEubGVuZ3RoID4gMCkge1xuICAgICAgZXJyb3JzVGV4dC5wdXNoKC4uLmNvbXAuZXJyb3JzRGF0YVxuICAgICAgICAuZmlsdGVyKChpdGVtOiBFcnJvckRhdGEpID0+IGNvbXAuaGFzRXJyb3IoaXRlbS5uYW1lKSlcbiAgICAgICAgLm1hcCgoaXRlbTogRXJyb3JEYXRhKSA9PiBpdGVtLnRleHQpKTtcbiAgICB9XG4gICAgcmV0dXJuIGVycm9yc1RleHQuam9pbignXFxuJyk7XG4gIH1cblxuICBzdGF0aWMgZ2V0VG9vbHRpcENsYXNzZXMoY29tcDogQ29tcG9uZW50V2l0aFZhbGlkYXRvcnNBbmRFcnJvcnNEYXRhKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSBgby10b29sdGlwICR7Y29tcC50b29sdGlwUG9zaXRpb259YDtcbiAgICBjb25zdCBsaXRlRXJyb3IgPSBjb21wLmVycm9yT3B0aW9ucy50eXBlID09PSBDb2Rlcy5PX01BVF9FUlJPUl9MSVRFO1xuICAgIGlmICghbGl0ZUVycm9yKSB7XG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICAgIGNvbnN0IGZvcm1Db250cm9sID0gY29tcC5nZXRGb3JtQ29udHJvbCgpO1xuICAgIGNvbnN0IGVycm9yQ2xhc3MgPSBVdGlsLmlzRGVmaW5lZChmb3JtQ29udHJvbCkgJiYgVXRpbC5pc0RlZmluZWQoZm9ybUNvbnRyb2wuZXJyb3JzKSA/ICdvLW1hdC1lcnJvcicgOiAnJztcbiAgICByZXR1cm4gYCR7cmVzdWx0fSAke2Vycm9yQ2xhc3N9YDtcbiAgfVxuXG4gIHN0YXRpYyB1cGRhdGVGb3JtQ29udHJvbFZhbGlkYXRvcnMoY29tcDogQ29tcG9uZW50V2l0aFZhbGlkYXRvcnNBbmRFcnJvcnNEYXRhKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSBjb21wLmdldEZvcm1Db250cm9sKCk7XG4gICAgaWYgKCFmb3JtQ29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gY29tcC5yZXNvbHZlVmFsaWRhdG9ycygpO1xuICAgIGNvbnN0IGFzeW5jVmFsaWRhdG9ycyA9IGNvbXAucmVzb2x2ZUFzeW5jVmFsaWRhdG9ycygpO1xuICAgIGlmIChjb21wLnZhbGlkYXRvckNoaWxkcmVuKSB7XG4gICAgICBjb21wLnZhbGlkYXRvckNoaWxkcmVuLmZvckVhY2goKG9WYWxpZGF0b3I6IE9WYWxpZGF0b3JDb21wb25lbnQpID0+IHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9yRnVuY3Rpb246IFZhbGlkYXRvckZuID0gb1ZhbGlkYXRvci5nZXRWYWxpZGF0b3JGbigpO1xuICAgICAgICBpZiAodmFsaWRhdG9yRnVuY3Rpb24pIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2godmFsaWRhdG9yRnVuY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFzeW5jVmFsaWRhdG9yRnVuY3Rpb246IEFzeW5jVmFsaWRhdG9yRm4gPSBvVmFsaWRhdG9yLmdldEFzeW5jVmFsaWRhdG9yRm4oKTtcbiAgICAgICAgaWYgKGFzeW5jVmFsaWRhdG9yRnVuY3Rpb24pIHtcbiAgICAgICAgICBhc3luY1ZhbGlkYXRvcnMucHVzaChhc3luY1ZhbGlkYXRvckZ1bmN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvcnNEYXRhOiBFcnJvckRhdGFbXSA9IG9WYWxpZGF0b3IuZ2V0RXJyb3JzRGF0YSgpO1xuICAgICAgICBjb21wLmVycm9yc0RhdGEucHVzaCguLi5lcnJvcnNEYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgIGZvcm1Db250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnMpO1xuICAgIGZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICB9XG5cbiAgc3RhdGljIGdldEFjdGl2ZU9FcnJvcnMoY29tcDogQ29tcG9uZW50V2l0aFZhbGlkYXRvcnNBbmRFcnJvcnNEYXRhKTogRXJyb3JEYXRhW10ge1xuICAgIGlmIChjb21wLmVycm9yT3B0aW9ucy50eXBlID09PSBDb2Rlcy5PX01BVF9FUlJPUl9TVEFOREFSRCkge1xuICAgICAgcmV0dXJuIGNvbXAuZXJyb3JzRGF0YS5maWx0ZXIoKGl0ZW06IEVycm9yRGF0YSkgPT4gY29tcC5oYXNFcnJvcihpdGVtLm5hbWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgc3RhdGljIHB1c2hUb0Vycm9yc0RhdGEoY29tcDogQ29tcG9uZW50V2l0aFZhbGlkYXRvcnNBbmRFcnJvcnNEYXRhLCBuZXdFcnJvcnNEYXRhOiBFcnJvckRhdGFbXSA9IFtdKTogdm9pZCB7XG4gICAgLy8gYXZvaWQgcHVzaGluZyByZXBlYXRlZCBlcnJvcnMgZGF0YVxuICAgIGNvbXAuZXJyb3JzRGF0YS5wdXNoKC4uLm5ld0Vycm9yc0RhdGEuZmlsdGVyKGVyciA9PiAhY29tcC5lcnJvcnNEYXRhLmZpbmQoZXhpc3RpbmdFcnJvciA9PiBleGlzdGluZ0Vycm9yLm5hbWUgPT09IGVyci5uYW1lKSkpO1xuICB9XG59XG5cbiJdfQ==
@@ -0,0 +1,67 @@
1
+ import { AppConfig } from '../config/app-config';
2
+ import { JSONAPIService } from '../services/jsonapi/jsonapi.service';
3
+ import { OntimizeEEService } from '../services/ontimize/ontimize-ee.service';
4
+ import { OntimizeService } from '../services/ontimize/ontimize.service';
5
+ import { ServiceType } from '../types/service-type.type';
6
+ import { Util } from './util';
7
+ export class FactoryUtil {
8
+ static isJsonApiService(injector) {
9
+ const config = injector.get(AppConfig);
10
+ return config.getConfiguration().serviceType === 'JSONAPI' ||
11
+ config.getConfiguration().serviceType instanceof JSONAPIService;
12
+ }
13
+ static isOntimizeEEService(injector) {
14
+ const config = injector.get(AppConfig);
15
+ return (config.getConfiguration().serviceType === 'OntimizeEE' ||
16
+ config.getConfiguration().serviceType instanceof OntimizeEEService) ||
17
+ (config.getConfiguration().serviceType === 'Ontimize' ||
18
+ config.getConfiguration().serviceType instanceof OntimizeService);
19
+ }
20
+ static createServiceInstanceByType(serviceType, injector) {
21
+ if (!Util.isDefined(serviceType) || ServiceType.OntimizeEE === serviceType) {
22
+ return new OntimizeEEService(injector);
23
+ }
24
+ if (ServiceType.Ontimize === serviceType) {
25
+ return new OntimizeService(injector);
26
+ }
27
+ if (ServiceType.JSONAPI === serviceType) {
28
+ return new JSONAPIService(injector);
29
+ }
30
+ return Util.createServiceInstance(serviceType, injector);
31
+ }
32
+ static getDataServiceInstance(serviceType, baseService, injector) {
33
+ if (!serviceType) {
34
+ return injector.get(baseService);
35
+ }
36
+ if (![ServiceType.Ontimize, ServiceType.OntimizeEE, ServiceType.JSONAPI].includes(serviceType)) {
37
+ return FactoryUtil.createServiceInstanceByType(injector.get(serviceType), injector);
38
+ }
39
+ return FactoryUtil.createServiceInstanceByType(serviceType, injector);
40
+ }
41
+ static configureService(configureServiceArgs) {
42
+ const baseService = configureServiceArgs.baseService;
43
+ const entity = configureServiceArgs.entity;
44
+ const service = configureServiceArgs.service;
45
+ const injector = configureServiceArgs.injector;
46
+ const config = injector.get(AppConfig);
47
+ const serviceConfiguration = config.getServiceConfiguration();
48
+ const serviceConfigurationType = serviceConfiguration[service]?.serviceType;
49
+ const serviceType = configureServiceArgs.serviceType || serviceConfigurationType;
50
+ try {
51
+ let dataService = this.getDataServiceInstance(serviceType, baseService, injector);
52
+ if (Util.isDataService(dataService)) {
53
+ const serviceCfg = dataService.getDefaultServiceConfiguration(service);
54
+ if (entity) {
55
+ serviceCfg.entity = entity;
56
+ }
57
+ dataService.configureService(serviceCfg);
58
+ }
59
+ return dataService;
60
+ }
61
+ catch (e) {
62
+ console.error(e);
63
+ return null;
64
+ }
65
+ }
66
+ }
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3V0aWwvZmFjdG9yeS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRzlCLE1BQU0sT0FBTyxXQUFXO0lBR3RCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFrQjtRQUN4QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUMsV0FBVyxLQUFLLFNBQVM7WUFDeEQsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUMsV0FBVyxZQUFZLGNBQWMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQWtCO1FBQzNDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFdBQVcsS0FBSyxZQUFZO1lBQzVELE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFdBQVcsWUFBWSxpQkFBaUIsQ0FBQztZQUNuRSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFdBQVcsS0FBSyxVQUFVO2dC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Y29yZSc7XG5cbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB7IEpTT05BUElTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvanNvbmFwaS9qc29uYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVFRVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9vbnRpbWl6ZS9vbnRpbWl6ZS1lZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL29udGltaXplL29udGltaXplLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VydmljZVR5cGUgfSBmcm9tICcuLi90eXBlcy9zZXJ2aWNlLXR5cGUudHlwZSc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IE9Db25maWd1cmVTZXJ2aWNlQXJncyB9IGZyb20gJy4uL3R5cGVzL2NvbmZpZ3VyZS1zZXJ2aWNlLWFyZ3MudHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBGYWN0b3J5VXRpbCB7XG5cblxuICBzdGF0aWMgaXNKc29uQXBpU2VydmljZShpbmplY3RvcjogSW5qZWN0b3IpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKTtcbiAgICByZXR1cm4gY29uZmlnLmdldENvbmZpZ3VyYXRpb24oKS5zZXJ2aWNlVHlwZSA9PT0gJ0pTT05BUEknIHx8XG4gICAgICBjb25maWcuZ2V0Q29uZmlndXJhdGlvbigpLnNlcnZpY2VUeXBlIGluc3RhbmNlb2YgSlNPTkFQSVNlcnZpY2U7XG4gIH1cblxuICBzdGF0aWMgaXNPbnRpbWl6ZUVFU2VydmljZShpbmplY3RvcjogSW5qZWN0b3IpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKTtcbiAgICByZXR1cm4gKGNvbmZpZy5nZXRDb25maWd1cmF0aW9uKCkuc2VydmljZVR5cGUgPT09ICdPbnRpbWl6ZUVFJyB8fFxuICAgICAgY29uZmlnLmdldENvbmZpZ3VyYXRpb24oKS5zZXJ2aWNlVHlwZSBpbnN0YW5jZW9mIE9udGltaXplRUVTZXJ2aWNlKSB8fFxuICAgICAgKGNvbmZpZy5nZXRDb25maWd1cmF0aW9uKCkuc2VydmljZVR5cGUgPT09ICdPbnRpbWl6ZScgfHxcbiAgICAgICAgY29uZmlnLmdldENvbmZpZ3VyYXRpb24oKS5zZXJ2aWNlVHlwZSBpbnN0YW5jZW9mIE9udGltaXplU2VydmljZSk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlU2VydmljZUluc3RhbmNlQnlUeXBlKHNlcnZpY2VUeXBlOiBTZXJ2aWNlVHlwZSwgaW5qZWN0b3I6IEluamVjdG9yKTogYW55IHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHNlcnZpY2VUeXBlKSB8fCBTZXJ2aWNlVHlwZS5PbnRpbWl6ZUVFID09PSBzZXJ2aWNlVHlwZSkge1xuICAgICAgcmV0dXJuIG5ldyBPbnRpbWl6ZUVFU2VydmljZShpbmplY3Rvcik7XG4gICAgfVxuICAgIGlmIChTZXJ2aWNlVHlwZS5PbnRpbWl6ZSA9PT0gc2VydmljZVR5cGUpIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVTZXJ2aWNlKGluamVjdG9yKTtcbiAgICB9XG4gICAgaWYgKFNlcnZpY2VUeXBlLkpTT05BUEkgPT09IHNlcnZpY2VUeXBlKSB7XG4gICAgICByZXR1cm4gbmV3IEpTT05BUElTZXJ2aWNlKGluamVjdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VUeXBlLCBpbmplY3Rvcik7XG5cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldERhdGFTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZVR5cGU6IGFueSwgYmFzZVNlcnZpY2U6IGFueSwgaW5qZWN0b3I6IEluamVjdG9yKTogYW55IHtcbiAgICBpZiAoIXNlcnZpY2VUeXBlKSB7XG4gICAgICByZXR1cm4gaW5qZWN0b3IuZ2V0PGFueT4oYmFzZVNlcnZpY2UpO1xuICAgIH1cblxuICAgIGlmICghW1NlcnZpY2VUeXBlLk9udGltaXplLCBTZXJ2aWNlVHlwZS5PbnRpbWl6ZUVFLCBTZXJ2aWNlVHlwZS5KU09OQVBJXS5pbmNsdWRlcyhzZXJ2aWNlVHlwZSkpIHtcbiAgICAgIHJldHVybiBGYWN0b3J5VXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2VCeVR5cGUoaW5qZWN0b3IuZ2V0PGFueT4oc2VydmljZVR5cGUpLCBpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIEZhY3RvcnlVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZUJ5VHlwZShzZXJ2aWNlVHlwZSwgaW5qZWN0b3IpO1xuICB9XG5cbiAgIHN0YXRpYyBjb25maWd1cmVTZXJ2aWNlKGNvbmZpZ3VyZVNlcnZpY2VBcmdzOiBPQ29uZmlndXJlU2VydmljZUFyZ3MpOiBhbnkge1xuICAgICAgY29uc3QgYmFzZVNlcnZpY2UgPSBjb25maWd1cmVTZXJ2aWNlQXJncy5iYXNlU2VydmljZTtcbiAgICAgIGNvbnN0IGVudGl0eSA9IGNvbmZpZ3VyZVNlcnZpY2VBcmdzLmVudGl0eTtcbiAgICAgIGNvbnN0IHNlcnZpY2UgPSBjb25maWd1cmVTZXJ2aWNlQXJncy5zZXJ2aWNlO1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSBjb25maWd1cmVTZXJ2aWNlQXJncy5pbmplY3RvcjtcblxuICAgICAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZyk7XG4gICAgICBjb25zdCBzZXJ2aWNlQ29uZmlndXJhdGlvbiA9IGNvbmZpZy5nZXRTZXJ2aWNlQ29uZmlndXJhdGlvbigpO1xuICAgICAgY29uc3Qgc2VydmljZUNvbmZpZ3VyYXRpb25UeXBlID0gc2VydmljZUNvbmZpZ3VyYXRpb25bc2VydmljZV0/LnNlcnZpY2VUeXBlO1xuICAgICAgY29uc3Qgc2VydmljZVR5cGUgPSBjb25maWd1cmVTZXJ2aWNlQXJncy5zZXJ2aWNlVHlwZSB8fCBzZXJ2aWNlQ29uZmlndXJhdGlvblR5cGU7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGxldCBkYXRhU2VydmljZSA9IHRoaXMuZ2V0RGF0YVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlVHlwZSwgYmFzZVNlcnZpY2UsIGluamVjdG9yKTtcblxuICAgICAgICBpZiAoVXRpbC5pc0RhdGFTZXJ2aWNlKGRhdGFTZXJ2aWNlKSkge1xuICAgICAgICAgIGNvbnN0IHNlcnZpY2VDZmcgPSBkYXRhU2VydmljZS5nZXREZWZhdWx0U2VydmljZUNvbmZpZ3VyYXRpb24oc2VydmljZSk7XG4gICAgICAgICAgaWYgKGVudGl0eSkge1xuICAgICAgICAgICAgc2VydmljZUNmZy5lbnRpdHkgPSBlbnRpdHk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRhdGFTZXJ2aWNlLmNvbmZpZ3VyZVNlcnZpY2Uoc2VydmljZUNmZyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGFTZXJ2aWNlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIH1cblxuXG59XG4iXX0=
@@ -8,4 +8,6 @@ export * from './filter-expression.utils';
8
8
  export * from './service.utils';
9
9
  export * from './currencyUtil';
10
10
  export * from './preference-mapping-util';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hc3luYyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2U2NCc7XG5leHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc3FsdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vY29kZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXItZXhwcmVzc2lvbi51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jdXJyZW5jeVV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmVmZXJlbmNlLW1hcHBpbmctdXRpbCc7XG4iXX0=
11
+ export * from './injection-token.utils';
12
+ export * from './factory.util';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXN5bmMnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlNjQnO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3NxbHR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2NvZGVzJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLWV4cHJlc3Npb24udXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3lVdGlsJztcbmV4cG9ydCAqIGZyb20gJy4vcHJlZmVyZW5jZS1tYXBwaW5nLXV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmplY3Rpb24tdG9rZW4udXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9mYWN0b3J5LnV0aWwnO1xuIl19
@@ -0,0 +1,4 @@
1
+ export function _getInjectionTokenValue(token, injector) {
2
+ return injector.get(token, null);
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLXRva2VuLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3V0aWwvaW5qZWN0aW9uLXRva2VuLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sVUFBVSx1QkFBdUIsQ0FBSSxLQUF3QixFQUFFLFFBQWtCO0lBQ3JGLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHZhbHVlIGZvciB0aGUgcHJvdmlkZWQgaW5qZWN0aW9uIHRva2VuXG4gKiBAcGFyYW0gdG9rZW4gdGhlIGluamVjdGlvbiB0b2tlblxuICogQHBhcmFtIGluamVjdG9yIHRoZSBpbmplY3RvclxuICovXG5leHBvcnQgZnVuY3Rpb24gX2dldEluamVjdGlvblRva2VuVmFsdWU8VD4odG9rZW46IEluamVjdGlvblRva2VuPFQ+LCBpbmplY3RvcjogSW5qZWN0b3IpOiBUIHtcbiAgcmV0dXJuIGluamVjdG9yLmdldCh0b2tlbiwgbnVsbCk7XG5cbn1cbiJdfQ==
@@ -11,7 +11,7 @@ export class OPreferenceMappingUtils {
11
11
  if (Array.isArray(value) && value.every((item) => typeof item === "object" && !Array.isArray(item))) {
12
12
  newObj[newKey] = value.map((item) => this.mapObjectKeys(item, parameterKeyMapping || {}));
13
13
  }
14
- else if (typeof value === "object" && value !== null) {
14
+ else if (typeof value === "object" && value !== null && newKey !== "params") {
15
15
  newObj[newKey] = this.mapObjectKeys(value, parameterKeyMapping || {});
16
16
  }
17
17
  else {
@@ -92,4 +92,4 @@ OPreferenceMappingUtils.JSONAPIPREFERENCESMAPPING = {
92
92
  "preferencetype": "PREFERENCETYPE",
93
93
  "preferenceparameters": "PREFERENCEPREFERENCES"
94
94
  };
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZS1tYXBwaW5nLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9wcmVmZXJlbmNlLW1hcHBpbmctdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sdUJBQXVCO0lBcURsQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQWMsRUFBRSxVQUFxQztRQUN4RSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQTtTQUNaO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7SUFFbkQsQ0FBQztJQU1PLE1BQU0sQ0FBQyxhQUFhLENBQzFCLEdBQVEsRUFDUixVQUFxQyxFQUNyQyxtQkFBK0M7UUFFL0MsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUM5RSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO1lBRXRDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7Z0JBRW5HLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxD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QkFBc0I7Q0FDakMsQ0FBQztBQUVjLGdEQUF3QixHQUFHO0lBQ3pDLE1BQU0sRUFBRSxxQkFBcUI7SUFDN0IsYUFBYSxFQUFFLDRCQUE0QjtDQUM1QyxDQUFDO0FBRWMsZ0RBQXdCLEdBQUc7SUFDekMscUJBQXFCLEVBQUUsTUFBTTtJQUM3Qiw0QkFBNEIsRUFBRSxhQUFhO0NBQzVDLENBQUM7QUFHYyxrREFBMEIsR0FBRztJQUMzQyxjQUFjLEVBQUUsSUFBSTtJQUNwQixnQkFBZ0IsRUFBRSxNQUFNO0lBQ3hCLHVCQUF1QixFQUFFLGFBQWE7SUFDdEMsa0JBQWtCLEVBQUUsUUFBUTtJQUM1QixtQkFBbUIsRUFBRSxTQUFTO0lBQzlCLGdCQUFnQixFQUFFLE1BQU07SUFDeEIsc0JBQXNCLEVBQUUsUUFBUTtDQUNqQyxDQUFDO0FBRWMsaURBQXlCLEdBQUc7SUFDMUMsY0FBYyxFQUFFLGNBQWM7SUFDOUIsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLHVCQUF1QixFQUFFLHVCQUF1QjtJQUNoRCxrQkFBa0IsRUFBRSxrQkFBa0I7SUFDdEMsbUJBQW1CLEVBQUUsbUJBQW1CO0lBQ3hDLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxzQkFBc0IsRUFBRSx1QkFBdUI7Q0FDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5leHBvcnQgY2xhc3MgT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMge1xuXG4gIHN0YXRpYyByZWFkb25seSBTVEFOREFSRFJFUE9SVE1BUFBJTkcgPSB7XG4gICAgXCJJRFwiOiBcIlBSRUZFUkVOQ0VJRFwiLFxuICAgIFwiTkFNRVwiOiBcIlBSRUZFUkVOQ0VOQU1FXCIsXG4gICAgXCJERVNDUklQVElPTlwiOiBcIlBSRUZFUkVOQ0VERVNDUklQVElPTlwiLFxuICAgIFwiRU5USVRZXCI6IFwiUFJFRkVSRU5DRUVOVElUWVwiLFxuICAgIFwiU0VSVklDRVwiOiBcIlBSRUZFUkVOQ0VTRVJWSUNFXCIsXG4gICAgXCJUWVBFXCI6IFwiUFJFRkVSRU5DRVRZUEVcIixcbiAgICBcIlBSRUZFUkVOQ0VTXCI6IFwiUFJFRkVSRU5DRVBSRUZFUkVOQ0VTXCJcbiAgfTtcblxuICBzdGF0aWMgcmVhZG9ubHkgU1RBTkRBUkRJTlNFUlRSRVBPUlRNQVBQSU5HID0ge1xuICAgIFwiaWRcIjogXCJwcmVmZXJlbmNlaWRcIixcbiAgICBcIm5hbWVcIjogXCJwcmVmZXJlbmNlbmFtZVwiLFxuICAgIFwiZGVzY3JpcHRpb25cIjogXCJwcmVmZXJlbmNlZGVzY3JpcHRpb25cIixcbiAgICBcImVudGl0eVwiOiBcInByZWZlcmVuY2VlbnRpdHlcIixcbiAgICBcInNlcnZpY2VcIjogXCJwcmVmZXJlbmNlc2VydmljZVwiLFxuICAgIFwidHlwZVwiOiBcInByZWZlcmVuY2V0eXBlXCIsXG4gICAgXCJwYXJhbXNcIjogXCJwcmVmZXJlbmNlcGFyYW1ldGVyc1wiXG4gIH07XG5cbiAgc3RhdGljIHJlYWRvbmx5IFNUQU5EQVJEUEFSQU1FVEVSTUFQUElORyA9IHtcbiAgICBcIm5hbWVcIjogXCJyZXBvcnRQYXJhbWV0ZXJOYW1lXCIsXG4gICAgXCJkZXNjcmlwdGlvblwiOiBcInJlcG9ydFBhcmFtZXRlckRlc2NyaXB0aW9uXCJcbiAgfTtcblxuICBzdGF0aWMgcmVhZG9ubHkgT05USU1JWkVQQVJBTUVURVJNQVBQSU5HID0ge1xuICAgIFwicmVwb3J0UGFyYW1ldGVyTmFtZVwiOiBcIm5hbWVcIixcbiAgICBcInJlcG9ydFBhcmFtZXRlckRlc2NyaXB0aW9uXCI6IFwiZGVzY3JpcHRpb25cIlxuICB9O1xuXG5cbiAgc3RhdGljIHJlYWRvbmx5IE9OVElNSVpFUFJFRkVSRU5DRVNNQVBQSU5HID0ge1xuICAgIFwicHJlZmVyZW5jZWlkXCI6IFwiaWRcIixcbiAgICBcInByZWZlcmVuY2VuYW1lXCI6IFwibmFtZVwiLFxuICAgIFwicHJlZmVyZW5jZWRlc2NyaXB0aW9uXCI6IFwiZGVzY3JpcHRpb25cIixcbiAgICBcInByZWZlcmVuY2VlbnRpdHlcIjogXCJlbnRpdHlcIixcbiAgICBcInByZWZlcmVuY2VzZXJ2aWNlXCI6IFwic2VydmljZVwiLFxuICAgIFwicHJlZmVyZW5jZXR5cGVcIjogXCJ0eXBlXCIsXG4gICAgXCJwcmVmZXJlbmNlcGFyYW1ldGVyc1wiOiBcInBhcmFtc1wiXG4gIH07XG5cbiAgc3RhdGljIHJlYWRvbmx5IEpTT05BUElQUkVGRVJFTkNFU01BUFBJTkcgPSB7XG4gICAgXCJwcmVmZXJlbmNlaWRcIjogXCJQUkVGRVJFTkNFSURcIixcbiAgICBcInByZWZlcmVuY2VuYW1lXCI6IFwiUFJFRkVSRU5DRU5BTUVcIixcbiAgICBcInByZWZlcmVuY2VkZXNjcmlwdGlvblwiOiBcIlBSRUZFUkVOQ0VERVNDUklQVElPTlwiLFxuICAgIFwicHJlZmVyZW5jZWVudGl0eVwiOiBcIlBSRUZFUkVOQ0VFTlRJVFlcIixcbiAgICBcInByZWZlcmVuY2VzZXJ2aWNlXCI6IFwiUFJFRkVSRU5DRVNFUlZJQ0VcIixcbiAgICBcInByZWZlcmVuY2V0eXBlXCI6IFwiUFJFRkVSRU5DRVRZUEVcIixcbiAgICBcInByZWZlcmVuY2VwYXJhbWV0ZXJzXCI6IFwiUFJFRkVSRU5DRVBSRUZFUkVOQ0VTXCJcbiAgfTtcblxuICBzdGF0aWMgdHJhbnNmb3JtS2V5cyhkYXRhOiBzdHJpbmdbXSwga2V5TWFwcGluZzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgIHJldHVybiBkYXRhXG4gICAgfVxuICAgIHJldHVybiBkYXRhLm1hcCgoa2V5KSA9PiBrZXlNYXBwaW5nW2tleV0gfHwga2V5KTtcblxuICB9XG5cbiAgLyoqXG4gICAgKiBUcmFuc2Zvcm1hIHVuIG9iamV0byBtYXBlYW5kbyBzdXMgY2xhdmVzIHNlZ8O6biBlbCBkaWNjaW9uYXJpbyBwcm9wb3JjaW9uYWRvLlxuICAgICovXG5cbiAgcHJpdmF0ZSBzdGF0aWMgbWFwT2JqZWN0S2V5cyhcbiAgICBvYmo6IGFueSxcbiAgICBrZXlNYXBwaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICAgIHBhcmFtZXRlcktleU1hcHBpbmc/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gICk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhvYmopLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PigobmV3T2JqLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IG5ld0tleSA9IGtleU1hcHBpbmdba2V5XSB8fCBrZXk7XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5ldmVyeSgoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gPT09IFwib2JqZWN0XCIgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSkpKSB7XG4gICAgICAgIC8vIFRyYW5zZm9ybWFyIGNsYXZlcyBkZSBvYmpldG9zIGRlbnRybyBkZSBhcnJheXNcbiAgICAgICAgbmV3T2JqW25ld0tleV0gPSB2YWx1ZS5tYXAoKGl0ZW0pID0+IHRoaXMubWFwT2JqZWN0S2V5cyhpdGVtLCBwYXJhbWV0ZXJLZXlNYXBwaW5nIHx8IHt9KSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAvLyBUcmFuc2Zvcm1hciBjbGF2ZXMgZGUgb2JqZXRvcyBhbmlkYWRvc1xuICAgICAgICBuZXdPYmpbbmV3S2V5XSA9IHRoaXMubWFwT2JqZWN0S2V5cyh2YWx1ZSwgcGFyYW1ldGVyS2V5TWFwcGluZyB8fCB7fSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdPYmpbbmV3S2V5XSA9IHZhbHVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3T2JqO1xuICAgIH0sIHt9KTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybWEgbG9zIGRhdG9zLCB5YSBzZWEgdW4gc29sbyBvYmpldG8gbyB1biBhcnJheSBkZSBvYmpldG9zLCBhcGxpY2FuZG8gbG9zIG1hcGVvcyBkZSBjbGF2ZXMuXG4gICAqL1xuICBzdGF0aWMgdHJhbnNmb3JtRGF0YShkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdLCBrZXlNYXBwaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCBwYXJhbWV0ZXJLZXlNYXBwaW5nPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSB8IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICByZXR1cm4gZGF0YS5tYXAoKG9iaikgPT4gdGhpcy5tYXBPYmplY3RLZXlzKG9iaiwga2V5TWFwcGluZywgcGFyYW1ldGVyS2V5TWFwcGluZykpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGEgPT09IFwib2JqZWN0XCIgJiYgZGF0YSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMubWFwT2JqZWN0S2V5cyhkYXRhLCBrZXlNYXBwaW5nLCBwYXJhbWV0ZXJLZXlNYXBwaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBzdGF0aWMgc3RhbmRhckRhdGFNYXBwaW5nKGFycmF5OiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLnRyYW5zZm9ybURhdGEoYXJyYXksIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLlNUQU5EQVJEUkVQT1JUTUFQUElORywgT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMuU1RBTkRBUkRQQVJBTUVURVJNQVBQSU5HKTtcbiAgfVxuXG4gIHN0YXRpYyBzdGFuZGFyTWFwcGluZ0tleXMoYXJyYXk6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy50cmFuc2Zvcm1LZXlzKGFycmF5LCBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy5TVEFOREFSRFJFUE9SVE1BUFBJTkcpO1xuICB9XG5cbiAgc3RhdGljIG9udGltaXplUHJlZmVyZW5jZXNNYXBwaW5nS2V5cyhhcnJheTogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLnRyYW5zZm9ybUtleXMoYXJyYXksIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLk9OVElNSVpFUFJFRkVSRU5DRVNNQVBQSU5HKTtcbiAgfVxuXG4gIHN0YXRpYyBvbnRpbWl6ZVByZWZlcmVuY2VzRGF0YU1hcHBpbmcoYXJyYXk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB7IFtrZXk6IHN0cmluZ106IGFueSB9W10pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gfCB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4gT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMudHJhbnNmb3JtRGF0YShhcnJheSwgT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMuT05USU1JWkVQUkVGRVJFTkNFU01BUFBJTkcsIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLk9OVElNSVpFUEFSQU1FVEVSTUFQUElORyk7XG4gIH1cblxuICBzdGF0aWMganNvbkFwaVByZWZlcmVuY2VzTWFwcGluZ0tleXMoYXJyYXk6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy50cmFuc2Zvcm1LZXlzKGFycmF5LCBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy5KU09OQVBJUFJFRkVSRU5DRVNNQVBQSU5HKTtcbiAgfVxuXG4gIHN0YXRpYyBqc29uQXBpUHJlZmVyZW5jZXNEYXRhTWFwcGluZyhhcnJheTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSk6IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSB8IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy50cmFuc2Zvcm1EYXRhKGFycmF5LCBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy5KU09OQVBJUFJFRkVSRU5DRVNNQVBQSU5HKTtcbiAgfVxuXG5cblxuXG59XG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZS1tYXBwaW5nLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9wcmVmZXJlbmNlLW1hcHBpbmctdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sdUJBQXVCO0lBcURsQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQWMsRUFBRSxVQUFxQztRQUN4RSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQTtTQUNaO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7SUFFbkQsQ0FBQztJQU1PLE1BQU0sQ0FBQyxhQUFhLENBQzFCLEdBQVEsRUFDUixVQUFxQyxFQUNyQyxtQkFBK0M7UUFFL0MsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUM5RSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO1lBRXRDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7Z0JBRW5HLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxD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Z0I7SUFDeEIsUUFBUSxFQUFFLHNCQUFzQjtDQUNqQyxDQUFDO0FBRWMsZ0RBQXdCLEdBQUc7SUFDekMsTUFBTSxFQUFFLHFCQUFxQjtJQUM3QixhQUFhLEVBQUUsNEJBQTRCO0NBQzVDLENBQUM7QUFFYyxnREFBd0IsR0FBRztJQUN6QyxxQkFBcUIsRUFBRSxNQUFNO0lBQzdCLDRCQUE0QixFQUFFLGFBQWE7Q0FDNUMsQ0FBQztBQUdjLGtEQUEwQixHQUFHO0lBQzNDLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLGdCQUFnQixFQUFFLE1BQU07SUFDeEIsdUJBQXVCLEVBQUUsYUFBYTtJQUN0QyxrQkFBa0IsRUFBRSxRQUFRO0lBQzVCLG1CQUFtQixFQUFFLFNBQVM7SUFDOUIsZ0JBQWdCLEVBQUUsTUFBTTtJQUN4QixzQkFBc0IsRUFBRSxRQUFRO0NBQ2pDLENBQUM7QUFFYyxpREFBeUIsR0FBRztJQUMxQyxjQUFjLEVBQUUsY0FBYztJQUM5QixnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFDbEMsdUJBQXVCLEVBQUUsdUJBQXVCO0lBQ2hELGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxtQkFBbUIsRUFBRSxtQkFBbUI7SUFDeEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLHNCQUFzQixFQUFFLHVCQUF1QjtDQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCBjbGFzcyBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscyB7XG5cbiAgc3RhdGljIHJlYWRvbmx5IFNUQU5EQVJEUkVQT1JUTUFQUElORyA9IHtcbiAgICBcIklEXCI6IFwiUFJFRkVSRU5DRUlEXCIsXG4gICAgXCJOQU1FXCI6IFwiUFJFRkVSRU5DRU5BTUVcIixcbiAgICBcIkRFU0NSSVBUSU9OXCI6IFwiUFJFRkVSRU5DRURFU0NSSVBUSU9OXCIsXG4gICAgXCJFTlRJVFlcIjogXCJQUkVGRVJFTkNFRU5USVRZXCIsXG4gICAgXCJTRVJWSUNFXCI6IFwiUFJFRkVSRU5DRVNFUlZJQ0VcIixcbiAgICBcIlRZUEVcIjogXCJQUkVGRVJFTkNFVFlQRVwiLFxuICAgIFwiUFJFRkVSRU5DRVNcIjogXCJQUkVGRVJFTkNFUFJFRkVSRU5DRVNcIlxuICB9O1xuXG4gIHN0YXRpYyByZWFkb25seSBTVEFOREFSRElOU0VSVFJFUE9SVE1BUFBJTkcgPSB7XG4gICAgXCJpZFwiOiBcInByZWZlcmVuY2VpZFwiLFxuICAgIFwibmFtZVwiOiBcInByZWZlcmVuY2VuYW1lXCIsXG4gICAgXCJkZXNjcmlwdGlvblwiOiBcInByZWZlcmVuY2VkZXNjcmlwdGlvblwiLFxuICAgIFwiZW50aXR5XCI6IFwicHJlZmVyZW5jZWVudGl0eVwiLFxuICAgIFwic2VydmljZVwiOiBcInByZWZlcmVuY2VzZXJ2aWNlXCIsXG4gICAgXCJ0eXBlXCI6IFwicHJlZmVyZW5jZXR5cGVcIixcbiAgICBcInBhcmFtc1wiOiBcInByZWZlcmVuY2VwYXJhbWV0ZXJzXCJcbiAgfTtcblxuICBzdGF0aWMgcmVhZG9ubHkgU1RBTkRBUkRQQVJBTUVURVJNQVBQSU5HID0ge1xuICAgIFwibmFtZVwiOiBcInJlcG9ydFBhcmFtZXRlck5hbWVcIixcbiAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVwb3J0UGFyYW1ldGVyRGVzY3JpcHRpb25cIlxuICB9O1xuXG4gIHN0YXRpYyByZWFkb25seSBPTlRJTUlaRVBBUkFNRVRFUk1BUFBJTkcgPSB7XG4gICAgXCJyZXBvcnRQYXJhbWV0ZXJOYW1lXCI6IFwibmFtZVwiLFxuICAgIFwicmVwb3J0UGFyYW1ldGVyRGVzY3JpcHRpb25cIjogXCJkZXNjcmlwdGlvblwiXG4gIH07XG5cblxuICBzdGF0aWMgcmVhZG9ubHkgT05USU1JWkVQUkVGRVJFTkNFU01BUFBJTkcgPSB7XG4gICAgXCJwcmVmZXJlbmNlaWRcIjogXCJpZFwiLFxuICAgIFwicHJlZmVyZW5jZW5hbWVcIjogXCJuYW1lXCIsXG4gICAgXCJwcmVmZXJlbmNlZGVzY3JpcHRpb25cIjogXCJkZXNjcmlwdGlvblwiLFxuICAgIFwicHJlZmVyZW5jZWVudGl0eVwiOiBcImVudGl0eVwiLFxuICAgIFwicHJlZmVyZW5jZXNlcnZpY2VcIjogXCJzZXJ2aWNlXCIsXG4gICAgXCJwcmVmZXJlbmNldHlwZVwiOiBcInR5cGVcIixcbiAgICBcInByZWZlcmVuY2VwYXJhbWV0ZXJzXCI6IFwicGFyYW1zXCJcbiAgfTtcblxuICBzdGF0aWMgcmVhZG9ubHkgSlNPTkFQSVBSRUZFUkVOQ0VTTUFQUElORyA9IHtcbiAgICBcInByZWZlcmVuY2VpZFwiOiBcIlBSRUZFUkVOQ0VJRFwiLFxuICAgIFwicHJlZmVyZW5jZW5hbWVcIjogXCJQUkVGRVJFTkNFTkFNRVwiLFxuICAgIFwicHJlZmVyZW5jZWRlc2NyaXB0aW9uXCI6IFwiUFJFRkVSRU5DRURFU0NSSVBUSU9OXCIsXG4gICAgXCJwcmVmZXJlbmNlZW50aXR5XCI6IFwiUFJFRkVSRU5DRUVOVElUWVwiLFxuICAgIFwicHJlZmVyZW5jZXNlcnZpY2VcIjogXCJQUkVGRVJFTkNFU0VSVklDRVwiLFxuICAgIFwicHJlZmVyZW5jZXR5cGVcIjogXCJQUkVGRVJFTkNFVFlQRVwiLFxuICAgIFwicHJlZmVyZW5jZXBhcmFtZXRlcnNcIjogXCJQUkVGRVJFTkNFUFJFRkVSRU5DRVNcIlxuICB9O1xuXG4gIHN0YXRpYyB0cmFuc2Zvcm1LZXlzKGRhdGE6IHN0cmluZ1tdLCBrZXlNYXBwaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogc3RyaW5nW10ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgcmV0dXJuIGRhdGFcbiAgICB9XG4gICAgcmV0dXJuIGRhdGEubWFwKChrZXkpID0+IGtleU1hcHBpbmdba2V5XSB8fCBrZXkpO1xuXG4gIH1cblxuICAvKipcbiAgICAqIFRyYW5zZm9ybWEgdW4gb2JqZXRvIG1hcGVhbmRvIHN1cyBjbGF2ZXMgc2Vnw7puIGVsIGRpY2Npb25hcmlvIHByb3BvcmNpb25hZG8uXG4gICAgKi9cblxuICBwcml2YXRlIHN0YXRpYyBtYXBPYmplY3RLZXlzKFxuICAgIG9iajogYW55LFxuICAgIGtleU1hcHBpbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgcGFyYW1ldGVyS2V5TWFwcGluZz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iaikucmVkdWNlPFJlY29yZDxzdHJpbmcsIGFueT4+KChuZXdPYmosIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3QgbmV3S2V5ID0ga2V5TWFwcGluZ1trZXldIHx8IGtleTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiB0eXBlb2YgaXRlbSA9PT0gXCJvYmplY3RcIiAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSkpIHtcbiAgICAgICAgLy8gVHJhbnNmb3JtYXIgY2xhdmVzIGRlIG9iamV0b3MgZGVudHJvIGRlIGFycmF5c1xuICAgICAgICBuZXdPYmpbbmV3S2V5XSA9IHZhbHVlLm1hcCgoaXRlbSkgPT4gdGhpcy5tYXBPYmplY3RLZXlzKGl0ZW0sIHBhcmFtZXRlcktleU1hcHBpbmcgfHwge30pKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsICYmIG5ld0tleSAhPT0gXCJwYXJhbXNcIikge1xuICAgICAgICAvLyBUcmFuc2Zvcm1hciBjbGF2ZXMgZGUgb2JqZXRvcyBhbmlkYWRvc1xuICAgICAgICBuZXdPYmpbbmV3S2V5XSA9IHRoaXMubWFwT2JqZWN0S2V5cyh2YWx1ZSwgcGFyYW1ldGVyS2V5TWFwcGluZyB8fCB7fSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdPYmpbbmV3S2V5XSA9IHZhbHVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3T2JqO1xuICAgIH0sIHt9KTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybWEgbG9zIGRhdG9zLCB5YSBzZWEgdW4gc29sbyBvYmpldG8gbyB1biBhcnJheSBkZSBvYmpldG9zLCBhcGxpY2FuZG8gbG9zIG1hcGVvcyBkZSBjbGF2ZXMuXG4gICAqL1xuICBzdGF0aWMgdHJhbnNmb3JtRGF0YShkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdLCBrZXlNYXBwaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCBwYXJhbWV0ZXJLZXlNYXBwaW5nPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSB8IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICByZXR1cm4gZGF0YS5tYXAoKG9iaikgPT4gdGhpcy5tYXBPYmplY3RLZXlzKG9iaiwga2V5TWFwcGluZywgcGFyYW1ldGVyS2V5TWFwcGluZykpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGEgPT09IFwib2JqZWN0XCIgJiYgZGF0YSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMubWFwT2JqZWN0S2V5cyhkYXRhLCBrZXlNYXBwaW5nLCBwYXJhbWV0ZXJLZXlNYXBwaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBzdGF0aWMgc3RhbmRhckRhdGFNYXBwaW5nKGFycmF5OiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLnRyYW5zZm9ybURhdGEoYXJyYXksIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLlNUQU5EQVJEUkVQT1JUTUFQUElORywgT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMuU1RBTkRBUkRQQVJBTUVURVJNQVBQSU5HKTtcbiAgfVxuXG4gIHN0YXRpYyBzdGFuZGFyTWFwcGluZ0tleXMoYXJyYXk6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy50cmFuc2Zvcm1LZXlzKGFycmF5LCBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy5TVEFOREFSRFJFUE9SVE1BUFBJTkcpO1xuICB9XG5cbiAgc3RhdGljIG9udGltaXplUHJlZmVyZW5jZXNNYXBwaW5nS2V5cyhhcnJheTogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLnRyYW5zZm9ybUtleXMoYXJyYXksIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLk9OVElNSVpFUFJFRkVSRU5DRVNNQVBQSU5HKTtcbiAgfVxuXG4gIHN0YXRpYyBvbnRpbWl6ZVByZWZlcmVuY2VzRGF0YU1hcHBpbmcoYXJyYXk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB7IFtrZXk6IHN0cmluZ106IGFueSB9W10pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gfCB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4gT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMudHJhbnNmb3JtRGF0YShhcnJheSwgT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMuT05USU1JWkVQUkVGRVJFTkNFU01BUFBJTkcsIE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLk9OVElNSVpFUEFSQU1FVEVSTUFQUElORyk7XG4gIH1cblxuICBzdGF0aWMganNvbkFwaVByZWZlcmVuY2VzTWFwcGluZ0tleXMoYXJyYXk6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy50cmFuc2Zvcm1LZXlzKGFycmF5LCBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy5KU09OQVBJUFJFRkVSRU5DRVNNQVBQSU5HKTtcbiAgfVxuXG4gIHN0YXRpYyBqc29uQXBpUHJlZmVyZW5jZXNEYXRhTWFwcGluZyhhcnJheTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSk6IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSB8IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy50cmFuc2Zvcm1EYXRhKGFycmF5LCBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy5KU09OQVBJUFJFRkVSRU5DRVNNQVBQSU5HKTtcbiAgfVxuXG5cblxuXG59XG4iXX0=
@@ -273,7 +273,7 @@ export class SQLTypes {
273
273
  }
274
274
  }
275
275
  catch (err) {
276
- console.error('SQLTypes.parseUsingSQLType error');
276
+ console.error('SQLTypes.parseUsingSQLType error:', err, '| value:', arg, '| type:', type);
277
277
  }
278
278
  return value;
279
279
  }
@@ -329,4 +329,4 @@ SQLTypes.NCLOB = 2011;
329
329
  SQLTypes.BASE64 = 6464;
330
330
  SQLTypes.UUID = 6465;
331
331
  SQLTypes.SQLXML = 2009;
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9zcWx0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLE1BQU0sT0FBTyxRQUFRO0lBcVJaLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBWTtRQUN4QyxJQUFJLEtBQWEsQ0FBQztRQUNsQixJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssS0FBSztnQkFDUixLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFDckIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixLQUFLLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztnQkFDekIsTUFBTTtZQUNSLEtBQUssVUFBVTtnQkFDYixLQUFLLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDMUIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixLQUFLLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztnQkFDekIsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsTUFBTTtZQUNSLEtBQUssT0FBTztnQkFDVixLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDdkIsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDdEIsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixLQUFLLEdBQUcs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QUcsQ0FBQyxDQUFDLENBQUM7QUFRWCxjQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFRWixpQkFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBUWQscUJBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQztBQVFuQixjQUFLLEdBQUcsSUFBSSxDQUFDO0FBRWIsZUFBTSxHQUFHLElBQUksQ0FBQztBQUVkLGFBQUksR0FBRyxJQUFJLENBQUM7QUFRWixlQUFNLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXRpbCB9IGZyb20gXCIuL3V0aWxcIjtcblxuZXhwb3J0IGNsYXNzIFNRTFR5cGVzIHtcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5CSVQ8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBCSVQgPSAtNztcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5USU5ZSU5UPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgVElOWUlOVCA9IC02O1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZFxuICAgKiB0byBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPlNNQUxMSU5UPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgU01BTExJTlQgPSA1O1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZFxuICAgKiB0byBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPklOVEVHRVI8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBJTlRFR0VSID0gNDtcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5CSUdJTlQ8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBCSUdJTlQgPSAtNTtcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5GTE9BVDwvY29kZT4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEZMT0FUID0gNjtcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5SRUFMPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgUkVBTCA9IDc7XG5cbiAgLyoqXG4gICAqIDxQPlRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkXG4gICAqIHRvIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+RE9VQkxFPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRE9VQkxFID0gODtcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5OVU1FUklDPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgTlVNRVJJQyA9IDI7XG5cbiAgLyoqXG4gICAqIDxQPlRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkXG4gICAqIHRvIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+REVDSU1BTDwvY29kZT4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIERFQ0lNQUwgPSAzO1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZFxuICAgKiB0byBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPkNIQVI8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBDSEFSID0gMTtcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5WQVJDSEFSPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgVkFSQ0hBUiA9IDEyO1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZFxuICAgKiB0byBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPkxPTkdWQVJDSEFSPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgTE9OR1ZBUkNIQVIgPSAtMTtcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5EQVRFPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgREFURSA9IDkxO1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZFxuICAgKiB0byBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPlRJTUU8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBUSU1FID0gOTI7XG5cbiAgLyoqXG4gICAqIDxQPlRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkXG4gICAqIHRvIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+VElNRVNUQU1QPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgVElNRVNUQU1QID0gOTM7XG5cbiAgLyoqXG4gICAqIDxQPlRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkXG4gICAqIHRvIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+QklOQVJZPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgQklOQVJZID0gLTI7XG5cbiAgLyoqXG4gICAqIDxQPlRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkXG4gICAqIHRvIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+VkFSQklOQVJZPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgVkFSQklOQVJZID0gLTM7XG5cbiAgLyoqXG4gICAqIDxQPlRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkXG4gICAqIHRvIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+TE9OR1ZBUkJJTkFSWTwvY29kZT4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIExPTkdWQVJCSU5BUlkgPSAtNDtcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlXG4gICAqIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdmFsdWVcbiAgICogPGNvZGU+TlVMTDwvY29kZT4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIE5VTEwgPSAwO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgdGhhdCBpbmRpY2F0ZXNcbiAgICogdGhhdCB0aGUgU1FMIHR5cGUgaXMgZGF0YWJhc2Utc3BlY2lmaWMgYW5kXG4gICAqIGdldHMgbWFwcGVkIHRvIGEgSmF2YSBvYmplY3QgdGhhdCBjYW4gYmUgYWNjZXNzZWQgdmlhXG4gICAqIHRoZSBtZXRob2RzIDxjb2RlPmdldE9iamVjdDwvY29kZT4gYW5kIDxjb2RlPnNldE9iamVjdDwvY29kZT4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIE9USEVSID0gMTExMTtcblxuICAvKipcbiAgICogVGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWQgdG9cbiAgICogYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5KQVZBX09CSkVDVDwvY29kZT4uXG4gICAqIEBzaW5jZSAxLjJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgSkFWQV9PQkpFQ1QgPSAyMDAwO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZCB0b1xuICAgKiBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPkRJU1RJTkNUPC9jb2RlPi5cbiAgICogQHNpbmNlIDEuMlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBESVNUSU5DVCA9IDIwMDE7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkIHRvXG4gICAqIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+U1RSVUNUPC9jb2RlPi5cbiAgICogQHNpbmNlIDEuMlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBTVFJVQ1QgPSAyMDAyO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZCB0b1xuICAgKiBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPkFSUkFZPC9jb2RlPi5cbiAgICogQHNpbmNlIDEuMlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBBUlJBWSA9IDIwMDM7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkIHRvXG4gICAqIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+QkxPQjwvY29kZT4uXG4gICAqIEBzaW5jZSAxLjJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgQkxPQiA9IDIwMDQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkIHRvXG4gICAqIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+Q0xPQjwvY29kZT4uXG4gICAqIEBzaW5jZSAxLjJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgQ0xPQiA9IDIwMDU7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkIHRvXG4gICAqIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+UkVGPC9jb2RlPi5cbiAgICogQHNpbmNlIDEuMlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBSRUYgPSAyMDA2O1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbXRpbWVzIHJlZmVycmVkIHRvXG4gICAqIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGUgPGNvZGU+REFUQUxJTks8L2NvZGU+LlxuICAgKlxuICAgKiBAc2luY2UgMS40XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIERBVEFMSU5LID0gNzA7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tdGltZXMgcmVmZXJyZWQgdG9cbiAgICogYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZSA8Y29kZT5CT09MRUFOPC9jb2RlPi5cbiAgICpcbiAgICogQHNpbmNlIDEuNFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBCT09MRUFOID0gMTY7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBKREJDIDQuMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZCB0b1xuICAgKiBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlIDxjb2RlPlJPV0lEPC9jb2RlPlxuICAgKlxuICAgKiBAc2luY2UgMS42XG4gICAqXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIFJPV0lEID0gLTg7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkIHRvXG4gICAqIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGUgPGNvZGU+TkNIQVI8L2NvZGU+XG4gICAqXG4gICAqIEBzaW5jZSAxLjZcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgTkNIQVIgPSAtMTU7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkIHRvXG4gICAqIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGUgPGNvZGU+TlZBUkNIQVI8L2NvZGU+LlxuICAgKlxuICAgKiBAc2luY2UgMS42XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIE5WQVJDSEFSID0gLTk7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkIHRvXG4gICAqIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGUgPGNvZGU+TE9OR05WQVJDSEFSPC9jb2RlPi5cbiAgICpcbiAgICogQHNpbmNlIDEuNlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBMT05HTlZBUkNIQVIgPSAtMTY7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkIHRvXG4gICAqIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGUgPGNvZGU+TkNMT0I8L2NvZGU+LlxuICAgKlxuICAgKiBAc2luY2UgMS42XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIE5DTE9CID0gMjAxMTtcblxuICBwdWJsaWMgc3RhdGljIEJBU0U2NCA9IDY0NjQ7XG5cbiAgcHVibGljIHN0YXRpYyBVVUlEID0gNjQ2NTtcblxuICAvKipcbiAgICogVGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWQgdG9cbiAgICogYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZSA8Y29kZT5YTUw8L2NvZGU+LlxuICAgKlxuICAgKiBAc2luY2UgMS42XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIFNRTFhNTCA9IDIwMDk7XG5cbiAgcHVibGljIHN0YXRpYyBnZXRTUUxUeXBlVmFsdWUodHlwZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBsZXQgdmFsdWU6IG51bWJlcjtcbiAgICB0eXBlID0gdHlwZSA/IHR5cGUudG9VcHBlckNhc2UoKSA6ICcnO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnQklUJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5CSVQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVElOWUlOVCc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuVElOWUlOVDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdTTUFMTElOVCc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuU01BTExJTlQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSU5URUdFUic6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuSU5URUdFUjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdCSUdJTlQnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkJJR0lOVDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdGTE9BVCc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuRkxPQVQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUkVBTCc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuUkVBTDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdET1VCTEUnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkRPVUJMRTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdOVU1FUklDJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5OVU1FUklDO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RFQ0lNQUwnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkRFQ0lNQUw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ0hBUic6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuQ0hBUjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdWQVJDSEFSJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5WQVJDSEFSO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0xPTkdWQVJDSEFSJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5MT05HVkFSQ0hBUjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEQVRFJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5EQVRFO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1RJTUUnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLlRJTUU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVElNRVNUQU1QJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5USU1FU1RBTVA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQklOQVJZJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5CSU5BUlk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVkFSQklOQVJZJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5WQVJCSU5BUlk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTE9OR1ZBUkJJTkFSWSc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuTE9OR1ZBUkJJTkFSWTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdOVUxMJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5OVUxMO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ09USEVSJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5PVEhFUjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdKQVZBX09CSkVDVCc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuSkFWQV9PQkpFQ1Q7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRElTVElOQ1QnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkRJU1RJTkNUO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1NUUlVDVCc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuU1RSVUNUO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0FSUkFZJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5BUlJBWTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdCTE9CJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5CTE9CO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0NMT0InOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkNMT0I7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUkVGJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5SRUY7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnREFUQUxJTksnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkRBVEFMSU5LO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0JPT0xFQU4nOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkJPT0xFQU47XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUk9XSUQnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLlJPV0lEO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ05DSEFSJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5OQ0hBUjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdOVkFSQ0hBUic6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuTlZBUkNIQVI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTE9OR05WQVJDSEFSJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5MT05HTlZBUkNIQVI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTkNMT0InOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLk5DTE9CO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1NRTFhNTCc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuU1FMWE1MO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0JBU0U2NCc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuQkFTRTY0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1VVSUQnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLlVVSUQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5PVEhFUjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0U1FMVHlwZUtleSh0eXBlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGxldCB2YWx1ZTogc3RyaW5nO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBTUUxUeXBlcy5CSVQ6XG4gICAgICAgIHZhbHVlID0gJ0JJVCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5USU5ZSU5UOlxuICAgICAgICB2YWx1ZSA9ICdUSU5ZSU5UJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLlNNQUxMSU5UOlxuICAgICAgICB2YWx1ZSA9ICdTTUFMTElOVCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5JTlRFR0VSOlxuICAgICAgICB2YWx1ZSA9ICdJTlRFR0VSJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLkJJR0lOVDpcbiAgICAgICAgdmFsdWUgPSAnQklHSU5UJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLkZMT0FUOlxuICAgICAgICB2YWx1ZSA9ICdGTE9BVCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5SRUFMOlxuICAgICAgICB2YWx1ZSA9ICdSRUFMJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLkRPVUJMRTpcbiAgICAgICAgdmFsdWUgPSAnRE9VQkxFJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLk5VTUVSSUM6XG4gICAgICAgIHZhbHVlID0gJ05VTUVSSUMnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuREVDSU1BTDpcbiAgICAgICAgdmFsdWUgPSAnREVDSU1BTCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5DSEFSOlxuICAgICAgICB2YWx1ZSA9ICdDSEFSJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLlZBUkNIQVI6XG4gICAgICAgIHZhbHVlID0gJ1ZBUkNIQVInO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuTE9OR1ZBUkNIQVI6XG4gICAgICAgIHZhbHVlID0gJ0xPTkdWQVJDSEFSJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLkRBVEU6XG4gICAgICAgIHZhbHVlID0gJ0RBVEUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuVElNRTpcbiAgICAgICAgdmFsdWUgPSAnVElNRSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5USU1FU1RBTVA6XG4gICAgICAgIHZhbHVlID0gJ1RJTUVTVEFNUCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5CSU5BUlk6XG4gICAgICAgIHZhbHVlID0gJ0JJTkFSWSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5WQVJCSU5BUlk6XG4gICAgICAgIHZhbHVlID0gJ1ZBUkJJTkFSWSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5MT05HVkFSQklOQVJZOlxuICAgICAgICB2YWx1ZSA9ICdMT05HVkFSQklOQVJZJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLk5VTEw6XG4gICAgICAgIHZhbHVlID0gJ05VTEwnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuT1RIRVI6XG4gICAgICAgIHZhbHVlID0gJ09USEVSJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLkpBVkFfT0JKRUNUOlxuICAgICAgICB2YWx1ZSA9ICdKQVZBX09CSkVDVCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5ESVNUSU5DVDpcbiAgICAgICAgdmFsdWUgPSAnRElTVElOQ1QnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuU1RSVUNUOlxuICAgICAgICB2YWx1ZSA9ICdTVFJVQ1QnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuQVJSQVk6XG4gICAgICAgIHZhbHVlID0gJ0FSUkFZJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLkJMT0I6XG4gICAgICAgIHZhbHVlID0gJ0JMT0InO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuQ0xPQjpcbiAgICAgICAgdmFsdWUgPSAnQ0xPQic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5SRUY6XG4gICAgICAgIHZhbHVlID0gJ1JFRic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5EQVRBTElOSzpcbiAgICAgICAgdmFsdWUgPSAnREFUQUxJTksnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuQk9PTEVBTjpcbiAgICAgICAgdmFsdWUgPSAnQk9PTEVBTic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5ST1dJRDpcbiAgICAgICAgdmFsdWUgPSAnUk9XSUQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuTkNIQVI6XG4gICAgICAgIHZhbHVlID0gJ05DSEFSJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLk5WQVJDSEFSOlxuICAgICAgICB2YWx1ZSA9ICdOVkFSQ0hBUic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5MT05HTlZBUkNIQVI6XG4gICAgICAgIHZhbHVlID0gJ0xPTkdOVkFSQ0hBUic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5OQ0xPQjpcbiAgICAgICAgdmFsdWUgPSAnTkNMT0InO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuU1FMWE1MOlxuICAgICAgICB2YWx1ZSA9ICdTUUxYTUwnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuQkFTRTY0OlxuICAgICAgICB2YWx1ZSA9ICdCQVNFNjQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuVVVJRDpcbiAgICAgICAgdmFsdWUgPSAnVVVJRCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdmFsdWUgPSAnT1RIRVInO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBwYXJzZVVzaW5nU1FMVHlwZShhcmc6IGFueSwgdHlwZTogc3RyaW5nKTogYW55IHtcbiAgICBsZXQgdmFsdWUgPSBhcmc7XG4gICAgdHlwZSA9IHR5cGUgPyB0eXBlLnRvVXBwZXJDYXNlKCkgOiAnJztcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKGFyZykpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdUSU5ZSU5UJzpcbiAgICAgICAgY2FzZSAnU01BTExJTlQnOlxuICAgICAgICBjYXNlICdJTlRFR0VSJzpcbiAgICAgICAgY2FzZSAnQklHSU5UJzpcbiAgICAgICAgICB2YWx1ZSA9IE51bWJlcihhcmcpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdGTE9BVCc6XG4gICAgICAgIGNhc2UgJ1JFQUwnOlxuICAgICAgICBjYXNlICdET1VCTEUnOlxuICAgICAgICBjYXNlICdOVU1FUklDJzpcbiAgICAgICAgY2FzZSAnREVDSU1BTCc6XG4gICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KGFyZyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdTUUxUeXBlcy5wYXJzZVVzaW5nU1FMVHlwZSBlcnJvcicpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzTnVtZXJpY1NRTFR5cGUoYXJnOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gW1xuICAgICAgU1FMVHlwZXMuVElOWUlOVCxcbiAgICAgIFNRTFR5cGVzLlNNQUxMSU5ULFxuICAgICAgU1FMVHlwZXMuSU5URUdFUixcbiAgICAgIFNRTFR5cGVzLkJJR0lOVCxcbiAgICAgIFNRTFR5cGVzLkZMT0FULFxuICAgICAgU1FMVHlwZXMuUkVBTCxcbiAgICAgIFNRTFR5cGVzLkRPVUJMRSxcbiAgICAgIFNRTFR5cGVzLk5VTUVSSUMsXG4gICAgICBTUUxUeXBlcy5ERUNJTUFMXG4gICAgXS5pbmRleE9mKGFyZykgIT09IC0xO1xuICB9XG5cbn1cbiJdfQ==
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9zcWx0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLE1BQU0sT0FBTyxRQUFRO0lBcVJaLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBWTtRQUN4QyxJQUFJLEtBQWEsQ0FBQztRQUNsQixJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssS0FBSztnQkFDUixLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFDckIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixLQUFLLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztnQkFDekIsTUFBTTtZQUNSLEtBQUssVUFBVTtnQkFDYixLQUFLLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDMUIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixLQUFLLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztnQkFDekIsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsTUFBTTtZQUNSLEtBQUssT0FBTztnQkFDVixLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDdkIsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDdEIsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixLQUFLLEdBQUcs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RyxFQUFFLENBQUM7QUFRZCxnQkFBTyxHQUFHLEVBQUUsQ0FBQztBQVdiLGNBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztBQVFYLGNBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztBQVFaLGlCQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFRZCxxQkFBWSxHQUFHLENBQUMsRUFBRSxDQUFDO0FBUW5CLGNBQUssR0FBRyxJQUFJLENBQUM7QUFFYixlQUFNLEdBQUcsSUFBSSxDQUFDO0FBRWQsYUFBSSxHQUFHLElBQUksQ0FBQztBQVFaLGVBQU0sR0FBRyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVdGlsIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5leHBvcnQgY2xhc3MgU1FMVHlwZXMge1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZFxuICAgKiB0byBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPkJJVDwvY29kZT4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEJJVCA9IC03O1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZFxuICAgKiB0byBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPlRJTllJTlQ8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBUSU5ZSU5UID0gLTY7XG5cbiAgLyoqXG4gICAqIDxQPlRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkXG4gICAqIHRvIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+U01BTExJTlQ8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBTTUFMTElOVCA9IDU7XG5cbiAgLyoqXG4gICAqIDxQPlRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkXG4gICAqIHRvIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+SU5URUdFUjwvY29kZT4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIElOVEVHRVIgPSA0O1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZFxuICAgKiB0byBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPkJJR0lOVDwvY29kZT4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEJJR0lOVCA9IC01O1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZFxuICAgKiB0byBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPkZMT0FUPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRkxPQVQgPSA2O1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZFxuICAgKiB0byBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPlJFQUw8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBSRUFMID0gNztcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5ET1VCTEU8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBET1VCTEUgPSA4O1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZFxuICAgKiB0byBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPk5VTUVSSUM8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBOVU1FUklDID0gMjtcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5ERUNJTUFMPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgREVDSU1BTCA9IDM7XG5cbiAgLyoqXG4gICAqIDxQPlRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkXG4gICAqIHRvIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+Q0hBUjwvY29kZT4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIENIQVIgPSAxO1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZFxuICAgKiB0byBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPlZBUkNIQVI8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBWQVJDSEFSID0gMTI7XG5cbiAgLyoqXG4gICAqIDxQPlRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkXG4gICAqIHRvIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+TE9OR1ZBUkNIQVI8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBMT05HVkFSQ0hBUiA9IC0xO1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZFxuICAgKiB0byBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPkRBVEU8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBEQVRFID0gOTE7XG5cbiAgLyoqXG4gICAqIDxQPlRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkXG4gICAqIHRvIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+VElNRTwvY29kZT4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIFRJTUUgPSA5MjtcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5USU1FU1RBTVA8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBUSU1FU1RBTVAgPSA5MztcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5CSU5BUlk8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBCSU5BUlkgPSAtMjtcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5WQVJCSU5BUlk8L2NvZGU+LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBWQVJCSU5BUlkgPSAtMztcblxuICAvKipcbiAgICogPFA+VGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWRcbiAgICogdG8gYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5MT05HVkFSQklOQVJZPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgTE9OR1ZBUkJJTkFSWSA9IC00O1xuXG4gIC8qKlxuICAgKiA8UD5UaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VcbiAgICogdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB2YWx1ZVxuICAgKiA8Y29kZT5OVUxMPC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgTlVMTCA9IDA7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSB0aGF0IGluZGljYXRlc1xuICAgKiB0aGF0IHRoZSBTUUwgdHlwZSBpcyBkYXRhYmFzZS1zcGVjaWZpYyBhbmRcbiAgICogZ2V0cyBtYXBwZWQgdG8gYSBKYXZhIG9iamVjdCB0aGF0IGNhbiBiZSBhY2Nlc3NlZCB2aWFcbiAgICogdGhlIG1ldGhvZHMgPGNvZGU+Z2V0T2JqZWN0PC9jb2RlPiBhbmQgPGNvZGU+c2V0T2JqZWN0PC9jb2RlPi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgT1RIRVIgPSAxMTExO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZCB0b1xuICAgKiBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlXG4gICAqIDxjb2RlPkpBVkFfT0JKRUNUPC9jb2RlPi5cbiAgICogQHNpbmNlIDEuMlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBKQVZBX09CSkVDVCA9IDIwMDA7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkIHRvXG4gICAqIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+RElTVElOQ1Q8L2NvZGU+LlxuICAgKiBAc2luY2UgMS4yXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIERJU1RJTkNUID0gMjAwMTtcblxuICAvKipcbiAgICogVGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWQgdG9cbiAgICogYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5TVFJVQ1Q8L2NvZGU+LlxuICAgKiBAc2luY2UgMS4yXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIFNUUlVDVCA9IDIwMDI7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkIHRvXG4gICAqIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGVcbiAgICogPGNvZGU+QVJSQVk8L2NvZGU+LlxuICAgKiBAc2luY2UgMS4yXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEFSUkFZID0gMjAwMztcblxuICAvKipcbiAgICogVGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWQgdG9cbiAgICogYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5CTE9CPC9jb2RlPi5cbiAgICogQHNpbmNlIDEuMlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBCTE9CID0gMjAwNDtcblxuICAvKipcbiAgICogVGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWQgdG9cbiAgICogYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5DTE9CPC9jb2RlPi5cbiAgICogQHNpbmNlIDEuMlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBDTE9CID0gMjAwNTtcblxuICAvKipcbiAgICogVGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWQgdG9cbiAgICogYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZVxuICAgKiA8Y29kZT5SRUY8L2NvZGU+LlxuICAgKiBAc2luY2UgMS4yXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIFJFRiA9IDIwMDY7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tdGltZXMgcmVmZXJyZWQgdG9cbiAgICogYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZSA8Y29kZT5EQVRBTElOSzwvY29kZT4uXG4gICAqXG4gICAqIEBzaW5jZSAxLjRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgREFUQUxJTksgPSA3MDtcblxuICAvKipcbiAgICogVGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb210aW1lcyByZWZlcnJlZCB0b1xuICAgKiBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlIDxjb2RlPkJPT0xFQU48L2NvZGU+LlxuICAgKlxuICAgKiBAc2luY2UgMS40XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEJPT0xFQU4gPSAxNjtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEpEQkMgNC4wIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdGFudCBpbiB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc29tZXRpbWVzIHJlZmVycmVkIHRvXG4gICAqIGFzIGEgdHlwZSBjb2RlLCB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyaWMgU1FMIHR5cGUgPGNvZGU+Uk9XSUQ8L2NvZGU+XG4gICAqXG4gICAqIEBzaW5jZSAxLjZcbiAgICpcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgUk9XSUQgPSAtODtcblxuICAvKipcbiAgICogVGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWQgdG9cbiAgICogYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZSA8Y29kZT5OQ0hBUjwvY29kZT5cbiAgICpcbiAgICogQHNpbmNlIDEuNlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBOQ0hBUiA9IC0xNTtcblxuICAvKipcbiAgICogVGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWQgdG9cbiAgICogYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZSA8Y29kZT5OVkFSQ0hBUjwvY29kZT4uXG4gICAqXG4gICAqIEBzaW5jZSAxLjZcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgTlZBUkNIQVIgPSAtOTtcblxuICAvKipcbiAgICogVGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWQgdG9cbiAgICogYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZSA8Y29kZT5MT05HTlZBUkNIQVI8L2NvZGU+LlxuICAgKlxuICAgKiBAc2luY2UgMS42XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIExPTkdOVkFSQ0hBUiA9IC0xNjtcblxuICAvKipcbiAgICogVGhlIGNvbnN0YW50IGluIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBzb21ldGltZXMgcmVmZXJyZWQgdG9cbiAgICogYXMgYSB0eXBlIGNvZGUsIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJpYyBTUUwgdHlwZSA8Y29kZT5OQ0xPQjwvY29kZT4uXG4gICAqXG4gICAqIEBzaW5jZSAxLjZcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgTkNMT0IgPSAyMDExO1xuXG4gIHB1YmxpYyBzdGF0aWMgQkFTRTY0ID0gNjQ2NDtcblxuICBwdWJsaWMgc3RhdGljIFVVSUQgPSA2NDY1O1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RhbnQgaW4gdGhlIEphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIHNvbWV0aW1lcyByZWZlcnJlZCB0b1xuICAgKiBhcyBhIHR5cGUgY29kZSwgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmljIFNRTCB0eXBlIDxjb2RlPlhNTDwvY29kZT4uXG4gICAqXG4gICAqIEBzaW5jZSAxLjZcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgU1FMWE1MID0gMjAwOTtcblxuICBwdWJsaWMgc3RhdGljIGdldFNRTFR5cGVWYWx1ZSh0eXBlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGxldCB2YWx1ZTogbnVtYmVyO1xuICAgIHR5cGUgPSB0eXBlID8gdHlwZS50b1VwcGVyQ2FzZSgpIDogJyc7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdCSVQnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkJJVDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdUSU5ZSU5UJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5USU5ZSU5UO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1NNQUxMSU5UJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5TTUFMTElOVDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdJTlRFR0VSJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5JTlRFR0VSO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0JJR0lOVCc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuQklHSU5UO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0ZMT0FUJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5GTE9BVDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdSRUFMJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5SRUFMO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RPVUJMRSc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuRE9VQkxFO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ05VTUVSSUMnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLk5VTUVSSUM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnREVDSU1BTCc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuREVDSU1BTDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDSEFSJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5DSEFSO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1ZBUkNIQVInOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLlZBUkNIQVI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTE9OR1ZBUkNIQVInOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkxPTkdWQVJDSEFSO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RBVEUnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkRBVEU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVElNRSc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuVElNRTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdUSU1FU1RBTVAnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLlRJTUVTVEFNUDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdCSU5BUlknOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkJJTkFSWTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdWQVJCSU5BUlknOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLlZBUkJJTkFSWTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdMT05HVkFSQklOQVJZJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5MT05HVkFSQklOQVJZO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ05VTEwnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLk5VTEw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnT1RIRVInOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLk9USEVSO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0pBVkFfT0JKRUNUJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5KQVZBX09CSkVDVDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdESVNUSU5DVCc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuRElTVElOQ1Q7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnU1RSVUNUJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5TVFJVQ1Q7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQVJSQVknOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkFSUkFZO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0JMT0InOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkJMT0I7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ0xPQic6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuQ0xPQjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdSRUYnOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLlJFRjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEQVRBTElOSyc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuREFUQUxJTks7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQk9PTEVBTic6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuQk9PTEVBTjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdST1dJRCc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuUk9XSUQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTkNIQVInOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLk5DSEFSO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ05WQVJDSEFSJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5OVkFSQ0hBUjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdMT05HTlZBUkNIQVInOlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLkxPTkdOVkFSQ0hBUjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdOQ0xPQic6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuTkNMT0I7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnU1FMWE1MJzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5TUUxYTUw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQkFTRTY0JzpcbiAgICAgICAgdmFsdWUgPSBTUUxUeXBlcy5CQVNFNjQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVVVJRCc6XG4gICAgICAgIHZhbHVlID0gU1FMVHlwZXMuVVVJRDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB2YWx1ZSA9IFNRTFR5cGVzLk9USEVSO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRTUUxUeXBlS2V5KHR5cGU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgbGV0IHZhbHVlOiBzdHJpbmc7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFNRTFR5cGVzLkJJVDpcbiAgICAgICAgdmFsdWUgPSAnQklUJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLlRJTllJTlQ6XG4gICAgICAgIHZhbHVlID0gJ1RJTllJTlQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuU01BTExJTlQ6XG4gICAgICAgIHZhbHVlID0gJ1NNQUxMSU5UJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLklOVEVHRVI6XG4gICAgICAgIHZhbHVlID0gJ0lOVEVHRVInO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuQklHSU5UOlxuICAgICAgICB2YWx1ZSA9ICdCSUdJTlQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuRkxPQVQ6XG4gICAgICAgIHZhbHVlID0gJ0ZMT0FUJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLlJFQUw6XG4gICAgICAgIHZhbHVlID0gJ1JFQUwnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuRE9VQkxFOlxuICAgICAgICB2YWx1ZSA9ICdET1VCTEUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuTlVNRVJJQzpcbiAgICAgICAgdmFsdWUgPSAnTlVNRVJJQyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5ERUNJTUFMOlxuICAgICAgICB2YWx1ZSA9ICdERUNJTUFMJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLkNIQVI6XG4gICAgICAgIHZhbHVlID0gJ0NIQVInO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuVkFSQ0hBUjpcbiAgICAgICAgdmFsdWUgPSAnVkFSQ0hBUic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5MT05HVkFSQ0hBUjpcbiAgICAgICAgdmFsdWUgPSAnTE9OR1ZBUkNIQVInO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuREFURTpcbiAgICAgICAgdmFsdWUgPSAnREFURSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5USU1FOlxuICAgICAgICB2YWx1ZSA9ICdUSU1FJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLlRJTUVTVEFNUDpcbiAgICAgICAgdmFsdWUgPSAnVElNRVNUQU1QJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLkJJTkFSWTpcbiAgICAgICAgdmFsdWUgPSAnQklOQVJZJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLlZBUkJJTkFSWTpcbiAgICAgICAgdmFsdWUgPSAnVkFSQklOQVJZJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLkxPTkdWQVJCSU5BUlk6XG4gICAgICAgIHZhbHVlID0gJ0xPTkdWQVJCSU5BUlknO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuTlVMTDpcbiAgICAgICAgdmFsdWUgPSAnTlVMTCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5PVEhFUjpcbiAgICAgICAgdmFsdWUgPSAnT1RIRVInO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuSkFWQV9PQkpFQ1Q6XG4gICAgICAgIHZhbHVlID0gJ0pBVkFfT0JKRUNUJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLkRJU1RJTkNUOlxuICAgICAgICB2YWx1ZSA9ICdESVNUSU5DVCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5TVFJVQ1Q6XG4gICAgICAgIHZhbHVlID0gJ1NUUlVDVCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5BUlJBWTpcbiAgICAgICAgdmFsdWUgPSAnQVJSQVknO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuQkxPQjpcbiAgICAgICAgdmFsdWUgPSAnQkxPQic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5DTE9COlxuICAgICAgICB2YWx1ZSA9ICdDTE9CJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLlJFRjpcbiAgICAgICAgdmFsdWUgPSAnUkVGJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLkRBVEFMSU5LOlxuICAgICAgICB2YWx1ZSA9ICdEQVRBTElOSyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5CT09MRUFOOlxuICAgICAgICB2YWx1ZSA9ICdCT09MRUFOJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLlJPV0lEOlxuICAgICAgICB2YWx1ZSA9ICdST1dJRCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5OQ0hBUjpcbiAgICAgICAgdmFsdWUgPSAnTkNIQVInO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU1FMVHlwZXMuTlZBUkNIQVI6XG4gICAgICAgIHZhbHVlID0gJ05WQVJDSEFSJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLkxPTkdOVkFSQ0hBUjpcbiAgICAgICAgdmFsdWUgPSAnTE9OR05WQVJDSEFSJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNRTFR5cGVzLk5DTE9COlxuICAgICAgICB2YWx1ZSA9ICdOQ0xPQic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5TUUxYTUw6XG4gICAgICAgIHZhbHVlID0gJ1NRTFhNTCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5CQVNFNjQ6XG4gICAgICAgIHZhbHVlID0gJ0JBU0U2NCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTUUxUeXBlcy5VVUlEOlxuICAgICAgICB2YWx1ZSA9ICdVVUlEJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB2YWx1ZSA9ICdPVEhFUic7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHBhcnNlVXNpbmdTUUxUeXBlKGFyZzogYW55LCB0eXBlOiBzdHJpbmcpOiBhbnkge1xuICAgIGxldCB2YWx1ZSA9IGFyZztcbiAgICB0eXBlID0gdHlwZSA/IHR5cGUudG9VcHBlckNhc2UoKSA6ICcnO1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQoYXJnKSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ1RJTllJTlQnOlxuICAgICAgICBjYXNlICdTTUFMTElOVCc6XG4gICAgICAgIGNhc2UgJ0lOVEVHRVInOlxuICAgICAgICBjYXNlICdCSUdJTlQnOlxuICAgICAgICAgIHZhbHVlID0gTnVtYmVyKGFyZyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0ZMT0FUJzpcbiAgICAgICAgY2FzZSAnUkVBTCc6XG4gICAgICAgIGNhc2UgJ0RPVUJMRSc6XG4gICAgICAgIGNhc2UgJ05VTUVSSUMnOlxuICAgICAgICBjYXNlICdERUNJTUFMJzpcbiAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQoYXJnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1NRTFR5cGVzLnBhcnNlVXNpbmdTUUxUeXBlIGVycm9yOicsIGVyciwgJ3wgdmFsdWU6JywgYXJnLCAnfCB0eXBlOicsIHR5cGUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzTnVtZXJpY1NRTFR5cGUoYXJnOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gW1xuICAgICAgU1FMVHlwZXMuVElOWUlOVCxcbiAgICAgIFNRTFR5cGVzLlNNQUxMSU5ULFxuICAgICAgU1FMVHlwZXMuSU5URUdFUixcbiAgICAgIFNRTFR5cGVzLkJJR0lOVCxcbiAgICAgIFNRTFR5cGVzLkZMT0FULFxuICAgICAgU1FMVHlwZXMuUkVBTCxcbiAgICAgIFNRTFR5cGVzLkRPVUJMRSxcbiAgICAgIFNRTFR5cGVzLk5VTUVSSUMsXG4gICAgICBTUUxUeXBlcy5ERUNJTUFMXG4gICAgXS5pbmRleE9mKGFyZykgIT09IC0xO1xuICB9XG5cbn1cbiJdfQ==