@tiba-spark/client-shared-lib 25.4.1-159 → 25.4.1-164

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 (209) hide show
  1. package/esm2022/libraries/components/account-frame-message-bar/account-frame-message-bar.component.mjs +3 -3
  2. package/esm2022/libraries/components/base/base.component.mjs +3 -3
  3. package/esm2022/libraries/components/cloud-confirm-dialog/cloud-confirm-dialog.component.mjs +3 -3
  4. package/esm2022/libraries/components/com-status-icon/com-status-icon.component.mjs +3 -3
  5. package/esm2022/libraries/components/common-pages/common-pages.module.mjs +4 -4
  6. package/esm2022/libraries/components/common-pages/error-page/error-page.component.mjs +3 -3
  7. package/esm2022/libraries/components/common-pages/not-supported-browser/not-supported-browser-page.component.mjs +3 -3
  8. package/esm2022/libraries/components/device/device-icon/device-icon.component.mjs +3 -3
  9. package/esm2022/libraries/components/device/device-item/device-item.component.mjs +3 -3
  10. package/esm2022/libraries/components/device/device-status/device-status-base.component.mjs +3 -3
  11. package/esm2022/libraries/components/device/device.module.mjs +4 -4
  12. package/esm2022/libraries/components/dynamic-container/dynamic-container.component.mjs +3 -3
  13. package/esm2022/libraries/components/field-label/field-label.component.mjs +3 -3
  14. package/esm2022/libraries/components/field-validations/field-validations.component.mjs +3 -3
  15. package/esm2022/libraries/components/form-validations/form-validations.component.mjs +3 -3
  16. package/esm2022/libraries/components/global-message-container/global-message-container.component.mjs +3 -3
  17. package/esm2022/libraries/components/icon/icon-column/icon-column.component.mjs +3 -3
  18. package/esm2022/libraries/components/icon/icon.component.mjs +3 -3
  19. package/esm2022/libraries/components/icon/icon.module.mjs +4 -4
  20. package/esm2022/libraries/components/intercom/intercom.component.mjs +3 -3
  21. package/esm2022/libraries/components/logo/logo.component.mjs +3 -3
  22. package/esm2022/libraries/components/message-bar/float-message-bar.service.mjs +3 -3
  23. package/esm2022/libraries/components/message-bar/message-bar-container/message-bar-container.component.mjs +3 -3
  24. package/esm2022/libraries/components/message-bar/message-bar.component.mjs +3 -3
  25. package/esm2022/libraries/components/message-bar/message-bar.module.mjs +4 -4
  26. package/esm2022/libraries/components/message-bar/message-bar.service.mjs +3 -3
  27. package/esm2022/libraries/components/message-bar/static-message-bar.service.mjs +3 -3
  28. package/esm2022/libraries/components/modal-buttons-wrapper/modal-buttons-wrapper.component.mjs +3 -3
  29. package/esm2022/libraries/components/module-menu/module-menu-base.component.mjs +3 -3
  30. package/esm2022/libraries/components/notification/alert-notification/alert-notification.component.mjs +3 -3
  31. package/esm2022/libraries/components/notification/alert-notification/alert-notification.service.mjs +3 -3
  32. package/esm2022/libraries/components/notification/command-notification/command-notification.component.mjs +3 -3
  33. package/esm2022/libraries/components/notification/command-notification/command-notification.service.mjs +3 -3
  34. package/esm2022/libraries/components/notification/notification-close-all-button.component.mjs +3 -3
  35. package/esm2022/libraries/components/notification/notification-event.service.mjs +3 -3
  36. package/esm2022/libraries/components/notification/notification-type-label/notification-type-label.component.mjs +3 -3
  37. package/esm2022/libraries/components/notification/notification.module.mjs +4 -4
  38. package/esm2022/libraries/components/notification/notification.service.mjs +3 -3
  39. package/esm2022/libraries/components/overlay-loading-container/empty-results/empty-results.component.mjs +3 -3
  40. package/esm2022/libraries/components/overlay-loading-container/error-results/error-results.component.mjs +3 -3
  41. package/esm2022/libraries/components/overlay-loading-container/loading-overlay.component.mjs +3 -3
  42. package/esm2022/libraries/components/restart-link/restart-link.component.mjs +3 -3
  43. package/esm2022/libraries/components/restart-link/restart-link.module.mjs +4 -4
  44. package/esm2022/libraries/components/search-value-highlight/search-value-highlight.component.mjs +3 -3
  45. package/esm2022/libraries/components/shared-components.module.mjs +4 -4
  46. package/esm2022/libraries/components/status-icon/status-icon.component.mjs +3 -3
  47. package/esm2022/libraries/components/time-elapsed-counter/time-elapsed-counter.component.mjs +3 -3
  48. package/esm2022/libraries/directives/autofocus.directive.mjs +3 -3
  49. package/esm2022/libraries/directives/container-ref.directive.mjs +3 -3
  50. package/esm2022/libraries/directives/dynamic-ellipsis-tooltip.directive.mjs +3 -3
  51. package/esm2022/libraries/directives/ellipsis-multiline.directive.mjs +3 -3
  52. package/esm2022/libraries/directives/formatted-input.directive.mjs +3 -3
  53. package/esm2022/libraries/directives/is-ellipsis.directive.mjs +3 -3
  54. package/esm2022/libraries/directives/mat-hint-error.directive.mjs +3 -3
  55. package/esm2022/libraries/directives/native-element-injector.directive.mjs +3 -3
  56. package/esm2022/libraries/directives/offscreen.directive.mjs +3 -3
  57. package/esm2022/libraries/directives/shared-directives.module.mjs +4 -4
  58. package/esm2022/libraries/directives/stop-propagation.directive.mjs +3 -3
  59. package/esm2022/libraries/directives/tb-type-number.directive.mjs +3 -3
  60. package/esm2022/libraries/directives/var.directive.mjs +3 -3
  61. package/esm2022/libraries/enums/localization.enum.mjs +2 -1
  62. package/esm2022/libraries/guards/module-guard.mjs +3 -3
  63. package/esm2022/libraries/guards/not-supported-browser-guard.mjs +3 -3
  64. package/esm2022/libraries/guards/sub-module-guard.mjs +3 -3
  65. package/esm2022/libraries/interceptors/http-cancel.interceptor.mjs +3 -3
  66. package/esm2022/libraries/localization/localization.module.mjs +4 -4
  67. package/esm2022/libraries/localization/localization.state.mjs +3 -3
  68. package/esm2022/libraries/modules/administrative-notifications/administrative-notifications.module.mjs +4 -4
  69. package/esm2022/libraries/modules/administrative-notifications/administrative-notifications.state.mjs +3 -3
  70. package/esm2022/libraries/modules/alerts-and-notifications/alerts-and-notifications.module.mjs +4 -4
  71. package/esm2022/libraries/modules/alerts-and-notifications/alerts-and-notifications.service.mjs +3 -3
  72. package/esm2022/libraries/modules/alerts-and-notifications/alerts-and-notifications.state.mjs +3 -3
  73. package/esm2022/libraries/modules/auth/auth-route-guard.mjs +3 -3
  74. package/esm2022/libraries/modules/auth/auth.module.mjs +4 -4
  75. package/esm2022/libraries/modules/auth/refresh-token.state.mjs +3 -3
  76. package/esm2022/libraries/modules/auth/session.state.mjs +5 -5
  77. package/esm2022/libraries/modules/calculator/calculator.module.mjs +4 -4
  78. package/esm2022/libraries/modules/calculator/calculator.state.mjs +3 -3
  79. package/esm2022/libraries/modules/car/car.module.mjs +4 -4
  80. package/esm2022/libraries/modules/car/car.state.mjs +3 -3
  81. package/esm2022/libraries/modules/email-server/email-server.module.mjs +4 -4
  82. package/esm2022/libraries/modules/email-server/email-server.state.mjs +3 -3
  83. package/esm2022/libraries/modules/facility/facility-menu.service.mjs +3 -3
  84. package/esm2022/libraries/modules/facility/facility.module.mjs +4 -4
  85. package/esm2022/libraries/modules/facility/facility.service.mjs +3 -3
  86. package/esm2022/libraries/modules/facility/facility.state.mjs +3 -3
  87. package/esm2022/libraries/modules/guest/guest.module.mjs +4 -4
  88. package/esm2022/libraries/modules/guest/guest.state.mjs +3 -3
  89. package/esm2022/libraries/modules/layout/layout.module.mjs +4 -4
  90. package/esm2022/libraries/modules/layout/layout.state.mjs +3 -3
  91. package/esm2022/libraries/modules/login/login.module.mjs +4 -4
  92. package/esm2022/libraries/modules/login/login.service.mjs +3 -3
  93. package/esm2022/libraries/modules/login/login.state.mjs +3 -3
  94. package/esm2022/libraries/modules/park-activities/park-activities.module.mjs +4 -4
  95. package/esm2022/libraries/modules/park-activities/park-activities.state.mjs +3 -3
  96. package/esm2022/libraries/modules/park-manager/park-manager.module.mjs +4 -4
  97. package/esm2022/libraries/modules/park-manager/park-manager.state.mjs +3 -3
  98. package/esm2022/libraries/modules/parker/parker.service.mjs +3 -3
  99. package/esm2022/libraries/modules/parker/parker.state.mjs +3 -3
  100. package/esm2022/libraries/modules/rate/rate.module.mjs +4 -4
  101. package/esm2022/libraries/modules/rate/rate.state.mjs +3 -3
  102. package/esm2022/libraries/modules/remote-validation/remote-validation.module.mjs +4 -4
  103. package/esm2022/libraries/modules/remote-validation/remote-validation.state.mjs +3 -3
  104. package/esm2022/libraries/modules/security/security.module.mjs +4 -4
  105. package/esm2022/libraries/modules/security/security.state.mjs +3 -3
  106. package/esm2022/libraries/modules/sidenav/sidenav.module.mjs +4 -4
  107. package/esm2022/libraries/modules/sidenav/sidenav.state.mjs +3 -3
  108. package/esm2022/libraries/modules/smartparks/smartpark-dialog.state.mjs +3 -3
  109. package/esm2022/libraries/modules/smartparks/smartpark.module.mjs +4 -4
  110. package/esm2022/libraries/modules/smartparks/smartpark.state.mjs +3 -3
  111. package/esm2022/libraries/modules/tenant-logo/tenant-logo.module.mjs +4 -4
  112. package/esm2022/libraries/modules/tenant-logo/tenant-logo.state.mjs +3 -3
  113. package/esm2022/libraries/modules/user/user.module.mjs +4 -4
  114. package/esm2022/libraries/modules/user/user.state.mjs +3 -3
  115. package/esm2022/libraries/modules/user-settings/user-settings.module.mjs +4 -4
  116. package/esm2022/libraries/modules/user-settings/user-settings.state.mjs +3 -3
  117. package/esm2022/libraries/modules/validation-type/validation-type.module.mjs +4 -4
  118. package/esm2022/libraries/modules/validation-type/validation-type.state.mjs +3 -3
  119. package/esm2022/libraries/modules/zone/zone.module.mjs +4 -4
  120. package/esm2022/libraries/modules/zone/zone.state.mjs +3 -3
  121. package/esm2022/libraries/pipes/c-log-it.pipe.mjs +3 -3
  122. package/esm2022/libraries/pipes/cent-to-coin.pipe.mjs +3 -3
  123. package/esm2022/libraries/pipes/curly-to-bold.pipe.mjs +3 -3
  124. package/esm2022/libraries/pipes/decimal-to-amount.pipe.mjs +3 -3
  125. package/esm2022/libraries/pipes/decimal-to-currency.pipe.mjs +3 -3
  126. package/esm2022/libraries/pipes/device-pipes/device-filter-by-zone.pipe.mjs +3 -3
  127. package/esm2022/libraries/pipes/device-pipes/device-filter.pipe.mjs +3 -3
  128. package/esm2022/libraries/pipes/device-pipes/device-pipe.module.mjs +4 -4
  129. package/esm2022/libraries/pipes/device-pipes/device-sort.pipe.mjs +3 -3
  130. package/esm2022/libraries/pipes/enums-to-array.pipe.mjs +3 -3
  131. package/esm2022/libraries/pipes/filter-keys.pipe.mjs +3 -3
  132. package/esm2022/libraries/pipes/filter-numbers.pipe.mjs +3 -3
  133. package/esm2022/libraries/pipes/filter.pipe.mjs +3 -3
  134. package/esm2022/libraries/pipes/format.pipe.mjs +3 -3
  135. package/esm2022/libraries/pipes/group-permission.pipe.mjs +3 -3
  136. package/esm2022/libraries/pipes/humanize.pipe.mjs +3 -3
  137. package/esm2022/libraries/pipes/order-by.pipe.mjs +3 -3
  138. package/esm2022/libraries/pipes/orphan-facilities.pipe.mjs +3 -3
  139. package/esm2022/libraries/pipes/shared-pipes.module.mjs +4 -4
  140. package/esm2022/libraries/pipes/smartpark-time.pipe.mjs +3 -3
  141. package/esm2022/libraries/pipes/sort.pipe.mjs +3 -3
  142. package/esm2022/libraries/pipes/special-day.pipe.mjs +3 -3
  143. package/esm2022/libraries/pipes/string-it.pipe.mjs +3 -3
  144. package/esm2022/libraries/pipes/substr-highlight.pipe.mjs +9 -9
  145. package/esm2022/libraries/pipes/time-ago.pipe.mjs +3 -3
  146. package/esm2022/libraries/pipes/time-elapsed.pipe.mjs +3 -3
  147. package/esm2022/libraries/pipes/time-range.pipe.mjs +3 -3
  148. package/esm2022/libraries/pipes/translate-local.pipe.mjs +3 -3
  149. package/esm2022/libraries/pipes/tree-filter-keys.pipe.mjs +3 -3
  150. package/esm2022/libraries/pipes/wrap-fn.pipe.mjs +3 -3
  151. package/esm2022/libraries/pipes/zerofy-negative.pipe.mjs +3 -3
  152. package/esm2022/libraries/resolvers/command-center-module.resolver.mjs +3 -3
  153. package/esm2022/libraries/resolvers/config.resolver.mjs +3 -3
  154. package/esm2022/libraries/resolvers/error-page.resolver.mjs +3 -3
  155. package/esm2022/libraries/resolvers/localization.resolver.mjs +3 -3
  156. package/esm2022/libraries/resolvers/realtime.resolver.mjs +3 -3
  157. package/esm2022/libraries/service-proxy/cloud-service-proxies.mjs +78 -78
  158. package/esm2022/libraries/service-proxy/edge-service-proxies.mjs +6 -6
  159. package/esm2022/libraries/service-proxy/identity-service-proxies.mjs +30 -30
  160. package/esm2022/libraries/service-proxy/rpc-service-proxies.mjs +111 -111
  161. package/esm2022/libraries/service-proxy/service-proxy.module.mjs +4 -4
  162. package/esm2022/libraries/services/analytics.service.mjs +3 -3
  163. package/esm2022/libraries/services/app-module.service.mjs +3 -3
  164. package/esm2022/libraries/services/app-settings.service.mjs +3 -3
  165. package/esm2022/libraries/services/auth-token.service.mjs +3 -3
  166. package/esm2022/libraries/services/base-device.service.mjs +3 -3
  167. package/esm2022/libraries/services/can-deactivate.service.mjs +3 -3
  168. package/esm2022/libraries/services/company.service.mjs +3 -3
  169. package/esm2022/libraries/services/date.service.mjs +3 -3
  170. package/esm2022/libraries/services/detect-browser.service.mjs +3 -3
  171. package/esm2022/libraries/services/device-remote-commands.service.mjs +3 -3
  172. package/esm2022/libraries/services/export-file.service.mjs +3 -3
  173. package/esm2022/libraries/services/facility-commands-config.service.mjs +3 -3
  174. package/esm2022/libraries/services/facility-commands.service.mjs +3 -3
  175. package/esm2022/libraries/services/factories/msl-auth-service.mjs +3 -3
  176. package/esm2022/libraries/services/factories/openid-auth-init-service.mjs +3 -3
  177. package/esm2022/libraries/services/file-sanitizer.service.mjs +3 -3
  178. package/esm2022/libraries/services/file.service.mjs +3 -3
  179. package/esm2022/libraries/services/general-action.service.mjs +3 -3
  180. package/esm2022/libraries/services/global-error.service.mjs +3 -3
  181. package/esm2022/libraries/services/http-cancel.service.mjs +3 -3
  182. package/esm2022/libraries/services/internet-connection.service.mjs +3 -3
  183. package/esm2022/libraries/services/local-storage.service.mjs +3 -3
  184. package/esm2022/libraries/services/menu.service.mjs +3 -3
  185. package/esm2022/libraries/services/modal.service.mjs +3 -3
  186. package/esm2022/libraries/services/openid-auth.service.mjs +3 -3
  187. package/esm2022/libraries/services/park-time.service.mjs +3 -3
  188. package/esm2022/libraries/services/park.service.mjs +3 -3
  189. package/esm2022/libraries/services/password-strength.service.mjs +3 -3
  190. package/esm2022/libraries/services/permission-cache.service.mjs +3 -3
  191. package/esm2022/libraries/services/permission-config.service.mjs +3 -3
  192. package/esm2022/libraries/services/permissions.service.mjs +3 -3
  193. package/esm2022/libraries/services/realtime-event.service.mjs +3 -3
  194. package/esm2022/libraries/services/refresh-token.service.mjs +3 -3
  195. package/esm2022/libraries/services/remote-command.service.mjs +3 -3
  196. package/esm2022/libraries/services/revenue.service.mjs +3 -3
  197. package/esm2022/libraries/services/route.service.mjs +3 -3
  198. package/esm2022/libraries/services/session-storage.service.mjs +3 -3
  199. package/esm2022/libraries/services/smartpark.service.mjs +3 -3
  200. package/esm2022/libraries/services/tenant.service.mjs +3 -3
  201. package/esm2022/libraries/services/ticket.service.mjs +3 -3
  202. package/esm2022/libraries/services/validation.service.mjs +3 -3
  203. package/esm2022/libraries/shared.module.mjs +4 -4
  204. package/esm2022/libraries/utils/ngxs/action-status.service.mjs +3 -3
  205. package/fesm2022/tiba-spark-client-shared-lib.mjs +865 -864
  206. package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
  207. package/libraries/enums/localization.enum.d.ts +1 -0
  208. package/libraries/enums/localization.enum.d.ts.map +1 -1
  209. package/package.json +1 -1
@@ -432,8 +432,8 @@ let ParkManagerState = class ParkManagerState {
432
432
  }
433
433
  return parkerTicketType;
434
434
  }
435
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParkManagerState, deps: [{ token: i1.Rpc.DeviceRpcServiceProxy }, { token: i2.FacilityRpcServiceProxy }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
436
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParkManagerState }); }
435
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParkManagerState, deps: [{ token: i1.Rpc.DeviceRpcServiceProxy }, { token: i2.FacilityRpcServiceProxy }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
436
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParkManagerState }); }
437
437
  };
438
438
  __decorate([
439
439
  Action(SetDeviceViewModeAction)
@@ -606,7 +606,7 @@ ParkManagerState = ParkManagerState_1 = __decorate([
606
606
  })
607
607
  ], ParkManagerState);
608
608
  export { ParkManagerState };
609
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParkManagerState, decorators: [{
609
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParkManagerState, decorators: [{
610
610
  type: Injectable
611
611
  }], ctorParameters: () => [{ type: i1.Rpc.DeviceRpcServiceProxy }, { type: i2.FacilityRpcServiceProxy }, { type: i3.Store }], propDecorators: { onSetDeviceViewModeAction: [], onLoadDeviceEventsCollapse: [], onSetDeviceEventsExpanded: [], onLoadEventActivitiesCollapse: [], onSetEventActivitiesExpanded: [], onLoadLprTransactionsCollapse: [], onSetLprTransactionsExpanded: [], onClearDeviceEventsExpanded: [], onClearEventActivitiesExpanded: [], onClearLprTransactionsExpanded: [], onLoadDevicesAction: [], onLoadDevicesByTypeAction: [], onClearDevicesAction: [], onSelectDeviceAction: [], onLoadSelectedDeviceAction: [], onLoadDeviceStatusAction: [], onSetDeviceStatusAction: [], onLoadDeviceEventActivitiesAction: [], onLoadDeviceLprTransactionsAction: [], onLoadDeviceEventsAction: [], onLoadDeviceAction: [], onClearDeviceAction: [], onDeviceStatusChangedAction: [], onDeviceEventChangedAction: [], onDeviceActivityChangedAction: [], onLprTransactionsChangedAction: [], onSelectedRowAction: [], onClearSelectedRow: [] } });
612
612
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyay1tYW5hZ2VyLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL3BhcmstbWFuYWdlci9wYXJrLW1hbmFnZXIuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBdUIsTUFBTSxhQUFhLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBSXJFLE9BQU8sRUFDTSxjQUFjLEVBQTZCLGVBQWUsRUFBRSxnQkFBZ0IsRUFDM0MsY0FBYyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUNqRyxxQkFBcUIsRUFDdEIsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQWEsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQzlGLDRCQUE0QixFQUFFLGdCQUFnQixFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUNyRyx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSwrQkFBK0IsRUFBRSxzQkFBc0IsRUFDcEcsd0JBQXdCLEVBQUUsK0JBQStCLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQzdILDJCQUEyQixFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUNoSCxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFDckYsdUJBQXVCLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQ2hGLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7QUE2QmpGLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO0FBZ0M1QixJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjs7SUFFM0IsWUFDVSxxQkFBZ0QsRUFDaEQsdUJBQWdELEVBQ2hELEtBQVk7UUFGWiwwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO1FBQ2hELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsVUFBSyxHQUFMLEtBQUssQ0FBTztRQWdnQmQsaUJBQVksR0FBRyxDQUFDLGdCQUFrQyxFQUFFLEtBQWEsRUFBVSxFQUFFLENBQUMsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQS9mbEosQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUE0QjtRQUM3QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUE0QjtRQUNoRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQTRCO1FBQ2pELE9BQU8sS0FBSyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUE0QjtRQUM3QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUE0QjtRQUN4RCxnRUFBZ0U7UUFDaEUsT0FBTyxLQUFLLENBQUMsZUFBZSxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUM7SUFDMUQsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQTRCO1FBQ3pELE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUMxQixDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQTRCO1FBQ3ZELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQTRCO1FBQzdELE9BQU8sS0FBSyxDQUFDLG9CQUFvQixDQUFDO0lBQ3BDLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUE0QjtRQUM3RCxPQUFPLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztJQUNwQyxDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQTRCO1FBQzlDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQTRCO1FBQ3hELE9BQU8sS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUMvQixDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQTRCO1FBQ3hELE9BQU8sS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUMvQixDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQTRCO1FBQ3JELE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQztJQUM1QixDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBNEI7UUFDN0QsT0FBTyxLQUFLLENBQUMsb0JBQW9CLENBQUM7SUFDcEMsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLHVCQUF1QixDQUFDLEtBQTRCO1FBQ2hFLE9BQU8sS0FBSyxDQUFDLHVCQUF1QixDQUFDO0lBQ3ZDLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUE0QjtRQUNoRSxPQUFPLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztJQUN2QyxDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBNEI7UUFDN0QsT0FBTyxLQUFLLENBQUMsb0JBQW9CLENBQUM7SUFDcEMsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLHVCQUF1QixDQUFDLEtBQTRCO1FBQ2hFLE9BQU8sS0FBSyxDQUFDLHVCQUF1QixDQUFDO0lBQ3ZDLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUE0QjtRQUNoRSxPQUFPLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztJQUN2QyxDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQTRCO1FBQ3BELE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQztJQUMzQixDQUFDO0lBR0QseUJBQXlCLENBQUMsR0FBd0MsRUFBRSxNQUErQjtRQUNqRyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsZUFBZSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCwwQkFBMEIsQ0FBQyxHQUF3QyxFQUFFLE1BQWdDO1FBQ25HLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFDdEgsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RSxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQ3RDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixvQkFBb0IsRUFBRTtnQkFDcEIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMvQixPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUk7YUFDdEI7U0FDRixDQUFDLENBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELHlCQUF5QixDQUFDLEdBQXdDLEVBQUUsTUFBK0I7UUFDakcsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxPQUFPO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCw2QkFBNkIsQ0FBQyxHQUF3QyxFQUFFLE1BQW1DO1FBQ3pHLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzdILElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEUsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQ3pDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYix1QkFBdUIsRUFBRTtnQkFDdkIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMvQixPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUk7YUFDdEI7U0FDRixDQUFDLENBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELDRCQUE0QixDQUFDLEdBQXdDLEVBQUUsTUFBa0M7UUFDdkcsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxPQUFPO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCw2QkFBNkIsQ0FBQyxHQUF3QyxFQUFFLE1BQW1DO1FBQ3pHLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQjthQUNoRCx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzNGLElBQUksRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUN6QyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsdUJBQXVCLEVBQUU7Z0JBQ3ZCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztnQkFDL0IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJO2FBQ3RCO1NBQ0YsQ0FBQyxDQUNILENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCw0QkFBNEIsQ0FBQyxHQUF3QyxFQUFFLE1BQWtDO1FBQ3ZHLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYix1QkFBdUIsRUFBRSxNQUFNLENBQUMsT0FBTztTQUN4QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsMkJBQTJCLENBQUMsR0FBd0M7UUFDbEUsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLG9CQUFvQixFQUFFLEVBQUU7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELDhCQUE4QixDQUFDLEdBQXdDO1FBQ3JFLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYix1QkFBdUIsRUFBRSxFQUFFO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCw4QkFBOEIsQ0FBQyxHQUF3QztRQUNyRSxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsdUJBQXVCLEVBQUUsRUFBRTtTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsbUJBQW1CLENBQUMsR0FBd0MsRUFBRSxNQUF5QjtRQUNyRixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3QixNQUFNLFNBQVMsR0FBYyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0UsTUFBTSxTQUFTLEdBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRS9FLElBQUksV0FBMkQsQ0FBQztRQUNoRSxJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDL0IsV0FBVyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7YUFBTSxJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDM0MsV0FBVyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDOUYsQ0FBQzthQUFNLElBQUksU0FBUyxLQUFLLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxTQUFTLEtBQUssU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pGLFdBQVcsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3hHLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxVQUFVLEVBQy9FLE1BQU0sQ0FBQyxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFDMUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQ2hGLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUdELHlCQUF5QixDQUFDLEdBQXdDLEVBQUUsTUFBK0I7UUFDakcsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZUFBZSxFQUFFLFVBQVUsRUFDekgsTUFBTSxDQUFDLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUMxRSxNQUFNLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFHRCxvQkFBb0IsQ0FBQyxHQUF3QztRQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBR0Qsb0JBQW9CLENBQUMsR0FBd0MsRUFBRSxNQUEwQjtRQUN2RixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBR0QsMEJBQTBCLENBQUMsR0FBd0M7UUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDO1FBQ25ELElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztJQUdELHdCQUF3QixDQUFDLEdBQXdDLEVBQUUsTUFBOEI7UUFDL0YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNELEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLG9CQUFvQixFQUFFLElBQUk7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVuSCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQzNDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixvQkFBb0IsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ3ZGLG9CQUFvQixFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTTtTQUNqRCxDQUFDLENBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELHVCQUF1QixDQUFDLEdBQXdDLEVBQUUsTUFBNkI7UUFDN0YsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLG9CQUFvQixFQUFFLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDM0Qsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxpQ0FBaUMsQ0FBQyxHQUF3QyxFQUFFLE1BQXVDO1FBQ2pILE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFDdEosaUJBQWlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxSCxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FDakQsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLGVBQWUsRUFBRSxlQUFlLENBQUMsSUFBSTtTQUN0QyxDQUFDLENBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELGlDQUFpQyxDQUFDLEdBQXdDLEVBQUUsTUFBdUM7UUFDakgsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUMzSixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUcsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQ2pELEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixlQUFlLEVBQUUsZUFBZSxDQUFDLElBQUk7U0FDdEMsQ0FBQyxDQUNILENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCx3QkFBd0IsQ0FBQyxHQUF3QyxFQUFFLE1BQThCO1FBQy9GLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUMvSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUcsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUMzQyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJO1NBQ2hDLENBQUMsQ0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0Qsa0JBQWtCLENBQUMsR0FBd0MsRUFBRSxNQUF3QjtRQUNuRixHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsZUFBZSxFQUFFLElBQUk7WUFDckIsZUFBZSxFQUFFLElBQUk7WUFDckIsWUFBWSxFQUFFLElBQUk7WUFDbEIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLHVCQUF1QixFQUFFLElBQUk7WUFDN0IsdUJBQXVCLEVBQUUsSUFBSTtZQUM3QixvQkFBb0IsRUFBRSxFQUFFO1lBQ3hCLHVCQUF1QixFQUFFLEVBQUU7WUFDM0IsdUJBQXVCLEVBQUUsRUFBRTtZQUMzQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLG9CQUFvQixFQUFFLElBQUk7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsOERBQThEO1FBQzlELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWdCLENBQUMsT0FBTyxDQUFDO2FBQy9DLElBQUksQ0FDSCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUN0QyxLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUN0QixNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwRSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0wsQ0FBQztJQUdELG1CQUFtQixDQUFDLEdBQXdDO1FBQzFELEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixVQUFVLEVBQUUsSUFBSTtZQUNoQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsZUFBZSxFQUFFLElBQUk7WUFDckIsZUFBZSxFQUFFLElBQUk7WUFDckIsWUFBWSxFQUFFLElBQUk7WUFDbEIsb0JBQW9CLEVBQUUsSUFBSTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsMkJBQTJCLENBQUMsR0FBd0MsRUFBRSxNQUFpQztRQUNyRyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQztRQUMvQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztRQUUzQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ3hDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFFaEQsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQ3RFLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUM5RCxTQUFTLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzVDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO2dCQUMvQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztnQkFFakQsR0FBRyxDQUFDLFVBQVUsQ0FBQztvQkFDYixJQUFJLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQztvQkFDNUIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxlQUFlLENBQUM7aUJBQ3JDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUM7UUFDakUsSUFBSSxvQkFBb0IsRUFBRSxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDO1lBQ3JELEdBQUcsQ0FBQyxVQUFVLENBQUM7Z0JBQ2Isb0JBQW9CLEVBQUUsTUFBTSxDQUFDLFlBQVk7YUFDMUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxvQkFBb0I7SUFFcEIsMEJBQTBCLENBQUMsR0FBd0MsRUFBRSxNQUFnQztRQUNuRyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztRQUNqRSxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztRQUNqRSxrREFBa0Q7UUFDbEQsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLElBQUksb0JBQW9CLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNuSCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUdELHVCQUF1QjtJQUV2Qiw2QkFBNkIsQ0FBQyxHQUF3QyxFQUFFLE1BQW1DO1FBQ3pHLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLG9CQUFvQixDQUFDO1FBQ2pFLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLG9CQUFvQixDQUFDO1FBQ2pFLGtEQUFrRDtRQUNsRCxJQUFJLG9CQUFvQixFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUMsYUFBYSxFQUFFLFFBQVEsSUFBSSxvQkFBb0IsS0FBSyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzdILE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMxRSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDSCxDQUFDO0lBRUQsd0JBQXdCO0lBRXhCLDhCQUE4QixDQUFDLEdBQXdDLEVBQUUsTUFBb0M7UUFDM0csTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUM7UUFDakUsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUM7UUFDakUsa0RBQWtEO1FBQ2xELElBQUksb0JBQW9CLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQyxjQUFjLEVBQUUsUUFBUSxJQUFJLG9CQUFvQixLQUFLLE1BQU0sQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDL0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBR0QsbUJBQW1CLENBQUMsR0FBd0MsRUFBRSxNQUF5QjtRQUNyRixHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsV0FBVyxFQUFFO2dCQUNYLFNBQVMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVM7YUFDcEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWSxDQUFDLEdBQXdDLEVBQUUsT0FBb0I7UUFDakYsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksSUFBSSxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3hHLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLEVBQUUsV0FBVyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0MsUUFBUSxFQUFFLFdBQVcsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3JELEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWUsQ0FBSSxHQUF3QyxFQUFFLElBQU8sRUFBRSxTQUFpQjtRQUM3RixNQUFNLGlCQUFpQixHQUFHLEdBQUcsU0FBUyxVQUFVLENBQUM7UUFDakQsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLFNBQVMsVUFBVSxDQUFDO1FBQ2pELE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBbUIsQ0FBQztRQUMxRSxJQUFJLGFBQWEsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV0RCxJQUFJLGFBQWEsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMzQixhQUFhLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNGLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLGFBQWEsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMzQixhQUFhLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdkUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBRUQsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLENBQUMsaUJBQWlCLENBQUMsRUFBRSxTQUFTLENBQUMsYUFBYSxDQUFDO1lBQzdDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxhQUFhO1NBQ25DLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxrQkFBa0IsQ0FBQyxHQUF3QztRQUN6RCxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQixDQUFDLGVBQW9CO1FBQzlDLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFOUQsa0dBQWtHO1FBQ2xHLElBQUksZUFBZSxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25ELGNBQWMsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDdkYsY0FBYyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkcsQ0FBQztRQUNELElBQUksY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakQsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7WUFDcEUsY0FBYyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUNuRixjQUFjLENBQUMsU0FBUyxDQUFDLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1lBQ25GLGNBQWMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7WUFDbkYsY0FBYyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztRQUNyRixDQUFDO1FBRUQsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVPLDhCQUE4QixDQUFDLGVBQW9CO1FBQ3pELElBQUksZ0JBQWtDLENBQUM7UUFDdkMsUUFBUSxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEMsS0FBSyxtQkFBbUIsQ0FBQyw2QkFBNkIsQ0FBQztZQUN2RCxLQUFLLG1CQUFtQixDQUFDLGNBQWMsQ0FBQztZQUN4QyxLQUFLLG1CQUFtQixDQUFDLHdCQUF3QixDQUFDO1lBQ2xELEtBQUssbUJBQW1CLENBQUMsbUJBQW1CLENBQUM7WUFDN0MsS0FBSyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQztZQUM5QyxLQUFLLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDO1lBQzVDLEtBQUssbUJBQW1CLENBQUMsV0FBVyxDQUFDO1lBQ3JDLEtBQUssbUJBQW1CLENBQUMsaUJBQWlCLENBQUM7WUFDM0MsS0FBSyxtQkFBbUIsQ0FBQyxlQUFlLENBQUM7WUFDekMsS0FBSyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQztZQUM5QyxLQUFLLG1CQUFtQixDQUFDLHlCQUF5QixDQUFDO1lBQ25ELEtBQUssbUJBQW1CLENBQUMsbUJBQW1CO2dCQUMxQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7Z0JBQzlDLE1BQU07WUFDUixLQUFLLG1CQUFtQixDQUFDLHlCQUF5QixDQUFDO1lBQ25ELEtBQUssbUJBQW1CLENBQUMseUJBQXlCLENBQUM7WUFDbkQsS0FBSyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQztZQUM5QyxLQUFLLG1CQUFtQixDQUFDLFFBQVE7Z0JBQy9CLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztnQkFDNUMsTUFBTTtZQUNSO2dCQUNFLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztnQkFDNUMsTUFBTTtRQUNWLENBQUM7UUFFRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFJTyxxQkFBcUIsQ0FBQyxpQkFBc0I7UUFDbEQsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbkUsc0dBQXNHO1FBQ3RHLElBQUksaUJBQWlCLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckQsZUFBZSxDQUFDLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7WUFDcEQsZUFBZSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7WUFDL0MsZUFBZSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7WUFDL0MsZUFBZSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7WUFDdkQsZUFBZSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzVGLGVBQWUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEgsQ0FBQztRQUVELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxnQ0FBZ0MsQ0FBQyxpQkFBc0I7UUFDN0QsSUFBSSxnQkFBa0MsQ0FBQztRQUN2QyxRQUFRLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JDLEtBQUsscUJBQXFCLENBQUMsb0JBQW9CLENBQUM7WUFDaEQsS0FBSyxxQkFBcUIsQ0FBQyxlQUFlO2dCQUN4QyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7Z0JBQy9DLE1BQU07WUFDUixLQUFLLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDO1lBQy9DLEtBQUsscUJBQXFCLENBQUMsb0JBQW9CO2dCQUM3QyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7Z0JBQzlDLE1BQU07WUFDUixLQUFLLHFCQUFxQixDQUFDLE9BQU87Z0JBQ2hDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztnQkFDNUMsTUFBTTtZQUNSLEtBQUsscUJBQXFCLENBQUMsT0FBTztnQkFDaEMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO2dCQUM1QyxNQUFNO1lBQ1IsS0FBSyxxQkFBcUIsQ0FBQyxLQUFLO2dCQUM5QixnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7Z0JBQzFDLE1BQU07WUFDUixLQUFLLHFCQUFxQixDQUFDLFFBQVE7Z0JBQ2pDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztnQkFDN0MsTUFBTTtZQUNSO2dCQUNFLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztnQkFDNUMsTUFBTTtRQUNWLENBQUM7UUFFRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7K0dBbmpCVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQjs7QUE4RzNCO0lBREMsTUFBTSxDQUFDLHVCQUF1QixDQUFDO2lFQUsvQjtBQUdEO0lBREMsTUFBTSxDQUFDLHdCQUF3QixDQUFDO2tFQVloQztBQUdEO0lBREMsTUFBTSxDQUFDLHVCQUF1QixDQUFDO2lFQUsvQjtBQUdEO0lBREMsTUFBTSxDQUFDLDJCQUEyQixDQUFDO3FFQVluQztBQUdEO0lBREMsTUFBTSxDQUFDLDBCQUEwQixDQUFDO29FQUtsQztBQUdEO0lBREMsTUFBTSxDQUFDLDJCQUEyQixDQUFDO3FFQWFuQztBQUdEO0lBREMsTUFBTSxDQUFDLDBCQUEwQixDQUFDO29FQUtsQztBQUdEO0lBREMsTUFBTSxDQUFDLHlCQUF5QixDQUFDO21FQUtqQztBQUdEO0lBREMsTUFBTSxDQUFDLDRCQUE0QixDQUFDO3NFQUtwQztBQUdEO0lBREMsTUFBTSxDQUFDLDRCQUE0QixDQUFDO3NFQUtwQztBQUdEO0lBREMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7MkRBb0J0RDtBQUdEO0lBREMsTUFBTSxDQUFDLHVCQUF1QixDQUFDO2lFQU0vQjtBQUdEO0lBREMsTUFBTSxDQUFDLGtCQUFrQixDQUFDOzREQUcxQjtBQUdEO0lBREMsTUFBTSxDQUFDLGtCQUFrQixDQUFDOzREQUkxQjtBQUdEO0lBREMsTUFBTSxDQUFDLHdCQUF3QixDQUFDO2tFQU1oQztBQUdEO0lBREMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0VBaUIzRDtBQUdEO0lBREMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7K0RBTTFEO0FBR0Q7SUFEQyxNQUFNLENBQUMsK0JBQStCLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQzt5RUFTcEU7QUFHRDtJQURDLE1BQU0sQ0FBQywrQkFBK0IsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDO3lFQVNwRTtBQUdEO0lBREMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0VBUzNEO0FBR0Q7SUFEQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7MERBMkJ4QjtBQUdEO0lBREMsTUFBTSxDQUFDLGlCQUFpQixDQUFDOzJEQVd6QjtBQUdEO0lBREMsTUFBTSxDQUFDLHlCQUF5QixDQUFDO21FQTZCakM7QUFJRDtJQURDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztrRUFTaEM7QUFLRDtJQURDLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQztxRUFTbkM7QUFJRDtJQURDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQztzRUFRcEM7QUFHRDtJQURDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQzsyREFPekI7QUFtQ0Q7SUFEQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7MERBS3hCO0FBeGNhO0lBRGIsUUFBUSxFQUFFO2tDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7cUNBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTtzQ0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO2tDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7NkNBSVY7QUFHYTtJQURiLFFBQVEsRUFBRTs4Q0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFOzRDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7a0RBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTtrREFHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO21DQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7NkNBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTs2Q0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFOzBDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7a0RBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTtxREFHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO3FEQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7a0RBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTtxREFHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO3FEQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7eUNBR1Y7QUEzR1UsZ0JBQWdCO0lBN0I1QixLQUFLLENBQXdCO1FBQzVCLElBQUksRUFBRSxhQUFhO1FBQ25CLFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxJQUFJO1lBQ1YsSUFBSSxFQUFFLEVBQUU7WUFDUixRQUFRLEVBQUUsRUFBRTtZQUNaLEtBQUssRUFBRSxDQUFDO1lBQ1IsZUFBZSxFQUFFLElBQUk7WUFFckIsVUFBVSxFQUFFLElBQUk7WUFDaEIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLG9CQUFvQixFQUFFLElBQUk7WUFFMUIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQix1QkFBdUIsRUFBRSxJQUFJO1lBQzdCLHVCQUF1QixFQUFFLElBQUk7WUFFN0IsWUFBWSxFQUFFLElBQUk7WUFDbEIsZUFBZSxFQUFFLElBQUk7WUFDckIsZUFBZSxFQUFFLElBQUk7WUFFckIsb0JBQW9CLEVBQUUsRUFBRTtZQUN4Qix1QkFBdUIsRUFBRSxFQUFFO1lBQzNCLHVCQUF1QixFQUFFLEVBQUU7WUFFM0IsV0FBVyxFQUFFLElBQUk7U0FDbEI7S0FDRixDQUFDO0dBQ1csZ0JBQWdCLENBb2pCNUI7OzRGQXBqQlksZ0JBQWdCO2tCQTlCNUIsVUFBVTt3SkE0SVQseUJBQXlCLE1BT3pCLDBCQUEwQixNQWMxQix5QkFBeUIsTUFPekIsNkJBQTZCLE1BYzdCLDRCQUE0QixNQU81Qiw2QkFBNkIsTUFlN0IsNEJBQTRCLE1BTzVCLDJCQUEyQixNQU8zQiw4QkFBOEIsTUFPOUIsOEJBQThCLE1BTzlCLG1CQUFtQixNQXNCbkIseUJBQXlCLE1BUXpCLG9CQUFvQixNQUtwQixvQkFBb0IsTUFNcEIsMEJBQTBCLE1BUTFCLHdCQUF3QixNQW1CeEIsdUJBQXVCLE1BUXZCLGlDQUFpQyxNQVdqQyxpQ0FBaUMsTUFXakMsd0JBQXdCLE1BV3hCLGtCQUFrQixNQTZCbEIsbUJBQW1CLE1BYW5CLDJCQUEyQixNQWdDM0IsMEJBQTBCLE1BYTFCLDZCQUE2QixNQVk3Qiw4QkFBOEIsTUFVOUIsbUJBQW1CLE1BeUNuQixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpcnN0LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEZXZpY2VzVmlld01vZGUgfSBmcm9tICcuLi8uLi9lbnVtcy9kZXZpY2VzLXZpZXctbW9kZS5lbnVtJztcbmltcG9ydCB7IFNlbGVjdGVkUm93IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zZWxlY3RlZC1yb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYmxlRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFibGUtZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUnBjIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eSc7XG5pbXBvcnQge1xuICBEZXZpY2VEdG8sIERldmljZUV2ZW50RHRvLCBEZXZpY2VSZW1vdGVDb21tYW5kUmVmRHRvLCBEZXZpY2VTdGF0dXNEdG8sIEV2ZW50QWN0aXZpdHlEdG8sXG4gIEZhY2lsaXR5UnBjU2VydmljZVByb3h5LCBMcHJUcmFuc2FjdGlvbkR0bywgT3JkZXJEaXJlY3Rpb24sIFBhcmtlclRpY2tldFR5cGUsIFR5cGVDYXN0RGV2aWNlRXZlbnQsXG4gIFR5cGVDYXN0RXZlbnRBY3Rpdml0eVxufSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgZ2V0TW9tZW50TnVsbGFibGUgfSBmcm9tICcuLi8uLi91dGlscy9kYXRlLnV0aWwnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdERldmljZVN0YXR1cyB9IGZyb20gJy4uLy4uL3V0aWxzL2RldmljZS51dGlsJztcbmltcG9ydCB7IE51bWJlck1hcCwgdG9OdW1iZXJNYXAgfSBmcm9tICcuLi8uLi91dGlscy9sYW5nLnV0aWwnO1xuaW1wb3J0IHsgRmFjaWxpdHlTdGF0ZSB9IGZyb20gJy4uL2ZhY2lsaXR5L2ZhY2lsaXR5LnN0YXRlJztcbmltcG9ydCB7IFNpZGVuYXZTdGF0ZSB9IGZyb20gJy4uL3NpZGVuYXYvc2lkZW5hdi5zdGF0ZSc7XG5pbXBvcnQge1xuICBDbGVhckRldmljZUFjdGlvbiwgQ2xlYXJEZXZpY2VFdmVudHNFeHBhbmRlZCwgQ2xlYXJEZXZpY2VzQWN0aW9uLCBDbGVhckV2ZW50QWN0aXZpdGllc0V4cGFuZGVkLFxuICBDbGVhckxwclRyYW5zYWN0aW9uc0V4cGFuZGVkLCBDbGVhclNlbGVjdGVkUm93LCBEZXZpY2VBY3Rpdml0eUNoYW5nZWRBY3Rpb24sIERldmljZUV2ZW50Q2hhbmdlZEFjdGlvbixcbiAgRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbiwgTG9hZERldmljZUFjdGlvbiwgTG9hZERldmljZUV2ZW50QWN0aXZpdGllc0FjdGlvbiwgTG9hZERldmljZUV2ZW50c0FjdGlvbixcbiAgTG9hZERldmljZUV2ZW50c0NvbGxhcHNlLCBMb2FkRGV2aWNlTHByVHJhbnNhY3Rpb25zQWN0aW9uLCBMb2FkRGV2aWNlc0FjdGlvbiwgTG9hZERldmljZXNCeVR5cGVBY3Rpb24sIExvYWREZXZpY2VTdGF0dXNBY3Rpb24sXG4gIExvYWRFdmVudEFjdGl2aXRpZXNDb2xsYXBzZSwgTG9hZExwclRyYW5zYWN0aW9uc0NvbGxhcHNlLCBMb2FkU2VsZWN0ZWREZXZpY2VBY3Rpb24sIExwclRyYW5zYWN0aW9uc0NoYW5nZWRBY3Rpb24sXG4gIFNlbGVjdERldmljZUFjdGlvbiwgU2VsZWN0ZWRSb3dBY3Rpb24sIFNldERldmljZUV2ZW50c0V4cGFuZGVkLCBTZXREZXZpY2VTdGF0dXNBY3Rpb24sXG4gIFNldERldmljZVZpZXdNb2RlQWN0aW9uLCBTZXRFdmVudEFjdGl2aXRpZXNFeHBhbmRlZCwgU2V0THByVHJhbnNhY3Rpb25zRXhwYW5kZWRcbn0gZnJvbSAnLi9wYXJrLW1hbmFnZXIuYWN0aW9ucyc7XG5pbXBvcnQgeyBBcHBNb2R1bGUsIFN1Yk1vZHVsZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQYXJrTWFuYWdlclN0YXRlTW9kZWwge1xuICBmbGF0OiBEZXZpY2VEdG9bXTtcbiAgYnlJZDogTnVtYmVyTWFwPERldmljZUR0bz47XG4gIGJ5Q29tbUlkOiBOdW1iZXJNYXA8RGV2aWNlRHRvPjtcbiAgY291bnQ6IG51bWJlcjtcbiAgZGV2aWNlc1ZpZXdNb2RlOiBEZXZpY2VzVmlld01vZGU7XG5cbiAgc2VsZWN0ZWRJZDogbnVtYmVyO1xuICBzZWxlY3RlZERldmljZVN0YXR1czogRGV2aWNlU3RhdHVzRHRvO1xuICBzZWxlY3RlZERldmljZVBhcmtJZDogbnVtYmVyO1xuICBkZXZpY2VSZW1vdGVDb21tYW5kczogRGV2aWNlUmVtb3RlQ29tbWFuZFJlZkR0b1tdO1xuXG4gIGRldmljZUV2ZW50c0NvbGxhcHNlOiBUYWJsZURhdGE8RGV2aWNlRXZlbnREdG8+O1xuICBldmVudEFjdGl2aXRpZXNDb2xsYXBzZTogVGFibGVEYXRhPEV2ZW50QWN0aXZpdHlEdG8+O1xuICBscHJUcmFuc2FjdGlvbnNDb2xsYXBzZTogVGFibGVEYXRhPExwclRyYW5zYWN0aW9uRHRvPjtcblxuICBkZXZpY2VFdmVudHM6IERldmljZUV2ZW50RHRvW107XG4gIGV2ZW50QWN0aXZpdGllczogRXZlbnRBY3Rpdml0eUR0b1tdO1xuICBscHJUcmFuc2FjdGlvbnM6IExwclRyYW5zYWN0aW9uRHRvW107XG5cbiAgZGV2aWNlRXZlbnRzRXhwYW5kZWQ6IERldmljZUV2ZW50RHRvW107XG4gIGV2ZW50QWN0aXZpdGllc0V4cGFuZGVkOiBFdmVudEFjdGl2aXR5RHRvW107XG4gIGxwclRyYW5zYWN0aW9uc0V4cGFuZGVkOiBMcHJUcmFuc2FjdGlvbkR0b1tdO1xuXG4gIHNlbGVjdGVkUm93OiBTZWxlY3RlZFJvdztcbn1cblxuY29uc3QgRVhQQU5ERURfUkVTVUxUX0xJTUlUID0gMTAwMDtcblxuQEluamVjdGFibGUoKVxuQFN0YXRlPFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4oe1xuICBuYW1lOiAncGFya01hbmFnZXInLFxuICBkZWZhdWx0czoge1xuICAgIGZsYXQ6IG51bGwsXG4gICAgYnlJZDoge30sXG4gICAgYnlDb21tSWQ6IHt9LFxuICAgIGNvdW50OiAwLFxuICAgIGRldmljZXNWaWV3TW9kZTogbnVsbCxcblxuICAgIHNlbGVjdGVkSWQ6IG51bGwsXG4gICAgc2VsZWN0ZWREZXZpY2VTdGF0dXM6IG51bGwsXG4gICAgc2VsZWN0ZWREZXZpY2VQYXJrSWQ6IG51bGwsXG4gICAgZGV2aWNlUmVtb3RlQ29tbWFuZHM6IG51bGwsXG5cbiAgICBkZXZpY2VFdmVudHNDb2xsYXBzZTogbnVsbCxcbiAgICBldmVudEFjdGl2aXRpZXNDb2xsYXBzZTogbnVsbCxcbiAgICBscHJUcmFuc2FjdGlvbnNDb2xsYXBzZTogbnVsbCxcblxuICAgIGRldmljZUV2ZW50czogbnVsbCxcbiAgICBldmVudEFjdGl2aXRpZXM6IG51bGwsXG4gICAgbHByVHJhbnNhY3Rpb25zOiBudWxsLFxuXG4gICAgZGV2aWNlRXZlbnRzRXhwYW5kZWQ6IFtdLFxuICAgIGV2ZW50QWN0aXZpdGllc0V4cGFuZGVkOiBbXSxcbiAgICBscHJUcmFuc2FjdGlvbnNFeHBhbmRlZDogW10sXG5cbiAgICBzZWxlY3RlZFJvdzogbnVsbCxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgUGFya01hbmFnZXJTdGF0ZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkZXZpY2VScGNTZXJ2aWNlUHJveHk6IFJwYy5EZXZpY2VScGNTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBmYWNpbGl0eVJwY1NlcnZpY2VQcm94eTogRmFjaWxpdHlScGNTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZmxhdChzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogRGV2aWNlRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5mbGF0O1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBkZXZpY2VzKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBEZXZpY2VEdG9bXSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoc3RhdGUuYnlJZCB8fCB7fSk7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGJ5Q29tbUlkKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBOdW1iZXJNYXA8RGV2aWNlRHRvPiB7XG4gICAgcmV0dXJuIHN0YXRlLmJ5Q29tbUlkIHx8IHt9O1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBieUlkKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBOdW1iZXJNYXA8RGV2aWNlRHRvPiB7XG4gICAgcmV0dXJuIHN0YXRlLmJ5SWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGRldmljZXNWaWV3TW9kZShzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogRGV2aWNlc1ZpZXdNb2RlIHtcbiAgICAvLyBBbHNvIHJldHVybnMgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGhhdm4ndCBjaGFuZ2UgaXQgeWV0XG4gICAgcmV0dXJuIHN0YXRlLmRldmljZXNWaWV3TW9kZSB8fCBEZXZpY2VzVmlld01vZGUuR2FsbGVyeTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWREZXZpY2VJZChzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKSB7XG4gICAgcmV0dXJuIHN0YXRlLnNlbGVjdGVkSWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlbGVjdGVkRGV2aWNlKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBEZXZpY2VEdG8ge1xuICAgIHJldHVybiBzdGF0ZS5ieUlkW3N0YXRlLnNlbGVjdGVkSWRdO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWxlY3RlZERldmljZVN0YXR1cyhzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogRGV2aWNlU3RhdHVzRHRvIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWREZXZpY2VTdGF0dXM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlbGVjdGVkRGV2aWNlUGFya0lkKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZERldmljZVBhcmtJZDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgY291bnQoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCkge1xuICAgIHJldHVybiBzdGF0ZS5jb3VudDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZXZlbnRBY3Rpdml0aWVzKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBFdmVudEFjdGl2aXR5RHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5ldmVudEFjdGl2aXRpZXM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGxwclRyYW5zYWN0aW9ucyhzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogTHByVHJhbnNhY3Rpb25EdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLmxwclRyYW5zYWN0aW9ucztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZGV2aWNlRXZlbnRzKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBEZXZpY2VFdmVudER0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUuZGV2aWNlRXZlbnRzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBkZXZpY2VFdmVudHNFeHBhbmRlZChzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogRGV2aWNlRXZlbnREdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLmRldmljZUV2ZW50c0V4cGFuZGVkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBldmVudEFjdGl2aXRpZXNFeHBhbmRlZChzdGF0ZTogUGFya01hbmFnZXJTdGF0ZU1vZGVsKTogRXZlbnRBY3Rpdml0eUR0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUuZXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGxwclRyYW5zYWN0aW9uc0V4cGFuZGVkKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBMcHJUcmFuc2FjdGlvbkR0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUubHByVHJhbnNhY3Rpb25zRXhwYW5kZWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGRldmljZUV2ZW50c0NvbGxhcHNlKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBUYWJsZURhdGE8RGV2aWNlRXZlbnREdG8+IHtcbiAgICByZXR1cm4gc3RhdGUuZGV2aWNlRXZlbnRzQ29sbGFwc2U7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGV2ZW50QWN0aXZpdGllc0NvbGxhcHNlKHN0YXRlOiBQYXJrTWFuYWdlclN0YXRlTW9kZWwpOiBUYWJsZURhdGE8RXZlbnRBY3Rpdml0eUR0bz4ge1xuICAgIHJldHVybiBzdGF0ZS5ldmVudEFjdGl2aXRpZXNDb2xsYXBzZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgbHByVHJhbnNhY3Rpb25zQ29sbGFwc2Uoc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IFRhYmxlRGF0YTxMcHJUcmFuc2FjdGlvbkR0bz4ge1xuICAgIHJldHVybiBzdGF0ZS5scHJUcmFuc2FjdGlvbnNDb2xsYXBzZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWRSb3coc3RhdGU6IFBhcmtNYW5hZ2VyU3RhdGVNb2RlbCk6IFNlbGVjdGVkUm93IHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRSb3c7XG4gIH1cblxuICBAQWN0aW9uKFNldERldmljZVZpZXdNb2RlQWN0aW9uKVxuICBvblNldERldmljZVZpZXdNb2RlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0RGV2aWNlVmlld01vZGVBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBkZXZpY2VzVmlld01vZGU6IGFjdGlvbi52aWV3TW9kZSxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZERldmljZUV2ZW50c0NvbGxhcHNlKVxuICBvbkxvYWREZXZpY2VFdmVudHNDb2xsYXBzZShjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWREZXZpY2VFdmVudHNDb2xsYXBzZSkge1xuICAgIGNvbnN0IGRldmljZUV2ZW50cyQgPSB0aGlzLmRldmljZVJwY1NlcnZpY2VQcm94eS5nZXREZXZpY2VFdmVudHMoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5kZXZpY2VJZCwgbnVsbCwgbnVsbCxcbiAgICAgIG51bGwsIG51bGwsIG51bGwsIGFjdGlvbi5yZXN1bHRMaW1pdCwgMCwgbnVsbCwgT3JkZXJEaXJlY3Rpb24uTm9uZSk7XG4gICAgcmV0dXJuIGRldmljZUV2ZW50cyQucGlwZSh0YXAoZGF0YVNldCA9PlxuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBkZXZpY2VFdmVudHNDb2xsYXBzZToge1xuICAgICAgICAgIHJlc3VsdExpbWl0OiBhY3Rpb24ucmVzdWx0TGltaXQsXG4gICAgICAgICAgZGF0YVNldDogZGF0YVNldC5kYXRhLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKSk7XG4gIH1cblxuICBAQWN0aW9uKFNldERldmljZUV2ZW50c0V4cGFuZGVkKVxuICBvblNldERldmljZUV2ZW50c0V4cGFuZGVkKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0RGV2aWNlRXZlbnRzRXhwYW5kZWQpIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBkZXZpY2VFdmVudHNFeHBhbmRlZDogYWN0aW9uLmRhdGFTZXQsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRFdmVudEFjdGl2aXRpZXNDb2xsYXBzZSlcbiAgb25Mb2FkRXZlbnRBY3Rpdml0aWVzQ29sbGFwc2UoY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkRXZlbnRBY3Rpdml0aWVzQ29sbGFwc2UpIHtcbiAgICBjb25zdCBldmVudEFjdGl2aXRpZXMkID0gdGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkuZ2V0RGV2aWNlQWN0aXZpdGllcyhhY3Rpb24uZ3VpZCwgYWN0aW9uLnBhcmtJZCwgYWN0aW9uLmRldmljZUlkLCBudWxsLCBudWxsLFxuICAgICAgbnVsbCwgbnVsbCwgbnVsbCwgYWN0aW9uLnJlc3VsdExpbWl0LCAwLCBudWxsLCBPcmRlckRpcmVjdGlvbi5Ob25lKTtcbiAgICByZXR1cm4gZXZlbnRBY3Rpdml0aWVzJC5waXBlKHRhcChkYXRhU2V0ID0+XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGV2ZW50QWN0aXZpdGllc0NvbGxhcHNlOiB7XG4gICAgICAgICAgcmVzdWx0TGltaXQ6IGFjdGlvbi5yZXN1bHRMaW1pdCxcbiAgICAgICAgICBkYXRhU2V0OiBkYXRhU2V0LmRhdGEsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0RXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQpXG4gIG9uU2V0RXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQoY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZXRFdmVudEFjdGl2aXRpZXNFeHBhbmRlZCkge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGV2ZW50QWN0aXZpdGllc0V4cGFuZGVkOiBhY3Rpb24uZGF0YVNldCxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZExwclRyYW5zYWN0aW9uc0NvbGxhcHNlKVxuICBvbkxvYWRMcHJUcmFuc2FjdGlvbnNDb2xsYXBzZShjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRMcHJUcmFuc2FjdGlvbnNDb2xsYXBzZSkge1xuICAgIGNvbnN0IGxwclRyYW5zYWN0aW9ucyQgPSB0aGlzLmRldmljZVJwY1NlcnZpY2VQcm94eVxuICAgICAgLmdldERldmljZUxwclRyYW5zYWN0aW9ucyhhY3Rpb24uZ3VpZCwgYWN0aW9uLnBhcmtJZCwgYWN0aW9uLmRldmljZUlkLCBudWxsLCBudWxsLCBudWxsLCBudWxsLFxuICAgICAgICBudWxsLCBhY3Rpb24ucmVzdWx0TGltaXQsIDAsIG51bGwsIE9yZGVyRGlyZWN0aW9uLk5vbmUpO1xuICAgIHJldHVybiBscHJUcmFuc2FjdGlvbnMkLnBpcGUodGFwKGRhdGFTZXQgPT5cbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgbHByVHJhbnNhY3Rpb25zQ29sbGFwc2U6IHtcbiAgICAgICAgICByZXN1bHRMaW1pdDogYWN0aW9uLnJlc3VsdExpbWl0LFxuICAgICAgICAgIGRhdGFTZXQ6IGRhdGFTZXQuZGF0YSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICkpO1xuICB9XG5cbiAgQEFjdGlvbihTZXRMcHJUcmFuc2FjdGlvbnNFeHBhbmRlZClcbiAgb25TZXRMcHJUcmFuc2FjdGlvbnNFeHBhbmRlZChjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IFNldExwclRyYW5zYWN0aW9uc0V4cGFuZGVkKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgbHByVHJhbnNhY3Rpb25zRXhwYW5kZWQ6IGFjdGlvbi5kYXRhU2V0LFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhckRldmljZUV2ZW50c0V4cGFuZGVkKVxuICBvbkNsZWFyRGV2aWNlRXZlbnRzRXhwYW5kZWQoY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGRldmljZUV2ZW50c0V4cGFuZGVkOiBbXSxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYXJFdmVudEFjdGl2aXRpZXNFeHBhbmRlZClcbiAgb25DbGVhckV2ZW50QWN0aXZpdGllc0V4cGFuZGVkKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBldmVudEFjdGl2aXRpZXNFeHBhbmRlZDogW10sXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyTHByVHJhbnNhY3Rpb25zRXhwYW5kZWQpXG4gIG9uQ2xlYXJMcHJUcmFuc2FjdGlvbnNFeHBhbmRlZChjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgbHByVHJhbnNhY3Rpb25zRXhwYW5kZWQ6IFtdLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkRGV2aWNlc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWREZXZpY2VzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZERldmljZXNBY3Rpb24pIHtcbiAgICB0aGlzLnBhdGNoRGV2aWNlcyhjdHgsIG51bGwpO1xuXG4gICAgY29uc3QgYXBwTW9kdWxlOiBBcHBNb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNpZGVuYXZTdGF0ZS5hcHBNb2R1bGUpO1xuICAgIGNvbnN0IHN1Yk1vZHVsZTogU3ViTW9kdWxlID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTaWRlbmF2U3RhdGUuc3ViTW9kdWxlKTtcblxuICAgIGxldCBnZXREZXZpY2VzJDogdHlwZW9mIHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5LmdldENDRGV2aWNlcztcbiAgICBpZiAoYXBwTW9kdWxlID09PSBBcHBNb2R1bGUuQ2MpIHtcbiAgICAgIGdldERldmljZXMkID0gdGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkuZ2V0Q0NEZXZpY2VzLmJpbmQodGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkpO1xuICAgIH0gZWxzZSBpZiAoYXBwTW9kdWxlID09PSBBcHBNb2R1bGUuUmVwb3J0cykge1xuICAgICAgZ2V0RGV2aWNlcyQgPSB0aGlzLmRldmljZVJwY1NlcnZpY2VQcm94eS5nZXRSZXBvcnRzRGV2aWNlcy5iaW5kKHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5KTtcbiAgICB9IGVsc2UgaWYgKGFwcE1vZHVsZSA9PT0gQXBwTW9kdWxlLkxvdENvbmZpZ3VyYXRpb24gJiYgc3ViTW9kdWxlID09PSBTdWJNb2R1bGUuU2NoZWR1bGVyKSB7XG4gICAgICBnZXREZXZpY2VzJCA9IHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5LmdldExvdENvbmZpZ3VyYXRpb25zRGV2aWNlcy5iaW5kKHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0RGV2aWNlcyQoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8/Lm1heFJlc3VsdHMsXG4gICAgICBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5zZWFyY2hUZXJtLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5vcmRlckJ5LmNvbHVtbixcbiAgICAgIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8/Lm9yZGVyQnkub3JkZXJEaXJlY3Rpb24sIGFjdGlvbi5pc1RsNjApLnBpcGUodGFwKGRldmljZXMgPT5cbiAgICAgICAgdGhpcy5wYXRjaERldmljZXMoY3R4LCBkZXZpY2VzLmRhdGEpKSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWREZXZpY2VzQnlUeXBlQWN0aW9uKVxuICBvbkxvYWREZXZpY2VzQnlUeXBlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZERldmljZXNCeVR5cGVBY3Rpb24pIHtcbiAgICBjb25zdCBkZXZpY2VzJCA9IHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5LmdldERldmljZXNCeVR5cGUoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8/Lm1heFJlc3VsdHMsXG4gICAgICBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5zZWFyY2hUZXJtLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5vcmRlckJ5LmNvbHVtbixcbiAgICAgIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8/Lm9yZGVyQnkub3JkZXJEaXJlY3Rpb24sIGFjdGlvbi5kZXZpY2VUeXBlcyk7XG4gICAgcmV0dXJuIGRldmljZXMkLnBpcGUodGFwKGRldmljZXMgPT4gdGhpcy5wYXRjaERldmljZXMoY3R4LCBkZXZpY2VzLmRhdGEpKSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyRGV2aWNlc0FjdGlvbilcbiAgb25DbGVhckRldmljZXNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPikge1xuICAgIHRoaXMucGF0Y2hEZXZpY2VzKGN0eCwgbnVsbCk7XG4gIH1cblxuICBAQWN0aW9uKFNlbGVjdERldmljZUFjdGlvbilcbiAgb25TZWxlY3REZXZpY2VBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZWxlY3REZXZpY2VBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkSWQ6IG51bGwgfSk7XG4gICAgY3R4LnBhdGNoU3RhdGUoeyBzZWxlY3RlZElkOiBhY3Rpb24uZGV2aWNlSWQgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRTZWxlY3RlZERldmljZUFjdGlvbilcbiAgb25Mb2FkU2VsZWN0ZWREZXZpY2VBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPikge1xuICAgIGNvbnN0IHNlbGVjdGVkRGV2aWNlSWQgPSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZElkO1xuICAgIGlmIChzZWxlY3RlZERldmljZUlkKSB7XG4gICAgICB0aGlzLm9uTG9hZERldmljZUFjdGlvbihjdHgsIHsgZGV2aWNlSWQ6IHNlbGVjdGVkRGV2aWNlSWQgfSk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihMb2FkRGV2aWNlU3RhdHVzQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZERldmljZVN0YXR1c0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWREZXZpY2VTdGF0dXNBY3Rpb24pIHtcbiAgICBjb25zdCBndWlkID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmd1aWQpO1xuXG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc2VsZWN0ZWREZXZpY2VTdGF0dXM6IG51bGwsXG4gICAgICBzZWxlY3RlZERldmljZVBhcmtJZDogbnVsbCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRldmljZVN0YXR1cyQgPSB0aGlzLmZhY2lsaXR5UnBjU2VydmljZVByb3h5LmdldERldmljZVN0YXR1cyhndWlkLCBhY3Rpb24uZGV2aWNlPy5wYXJrSUQsIGFjdGlvbi5kZXZpY2U/LmlkKTtcblxuICAgIHJldHVybiBkZXZpY2VTdGF0dXMkLnBpcGUodGFwKGRldmljZVN0YXR1cyA9PlxuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBzZWxlY3RlZERldmljZVN0YXR1czogZGV2aWNlU3RhdHVzPy5kYXRhPy5kYXRhIHx8IGdldERlZmF1bHREZXZpY2VTdGF0dXMoYWN0aW9uLmRldmljZSksXG4gICAgICAgIHNlbGVjdGVkRGV2aWNlUGFya0lkOiBkZXZpY2VTdGF0dXM/LmRhdGE/LnBhcmtJRCxcbiAgICAgIH0pLFxuICAgICkpO1xuICB9XG5cbiAgQEFjdGlvbihTZXREZXZpY2VTdGF0dXNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25TZXREZXZpY2VTdGF0dXNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZXREZXZpY2VTdGF0dXNBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWxlY3RlZERldmljZVN0YXR1czogZ2V0RGVmYXVsdERldmljZVN0YXR1cyhhY3Rpb24uZGV2aWNlKSxcbiAgICAgIHNlbGVjdGVkRGV2aWNlUGFya0lkOiBhY3Rpb24uZGV2aWNlLnBhcmtJRCxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZERldmljZUV2ZW50QWN0aXZpdGllc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWREZXZpY2VFdmVudEFjdGl2aXRpZXNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkRGV2aWNlRXZlbnRBY3Rpdml0aWVzQWN0aW9uKSB7XG4gICAgY29uc3QgZXZlbnRBY3Rpdml0aWVzJCA9IHRoaXMuZGV2aWNlUnBjU2VydmljZVByb3h5LmdldERldmljZUFjdGl2aXRpZXMoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5kZXZpY2VJZCwgZ2V0TW9tZW50TnVsbGFibGUoYWN0aW9uLnN0YXJ0RGF0ZSksXG4gICAgICBnZXRNb21lbnROdWxsYWJsZShhY3Rpb24uZW5kRGF0ZSksIGFjdGlvbi5zZWFyY2hWYWx1ZSwgbnVsbCwgbnVsbCwgYWN0aW9uLnRha2UsIGFjdGlvbi5za2lwLCBudWxsLCBPcmRlckRpcmVjdGlvbi5Ob25lKTtcbiAgICByZXR1cm4gZXZlbnRBY3Rpdml0aWVzJC5waXBlKHRhcChldmVudEFjdGl2aXRpZXMgPT5cbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgZXZlbnRBY3Rpdml0aWVzOiBldmVudEFjdGl2aXRpZXMuZGF0YSxcbiAgICAgIH0pLFxuICAgICkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkRGV2aWNlTHByVHJhbnNhY3Rpb25zQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZERldmljZUxwclRyYW5zYWN0aW9uc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWREZXZpY2VMcHJUcmFuc2FjdGlvbnNBY3Rpb24pIHtcbiAgICBjb25zdCBscHJUcmFuc2FjdGlvbnMkID0gdGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkuZ2V0RGV2aWNlTHByVHJhbnNhY3Rpb25zKGFjdGlvbi5ndWlkLCBhY3Rpb24ucGFya0lkLCBhY3Rpb24uZGV2aWNlSWQsIGdldE1vbWVudE51bGxhYmxlKGFjdGlvbi5zdGFydERhdGUpLFxuICAgICAgZ2V0TW9tZW50TnVsbGFibGUoYWN0aW9uLmVuZERhdGUpLCBudWxsLCBudWxsLCBudWxsLCBhY3Rpb24udGFrZSwgYWN0aW9uLnNraXAsIG51bGwsIE9yZGVyRGlyZWN0aW9uLk5vbmUpO1xuICAgIHJldHVybiBscHJUcmFuc2FjdGlvbnMkLnBpcGUodGFwKGxwclRyYW5zYWN0aW9ucyA9PlxuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBscHJUcmFuc2FjdGlvbnM6IGxwclRyYW5zYWN0aW9ucy5kYXRhLFxuICAgICAgfSksXG4gICAgKSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWREZXZpY2VFdmVudHNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkRGV2aWNlRXZlbnRzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZERldmljZUV2ZW50c0FjdGlvbikge1xuICAgIGNvbnN0IGRldmljZUV2ZW50cyQgPSB0aGlzLmRldmljZVJwY1NlcnZpY2VQcm94eS5nZXREZXZpY2VFdmVudHMoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5kZXZpY2VJZCwgZ2V0TW9tZW50TnVsbGFibGUoYWN0aW9uLnN0YXJ0RGF0ZSksXG4gICAgICBnZXRNb21lbnROdWxsYWJsZShhY3Rpb24uZW5kRGF0ZSksIG51bGwsIG51bGwsIG51bGwsIGFjdGlvbi50YWtlLCBhY3Rpb24uc2tpcCwgbnVsbCwgT3JkZXJEaXJlY3Rpb24uTm9uZSk7XG4gICAgcmV0dXJuIGRldmljZUV2ZW50cyQucGlwZSh0YXAoZGV2aWNlRXZlbnRzID0+XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGRldmljZUV2ZW50czogZGV2aWNlRXZlbnRzLmRhdGEsXG4gICAgICB9KSxcbiAgICApKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZERldmljZUFjdGlvbilcbiAgb25Mb2FkRGV2aWNlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZERldmljZUFjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGV2ZW50QWN0aXZpdGllczogbnVsbCxcbiAgICAgIGxwclRyYW5zYWN0aW9uczogbnVsbCxcbiAgICAgIGRldmljZUV2ZW50czogbnVsbCxcbiAgICAgIGRldmljZVJlbW90ZUNvbW1hbmRzOiBudWxsLFxuICAgICAgZGV2aWNlRXZlbnRzQ29sbGFwc2U6IG51bGwsXG4gICAgICBldmVudEFjdGl2aXRpZXNDb2xsYXBzZTogbnVsbCxcbiAgICAgIGxwclRyYW5zYWN0aW9uc0NvbGxhcHNlOiBudWxsLFxuICAgICAgZGV2aWNlRXZlbnRzRXhwYW5kZWQ6IFtdLFxuICAgICAgZXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQ6IFtdLFxuICAgICAgbHByVHJhbnNhY3Rpb25zRXhwYW5kZWQ6IFtdLFxuICAgICAgc2VsZWN0ZWREZXZpY2VTdGF0dXM6IG51bGwsXG4gICAgICBzZWxlY3RlZERldmljZVBhcmtJZDogbnVsbCxcbiAgICB9KTtcblxuICAgIC8vIHdhaXQgZm9yIGRldmljZXMgc3RvcmUgdG8gYmUgbG9hZGVkIGJlZm9yZSBsb2FkaW5nIGEgZGV2aWNlXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KFBhcmtNYW5hZ2VyU3RhdGUuZGV2aWNlcylcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoZGV2aWNlcyA9PiBkZXZpY2VzPy5sZW5ndGggPiAwKSxcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgdGFwKChmaWx0ZXJlZERldmljZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBkZXZpY2UgPSBmaWx0ZXJlZERldmljZXMuZmluZChkID0+IGQuaWQgPT09ICthY3Rpb24uZGV2aWNlSWQpO1xuICAgICAgICAgIGN0eC5kaXNwYXRjaChuZXcgTG9hZERldmljZVN0YXR1c0FjdGlvbihkZXZpY2UpKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYXJEZXZpY2VBY3Rpb24pXG4gIG9uQ2xlYXJEZXZpY2VBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNlbGVjdGVkSWQ6IG51bGwsXG4gICAgICBzZWxlY3RlZERldmljZVN0YXR1czogbnVsbCxcbiAgICAgIHNlbGVjdGVkRGV2aWNlUGFya0lkOiBudWxsLFxuICAgICAgZXZlbnRBY3Rpdml0aWVzOiBudWxsLFxuICAgICAgbHByVHJhbnNhY3Rpb25zOiBudWxsLFxuICAgICAgZGV2aWNlRXZlbnRzOiBudWxsLFxuICAgICAgZGV2aWNlUmVtb3RlQ29tbWFuZHM6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKERldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24pXG4gIG9uRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IERldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24pIHtcbiAgICBjb25zdCBkZXZpY2VJZCA9IGFjdGlvbi5kZXZpY2VTdGF0dXM/LmRldmljZUlEO1xuICAgIGNvbnN0IGNvbW1JRCA9IGFjdGlvbi5kZXZpY2VTdGF0dXM/LmNvbW1JRDtcblxuICAgIGNvbnN0IGRldmljZXNCeUlkID0gY3R4LmdldFN0YXRlKCkuYnlJZDtcbiAgICBjb25zdCBkZXZpY2VzYnlDb21tSWQgPSBjdHguZ2V0U3RhdGUoKS5ieUNvbW1JZDtcblxuICAgIGlmIChkZXZpY2VzQnlJZFtkZXZpY2VJZF0pIHtcbiAgICAgIGlmICghaXNFcXVhbChkZXZpY2VzQnlJZFtkZXZpY2VJZF0uZGV2aWNlU3RhdHVzLCBhY3Rpb24uZGV2aWNlU3RhdHVzKSkge1xuICAgICAgICBjb25zdCBjbG9uZWREdG8gPSBEZXZpY2VTdGF0dXNEdG8uZnJvbUpTKGFjdGlvbi5kZXZpY2VTdGF0dXMpO1xuICAgICAgICBjbG9uZWREdG8udHlwZSA9IGRldmljZXNCeUlkW2RldmljZUlkXS50eXBlO1xuICAgICAgICBkZXZpY2VzQnlJZFtkZXZpY2VJZF0uZGV2aWNlU3RhdHVzID0gY2xvbmVkRHRvO1xuICAgICAgICBkZXZpY2VzYnlDb21tSWRbY29tbUlEXS5kZXZpY2VTdGF0dXMgPSBjbG9uZWREdG87XG5cbiAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgIGJ5SWQ6IGNsb25lRGVlcChkZXZpY2VzQnlJZCksXG4gICAgICAgICAgYnlDb21tSWQ6IGNsb25lRGVlcChkZXZpY2VzYnlDb21tSWQpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZERldmljZVN0YXR1cyA9IGN0eC5nZXRTdGF0ZSgpLnNlbGVjdGVkRGV2aWNlU3RhdHVzO1xuICAgIGlmIChzZWxlY3RlZERldmljZVN0YXR1cz8uZGV2aWNlSUQgPT09IGRldmljZUlkKSB7XG4gICAgICBhY3Rpb24uZGV2aWNlU3RhdHVzLnR5cGUgPSBzZWxlY3RlZERldmljZVN0YXR1cy50eXBlO1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBzZWxlY3RlZERldmljZVN0YXR1czogYWN0aW9uLmRldmljZVN0YXR1cyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIGZvciBEZXZpY2UgRXZlbnRzXG4gIEBBY3Rpb24oRGV2aWNlRXZlbnRDaGFuZ2VkQWN0aW9uKVxuICBvbkRldmljZUV2ZW50Q2hhbmdlZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IERldmljZUV2ZW50Q2hhbmdlZEFjdGlvbikge1xuICAgIGNvbnN0IHNlbGVjdGVkRGV2aWNlUGFya0lkID0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWREZXZpY2VQYXJrSWQ7XG4gICAgY29uc3Qgc2VsZWN0ZWREZXZpY2VTdGF0dXMgPSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZERldmljZVN0YXR1cztcbiAgICAvLyBUT0RPOiBjaGFuZ2UgdG8gZGV2aWNlSWQgb25jZSBTUCB3aWxsIGltcGxlbWVudFxuICAgIGlmIChzZWxlY3RlZERldmljZVN0YXR1cz8uY29tbUlEID09PSBhY3Rpb24uZGV2RXZlbnQ/LnJlYWRlcklEICYmIHNlbGVjdGVkRGV2aWNlUGFya0lkID09PSBhY3Rpb24uZGV2RXZlbnQ/LnBhcmtJRCkge1xuICAgICAgY29uc3QgZGV2aWNlRXZlbnREdG8gPSB0aGlzLnBvcHVsYXRlRGV2aWNlRXZlbnQoYWN0aW9uLmRldkV2ZW50KTtcbiAgICAgIHRoaXMucGF0Y2hEZXZpY2VJdGVtKGN0eCwgZGV2aWNlRXZlbnREdG8sICdkZXZpY2VFdmVudHMnKTtcbiAgICB9XG4gIH1cblxuXG4gIC8vLyBmb3IgRGV2aWNlIGFjdGl2aXR5XG4gIEBBY3Rpb24oRGV2aWNlQWN0aXZpdHlDaGFuZ2VkQWN0aW9uKVxuICBvbkRldmljZUFjdGl2aXR5Q2hhbmdlZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+LCBhY3Rpb246IERldmljZUFjdGl2aXR5Q2hhbmdlZEFjdGlvbikge1xuICAgIGNvbnN0IHNlbGVjdGVkRGV2aWNlUGFya0lkID0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWREZXZpY2VQYXJrSWQ7XG4gICAgY29uc3Qgc2VsZWN0ZWREZXZpY2VTdGF0dXMgPSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZERldmljZVN0YXR1cztcbiAgICAvLyBUT0RPOiBjaGFuZ2UgdG8gZGV2aWNlSWQgb25jZSBTUCB3aWxsIGltcGxlbWVudFxuICAgIGlmIChzZWxlY3RlZERldmljZVN0YXR1cz8uY29tbUlEID09PSBhY3Rpb24uZXZlbnRBY3Rpdml0eT8ucmVhZGVySUQgJiYgc2VsZWN0ZWREZXZpY2VQYXJrSWQgPT09IGFjdGlvbi5ldmVudEFjdGl2aXR5Py5wYXJrSUQpIHtcbiAgICAgIGNvbnN0IGV2ZW50QWN0aXZpdHlEdG8gPSB0aGlzLnBvcHVsYXRlRXZlbnRBY3Rpdml0eShhY3Rpb24uZXZlbnRBY3Rpdml0eSk7XG4gICAgICB0aGlzLnBhdGNoRGV2aWNlSXRlbShjdHgsIGV2ZW50QWN0aXZpdHlEdG8sICdldmVudEFjdGl2aXRpZXMnKTtcbiAgICB9XG4gIH1cblxuICAvLy8gZm9yIExQUiBUcmFuc2FjdGlvbnNcbiAgQEFjdGlvbihMcHJUcmFuc2FjdGlvbnNDaGFuZ2VkQWN0aW9uKVxuICBvbkxwclRyYW5zYWN0aW9uc0NoYW5nZWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMcHJUcmFuc2FjdGlvbnNDaGFuZ2VkQWN0aW9uKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWREZXZpY2VQYXJrSWQgPSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZERldmljZVBhcmtJZDtcbiAgICBjb25zdCBzZWxlY3RlZERldmljZVN0YXR1cyA9IGN0eC5nZXRTdGF0ZSgpLnNlbGVjdGVkRGV2aWNlU3RhdHVzO1xuICAgIC8vIFRPRE86IGNoYW5nZSB0byBkZXZpY2VJZCBvbmNlIFNQIHdpbGwgaW1wbGVtZW50XG4gICAgaWYgKHNlbGVjdGVkRGV2aWNlU3RhdHVzPy5jb21tSUQgPT09IGFjdGlvbi5scHJUcmFuc2FjdGlvbj8ucmVhZGVySUQgJiYgc2VsZWN0ZWREZXZpY2VQYXJrSWQgPT09IGFjdGlvbi5scHJUcmFuc2FjdGlvbj8ucGFya0lEKSB7XG4gICAgICB0aGlzLnBhdGNoRGV2aWNlSXRlbShjdHgsIGFjdGlvbi5scHJUcmFuc2FjdGlvbiwgJ2xwclRyYW5zYWN0aW9ucycpO1xuICAgIH1cbiAgfVxuXG4gIEBBY3Rpb24oU2VsZWN0ZWRSb3dBY3Rpb24pXG4gIG9uU2VsZWN0ZWRSb3dBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya01hbmFnZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZWxlY3RlZFJvd0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNlbGVjdGVkUm93OiB7XG4gICAgICAgIHRhYmxlTmFtZTogYWN0aW9uLnBheWxvYWQudGFibGVOYW1lLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcGF0Y2hEZXZpY2VzKGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGRldmljZXM6IERldmljZUR0b1tdKSB7XG4gICAgZGV2aWNlcz8uZm9yRWFjaChkZXZpY2UgPT4gZGV2aWNlLmRldmljZVN0YXR1cyA9IGRldmljZS5kZXZpY2VTdGF0dXMgPz8gZ2V0RGVmYXVsdERldmljZVN0YXR1cyhkZXZpY2UpKTtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBmbGF0OiBkZXZpY2VzPy5zb3J0KChhLCBiKSA9PiBhLmlkIC0gYi5pZCksXG4gICAgICBieUlkOiB0b051bWJlck1hcChkZXZpY2VzIHx8IFtdLCAoZCkgPT4gZC5pZCksXG4gICAgICBieUNvbW1JZDogdG9OdW1iZXJNYXAoZGV2aWNlcyB8fCBbXSwgKGQpID0+IGQuY29tbUlEKSxcbiAgICAgIGNvdW50OiBkZXZpY2VzPy5sZW5ndGggfHwgMCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcGF0Y2hEZXZpY2VJdGVtPFQ+KGN0eDogU3RhdGVDb250ZXh0PFBhcmtNYW5hZ2VyU3RhdGVNb2RlbD4sIGl0ZW06IFQsIGl0ZW1zTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgY29sbGFwc2VJdGVtc05hbWUgPSBgJHtpdGVtc05hbWV9Q29sbGFwc2VgO1xuICAgIGNvbnN0IGV4cGFuZGVkSXRlbXNOYW1lID0gYCR7aXRlbXNOYW1lfUV4cGFuZGVkYDtcbiAgICBjb25zdCBjb2xsYXBzZUl0ZW1zID0gY3R4LmdldFN0YXRlKClbY29sbGFwc2VJdGVtc05hbWVdIGFzIFRhYmxlRGF0YTxhbnk+O1xuICAgIGxldCBleHBhbmRlZEl0ZW1zID0gY3R4LmdldFN0YXRlKClbZXhwYW5kZWRJdGVtc05hbWVdO1xuXG4gICAgaWYgKGNvbGxhcHNlSXRlbXMgIT09IG51bGwpIHtcbiAgICAgIGNvbGxhcHNlSXRlbXMuZGF0YVNldCA9IFsuLi5jb2xsYXBzZUl0ZW1zLmRhdGFTZXQuc2xpY2UoMCwgY29sbGFwc2VJdGVtcy5yZXN1bHRMaW1pdCAtIDEpXTtcbiAgICAgIGNvbGxhcHNlSXRlbXMuZGF0YVNldC51bnNoaWZ0KGl0ZW0pO1xuICAgIH1cblxuICAgIGlmIChleHBhbmRlZEl0ZW1zICE9PSBudWxsKSB7XG4gICAgICBleHBhbmRlZEl0ZW1zID0gWy4uLmV4cGFuZGVkSXRlbXNdLnNsaWNlKDAsIEVYUEFOREVEX1JFU1VMVF9MSU1JVCAtIDEpO1xuICAgICAgZXhwYW5kZWRJdGVtcy51bnNoaWZ0KGl0ZW0pO1xuICAgIH1cblxuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIFtjb2xsYXBzZUl0ZW1zTmFtZV06IGNsb25lRGVlcChjb2xsYXBzZUl0ZW1zKSxcbiAgICAgIFtleHBhbmRlZEl0ZW1zTmFtZV06IGV4cGFuZGVkSXRlbXMsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU2VsZWN0ZWRSb3cpXG4gIG9uQ2xlYXJTZWxlY3RlZFJvdyhjdHg6IFN0YXRlQ29udGV4dDxQYXJrTWFuYWdlclN0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc2VsZWN0ZWRSb3c6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBvcHVsYXRlRGV2aWNlRXZlbnQoZGV2aWNlRXZlbnREYXRhOiBhbnkpIHtcbiAgICBjb25zdCBkZXZpY2VFdmVudER0byA9IERldmljZUV2ZW50RHRvLmZyb21KUyhkZXZpY2VFdmVudERhdGEpO1xuXG4gICAgLy8gYmFja3dhcmRzIC0gZnJvbSA5LjMuMiB0aGUgbWFwcGluZyBmcm9tIERldmljZUV2ZW50Q29yZSB0byBEZXZpY2VFdmVudER0byB3aWxsIGJlIGluIHRoZSBjbGllbnRcbiAgICBpZiAoZGV2aWNlRXZlbnREYXRhLnBhcmtlclRpY2tldFR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGV2aWNlRXZlbnREdG8ucGFya2VyVGlja2V0VHlwZSA9IHRoaXMuZ2V0RGV2aWNlRXZlbnRQYXJrZXJUaWNrZXRUeXBlKGRldmljZUV2ZW50RGF0YSk7XG4gICAgICBkZXZpY2VFdmVudER0by50aWNrZXROdW0gPSB0aGlzLkdldFRpY2tldE51bShkZXZpY2VFdmVudER0by5wYXJrZXJUaWNrZXRUeXBlLCBkZXZpY2VFdmVudER0by52YWx1ZTEpO1xuICAgIH1cbiAgICBpZiAoZGV2aWNlRXZlbnREdG8uZXZlbnRUeXBlPy5tb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRldmljZUV2ZW50RHRvLmV2ZW50VHlwZS5tb2RlID0gZGV2aWNlRXZlbnREYXRhLmV2ZW50VHlwZS5ldmVudFR5cGU7XG4gICAgICBkZXZpY2VFdmVudER0by5ldmVudFR5cGUudmFsdWUxX0Rlc2NyaXB0aW9uID0gZGV2aWNlRXZlbnREYXRhLmV2ZW50VHlwZS52YWx1ZTFfRGlzO1xuICAgICAgZGV2aWNlRXZlbnREdG8uZXZlbnRUeXBlLnZhbHVlMl9EZXNjcmlwdGlvbiA9IGRldmljZUV2ZW50RGF0YS5ldmVudFR5cGUudmFsdWUyX0RpcztcbiAgICAgIGRldmljZUV2ZW50RHRvLmV2ZW50VHlwZS52YWx1ZTNfRGVzY3JpcHRpb24gPSBkZXZpY2VFdmVudERhdGEuZXZlbnRUeXBlLnZhbHVlM19EaXM7XG4gICAgICBkZXZpY2VFdmVudER0by5ldmVudFR5cGUudmFsdWU0X0Rlc2NyaXB0aW9uID0gZGV2aWNlRXZlbnREYXRhLmV2ZW50VHlwZS52YWx1ZTRfRGlzO1xuICAgIH1cblxuICAgIHJldHVybiBkZXZpY2VFdmVudER0bztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGV2aWNlRXZlbnRQYXJrZXJUaWNrZXRUeXBlKGRldmljZUV2ZW50RGF0YTogYW55KTogUGFya2VyVGlja2V0VHlwZSB7XG4gICAgbGV0IHBhcmtlclRpY2tldFR5cGU6IFBhcmtlclRpY2tldFR5cGU7XG4gICAgc3dpdGNoIChkZXZpY2VFdmVudERhdGEuZXZlbnRJRCkge1xuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50LkNhbmNlbGxlZFRpY2tldFBheW1lbnRQcm9jZXNzOlxuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50Lk5ld0VudHJ5VGlja2V0OlxuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50LlRpY2tldFBheW1lbnRDYWxjdWxhdGlvbjpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5UaWNrZXRXaXRoTm9QYXltZW50OlxuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50LkNoYXJnZVNlbnRGcm9tU2VydmVyOlxuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50LkNhc2hiYWNrV2FzUHJpbnRlZDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5MUFJNaXNtYXRjaDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5BY2NlcHRFbnRyeVRpY2tldDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5EZW55RW50cnlUaWNrZXQ6XG4gICAgICBjYXNlIFR5cGVDYXN0RGV2aWNlRXZlbnQuRGVueUVudHJ5VGlja2V0RXJyb3I6XG4gICAgICBjYXNlIFR5cGVDYXN0RGV2aWNlRXZlbnQuQ2FyTGVmdExvb3BUaWNrZXRSZWplY3RlZDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5UaWNrZXREZXRhaWxzQ2hhbmdlOlxuICAgICAgICBwYXJrZXJUaWNrZXRUeXBlID0gUGFya2VyVGlja2V0VHlwZS5UcmFuc2llbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUeXBlQ2FzdERldmljZUV2ZW50LkNyZWRpdFRyYW5zYWN0aW9uQWNjZXB0ZWQ6XG4gICAgICBjYXNlIFR5cGVDYXN0RGV2aWNlRXZlbnQuQ3JlZGl0VHJhbnNhY3Rpb25SZWplY3RlZDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5DcmVkaXRQcm9jZXNzVGltZW91dDpcbiAgICAgIGNhc2UgVHlwZUNhc3REZXZpY2VFdmVudC5TdGlja2VyczpcbiAgICAgICAgcGFya2VyVGlja2V0VHlwZSA9IFBhcmtlclRpY2tldFR5cGUuUGF5bWVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBwYXJrZXJUaWNrZXRUeXBlID0gUGFya2VyVGlja2V0VHlwZS5Vbmtub3duO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gcGFya2VyVGlja2V0VHlwZTtcbiAgfVxuXG4gIHByaXZhdGUgR2V0VGlja2V0TnVtID0gKHBhcmtlclRpY2tldFR5cGU6IFBhcmtlclRpY2tldFR5cGUsIHZhbHVlOiBudW1iZXIpOiBudW1iZXIgPT4gcGFya2VyVGlja2V0VHlwZSAhPSBQYXJrZXJUaWNrZXRUeXBlLlVua25vd24gPyB2YWx1ZSA6IG51bGw7XG5cbiAgcHJpdmF0ZSBwb3B1bGF0ZUV2ZW50QWN0aXZpdHkoZXZlbnRBY3Rpdml0eURhdGE6IGFueSkge1xuICAgIGNvbnN0IGV2ZW50QWN0aXZ0eUR0byA9IEV2ZW50QWN0aXZpdHlEdG8uZnJvbUpTKGV2ZW50QWN0aXZpdHlEYXRhKTtcbiAgICAvLyBiYWNrd2FyZHMgLSBmcm9tIDkuMy4yIHRoZSBtYXBwaW5nIGZyb20gRXZlbnRBY3Rpdml0eUNvcmUgdG8gRXZlbnRBY3Rpdml0eUR0byB3aWxsIGJlIGluIHRoZSBjbGllbnRcbiAgICBpZiAoZXZlbnRBY3Rpdml0eURhdGEucGFya2VyVGlja2V0VHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBldmVudEFjdGl2dHlEdG8uZGVzY3JpcHRpb24gPSBldmVudEFjdGl2aXR5RGF0YS5kaXM7XG4gICAgICBldmVudEFjdGl2dHlEdG8uZGF0ZSA9IGV2ZW50QWN0aXZpdHlEYXRhLm5EYXRlO1xuICAgICAgZXZlbnRBY3RpdnR5RHRvLnRpbWUgPSBldmVudEFjdGl2aXR5RGF0YS5uVGltZTtcbiAgICAgIGV2ZW50QWN0aXZ0eUR0by5kYXRlVGltZSA9IGV2ZW50QWN0aXZpdHlEYXRhLm5EYXRlVGltZTtcbiAgICAgIGV2ZW50QWN0aXZ0eUR0by5wYXJrZXJUaWNrZXRUeXBlID0gdGhpcy5nZXRFdmVudEFjdGl2aXR5UGFya2VyVGlja2V0VHlwZShldmVudEFjdGl2aXR5RGF0YSk7XG4gICAgICBldmVudEFjdGl2dHlEdG8udGlja2V0SWQgPSB0aGlzLkdldFRpY2tldE51bShldmVudEFjdGl2dHlEdG8ucGFya2VyVGlja2V0VHlwZSwgZXZlbnRBY3Rpdml0eURhdGEucm93SXRlbURhdGEpO1xuICAgIH1cblxuICAgIHJldHVybiBldmVudEFjdGl2dHlEdG87XG4gIH1cblxuICBwcml2YXRlIGdldEV2ZW50QWN0aXZpdHlQYXJrZXJUaWNrZXRUeXBlKGV2ZW50QWN0aXZpdHlEYXRhOiBhbnkpOiBQYXJrZXJUaWNrZXRUeXBlIHtcbiAgICBsZXQgcGFya2VyVGlja2V0VHlwZTogUGFya2VyVGlja2V0VHlwZTtcbiAgICBzd2l0Y2ggKGV2ZW50QWN0aXZpdHlEYXRhLmltZ0NlbGxUYWcpIHtcbiAgICAgIGNhc2UgVHlwZUNhc3RFdmVudEFjdGl2aXR5LkNyZWRpdENhcmROb3RFbmFibGVkOlxuICAgICAgY2FzZSBUeXBlQ2FzdEV2ZW50QWN0aXZpdHkuQ3JlZGl0Q2FyZEVycm9yOlxuICAgICAgICBwYXJrZXJUaWNrZXRUeXBlID0gUGFya2VyVGlja2V0VHlwZS5DcmVkaXRDYXJkO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVHlwZUNhc3RFdmVudEFjdGl2aXR5LlRyYW5zaWVudE9wZW5UaWNrZXQ6XG4gICAgICBjYXNlIFR5cGVDYXN0RXZlbnRBY3Rpdml0eS5UcmFuc2llbnRDbG9zZVRpY2tldDpcbiAgICAgICAgcGFya2VyVGlja2V0VHlwZSA9IFBhcmtlclRpY2tldFR5cGUuVHJhbnNpZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVHlwZUNhc3RFdmVudEFjdGl2aXR5Lk1vbnRobHk6XG4gICAgICAgIHBhcmtlclRpY2tldFR5cGUgPSBQYXJrZXJUaWNrZXRUeXBlLk1vbnRobHk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUeXBlQ2FzdEV2ZW50QWN0aXZpdHkuUGF5bWVudDpcbiAgICAgICAgcGFya2VyVGlja2V0VHlwZSA9IFBhcmtlclRpY2tldFR5cGUuUGF5bWVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFR5cGVDYXN0RXZlbnRBY3Rpdml0eS5HdWVzdDpcbiAgICAgICAgcGFya2VyVGlja2V0VHlwZSA9IFBhcmtlclRpY2tldFR5cGUuR3Vlc3Q7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUeXBlQ2FzdEV2ZW50QWN0aXZpdHkuRVZvdWNoZXI6XG4gICAgICAgIHBhcmtlclRpY2tldFR5cGUgPSBQYXJrZXJUaWNrZXRUeXBlLkVWb3VjaGVyO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHBhcmtlclRpY2tldFR5cGUgPSBQYXJrZXJUaWNrZXRUeXBlLlVua25vd247XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJrZXJUaWNrZXRUeXBlO1xuICB9XG59XG4iXX0=
@@ -25,10 +25,10 @@ export class ParkerService {
25
25
  getMonthliyFormattedLocation(monthly) {
26
26
  return Number(monthly.location) === -1 ? this.translate.instant(Localization.manually_updated) : `${monthly.location} ${monthly.parkName ? ' | ' + monthly.parkName : ''}`;
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParkerService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParkerService }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParkerService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParkerService }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParkerService, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParkerService, decorators: [{
32
32
  type: Injectable
33
33
  }], ctorParameters: () => [{ type: i1.TranslateService }] });
34
34
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFya2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvcGFya2VyL3Bhcmtlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBeUIsTUFBTSx5Q0FBeUMsQ0FBQzs7O0FBR25JLE1BQU0sT0FBTyxhQUFhO0lBTXhCLFlBQW9CLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBSnhDLHNDQUFpQyxHQUFHLElBQUksQ0FBQztRQUN6Qyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBR3JDLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxxQkFBNEMsRUFBRSwwQkFBdUQ7UUFDL0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdELElBQUksMEJBQTBCLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDeEMsTUFBTSxNQUFNLEdBQUcsMEJBQTBCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUN0RSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLE1BQU0sMEJBQTBCLEVBQUUsQ0FBQztRQUNoSSxDQUFDO2FBQU0sQ0FBQyxDQUFDLHlCQUF5QjtZQUNoQyxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQzVELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sTUFBTSxxQkFBcUIsRUFBRSxDQUFDO1FBQ3RILENBQUM7SUFDSCxDQUFDO0lBRU0sNEJBQTRCLENBQUMsT0FBOEI7UUFDaEUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUM3SyxDQUFDOytHQXRCVSxhQUFhO21IQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBGcmVxdWVudFBhcmtpbmdBY3Rpb25UZXh0LCBGcmVxdWVudFBhcmtpbmdFcnJvckFjdGlvblRleHQgfSBmcm9tICcuLi8uLi9lbnVtcy9mcmVxdWVudC1wYXJrZXIuZW51bSc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb24gfSBmcm9tICcuLi8uLi9lbnVtcy9sb2NhbGl6YXRpb24uZW51bSc7XG5pbXBvcnQgeyBGcmVxdWVudFBhcmtpbmdBY3Rpb24sIEZyZXF1ZW50UGFya2luZ0Vycm9yQWN0aW9uLCBNb250aGx5SGlzdG9yeUl0ZW1EdG8gfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGFya2VyU2VydmljZSB7XG5cbiAgcHVibGljIGlzRGlzcGxheUJhY2tUb1NlYXJjaFJlc3VsdEJ1dHRvbiA9IHRydWU7XG4gIHB1YmxpYyBpc0Rpc3BsYXlTZWFyY2hCYXIgPSB0cnVlO1xuICBwdWJsaWMgaXNQYXJrZXJDb21wb25lbnRJbml0ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXRIaXN0b3J5SXRlbUFjdGlvbihmcmVxdWVudFBhcmtpbmdBY3Rpb246IEZyZXF1ZW50UGFya2luZ0FjdGlvbiwgZnJlcXVlbnRQYXJraW5nRXJyb3JBY3Rpb24/OiBGcmVxdWVudFBhcmtpbmdFcnJvckFjdGlvbikge1xuICAgIGNvbnN0IHVua25vd24gPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KExvY2FsaXphdGlvbi51bmtub3duKTtcbiAgICBpZiAoZnJlcXVlbnRQYXJraW5nRXJyb3JBY3Rpb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGFjdGlvbiA9IEZyZXF1ZW50UGFya2luZ0Vycm9yQWN0aW9uW2ZyZXF1ZW50UGFya2luZ0Vycm9yQWN0aW9uXTtcbiAgICAgIHJldHVybiBhY3Rpb24gPyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KEZyZXF1ZW50UGFya2luZ0Vycm9yQWN0aW9uVGV4dFthY3Rpb25dKSA6IGAke3Vua25vd259IC0gJHtmcmVxdWVudFBhcmtpbmdFcnJvckFjdGlvbn1gO1xuICAgIH0gZWxzZSB7IC8vIHBhcmtpbmdBY3Rpb24gIT09IG51bGxcbiAgICAgIGNvbnN0IGFjdGlvbiA9IEZyZXF1ZW50UGFya2luZ0FjdGlvbltmcmVxdWVudFBhcmtpbmdBY3Rpb25dO1xuICAgICAgcmV0dXJuIGFjdGlvbiA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoRnJlcXVlbnRQYXJraW5nQWN0aW9uVGV4dFthY3Rpb25dKSA6IGAke3Vua25vd259IC0gJHtmcmVxdWVudFBhcmtpbmdBY3Rpb259YDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TW9udGhsaXlGb3JtYXR0ZWRMb2NhdGlvbihtb250aGx5OiBNb250aGx5SGlzdG9yeUl0ZW1EdG8pIHtcbiAgICByZXR1cm4gTnVtYmVyKG1vbnRobHkubG9jYXRpb24pID09PSAtMSA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoTG9jYWxpemF0aW9uLm1hbnVhbGx5X3VwZGF0ZWQpIDogYCR7bW9udGhseS5sb2NhdGlvbn0gJHttb250aGx5LnBhcmtOYW1lID8gJyB8ICcgKyBtb250aGx5LnBhcmtOYW1lIDogJyd9YDtcbiAgfVxufVxuIl19
@@ -565,8 +565,8 @@ let ParkerState = class ParkerState {
565
565
  state.parkerBreadcrumbValue = parkerBreadcrumbValue;
566
566
  return state;
567
567
  }
568
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParkerState, deps: [{ token: i1.Store }, { token: i2.SignalR }, { token: i3.FileService }, { token: i4.TranslateService }, { token: i5.MessageBarService }, { token: i6.SessionStorageService }, { token: i7.ChaserTicketRpcServiceProxy }, { token: i7.PaymentRpcServiceProxy }, { token: i7.MonthlyRpcServiceProxy }, { token: i7.TransientRpcServiceProxy }, { token: i7.GuestRpcServiceProxy }, { token: i7.EvoucherRpcServiceProxy }, { token: i7.CreditCardRpcServiceProxy }, { token: i7.AccessProfileRpcServiceProxy }, { token: i8.AuditCloudServiceProxy }, { token: i7.FileRpcServiceProxy }, { token: i8.FileCloudServiceProxy }, { token: i9.NotificationEventService }, { token: i7.AccountRpcServiceProxy }, { token: i7.SpecialTransientRpcServiceProxy }], target: i0.ɵɵFactoryTarget.Injectable }); }
569
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParkerState }); }
568
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParkerState, deps: [{ token: i1.Store }, { token: i2.SignalR }, { token: i3.FileService }, { token: i4.TranslateService }, { token: i5.MessageBarService }, { token: i6.SessionStorageService }, { token: i7.ChaserTicketRpcServiceProxy }, { token: i7.PaymentRpcServiceProxy }, { token: i7.MonthlyRpcServiceProxy }, { token: i7.TransientRpcServiceProxy }, { token: i7.GuestRpcServiceProxy }, { token: i7.EvoucherRpcServiceProxy }, { token: i7.CreditCardRpcServiceProxy }, { token: i7.AccessProfileRpcServiceProxy }, { token: i8.AuditCloudServiceProxy }, { token: i7.FileRpcServiceProxy }, { token: i8.FileCloudServiceProxy }, { token: i9.NotificationEventService }, { token: i7.AccountRpcServiceProxy }, { token: i7.SpecialTransientRpcServiceProxy }], target: i0.ɵɵFactoryTarget.Injectable }); }
569
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParkerState }); }
570
570
  };
571
571
  __decorate([
572
572
  Action(ClearParkerAction)
@@ -678,7 +678,7 @@ ParkerState = __decorate([
678
678
  })
679
679
  ], ParkerState);
680
680
  export { ParkerState };
681
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParkerState, decorators: [{
681
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParkerState, decorators: [{
682
682
  type: Injectable
683
683
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.SignalR }, { type: i3.FileService }, { type: i4.TranslateService }, { type: i5.MessageBarService }, { type: i6.SessionStorageService }, { type: i7.ChaserTicketRpcServiceProxy }, { type: i7.PaymentRpcServiceProxy }, { type: i7.MonthlyRpcServiceProxy }, { type: i7.TransientRpcServiceProxy }, { type: i7.GuestRpcServiceProxy }, { type: i7.EvoucherRpcServiceProxy }, { type: i7.CreditCardRpcServiceProxy }, { type: i7.AccessProfileRpcServiceProxy }, { type: i8.AuditCloudServiceProxy }, { type: i7.FileRpcServiceProxy }, { type: i8.FileCloudServiceProxy }, { type: i9.NotificationEventService }, { type: i7.AccountRpcServiceProxy }, { type: i7.SpecialTransientRpcServiceProxy }], propDecorators: { onClearParkerAction: [], onLoadParkerAction: [], onLoadParkersAction: [], onLoadLocateTicketSearchAction: [], onLoadLocatedTicketAction: [], onLoadTicketNumParkersAction: [], onSetSearchTermAction: [], onClearSearchTermAction: [], onClearSearchResultsAction: [], onClearLocateTicketSearchAction: [], onClearLocatedTicketAction: [], onClearSpecialTransientTablesAction: [], onUpdateDocumentAction: [], onUpdateTicketPlateIdAction: [], onPrintReceiptAction: [], onReceiptGeneratedAction: [], OnSpecialTransientTablesTablesAction: [], onReloadParkerAction: [], onSetTicketIdentifierIdAction: [] } });
684
684
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFya2VyLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL3Bhcmtlci9wYXJrZXIuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUF1QixNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHM0UsT0FBTyxFQUNMLFNBQVMsRUFDSyxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUMzRCxNQUFNLDJDQUEyQyxDQUFDO0FBQ25ELE9BQU8sRUFHOEYscUJBQXFCLEVBQ3hILGdCQUFnQixFQUE0RSxtQkFBbUIsRUFDL0csbUJBQW1CLEVBQ0UsbUJBQW1CLEVBQ3pDLE1BQU0seUNBQXlDLENBQUM7QUFJakQsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUNMLHdCQUF3QixFQUFFLDZCQUE2QixFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUNwRyxxQkFBcUIsRUFBRSxpQ0FBaUMsRUFBRSwrQkFBK0IsRUFBRSx1QkFBdUIsRUFDbEgsNEJBQTRCLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQ3pJLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLHlCQUF5QixFQUNwSCxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7OztBQW9DbkIsSUFBTSxXQUFXLEdBQWpCLE1BQU0sV0FBVztJQUV0QixZQUFvQixLQUFZLEVBQ3RCLE9BQWdCLEVBQ2hCLFdBQXdCLEVBQ3hCLFNBQTJCLEVBQzNCLGlCQUFvQyxFQUNwQyxxQkFBNEMsRUFDNUMsd0JBQXFELEVBQ3JELHNCQUE4QyxFQUM5QyxzQkFBOEMsRUFDOUMsd0JBQWtELEVBQ2xELG9CQUEwQyxFQUMxQyx1QkFBZ0QsRUFDaEQseUJBQW9ELEVBQ3BELDRCQUEwRCxFQUMxRCxzQkFBOEMsRUFDOUMsbUJBQXdDLEVBQ3hDLHFCQUE0QyxFQUM1Qyx3QkFBa0QsRUFDbEQsdUJBQStDLEVBQy9DLCtCQUFnRTtRQW5CdEQsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTZCO1FBQ3JELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFDMUQsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBQy9DLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBaUM7SUFDMUUsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEtBQXVCO1FBQzFELE9BQU8sS0FBSyxDQUFDLHNCQUFzQixDQUFDO0lBQ3RDLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBdUI7UUFDNUMsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0lBQ3pDLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUF1QjtRQUNyRCxPQUFPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQztJQUNsRCxDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBdUI7UUFDekQsT0FBTyxLQUFLLENBQUMscUJBQXFCLENBQUM7SUFDckMsQ0FBQztJQUdhLEFBQVAsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQXVCO1FBQ3BELE9BQU8sS0FBSyxDQUFDLGdCQUFnQixDQUFDO0lBQ2hDLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBdUI7UUFDakQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBdUI7UUFDOUMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3RCLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBdUI7UUFDakQsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDO0lBQzdCLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUF1QjtRQUN2RCxPQUFPLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztJQUNuQyxDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQXVCO1FBQ2pELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQztJQUM3QixDQUFDO0lBR0QsbUJBQW1CLENBQUMsR0FBbUM7UUFDckQsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLGdCQUFnQixFQUFFO2dCQUNoQixRQUFRLEVBQUUsSUFBSTtnQkFDZCxpQkFBaUIsRUFBRSxFQUFFO2dCQUNyQixtQkFBbUIsRUFBRSxFQUFFO2dCQUN2QixJQUFJLEVBQUUsRUFBRTthQUNUO1lBQ0QsT0FBTyxFQUFFLElBQUk7WUFDYixxQkFBcUIsRUFBRSxJQUFJO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxrQkFBa0IsQ0FBQyxHQUFtQyxFQUFFLE1BQXdCO1FBQzlFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzRCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzdJLGlCQUFpQixDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7UUFDeEMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRWxDLE1BQU0sU0FBUyxHQUFjLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRSxNQUFNLFNBQVMsR0FBYyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFL0UsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTFFLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLEtBQUssZ0JBQWdCLENBQUMsVUFBVTtnQkFDOUIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0SCxPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRTtvQkFDdEQsaUJBQWlCLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQztvQkFDbkQsaUJBQWlCLENBQUMscUJBQXFCLEdBQUcsR0FBRyxVQUFVLE1BQU0saUJBQWlCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxDQUFDO29CQUNwSCxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztvQkFDOUQsR0FBRyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ04sS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTO2dCQUM3QixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ25ILE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO29CQUNyRCxNQUFNLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ2pJLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFDcEksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFDL0csaUJBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxNQUFNLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUU1RixHQUFHLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDTixLQUFLLGdCQUFnQixDQUFDLFFBQVE7Z0JBQzVCLElBQUksaUJBQWtFLENBQUM7Z0JBQ3ZFLFFBQVEsSUFBSSxFQUFFLENBQUM7b0JBQ2IsS0FBSyxTQUFTLEtBQUssU0FBUyxDQUFDLEVBQUU7d0JBQzdCLGlCQUFpQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQzVHLE1BQU07b0JBQ1IsS0FBSyxTQUFTLEtBQUssU0FBUyxDQUFDLE1BQU0sSUFBSSxTQUFTLEtBQUssU0FBUyxDQUFDLFFBQVE7d0JBQ3JFLGlCQUFpQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQzFHLE1BQU07b0JBQ1I7d0JBQ0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO2dCQUNuRSxDQUFDO2dCQUVELE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO29CQUNuRCxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzt3QkFDeEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxDQUFDO3dCQUM3RixNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQ3pGLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQ25JLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLE1BQU0sTUFBTSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3pJLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDO3dCQUN6RSxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLEVBQ3hGLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQzlILGdCQUFnQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsUUFBUSxNQUFNLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDM0csQ0FBQztvQkFDRCxHQUFHLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDTixLQUFLLGdCQUFnQixDQUFDLEtBQUssQ0FBQztZQUM1QixLQUFLLGdCQUFnQixDQUFDLFVBQVU7Z0JBQzlCLElBQUksY0FBa0UsQ0FBQztnQkFFdkUsUUFBUSxJQUFJLEVBQUUsQ0FBQztvQkFDYixLQUFLLFNBQVMsS0FBSyxTQUFTLENBQUMsRUFBRTt3QkFDN0IsY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7d0JBQzdGLE1BQU07b0JBQ1IsS0FBSyxTQUFTLEtBQUssU0FBUyxDQUFDLE1BQU0sSUFBSSxTQUFTLEtBQUssU0FBUyxDQUFDLE1BQU07d0JBQ25FLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQzt3QkFDM0YsTUFBTTtvQkFDUixLQUFLLFNBQVMsS0FBSyxTQUFTLENBQUMsTUFBTSxJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUMsV0FBVzt3QkFDeEUsY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7d0JBQ3JHLE1BQU07b0JBQ1I7d0JBQ0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO2dCQUNoRSxDQUFDO2dCQUVELE9BQU8sY0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFO29CQUNuRixJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt3QkFDekMsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEtBQUssWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDOzRCQUM3RixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDO3dCQUVwRyxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQ2hJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQ2hILGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxVQUFVLE1BQU0sU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUN6RCxDQUFDO3lCQUFNLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO3dCQUNoRCxNQUFNLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxDQUFDO3dCQUUxRixNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUNuSixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFDOUgsYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLE1BQU0sTUFBTSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzNFLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLEtBQUssWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDOzRCQUN6RixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQzt3QkFFaEcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksRUFDNUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQ3RHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLE1BQU0sU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNwRCxDQUFDO29CQUNELEdBQUcsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNOLEtBQUssZ0JBQWdCLENBQUMsT0FBTztnQkFDM0IsSUFBSSxnQkFBZ0UsQ0FBQztnQkFFckUsUUFBUSxJQUFJLEVBQUUsQ0FBQztvQkFDYixLQUFLLFNBQVMsS0FBSyxTQUFTLENBQUMsRUFBRTt3QkFDN0IsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDekcsTUFBTTtvQkFDUixLQUFLLFNBQVMsS0FBSyxTQUFTLENBQUMsU0FBUzt3QkFDcEMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDdkcsTUFBTTtvQkFDUjt3QkFDRSxPQUFPLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7Z0JBQ25FLENBQUM7Z0JBRUQsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFO29CQUNqRCxNQUFNLFdBQVcsR0FBRyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQztvQkFDbEgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFDakksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQzVHLGVBQWUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxPQUFPLE1BQU0sV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUV4RCxHQUFHLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDTixLQUFLLGdCQUFnQixDQUFDLE9BQU87Z0JBQzNCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDN0csT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFO29CQUNqRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzNFLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQzdGLFFBQVEsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxlQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsUUFBUSxNQUFNLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFFakgsR0FBRyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ04sS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNO2dCQUMxQixJQUFJLGVBQThELENBQUM7Z0JBQ25FLGVBQWUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQ3BJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRTVGLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUU7b0JBQy9DLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ3JFLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQzVGLE1BQU0sRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsY0FBYyxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sTUFBTSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBRW5HLEdBQUcsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNOLEtBQUssZ0JBQWdCLENBQUMsT0FBTztnQkFDM0IsSUFBSSxnQkFBZ0UsQ0FBQztnQkFDckUsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO29CQUN0SSxJQUFJLENBQUMsd0JBQXdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUU3RixPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUU7b0JBQ2pELE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ3hFLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQzdGLE9BQU8sRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsZUFBZSxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sTUFBTSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBRXpHLEdBQUcsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNOLEtBQUssZ0JBQWdCLENBQUMsS0FBSztnQkFDekIsSUFBSSxjQUE0RCxDQUFDO2dCQUNqRSxjQUFjLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFakYsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDckUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLElBQUksRUFDM0YsS0FBSyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxNQUFNLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDL0YsR0FBRyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ04sS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPO2dCQUMzQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRTlHLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRTtvQkFDakQsTUFBTSxXQUFXLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDMUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLElBQUksRUFDN0YsT0FBTyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxlQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsT0FBTyxNQUFNLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDekcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ04sS0FBSyxnQkFBZ0IsQ0FBQyxVQUFVO2dCQUM5QixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFFLENBQUM7Z0JBRXJILE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO29CQUN2RCxNQUFNLGNBQWMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdEYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLElBQUksRUFDaEcsVUFBVSxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEdBQUcsVUFBVSxNQUFNLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDM0gsR0FBRyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ04sS0FBSyxnQkFBZ0IsQ0FBQyw0QkFBNEI7Z0JBQ2hELE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLHlDQUF5QyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDeEosT0FBTyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLEVBQUU7b0JBQ25GLE1BQU0sZ0NBQWdDLEdBQUcsR0FBRyxvQ0FBb0MsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ2xILE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLGdDQUFnQyxFQUFFLElBQUksRUFDbEgsYUFBYSxFQUFFLG9DQUFvQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsb0NBQW9DLENBQUMsSUFBSSxFQUFFLEdBQUcsZ0NBQWdDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZLLEdBQUcsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNOO2dCQUNFLGlCQUFpQixDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQy9CLEdBQUcsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDbEMsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBR0QsbUJBQW1CLENBQUMsR0FBbUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBcUI7UUFDcEksTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNELEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixNQUFNLEVBQUUsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsQ0FBQztZQUM1RSxhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDLENBQUM7UUFFSCxJQUFJLEtBQXNCLENBQUM7UUFDM0IsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUViLEtBQUssZ0JBQWdCLENBQUMsU0FBUztnQkFDN0IsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDO2dCQUM5QixNQUFNLDBCQUEwQixHQUFHLEtBQUssQ0FBQztnQkFDekMsS0FBSyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsMEJBQTBCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztnQkFDbkosTUFBTTtZQUNSLEtBQUssZ0JBQWdCLENBQUMsUUFBUTtnQkFDNUIsS0FBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUN0RixNQUFNO1lBQ1IsS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7WUFDNUIsS0FBSyxnQkFBZ0IsQ0FBQyxVQUFVO2dCQUM5QixLQUFLLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFFLENBQUM7Z0JBQ2pGLE1BQU07WUFDUixLQUFLLGdCQUFnQixDQUFDLE9BQU87Z0JBQzNCLEtBQUssR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDcEYsTUFBTTtZQUNSLEtBQUssZ0JBQWdCLENBQUMsT0FBTztnQkFDM0IsS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNwRixNQUFNO1lBQ1IsS0FBSyxnQkFBZ0IsQ0FBQyxVQUFVO2dCQUM5QixLQUFLLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUFDLDZCQUE2QixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNqSCxNQUFNO1lBQ1I7Z0JBQ0UsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM1QixHQUFHLENBQUMsVUFBVSxDQUFDO2dCQUNiLGFBQWEsRUFBRSxJQUFJLEVBQUUsSUFBSTthQUMxQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUdELDhCQUE4QixDQUFDLEdBQW1DLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBZ0M7UUFDN0gsR0FBRyxDQUFDLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBRTVDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUM5QixNQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQztRQUN4QyxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUUvQixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsMEJBQTBCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hLLEdBQUcsQ0FBQyxVQUFVLENBQUM7Z0JBQ2IsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLElBQUk7YUFDL0IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFHRCx5QkFBeUIsQ0FBQyxHQUFtQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQTJCO1FBQ2hILEdBQUcsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUV2QyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzNGLEdBQUcsQ0FBQyxVQUFVLENBQUM7Z0JBQ2IsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJO2FBQ3pCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBR0QsNEJBQTRCLENBQUMsR0FBbUMsRUFBRSxNQUFrQztRQUNsRyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLE1BQU0sRUFBRSxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN2RSxhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDLENBQUM7UUFFSCxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixLQUFLLGdCQUFnQixDQUFDLFNBQVM7Z0JBQzdCLE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxDQUFDO2dCQUN6QyxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQztnQkFFL0IsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFDM0csTUFBTSxDQUFDLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FDbEUsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEVBQUU7b0JBQ3pCLEdBQUcsQ0FBQyxVQUFVLENBQUM7d0JBQ2IsYUFBYSxFQUFFLG9CQUFvQixDQUFDLElBQUk7cUJBQ3pDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO1lBRU4sS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPO2dCQUMzQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztnQkFFMUYseUJBQXlCO2dCQUN6QixNQUFNLG9CQUFvQixHQUF3QixNQUFNLENBQUMsV0FBVyxLQUFLLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUNyRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQztnQkFFdkUsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQ2xGLE1BQU0sQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxJQUFJLENBQ2xGLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO29CQUN2QixHQUFHLENBQUMsVUFBVSxDQUFDO3dCQUNiLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJO3FCQUN2QyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQztZQUVOO2dCQUNFLE9BQU8sS0FBSyxDQUFDLENBQUMsMkNBQTJDO1FBQzdELENBQUM7SUFDSCxDQUFDO0lBR0QscUJBQXFCLENBQUMsR0FBbUMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUF1QjtRQUMxSCxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUdELHVCQUF1QixDQUFDLEdBQW1DO1FBQ3pELEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLElBQUk7Z0JBQ1gsSUFBSSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSTtnQkFDaEMsZ0JBQWdCLEVBQUUsS0FBSztnQkFDdkIsRUFBRSxFQUFFLEVBQUU7YUFDUDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCwwQkFBMEIsQ0FBQyxHQUFtQztRQUM1RCxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsYUFBYSxFQUFFLElBQUk7U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELCtCQUErQixDQUFDLEdBQW1DO1FBQ2pFLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixtQkFBbUIsRUFBRSxJQUFJO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCwwQkFBMEIsQ0FBQyxHQUFtQztRQUM1RCxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsYUFBYSxFQUFFLElBQUk7U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELG1DQUFtQyxDQUFDLEdBQW1DO1FBQ3JFLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixzQkFBc0IsRUFBRSxFQUFFO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxzQkFBc0IsQ0FBQyxHQUFtQyxFQUFFLEVBQUUsSUFBSSxFQUF3QjtRQUN4RixNQUFNLE9BQU8sR0FBOEMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUNsRixJQUFJLFVBQXdDLENBQUM7UUFDN0MsTUFBTSxjQUFjLEdBQUksT0FBZ0MsRUFBRSxjQUFjLENBQUM7UUFDekUsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixVQUFVLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDdkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sY0FBYyxHQUFJLE9BQThCLENBQUMsb0JBQW9CLENBQUM7WUFDNUUsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsVUFBVSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hILENBQUM7UUFDSCxDQUFDO1FBRUQsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3RDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM1QyxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBRXBELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsMkJBQTJCLENBQUMsR0FBbUMsRUFBRSxFQUFFLE9BQU8sRUFBNkI7UUFDckcsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUN2QyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFFeEMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxvQkFBb0IsQ0FBQyxHQUFtQyxFQUFFLE1BQTBCO1FBQ2xGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hJLE1BQU0sV0FBVyxHQUFnQjtZQUMvQixRQUFRLEVBQUUsa0JBQWtCLENBQUMsbUJBQW1CO1lBQ2hELGFBQWEsRUFBRTtnQkFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQzthQUNyRDtTQUNGLENBQUM7UUFFRixPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUE0QyxFQUFFLEVBQUU7WUFDMUUsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztZQUN2RywyQkFBMkIsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUM7WUFDOUQsMkJBQTJCLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDO1lBQzFFLDJCQUEyQixDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDaEQsMkJBQTJCLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFFcEUsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUMvRCxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxHQUFHO29CQUMxQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7b0JBQ25CLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtvQkFDN0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTO29CQUMxQixJQUFJO29CQUNKLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtpQkFDdEIsQ0FBQztnQkFDRixHQUFHLENBQUMsVUFBVSxDQUFDO29CQUNiLG1CQUFtQjtpQkFDcEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLDBCQUEwQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BGLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLHlCQUF5QixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELHdCQUF3QixDQUFDLEdBQW1DLEVBQUUsTUFBOEI7UUFDMUYsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztRQUN2RywyQkFBMkIsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUMzRCwyQkFBMkIsQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUMsZ0JBQWdCLENBQUM7UUFDMUUsMkJBQTJCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFcEUsTUFBTSxXQUFXLEdBQWdCO1lBQy9CLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUU7U0FDeEUsQ0FBQztRQUVGLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVuRyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUN2QixJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUU7b0JBQ2QsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQy9ELElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO3dCQUNsRCxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDN0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO3dCQUN6SCxPQUFPLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDOUMsR0FBRyxDQUFDLFVBQVUsQ0FBQzs0QkFDYixtQkFBbUI7eUJBQ3BCLENBQUMsQ0FBQztvQkFDTCxDQUFDO3lCQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQzt3QkFDcEcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsMEJBQTBCLEVBQUUsV0FBVyxDQUFDLENBQUM7b0JBQ3ZGLENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFO29CQUNWLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsd0NBQXdDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDdEcsQ0FBQzthQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLDhCQUE4QixNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUYsQ0FBQztJQUNILENBQUM7SUFHRCxvQ0FBb0MsQ0FBQyxHQUFtQyxFQUFFLE1BQXVDO1FBQy9HLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLHNCQUFzQixDQUFDO1FBQ3JFLElBQUksc0JBQXNCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0YsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO2dCQUNqRCxHQUFHLENBQUMsVUFBVSxDQUFDO29CQUNiLHNCQUFzQixFQUFFLHNCQUFzQixDQUFDLElBQUk7aUJBQ3BELENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztJQUdELG9CQUFvQixDQUFDLEdBQW1DLEVBQUUsTUFBMEI7UUFDbEYsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQztRQUNqRCxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsV0FBVyxLQUFLLFNBQVMsSUFBSSxZQUFZLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQztRQUUvRixJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sd0JBQXdCLEdBQUcsWUFBWSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUM7WUFFaEUsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO2dCQUM3QixpQkFBaUI7Z0JBQ2pCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2dCQUV4RixJQUFJLGtCQUFrQixLQUFLLElBQUksRUFBRSxDQUFDO29CQUNoQyxzQ0FBc0M7b0JBQ3RDLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFDN0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUNqSSxDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxJQUFJLEVBQzlFLFlBQVksQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUN0RixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGNBQWM7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxJQUFJLEVBQzdFLFlBQVksQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDL0csQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBR0QsNkJBQTZCLENBQUMsR0FBbUMsRUFBRSxNQUFpQztRQUNsRyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCLENBQUMsR0FBbUMsRUFBRSxLQUFhLEVBQUUsVUFBa0IsRUFBRSxRQUFnQixFQUFFLElBQVksRUFBRSxNQUFjLEVBQUUsSUFBa0IsRUFBRSxRQUFnQjtRQUNwTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3hHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxHQUFRO2dCQUNoQixVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDO2dCQUN0RSxTQUFTLEVBQUUsS0FBSztnQkFDaEIsZ0JBQWdCLEVBQUUsZ0JBQWdCO2FBQ25DLENBQUM7WUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztZQUNqQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUkseUJBQXlCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxLQUFhLEVBQUUsVUFBa0IsRUFBRSxRQUFnQixFQUFFLElBQVksRUFBRSxNQUFjLEVBQUUsSUFBa0IsRUFBRSxRQUFnQjtRQUM1SixNQUFNLFVBQVUsR0FBRyxNQUFNLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRixNQUFNLHNCQUFzQixHQUE4QixDQUFDO2dCQUN6RCxRQUFRO2dCQUNSLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUN6QixJQUFJO2dCQUNKLFdBQVcsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFO2FBQ25DLENBQUMsQ0FBQztRQUVILE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQztZQUMvQyxNQUFNLEVBQUUsSUFBSSxtQkFBbUIsQ0FBQztnQkFDOUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xDLEVBQUUsRUFBRSxRQUFRO2FBQ2IsQ0FBQztZQUNGLEVBQUUsRUFBRSxLQUFLO1lBQ1QsWUFBWSxFQUFFLFlBQVksQ0FBQyxPQUFPO1lBQ2xDLHNCQUFzQjtZQUN0QixrQkFBa0IsRUFBRSxJQUFJLEVBQUUscUNBQXFDO1lBQy9ELFVBQVUsRUFBRTtnQkFDVixRQUFRO2dCQUNSLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxVQUFVLEVBQUU7YUFDM0U7WUFDRCxnQkFBZ0IsRUFBRSxTQUFTO1NBQzVCLENBQUMsQ0FBQztRQUNILE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFdBQTZCLEVBQUUsaUJBQXlCLEVBQUUsSUFBYyxFQUFFLG1CQUEyQixFQUNoSSxRQUFnQixFQUFFLE9BQVksRUFBRSxxQkFBNkI7UUFDN0QsTUFBTSxLQUFLLEdBQUcsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUM3RCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNuQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDakUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDM0MsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDeEIsS0FBSyxDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBQ3BELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzsrR0EvcEJVLFdBQVc7bUhBQVgsV0FBVzs7QUEyRXRCO0lBREMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO3NEQVl6QjtBQUdEO0lBREMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7cURBbU5yRDtBQUdEO0lBREMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7c0RBeUN0RDtBQUdEO0lBREMsTUFBTSxDQUFDLDRCQUE0QixDQUFDO2lFQWFwQztBQUdEO0lBREMsTUFBTSxDQUFDLHVCQUF1QixDQUFDOzREQVMvQjtBQUdEO0lBREMsTUFBTSxDQUFDLDBCQUEwQixDQUFDOytEQXlDbEM7QUFHRDtJQURDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQzt3REFHM0I7QUFHRDtJQURDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQzswREFVN0I7QUFHRDtJQURDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQzs2REFLaEM7QUFHRDtJQURDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQztrRUFLckM7QUFHRDtJQURDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQzs2REFLaEM7QUFHRDtJQURDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQztzRUFLekM7QUFHRDtJQURDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQzt5REF1QjVCO0FBR0Q7SUFEQyxNQUFNLENBQUMseUJBQXlCLENBQUM7OERBVWpDO0FBR0Q7SUFEQyxNQUFNLENBQUMsa0JBQWtCLENBQUM7dURBb0MxQjtBQUlEO0lBREMsTUFBTSxDQUFDLHNCQUFzQixDQUFDOzJEQW9DOUI7QUFHRDtJQURDLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQzt1RUFXdkM7QUFHRDtJQURDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQzt1REEwQjFCO0FBR0Q7SUFEQyxNQUFNLENBQUMseUJBQXlCLENBQUM7Z0VBS2pDO0FBamxCYTtJQURiLFFBQVEsRUFBRTsrQ0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO2lDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7MENBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTs4Q0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO3lDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7c0NBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTttQ0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO3NDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7NENBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTtzQ0FHVjtBQXhFVSxXQUFXO0lBcEJ2QixLQUFLLENBQW1CO1FBQ3ZCLElBQUksRUFBRSxRQUFRO1FBQ2QsUUFBUSxFQUFFO1lBQ1IsZ0JBQWdCLEVBQUU7Z0JBQ2hCLFFBQVEsRUFBRSxJQUFJO2dCQUNkLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ3JCLG1CQUFtQixFQUFFLEVBQUU7Z0JBQ3ZCLElBQUksRUFBRSxFQUFFO2FBQ1Q7WUFDRCxPQUFPLEVBQUUsSUFBSTtZQUNiLE1BQU0sRUFBRSxJQUFJLGdCQUFnQixFQUFFO1lBQzlCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFlBQVksRUFBRSxJQUFJO1lBQ2xCLG1CQUFtQixFQUFFLElBQUk7WUFDekIsYUFBYSxFQUFFLElBQUk7WUFDbkIscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixtQkFBbUIsRUFBRSxFQUFFO1lBQ3ZCLHNCQUFzQixFQUFFLEVBQUU7U0FDM0I7S0FDRixDQUFDO0dBQ1csV0FBVyxDQWdxQnZCOzs0RkFocUJZLFdBQVc7a0JBckJ2QixVQUFVO3l2QkFnR1QsbUJBQW1CLE1BY25CLGtCQUFrQixNQXFObEIsbUJBQW1CLE1BMkNuQiw4QkFBOEIsTUFlOUIseUJBQXlCLE1BV3pCLDRCQUE0QixNQTJDNUIscUJBQXFCLE1BS3JCLHVCQUF1QixNQVl2QiwwQkFBMEIsTUFPMUIsK0JBQStCLE1BTy9CLDBCQUEwQixNQU8xQixtQ0FBbUMsTUFPbkMsc0JBQXNCLE1BeUJ0QiwyQkFBMkIsTUFZM0Isb0JBQW9CLE1BdUNwQix3QkFBd0IsTUFzQ3hCLG9DQUFvQyxNQWFwQyxvQkFBb0IsTUE0QnBCLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEVNUFRZLCBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbWVzc2FnZS1iYXIvbWVzc2FnZS1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBNZXNzYWdlSW5mbyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbWVzc2FnZS1iYXIvbWVzc2FnZS1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25FdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBERVZJQ0VfRVZFTlRfT1BUSU9OU19LRVkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMva2V5cy1jb25zdGFudHMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uIH0gZnJvbSAnLi4vLi4vZW51bXMvbG9jYWxpemF0aW9uLmVudW0nO1xuaW1wb3J0IHsgRHVyYXRpb25NZXNzYWdlQmFyIH0gZnJvbSAnLi4vLi4vZW51bXMvbWVzc2FnZS1iYXItZHVyYXRpb24uZW51bSc7XG5pbXBvcnQgeyBHZW5lcmF0ZWRSZWNlaXB0SW5mbyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZ2VuZXJhdGVkLXJlY2VpcHQtaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGlja2V0SWRlbnRpZmllciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGlja2V0LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBBcHBNb2R1bGUsIEF1ZGl0Q2xvdWRTZXJ2aWNlUHJveHksIEF1ZGl0U2VjdGlvbnNEdG9IdHRwUmVzcG9uc2VEYXRhLCBGaWxlQ2xvdWRTZXJ2aWNlUHJveHksXG4gIEZpbGVSZXNwb25zZSwgU2VuZEVtYWlsUmVxdWVzdER0bywgU3ViTW9kdWxlLCBUZW1wbGF0ZVR5cGVcbn0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHtcbiAgQWNjZXNzUHJvZmlsZVJwY1NlcnZpY2VQcm94eSwgQWNjb3VudFJwY1NlcnZpY2VQcm94eSwgQ2hhc2VyVGlja2V0UnBjU2VydmljZVByb3h5LCBDb3Vwb25TZWN0aW9uc0R0b0h0dHBSZXNwb25zZURhdGEsXG4gIENyZWRpdENhcmRScGNTZXJ2aWNlUHJveHksIEV2b3VjaGVyUnBjU2VydmljZVByb3h5LCBFVm91Y2hlclNlY3Rpb25zRHRvSHR0cFJlc3BvbnNlRGF0YSwgRmlsZVJwY1NlcnZpY2VQcm94eSwgR2VuZXJhdGVGaWxlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLFxuICBHdWVzdFJwY1NlcnZpY2VQcm94eSwgTG9jYXRlVGlja2V0RHRvLCBNb250aGx5UnBjU2VydmljZVByb3h5LCBNb250aGx5U2VjdGlvbnNEdG9IdHRwUmVzcG9uc2VEYXRhLCBOb3RpZmljYXRpb25FdmVudFR5cGUsXG4gIFBhcmtlclRpY2tldFR5cGUsIFBheW1lbnRScGNTZXJ2aWNlUHJveHksIFBheW1lbnRzRG9jdW1lbnRUYWJsZURhdGFEdG8sIFBheW1lbnRTZWN0aW9uc0R0bywgUmVjZWlwdEVudGl0eVBhcmFtcyxcbiAgU2VhcmNoRmllbGRTZWxlY3RvciwgU3BlY2lhbFRyYW5zaWVudFJwY1NlcnZpY2VQcm94eSwgU3RpY2tlclNlY3Rpb25zRHRvSHR0cFJlc3BvbnNlRGF0YSwgVHJhbnNpZW50UnBjU2VydmljZVByb3h5LCBUcmFuc2llbnRTZWN0aW9uc0R0byxcbiAgVHJhbnNpZW50U2hhbGxvd0R0bywgVHlwZUNhc3REZXZpY2VFdmVudFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgRmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2lnbmFsUiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NpZ25hbHIuc2VydmljZSc7XG5pbXBvcnQgeyBibG9iVG9CYXNlNjQsIEZpbGVHZW5lcmF0ZU1ldGhvZCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbGUudXRpbCc7XG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi8uLi91dGlscy9sYW5nLnV0aWwnO1xuaW1wb3J0IHsgZ2V0UGFya2VyVHlwZXNUZXh0IH0gZnJvbSAnLi4vLi4vdXRpbHMvcGFya2VyLXR5cGVzLXRleHQudXRpbCc7XG5pbXBvcnQgeyBTZW5kRW1haWxGcm9tRW50aXR5QWN0aW9uIH0gZnJvbSAnLi4vZW1haWwtc2VydmVyL2VtYWlsLXNlcnZlci5hY3Rpb25zJztcbmltcG9ydCB7IEZhY2lsaXR5U3RhdGUgfSBmcm9tICcuLi9mYWNpbGl0eS9mYWNpbGl0eS5zdGF0ZSc7XG5pbXBvcnQgeyBQYXJrTWFuYWdlclN0YXRlIH0gZnJvbSAnLi4vcGFyay1tYW5hZ2VyL3BhcmstbWFuYWdlci5zdGF0ZSc7XG5pbXBvcnQgeyBTaWRlbmF2U3RhdGUgfSBmcm9tICcuLi9zaWRlbmF2L3NpZGVuYXYuc3RhdGUnO1xuaW1wb3J0IHsgUGFya2VyU2VhcmNoVGVybSB9IGZyb20gJy4vcGFya2VyLXNlYXJjaC10ZXJtJztcbmltcG9ydCB7XG4gIENsZWFyTG9jYXRlZFRpY2tldEFjdGlvbiwgQ2xlYXJMb2NhdGVUaWNrZXRTZWFyY2hBY3Rpb24sIENsZWFyUGFya2VyQWN0aW9uLCBDbGVhclNlYXJjaFJlc3VsdHNBY3Rpb24sXG4gIENsZWFyU2VhcmNoVGVybUFjdGlvbiwgQ2xlYXJTcGVjaWFsVHJhbnNpZW50VGFibGVzQWN0aW9uLCBHZXRTcGVjaWFsVHJhbnNpZW50VGFibGVzQWN0aW9uLCBMb2FkTG9jYXRlZFRpY2tldEFjdGlvbixcbiAgTG9hZExvY2F0ZVRpY2tldFNlYXJjaEFjdGlvbiwgTG9hZFBhcmtlckFjdGlvbiwgTG9hZFBhcmtlcnNBY3Rpb24sIExvYWRUaWNrZXROdW1QYXJrZXJzQWN0aW9uLCBQcmludFJlY2VpcHRBY3Rpb24sIFJlY2VpcHRHZW5lcmF0ZWRBY3Rpb24sXG4gIFJlbG9hZFBhcmtlckFjdGlvbiwgU2V0U2VhcmNoVGVybUFjdGlvbiwgU2V0VGlja2V0SWRlbnRpZmllckFjdGlvbiwgVXBkYXRlRG9jdW1lbnRBY3Rpb24sIFVwZGF0ZVRpY2tldFBsYXRlSWRBY3Rpb25cbn0gZnJvbSAnLi9wYXJrZXIuYWN0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFya2VyU3RhdGVNb2RlbCB7XG4gIHRpY2tldElkZW50aWZpZXI6IFRpY2tldElkZW50aWZpZXI7XG4gIGRldGFpbHM6IGFueTtcbiAgc2VhcmNoOiBQYXJrZXJTZWFyY2hUZXJtO1xuICBzZWFyY2hSZXN1bHRzOiBhbnlbXTtcbiAgcGFya2VyUGFyYW1zOiBMb2FkUGFya2VyQWN0aW9uO1xuICBsb2NhdGVTZWFyY2hSZXN1bHRzOiBUcmFuc2llbnRTaGFsbG93RHRvW107XG4gIGxvY2F0ZWRUaWNrZXQ6IExvY2F0ZVRpY2tldER0bztcbiAgcGFya2VyQnJlYWRjcnVtYlZhbHVlOiBzdHJpbmc7XG4gIHJlcXVlc3RlZFJlY2VpcHRNYXA6IFN0cmluZ01hcDxHZW5lcmF0ZWRSZWNlaXB0SW5mbz4sXG4gIHNwZWNpYWxUcmFuc2llbnRUYWJsZXM6IHN0cmluZ1tdO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5AU3RhdGU8UGFya2VyU3RhdGVNb2RlbD4oe1xuICBuYW1lOiAncGFya2VyJyxcbiAgZGVmYXVsdHM6IHtcbiAgICB0aWNrZXRJZGVudGlmaWVyOiB7XG4gICAgICB0aWNrZXRJZDogbnVsbCxcbiAgICAgIGVudGl0eURpc3BsYXlOYW1lOiAnJyxcbiAgICAgIGVudGl0eVR5cGVUcmFuc2xhdGU6ICcnLFxuICAgICAgdGFnczogW10sXG4gICAgfSxcbiAgICBkZXRhaWxzOiBudWxsLFxuICAgIHNlYXJjaDogbmV3IFBhcmtlclNlYXJjaFRlcm0oKSxcbiAgICBzZWFyY2hSZXN1bHRzOiBudWxsLFxuICAgIHBhcmtlclBhcmFtczogbnVsbCxcbiAgICBsb2NhdGVTZWFyY2hSZXN1bHRzOiBudWxsLFxuICAgIGxvY2F0ZWRUaWNrZXQ6IG51bGwsXG4gICAgcGFya2VyQnJlYWRjcnVtYlZhbHVlOiBudWxsLFxuICAgIHJlcXVlc3RlZFJlY2VpcHRNYXA6IHt9LFxuICAgIHNwZWNpYWxUcmFuc2llbnRUYWJsZXM6IFtdLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBQYXJrZXJTdGF0ZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBzaWduYWxSOiBTaWduYWxSLFxuICAgIHByaXZhdGUgZmlsZVNlcnZpY2U6IEZpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZUJhclNlcnZpY2U6IE1lc3NhZ2VCYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFzZXJUaWNrZXRTZXJ2aWNlUHJveHk6IENoYXNlclRpY2tldFJwY1NlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIHBheW1lbnRScGNTZXJ2aWNlUHJveHk6IFBheW1lbnRScGNTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBtb250aGx5UnBjU2VydmljZVByb3h5OiBNb250aGx5UnBjU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgdHJhbnNpZW50UnBjU2VydmljZVByb3h5OiBUcmFuc2llbnRScGNTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBndWVzdFJwY1NlcnZpY2VQcm94eTogR3Vlc3RScGNTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBldm91Y2hlclJwY1NlcnZpY2VQcm94eTogRXZvdWNoZXJScGNTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBjcmVkaXRDYXJkUnBjU2VydmljZVByb3h5OiBDcmVkaXRDYXJkUnBjU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgYWNjZXNzUHJvZmlsZVJwY1NlcnZpY2VQcm94eTogQWNjZXNzUHJvZmlsZVJwY1NlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGF1ZGl0Q2xvdWRTZXJ2aWNlUHJveHk6IEF1ZGl0Q2xvdWRTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBmaWxlUnBjU2VydmljZVByb3h5OiBGaWxlUnBjU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgZmlsZUNsb3VkU2VydmljZVByb3h5OiBGaWxlQ2xvdWRTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25FdmVudFNlcnZpY2U6IE5vdGlmaWNhdGlvbkV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGFjY291bnRzUnBjU2VydmljZVByb3h5OiBBY2NvdW50UnBjU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgc3BlY2lhbFRyYW5zaWVudFJwY1NlcnZpY2VQcm94eTogU3BlY2lhbFRyYW5zaWVudFJwY1NlcnZpY2VQcm94eSkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzcGVjaWFsVHJhbnNpZW50VGFibGVzKHN0YXRlOiBQYXJrZXJTdGF0ZU1vZGVsKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBzdGF0ZS5zcGVjaWFsVHJhbnNpZW50VGFibGVzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0aWNrZXRJZChzdGF0ZTogUGFya2VyU3RhdGVNb2RlbCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHN0YXRlLnRpY2tldElkZW50aWZpZXIudGlja2V0SWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGVudGl0eURpc3BsYXlOYW1lKHN0YXRlOiBQYXJrZXJTdGF0ZU1vZGVsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3RhdGUudGlja2V0SWRlbnRpZmllci5lbnRpdHlEaXNwbGF5TmFtZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgcGFya2VyQnJlYWRjcnVtYlZhbHVlKHN0YXRlOiBQYXJrZXJTdGF0ZU1vZGVsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3RhdGUucGFya2VyQnJlYWRjcnVtYlZhbHVlO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0aWNrZXRJZGVudGlmaWVyKHN0YXRlOiBQYXJrZXJTdGF0ZU1vZGVsKTogVGlja2V0SWRlbnRpZmllciB7XG4gICAgcmV0dXJuIHN0YXRlLnRpY2tldElkZW50aWZpZXI7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHBhcmtlckRldGFpbHMoc3RhdGU6IFBhcmtlclN0YXRlTW9kZWwpOiBhbnkge1xuICAgIHJldHVybiBzdGF0ZS5kZXRhaWxzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWFyY2hUZXJtKHN0YXRlOiBQYXJrZXJTdGF0ZU1vZGVsKTogUGFya2VyU2VhcmNoVGVybSB7XG4gICAgcmV0dXJuIHN0YXRlLnNlYXJjaDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VhcmNoUmVzdWx0cyhzdGF0ZTogUGFya2VyU3RhdGVNb2RlbCk6IGFueVtdIHtcbiAgICByZXR1cm4gc3RhdGUuc2VhcmNoUmVzdWx0cztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgbG9jYXRlU2VhcmNoUmVzdWx0cyhzdGF0ZTogUGFya2VyU3RhdGVNb2RlbCk6IFRyYW5zaWVudFNoYWxsb3dEdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLmxvY2F0ZVNlYXJjaFJlc3VsdHM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGxvY2F0ZWRUaWNrZXQoc3RhdGU6IFBhcmtlclN0YXRlTW9kZWwpOiBMb2NhdGVUaWNrZXREdG8ge1xuICAgIHJldHVybiBzdGF0ZS5sb2NhdGVkVGlja2V0O1xuICB9XG5cbiAgQEFjdGlvbihDbGVhclBhcmtlckFjdGlvbilcbiAgb25DbGVhclBhcmtlckFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrZXJTdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHRpY2tldElkZW50aWZpZXI6IHtcbiAgICAgICAgdGlja2V0SWQ6IG51bGwsXG4gICAgICAgIGVudGl0eURpc3BsYXlOYW1lOiAnJyxcbiAgICAgICAgZW50aXR5VHlwZVRyYW5zbGF0ZTogJycsXG4gICAgICAgIHRhZ3M6IFtdLFxuICAgICAgfSxcbiAgICAgIGRldGFpbHM6IG51bGwsXG4gICAgICBwYXJrZXJCcmVhZGNydW1iVmFsdWU6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRQYXJrZXJBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkUGFya2VyQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRQYXJrZXJBY3Rpb24pIHtcbiAgICBjb25zdCBndWlkID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmd1aWQpO1xuXG4gICAgY29uc3QgcGFya2VyRW50aXR5U3RhdGUgPSBjdHguZ2V0U3RhdGUoKTtcbiAgICBwYXJrZXJFbnRpdHlTdGF0ZS5kZXRhaWxzID0gbnVsbDtcbiAgICBwYXJrZXJFbnRpdHlTdGF0ZS5zZWFyY2ggPSB7IHR5cGU6IGFjdGlvbi50eXBlLCB2YWx1ZTogYWN0aW9uLnNlYXJjaFZhbHVlLCBpc0x1Y2t5TFBSU2VhcmNoOiBhY3Rpb24uaXNMdWNreUxQUlNlYXJjaCwgdG46IGFjdGlvbi50YWJsZU5hbWUgfTtcbiAgICBwYXJrZXJFbnRpdHlTdGF0ZS5wYXJrZXJQYXJhbXMgPSBhY3Rpb247XG4gICAgY3R4LnBhdGNoU3RhdGUocGFya2VyRW50aXR5U3RhdGUpO1xuXG4gICAgY29uc3QgYXBwTW9kdWxlOiBBcHBNb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNpZGVuYXZTdGF0ZS5hcHBNb2R1bGUpO1xuICAgIGNvbnN0IHN1Yk1vZHVsZTogU3ViTW9kdWxlID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTaWRlbmF2U3RhdGUuc3ViTW9kdWxlKTtcblxuICAgIGNvbnN0IHRpY2tldCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoTG9jYWxpemF0aW9uLnRpY2tldCk7XG4gICAgY29uc3QgZVZvdWNoZXIgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KExvY2FsaXphdGlvbi5lX3ZvdWNoZXIpO1xuICAgIGNvbnN0IGd1ZXN0ID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChMb2NhbGl6YXRpb24uZ3Vlc3QpO1xuICAgIGNvbnN0IGhvdGVsR3Vlc3QgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KExvY2FsaXphdGlvbi5ob3RlbF9ndWVzdCk7XG4gICAgY29uc3QgbW9udGhseSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoTG9jYWxpemF0aW9uLm1vbnRobHkpO1xuICAgIGNvbnN0IGRvY3VtZW50ID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChMb2NhbGl6YXRpb24uZG9jdW1lbnQpO1xuICAgIGNvbnN0IGNyZWRpdENhcmQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KExvY2FsaXphdGlvbi5jcmVkaXRfY2FyZCk7XG4gICAgY29uc3QgY291cG9uID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChMb2NhbGl6YXRpb24uY291cG9uKTtcbiAgICBjb25zdCBzdGlja2VyID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChMb2NhbGl6YXRpb24uc3RpY2tlcik7XG4gICAgY29uc3QgYXVkaXQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KExvY2FsaXphdGlvbi5hdWRpdCk7XG4gICAgY29uc3QgYWNjb3VudCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoTG9jYWxpemF0aW9uLmFjY291bnQpO1xuICAgIGNvbnN0IHN1YkFjY291bnQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KExvY2FsaXphdGlvbi5zdWJfYWNjb3VudCk7XG4gICAgY29uc3QgYWNjZXNzUHJvZmlsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoTG9jYWxpemF0aW9uLmFjY2Vzc19wcm9maWxlKTtcblxuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgUGFya2VyVGlja2V0VHlwZS5DcmVkaXRDYXJkOlxuICAgICAgICBjb25zdCBjcmVkaXRDYXJkU2VjdGlvbnMkID0gdGhpcy5jcmVkaXRDYXJkUnBjU2VydmljZVByb3h5LmNyZWRpdENhcmREZWVwU2VhcmNoKGd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi50aWNrZXRJZCk7XG4gICAgICAgIHJldHVybiBjcmVkaXRDYXJkU2VjdGlvbnMkLnBpcGUodGFwKGNyZWRpdENhcmRTZWN0aW9uID0+IHtcbiAgICAgICAgICBwYXJrZXJFbnRpdHlTdGF0ZS5kZXRhaWxzID0gY3JlZGl0Q2FyZFNlY3Rpb24uZGF0YTtcbiAgICAgICAgICBwYXJrZXJFbnRpdHlTdGF0ZS5wYXJrZXJCcmVhZGNydW1iVmFsdWUgPSBgJHtjcmVkaXRDYXJkfSAtICR7Y3JlZGl0Q2FyZFNlY3Rpb24uZGF0YS5jcmVkaXRDYXJkRGV0YWlscz8uY3JlZGl0Q2FyZH1gO1xuICAgICAgICAgIHBhcmtlckVudGl0eVN0YXRlLnRpY2tldElkZW50aWZpZXIudGlja2V0SWQgPSBhY3Rpb24udGlja2V0SWQ7XG4gICAgICAgICAgY3R4LnBhdGNoU3RhdGUocGFya2VyRW50aXR5U3RhdGUpO1xuICAgICAgICB9KSk7XG4gICAgICBjYXNlIFBhcmtlclRpY2tldFR5cGUuVHJhbnNpZW50OlxuICAgICAgICBjb25zdCB0cmFuc2llbnRTZWN0aW9ucyQgPSB0aGlzLnRyYW5zaWVudFJwY1NlcnZpY2VQcm94eS50cmFuc2luZXREZWVwU2VhcmNoKGd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi50aWNrZXRJZCk7XG4gICAgICAgIHJldHVybiB0cmFuc2llbnRTZWN0aW9ucyQucGlwZSh0YXAodHJhbnNpZW50U2VjdGlvbnMgPT4ge1xuICAgICAgICAgIGNvbnN0IHRyYW5zaWVudE5hbWUgPSB0cmFuc2llbnRTZWN0aW9ucy5kYXRhLnRpY2tldERldGFpbHMudGlja2V0TnVtID8gYCMke3RyYW5zaWVudFNlY3Rpb25zLmRhdGEudGlja2V0RGV0YWlscy50aWNrZXROdW19YCA6ICcnO1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFya2VyRW50aXR5U3RhdGUsIHRoaXMuZ2V0UGFya2VyRW50aXR5U3RhdGUocGFya2VyRW50aXR5U3RhdGUsIHRyYW5zaWVudE5hbWUsIHRyYW5zaWVudFNlY3Rpb25zLmRhdGEudGlja2V0RGV0YWlscy50YWdzLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudChnZXRQYXJrZXJUeXBlc1RleHQoUGFya2VyVGlja2V0VHlwZS5UcmFuc2llbnQpKSwgdHJhbnNpZW50U2VjdGlvbnMuZGF0YS50aWNrZXREZXRhaWxzLmlkLFxuICAgICAgICAgICAgdHJhbnNpZW50U2VjdGlvbnMuZGF0YSwgYCR7dGlja2V0fSAtICR7dHJhbnNpZW50U2VjdGlvbnMuZGF0YS50aWNrZXREZXRhaWxzLnRpY2tldE51bX1gKSk7XG5cbiAgICAgICAgICBjdHgucGF0Y2hTdGF0ZShwYXJrZXJFbnRpdHlTdGF0ZSk7XG4gICAgICAgIH0pKTtcbiAgICAgIGNhc2UgUGFya2VyVGlja2V0VHlwZS5FVm91Y2hlcjpcbiAgICAgICAgbGV0IGV2b3VjaGVyU2VjdGlvbnMkOiBPYnNlcnZhYmxlPEVWb3VjaGVyU2VjdGlvbnNEdG9IdHRwUmVzcG9uc2VEYXRhPjtcbiAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgY2FzZSBhcHBNb2R1bGUgPT09IEFwcE1vZHVsZS5DYzpcbiAgICAgICAgICAgIGV2b3VjaGVyU2VjdGlvbnMkID0gdGhpcy5ldm91Y2hlclJwY1NlcnZpY2VQcm94eS5jY0VWb3VjaGVyRGVlcFNlYXJjaChndWlkLCBhY3Rpb24ucGFya0lkLCBhY3Rpb24udGlja2V0SWQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBhcHBNb2R1bGUgPT09IEFwcE1vZHVsZS5HdWVzdHMgJiYgc3ViTW9kdWxlID09PSBTdWJNb2R1bGUuRVZvdWNoZXI6XG4gICAgICAgICAgICBldm91Y2hlclNlY3Rpb25zJCA9IHRoaXMuZXZvdWNoZXJScGNTZXJ2aWNlUHJveHkuZVZvdWNoZXJEZWVwU2VhcmNoKGd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi50aWNrZXRJZCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJ1bnN1cHBvcnRlZCBhcHBtb2R1bGUgZm9yIG1vbnRobGllcyBkZWVwIHNlYXJjaFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBldm91Y2hlclNlY3Rpb25zJC5waXBlKHRhcChldm91Y2hlclNlY3Rpb25zID0+IHtcbiAgICAgICAgICBpZiAoZXZvdWNoZXJTZWN0aW9ucy5kYXRhLnRpY2tldERldGFpbHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zaWVudE5hbWUgPSBgIyR7ZXZvdWNoZXJTZWN0aW9ucy5kYXRhLnRyYW5zaWVudFNlY3Rpb25zLnRpY2tldERldGFpbHM/LnRpY2tldE51bX1gO1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJrZXJFbnRpdHlTdGF0ZSwgdGhpcy5nZXRQYXJrZXJFbnRpdHlTdGF0ZShwYXJrZXJFbnRpdHlTdGF0ZSwgdHJhbnNpZW50TmFtZSxcbiAgICAgICAgICAgICAgZXZvdWNoZXJTZWN0aW9ucy5kYXRhLnRyYW5zaWVudFNlY3Rpb25zLnRpY2tldERldGFpbHM/LnRhZ3MsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZ2V0UGFya2VyVHlwZXNUZXh0KFBhcmtlclRpY2tldFR5cGUuVHJhbnNpZW50KSksXG4gICAgICAgICAgICAgIGV2b3VjaGVyU2VjdGlvbnMuZGF0YS50cmFuc2llbnRTZWN0aW9ucy50aWNrZXREZXRhaWxzPy5pZCwgZXZvdWNoZXJTZWN0aW9ucy5kYXRhLnRyYW5zaWVudFNlY3Rpb25zLCBgJHt0aWNrZXR9IC0gJHt0cmFuc2llbnROYW1lfWApKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZVZvdWNoZXJOYW1lID0gZXZvdWNoZXJTZWN0aW9ucy5kYXRhLnJlc2VydmF0aW9uRGV0YWlscz8uZ3Vlc3ROYW1lO1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJrZXJFbnRpdHlTdGF0ZSwgdGhpcy5nZXRQYXJrZXJFbnRpdHlTdGF0ZShwYXJrZXJFbnRpdHlTdGF0ZSwgZVZvdWNoZXJOYW1lLFxuICAgICAgICAgICAgICBbZXZvdWNoZXJTZWN0aW9ucy5kYXRhLnJlc2VydmF0aW9uRGV0YWlscz8uZXZvdWNoZXJUYWddLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGdldFBhcmtlclR5cGVzVGV4dChQYXJrZXJUaWNrZXRUeXBlLkVWb3VjaGVyKSksXG4gICAgICAgICAgICAgIGV2b3VjaGVyU2VjdGlvbnMuZGF0YS5yZXNlcnZhdGlvbkRldGFpbHM/LmlkLCBldm91Y2hlclNlY3Rpb25zLmRhdGEsIGAke2VWb3VjaGVyfSAtICR7ZVZvdWNoZXJOYW1lfWApKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY3R4LnBhdGNoU3RhdGUocGFya2VyRW50aXR5U3RhdGUpO1xuICAgICAgICB9KSk7XG4gICAgICBjYXNlIFBhcmtlclRpY2tldFR5cGUuR3Vlc3Q6XG4gICAgICBjYXNlIFBhcmtlclRpY2tldFR5cGUuSG90ZWxHdWVzdDpcbiAgICAgICAgbGV0IGd1ZXN0U2VjdGlvbnMkOiB0eXBlb2YgdGhpcy5ndWVzdFJwY1NlcnZpY2VQcm94eS5jY0d1ZXN0RGVlcFNlYXJjaDtcblxuICAgICAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICBjYXNlIGFwcE1vZHVsZSA9PT0gQXBwTW9kdWxlLkNjOlxuICAgICAgICAgICAgZ3Vlc3RTZWN0aW9ucyQgPSB0aGlzLmd1ZXN0UnBjU2VydmljZVByb3h5LmNjR3Vlc3REZWVwU2VhcmNoLmJpbmQodGhpcy5ndWVzdFJwY1NlcnZpY2VQcm94eSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIGFwcE1vZHVsZSA9PT0gQXBwTW9kdWxlLkd1ZXN0cyAmJiBzdWJNb2R1bGUgPT09IFN1Yk1vZHVsZS5HdWVzdHM6XG4gICAgICAgICAgICBndWVzdFNlY3Rpb25zJCA9IHRoaXMuZ3Vlc3RScGNTZXJ2aWNlUHJveHkuZ3Vlc3REZWVwU2VhcmNoLmJpbmQodGhpcy5ndWVzdFJwY1NlcnZpY2VQcm94eSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIGFwcE1vZHVsZSA9PT0gQXBwTW9kdWxlLkd1ZXN0cyAmJiBzdWJNb2R1bGUgPT09IFN1Yk1vZHVsZS5Ib3RlbEd1ZXN0czpcbiAgICAgICAgICAgIGd1ZXN0U2VjdGlvbnMkID0gdGhpcy5ndWVzdFJwY1NlcnZpY2VQcm94eS5ob3RlbEd1ZXN0R3Vlc3REZWVwU2VhcmNoLmJpbmQodGhpcy5ndWVzdFJwY1NlcnZpY2VQcm94eSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJ1bnN1cHBvcnRlZCBhcHBtb2R1bGUgZm9yIGd1ZXN0cyBkZWVwIHNlYXJjaFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBndWVzdFNlY3Rpb25zJChndWlkLCBhY3Rpb24ucGFya0lkLCBhY3Rpb24udGlja2V0SWQpLnBpcGUodGFwKGd1ZXN0U2VjdGlvbnMgPT4ge1xuICAgICAgICAgIGlmIChndWVzdFNlY3Rpb25zLmRhdGEuaG90ZWxHdWVzdERldGFpbHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGd1ZXN0TmFtZSA9IGd1ZXN0U2VjdGlvbnMuZGF0YS5ob3RlbEd1ZXN0RGV0YWlscy5ndWVzdE5hbWUgPT09IExvY2FsaXphdGlvbi5jYXJkX2hvbGRlciA/XG4gICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoTG9jYWxpemF0aW9uLmNhcmRfaG9sZGVyKSA6IGd1ZXN0U2VjdGlvbnMuZGF0YS5ob3RlbEd1ZXN0RGV0YWlscy5ndWVzdE5hbWU7XG5cbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFya2VyRW50aXR5U3RhdGUsIHRoaXMuZ2V0UGFya2VyRW50aXR5U3RhdGUocGFya2VyRW50aXR5U3RhdGUsIGd1ZXN0TmFtZSwgZ3Vlc3RTZWN0aW9ucy5kYXRhLmhvdGVsR3Vlc3REZXRhaWxzLnRhZ3MsXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZ2V0UGFya2VyVHlwZXNUZXh0KFBhcmtlclRpY2tldFR5cGUuSG90ZWxHdWVzdCkpLCBndWVzdFNlY3Rpb25zLmRhdGEuaG90ZWxHdWVzdERldGFpbHMuaWQsXG4gICAgICAgICAgICAgIGd1ZXN0U2VjdGlvbnMuZGF0YSwgYCR7aG90ZWxHdWVzdH0gLSAke2d1ZXN0TmFtZX1gKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChndWVzdFNlY3Rpb25zLmRhdGEudHJhbnNpZW50U2VjdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zaWVudE5hbWUgPSBgIyR7Z3Vlc3RTZWN0aW9ucy5kYXRhLnRyYW5zaWVudFNlY3Rpb25zLnRpY2tldERldGFpbHM/LnRpY2tldE51bX1gO1xuXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcmtlckVudGl0eVN0YXRlLCB0aGlzLmdldFBhcmtlckVudGl0eVN0YXRlKHBhcmtlckVudGl0eVN0YXRlLCB0cmFuc2llbnROYW1lLCBndWVzdFNlY3Rpb25zLmRhdGEudHJhbnNpZW50U2VjdGlvbnMudGlja2V0RGV0YWlscz8udGFncyxcbiAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudChnZXRQYXJrZXJUeXBlc1RleHQoUGFya2VyVGlja2V0VHlwZS5UcmFuc2llbnQpKSwgZ3Vlc3RTZWN0aW9ucy5kYXRhLnRyYW5zaWVudFNlY3Rpb25zLnRpY2tldERldGFpbHM/LmlkLFxuICAgICAgICAgICAgICBndWVzdFNlY3Rpb25zLmRhdGEudHJhbnNpZW50U2VjdGlvbnMsIGAke3RpY2tldH0gLSAke3RyYW5zaWVudE5hbWV9YCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBndWVzdE5hbWUgPSBndWVzdFNlY3Rpb25zLmRhdGEuZ3Vlc3REZXRhaWxzPy5ndWVzdE5hbWUgPT09IExvY2FsaXphdGlvbi5jYXJkX2hvbGRlciA/XG4gICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoTG9jYWxpemF0aW9uLmNhcmRfaG9sZGVyKSA6IGd1ZXN0U2VjdGlvbnMuZGF0YS5ndWVzdERldGFpbHM/Lmd1ZXN0TmFtZTtcblxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJrZXJFbnRpdHlTdGF0ZSwgdGhpcy5nZXRQYXJrZXJFbnRpdHlTdGF0ZShwYXJrZXJFbnRpdHlTdGF0ZSwgZ3Vlc3ROYW1lLCBndWVzdFNlY3Rpb25zLmRhdGEuZ3Vlc3REZXRhaWxzPy50YWdzLFxuICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGdldFBhcmtlclR5cGVzVGV4dChQYXJrZXJUaWNrZXRUeXBlLkd1ZXN0KSksIGd1ZXN0U2VjdGlvbnMuZGF0YS5ndWVzdERldGFpbHMuaWQsXG4gICAgICAgICAgICAgIGd1ZXN0U2VjdGlvbnMuZGF0YSwgYCR7Z3Vlc3R9IC0gJHtndWVzdE5hbWV9YCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjdHgucGF0Y2hTdGF0ZShwYXJrZXJFbnRpdHlTdGF0ZSk7XG4gICAgICAgIH0pKTtcbiAgICAgIGNhc2UgUGFya2VyVGlja2V0VHlwZS5Nb250aGx5OlxuICAgICAgICBsZXQgbW9udGhseVNlY3Rpb25zJDogT2JzZXJ2YWJsZTxNb250aGx5U2VjdGlvbnNEdG9IdHRwUmVzcG9uc2VEYXRhPjtcblxuICAgICAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICBjYXNlIGFwcE1vZHVsZSA9PT0gQXBwTW9kdWxlLkNjOlxuICAgICAgICAgICAgbW9udGhseVNlY3Rpb25zJCA9IHRoaXMubW9udGhseVJwY1NlcnZpY2VQcm94eS5jY01vbnRobHlEZWVwU2VhcmNoKGd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi50aWNrZXRJZCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIGFwcE1vZHVsZSA9PT0gQXBwTW9kdWxlLk1vbnRobGllczpcbiAgICAgICAgICAgIG1vbnRobHlTZWN0aW9ucyQgPSB0aGlzLm1vbnRobHlScGNTZXJ2aWNlUHJveHkubW9udGhseURlZXBTZWFyY2goZ3VpZCwgYWN0aW9uLnBhcmtJZCwgYWN0aW9uLnRpY2tldElkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcInVuc3VwcG9ydGVkIGFwcG1vZHVsZSBmb3IgbW9udGhsaWVzIGRlZXAgc2VhcmNoXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1vbnRobHlTZWN0aW9ucyQucGlwZSh0YXAobW9udGhseVNlY3Rpb25zID0+IHtcbiAgICAgICAgICBjb25zdCBtb250aGx5TmFtZSA9IGAke21vbnRobHlTZWN0aW9ucy5kYXRhLm1vbnRobHlEZXRhaWxzPy5mTmFtZX0gJHttb250aGx5U2VjdGlvbnMuZGF0YS5tb250aGx5RGV0YWlscz8ubE5hbWV9YDtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcmtlckVudGl0eVN0YXRlLCB0aGlzLmdldFBhcmtlckVudGl0eVN0YXRlKHBhcmtlckVudGl0eVN0YXRlLCBtb250aGx5TmFtZSwgbW9udGhseVNlY3Rpb25zLmRhdGEubW9udGhseURldGFpbHMudGFncyxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZ2V0UGFya2VyVHlwZXNUZXh0KFBhcmtlclRpY2tldFR5cGUuTW9udGhseSkpLCBtb250aGx5U2VjdGlvbnMuZGF0YS5tb250aGx5RGV0YWlscy5pZCxcbiAgICAgICAgICAgIG1vbnRobHlTZWN0aW9ucy5kYXRhLCBgJHttb250aGx5fSAtICR7bW9udGhseU5hbWV9YCkpO1xuXG4gICAgICAgICAgY3R4LnBhdGNoU3RhdGUocGFya2VyRW50aXR5U3RhdGUpO1xuICAgICAgICB9KSk7XG4gICAgICBjYXNlIFBhcmtlclRpY2tldFR5cGUuUGF5bWVudDpcbiAgICAgICAgY29uc3QgcGF5bWVudFNlY3Rpb25zJCA9IHRoaXMucGF5bWVudFJwY1NlcnZpY2VQcm94eS5wYXltZW50RGVlcFNlYXJjaChndWlkLCBhY3Rpb24ucGFya0lkLCBhY3Rpb24udGlja2V0SWQpO1xuICAgICAgICByZXR1cm4gcGF5bWVudFNlY3Rpb25zJC5waXBlKHRhcChwYXltZW50U2VjdGlvbnMgPT4ge1xuICAgICAgICAgIGNvbnN0IHBheW1lbnROYW1lID0gYCMke3BheW1lbnRTZWN0aW9ucy5kYXRhLnBheW1lbnRzRG9jdW1lbnREYXRhLmRvY051bX1gO1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFya2VyRW50aXR5U3RhdGUsIHRoaXMuZ2V0UGFya2VyRW50aXR5U3RhdGUocGFya2VyRW50aXR5U3RhdGUsIHBheW1lbnROYW1lLCBudWxsLFxuICAgICAgICAgICAgZG9jdW1lbnQsIHBheW1lbnRTZWN0aW9ucy5kYXRhLnBheW1lbnRzRG9jdW1lbnREYXRhLmlkLCBwYXltZW50U2VjdGlvbnMuZGF0YSwgYCR7ZG9jdW1lbnR9IC0gJHtwYXltZW50TmFtZX1gKSk7XG5cbiAgICAgICAgICBjdHgucGF0Y2hTdGF0ZShwYXJrZXJFbnRpdHlTdGF0ZSk7XG4gICAgICAgIH0pKTtcbiAgICAgIGNhc2UgUGFya2VyVGlja2V0VHlwZS5Db3Vwb246XG4gICAgICAgIGxldCBjb3Vwb25TZWN0aW9ucyQ6IE9ic2VydmFibGU8Q291cG9uU2VjdGlvbnNEdG9IdHRwUmVzcG9uc2VEYXRhPjtcbiAgICAgICAgY291cG9uU2VjdGlvbnMkID0gYWN0aW9uLnN1YlRpY2tldElkID8gdGhpcy5jaGFzZXJUaWNrZXRTZXJ2aWNlUHJveHkuc2luZ2xlQ291cG9uRGVlcFNlYXJjaChndWlkLCBhY3Rpb24ucGFya0lkLCBhY3Rpb24uc3ViVGlja2V0SWQpIDpcbiAgICAgICAgICB0aGlzLmNoYXNlclRpY2tldFNlcnZpY2VQcm94eS5jb3Vwb25CYXRjaERlZXBTZWFyY2goZ3VpZCwgYWN0aW9uLnBhcmtJZCwgYWN0aW9uLnRpY2tldElkKTtcblxuICAgICAgICByZXR1cm4gY291cG9uU2VjdGlvbnMkLnBpcGUodGFwKGNvdXBvblNlY3Rpb25zID0+IHtcbiAgICAgICAgICBjb25zdCBjb3Vwb25OYW1lID0gYCMke2NvdXBvblNlY3Rpb25zLmRhdGEuY291cG9uRGV0YWlscy5iYXRjaE5hbWV9YDtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcmtlckVudGl0eVN0YXRlLCB0aGlzLmdldFBhcmtlckVudGl0eVN0YXRlKHBhcmtlckVudGl0eVN0YXRlLCBjb3Vwb25OYW1lLCBudWxsLFxuICAgICAgICAgICAgY291cG9uLCBjb3Vwb25TZWN0aW9ucy5kYXRhLmNvdXBvbkRldGFpbHMuaWQsIGNvdXBvblNlY3Rpb25zLmRhdGEsIGAke2NvdXBvbn0gLSAke2NvdXBvbk5hbWV9YCkpO1xuXG4gICAgICAgICAgY3R4LnBhdGNoU3RhdGUocGFya2VyRW50aXR5U3RhdGUpO1xuICAgICAgICB9KSk7XG4gICAgICBjYXNlIFBhcmtlclRpY2tldFR5cGUuU3RpY2tlcjpcbiAgICAgICAgbGV0IHN0aWNrZXJTZWN0aW9ucyQ6IE9ic2VydmFibGU8U3RpY2tlclNlY3Rpb25zRHRvSHR0cFJlc3BvbnNlRGF0YT47XG4gICAgICAgIHN0aWNrZXJTZWN0aW9ucyQgPSBhY3Rpb24uc3ViVGlja2V0SWQgPyB0aGlzLmNoYXNlclRpY2tldFNlcnZpY2VQcm94eS5zaW5nbGVTdGlja2VyRGVlcFNlYXJjaChndWlkLCBhY3Rpb24ucGFya0lkLCBhY3Rpb24uc3ViVGlja2V0SWQpIDpcbiAgICAgICAgICB0aGlzLmNoYXNlclRpY2tldFNlcnZpY2VQcm94eS5zdGlja2VyQmF0Y2hEZWVwU2VhcmNoKGd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi50aWNrZXRJZCk7XG5cbiAgICAgICAgcmV0dXJuIHN0aWNrZXJTZWN0aW9ucyQucGlwZSh0YXAoc3RpY2tlclNlY3Rpb25zID0+IHtcbiAgICAgICAgICBjb25zdCBzdGlja2VyTmFtZSA9IGAjJHtzdGlja2VyU2VjdGlvbnMuZGF0YS5zdGlja2VyRGV0YWlscy5iYXRjaE5hbWV9YDtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcmtlckVudGl0eVN0YXRlLCB0aGlzLmdldFBhcmtlckVudGl0eVN0YXRlKHBhcmtlckVudGl0eVN0YXRlLCBzdGlja2VyTmFtZSwgbnVsbCxcbiAgICAgICAgICAgIHN0aWNrZXIsIHN0aWNrZXJTZWN0aW9ucy5kYXRhLnN0aWNrZXJEZXRhaWxzLmlkLCBzdGlja2VyU2VjdGlvbnMuZGF0YSwgYCR7c3RpY2tlcn0gLSAke3N0aWNrZXJOYW1lfWApKTtcblxuICAgICAgICAgIGN0eC5wYXRjaFN0YXRlKHBhcmtlckVudGl0eVN0YXRlKTtcbiAgICAgICAgfSkpO1xuICAgICAgY2FzZSBQYXJrZXJUaWNrZXRUeXBlLkF1ZGl0OlxuICAgICAgICBsZXQgYXVkaXRTZWN0aW9ucyQ6IE9ic2VydmFibGU8QXVkaXRTZWN0aW9uc0R0b0h0dHBSZXNwb25zZURhdGE+O1xuICAgICAgICBhdWRpdFNlY3Rpb25zJCA9IHRoaXMuYXVkaXRDbG91ZFNlcnZpY2VQcm94eS5nZXRBdWRpdERlZXBTZWFyY2goYWN0aW9uLnRpY2tldElkKTtcblxuICAgICAgICByZXR1cm4gYXVkaXRTZWN0aW9ucyQucGlwZSh0YXAoYXVkaXRTZWN0aW9ucyA9PiB7XG4gICAgICAgICAgY29uc3QgYXVkaXROYW1lID0gYCMke2F1ZGl0U2VjdGlvbnMuZGF0YS5jaGFuZ2VzRGV0YWlscy5lbnRpdHlOYW1lfWA7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJrZXJFbnRpdHlTdGF0ZSwgdGhpcy5nZXRQYXJrZXJFbnRpdHlTdGF0ZShwYXJrZXJFbnRpdHlTdGF0ZSwgYXVkaXROYW1lLCBudWxsLFxuICAgICAgICAgICAgYXVkaXQsIGF1ZGl0U2VjdGlvbnMuZGF0YS5jaGFuZ2VzRGV0YWlscy5pZCwgYXVkaXRTZWN0aW9ucy5kYXRhLCBgJHthdWRpdH0gLSAke2F1ZGl0TmFtZX1gKSk7XG4gICAgICAgICAgY3R4LnBhdGNoU3RhdGUocGFya2VyRW50aXR5U3RhdGUpO1xuICAgICAgICB9KSk7XG4gICAgICBjYXNlIFBhcmtlclRpY2tldFR5cGUuQWNjb3VudDpcbiAgICAgICAgY29uc3QgYWNjb3VudFNlY3Rpb25zJCA9IHRoaXMuYWNjb3VudHNScGNTZXJ2aWNlUHJveHkuYWNjb3VudERlZXBTZWFyY2goZ3VpZCwgYWN0aW9uLnBhcmtJZCwgYWN0aW9uLnRpY2tldElkKTtcblxuICAgICAgICByZXR1cm4gYWNjb3VudFNlY3Rpb25zJC5waXBlKHRhcChhY2NvdW50U2VjdGlvbnMgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjY291bnROYW1lID0gYCMke2FjY291bnRTZWN0aW9ucy5kYXRhLmFjY291bnREZXRhaWxzLmFjY291bnROYW1lfWA7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJrZXJFbnRpdHlTdGF0ZSwgdGhpcy5nZXRQYXJrZXJFbnRpdHlTdGF0ZShwYXJrZXJFbnRpdHlTdGF0ZSwgYWNjb3VudE5hbWUsIG51bGwsXG4gICAgICAgICAgICBhY2NvdW50LCBhY2NvdW50U2VjdGlvbnMuZGF0YS5hY2NvdW50RGV0YWlscy5pZCwgYWNjb3VudFNlY3Rpb25zLmRhdGEsIGAke2FjY291bnR9IC0gJHthY2NvdW50TmFtZX1gKSk7XG4gICAgICAgICAgY3R4LnBhdGNoU3RhdGUocGFya2VyRW50aXR5U3RhdGUpO1xuICAgICAgICB9KSk7XG4gICAgICBjYXNlIFBhcmtlclRpY2tldFR5cGUuU3ViQWNjb3VudDpcbiAgICAgICAgY29uc3Qgc3ViQWNjb3VudFNlY3Rpb25zJCA9IHRoaXMuYWNjb3VudHNScGNTZXJ2aWNlUHJveHkuc3ViQWNjb3VudERlZXBTZWFyY2goZ3VpZCwgYWN0aW9uLnBhcmtJZCwgYWN0aW9uLnRpY2tldElkLCk7XG5cbiAgICAgICAgcmV0dXJuIHN1YkFjY291bnRTZWN0aW9ucyQucGlwZSh0YXAoc3ViQWNjb3VudFNlY3Rpb25zID0+IHtcbiAgICAgICAgICBjb25zdCBzdWJBY2NvdW50TmFtZSA9IGAjJHtzdWJBY2NvdW50U2VjdGlvbnMuZGF0YS5zdWJBY2NvdW50RGV0YWlscy5zdWJBY2NvdW50TmFtZX1gO1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFya2VyRW50aXR5U3RhdGUsIHRoaXMuZ2V0UGFya2VyRW50aXR5U3RhdGUocGFya2VyRW50aXR5U3RhdGUsIHN1YkFjY291bnROYW1lLCBudWxsLFxuICAgICAgICAgICAgc3ViQWNjb3VudCwgc3ViQWNjb3VudFNlY3Rpb25zLmRhdGEuc3ViQWNjb3VudERldGFpbHMuaWQsIHN1YkFjY291bnRTZWN0aW9ucy5kYXRhLCBgJHtzdWJBY2NvdW50fSAtICR7c3ViQWNjb3VudE5hbWV9YCkpO1xuICAgICAgICAgIGN0eC5wYXRjaFN0YXRlKHBhcmtlckVudGl0eVN0YXRlKTtcbiAgICAgICAgfSkpO1xuICAgICAgY2FzZSBQYXJrZXJUaWNrZXRUeXBlLkFjY2Vzc1Byb2ZpbGVNb250aGx5QW5kR3Vlc3Q6XG4gICAgICAgIGNvbnN0IGFjY2Vzc1Byb2ZpbGVNb250aGx5QW5kR3Vlc3QkID0gdGhpcy5hY2Nlc3NQcm9maWxlUnBjU2VydmljZVByb3h5LmdldEFjY2Vzc1Byb2ZpbGVNb250aGx5QW5kR3Vlc3REZWVwU2VhcmNoKGd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi50aWNrZXRJZCk7XG4gICAgICAgIHJldHVybiBhY2Nlc3NQcm9maWxlTW9udGhseUFuZEd1ZXN0JC5waXBlKHRhcChhY2Nlc3NQcm9maWxlTW9udGhseUFuZEd1ZXN0U2VjdGlvbnMgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjY2Vzc1Byb2ZpbGVNb250aGx5QW5kR3Vlc3ROYW1lID0gYCR7YWNjZXNzUHJvZmlsZU1vbnRobHlBbmRHdWVzdFNlY3Rpb25zLmRhdGEuYWNjZXNzUHJvZmlsZURldGFpbHMubmFtZX1gO1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFya2VyRW50aXR5U3RhdGUsIHRoaXMuZ2V0UGFya2VyRW50aXR5U3RhdGUocGFya2VyRW50aXR5U3RhdGUsIGFjY2Vzc1Byb2ZpbGVNb250aGx5QW5kR3Vlc3ROYW1lLCBudWxsLFxuICAgICAgICAgICAgYWNjZXNzUHJvZmlsZSwgYWNjZXNzUHJvZmlsZU1vbnRobHlBbmRHdWVzdFNlY3Rpb25zLmRhdGEuYWNjZXNzUHJvZmlsZURldGFpbHMuaWQsIGFjY2Vzc1Byb2ZpbGVNb250aGx5QW5kR3Vlc3RTZWN0aW9ucy5kYXRhLCBgJHthY2Nlc3NQcm9maWxlTW9udGhseUFuZEd1ZXN0TmFtZX1gKSk7XG4gICAgICAgICAgY3R4LnBhdGNoU3RhdGUocGFya2VyRW50aXR5U3RhdGUpO1xuICAgICAgICB9KSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBwYXJrZXJFbnRpdHlTdGF0ZS5kZXRhaWxzID0ge307XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHBhcmtlckVudGl0eVN0YXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihMb2FkUGFya2Vyc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRQYXJrZXJzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtlclN0YXRlTW9kZWw+LCB7IHBhcmtJZCwgdHlwZSwgc2VhcmNoVmFsdWUsIGlzTHVja3lMUFJTZWFyY2gsIHRhYmxlTmFtZSB9OiBMb2FkUGFya2Vyc0FjdGlvbikge1xuICAgIGNvbnN0IGd1aWQgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KEZhY2lsaXR5U3RhdGUuZ3VpZCk7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc2VhcmNoOiBuZXcgUGFya2VyU2VhcmNoVGVybSh0eXBlLCBzZWFyY2hWYWx1ZSwgaXNMdWNreUxQUlNlYXJjaCwgdGFibGVOYW1lKSxcbiAgICAgIHNlYXJjaFJlc3VsdHM6IG51bGwsXG4gICAgfSk7XG5cbiAgICBsZXQgZGF0YSQ6IE9ic2VydmFibGU8YW55PjtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcblxuICAgICAgY2FzZSBQYXJrZXJUaWNrZXRUeXBlLlRyYW5zaWVudDpcbiAgICAgICAgY29uc3QgZnJvbVNlY29uZHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGZldGNoQXR0YWNoYWJsZU9ubHlUaWNrZXRzID0gZmFsc2U7XG4gICAgICAgIGRhdGEkID0gdGhpcy50cmFuc2llbnRScGNTZXJ2aWNlUHJveHkudHJhbnNpbmV0U2hhbGxvd1NlYXJjaChndWlkLCBwYXJrSWQsIHNlYXJjaFZhbHVlLCBmcm9tU2Vjb25kcywgZmV0Y2hBdHRhY2hhYmxlT25seVRpY2tldHMsIGlzTHVja3lMUFJTZWFyY2gpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUGFya2VyVGlja2V0VHlwZS5FVm91Y2hlcjpcbiAgICAgICAgZGF0YSQgPSB0aGlzLmV2b3VjaGVyUnBjU2VydmljZVByb3h5LmVWb3VjaGVyU2hhbGxvd1NlYXJjaChndWlkLCBwYXJrSWQsIHNlYXJjaFZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBhcmtlclRpY2tldFR5cGUuR3Vlc3Q6XG4gICAgICBjYXNlIFBhcmtlclRpY2tldFR5cGUuSG90ZWxHdWVzdDpcbiAgICAgICAgZGF0YSQgPSB0aGlzLmd1ZXN0UnBjU2VydmljZVByb3h5Lmd1ZXN0U2hhbGxvd1NlYXJjaChndWlkLCBwYXJrSWQsIHNlYXJjaFZhbHVlLCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQYXJrZXJUaWNrZXRUeXBlLk1vbnRobHk6XG4gICAgICAgIGRhdGEkID0gdGhpcy5tb250aGx5UnBjU2VydmljZVByb3h5Lm1vbnRobHlTaGFsbG93U2VhcmNoKGd1aWQsIHBhcmtJZCwgc2VhcmNoVmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUGFya2VyVGlja2V0VHlwZS5QYXltZW50OlxuICAgICAgICBkYXRhJCA9IHRoaXMucGF5bWVudFJwY1NlcnZpY2VQcm94eS5wYXltZW50U2hhbGxvd1NlYXJjaChndWlkLCBwYXJrSWQsIHNlYXJjaFZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBhcmtlclRpY2tldFR5cGUuQ2FyZE9uRmlsZTpcbiAgICAgICAgZGF0YSQgPSB0aGlzLnNwZWNpYWxUcmFuc2llbnRScGNTZXJ2aWNlUHJveHkuc3BlY2lhbFRyYW5zaWVudFNoYWxsb3dTZWFyY2goZ3VpZCwgcGFya0lkLCBzZWFyY2hWYWx1ZSwgdGFibGVOYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBkYXRhJCA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGEkPy5waXBlKHRhcChkYXRhID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgc2VhcmNoUmVzdWx0czogZGF0YT8uZGF0YSxcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZExvY2F0ZVRpY2tldFNlYXJjaEFjdGlvbilcbiAgb25Mb2FkTG9jYXRlVGlja2V0U2VhcmNoQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtlclN0YXRlTW9kZWw+LCB7IGd1aWQsIHBhcmtJZCwgc2VhcmNoVmFsdWUgfTogTG9hZExvY2F0ZVRpY2tldFNlYXJjaEFjdGlvbikge1xuICAgIGN0eC5kaXNwYXRjaChDbGVhckxvY2F0ZVRpY2tldFNlYXJjaEFjdGlvbik7XG5cbiAgICBjb25zdCBmcm9tU2Vjb25kcyA9IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmZXRjaEF0dGFjaGFibGVPbmx5VGlja2V0cyA9IHRydWU7XG4gICAgY29uc3QgaXNMdWNreUxQUlNlYXJjaCA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIHRoaXMudHJhbnNpZW50UnBjU2VydmljZVByb3h5LnRyYW5zaW5ldFNoYWxsb3dTZWFyY2goZ3VpZCwgcGFya0lkLCBzZWFyY2hWYWx1ZSwgZnJvbVNlY29uZHMsIGZldGNoQXR0YWNoYWJsZU9ubHlUaWNrZXRzLCBpc0x1Y2t5TFBSU2VhcmNoKS5waXBlKHRhcChkYXRhID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgbG9jYXRlU2VhcmNoUmVzdWx0czogZGF0YS5kYXRhLFxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkTG9jYXRlZFRpY2tldEFjdGlvbilcbiAgb25Mb2FkTG9jYXRlZFRpY2tldEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrZXJTdGF0ZU1vZGVsPiwgeyBndWlkLCBwYXJrSWQsIHRpY2tldElkIH06IExvYWRMb2NhdGVkVGlja2V0QWN0aW9uKSB7XG4gICAgY3R4LmRpc3BhdGNoKENsZWFyTG9jYXRlZFRpY2tldEFjdGlvbik7XG5cbiAgICByZXR1cm4gdGhpcy50cmFuc2llbnRScGNTZXJ2aWNlUHJveHkuZ2V0TG9jYXRlVGlja2V0KGd1aWQsIHBhcmtJZCwgdGlja2V0SWQpLnBpcGUodGFwKGRhdGEgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBsb2NhdGVkVGlja2V0OiBkYXRhLmRhdGEsXG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRUaWNrZXROdW1QYXJrZXJzQWN0aW9uKVxuICBvbkxvYWRUaWNrZXROdW1QYXJrZXJzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtlclN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRUaWNrZXROdW1QYXJrZXJzQWN0aW9uKSB7XG4gICAgY29uc3QgZ3VpZCA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5ndWlkKTtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWFyY2g6IG5ldyBQYXJrZXJTZWFyY2hUZXJtKGFjdGlvbi50eXBlLCBhY3Rpb24udGlja2V0TnVtPy50b1N0cmluZygpKSxcbiAgICAgIHNlYXJjaFJlc3VsdHM6IG51bGwsXG4gICAgfSk7XG5cbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIFBhcmtlclRpY2tldFR5cGUuVHJhbnNpZW50OlxuICAgICAgICBjb25zdCBmZXRjaEF0dGFjaGFibGVPbmx5VGlja2V0cyA9IGZhbHNlO1xuICAgICAgICBjb25zdCBpc0x1Y2t5TFBSU2VhcmNoID0gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNpZW50UnBjU2VydmljZVByb3h5LnRyYW5zaW5ldFNoYWxsb3dTZWFyY2goZ3VpZCwgYWN0aW9uLnBhcmtJZCwgYWN0aW9uLnRpY2tldE51bT8udG9TdHJpbmcoKSxcbiAgICAgICAgICBhY3Rpb24uZXZlbnRUaW1lLCBmZXRjaEF0dGFjaGFibGVPbmx5VGlja2V0cywgaXNMdWNreUxQUlNlYXJjaCkucGlwZShcbiAgICAgICAgICAgIHRhcCh0cmFuc2llbnRTaGFsbG93RGF0YSA9PiB7XG4gICAgICAgICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICAgICAgICBzZWFyY2hSZXN1bHRzOiB0cmFuc2llbnRTaGFsbG93RGF0YS5kYXRhLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcblxuICAgICAgY2FzZSBQYXJrZXJUaWNrZXRUeXBlLlBheW1lbnQ6XG4gICAgICAgIGNvbnN0IHJlYWRlcklkID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChQYXJrTWFuYWdlclN0YXRlLnNlbGVjdGVkRGV2aWNlU3RhdHVzKT8uY29tbUlEO1xuXG4gICAgICAgIC8vIEFkZCBmaWVsZHMgdG8gcXVlcnkgYnlcbiAgICAgICAgY29uc3Qgc2VhcmNoRmllbGRTZWxlY3RvcnM6IFNlYXJjaEZpZWxkU2VsZWN0b3IgPSBhY3Rpb24uZXZlbnRUeXBlSWQgPT09IFR5cGVDYXN0RGV2aWNlRXZlbnQuU3RpY2tlcnMgP1xuICAgICAgICAgIFNlYXJjaEZpZWxkU2VsZWN0b3IuU3RpY2tlck51bSA6IFNlYXJjaEZpZWxkU2VsZWN0b3IuQ3JlZGl0Q2FyZExhc3Q0O1xuXG4gICAgICAgIHJldHVybiB0aGlzLnBheW1lbnRScGNTZXJ2aWNlUHJveHkucGF5bWVudFNoYWxsb3dTZWFyY2hzQnlGaWVsZHMoZ3VpZCwgYWN0aW9uLnBhcmtJZCxcbiAgICAgICAgICBhY3Rpb24udGlja2V0TnVtPy50b1N0cmluZygpLCByZWFkZXJJZCwgYWN0aW9uLmV2ZW50VGltZSwgc2VhcmNoRmllbGRTZWxlY3RvcnMpLnBpcGUoXG4gICAgICAgICAgICB0YXAocGF5bWVudFNoYWxsb3dEYXRhID0+IHtcbiAgICAgICAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgICAgICAgIHNlYXJjaFJlc3VsdHM6IHBheW1lbnRTaGFsbG93RGF0YS5kYXRhLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIEVNUFRZOyAvLyBSZXR1cm4gZW1wdHkgb2JzZXJ2YWJsZSBmb3IgZGVmYXVsdCBjYXNlXG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihTZXRTZWFyY2hUZXJtQWN0aW9uKVxuICBvblNldFNlYXJjaFRlcm1BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya2VyU3RhdGVNb2RlbD4sIHsgdHlwZSwgdmFsdWUsIGlzTHVja3lMUFJTZWFyY2gsIHRhYmxlTmFtZSB9OiBTZXRTZWFyY2hUZXJtQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoeyBzZWFyY2g6IG5ldyBQYXJrZXJTZWFyY2hUZXJtKHR5cGUsIHZhbHVlLCBpc0x1Y2t5TFBSU2VhcmNoLCB0YWJsZU5hbWUpIH0pO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhclNlYXJjaFRlcm1BY3Rpb24pXG4gIG9uQ2xlYXJTZWFyY2hUZXJtQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtlclN0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc2VhcmNoOiB7XG4gICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICB0eXBlOiBjdHguZ2V0U3RhdGUoKS5zZWFyY2gudHlwZSxcbiAgICAgICAgaXNMdWNreUxQUlNlYXJjaDogZmFsc2UsXG4gICAgICAgIHRuOiAnJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU2VhcmNoUmVzdWx0c0FjdGlvbilcbiAgb25DbGVhclNlYXJjaFJlc3VsdHNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya2VyU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWFyY2hSZXN1bHRzOiBudWxsLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhckxvY2F0ZVRpY2tldFNlYXJjaEFjdGlvbilcbiAgb25DbGVhckxvY2F0ZVRpY2tldFNlYXJjaEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrZXJTdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGxvY2F0ZVNlYXJjaFJlc3VsdHM6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyTG9jYXRlZFRpY2tldEFjdGlvbilcbiAgb25DbGVhckxvY2F0ZWRUaWNrZXRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya2VyU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBsb2NhdGVkVGlja2V0OiBudWxsLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhclNwZWNpYWxUcmFuc2llbnRUYWJsZXNBY3Rpb24pXG4gIG9uQ2xlYXJTcGVjaWFsVHJhbnNpZW50VGFibGVzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtlclN0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc3BlY2lhbFRyYW5zaWVudFRhYmxlczogW10sXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKFVwZGF0ZURvY3VtZW50QWN0aW9uKVxuICBvblVwZGF0ZURvY3VtZW50QWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtlclN0YXRlTW9kZWw+LCB7IGRhdGEgfTogVXBkYXRlRG9jdW1lbnRBY3Rpb24pIHtcbiAgICBjb25zdCBkZXRhaWxzOiBUcmFuc2llbnRTZWN0aW9uc0R0byB8IFBheW1lbnRTZWN0aW9uc0R0byA9IGN0eC5nZXRTdGF0ZSgpLmRldGFpbHM7XG4gICAgbGV0IGRvY0RldGFpbHM6IFBheW1lbnRzRG9jdW1lbnRUYWJsZURhdGFEdG87XG4gICAgY29uc3QgcGF5bWVudERldGFpbHMgPSAoZGV0YWlscyBhcyBUcmFuc2llbnRTZWN0aW9uc0R0byk/LnBheW1lbnREZXRhaWxzO1xuICAgIGlmIChwYXltZW50RGV0YWlscykge1xuICAgICAgZG9jRGV0YWlscyA9IHBheW1lbnREZXRhaWxzLmRhdGEubWFwKGQgPT5cbiAgICAgICAgZC5kYXRhLmZpbmQoZGQgPT4gZGQuZG9jRGV0YWlsc0lkID09IGRhdGEuZG9jRGV0YWlsc0lkICYmIGRkLnBhcmtJZCA9PSBkYXRhLnBhcmtJZCkpWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYXltZW50RGV0YWlscyA9IChkZXRhaWxzIGFzIFBheW1lbnRTZWN0aW9uc0R0bykucGF5bWVudHNEb2N1bWVudERhdGE7XG4gICAgICBpZiAocGF5bWVudERldGFpbHMpIHtcbiAgICAgICAgZG9jRGV0YWlscyA9IHBheW1lbnREZXRhaWxzLmRhdGEuZmluZChkZCA9PiBkZC5kb2NEZXRhaWxzSWQgPT0gZGF0YS5kb2NEZXRhaWxzSWQgJiYgZGQucGFya0lkID09IGRhdGEucGFya0lkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkb2NEZXRhaWxzLmNvbXBhbnlJRCA9IGRhdGEuY29tcGFueUlEO1xuICAgIGRvY0RldGFpbHMuc3ViQ29tcGFueUlEID0gZGF0YS5zdWJDb21wYW55SUQ7XG4gICAgZG9jRGV0YWlscy5zbWFydFBheW1lbnRUeXBlID0gZGF0YS5zbWFydFBheW1lbnRUeXBlO1xuXG4gICAgY29uc3QgY2xvbmUgPSBjbG9uZURlZXAoZGV0YWlscyk7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgZGV0YWlsczogY2xvbmUsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKFVwZGF0ZVRpY2tldFBsYXRlSWRBY3Rpb24pXG4gIG9uVXBkYXRlVGlja2V0UGxhdGVJZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrZXJTdGF0ZU1vZGVsPiwgeyBwbGF0ZUlkIH06IFVwZGF0ZVRpY2tldFBsYXRlSWRBY3Rpb24pIHtcbiAgICBjb25zdCBkZXRhaWxzID0gY3R4LmdldFN0YXRlKCkuZGV0YWlscztcbiAgICBkZXRhaWxzLnRpY2tldERldGFpbHMucGxhdGVJRCA9IHBsYXRlSWQ7XG5cbiAgICBjb25zdCBjbG9uZSA9IGNsb25lRGVlcChkZXRhaWxzKTtcblxuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGRldGFpbHM6IGNsb25lLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihQcmludFJlY2VpcHRBY3Rpb24pXG4gIG9uUHJpbnRSZWNlaXB0QWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFBhcmtlclN0YXRlTW9kZWw+LCBhY3Rpb246IFByaW50UmVjZWlwdEFjdGlvbikge1xuICAgIGNvbnN0IGd1aWQgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KEZhY2lsaXR5U3RhdGUuZ3VpZCk7XG4gICAgY29uc3QgZG9jdW1lbnQkID0gdGhpcy5maWxlUnBjU2VydmljZVByb3h5LmNyZWF0ZVJlY2VpcHQoZ3VpZCwgYWN0aW9uLnBhcmtJZCwgYWN0aW9uLmVudGl0eU5hbWUsIGFjdGlvbi5wYXltZW50SWQsIG51bGwsIGFjdGlvbi5wYXJrSWQpO1xuICAgIGNvbnN0IG1lc3NhZ2VJbmZvOiBNZXNzYWdlSW5mbyA9IHtcbiAgICAgIGR1cmF0aW9uOiBEdXJhdGlvbk1lc3NhZ2VCYXIuZGlzcGxheUNvbnRpbnVvdXNseSxcbiAgICAgIG1lc3NhZ2VQYXJhbXM6IHtcbiAgICAgICAgZW50aXR5OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KExvY2FsaXphdGlvbi5yZWNlaXB0KVxuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gZG9jdW1lbnQkLnN1YnNjcmliZSgocmVzOiBHZW5lcmF0ZUZpbGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEpID0+IHtcbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0byA9IHRoaXMubm90aWZpY2F0aW9uRXZlbnRTZXJ2aWNlLmdldE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbnNFbnRpdHkoKTtcbiAgICAgIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0by5pZGVudGlmaWVyID0gcmVzLmRhdGE/LmlkZW50aWZpZXI7XG4gICAgICBub3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8udHlwZSA9IE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5SZWNlaXB0R2VuZXJhdGVkO1xuICAgICAgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvLnVuc3Vic2NyaWJlID0gZmFsc2U7XG4gICAgICBub3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8uZ3VpZCA9IGd1aWQ7XG4gICAgICB0aGlzLnNpZ25hbFIuc3Vic2NyaWJlRm9yTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8pO1xuXG4gICAgICBpZiAoYWN0aW9uLmVtYWlsKSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RlZFJlY2VpcHRNYXAgPSBjdHguZ2V0U3RhdGUoKS5yZXF1ZXN0ZWRSZWNlaXB0TWFwO1xuICAgICAgICByZXF1ZXN0ZWRSZWNlaXB0TWFwW3Jlcy5kYXRhPy5pZGVudGlmaWVyXSA9IHtcbiAgICAgICAgICBlbWFpbDogYWN0aW9uLmVtYWlsLFxuICAgICAgICAgIGVudGl0eU5hbWU6IGFjdGlvbi5lbnRpdHlOYW1lLFxuICAgICAgICAgIGVudGl0eUlkOiBhY3Rpb24ucGF5bWVudElkLFxuICAgICAgICAgIGd1aWQsXG4gICAgICAgICAgcGFya0lkOiBhY3Rpb24ucGFya0lkXG4gICAgICAgIH07XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICByZXF1ZXN0ZWRSZWNlaXB0TWFwLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuaW5mbyhMb2NhbGl6YXRpb24uZW50aXR5X2lzX2JlaW5nX3Byb2NjZXNzZWQsIG1lc3NhZ2VJbmZvKTtcbiAgICB9LCBlcnIgPT4ge1xuICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihMb2NhbGl6YXRpb24uZW50aXR5X2ZhaWxlZF90b19nZW5lcmF0ZSwgbWVzc2FnZUluZm8pO1xuICAgIH0pO1xuICB9XG5cblxuICBAQWN0aW9uKFJlY2VpcHRHZW5lcmF0ZWRBY3Rpb24pXG4gIG9uUmVjZWlwdEdlbmVyYXRlZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBSZWNlaXB0R2VuZXJhdGVkQWN0aW9uKSB7XG4gICAgY29uc3Qgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvID0gdGhpcy5ub3RpZmljYXRpb25FdmVudFNlcnZpY2UuZ2V0Tm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uc0VudGl0eSgpO1xuICAgIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0by5pZGVudGlmaWVyID0gYWN0aW9uLmlkZW50aWZpZXI7XG4gICAgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvLnR5cGUgPSBOb3RpZmljYXRpb25FdmVudFR5cGUuUmVjZWlwdEdlbmVyYXRlZDtcbiAgICBub3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8udW5zdWJzY3JpYmUgPSB0cnVlO1xuICAgIHRoaXMuc2lnbmFsUi5zdWJzY3JpYmVGb3JOb3RpZmljYXRpb25zKG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0byk7XG5cbiAgICBjb25zdCBtZXNzYWdlSW5mbzogTWVzc2FnZUluZm8gPSB7XG4gICAgICBtZXNzYWdlUGFyYW1zOiB7IGVudGl0eTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChMb2NhbGl6YXRpb24ucmVjZWlwdCkgfVxuICAgIH07XG5cbiAgICBpZiAoYWN0aW9uLm5vdGlmaWNhdGlvbkR0by5pc1N1Y2Nlc3MpIHtcbiAgICAgIGNvbnN0IHJlY2VpcHQkID0gdGhpcy5maWxlQ2xvdWRTZXJ2aWNlUHJveHkuZmV0Y2hSZWNlaXB0KGFjdGlvbi5ub3RpZmljYXRpb25EdG8ubmFtZSwgYWN0aW9uLmd1aWQpO1xuXG4gICAgICByZXR1cm4gcmVjZWlwdCQucGlwZSh0YXAoe1xuICAgICAgICBuZXh0OiByZWNlaXB0ID0+IHtcbiAgICAgICAgICBjb25zdCByZXF1ZXN0ZWRSZWNlaXB0TWFwID0gY3R4LmdldFN0YXRlKCkucmVxdWVzdGVkUmVjZWlwdE1hcDtcbiAgICAgICAgICBpZiAocmVxdWVzdGVkUmVjZWlwdE1hcFthY3Rpb24uaWRlbnRpZmllcl0/LmVtYWlsKSB7XG4gICAgICAgICAgICBjb25zdCB7IGVtYWlsLCBlbnRpdHlOYW1lLCBlbnRpdHlJZCwgZ3VpZCwgcGFya0lkIH0gPSByZXF1ZXN0ZWRSZWNlaXB0TWFwW2FjdGlvbi5pZGVudGlmaWVyXTtcbiAgICAgICAgICAgIHRoaXMuc2VuZFJlY2VpcHRUb01haWwoY3R4LCBlbWFpbCwgZW50aXR5TmFtZSwgZW50aXR5SWQsIGd1aWQsIHBhcmtJZCwgcmVjZWlwdCwgYWN0aW9uLm5vdGlmaWNhdGlvbkR0by5uYW1lKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIGRlbGV0ZSByZXF1ZXN0ZWRSZWNlaXB0TWFwW2FjdGlvbi5pZGVudGlmaWVyXTtcbiAgICAgICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICAgICAgcmVxdWVzdGVkUmVjZWlwdE1hcCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5maWxlU2VydmljZS5kb3dubG9hZEZpbGUocmVjZWlwdCwgRmlsZUdlbmVyYXRlTWV0aG9kLnZpZXdQREYsIExvY2FsaXphdGlvbi5yZWNlaXB0KSkge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5zdWNjZXNzKExvY2FsaXphdGlvbi5lbnRpdHlfc3VjY2Vzc190b19nZW5lcmF0ZSwgbWVzc2FnZUluZm8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKGBGYWlsZWQgd2hpbGUgdHJ5aW5nIHRvIGZldGNoIHJlY2VpcHQgJHthY3Rpb24ubm90aWZpY2F0aW9uRHRvLm5hbWV9YCk7XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihgRmFpbGVkIHRvIGdlbmVyYXRlIHJlY2VpcHQgJHthY3Rpb24ubm90aWZpY2F0aW9uRHRvLm5hbWV9YCk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihHZXRTcGVjaWFsVHJhbnNpZW50VGFibGVzQWN0aW9uKVxuICBPblNwZWNpYWxUcmFuc2llbnRUYWJsZXNUYWJsZXNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UGFya2VyU3RhdGVNb2RlbD4sIGFjdGlvbjogR2V0U3BlY2lhbFRyYW5zaWVudFRhYmxlc0FjdGlvbikge1xuICAgIGNvbnN0IHNwZWNpYWxUcmFuc2llbnRUYWJsZXMgPSBjdHguZ2V0U3RhdGUoKS5zcGVjaWFsVHJhbnNpZW50VGFibGVzO1xuICAgIGlmIChzcGVjaWFsVHJhbnNpZW50VGFibGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgZ2V0VGFibGVzID0gdGhpcy5zcGVjaWFsVHJhbnNpZW50UnBjU2VydmljZVByb3h5LmdldFRhYmxlcyhhY3Rpb24uZ3VpZCwgYWN0aW9uLnBhcmtJZCk7XG4gICAgICByZXR1cm4gZ2V0VGFibGVzLnBpcGUodGFwKHNwZWNpYWxUcmFuc2llbnRUYWJsZXMgPT4ge1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgc3BlY2lhbFRyYW5zaWVudFRhYmxlczogc3BlY2lhbFRyYW5zaWVudFRhYmxlcy5kYXRhXG4gICAgICAgIH0pO1xuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIEBBY3Rpb24oUmVsb2FkUGFya2VyQWN0aW9uKVxuICBvblJlbG9hZFBhcmtlckFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBSZWxvYWRQYXJrZXJBY3Rpb24pIHtcbiAgICBjb25zdCBwYXJrZXJQYXJhbXMgPSBjdHguZ2V0U3RhdGUoKS5wYXJrZXJQYXJhbXM7XG4gICAgY29uc3QgcmVsb2FkU2lkZUJhciA9IHBhcmtlclBhcmFtcy5zZWFyY2hWYWx1ZSAhPT0gdW5kZWZpbmVkIHx8IHBhcmtlclBhcmFtcy50aWNrZXRJZCAhPT0gbnVsbDtcblxuICAgIGlmIChyZWxvYWRTaWRlQmFyKSB7XG4gICAgICBjb25zdCByZWxvYWRQYXJrZXJTZWFyY2hSZXN1bHQgPSBwYXJrZXJQYXJhbXMudGlja2V0SWQgPT09IG51bGw7XG5cbiAgICAgIGlmIChyZWxvYWRQYXJrZXJTZWFyY2hSZXN1bHQpIHtcbiAgICAgICAgLy8gc2hhbGxvdyBzZWFyY2hcbiAgICAgICAgY29uc3QgZGV2aWNlRXZlbnRPcHRpb25zID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShERVZJQ0VfRVZFTlRfT1BUSU9OU19LRVkpO1xuXG4gICAgICAgIGlmIChkZXZpY2VFdmVudE9wdGlvbnMgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBzZWFyY2ggYnkgcm93IGNsaWNrIGluIGRldmljZSB0YWJsZVxuICAgICAgICAgIGNvbnN0IHsgdGlja2V0TnVtLCBldmVudFRpbWUsIGV2ZW50VHlwZUlkIH0gPSBKU09OLnBhcnNlKGRldmljZUV2ZW50T3B0aW9ucyk7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTG9hZFRpY2tldE51bVBhcmtlcnNBY3Rpb24ocGFya2VyUGFyYW1zLnR5cGUsIHBhcmtlclBhcmFtcy5wYXJrSWQsIHRpY2tldE51bSwgZXZlbnRUaW1lLCBldmVudFR5cGVJZCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IExvYWRQYXJrZXJzQWN0aW9uKHBhcmtlclBhcmFtcy5wYXJrSWQsIHBhcmtlclBhcmFtcy50eXBlLFxuICAgICAgICAgICAgcGFya2VyUGFyYW1zLnNlYXJjaFZhbHVlLCBwYXJrZXJQYXJhbXMuaXNMdWNreUxQUlNlYXJjaCwgcGFya2VyUGFyYW1zLnRhYmxlTmFtZSkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBkZWVwIHNlYXJjaFxuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBMb2FkUGFya2VyQWN0aW9uKHBhcmtlclBhcmFtcy5wYXJrSWQsIHBhcmtlclBhcmFtcy50eXBlLFxuICAgICAgICAgIHBhcmtlclBhcmFtcy5zZWFyY2hWYWx1ZSwgcGFya2VyUGFyYW1zLmlzTHVja3lMUFJTZWFyY2gsIHBhcmtlclBhcmFtcy50aWNrZXRJZCwgcGFya2VyUGFyYW1zLnN1YlRpY2tldElkKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihTZXRUaWNrZXRJZGVudGlmaWVyQWN0aW9uKVxuICBvblNldFRpY2tldElkZW50aWZpZXJJZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxQYXJrZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZXRUaWNrZXRJZGVudGlmaWVyQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgdGlja2V0SWRlbnRpZmllcjogYWN0aW9uLnRpY2tldElkZW50aWZpZXJcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZFJlY2VpcHRUb01haWwoY3R4OiBTdGF0ZUNvbnRleHQ8UGFya2VyU3RhdGVNb2RlbD4sIGVtYWlsOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZywgZW50aXR5SWQ6IG51bWJlciwgZ3VpZDogc3RyaW5nLCBwYXJrSWQ6IG51bWJlciwgZmlsZTogRmlsZVJlc3BvbnNlLCBmaWxlTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnBvcHVsYXRlU2VuZEVtYWlsUmVxdWVzdChlbWFpbCwgZW50aXR5TmFtZSwgZW50aXR5SWQsIGd1aWQsIHBhcmtJZCwgZmlsZSwgZmlsZU5hbWUpKS5waXBlKFxuICAgICAgdGFwKHNlbmRFbWFpbFJlcXVlc3QgPT4ge1xuICAgICAgICBjb25zdCBkYXRhOiBhbnkgPSB7XG4gICAgICAgICAgbW9kYWxUaXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChMb2NhbGl6YXRpb24uc2VuZF9yZWNlaXB0X3RvX2VtYWlsKSxcbiAgICAgICAgICBzZW5kRW1haWw6IGZhbHNlLFxuICAgICAgICAgIHNlbmRFbWFpbFJlcWV1c3Q6IHNlbmRFbWFpbFJlcXVlc3RcbiAgICAgICAgfTtcbiAgICAgICAgZGF0YS5zZW5kRW1haWxSZXFldXN0LnRvID0gZW1haWw7XG4gICAgICAgIGN0eC5kaXNwYXRjaChuZXcgU2VuZEVtYWlsRnJvbUVudGl0eUFjdGlvbihkYXRhLnNlbmRFbWFpbFJlcWV1c3QpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcG9wdWxhdGVTZW5kRW1haWxSZXF1ZXN0KGVtYWlsOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZywgZW50aXR5SWQ6IG51bWJlciwgZ3VpZDogc3RyaW5nLCBwYXJrSWQ6IG51bWJlciwgZmlsZTogRmlsZVJlc3BvbnNlLCBmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgZmlsZUJhc2U2NCA9IGF3YWl0IGJsb2JUb0Jhc2U2NChuZXcgQmxvYihbZmlsZS5kYXRhXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vcGRmJyB9KSk7XG4gICAgY29uc3QgcGRmUGFnZXNQYXJhbWV0ZXJzTGlzdDogeyBba2V5OiBzdHJpbmddOiBhbnk7IH1bXSA9IFt7XG4gICAgICBmaWxlTmFtZSxcbiAgICAgIHBhcmtJZDogcGFya0lkLnRvU3RyaW5nKCksXG4gICAgICBndWlkLFxuICAgICAgYXR0YWNoZWRQZGY6IGZpbGVCYXNlNjQudG9TdHJpbmcoKSxcbiAgICB9XTtcblxuICAgIGNvbnN0IHNlbmRFbWFpbFJlcXVlc3QgPSBuZXcgU2VuZEVtYWlsUmVxdWVzdER0byh7XG4gICAgICBlbnRpdHk6IG5ldyBSZWNlaXB0RW50aXR5UGFyYW1zKHtcbiAgICAgICAgYXR0YWNoZWRQZGY6IGZpbGVCYXNlNjQudG9TdHJpbmcoKSxcbiAgICAgICAgaWQ6IGVudGl0eUlkXG4gICAgICB9KSxcbiAgICAgIHRvOiBlbWFpbCxcbiAgICAgIHRlbXBsYXRlVHlwZTogVGVtcGxhdGVUeXBlLlJlY2VpcHQsXG4gICAgICBwZGZQYWdlc1BhcmFtZXRlcnNMaXN0LFxuICAgICAgcGRmUGFnZXNQYXJhbWV0ZXJzOiBudWxsLCAvL2JhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHZlcnNpb24gOC4yXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIGZpbGVOYW1lLFxuICAgICAgICBzdWJqZWN0OiBgJHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KExvY2FsaXphdGlvbi5yZWNlaXB0KX0gOiAke2VudGl0eU5hbWV9YCxcbiAgICAgIH0sXG4gICAgICBpc011bHRpUGFnZXNGaWxlOiB1bmRlZmluZWRcbiAgICB9KTtcbiAgICByZXR1cm4gc2VuZEVtYWlsUmVxdWVzdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGFya2VyRW50aXR5U3RhdGUocGFya2VyU3RhdGU6IFBhcmtlclN0YXRlTW9kZWwsIGVudGl0eURpc3BsYXlOYW1lOiBzdHJpbmcsIHRhZ3M6IG51bWJlcltdLCBlbnRpdHlUeXBlVHJhbnNsYXRlOiBzdHJpbmcsXG4gICAgdGlja2V0SWQ6IG51bWJlciwgZGV0YWlsczogYW55LCBwYXJrZXJCcmVhZGNydW1iVmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IHN0YXRlID0geyAuLi5wYXJrZXJTdGF0ZSB9O1xuICAgIHN0YXRlLnRpY2tldElkZW50aWZpZXIuZW50aXR5RGlzcGxheU5hbWUgPSBlbnRpdHlEaXNwbGF5TmFtZTtcbiAgICBzdGF0ZS50aWNrZXRJZGVudGlmaWVyLnRhZ3MgPSB0YWdzO1xuICAgIHN0YXRlLnRpY2tldElkZW50aWZpZXIuZW50aXR5VHlwZVRyYW5zbGF0ZSA9IGVudGl0eVR5cGVUcmFuc2xhdGU7XG4gICAgc3RhdGUudGlja2V0SWRlbnRpZmllci50aWNrZXRJZCA9IHRpY2tldElkO1xuICAgIHN0YXRlLmRldGFpbHMgPSBkZXRhaWxzO1xuICAgIHN0YXRlLnBhcmtlckJyZWFkY3J1bWJWYWx1ZSA9IHBhcmtlckJyZWFkY3J1bWJWYWx1ZTtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cbiJdfQ==
@@ -4,11 +4,11 @@ import { RateState } from './rate.state';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@ngxs/store";
6
6
  export class RateModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RateModule, imports: [i1.ɵNgxsFeatureModule] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RateModule, imports: [NgxsModule.forFeature([RateState])] }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: RateModule, imports: [i1.ɵNgxsFeatureModule] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RateModule, imports: [NgxsModule.forFeature([RateState])] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RateModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RateModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  declarations: [],
@@ -58,8 +58,8 @@ let RateState = class RateState {
58
58
  rate: null,
59
59
  });
60
60
  }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RateState, deps: [{ token: i1.FacilityRpcServiceProxy }], target: i0.ɵɵFactoryTarget.Injectable }); }
62
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RateState }); }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RateState, deps: [{ token: i1.FacilityRpcServiceProxy }], target: i0.ɵɵFactoryTarget.Injectable }); }
62
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RateState }); }
63
63
  };
64
64
  __decorate([
65
65
  Action(LoadRatesAction, { cancelUncompleted: true })
@@ -101,7 +101,7 @@ RateState = __decorate([
101
101
  })
102
102
  ], RateState);
103
103
  export { RateState };
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RateState, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RateState, decorators: [{
105
105
  type: Injectable
106
106
  }], ctorParameters: () => [{ type: i1.FacilityRpcServiceProxy }], propDecorators: { onLoadRatesAction: [], onLoadTransientPriceTableAction: [], onLoadStickerPriceTableAction: [], onLoadOverflowPriceTableAction: [], onLoadRateByIdAction: [], onGetRateByIdAction: [], onResetRatesAction: [], onClearRateAction: [] } });
107
107
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZS5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbW9kdWxlcy9yYXRlL3JhdGUuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUNwRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUNMLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSw0QkFBNEIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQ3JHLDJCQUEyQixFQUFFLDZCQUE2QixFQUFFLGdCQUFnQixFQUM3RSxNQUFNLGdCQUFnQixDQUFDOzs7QUFlakIsSUFBTSxTQUFTLEdBQWYsTUFBTSxTQUFTO0lBRXBCLFlBQW9CLHVCQUFnRDtRQUFoRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO0lBQUksQ0FBQztJQUczRCxBQUFQLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBcUI7UUFDdkMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBcUI7UUFDdEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFHRCxpQkFBaUIsQ0FBQyxHQUFpQyxFQUFFLE1BQXVCO1FBQzFFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsZUFBZSxFQUFFLFVBQVUsRUFDcEosTUFBTSxDQUFDLGVBQWUsRUFBRSxV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QUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7cURBU3ZEO0FBR0Q7SUFEQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQztvREFTdEQ7QUFHRDtJQURDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQzttREFLeEI7QUFHRDtJQURDLE1BQU0sQ0FBQyxlQUFlLENBQUM7a0RBS3ZCO0FBdEVhO0lBRGIsUUFBUSxFQUFFOzRCQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7MkJBR1Y7QUFaVSxTQUFTO0lBUHJCLEtBQUssQ0FBaUI7UUFDckIsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUU7WUFDUixLQUFLLEVBQUUsRUFBRTtZQUNULElBQUksRUFBRSxJQUFJO1NBQ1g7S0FDRixDQUFDO0dBQ1csU0FBUyxDQTZFckI7OzRGQTdFWSxTQUFTO2tCQVJyQixVQUFVOzRGQXVCVCxpQkFBaUIsTUFZakIsK0JBQStCLE1BSy9CLDZCQUE2QixNQUs3Qiw4QkFBOEIsTUFLOUIsb0JBQW9CLE1BV3BCLG1CQUFtQixNQVduQixrQkFBa0IsTUFPbEIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0IH0gZnJvbSBcIkBuZ3hzL3N0b3JlXCI7XG5pbXBvcnQgeyB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IEJhc2VSYXRlRHRvLCBGYWNpbGl0eVJwY1NlcnZpY2VQcm94eSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXNcIjtcbmltcG9ydCB7XG4gIENsZWFyUmF0ZUFjdGlvbiwgR2V0UmF0ZUJ5SWRBY3Rpb24sIExvYWRPdmVyZmxvd1ByaWNlVGFibGVBY3Rpb24sIExvYWRSYXRlQnlJZEFjdGlvbiwgTG9hZFJhdGVzQWN0aW9uLFxuICBMb2FkU3RpY2tlclByaWNlVGFibGVBY3Rpb24sIExvYWRUcmFuc2llbnRQcmljZVRhYmxlQWN0aW9uLCBSZXNldFJhdGVzQWN0aW9uXG59IGZyb20gXCIuL3JhdGUuYWN0aW9uc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJhdGVTdGF0ZU1vZGVsIHtcbiAgcmF0ZXM6IEJhc2VSYXRlRHRvW107XG4gIHJhdGU6IEJhc2VSYXRlRHRvO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5AU3RhdGU8UmF0ZVN0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ3JhdGUnLFxuICBkZWZhdWx0czoge1xuICAgIHJhdGVzOiBbXSxcbiAgICByYXRlOiBudWxsLFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIFJhdGVTdGF0ZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYWNpbGl0eVJwY1NlcnZpY2VQcm94eTogRmFjaWxpdHlScGNTZXJ2aWNlUHJveHkpIHsgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgcmF0ZXMoc3RhdGU6IFJhdGVTdGF0ZU1vZGVsKTogQmFzZVJhdGVEdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLnJhdGVzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyByYXRlKHN0YXRlOiBSYXRlU3RhdGVNb2RlbCk6IEJhc2VSYXRlRHRvIHtcbiAgICByZXR1cm4gc3RhdGUucmF0ZTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFJhdGVzQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZFJhdGVzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFJhdGVTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkUmF0ZXNBY3Rpb24pIHtcbiAgICBjb25zdCBnZXRSYXRlcyQgPSB0aGlzLmZhY2lsaXR5UnBjU2VydmljZVByb3h5LmdldEJhc2VSYXRlcyhhY3Rpb24uZ3VpZCwgYWN0aW9uLnBhcmtJZCwgYWN0aW9uLmluY2x1ZGVTcGVjaWFsUmF0ZXMsIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8/Lm1heFJlc3VsdHMsXG4gICAgICBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5zZWFyY2hUZXJtLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvPy5vcmRlckJ5LmNvbHVtbiwgYWN0aW9uLnNlYXJjaFBhcmFtc0R0bz8ub3JkZXJCeS5vcmRlckRpcmVjdGlvbik7XG5cbiAgICByZXR1cm4gZ2V0UmF0ZXMkLnBpcGUodGFwKHJhdGVzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgcmF0ZXM6IHJhdGVzLmRhdGEsXG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRUcmFuc2llbnRQcmljZVRhYmxlQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZFRyYW5zaWVudFByaWNlVGFibGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UmF0ZVN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRUcmFuc2llbnRQcmljZVRhYmxlQWN0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMub25Mb2FkUmF0ZXNBY3Rpb24oY3R4LCBhY3Rpb24pO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkU3RpY2tlclByaWNlVGFibGVBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkU3RpY2tlclByaWNlVGFibGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UmF0ZVN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRTdGlja2VyUHJpY2VUYWJsZUFjdGlvbikge1xuICAgIHJldHVybiB0aGlzLm9uTG9hZFJhdGVzQWN0aW9uKGN0eCwgYWN0aW9uKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZE92ZXJmbG93UHJpY2VUYWJsZUFjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRPdmVyZmxvd1ByaWNlVGFibGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UmF0ZVN0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRPdmVyZmxvd1ByaWNlVGFibGVBY3Rpb24pIHtcbiAgICByZXR1cm4gdGhpcy5vbkxvYWRSYXRlc0FjdGlvbihjdHgsIGFjdGlvbik7XG4gIH1cblxuICBAQWN0aW9uKExvYWRSYXRlQnlJZEFjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRSYXRlQnlJZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxSYXRlU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZFJhdGVCeUlkQWN0aW9uKSB7XG4gICAgY29uc3QgZ2V0UmF0ZUJ5SWQkID0gdGhpcy5mYWNpbGl0eVJwY1NlcnZpY2VQcm94eS5nZXRCYXNlUmF0ZUJ5TnVtYmVyKGFjdGlvbi5ndWlkLCBhY3Rpb24ucGFya0lkLCBhY3Rpb24ucmF0ZUlkKTtcblxuICAgIHJldHVybiBnZXRSYXRlQnlJZCQucGlwZSh0YXAocmF0ZSA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIHJhdGVzOiAhIXJhdGUuZGF0YSA/IFtyYXRlLmRhdGFdIDogW10sXG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKEdldFJhdGVCeUlkQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uR2V0UmF0ZUJ5SWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UmF0ZVN0YXRlTW9kZWw+LCBhY3Rpb246IEdldFJhdGVCeUlkQWN0aW9uKSB7XG4gICAgY29uc3QgZ2V0UmF0ZUJ5SWQkID0gdGhpcy5mYWNpbGl0eVJwY1NlcnZpY2VQcm94eS5nZXRCYXNlUmF0ZUJ5SWQoYWN0aW9uLmd1aWQsIGFjdGlvbi5wYXJrSWQsIGFjdGlvbi5yYXRlSWQpO1xuXG4gICAgcmV0dXJuIGdldFJhdGVCeUlkJC5waXBlKHRhcChyYXRlID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgcmF0ZTogcmF0ZS5kYXRhLFxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihSZXNldFJhdGVzQWN0aW9uKVxuICBvblJlc2V0UmF0ZXNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UmF0ZVN0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgcmF0ZXM6IFtdLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhclJhdGVBY3Rpb24pXG4gIG9uQ2xlYXJSYXRlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFJhdGVTdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHJhdGU6IG51bGwsXG4gICAgfSk7XG4gIH1cblxufVxuIl19
@@ -4,11 +4,11 @@ import { RemoteValidationState } from './remote-validation.state';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@ngxs/store";
6
6
  export class RemoteValidationModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteValidationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RemoteValidationModule, imports: [i1.ɵNgxsFeatureModule] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteValidationModule, imports: [NgxsModule.forFeature([RemoteValidationState])] }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RemoteValidationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: RemoteValidationModule, imports: [i1.ɵNgxsFeatureModule] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RemoteValidationModule, imports: [NgxsModule.forFeature([RemoteValidationState])] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteValidationModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RemoteValidationModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  declarations: [],
@@ -52,8 +52,8 @@ let RemoteValidationState = class RemoteValidationState {
52
52
  ticketBreadcrumbValue: null
53
53
  });
54
54
  }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteValidationState, deps: [{ token: i1.Store }, { token: i2.Rpc.ValidationRpcServiceProxy }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
56
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteValidationState }); }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RemoteValidationState, deps: [{ token: i1.Store }, { token: i2.Rpc.ValidationRpcServiceProxy }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
56
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RemoteValidationState }); }
57
57
  };
58
58
  __decorate([
59
59
  Action(SearchTicketAction, { cancelUncompleted: true })
@@ -77,7 +77,7 @@ RemoteValidationState = __decorate([
77
77
  })
78
78
  ], RemoteValidationState);
79
79
  export { RemoteValidationState };
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteValidationState, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RemoteValidationState, decorators: [{
81
81
  type: Injectable
82
82
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Rpc.ValidationRpcServiceProxy }, { type: i3.TranslateService }], propDecorators: { onSearchTicketAction: [], onClearSearchTicketAction: [] } });
83
83
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLXZhbGlkYXRpb24uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvcmVtb3RlLXZhbGlkYXRpb24vcmVtb3RlLXZhbGlkYXRpb24uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUF1QixNQUFNLGFBQWEsQ0FBQztBQUUzRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7O0FBZW5GLElBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXFCO0lBRWhDLFlBQ1UsS0FBWSxFQUNaLHlCQUF3RCxFQUN4RCxnQkFBa0M7UUFGbEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBK0I7UUFDeEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUM1QyxDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWlDO1FBQzNELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQztJQUM3QixDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBaUM7UUFDbkUsT0FBTyxLQUFLLENBQUMscUJBQXFCLENBQUM7SUFDckMsQ0FBQztJQUdELG9CQUFvQixDQUFDLEdBQTZDLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBc0I7UUFDNUksTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEUsSUFBSSxjQUFvRixDQUFDO1FBQ3pGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxRQUFRLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLEtBQUssU0FBUyxDQUFDLFdBQVc7Z0JBQ3hCLGNBQWMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztnQkFDckksTUFBTTtZQUVSLEtBQUssU0FBUyxDQUFDLGFBQWE7Z0JBQzFCLGNBQWMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsNENBQTRDLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztnQkFDakosTUFBTTtZQUVSO2dCQUNFLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0RBQW9ELFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQy9FLE1BQU07UUFDVixDQUFDO1FBRUQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDN0MsTUFBTSxxQkFBcUIsR0FBRyxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxLQUFLLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN2SCxHQUFHLENBQUMsVUFBVSxDQUFDO2dCQUNiLGFBQWEsRUFBRSxhQUFhLENBQUMsSUFBSTtnQkFDakMscUJBQXFCO2FBQ3RCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FDQSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QseUJBQXlCLENBQUMsR0FBNkM7UUFDckUsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLGFBQWEsRUFBRSxJQUFJO1lBQ25CLHFCQUFxQixFQUFFLElBQUk7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F2RFUscUJBQXFCO21IQUFyQixxQkFBcUI7O0FBbUJoQztJQURDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDO2lFQTZCdkQ7QUFHRDtJQURDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDO3NFQU01RDtBQTlDYTtJQURiLFFBQVEsRUFBRTtnREFHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO3dEQUdWO0FBaEJVLHFCQUFxQjtJQVBqQyxLQUFLLENBQTZCO1FBQ2pDLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsUUFBUSxFQUFFO1lBQ1IsYUFBYSxFQUFFLElBQUk7WUFDbkIscUJBQXFCLEVBQUUsSUFBSTtTQUM1QjtLQUNGLENBQUM7R0FDVyxxQkFBcUIsQ0F3RGpDOzs0RkF4RFkscUJBQXFCO2tCQVJqQyxVQUFVO3FKQTJCVCxvQkFBb0IsTUErQnBCLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uIH0gZnJvbSAnLi4vLi4vZW51bXMvbG9jYWxpemF0aW9uLmVudW0nO1xuaW1wb3J0IHsgUnBjIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eSc7XG5pbXBvcnQgeyBTdWJNb2R1bGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBUcmFuc2llbnRWYWxpZGF0aW9uU2hhbGxvd0R0bywgVHJhbnNpZW50VmFsaWRhdGlvblNoYWxsb3dEdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGEgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgU2lkZW5hdlN0YXRlIH0gZnJvbSAnLi4vc2lkZW5hdi9zaWRlbmF2LnN0YXRlJztcbmltcG9ydCB7IENsZWFyU2VhcmNoVGlja2V0QWN0aW9uLCBTZWFyY2hUaWNrZXRBY3Rpb24gfSBmcm9tICcuL3JlbW90ZS12YWxpZGF0aW9uLmFjdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZVZhbGlkYXRpb25TdGF0ZU1vZGVsIHtcbiAgc2VhcmNoUmVzdWx0czogVHJhbnNpZW50VmFsaWRhdGlvblNoYWxsb3dEdG9bXTtcbiAgdGlja2V0QnJlYWRjcnVtYlZhbHVlOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKClcbkBTdGF0ZTxSZW1vdGVWYWxpZGF0aW9uU3RhdGVNb2RlbD4oe1xuICBuYW1lOiAncmVtb3RlVmFsaWRhdGlvbicsXG4gIGRlZmF1bHRzOiB7XG4gICAgc2VhcmNoUmVzdWx0czogbnVsbCxcbiAgICB0aWNrZXRCcmVhZGNydW1iVmFsdWU6IG51bGxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgUmVtb3RlVmFsaWRhdGlvblN0YXRlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHZhbGlkYXRpb25ScGNTZXJ2aWNlUHJveHk6IFJwYy5WYWxpZGF0aW9uUnBjU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWFyY2hSZXN1bHRzKHN0YXRlOiBSZW1vdGVWYWxpZGF0aW9uU3RhdGVNb2RlbCkge1xuICAgIHJldHVybiBzdGF0ZS5zZWFyY2hSZXN1bHRzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0aWNrZXRCcmVhZGNydW1iVmFsdWUoc3RhdGU6IFJlbW90ZVZhbGlkYXRpb25TdGF0ZU1vZGVsKSB7XG4gICAgcmV0dXJuIHN0YXRlLnRpY2tldEJyZWFkY3J1bWJWYWx1ZTtcbiAgfVxuXG4gIEBBY3Rpb24oU2VhcmNoVGlja2V0QWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uU2VhcmNoVGlja2V0QWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFJlbW90ZVZhbGlkYXRpb25TdGF0ZU1vZGVsPiwgeyBndWlkLCBwYXJrSWQsIHNlYXJjaFZhbHVlLCB0aWNrZXREYXRlVGltZUluU2Vjb25kcyB9OiBTZWFyY2hUaWNrZXRBY3Rpb24pIHtcbiAgICBjb25zdCB0aWNrZXQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24udGlja2V0KTtcbiAgICBsZXQgc2VhcmNoUmVzdWx0cyQ6IE9ic2VydmFibGU8VHJhbnNpZW50VmFsaWRhdGlvblNoYWxsb3dEdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGE+O1xuICAgIGNvbnN0IHN1Yk1vZHVsZSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2lkZW5hdlN0YXRlLnN1Yk1vZHVsZSk7XG4gICAgc3dpdGNoIChzdWJNb2R1bGUpIHtcbiAgICAgIGNhc2UgU3ViTW9kdWxlLkVWYWxpZGF0aW9uOlxuICAgICAgICBzZWFyY2hSZXN1bHRzJCA9IHRoaXMudmFsaWRhdGlvblJwY1NlcnZpY2VQcm94eS50cmFuc2llbnRWYWxpZGF0aW9uU2hhbGxvd1NlYXJjaChndWlkLCBwYXJrSWQsIHNlYXJjaFZhbHVlLCB0aWNrZXREYXRlVGltZUluU2Vjb25kcyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFN1Yk1vZHVsZS5Ib3RlbEd1ZXN0c0lPOlxuICAgICAgICBzZWFyY2hSZXN1bHRzJCA9IHRoaXMudmFsaWRhdGlvblJwY1NlcnZpY2VQcm94eS5ob3RlbEd1ZXN0SU9UcmFuc2llbnRWYWxpZGF0aW9uU2hhbGxvd1NlYXJjaChndWlkLCBwYXJrSWQsIHNlYXJjaFZhbHVlLCB0aWNrZXREYXRlVGltZUluU2Vjb25kcyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLmVycm9yKGBzZWFyY2ggdGlja2V0IGFjdGlvbiBub3QgZGVmaW5lZCBmb3Igc3ViIG1vZHVsZTogJHtzdWJNb2R1bGV9YCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHRoaXMub25DbGVhclNlYXJjaFRpY2tldEFjdGlvbihjdHgpO1xuXG4gICAgcmV0dXJuIHNlYXJjaFJlc3VsdHMkLnBpcGUodGFwKHNlYXJjaFJlc3VsdHMgPT4ge1xuICAgICAgY29uc3QgdGlja2V0QnJlYWRjcnVtYlZhbHVlID0gc2VhcmNoUmVzdWx0cz8uZGF0YT8ubGVuZ3RoID4gMCA/IGAke3RpY2tldH0gIyR7c2VhcmNoUmVzdWx0cy5kYXRhWzBdLnRpY2tldE51bX1gIDogbnVsbDtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgc2VhcmNoUmVzdWx0czogc2VhcmNoUmVzdWx0cy5kYXRhLFxuICAgICAgICB0aWNrZXRCcmVhZGNydW1iVmFsdWVcbiAgICAgIH0pO1xuICAgIH1cbiAgICApKTtcbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYXJTZWFyY2hUaWNrZXRBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25DbGVhclNlYXJjaFRpY2tldEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxSZW1vdGVWYWxpZGF0aW9uU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWFyY2hSZXN1bHRzOiBudWxsLFxuICAgICAgdGlja2V0QnJlYWRjcnVtYlZhbHVlOiBudWxsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -4,11 +4,11 @@ import { SecurityState } from './security.state';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@ngxs/store";
6
6
  export class SecurityModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SecurityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SecurityModule, imports: [i1.ɵNgxsFeatureModule] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SecurityModule, imports: [NgxsModule.forFeature([SecurityState])] }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SecurityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SecurityModule, imports: [i1.ɵNgxsFeatureModule] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SecurityModule, imports: [NgxsModule.forFeature([SecurityState])] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SecurityModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SecurityModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  declarations: [],
@@ -25,8 +25,8 @@ let SecurityState = class SecurityState {
25
25
  }
26
26
  }));
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SecurityState, deps: [{ token: i1.UsersCloudServiceProxy }, { token: i2.MessageBarService }], target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SecurityState }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SecurityState, deps: [{ token: i1.UsersCloudServiceProxy }, { token: i2.MessageBarService }], target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SecurityState }); }
30
30
  };
31
31
  __decorate([
32
32
  Action(ChangePasswordAction)
@@ -37,7 +37,7 @@ SecurityState = __decorate([
37
37
  })
38
38
  ], SecurityState);
39
39
  export { SecurityState };
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SecurityState, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SecurityState, decorators: [{
41
41
  type: Injectable
42
42
  }], ctorParameters: () => [{ type: i1.UsersCloudServiceProxy }, { type: i2.MessageBarService }], propDecorators: { onChangePasswordAction: [] } });
43
43
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHkuc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvc2VjdXJpdHkvc2VjdXJpdHkuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWdCLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUEwQixxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzVHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBU25ELElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7SUFFeEIsWUFBb0Isc0JBQThDLEVBQVUsaUJBQW9DO1FBQTVGLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQ2hILENBQUM7SUFHTSxzQkFBc0IsQ0FBQyxHQUFxQyxFQUFFLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRTtRQUNuRyxNQUFNLElBQUksR0FBRyxJQUFJLHFCQUFxQixDQUFDLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDOUQsR0FBRyxDQUFDO1lBQ0YsSUFBSSxFQUFFLEdBQUcsRUFBRTtnQkFDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQzNFLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hELENBQUM7U0FDRixDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7K0dBakJVLGFBQWE7bUhBQWIsYUFBYTs7QUFNakI7SUFETixNQUFNLENBQUMsb0JBQW9CLENBQUM7MkRBWTVCO0FBakJVLGFBQWE7SUFIekIsS0FBSyxDQUFxQjtRQUN6QixJQUFJLEVBQUUsVUFBVTtLQUNqQixDQUFDO0dBQ1csYUFBYSxDQWtCekI7OzRGQWxCWSxhQUFhO2tCQUp6QixVQUFVOzJIQVVGLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbiwgU3RhdGUsIFN0YXRlQ29udGV4dCB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsaXphdGlvbiB9IGZyb20gJy4uLy4uL2VudW1zL2xvY2FsaXphdGlvbi5lbnVtJztcbmltcG9ydCB7IHBhcnNlQXBpRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpLWhlbHBlci51dGlsJztcbmltcG9ydCB7IFVzZXJzQ2xvdWRTZXJ2aWNlUHJveHksIFVzZXJVcGRhdGVQYXNzd29yZER0byB9IGZyb20gJy4vLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgQ2hhbmdlUGFzc3dvcmRBY3Rpb24gfSBmcm9tICcuL3NlY3VyaXR5LmFjdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5U3RhdGVNb2RlbCB7XG59XG5cbkBJbmplY3RhYmxlKClcbkBTdGF0ZTxTZWN1cml0eVN0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ3NlY3VyaXR5Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2VjdXJpdHlTdGF0ZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1c2Vyc0Nsb3VkU2VydmljZVByb3h5OiBVc2Vyc0Nsb3VkU2VydmljZVByb3h5LCBwcml2YXRlIG1lc3NhZ2VCYXJTZXJ2aWNlOiBNZXNzYWdlQmFyU2VydmljZSkge1xuICB9XG5cbiAgQEFjdGlvbihDaGFuZ2VQYXNzd29yZEFjdGlvbilcbiAgcHVibGljIG9uQ2hhbmdlUGFzc3dvcmRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2VjdXJpdHlTdGF0ZU1vZGVsPiwgeyBjdXJyZW50UGFzc3dvcmQsIG5ld1Bhc3N3b3JkIH0pIHtcbiAgICBjb25zdCBkYXRhID0gbmV3IFVzZXJVcGRhdGVQYXNzd29yZER0byh7IGN1cnJlbnRQYXNzd29yZCwgcGFzc3dvcmQ6IG5ld1Bhc3N3b3JkIH0pO1xuICAgIHJldHVybiB0aGlzLnVzZXJzQ2xvdWRTZXJ2aWNlUHJveHkudXBkYXRlVXNlclBhc3N3b3JkKGRhdGEpLnBpcGUoXG4gICAgICB0YXAoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5zdWNjZXNzKExvY2FsaXphdGlvbi5jaGFuZ2VfcGFzc3dvcmRfc3VjY2Vzc19tc2cpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihwYXJzZUFwaUVycm9yTWVzc2FnZShlKSk7XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgfVxufVxuIl19
@@ -4,11 +4,11 @@ import { SidenavState } from '../sidenav/sidenav.state';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@ngxs/store";
6
6
  export class SidenavModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SidenavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SidenavModule, imports: [i1.ɵNgxsFeatureModule] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SidenavModule, imports: [NgxsModule.forFeature([SidenavState])] }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidenavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SidenavModule, imports: [i1.ɵNgxsFeatureModule] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidenavModule, imports: [NgxsModule.forFeature([SidenavState])] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SidenavModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidenavModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  imports: [