vcomply-workflow-engine 2.0.1 → 2.0.4

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 (191) hide show
  1. package/bundles/vcomply-workflow-engine.umd.js +3162 -307
  2. package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
  3. package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.js +1 -1
  4. package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.js +1 -1
  5. package/esm2015/lib/formgroup/cs-checkbox/cs-checkbox.component.js +5 -2
  6. package/esm2015/lib/formgroup/cs-checkbox/cs-checkbox.component.ngfactory.js +5 -2
  7. package/esm2015/lib/formgroup/cs-checkbox/cs-checkbox.component.ngsummary.json +1 -1
  8. package/esm2015/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +33 -0
  9. package/esm2015/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.js +33 -0
  10. package/esm2015/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngsummary.json +1 -0
  11. package/esm2015/lib/formgroup/formgroup.module.js +23 -4
  12. package/esm2015/lib/formgroup/formgroup.module.ngfactory.js +1 -1
  13. package/esm2015/lib/formgroup/formgroup.module.ngsummary.json +1 -1
  14. package/esm2015/lib/interfaces/confirmation-alert.js +1 -1
  15. package/esm2015/lib/log-an-issue/log-an-issue.component.js +1 -1
  16. package/esm2015/lib/more-option/more-option.component.js +55 -4
  17. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.js +3 -1
  18. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.ngfactory.js +1 -1
  19. package/esm2015/lib/sharedComponents/assessment-preview/assessment-preview.module.ngfactory.js +1 -1
  20. package/esm2015/lib/sharedComponents/define-framework-listing/define-framework-listing.component.js +29 -0
  21. package/esm2015/lib/sharedComponents/define-framework-listing/define-framework-listing.component.ngfactory.js +211 -0
  22. package/esm2015/lib/sharedComponents/define-framework-listing/define-framework-listing.component.ngsummary.json +1 -0
  23. package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.js +1 -1
  24. package/esm2015/lib/sharedComponents/risk-classification/risk-classification.component.js +1 -1
  25. package/esm2015/lib/sharedComponents/roles-list/roles-list.component.js +25 -0
  26. package/esm2015/lib/sharedComponents/roles-list/roles-list.component.ngfactory.js +51 -0
  27. package/esm2015/lib/sharedComponents/roles-list/roles-list.component.ngsummary.json +1 -0
  28. package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.js +5 -2
  29. package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ngfactory.js +5 -2
  30. package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ngsummary.json +1 -1
  31. package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +5 -2
  32. package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.js +5 -2
  33. package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngsummary.json +1 -1
  34. package/esm2015/lib/ui-kit/formgroup/formgroup.module.ngfactory.js +1 -1
  35. package/esm2015/lib/ui-kit/no-data/no-data.component.js +36 -0
  36. package/esm2015/lib/ui-kit/no-data/no-data.component.ngfactory.js +27 -0
  37. package/esm2015/lib/ui-kit/no-data/no-data.component.ngsummary.json +1 -0
  38. package/esm2015/lib/ui-kit/no-data/no-data.module.js +13 -0
  39. package/esm2015/lib/ui-kit/no-data/no-data.module.ngfactory.js +12 -0
  40. package/esm2015/lib/ui-kit/no-data/no-data.module.ngsummary.json +1 -0
  41. package/esm2015/lib/ui-kit/pagination/pagination/pagination.component.js +1 -1
  42. package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js +1 -1
  43. package/esm2015/lib/workflow-assessment/workflow-assessment.component.js +1 -1
  44. package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +1 -1
  45. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +19 -10
  46. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +68 -38
  47. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngsummary.json +1 -1
  48. package/esm2015/lib/workflow-engine.module.js +11 -4
  49. package/esm2015/lib/workflow-engine.module.ngfactory.js +9 -6
  50. package/esm2015/lib/workflow-engine.module.ngsummary.json +1 -1
  51. package/esm2015/lib/workflow-policy/workflow-policy.component.js +1 -1
  52. package/esm2015/lib/workflow-program/constants.js +43 -0
  53. package/esm2015/lib/workflow-program/constants.ngsummary.json +1 -0
  54. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.js +15 -0
  55. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.ngfactory.js +19 -0
  56. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.ngsummary.json +1 -0
  57. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.js +214 -0
  58. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ngfactory.js +229 -0
  59. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ngsummary.json +1 -0
  60. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.js +15 -0
  61. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.ngfactory.js +19 -0
  62. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.ngsummary.json +1 -0
  63. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.js +46 -0
  64. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.ngsummary.json +1 -0
  65. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.js +109 -0
  66. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.ngfactory.js +37 -0
  67. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.ngsummary.json +1 -0
  68. package/esm2015/lib/workflow-program/create-program-ui/checkbox/checkbox.component.js +40 -0
  69. package/esm2015/lib/workflow-program/create-program-ui/checkbox/checkbox.component.ngfactory.js +24 -0
  70. package/esm2015/lib/workflow-program/create-program-ui/checkbox/checkbox.component.ngsummary.json +1 -0
  71. package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.js +89 -0
  72. package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.ngfactory.js +25 -0
  73. package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.ngsummary.json +1 -0
  74. package/esm2015/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.js +45 -0
  75. package/esm2015/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.ngfactory.js +44 -0
  76. package/esm2015/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.ngsummary.json +1 -0
  77. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.js +29 -0
  78. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.ngfactory.js +209 -0
  79. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.ngsummary.json +1 -0
  80. package/esm2015/lib/workflow-program/create-program-ui/directives/input-trim.directive.js +17 -0
  81. package/esm2015/lib/workflow-program/create-program-ui/directives/input-trim.directive.ngsummary.json +1 -0
  82. package/esm2015/lib/workflow-program/create-program-ui/file-pill/file-pill.component.js +24 -0
  83. package/esm2015/lib/workflow-program/create-program-ui/file-pill/file-pill.component.ngfactory.js +38 -0
  84. package/esm2015/lib/workflow-program/create-program-ui/file-pill/file-pill.component.ngsummary.json +1 -0
  85. package/esm2015/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.js +75 -0
  86. package/esm2015/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ngfactory.js +25 -0
  87. package/esm2015/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ngsummary.json +1 -0
  88. package/esm2015/lib/workflow-program/create-program-ui/form-field/form-field.component.js +16 -0
  89. package/esm2015/lib/workflow-program/create-program-ui/form-field/form-field.component.ngfactory.js +24 -0
  90. package/esm2015/lib/workflow-program/create-program-ui/form-field/form-field.component.ngsummary.json +1 -0
  91. package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.js +23 -0
  92. package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ngfactory.js +23 -0
  93. package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ngsummary.json +1 -0
  94. package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.js +138 -0
  95. package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.ngfactory.js +58 -0
  96. package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.ngsummary.json +1 -0
  97. package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination.module.js +21 -0
  98. package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination.module.ngfactory.js +13 -0
  99. package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination.module.ngsummary.json +1 -0
  100. package/esm2015/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.js +12 -0
  101. package/esm2015/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.ngsummary.json +1 -0
  102. package/esm2015/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.js +13 -0
  103. package/esm2015/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.ngsummary.json +1 -0
  104. package/esm2015/lib/workflow-program/create-program-ui/pipes/search.pipe.js +20 -0
  105. package/esm2015/lib/workflow-program/create-program-ui/pipes/search.pipe.ngsummary.json +1 -0
  106. package/esm2015/lib/workflow-program/create-program-ui/role-list/role-list.component.js +160 -0
  107. package/esm2015/lib/workflow-program/create-program-ui/role-list/role-list.component.ngfactory.js +91 -0
  108. package/esm2015/lib/workflow-program/create-program-ui/role-list/role-list.component.ngsummary.json +1 -0
  109. package/esm2015/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.js +41 -0
  110. package/esm2015/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.ngfactory.js +23 -0
  111. package/esm2015/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.ngsummary.json +1 -0
  112. package/esm2015/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.js +15 -0
  113. package/esm2015/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.ngfactory.js +19 -0
  114. package/esm2015/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.ngsummary.json +1 -0
  115. package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.js +239 -0
  116. package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngfactory.js +183 -0
  117. package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngsummary.json +1 -0
  118. package/esm2015/lib/workflow-program/workflow-program.component.js +894 -0
  119. package/esm2015/lib/workflow-program/workflow-program.component.ngfactory.js +851 -0
  120. package/esm2015/lib/workflow-program/workflow-program.component.ngsummary.json +1 -0
  121. package/esm2015/lib/workflow-risk/workflow-risk.component.js +1 -1
  122. package/esm2015/lib/workflow-services/programs.service.js +240 -0
  123. package/esm2015/lib/workflow-services/programs.service.ngsummary.json +1 -0
  124. package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.js +1 -1
  125. package/esm2015/vcomply-workflow-engine.js +181 -152
  126. package/esm2015/vcomply-workflow-engine.ngsummary.json +1 -1
  127. package/fesm2015/vcomply-workflow-engine.js +2856 -153
  128. package/fesm2015/vcomply-workflow-engine.js.map +1 -1
  129. package/lib/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -0
  130. package/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +11 -0
  131. package/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.d.ts +1 -0
  132. package/lib/interfaces/confirmation-alert.d.ts +1 -0
  133. package/lib/sharedComponents/define-framework-listing/define-framework-listing.component.d.ts +10 -0
  134. package/lib/sharedComponents/define-framework-listing/define-framework-listing.component.ngfactory.d.ts +1 -0
  135. package/lib/sharedComponents/roles-list/roles-list.component.d.ts +8 -0
  136. package/lib/sharedComponents/roles-list/roles-list.component.ngfactory.d.ts +1 -0
  137. package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -0
  138. package/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +1 -0
  139. package/lib/ui-kit/no-data/no-data.component.d.ts +18 -0
  140. package/lib/ui-kit/no-data/no-data.component.ngfactory.d.ts +1 -0
  141. package/lib/ui-kit/no-data/no-data.module.d.ts +2 -0
  142. package/lib/ui-kit/no-data/no-data.module.ngfactory.d.ts +3 -0
  143. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +3 -1
  144. package/lib/workflow-program/constants.d.ts +40 -0
  145. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.d.ts +5 -0
  146. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.ngfactory.d.ts +1 -0
  147. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +91 -0
  148. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ngfactory.d.ts +1 -0
  149. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.d.ts +5 -0
  150. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.ngfactory.d.ts +1 -0
  151. package/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.d.ts +13 -0
  152. package/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.d.ts +24 -0
  153. package/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.ngfactory.d.ts +1 -0
  154. package/lib/workflow-program/create-program-ui/checkbox/checkbox.component.d.ts +13 -0
  155. package/lib/workflow-program/create-program-ui/checkbox/checkbox.component.ngfactory.d.ts +1 -0
  156. package/lib/workflow-program/create-program-ui/create-program-ui.module.d.ts +2 -0
  157. package/lib/workflow-program/create-program-ui/create-program-ui.module.ngfactory.d.ts +3 -0
  158. package/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.d.ts +17 -0
  159. package/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.ngfactory.d.ts +1 -0
  160. package/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.d.ts +10 -0
  161. package/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.ngfactory.d.ts +1 -0
  162. package/lib/workflow-program/create-program-ui/directives/input-trim.directive.d.ts +3 -0
  163. package/lib/workflow-program/create-program-ui/file-pill/file-pill.component.d.ts +9 -0
  164. package/lib/workflow-program/create-program-ui/file-pill/file-pill.component.ngfactory.d.ts +1 -0
  165. package/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.d.ts +32 -0
  166. package/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ngfactory.d.ts +1 -0
  167. package/lib/workflow-program/create-program-ui/form-field/form-field.component.d.ts +9 -0
  168. package/lib/workflow-program/create-program-ui/form-field/form-field.component.ngfactory.d.ts +1 -0
  169. package/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.d.ts +8 -0
  170. package/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ngfactory.d.ts +1 -0
  171. package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +24 -0
  172. package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.ngfactory.d.ts +1 -0
  173. package/lib/workflow-program/create-program-ui/pagination/pagination.module.d.ts +2 -0
  174. package/lib/workflow-program/create-program-ui/pagination/pagination.module.ngfactory.d.ts +3 -0
  175. package/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.d.ts +4 -0
  176. package/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.d.ts +4 -0
  177. package/lib/workflow-program/create-program-ui/pipes/search.pipe.d.ts +4 -0
  178. package/lib/workflow-program/create-program-ui/role-list/role-list.component.d.ts +61 -0
  179. package/lib/workflow-program/create-program-ui/role-list/role-list.component.ngfactory.d.ts +1 -0
  180. package/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.d.ts +17 -0
  181. package/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.ngfactory.d.ts +1 -0
  182. package/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.d.ts +5 -0
  183. package/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.ngfactory.d.ts +1 -0
  184. package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.d.ts +87 -0
  185. package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngfactory.d.ts +1 -0
  186. package/lib/workflow-program/workflow-program.component.d.ts +153 -0
  187. package/lib/workflow-program/workflow-program.component.ngfactory.d.ts +1 -0
  188. package/lib/workflow-services/programs.service.d.ts +82 -0
  189. package/package.json +2 -2
  190. package/vcomply-workflow-engine.d.ts +180 -151
  191. package/vcomply-workflow-engine.metadata.json +1 -1
@@ -11,7 +11,8 @@ export class MoreOptionComponent {
11
11
  CAP: 'Select what additional information you would like to include in the policy.',
12
12
  CAR: 'Select what additional information you would like to include in the responsibility.',
13
13
  CAS: 'Select what additional information you would like to include in the survey.',
14
- LAI: 'Select what additional information you would like to include in the issue.'
14
+ LAI: 'Select what additional information you would like to include in the issue.',
15
+ CAPR: 'Select what additional information you would like to include in the program.'
15
16
  };
16
17
  this.moreOptionsList = {
17
18
  AAR: [
@@ -330,6 +331,56 @@ export class MoreOptionComponent {
330
331
  hidden: false,
331
332
  code: 'EVIDENCE'
332
333
  }
334
+ ],
335
+ CAPR: [
336
+ {
337
+ imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg',
338
+ name: 'Reviewer',
339
+ tooltipTitle: 'Reviewer',
340
+ tooltipMessage: `This options lets you specify a review lifecycle for the policy document.
341
+ You can select a reviewer and determine how often the policy needs to be reviewed.`,
342
+ checked: false,
343
+ hidden: false,
344
+ code: 'REVIEWER'
345
+ },
346
+ {
347
+ imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
348
+ name: 'Overseer',
349
+ tooltipTitle: 'Overseer',
350
+ tooltipMessage: 'Overseer enables you to designate persons to oversee the risk management process.',
351
+ checked: false,
352
+ hidden: false,
353
+ code: 'OVERSEER'
354
+ },
355
+ {
356
+ imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg',
357
+ name: 'Assessments',
358
+ code: 'ASSESSMENT',
359
+ tooltipTitle: ' Assessments',
360
+ tooltipMessage: 'Assessments allow you to associate outcome based-questionnaires or self-assessment questionnaires with a responsibility. These need to be completed by the assignee as a part of completing the responsibility.',
361
+ checked: false,
362
+ hidden: false,
363
+ isDisabled: false,
364
+ disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.'
365
+ },
366
+ {
367
+ imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',
368
+ name: 'Evidence',
369
+ code: 'FORMATE_EVIDENCE',
370
+ tooltipTitle: 'Evidence',
371
+ tooltipMessage: 'You can also require evidence of completion of the responsibility to be provided.',
372
+ checked: false,
373
+ hidden: false,
374
+ },
375
+ {
376
+ imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/custom-fields.svg',
377
+ name: 'Custom Fields',
378
+ code: 'CUSTOM_FIELDS',
379
+ tooltipTitle: ' Custom Fields',
380
+ tooltipMessage: 'You can upload a format for this responsibility and you can also require evidence of completion of the responsibility to be provided.',
381
+ checked: false,
382
+ hidden: false,
383
+ },
333
384
  ]
334
385
  };
335
386
  }
@@ -394,8 +445,8 @@ export class MoreOptionComponent {
394
445
  if (element.code === 'CHECKPOINTS_NEW') {
395
446
  element.isDisabled = true;
396
447
  }
397
- if (element.code === 'ASSESSMENT') {
398
- element.isDisabled = true;
448
+ if (element.code === 'CHECKPOINTS') {
449
+ element.isDisabled = false;
399
450
  }
400
451
  }
401
452
  if (evt.includes("CHECKPOINTS")) {
@@ -444,4 +495,4 @@ MoreOptionComponent.propDecorators = {
444
495
  selectedOption: [{ type: Output }],
445
496
  isRCSelected: [{ type: Input }]
446
497
  };
447
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9yZS1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzFGLE1BQU0sT0FBTyxtQkFBbUI7SUFrVjlCO1FBalZTLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxFQUFFLENBQUE7UUFDZixlQUFVLEdBQUcsS0FBSyxDQUFBO1FBQ2pCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUU5QixxQkFBZ0IsR0FBUTtZQUN2QixHQUFHLEVBQUUsMkVBQTJFO1lBQ2hGLEdBQUcsRUFBRSw2RUFBNkU7WUFDbEYsR0FBRyxFQUFFLHFGQUFxRjtZQUMxRixHQUFHLEVBQUUsNkVBQTZFO1lBQ2xGLEdBQUcsRUFBRSw0RUFBNEU7U0FDakYsQ0FBQztRQUVGLG9CQUFlLEdBQVE7WUFDckIsR0FBRyxFQUFFO2dCQUNIO29CQUNFLFFBQVEsRUFBRSxrRkFBa0Y7b0JBQzVGLElBQUksRUFBRSxlQUFlO29CQUNyQixZQUFZLEVBQUUsZUFBZTtvQkFDN0IsY0FBYyxFQUFFLG1GQUFtRjtvQkFDbkcsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsSUFBSSxFQUFFLFVBQVU7aUJBQ2pCO2dCQUNEO29CQUNFLFFBQVEsRUFBRSxpRkFBaUY7b0JBQzNGLElBQUksRUFBRSwwQkFBMEI7b0JBQ2hDLFlBQVksRUFBRSwwQkFBMEI7b0JBQ3hDLGNBQWMsRUFBRSwrREFBK0Q7b0JBQy9FLE9BQU8sRUFBRSxLQUFLO29C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VyxFQUFFLEVBQUU7Z0JBQ3pELE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1NBQ0E7SUFDSCxDQUFDOzs7WUE3YkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHErRkFBMkM7O2FBRTVDOzs7OzhCQUVFLEtBQUs7eUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzZCQUNMLE1BQU07MkJBQ04sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbW9yZS1vcHRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3JlLW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW9yZS1vcHRpb24uY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9yZU9wdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBjdXJyZW50V29ya2Zsb3cgPSAnJztcclxuICBASW5wdXQoKSBvcGVuZWRGcm9tID0gJydcclxuICBASW5wdXQoKSBpc0VkaXRNb2RlID0gZmFsc2VcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgaXNSQ1NlbGVjdGVkID0gZmFsc2U7XHJcblxyXG4gIHBsYWNlaG9sZGVyVGV4dHM6IGFueSA9IHtcclxuICAgQUFSOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSByaXNrLicsXHJcbiAgIENBUDogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcG9saWN5LicsXHJcbiAgIENBUjogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgQ0FTOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBzdXJ2ZXkuJyxcclxuICAgTEFJOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBpc3N1ZS4nXHJcbiAgfTtcclxuXHJcbiAgbW9yZU9wdGlvbnNMaXN0OiBhbnkgPSB7XHJcbiAgICBBQVI6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSaXNrIE92ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSaXNrIE92ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ092ZXJzZWVyIGVuYWJsZXMgeW91IHRvIGRlc2lnbmF0ZSBwZXJzb25zIHRvIG92ZXJzZWUgdGhlIHJpc2sgbWFuYWdlbWVudCBwcm9jZXNzLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9wcmlvcml0eS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSaXNrIE1pdGlnYXRpb24gUHJpb3JpdHknLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgTWl0aWdhdGlvbiBQcmlvcml0eScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdUaGlzIHNldHMgdGhlIHByaW9yaXR5IGxldmVsIGZvciB0aGUgbWl0aWdhdGlvbiBvZiBlYWNoIHJpc2suJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdNSVRJR0FUSU9OJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb2JqZWN0aXZlcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZWNvbW1lbmRlZCBNaXRpZ2F0aW9uIFBsYW5zJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZWNvbW1lbmRlZCBNaXRpZ2F0aW9uIFBsYW5zJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ1NwZWNpZnkgdGhlIG1pdGlnYXRpb24gcGxhbiB0aGF0IGNhbiBiZSB1bmRlcnRha2VuIHRvIG1pdGlnYXRlIHRoZSByaXNrLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnTUlUSUdBVElPTl9QTEFOJ1xyXG4gICAgICB9XHJcbiAgICBdLFxyXG4gICAgQ0FQOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmRcclxuICAgICAgICAgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuIFlvdSBjYW4gYXR0cmlidXRlIGEgcG9saWN5IHRvIG9uZSBvciBtb3JlIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMuXHJcbiAgICAgICAgICBXaGVyZSB5b3UgYXR0cmlidXRlIGEgcG9saWN5IHRvIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyLCB0aGF0IHBvbGljeSB3aWxsIGJlIHNob3duIGFzIGEgcG9saWN5XHJcbiAgICAgICAgICAgdGhhdCBpcyByZXF1aXJlZCB0byBiZSBhdHRlc3RlZCBieSBhbGwgdGhlIHBlcnNvbnMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgUmVzcG9uc2liaWxpdHkgQ2VudGVyLlxyXG4gICAgICAgICAgICBUaGUgcGVyZm9ybWFuY2Ugb2YgYSBwb2xpY3kgYXNzaWduZWQgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgd2lsbCBhbHNvIGNvbnRyaWJ1dGUgdG8gdGhlXHJcbiAgICAgICAgICAgIG92ZXJhbGwgcGVyZm9ybWFuY2Ugb2YgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlci5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFU1BPTlNJQklMSVRZX0NFTlRFUidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jldmlld2VyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jldmlld2VyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXZpZXdlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbnMgbGV0cyB5b3Ugc3BlY2lmeSBhIHJldmlldyBsaWZlY3ljbGUgZm9yIHRoZSBwb2xpY3kgZG9jdW1lbnQuXHJcbiAgICAgICAgIFlvdSBjYW4gc2VsZWN0IGEgcmV2aWV3ZXIgYW5kIGRldGVybWluZSBob3cgb2Z0ZW4gdGhlIHBvbGljeSBuZWVkcyB0byBiZSByZXZpZXdlZC5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFVklFV0VSJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2hlY2twb2ludHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQ2hlY2twb2ludHMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYENoZWNrcG9pbnRzIGVuYWJsZSB5b3UgdG8gY29uZmlybSBhIHBlcnNvbuKAmXMgdW5kZXJzdGFuZGluZyBvZiB0aGUgcG9saWN5IGRvY3VtZW50LlxyXG4gICAgICAgICBZb3UgY2FuIGNyZWF0ZSBxdWVzdGlvbnMgYmFzZWQgb24gdGhlIHBvbGljeSBjb250ZW50IGFuZCByZXF1aXJlIHRoYXQgdGhlIHJlYWRlciBvZiB0aGUgcG9saWN5XHJcbiAgICAgICAgIGFuc3dlcnMgdGhlc2UgcXVlc3Rpb25zIGNvcnJlY3RseSBiZWZvcmUgcHJvY2VlZGluZyB0byBjb21wbGV0ZSB0aGUgYXR0ZXN0YXRpb24uXHJcbiAgICAgICAgYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdDSEVDS1BPSU5UUydcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgT3ZlcnNlZXJzIGFyZSBwZXJzb25zIHdobyBvdmVyc2VlIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgIEFzIHRoZSBwZXJzb24gY3JlYXRpbmcgdGhlIHBvbGljeSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBc3NvY2lhdGVkIERvY3VtZW50cycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXNzb2NpYXRlZCBEb2N1bWVudHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQXNzb2NpYXRlZCBkb2N1bWVudHMgYXJlIGZpbGVzIHRoYXQgbWlnaHQgYmUgcmVsYXRlZCB0byB0aGUgcG9saWN5LiBUaGVzZSBjb3VsZCBiZSBkb2N1bWVudHMgd2hpY2ggYXJlIHJlbGF0ZWRcclxuICAgICAgICAgdG8gdGhlIHBvbGljeSBvciBhcmUgYSBzdWJzZXQgb2YgdGhlIHBvbGljeSB0aGF0IGlzIGJlaW5nIGNyZWF0ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdBU1NPQ0lBVEVEX0RPQ1VNRU5UUydcclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIENBUjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb2JqZWN0aXZlcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPYmplY3RpdmUnLFxyXG4gICAgICAgIGNvZGU6ICdPQkpFQ1RJVkUnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ09iamVjdGl2ZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdUaGUgb2JqZWN0aXZlIGFsbG93cyB5b3UgdG8gc3BlY2lmeSBhbiBvYmplY3RpdmUgZm9yIHRoZSByZXNwb25zaWJpbGl0eS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgICBjb2RlOiAnUkMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIHJlcHJlc2VudCB5b3VyIG9yZ2FuaXphdGlvbmFsIGFuZCBvcGVyYXRpb25hbCBpbmZyYXN0cnVjdHVyZS48YnI+XHJcbiAgICAgICAgICBZb3UgY2FuIGFzc2lnbiBhIHJlc3BvbnNpYmlsaXR5IHRvIG9uZSBvciBtb3JlIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMuIFdoZXJlIHlvdSBhc3NpZ24gYSByZXNwb25zaWJpbGl0eSB0byBhIFJlc3BvbnNpYmlsaXR5IENlbnRlcixcclxuICAgICAgICAgIHRoYXQgcmVzcG9uc2liaWxpdHkgd2lsbCBiZSBzaG93biBhcyBhIHJlc3BvbnNpYmlsaXR5IHRoYXQgaXMgcmVxdWlyZWQgdG8gYmUgY29tcGxldGVkIGJ5IHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIuXHJcbiAgICAgICAgICBUaGUgcGVyZm9ybWFuY2Ugb2YgYSByZXNwb25zaWJpbGl0eSBhc3NpZ25lZCB0byBhIFJlc3BvbnNpYmlsaXR5IENlbnRlciB3aWxsIGFsc28gY29udHJpYnV0ZSB0byB0aGUgb3ZlcmFsbCBwZXJmb3JtYW5jZSBvZiB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NhdGVnb3J5LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENhdGVnb3J5JyxcclxuICAgICAgICBjb2RlOiAnQ0FURUdPUlknLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENhdGVnb3J5JyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFJlc3BvbnNpYmlsaXR5IENhdGVnb3JpZXMgZW5hYmxlIHlvdSB0byBncm91cCBzaW1pbGFyIHJlc3BvbnNpYmlsaXRpZXMgdG9nZXRoZXIuXHJcbiAgICAgICAgICBBbGxvY2F0aW5nIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBSZXNwb25zaWJpbGl0eSBDYXRlZ29yeSBhbGxvd3MgeW91IHRvIHZpZXcgYSBncm91cCBvciBzaW1pbGFyIHJlc3BvbnNpYmlsaXRpZXMgYXQgb25jZS5cclxuICAgICAgICAgIEl0IGFsc28gYWxsb3dzIHlvdSB0byB2aWV3IHRoZSBwZXJmb3JtYW5jZSBvZiB0aG9zZSBjb2xsZWN0aXZlIHJlc3BvbnNpYmlsaXRpZXMuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZm9ybWF0LWV2aWRlbmNlLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0Zvcm1hdCAmIEV2aWRlbmNlJyxcclxuICAgICAgICBjb2RlOiAnRk9STUFURV9FVklERU5DRScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnIEZvcm1hdCAmIEV2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ1lvdSBjYW4gdXBsb2FkIGEgZm9ybWF0IGZvciB0aGlzIHJlc3BvbnNpYmlsaXR5IGFuZCB5b3UgY2FuIGFsc28gcmVxdWlyZSBldmlkZW5jZSBvZiBjb21wbGV0aW9uIG9mIHRoZSByZXNwb25zaWJpbGl0eSB0byBiZSBwcm92aWRlZC4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3Nlc3NtZW50cy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBc3Nlc3NtZW50cycsXHJcbiAgICAgICAgY29kZTogJ0FTU0VTU01FTlQnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBBc3Nlc3NtZW50cycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdBc3Nlc3NtZW50cyBhbGxvdyB5b3UgdG8gYXNzb2NpYXRlIG91dGNvbWUgYmFzZWQtcXVlc3Rpb25uYWlyZXMgb3Igc2VsZi1hc3Nlc3NtZW50IHF1ZXN0aW9ubmFpcmVzIHdpdGggYSByZXNwb25zaWJpbGl0eS4gVGhlc2UgbmVlZCB0byBiZSBjb21wbGV0ZWQgYnkgdGhlIGFzc2lnbmVlIGFzIGEgcGFydCBvZiBjb21wbGV0aW5nIHRoZSByZXNwb25zaWJpbGl0eS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOiAnQW4gYXNzZXNzbWVudCBjYW4gYmUgbGlua2VkIHdpdGggYSByZXNwb25zaWJpbGl0eSBvbmx5IGFmdGVyIHJlbW92aW5nIHRoZSBhc3NvY2lhdGVkIGNoZWNrcG9pbnRzLidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NoZWNrcG9pbnRzLnN2ZycsXHJcbiAgICAgIC8vICBuYW1lOiAnQ2hlY2twb2ludHMgPHNwYW4gKm5nSWY9XCJmYWxzZVwiIGNsYXNzPVwiY2hlY2twb2ludC12ZXJzaW9uXCI+VjIuMDwvc3Bhbj4gPGkgY2xhc3M9XCJpY29ucyBkZXByZWNpYXRpb24taWNvbiB2eC1mcy0xNiB2eC1tbC0yXCIgYXBwVG9vbHRpcD1cIlRoaXMgaXMgYW4gb3V0LW9mLWRhdGUgdmVyc2lvbiBvZiB0aGUgQ2hlY2twb2ludHMgZmVhdHVyZS4gVG8gYWRkIGNoZWNrcG9pbnRzIHRoYXQgYXJlIG9ubHkgcmVsZXZhbnQgdG8gdGhpcyByZXNwb25zaWJpbGl0eSB5b3UgY2FuIHVzZSB0aGUgbmV3IENoZWNrcG9pbnRzIGZlYXR1cmUuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIGFuIGV4aXN0aW5nIHF1ZXN0aW9ubmFpcmUgdGVtcGxhdGUgdXNpbmcgdGhlIEFzc2Vzc21lbnRzIGZlYXR1cmUuXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPiYjeGU5MzA7PC9pPicsXHJcbiAgICAgICAgbmFtZTogJ0NoZWNrcG9pbnRzIDxpIGNsYXNzPVwiaWNvbnMgZGVwcmVjaWF0aW9uLWljb24gdngtZnMtMTYgdngtbWwtMlwiIGFwcFRvb2x0aXA9XCJUaGlzIGlzIGFuIG91dC1vZi1kYXRlIHZlcnNpb24gb2YgdGhlIENoZWNrcG9pbnRzIGZlYXR1cmUuIFRvIGFkZCBjaGVja3BvaW50cyB0aGF0IGFyZSBvbmx5IHJlbGV2YW50IHRvIHRoaXMgcmVzcG9uc2liaWxpdHkgeW91IGNhbiB1c2UgdGhlIG5ldyBDaGVja3BvaW50cyBmZWF0dXJlLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSBhbiBleGlzdGluZyBxdWVzdGlvbm5haXJlIHRlbXBsYXRlIHVzaW5nIHRoZSBBc3Nlc3NtZW50cyBmZWF0dXJlLlwiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTMwOzwvaT4nLFxyXG4gICAgICAgIGNvZGU6ICdDSEVDS1BPSU5UUycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQ2hlY2twb2ludHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnVGhpcyBpcyBhbiBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cyBmZWF0dXJlLiBUbyBhZGQgY2hlY2twb2ludHMgdGhhdCBhcmUgb25seSByZWxldmFudCB0byB0aGlzIHJlc3BvbnNpYmlsaXR5IHlvdSBjYW4gdXNlIHRoZSBuZXcgQ2hlY2twb2ludHMgZmVhdHVyZS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgYW4gZXhpc3RpbmcgcXVlc3Rpb25uYWlyZSB0ZW1wbGF0ZSB1c2luZyB0aGUgQXNzZXNzbWVudHMgZmVhdHVyZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOiAnVGhlIGNoZWNrcG9pbnRzIGZlYXR1cmUgaXMgcmVwbGFjZWQgd2l0aCB0aGUgbmV3ICYgZW5oYW5jZWQgYXNzZXNzbWVudCBmdW5jdGlvbmFsaXR5LiBTZWxlY3QgdGhlIDxzdHJvbmc+QXNzZXNzbWVudHM8L3N0cm9uZz4gb3B0aW9uIGJlbG93IHRvIGNyZWF0ZSBpbnRlcmFjdGl2ZSBvdXRjb21lLWJhc2VkIG9yIHNlbGYtYXNzZXNzbWVudCBxdWVzdGlvbm5haXJlcy4nXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jaGVja3BvaW50cy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdDaGVja3BvaW50cycsXHJcbiAgICAgICAgY29kZTogJ0NIRUNLUE9JTlRTX05FVycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQ2hlY2twb2ludHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnQ2hlY2twb2ludHMgYWxsb3cgeW91IHRvIHNwZWNpZnkgbXVsdGlwbGUgc3RlcHMgZm9yIGEgc3BlY2lmaWMgcmVzcG9uc2liaWxpdHkgd2hpY2ggbmVlZCB0byBiZSBjb21wbGV0ZWQgYXMgcGFydCBvZiBjb21wbGV0aW5nIHRoZSByZXNwb25zaWJpbGl0eS4gT2Z0ZW4gY2hlY2twb2ludHMgYXJlIHVzZWQgdG8gcmVwbGFjZSBpbnN0cnVjdGlvbiBtYW51YWxzLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBpc0Rpc2FibGVkOiBmYWxzZSxcclxuICAgICAgICBkaXNhYmxlZE1lc3NhZ2U6ICdOZXcgQ2hlY2twb2ludHMgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgb3V0LW9mLWRhdGUgdmVyc2lvbiBvZiB0aGUgQ2hlY2twb2ludHMuJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmlza3Muc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmlzayBDbGFzc2lmaWNhdGlvbicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBDbGFzc2lmaWNhdGlvbicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdZb3UgY2FuIHNwZWNpZnkgdGhlIGxldmVsIG9mIHJpc2sgdGhhdCB0aGUgb3JnYW5pemF0aW9uIHdpbGwgYmUgZXhwb3NlZCB0byBpZiB0aGUgcmVzcG9uc2liaWxpdHkgaXMgbm90IGNvbXBsZXRlZC4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JJU0tfQ0xBU1NJRklDQVRJT04nXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXZpZXdlci5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZXZpZXdlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnQSBSZXZpZXdlciBpcyBhIHBlcnNvbiB0aGF0IGlzIHRhc2tlZCB3aXRoIHJldmlld2luZyB0aGUgY29tcGxldGVkIHJlc3BvbnNpYmlsaXR5LicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUkVWSUVXRVInXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYE92ZXJzaWdodCBlbmFibGVzIHlvdSB0byBkZXNpZ25hdGUgcGVyc29ucyB0byBvdmVyc2VlIHRoZSByZXNwb25zaWJpbGl0eS5cclxuICAgICAgICAgIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSByZXNwb25zaWJpbGl0eS48YnI+XHJcbiAgICAgICAgICBBcyB0aGUgcGVyc29uIGNyZWF0aW5nIHRoZSByZXNwb25zaWJpbGl0eSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSByZXNwb25zaWJpbGl0eS5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ09WRVJTRUVSJ1xyXG4gICAgICB9LFxyXG4gICAgICAvLyB7XHJcbiAgICAgIC8vICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXVkaXQuc3ZnJyxcclxuICAgICAgLy8gICBuYW1lOiAnQVNTVVJBTkNFJyxcclxuICAgICAgLy8gICB0b29sdGlwVGl0bGU6ICdSRVFVSVJFUyBBVURJVD8nLFxyXG4gICAgICAvLyAgIHRvb2x0aXBNZXNzYWdlOiAnU2VsZWN0IHRoZSB0ZXN0IHBsYW4gY2F0ZWdvcmllcyB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGFkZCB0aGlzIHJlc3BvbnNpYmlsaXR5IHRvLicsXHJcbiAgICAgIC8vICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIC8vICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgLy8gICBjb2RlOiAnQVNTVVJBTkNFJyxcclxuICAgICAgLy8gICBpc0Rpc2FibGVkOiB0cnVlLFxyXG4gICAgICAvLyAgIGRpc2FibGVkTWVzc2FnZTogJ1RoaXMgcmVzcG9uc2liaWxpdHkgY2FuIGJlIHNjaGVkdWxlZCBmb3IgYW4gYXVkaXQgb25seSBhZnRlciB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyIGlzIHNlbGVjdGVkLidcclxuICAgICAgLy8gfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2F1ZGl0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQVNTVVJBTkNFJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ1NlbGVjdCB0aGUgdGVzdCBwbGFuIGNhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBhZGQgdGhpcyByZXNwb25zaWJpbGl0eSB0by4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0FTU1VSQU5DRSdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2F1ZGl0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1JFUVVJUkVTIEFVRElUPycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUkVRVUlSRVMgQVVESVQ/JyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ1NlbGVjdCB0aGUgdGVzdCBwbGFuIGNhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBhZGQgdGhpcyByZXNwb25zaWJpbGl0eSB0by4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFUVVJUkVTX0FVRElUJyxcclxuICAgICAgICBpc0Rpc2FibGVkOiB0cnVlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogJ1RoaXMgcmVzcG9uc2liaWxpdHkgY2FuIGJlIHNjaGVkdWxlZCBmb3IgYW4gYXVkaXQgb25seSBhZnRlciB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyIGlzIHNlbGVjdGVkLidcclxuICAgICAgfSxcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL3Jpc2stbWl0aWdhdGlvbi1wcmlvcml0eS5zdmcnLFxyXG4gICAgICAvLyAgIG5hbWU6ICdBZGQgYW4gYXBwJyxcclxuICAgICAgLy8gICB0b29sdGlwVGl0bGU6ICcnLFxyXG4gICAgICAvLyAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcclxuICAgICAgLy8gICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgLy8gaGlkZGVuOiBmYWxzZSxcclxuICAgICAgLy8gICBjb2RlOiAnQVBQUydcclxuICAgICAgLy8gfVxyXG4gICAgXSxcclxuICAgIENBUzogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdGb3JtYXQgJmFtcDsgRXZpZGVuY2UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH1cclxuICAgIF0sXHJcblxyXG4gICAgIExBSTogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZXhjZXB0aW9uLXR5cGUuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRXhjZXB0aW9uIHR5cGUnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0V4Y2VwdGlvbiB0eXBlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ0V4Y2VwdGlvbiB0eXBlIGxldHMgeW91IHNwZWNpZnkgd2hldGhlciB0aGVyZSBpcyBhIGRlc2lnbiBvciBhbiBvcGVyYXRpb25hbCBlZmZlY3RpdmVuZXNzIHByb2JsZW0uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdFWENFUFRJT05fVFlQRSdcclxuICAgICAgfSxcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2lzc3VlLXR5cGUuc3ZnJyxcclxuICAgICAgLy8gICBuYW1lOiAnSXNzdWUgdHlwZScsXHJcbiAgICAgIC8vICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgLy8gICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgIC8vICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIC8vICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgLy8gICBjb2RlOiAnSVNTVUVfVFlQRSdcclxuICAgICAgLy8gfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3ByaW9yaXR5LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1ByaW9yaXR5JyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdQcmlvcml0eScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdUaGlzIHNldHMgdGhlIHByaW9yaXR5IGxldmVsIGZvciByZXNvbHZpbmcgZWFjaCBpc3N1ZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1BSSU9SSVRZJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Fzc29jaWF0ZWQtcmlza3Muc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzb2NpYXRlZCBSaXNrcycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXNzb2NpYXRlZCBSaXNrcycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdBc3NvY2lhdGVkIHJpc2tzIGxldHMgeW91IHNwZWNpZnkgdGhlIHJpc2tzIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcyBpc3N1ZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0FTU09DSUFURURfUklTS1MnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ092ZXJzZWVycyBhcmUgdGhlIHBlcnNvbnMgcmVzcG9uc2libGUgZm9yIG92ZXJzZWVpbmcgYW4gaXNzdWUuIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIGlzc3VlIHN0YXR1cy4gQXMgdGhlIHBlcnNvbiByZXBvcnRpbmcgdGhpcyBpc3N1ZSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIHN1Y2ggZW1haWwgbm90aWZpY2F0aW9ucy4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ09WRVJTSUdIVCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnRXZpZGVuY2UnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnWW91IGNhbiByZXF1aXJlIHRoYXQgdGhlIHBlcnNvbiByZXNvbHZpbmcgdGhlIGlzc3VlIHVwbG9hZHMgZXZpZGVuY2UgdG8gY29uZmlybScsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnRVZJREVOQ0UnXHJcbiAgICAgIH1cclxuICAgIF1cclxuICB9O1xyXG5cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgaWYoIXRoaXMuaXNSQ1NlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUi5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vIGlmKGVsZS5jb2RlID09PSAnQVNTVVJBTkNFJykge1xyXG4gICAgICAgIC8vICAgZWxlLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgaWYoZWxlLmNvZGUgPT09ICdSRVFVSVJFU19BVURJVCcpIHtcclxuICAgICAgICAgIGVsZS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gaWYoZWxlLmNvZGUgPT09ICdBU1NVUkFOQ0UnKSB7XHJcbiAgICAgICAgLy8gICBlbGUuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBpZihlbGUuY29kZSA9PT0gJ1JFUVVJUkVTX0FVRElUJykge1xyXG4gICAgICAgICAgZWxlLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgY29uc3QgaW5kZXggPSB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlLmNvZGUgPT09ICdDSEVDS1BPSU5UUycpO1xyXG4gICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVJbaW5kZXhdLmhpZGRlbiA9IHRoaXMuaXNFZGl0TW9kZSA9PT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RNb3JlT3B0aW9uKGV2ZW50OiBhbnksIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiZXZlbnQgPT0+XCIsIGV2ZW50LCB0aGlzLmN1cnJlbnRXb3JrZmxvdywgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddW2luZGV4XSk7XHJcbiAgICBpZih0aGlzLmN1cnJlbnRXb3JrZmxvdyA9PT0gJ0NBUicgJiYgZXZlbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycgJiYgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddW2luZGV4XS5jaGVja2VkICkge1xyXG5cclxuICAgICAgZXZlbnRbJ2NoZWNrcG9pbnRfbmV3J10gPSB0cnVlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLmVtaXQoZXZlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZXZlbnRbJ2NoZWNrcG9pbnRfbmV3J10gPSBmYWxzZTtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddW2luZGV4XS5jaGVja2VkID0gIWV2ZW50LmNoZWNrZWQgO1xyXG4gICAgICBjb25zb2xlLmxvZyhcInRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XVtpbmRleF0gPT09PlwiLCB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd11baW5kZXhdLCBldmVudC5jaGVja2VkKVxyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLmVtaXQoZXZlbnQpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgcG9wdWxhdGUoZXZ0OiBhbnkpe1xyXG4gICAgY29uc29sZS5sb2coXCJldmVudCA9PT0+XCIsIGV2dCk7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3cpe1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgaWYgKGV2dC5pbmNsdWRlcyhlbGVtZW50LmNvZGUpKXtcclxuICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICB9ZWxzZXtcclxuICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICB9XHJcbiAgICAgICBpZihldnQuaW5jbHVkZXMoXCJDSEVDS1BPSU5UU19ORVdcIikpIHtcclxuICAgICAgICAgaWYoZWxlbWVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFMnKSB7XHJcbiAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgfVxyXG4gICAgICAgICBpZihlbGVtZW50LmNvZGUgPT09ICdBU1NFU1NNRU5UJykge1xyXG4gICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWVcclxuICAgICAgICAgfVxyXG4gICAgICAgfVxyXG4gICAgICAgaWYoZXZ0LmluY2x1ZGVzKFwiQVNTRVNTTUVOVFwiKSkge1xyXG4gICAgICAgIGlmKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycpIHtcclxuICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGVsZW1lbnQuY29kZSA9PT0gJ0FTU0VTU01FTlQnKSB7XHJcbiAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmKGV2dC5pbmNsdWRlcyhcIkNIRUNLUE9JTlRTXCIpKSB7XHJcbiAgICAgICAgaWYoZWxlbWVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJykge1xyXG4gICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoZWxlbWVudC5jb2RlID09PSAnQVNTRVNTTUVOVCcpIHtcclxuICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICB9XHJcblxyXG4gIH1cclxuICBoaWRlRWxlbWVudHMoaGlkZGVuTGlzdDphbnkpe1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFdvcmtmbG93KXtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICBpZiAoaGlkZGVuTGlzdC5pbmNsdWRlcyhlbGVtZW50LmNvZGUpKXtcclxuICAgICAgICAgICAgZWxlbWVudC5oaWRkZW4gPSB0cnVlO1xyXG4gICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICBlbGVtZW50LmhpZGRlbiA9IGZhbHNlO1xyXG4gICAgICAgICB9XHJcblxyXG4gICAgICB9KTtcclxuICAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldEFsbCh3b3JrZmxvd1R5cGU6c3RyaW5nKXtcclxuICAgIGlmKHRoaXMubW9yZU9wdGlvbnNMaXN0W3dvcmtmbG93VHlwZV0pe1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdFt3b3JrZmxvd1R5cGVdLmZvckVhY2goKGVsZW1lbnQ6YW55KSA9PiB7XHJcbiAgICAgICAgZWxlbWVudC5jaGVja2VkID0gZmFsc2U7XHJcbiAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
498
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9yZS1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzFGLE1BQU0sT0FBTyxtQkFBbUI7SUFxWTlCO1FBcFlTLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxFQUFFLENBQUE7UUFDZixlQUFVLEdBQUcsS0FBSyxDQUFBO1FBQ2pCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUU5QixxQkFBZ0IsR0FBUTtZQUN2QixHQUFHLEVBQUUsMkVBQTJFO1lBQ2hGLEdBQUcsRUFBRSw2RUFBNkU7WUFDbEYsR0FBRyxFQUFFLHFGQUFxRjtZQUMxRixHQUFHLEVBQUUsNkVBQTZFO1lBQ2xGLEdBQUcsRUFBRSw0RUFBNEU7WUFDakYsSUFBSSxFQUFDLDhFQUE4RTtTQUNuRixDQUFDO1FBRUYsb0JBQWUsR0FBUTtZQUNyQixHQUFHLEVBQUU7Z0JBQ0g7b0JBQ0UsUUFBUSxFQUFFLGtGQUFrRjtvQkFDNUYsSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLFlBQVksRUFBRSxlQUFlO29CQUM3QixjQUFjLEVBQUUsbUZBQW1GO29CQUNuRyxPQUFPLEVBQUUsS0FBSztvQkFDZCxNQUFNLEVBQUUsS0FBSztvQkFDYixJQUFJLEVBQUUsVUFBVTtpQkFDakI7Z0JBQ0Q7b0JBQ0UsUUFBUSxFQUFFLGlGQUFpRjtvQkFDM0YsSUFBSSxFQUFFLDBCQUEwQjtvQkFDaEMsWUFBWSxFQUFFLDBCQUEwQjtvQkFDeEMsY0FBYyxFQUFFLCtEQUErRDtv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WUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBVyxFQUFFLEVBQUU7Z0JBQ3pELE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1NBQ0E7SUFDSCxDQUFDOzs7WUFoZkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHErRkFBMkM7O2FBRTVDOzs7OzhCQUVFLEtBQUs7eUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzZCQUNMLE1BQU07MkJBQ04sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbW9yZS1vcHRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3JlLW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW9yZS1vcHRpb24uY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9yZU9wdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBjdXJyZW50V29ya2Zsb3cgPSAnJztcclxuICBASW5wdXQoKSBvcGVuZWRGcm9tID0gJydcclxuICBASW5wdXQoKSBpc0VkaXRNb2RlID0gZmFsc2VcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgaXNSQ1NlbGVjdGVkID0gZmFsc2U7XHJcblxyXG4gIHBsYWNlaG9sZGVyVGV4dHM6IGFueSA9IHtcclxuICAgQUFSOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSByaXNrLicsXHJcbiAgIENBUDogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcG9saWN5LicsXHJcbiAgIENBUjogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgQ0FTOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBzdXJ2ZXkuJyxcclxuICAgTEFJOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBpc3N1ZS4nLFxyXG4gICBDQVBSOidTZWxlY3Qgd2hhdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4gdGhlIHByb2dyYW0uJ1xyXG4gIH07XHJcblxyXG4gIG1vcmVPcHRpb25zTGlzdDogYW55ID0ge1xyXG4gICAgQUFSOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmlzayBPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdPdmVyc2VlciBlbmFibGVzIHlvdSB0byBkZXNpZ25hdGUgcGVyc29ucyB0byBvdmVyc2VlIHRoZSByaXNrIG1hbmFnZW1lbnQgcHJvY2Vzcy4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ09WRVJTRUVSJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcHJpb3JpdHkuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmlzayBNaXRpZ2F0aW9uIFByaW9yaXR5JyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSaXNrIE1pdGlnYXRpb24gUHJpb3JpdHknLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnVGhpcyBzZXRzIHRoZSBwcmlvcml0eSBsZXZlbCBmb3IgdGhlIG1pdGlnYXRpb24gb2YgZWFjaCByaXNrLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnTUlUSUdBVElPTidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L29iamVjdGl2ZXMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmVjb21tZW5kZWQgTWl0aWdhdGlvbiBQbGFucycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmVjb21tZW5kZWQgTWl0aWdhdGlvbiBQbGFucycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdTcGVjaWZ5IHRoZSBtaXRpZ2F0aW9uIHBsYW4gdGhhdCBjYW4gYmUgdW5kZXJ0YWtlbiB0byBtaXRpZ2F0ZSB0aGUgcmlzay4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ01JVElHQVRJT05fUExBTidcclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIENBUDogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgcmVwcmVzZW50IHlvdXIgb3JnYW5pemF0aW9uYWwgYW5kXHJcbiAgICAgICAgIG9wZXJhdGlvbmFsIGluZnJhc3RydWN0dXJlLiBZb3UgY2FuIGF0dHJpYnV0ZSBhIHBvbGljeSB0byBvbmUgb3IgbW9yZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLlxyXG4gICAgICAgICAgV2hlcmUgeW91IGF0dHJpYnV0ZSBhIHBvbGljeSB0byBhIFJlc3BvbnNpYmlsaXR5IENlbnRlciwgdGhhdCBwb2xpY3kgd2lsbCBiZSBzaG93biBhcyBhIHBvbGljeVxyXG4gICAgICAgICAgIHRoYXQgaXMgcmVxdWlyZWQgdG8gYmUgYXR0ZXN0ZWQgYnkgYWxsIHRoZSBwZXJzb25zIGFzc29jaWF0ZWQgd2l0aCB0aGF0IFJlc3BvbnNpYmlsaXR5IENlbnRlci5cclxuICAgICAgICAgICAgVGhlIHBlcmZvcm1hbmNlIG9mIGEgcG9saWN5IGFzc2lnbmVkIHRvIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyIHdpbGwgYWxzbyBjb250cmlidXRlIHRvIHRoZVxyXG4gICAgICAgICAgICBvdmVyYWxsIHBlcmZvcm1hbmNlIG9mIHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSRVNQT05TSUJJTElUWV9DRU5URVInXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXZpZXdlci5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZXZpZXdlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgVGhpcyBvcHRpb25zIGxldHMgeW91IHNwZWNpZnkgYSByZXZpZXcgbGlmZWN5Y2xlIGZvciB0aGUgcG9saWN5IGRvY3VtZW50LlxyXG4gICAgICAgICBZb3UgY2FuIHNlbGVjdCBhIHJldmlld2VyIGFuZCBkZXRlcm1pbmUgaG93IG9mdGVuIHRoZSBwb2xpY3kgbmVlZHMgdG8gYmUgcmV2aWV3ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSRVZJRVdFUidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NoZWNrcG9pbnRzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdDaGVja3BvaW50cycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBDaGVja3BvaW50cyBlbmFibGUgeW91IHRvIGNvbmZpcm0gYSBwZXJzb27igJlzIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHBvbGljeSBkb2N1bWVudC5cclxuICAgICAgICAgWW91IGNhbiBjcmVhdGUgcXVlc3Rpb25zIGJhc2VkIG9uIHRoZSBwb2xpY3kgY29udGVudCBhbmQgcmVxdWlyZSB0aGF0IHRoZSByZWFkZXIgb2YgdGhlIHBvbGljeVxyXG4gICAgICAgICBhbnN3ZXJzIHRoZXNlIHF1ZXN0aW9ucyBjb3JyZWN0bHkgYmVmb3JlIHByb2NlZWRpbmcgdG8gY29tcGxldGUgdGhlIGF0dGVzdGF0aW9uLlxyXG4gICAgICAgIGAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnQ0hFQ0tQT0lOVFMnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYE92ZXJzZWVycyBhcmUgcGVyc29ucyB3aG8gb3ZlcnNlZSB0aGUgcG9saWN5LlxyXG4gICAgICAgICBUaGVzZSBwZXJzb25zIHdpbGwgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcG9saWN5LlxyXG4gICAgICAgICBBcyB0aGUgcGVyc29uIGNyZWF0aW5nIHRoZSBwb2xpY3ksIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcG9saWN5LlxyXG4gICAgICAgIGAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9mb3JtYXQtZXZpZGVuY2Uuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzb2NpYXRlZCBEb2N1bWVudHMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0Fzc29jaWF0ZWQgRG9jdW1lbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYEFzc29jaWF0ZWQgZG9jdW1lbnRzIGFyZSBmaWxlcyB0aGF0IG1pZ2h0IGJlIHJlbGF0ZWQgdG8gdGhlIHBvbGljeS4gVGhlc2UgY291bGQgYmUgZG9jdW1lbnRzIHdoaWNoIGFyZSByZWxhdGVkXHJcbiAgICAgICAgIHRvIHRoZSBwb2xpY3kgb3IgYXJlIGEgc3Vic2V0IG9mIHRoZSBwb2xpY3kgdGhhdCBpcyBiZWluZyBjcmVhdGVkLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnQVNTT0NJQVRFRF9ET0NVTUVOVFMnXHJcbiAgICAgIH1cclxuICAgIF0sXHJcbiAgICBDQVI6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L29iamVjdGl2ZXMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT2JqZWN0aXZlJyxcclxuICAgICAgICBjb2RlOiAnT0JKRUNUSVZFJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPYmplY3RpdmUnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnVGhlIG9iamVjdGl2ZSBhbGxvd3MgeW91IHRvIHNwZWNpZnkgYW4gb2JqZWN0aXZlIGZvciB0aGUgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgY29kZTogJ1JDJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmQgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuPGJyPlxyXG4gICAgICAgICAgWW91IGNhbiBhc3NpZ24gYSByZXNwb25zaWJpbGl0eSB0byBvbmUgb3IgbW9yZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLiBXaGVyZSB5b3UgYXNzaWduIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIsXHJcbiAgICAgICAgICB0aGF0IHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgc2hvd24gYXMgYSByZXNwb25zaWJpbGl0eSB0aGF0IGlzIHJlcXVpcmVkIHRvIGJlIGNvbXBsZXRlZCBieSB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyLlxyXG4gICAgICAgICAgVGhlIHBlcmZvcm1hbmNlIG9mIGEgcmVzcG9uc2liaWxpdHkgYXNzaWduZWQgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgd2lsbCBhbHNvIGNvbnRyaWJ1dGUgdG8gdGhlIG92ZXJhbGwgcGVyZm9ybWFuY2Ugb2YgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlci5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jYXRlZ29yeS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZXNwb25zaWJpbGl0eSBDYXRlZ29yeScsXHJcbiAgICAgICAgY29kZTogJ0NBVEVHT1JZJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDYXRlZ29yeScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZXNwb25zaWJpbGl0eSBDYXRlZ29yaWVzIGVuYWJsZSB5b3UgdG8gZ3JvdXAgc2ltaWxhciByZXNwb25zaWJpbGl0aWVzIHRvZ2V0aGVyLlxyXG4gICAgICAgICAgQWxsb2NhdGluZyBhIHJlc3BvbnNpYmlsaXR5IHRvIGEgUmVzcG9uc2liaWxpdHkgQ2F0ZWdvcnkgYWxsb3dzIHlvdSB0byB2aWV3IGEgZ3JvdXAgb3Igc2ltaWxhciByZXNwb25zaWJpbGl0aWVzIGF0IG9uY2UuXHJcbiAgICAgICAgICBJdCBhbHNvIGFsbG93cyB5b3UgdG8gdmlldyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhvc2UgY29sbGVjdGl2ZSByZXNwb25zaWJpbGl0aWVzLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdGb3JtYXQgJiBFdmlkZW5jZScsXHJcbiAgICAgICAgY29kZTogJ0ZPUk1BVEVfRVZJREVOQ0UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBGb3JtYXQgJiBFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdZb3UgY2FuIHVwbG9hZCBhIGZvcm1hdCBmb3IgdGhpcyByZXNwb25zaWJpbGl0eSBhbmQgeW91IGNhbiBhbHNvIHJlcXVpcmUgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gYmUgcHJvdmlkZWQuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzZXNzbWVudHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzZXNzbWVudHMnLFxyXG4gICAgICAgIGNvZGU6ICdBU1NFU1NNRU5UJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcgQXNzZXNzbWVudHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnQXNzZXNzbWVudHMgYWxsb3cgeW91IHRvIGFzc29jaWF0ZSBvdXRjb21lIGJhc2VkLXF1ZXN0aW9ubmFpcmVzIG9yIHNlbGYtYXNzZXNzbWVudCBxdWVzdGlvbm5haXJlcyB3aXRoIGEgcmVzcG9uc2liaWxpdHkuIFRoZXNlIG5lZWQgdG8gYmUgY29tcGxldGVkIGJ5IHRoZSBhc3NpZ25lZSBhcyBhIHBhcnQgb2YgY29tcGxldGluZyB0aGUgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogJ0FuIGFzc2Vzc21lbnQgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgYXNzb2NpYXRlZCBjaGVja3BvaW50cy4nXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jaGVja3BvaW50cy5zdmcnLFxyXG4gICAgICAvLyAgbmFtZTogJ0NoZWNrcG9pbnRzIDxzcGFuICpuZ0lmPVwiZmFsc2VcIiBjbGFzcz1cImNoZWNrcG9pbnQtdmVyc2lvblwiPlYyLjA8L3NwYW4+IDxpIGNsYXNzPVwiaWNvbnMgZGVwcmVjaWF0aW9uLWljb24gdngtZnMtMTYgdngtbWwtMlwiIGFwcFRvb2x0aXA9XCJUaGlzIGlzIGFuIG91dC1vZi1kYXRlIHZlcnNpb24gb2YgdGhlIENoZWNrcG9pbnRzIGZlYXR1cmUuIFRvIGFkZCBjaGVja3BvaW50cyB0aGF0IGFyZSBvbmx5IHJlbGV2YW50IHRvIHRoaXMgcmVzcG9uc2liaWxpdHkgeW91IGNhbiB1c2UgdGhlIG5ldyBDaGVja3BvaW50cyBmZWF0dXJlLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSBhbiBleGlzdGluZyBxdWVzdGlvbm5haXJlIHRlbXBsYXRlIHVzaW5nIHRoZSBBc3Nlc3NtZW50cyBmZWF0dXJlLlwiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTMwOzwvaT4nLFxyXG4gICAgICAgIG5hbWU6ICdDaGVja3BvaW50cyA8aSBjbGFzcz1cImljb25zIGRlcHJlY2lhdGlvbi1pY29uIHZ4LWZzLTE2IHZ4LW1sLTJcIiBhcHBUb29sdGlwPVwiVGhpcyBpcyBhbiBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cyBmZWF0dXJlLiBUbyBhZGQgY2hlY2twb2ludHMgdGhhdCBhcmUgb25seSByZWxldmFudCB0byB0aGlzIHJlc3BvbnNpYmlsaXR5IHlvdSBjYW4gdXNlIHRoZSBuZXcgQ2hlY2twb2ludHMgZmVhdHVyZS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgYW4gZXhpc3RpbmcgcXVlc3Rpb25uYWlyZSB0ZW1wbGF0ZSB1c2luZyB0aGUgQXNzZXNzbWVudHMgZmVhdHVyZS5cIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkzMDs8L2k+JyxcclxuICAgICAgICBjb2RlOiAnQ0hFQ0tQT0lOVFMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ1RoaXMgaXMgYW4gb3V0LW9mLWRhdGUgdmVyc2lvbiBvZiB0aGUgQ2hlY2twb2ludHMgZmVhdHVyZS4gVG8gYWRkIGNoZWNrcG9pbnRzIHRoYXQgYXJlIG9ubHkgcmVsZXZhbnQgdG8gdGhpcyByZXNwb25zaWJpbGl0eSB5b3UgY2FuIHVzZSB0aGUgbmV3IENoZWNrcG9pbnRzIGZlYXR1cmUuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIGFuIGV4aXN0aW5nIHF1ZXN0aW9ubmFpcmUgdGVtcGxhdGUgdXNpbmcgdGhlIEFzc2Vzc21lbnRzIGZlYXR1cmUuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogJ1RoZSBjaGVja3BvaW50cyBmZWF0dXJlIGlzIHJlcGxhY2VkIHdpdGggdGhlIG5ldyAmIGVuaGFuY2VkIGFzc2Vzc21lbnQgZnVuY3Rpb25hbGl0eS4gU2VsZWN0IHRoZSA8c3Ryb25nPkFzc2Vzc21lbnRzPC9zdHJvbmc+IG9wdGlvbiBiZWxvdyB0byBjcmVhdGUgaW50ZXJhY3RpdmUgb3V0Y29tZS1iYXNlZCBvciBzZWxmLWFzc2Vzc21lbnQgcXVlc3Rpb25uYWlyZXMuJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2hlY2twb2ludHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQ2hlY2twb2ludHMnLFxyXG4gICAgICAgIGNvZGU6ICdDSEVDS1BPSU5UU19ORVcnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ0NoZWNrcG9pbnRzIGFsbG93IHlvdSB0byBzcGVjaWZ5IG11bHRpcGxlIHN0ZXBzIGZvciBhIHNwZWNpZmljIHJlc3BvbnNpYmlsaXR5IHdoaWNoIG5lZWQgdG8gYmUgY29tcGxldGVkIGFzIHBhcnQgb2YgY29tcGxldGluZyB0aGUgcmVzcG9uc2liaWxpdHkuIE9mdGVuIGNoZWNrcG9pbnRzIGFyZSB1c2VkIHRvIHJlcGxhY2UgaW5zdHJ1Y3Rpb24gbWFudWFscy4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOiAnTmV3IENoZWNrcG9pbnRzIGNhbiBiZSBsaW5rZWQgd2l0aCBhIHJlc3BvbnNpYmlsaXR5IG9ubHkgYWZ0ZXIgcmVtb3ZpbmcgdGhlIG91dC1vZi1kYXRlIHZlcnNpb24gb2YgdGhlIENoZWNrcG9pbnRzLidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jpc2tzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jpc2sgQ2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgQ2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnWW91IGNhbiBzcGVjaWZ5IHRoZSBsZXZlbCBvZiByaXNrIHRoYXQgdGhlIG9yZ2FuaXphdGlvbiB3aWxsIGJlIGV4cG9zZWQgdG8gaWYgdGhlIHJlc3BvbnNpYmlsaXR5IGlzIG5vdCBjb21wbGV0ZWQuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSSVNLX0NMQVNTSUZJQ0FUSU9OJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ0EgUmV2aWV3ZXIgaXMgYSBwZXJzb24gdGhhdCBpcyB0YXNrZWQgd2l0aCByZXZpZXdpbmcgdGhlIGNvbXBsZXRlZCByZXNwb25zaWJpbGl0eS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFVklFV0VSJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBPdmVyc2lnaHQgZW5hYmxlcyB5b3UgdG8gZGVzaWduYXRlIHBlcnNvbnMgdG8gb3ZlcnNlZSB0aGUgcmVzcG9uc2liaWxpdHkuXHJcbiAgICAgICAgICBUaGVzZSBwZXJzb25zIHdpbGwgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdHkuPGJyPlxyXG4gICAgICAgICAgQXMgdGhlIHBlcnNvbiBjcmVhdGluZyB0aGUgcmVzcG9uc2liaWxpdHksIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdHkuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUidcclxuICAgICAgfSxcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2F1ZGl0LnN2ZycsXHJcbiAgICAgIC8vICAgbmFtZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgIC8vICAgdG9vbHRpcFRpdGxlOiAnUkVRVUlSRVMgQVVESVQ/JyxcclxuICAgICAgLy8gICB0b29sdGlwTWVzc2FnZTogJ1NlbGVjdCB0aGUgdGVzdCBwbGFuIGNhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBhZGQgdGhpcyByZXNwb25zaWJpbGl0eSB0by4nLFxyXG4gICAgICAvLyAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAvLyAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIC8vICAgY29kZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgIC8vICAgaXNEaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgLy8gICBkaXNhYmxlZE1lc3NhZ2U6ICdUaGlzIHJlc3BvbnNpYmlsaXR5IGNhbiBiZSBzY2hlZHVsZWQgZm9yIGFuIGF1ZGl0IG9ubHkgYWZ0ZXIgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBpcyBzZWxlY3RlZC4nXHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hdWRpdC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBU1NVUkFOQ0UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdTZWxlY3QgdGhlIHRlc3QgcGxhbiBjYXRlZ29yaWVzIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gYWRkIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdBU1NVUkFOQ0UnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hdWRpdC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSRVFVSVJFUyBBVURJVD8nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1JFUVVJUkVTIEFVRElUPycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdTZWxlY3QgdGhlIHRlc3QgcGxhbiBjYXRlZ29yaWVzIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gYWRkIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSRVFVSVJFU19BVURJVCcsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgICBkaXNhYmxlZE1lc3NhZ2U6ICdUaGlzIHJlc3BvbnNpYmlsaXR5IGNhbiBiZSBzY2hlZHVsZWQgZm9yIGFuIGF1ZGl0IG9ubHkgYWZ0ZXIgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBpcyBzZWxlY3RlZC4nXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9yaXNrLW1pdGlnYXRpb24tcHJpb3JpdHkuc3ZnJyxcclxuICAgICAgLy8gICBuYW1lOiAnQWRkIGFuIGFwcCcsXHJcbiAgICAgIC8vICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgLy8gICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgIC8vICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIC8vIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIC8vICAgY29kZTogJ0FQUFMnXHJcbiAgICAgIC8vIH1cclxuICAgIF0sXHJcbiAgICBDQVM6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jlc3BvbnNpYmlsaXR5LWNlbnRlci5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9mb3JtYXQtZXZpZGVuY2Uuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRm9ybWF0ICZhbXA7IEV2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9XHJcbiAgICBdLFxyXG5cclxuICAgICBMQUk6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2V4Y2VwdGlvbi10eXBlLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0V4Y2VwdGlvbiB0eXBlJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdFeGNlcHRpb24gdHlwZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdFeGNlcHRpb24gdHlwZSBsZXRzIHlvdSBzcGVjaWZ5IHdoZXRoZXIgdGhlcmUgaXMgYSBkZXNpZ24gb3IgYW4gb3BlcmF0aW9uYWwgZWZmZWN0aXZlbmVzcyBwcm9ibGVtLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnRVhDRVBUSU9OX1RZUEUnXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9pc3N1ZS10eXBlLnN2ZycsXHJcbiAgICAgIC8vICAgbmFtZTogJ0lzc3VlIHR5cGUnLFxyXG4gICAgICAvLyAgIHRvb2x0aXBUaXRsZTogJycsXHJcbiAgICAgIC8vICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxyXG4gICAgICAvLyAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAvLyAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIC8vICAgY29kZTogJ0lTU1VFX1RZUEUnXHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9wcmlvcml0eS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdQcmlvcml0eScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUHJpb3JpdHknLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnVGhpcyBzZXRzIHRoZSBwcmlvcml0eSBsZXZlbCBmb3IgcmVzb2x2aW5nIGVhY2ggaXNzdWUuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdQUklPUklUWScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3NvY2lhdGVkLXJpc2tzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0Fzc29jaWF0ZWQgUmlza3MnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0Fzc29jaWF0ZWQgUmlza3MnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnQXNzb2NpYXRlZCByaXNrcyBsZXRzIHlvdSBzcGVjaWZ5IHRoZSByaXNrcyB0aGF0IGFyZSByZWxhdGVkIHRvIHRoaXMgaXNzdWUuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdBU1NPQ0lBVEVEX1JJU0tTJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdPdmVyc2VlcnMgYXJlIHRoZSBwZXJzb25zIHJlc3BvbnNpYmxlIGZvciBvdmVyc2VlaW5nIGFuIGlzc3VlLiBUaGVzZSBwZXJzb25zIHdpbGwgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBpc3N1ZSBzdGF0dXMuIEFzIHRoZSBwZXJzb24gcmVwb3J0aW5nIHRoaXMgaXNzdWUsIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVjZWl2ZSBzdWNoIGVtYWlsIG5vdGlmaWNhdGlvbnMuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0lHSFQnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9mb3JtYXQtZXZpZGVuY2Uuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRXZpZGVuY2UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0V2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ1lvdSBjYW4gcmVxdWlyZSB0aGF0IHRoZSBwZXJzb24gcmVzb2x2aW5nIHRoZSBpc3N1ZSB1cGxvYWRzIGV2aWRlbmNlIHRvIGNvbmZpcm0nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0VWSURFTkNFJ1xyXG4gICAgICB9XHJcbiAgICBdLFxyXG4gICAgQ0FQUiA6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jldmlld2VyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jldmlld2VyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXZpZXdlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbnMgbGV0cyB5b3Ugc3BlY2lmeSBhIHJldmlldyBsaWZlY3ljbGUgZm9yIHRoZSBwb2xpY3kgZG9jdW1lbnQuXHJcbiAgICAgICAgIFlvdSBjYW4gc2VsZWN0IGEgcmV2aWV3ZXIgYW5kIGRldGVybWluZSBob3cgb2Z0ZW4gdGhlIHBvbGljeSBuZWVkcyB0byBiZSByZXZpZXdlZC5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFVklFV0VSJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdPdmVyc2VlciBlbmFibGVzIHlvdSB0byBkZXNpZ25hdGUgcGVyc29ucyB0byBvdmVyc2VlIHRoZSByaXNrIG1hbmFnZW1lbnQgcHJvY2Vzcy4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ09WRVJTRUVSJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzZXNzbWVudHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzZXNzbWVudHMnLFxyXG4gICAgICAgIGNvZGU6ICdBU1NFU1NNRU5UJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcgQXNzZXNzbWVudHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnQXNzZXNzbWVudHMgYWxsb3cgeW91IHRvIGFzc29jaWF0ZSBvdXRjb21lIGJhc2VkLXF1ZXN0aW9ubmFpcmVzIG9yIHNlbGYtYXNzZXNzbWVudCBxdWVzdGlvbm5haXJlcyB3aXRoIGEgcmVzcG9uc2liaWxpdHkuIFRoZXNlIG5lZWQgdG8gYmUgY29tcGxldGVkIGJ5IHRoZSBhc3NpZ25lZSBhcyBhIHBhcnQgb2YgY29tcGxldGluZyB0aGUgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogJ0FuIGFzc2Vzc21lbnQgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgYXNzb2NpYXRlZCBjaGVja3BvaW50cy4nXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9mb3JtYXQtZXZpZGVuY2Uuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRXZpZGVuY2UnLFxyXG4gICAgICAgIGNvZGU6ICdGT1JNQVRFX0VWSURFTkNFJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdZb3UgY2FuIGFsc28gcmVxdWlyZSBldmlkZW5jZSBvZiBjb21wbGV0aW9uIG9mIHRoZSByZXNwb25zaWJpbGl0eSB0byBiZSBwcm92aWRlZC4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jdXN0b20tZmllbGRzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0N1c3RvbSBGaWVsZHMnLFxyXG4gICAgICAgIGNvZGU6ICdDVVNUT01fRklFTERTJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcgQ3VzdG9tIEZpZWxkcycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdZb3UgY2FuIHVwbG9hZCBhIGZvcm1hdCBmb3IgdGhpcyByZXNwb25zaWJpbGl0eSBhbmQgeW91IGNhbiBhbHNvIHJlcXVpcmUgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gYmUgcHJvdmlkZWQuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgXVxyXG4gIH07XHJcblxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICBpZighdGhpcy5pc1JDU2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gaWYoZWxlLmNvZGUgPT09ICdBU1NVUkFOQ0UnKSB7XHJcbiAgICAgICAgLy8gICBlbGUuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBpZihlbGUuY29kZSA9PT0gJ1JFUVVJUkVTX0FVRElUJykge1xyXG4gICAgICAgICAgZWxlLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBpZihlbGUuY29kZSA9PT0gJ0FTU1VSQU5DRScpIHtcclxuICAgICAgICAvLyAgIGVsZS5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIGlmKGVsZS5jb2RlID09PSAnUkVRVUlSRVNfQVVESVQnKSB7XHJcbiAgICAgICAgICBlbGUuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICBjb25zdCBpbmRleCA9IHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUi5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuY29kZSA9PT0gJ0NIRUNLUE9JTlRTJyk7XHJcbiAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUltpbmRleF0uaGlkZGVuID0gdGhpcy5pc0VkaXRNb2RlID09PSBmYWxzZSA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNlbGVjdE1vcmVPcHRpb24oZXZlbnQ6IGFueSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc29sZS5sb2coXCJldmVudCA9PT5cIiwgZXZlbnQsIHRoaXMuY3VycmVudFdvcmtmbG93LCB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd11baW5kZXhdKTtcclxuICAgIGlmKHRoaXMuY3VycmVudFdvcmtmbG93ID09PSAnQ0FSJyAmJiBldmVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJyAmJiB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd11baW5kZXhdLmNoZWNrZWQgKSB7XHJcblxyXG4gICAgICBldmVudFsnY2hlY2twb2ludF9uZXcnXSA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24uZW1pdChldmVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBldmVudFsnY2hlY2twb2ludF9uZXcnXSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd11baW5kZXhdLmNoZWNrZWQgPSAhZXZlbnQuY2hlY2tlZCA7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddW2luZGV4XSA9PT0+XCIsIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XVtpbmRleF0sIGV2ZW50LmNoZWNrZWQpXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24uZW1pdChldmVudCk7XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuICBwb3B1bGF0ZShldnQ6IGFueSl7XHJcbiAgICBjb25zb2xlLmxvZyhcImV2ZW50ID09PT5cIiwgZXZ0KTtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdyl7XHJcbiAgICB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd10uZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICBpZiAoZXZ0LmluY2x1ZGVzKGVsZW1lbnQuY29kZSkpe1xyXG4gICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgIH1lbHNle1xyXG4gICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgIH1cclxuICAgICAgIGlmKGV2dC5pbmNsdWRlcyhcIkNIRUNLUE9JTlRTX05FV1wiKSkge1xyXG4gICAgICAgICBpZihlbGVtZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UUycpIHtcclxuICAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgIGlmKGVsZW1lbnQuY29kZSA9PT0gJ0FTU0VTU01FTlQnKSB7XHJcbiAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZVxyXG4gICAgICAgICB9XHJcbiAgICAgICB9XHJcbiAgICAgICBpZihldnQuaW5jbHVkZXMoXCJBU1NFU1NNRU5UXCIpKSB7XHJcbiAgICAgICAgaWYoZWxlbWVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJykge1xyXG4gICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoZWxlbWVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFMnKSB7XHJcbiAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSBmYWxzZVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZihldnQuaW5jbHVkZXMoXCJDSEVDS1BPSU5UU1wiKSkge1xyXG4gICAgICAgIGlmKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycpIHtcclxuICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGVsZW1lbnQuY29kZSA9PT0gJ0FTU0VTU01FTlQnKSB7XHJcbiAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgfVxyXG5cclxuICB9XHJcbiAgaGlkZUVsZW1lbnRzKGhpZGRlbkxpc3Q6YW55KXtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdyl7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgaWYgKGhpZGRlbkxpc3QuaW5jbHVkZXMoZWxlbWVudC5jb2RlKSl7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcclxuICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgZWxlbWVudC5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICAgfVxyXG5cclxuICAgICAgfSk7XHJcbiAgICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRBbGwod29ya2Zsb3dUeXBlOnN0cmluZyl7XHJcbiAgICBpZih0aGlzLm1vcmVPcHRpb25zTGlzdFt3b3JrZmxvd1R5cGVdKXtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3Rbd29ya2Zsb3dUeXBlXS5mb3JFYWNoKChlbGVtZW50OmFueSkgPT4ge1xyXG4gICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IGZhbHNlO1xyXG4gIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -73,6 +73,7 @@ export class CreateAssessmentContainerComponent {
73
73
  background: 'black',
74
74
  });
75
75
  ref.afterClosed.subscribe((data) => {
76
+ console.log("data ====>", data, this.editorService.stepIdentifier, this.editorService.showAddPageOption, this.editorService.showPageDetails);
76
77
  this.generatePageDropdown();
77
78
  });
78
79
  }
@@ -283,6 +284,7 @@ export class CreateAssessmentContainerComponent {
283
284
  this.getPageName(this.editorService.currentPageNumber);
284
285
  }
285
286
  getPageName(pageNumber) {
287
+ console.log("called 11");
286
288
  this.editorService.currentPageDetails = { pageName: '', pageNumber: 0, pageDescription: '' };
287
289
  this.editorService.formsPage.pageDetailsList.forEach((pageDetail) => {
288
290
  if (pageDetail.pageNumber === pageNumber) {
@@ -432,4 +434,4 @@ CreateAssessmentContainerComponent.propDecorators = {
432
434
  assessmentData: [{ type: Input, args: ['assessmentJSON',] }],
433
435
  checkpointData: [{ type: Input, args: ['checkpointJSON',] }]
434
436
  };
435
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1lZGl0b3IvY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyL2NyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUU5RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFReEYsTUFBTSxPQUFPLGtDQUFrQztJQXNCN0MsWUFDVSxNQUFxQixFQUN0QixhQUE0QjtJQUNuQyx5Q0FBeUM7SUFDakMsS0FBcUIsRUFDckIsUUFBeUIsRUFDekIsTUFBYztRQUxkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFM0IsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsYUFBUSxHQUFS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Q0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQztTQUUxRjtJQUNILENBQUM7OztZQXpjRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlDQUFpQztnQkFDM0MsNHBaQUEyRDtnQkFFM0QsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDOzthQUMzQjs7O1lBVlEsYUFBYTtZQUhiLGFBQWE7WUFFYixjQUFjO1lBRWQsZUFBZTtZQUZDLE1BQU07Ozt5QkF1QjVCLEtBQUs7NEJBQ0wsTUFBTTs2QkFDTixNQUFNOzZCQUVOLEtBQUssU0FBQyxnQkFBZ0I7NkJBR3RCLEtBQUssU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFkZFBhZ2VEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9hZGQtcGFnZS1kZXRhaWxzL2FkZC1wYWdlLWRldGFpbHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzZXNzbWVudFNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9hc3Nlc3NtZW50LXNldHRpbmdzL2Fzc2Vzc21lbnQtc2V0dGluZ3MuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9lZGl0b3Iuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91aS1raXQvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGVsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L2FjdGlvbi1kaWFsb2cvZGVsZXRlL2RlbGV0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY3RpdmVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi91aS1raXQvYWN0aW9uLWRpYWxvZy9hY3RpdmUvYWN0aXZlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lci5jb21wb25lbnQubGVzcyddLFxyXG4gIHByb3ZpZGVyczogW0VkaXRvclNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVBc3Nlc3NtZW50Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBzaG93Q29sbGFwc2UgPSBmYWxzZTtcclxuICBleHBhbmRQYWdlID0gZmFsc2U7XHJcbiAgaGlkZVF1ZXN0aW9uID0gZmFsc2U7XHJcbiAgYXNzZXNzbWVudElkID0gJyc7XHJcbiAgYXNzZXNzbWVudE5hbWUgPSAnJztcclxuICBhc3Nlc3NtZW50Q2F0ZWdvcnkgPSAnJztcclxuICBhc3Nlc3NtZW50Q29udHJvbElkID0gJyc7XHJcbiAgYXNzZXNzbWVudEN1cnJlbnRTdGF0ZSA9ICdEUkFGVCc7XHJcbiAgcGFnZU1vZGU6ICdFRElUJyB8ICdQUkVWSUVXJyA9ICdFRElUJztcclxuICBpc0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG9wZW5Qb3J0YWwgOidBU1NFU1NNRU5UX0lNUE9SVCcgfCAnUkVTUE9OU0lCSUxJVFlfQ0hFQ0tQT0lOVCd8JycgPSAnJztcclxuICBAT3V0cHV0KCkgc2V0SXNVcGxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcG9zdEFzc2Vzc21lbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgnYXNzZXNzbWVudEpTT04nKSBzZXQgYXNzZXNzbWVudERhdGEodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5pbml0aWFsaXplQXNzZXNzbWVudCh2YWx1ZSlcclxuICB9XHJcbiAgQElucHV0KCdjaGVja3BvaW50SlNPTicpIHNldCBjaGVja3BvaW50RGF0YSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVDaGVja3BvaW50KHZhbHVlKVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogRGlhbG9nU2VydmljZSxcclxuICAgIHB1YmxpYyBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlLFxyXG4gICAgLy8gcHJpdmF0ZSAgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBzbmFja2JhcjogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFkZFBhZ2UoKTtcclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5udW1iZXJPZlBhZ2VzKCk7XHJcbiAgICAvLyB0aGlzLmluaXRpYWxpemVBc3Nlc3NtZW50KCk7XHJcbiAgfVxyXG50cmlnZ2VyUHJldmlld1dpdGhWYWxpZGF0aW9uKCl7XHJcbiAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFjdGl2ZVF1ZXN0aW9uSW5kZXgubmV4dCgtMTApO1xyXG4gIHRoaXMuZWRpdG9yU2VydmljZS5hY3RpdmVRdWVzdGlvbiA9IC0xMDtcclxufVxyXG4gIGluaXRpYWxpemVBc3Nlc3NtZW50KGFzc2Vzc21lbnREYXRhOiBhbnkpIHtcclxuICAgIGlmIChhc3Nlc3NtZW50RGF0YSkge1xyXG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlID0gYXNzZXNzbWVudERhdGEuYXNzZXNzbWVudERhdGE7XHJcbiAgICAgIHRoaXMuYXNzZXNzbWVudE5hbWUgPSBhc3Nlc3NtZW50RGF0YS5tZXRhZGF0YS5hc3Nlc3NtZW50X25hbWU7XHJcbiAgICAgIHRoaXMuYXNzZXNzbWVudENhdGVnb3J5ID0gYXNzZXNzbWVudERhdGEubWV0YWRhdGEuY2F0ZWdvcnlfYXJyO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVDaGVja3BvaW50KGNoZWNrcG9pbnREYXRhOmFueSl7XHJcbiAgICBjb25zb2xlLmxvZyhcImluaXRpYWxpemVDaGVja3BvaW50ID09PlwiLCBjaGVja3BvaW50RGF0YSlcclxuICAgIGlmKGNoZWNrcG9pbnREYXRhICYmIE9iamVjdC5rZXlzKGNoZWNrcG9pbnREYXRhKT8ubGVuZ3RoID4gMCl7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UgPSBjaGVja3BvaW50RGF0YTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEFsbFBhZ2VzKCkge1xyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFsbFBhZ2VzID0gWy4uLm5ldyBTZXQodGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5lbGVtZW50cy5tYXAoKGVsZTogYW55KSA9PiBlbGUucGFnZSkpXTtcclxuICAgIHRoaXMuZ2V0UGFnZU5hbWUoMSk7XHJcbiAgfVxyXG5cclxuICBhZGRQYWdlRGV0YWlscygpIHtcclxuICAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWRkUGFnZURldGFpbHNDb21wb25lbnQsIHtcclxuICAgICAgZGF0YTogeyBwYWdlOiB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIsIHBhZ2VEZXRhaWxzOiB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VEZXRhaWxzLCByZWY6IHRoaXMuZWRpdG9yU2VydmljZSB9LFxyXG4gICAgICBwb3NpdGlvbjogJ1JJR0hUJyxcclxuICAgICAgYmFja2dyb3VuZDogJ2JsYWNrJyxcclxuICAgIH0pO1xyXG4gICAgcmVmLmFmdGVyQ2xvc2VkLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVQYWdlRHJvcGRvd24oKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW50aXR5U2V0dGluZ3M6IGFueSA9IHtcclxuICAgIHBhbmVsVGl0bGU6ICcnXHJcbiAgfTtcclxuXHJcbiAgYXNzZXNzbWVudFNldHRpbmdzKCkge1xyXG4gICAgdGhpcy5lbnRpdHlTZXR0aW5ncyA9IHRoaXMuZ2V0U2V0dGluZ3NEYXRhKCk7XHJcbiAgICBjb25zdCByZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFzc2Vzc21lbnRTZXR0aW5nc0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7IHNldHRpbmdzOiB0aGlzLmVudGl0eVNldHRpbmdzLCBzZXJ2aWNlOiB0aGlzLmVkaXRvclNlcnZpY2UgfSxcclxuICAgICAgcG9zaXRpb246ICdSSUdIVCcsXHJcbiAgICAgIGJhY2tncm91bmQ6ICdibGFjaycsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFNldHRpbmdzRGF0YSgpIHtcclxuICAgIGxldCBzZXR0aW5nczogYW55ID0ge1xyXG4gICAgICBwYW5lbFRpdGxlOiBgQXNzZXNzbWVudCBzZXR0aW5nc2AsXHJcblxyXG4gICAgICBzZXR0aW5nc0VsZW1lbnRzOiBbXVxyXG4gICAgfVxyXG4gICAgc2V0dGluZ3Muc2V0dGluZ3NFbGVtZW50cy5wdXNoKFxyXG4gICAgICB7XHJcbiAgICAgICAgdHlwZTogJ0FTU0VTU01FTlQnLFxyXG4gICAgICAgIGVudGl0eVR5cGU6ICdBU1NFU1NNRU5UJyxcclxuICAgICAgICBpc1Zpc2libGU6IHRydWUsXHJcbiAgICAgICAgaXNFbmFibGVkOiB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLnNldHRpbmdzLmFzc2Vzc21lbnRNb2RlLFxyXG4gICAgICAgIGhlbHBpbmdUZXh0OiAnWW91IGNhbiBjb25maWd1cmUgc2NvcmVzIGZvciB0aGUgcXVlc3Rpb25zIGFuZCBhbmFseXplIHRoZSByZXNwb25zZXMgc3VibWl0dGVkIGJ5IHRoZSByZXNwb25kZW50IGJhc2VkIG9uIHRoZXNlIHNjb3Jlcy4nLFxyXG4gICAgICAgIGRlZmF1bHRTY29yZTogdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5zZXR0aW5ncy5kZWZhdWx0U2NvcmUsXHJcbiAgICAgICAgbmVnYXRpdmVTY29yZUNyaXRlcmlhOiB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLnNldHRpbmdzLm5lZ2F0aXZlU2NvcmVDcml0ZXJpYSxcclxuICAgICAgICBuZWdhdGl2ZVNjb3JlOiB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLnNldHRpbmdzLm5lZ2F0aXZlU2NvcmUsXHJcbiAgICAgICAgd2VpZ2h0YWdlRW5hYmxlZDogdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5zZXR0aW5ncy53ZWlnaHRhZ2VFbmFibGVkLFxyXG4gICAgICAgIHNldHRpbmdUaXRsZTogJ0FTU0VTU01FTlQgTU9ERScsXHJcbiAgICAgICAgc2V0dGluZ0VuYWJsZVRleHQ6IGBFbmFibGUgYXNzZXNzbWVudCBtb2RlIGZvciB0aGlzIGFzc2Vzc21lbnRgLFxyXG4gICAgICAgIHVwZGF0ZVR5cGU6ICdMQVpZJ1xyXG4gICAgICB9XHJcblxyXG4gICAgKVxyXG4gICAgc2V0dGluZ3Muc2V0dGluZ3NFbGVtZW50cy5wdXNoKFxyXG4gICAgICB7XHJcbiAgICAgICAgdHlwZTogJ1JFU1BPTlNFX1NFR01FTlQnLFxyXG4gICAgICAgIGVudGl0eVR5cGU6ICdBU1NFU1NNRU5UJyxcclxuICAgICAgICBoZWxwaW5nVGV4dDogJ1Jlc3BvbnNlIHNlZ21lbnRzIGxldCB5b3UgZGl2aWRlIHRoZSByZXNwb25zZXMgaW50byBzZXBhcmF0ZSBwYXJ0cyBvciBzZWN0aW9ucyBmb3IgZWFzaWVyIGFuYWx5c2lzIG9mIGRhdGEgYW5kIGFzc2lzdCBpbiBkZWNpc2lvbiBtYWtpbmcuJyxcclxuICAgICAgICBpc1Zpc2libGU6IHRydWUsXHJcbiAgICAgICAgaXNFbmFibGVkOiB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLnJlc3BvbnNlU2VnbWVudFsnaXNFbmFibGVkJ10gPz8gZmFsc2UsXHJcbiAgICAgICAgc2V0dGluZ1RpdGxlOiAnUkVTUE9OU0UgU0VHTUVOVFMnLFxyXG4gICAgICAgIHNldHRpbmdFbmFibGVUZXh0OiBgQ29uZmlndXJlIFJlc3BvbnNlIFNlZ21lbnRzIGZvciB0aGlzIGFzc2Vzc21lbnRgLFxyXG4gICAgICAgIHVwZGF0ZVR5cGU6ICdMQVpZJyxcclxuICAgICAgICBzZWdtZW50RGF0YTogdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5yZXNwb25zZVNlZ21lbnRcclxuICAgICAgfVxyXG4gICAgKVxyXG4gICAgcmV0dXJuIHNldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tDb2xsYXBzZSgpIHtcclxuICAgIHRoaXMuc2hvd0NvbGxhcHNlID0gIXRoaXMuc2hvd0NvbGxhcHNlO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tFeHBhbmQoKSB7XHJcbiAgICB0aGlzLmV4cGFuZFBhZ2UgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VFeHBhbmQoKSB7XHJcbiAgICB0aGlzLmV4cGFuZFBhZ2UgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVBhZ2UoKSB7XHJcbiAgICBjb25zdCByZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERlbGV0ZUNvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7IG1lc3NhZ2U6IGBUaGlzIGFjdGlvbiB3aWxsIDxzdHJvbmc+cmVtb3ZlPC9zdHJvbmc+IHRoaXMgcGFnZS5gIH0sXHJcbiAgICAgIHBvc2l0aW9uOiAnQ0VOVEVSJyxcclxuICAgICAgYmFja2dyb3VuZDogJ2JsYWNrJyxcclxuICAgIH0pO1xyXG4gICAgcmVmLmFmdGVyQ2xvc2VkLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcblxyXG4gICAgICBpZiAoZGF0YSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuZGVsZXRlUGFnZUNvbmZpcm0odHJ1ZSlcclxuICAgICAgfVxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBkZWxldGVQYWdlQ29uZmlybShjb25maXJtRGVsZXRlOiBhbnkpIHtcclxuICAgIGlmIChjb25maXJtRGVsZXRlKSB7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5hbGxQYWdlcyA9IHRoaXMuZWRpdG9yU2VydmljZS5hbGxQYWdlcy5maWx0ZXIoKHBhZ2VOdW06IGFueSkgPT4gcGFnZU51bSAhPT0gdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKTtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFsbFBhZ2VzID0gdGhpcy51cGRhdGVQYWdlTnVtYmVyc0ZvckFsbFBhZ2VzKHRoaXMuZWRpdG9yU2VydmljZS5hbGxQYWdlcyk7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UucGFnZURldGFpbHNMaXN0ID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5wYWdlRGV0YWlsc0xpc3QuZmlsdGVyKChwYWdlRGV0YWlsOiBhbnkpID0+XHJcbiAgICAgICAgcGFnZURldGFpbC5wYWdlTnVtYmVyICE9PSB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIpO1xyXG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLnBhZ2VEZXRhaWxzTGlzdCA9IHRoaXMudXBkYXRlUGFnZU51bWJlckZvclBhZ2VEZXRhaWxzKHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UucGFnZURldGFpbHNMaXN0KTtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5lbGVtZW50cyA9IHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMuZmlsdGVyKFxyXG4gICAgICAgIChlbGVtZW50RGV0YWlsOiBhbnkpID0+IGVsZW1lbnREZXRhaWwucGFnZSAhPT0gdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKTtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5lbGVtZW50cyA9IHRoaXMudXBkYXRlUGFnZU51bWJlckZvclF1ZXN0aW9ucyh0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmVsZW1lbnRzKTtcclxuICAgICAgaWYgKHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlciA+IDEpIHtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIgLT0gMTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmdldFBhZ2VOYW1lKHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlcik7XHJcbiAgICAgIHRoaXMuY2hlY2tGb3JQYWdlRGV0YWlscygpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5hY3RpdmVRdWVzdGlvbiA9IC0xMDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVBhZ2VOdW1iZXJzRm9yQWxsUGFnZXMoYXJyYXlUb0JlVXBkYXRlZDogYW55KSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5VG9CZVVwZGF0ZWQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGkgPj0gdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyIC0gMSkge1xyXG4gICAgICAgIGFycmF5VG9CZVVwZGF0ZWRbaV0gLT0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFycmF5VG9CZVVwZGF0ZWQ7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQYWdlTnVtYmVyRm9yUGFnZURldGFpbHMoYXJyYXlUb0JlVXBkYXRlZDogYW55KSB7XHJcbiAgICBhcnJheVRvQmVVcGRhdGVkLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZWxlbWVudC5wYWdlTnVtYmVyID49IHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlcikge1xyXG4gICAgICAgIGVsZW1lbnQucGFnZU51bWJlciAtPSAxO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBhcnJheVRvQmVVcGRhdGVkO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUGFnZU51bWJlckZvclF1ZXN0aW9ucyhhcnJheVRvQmVVcGRhdGVkOiBhbnkpIHtcclxuICAgIGFycmF5VG9CZVVwZGF0ZWQuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbGVtZW50LnBhZ2UgPj0gdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKSB7XHJcbiAgICAgICAgZWxlbWVudC5wYWdlIC09IDE7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGFycmF5VG9CZVVwZGF0ZWQ7XHJcbiAgfVxyXG5cclxuICBvcGVuUXVlc3Rpb24oKSB7XHJcbiAgICB0aGlzLmhpZGVRdWVzdGlvbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZVF1ZXN0aW9uKCkge1xyXG4gICAgdGhpcy5oaWRlUXVlc3Rpb24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVF1ZXN0aW9uV2l0aFZhbGlkYXRpb24oaW5kZXg6IGFueSkge1xyXG4gICAgaWYgKGluZGV4ID09PSAnd2VsY29tZScpIHtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5oYXNXZWxjb21lID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlciA9IDE7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zdGVwSWRlbnRpZmllciA9ICdwYWdlc2NyZWVuJztcclxuICAgIH1cclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5kZWxldGVRdWVzdGlvbihpbmRleCk7XHJcbiAgfVxyXG5cclxuICBjaGVja2ZvckVycm9yKG1vZGU/OiBhbnkpIHtcclxuICAgIC8vIHRoaXMubW9yZU9wdGlvbnMgPSBmYWxzZTtcclxuICAgIGNvbnN0IGVycm9yUXVlc3Rpb25JbmRleCA9IHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMuZmluZEluZGV4KFxyXG4gICAgICAoZWxlbWVudDogYW55LCBpbmRleDogYW55KSA9PiAoZWxlbWVudC5lcnJvckFycmF5ICYmIGVsZW1lbnQuZXJyb3JBcnJheSAhPT0ge30gJiYgT2JqZWN0LnZhbHVlcyhlbGVtZW50LmVycm9yQXJyYXkpLmxlbmd0aCA+IDApKTtcclxuICAgIGlmIChlcnJvclF1ZXN0aW9uSW5kZXggPj0gMCkge1xyXG4gICAgICBpZiAobW9kZSA9PT0gJ2Z1bGwnKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5lbGVtZW50c1tlcnJvclF1ZXN0aW9uSW5kZXhdLnBhZ2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG1vZGUgIT09ICdwYXJ0aWFsJykge1xyXG4gICAgICAgIC8vIHRoaXMuZ2V0UGFnZU5hbWUodGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKTtcclxuXHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFjdGl2ZVF1ZXN0aW9uID0gZXJyb3JRdWVzdGlvbkluZGV4O1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5hY3RpdmVRdWVzdGlvbkluZGV4Lm5leHQoZXJyb3JRdWVzdGlvbkluZGV4KTtcclxuXHJcbiAgICAgICAgY29uc3QgcXVlc3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmVsZW1lbnRzW2Vycm9yUXVlc3Rpb25JbmRleF0ubmFtZSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBpZiAocXVlc3Rpb24pIHtcclxuICAgICAgICAgICAgcXVlc3Rpb24uc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnc3RhcnQnIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIDIwMCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG1vZGUgPT09ICdzYXZlJykge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5hY3RpdmVRdWVzdGlvbiA9IC0xMDtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuYWN0aXZlUXVlc3Rpb25JbmRleC5uZXh0KC0xMCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKG1vZGUgPT09ICdzYXZlJykge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5hY3RpdmVRdWVzdGlvbiA9IC0xMDtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuYWN0aXZlUXVlc3Rpb25JbmRleC5uZXh0KC0xMCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVQYWdlRHJvcGRvd24oKSB7XHJcbiAgICBjb25zdCBsaXN0ID0gW107XHJcbiAgICBpZiAodGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5oYXNXZWxjb21lID09PSB0cnVlKSB7XHJcbiAgICAgIGxpc3QucHVzaCh7IHZhbHVlOiAtMSwgdGVtcGxhdGU6IGA8c3BhbiBjbGFzcz1cInBhZ2UtbnVtYmVyXCI+V2VsY29tZSBTY3JlZW48L3NwYW4+YCB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmhhc1RoYW5rcyA9PT0gdHJ1ZSkge1xyXG4gICAgICBsaXN0LnB1c2goeyB2YWx1ZTogLTIsIHRlbXBsYXRlOiBgPHNwYW4gY2xhc3M9XCJwYWdlLW51bWJlclwiPlRoYW5rIHlvdSBTY3JlZW48L3NwYW4+YCB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuYWxsUGFnZXMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGxpc3QucHVzaCh7IHZhbHVlOiBlbGVtZW50LCB0ZW1wbGF0ZTogdGhpcy5nZXRQYWdlTmFtZUZvckRyb3Bkb3duKGVsZW1lbnQpIH0pO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBsaXN0O1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFnZU5hbWVGb3JEcm9wZG93bihwYWdlTnVtYmVyOiBhbnkpIHtcclxuICAgIGxldCBwYWdlVmFsdWUgPSBgPHNwYW4gY2xhc3M9XCJwYWdlLW51bWJlclwiPlBhZ2UgJHtwYWdlTnVtYmVyfTwvc3Bhbj5gO1xyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5wYWdlRGV0YWlsc0xpc3QuZm9yRWFjaCgocGFnZURldGFpbDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChwYWdlRGV0YWlsLnBhZ2VOdW1iZXIgPT09IHBhZ2VOdW1iZXIgJiYgcGFnZURldGFpbC5wYWdlTmFtZSAhPT0gJycpIHtcclxuICAgICAgICBwYWdlVmFsdWUgPSBgPHNwYW4gY2xhc3M9XCJwYWdlLWxhYmVsIHZ4LWZzLTkgdngtZnctNjAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtbXItMiB2eC1saC0zXCI+UEFHRTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBhZ2UtbnVtYmVyIHZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHRcIj4ke3BhZ2VEZXRhaWwucGFnZU51bWJlcn08L3NwYW4+YFxyXG4gICAgICAgIC8vcGFnZVZhbHVlID0gYDxzcGFuIGNsYXNzPVwicGFnZS1sYWJlbCB2eC1mcy05IHZ4LWZ3LTYwMCB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LW1yLTIgdngtbGgtM1wiPlBhZ2UgPC9zcGFuPiA8c3BhbiAke3BhZ2VEZXRhaWwucGFnZU51bWJlcn08L3NwYW4+IDxzcGFuIGNsYXNzPVwicGFnZS1udW1iZXIgdngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dFwiPiAke3BhZ2VEZXRhaWwucGFnZU5hbWV9PC9zcGFuPmA7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHBhZ2VWYWx1ZTtcclxuICB9XHJcblxyXG4gIHBhZ2VDaGFuZ2VkKGV2dDogYW55KSB7XHJcblxyXG4gICAgaWYgKGV2dC52YWx1ZSA9PT0gLTEpIHtcclxuICAgICAgdGhpcy5zZXRJZGVudGlmaWVyKCd3ZWxjb21lc2NyZWVuJyk7XHJcbiAgICB9IGVsc2UgaWYgKGV2dC52YWx1ZSA9PT0gLTIpIHtcclxuICAgICAgdGhpcy5zZXRJZGVudGlmaWVyKCd0aGFua3lvdXNjcmVlbicpO1xyXG4gICAgfSBlbHNlIGlmIChldnQudmFsdWUgPj0gMCkge1xyXG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIgPSBldnQ/LnZhbHVlO1xyXG4gICAgICB0aGlzLnNldElkZW50aWZpZXIoJ3BhZ2VzY3JlZW4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldElkZW50aWZpZXIoc2NyZWVuOiBhbnkpIHtcclxuICAgIHRoaXMuY2hhbmdlVG9JbmFjdGl2ZSgpO1xyXG4gICAgaWYgKHNjcmVlbiA9PT0gJ3dlbGNvbWVzY3JlZW4nKSB7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zdGVwSWRlbnRpZmllciA9ICd3ZWxjb21lc2NyZWVuJztcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyID0gLTE7XHJcbiAgICB9XHJcbiAgICBpZiAoc2NyZWVuID09PSAndGhhbmt5b3VzY3JlZW4nKSB7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zdGVwSWRlbnRpZmllciA9ICd0aGFua3lvdXNjcmVlbic7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlciA9IC0yO1xyXG4gICAgfVxyXG4gICAgaWYgKHNjcmVlbiA9PT0gJ3BhZ2VzY3JlZW4nKSB7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zdGVwSWRlbnRpZmllciA9ICdwYWdlc2NyZWVuJztcclxuICAgICAgaWYgKHRoaXMuZWRpdG9yU2VydmljZS5hbGxQYWdlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuYWRkUGFnZSgpO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlciA9IDE7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyID09PSAtMSB8fCB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIgPT09IC0yKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmFsbFBhZ2VzLmxlbmd0aDtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIHRoaXMuZ2V0UGFnZU5hbWUodGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKTtcclxuICB9XHJcblxyXG4gIGdldFBhZ2VOYW1lKHBhZ2VOdW1iZXI6IGFueSkge1xyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlRGV0YWlscyA9IHsgcGFnZU5hbWU6ICcnLCBwYWdlTnVtYmVyOiAwLCBwYWdlRGVzY3JpcHRpb246ICcnIH07XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLnBhZ2VEZXRhaWxzTGlzdC5mb3JFYWNoKChwYWdlRGV0YWlsOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHBhZ2VEZXRhaWwucGFnZU51bWJlciA9PT0gcGFnZU51bWJlcikge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZURldGFpbHMucGFnZU51bWJlciA9IHBhZ2VEZXRhaWwucGFnZU51bWJlcjtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VEZXRhaWxzLnBhZ2VOYW1lID0gcGFnZURldGFpbC5wYWdlTmFtZTtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VEZXRhaWxzLnBhZ2VEZXNjcmlwdGlvbiA9IHBhZ2VEZXRhaWwucGFnZURlc2NyaXB0aW9uO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2hlY2tGb3JQYWdlRGV0YWlscygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tGb3JQYWdlRGV0YWlscygpIHtcclxuICAgIGlmICh0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VEZXRhaWxzID09PSB1bmRlZmluZWQgfHwgdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlRGV0YWlscy5wYWdlTmFtZSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnNob3dBZGRQYWdlT3B0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnNob3dQYWdlRGV0YWlscyA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnNob3dBZGRQYWdlT3B0aW9uID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zaG93UGFnZURldGFpbHMgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlVG9JbmFjdGl2ZSgpIHtcclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5hY3RpdmVRdWVzdGlvbiA9IC01O1xyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFjdGl2ZVF1ZXN0aW9uSW5kZXgubmV4dCgtNSk7XHJcbiAgfVxyXG5cclxuICBhZGROZXdQYWdlKCkge1xyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFkZFBhZ2UoKTtcclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZURldGFpbHMgPSB7IHBhZ2VOYW1lOiAnJywgcGFnZU51bWJlcjogdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyLCBwYWdlRGVzY3JpcHRpb246ICcnIH07XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc2hvd1BhZ2VEZXRhaWxzID0gZmFsc2U7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc2hvd0FkZFBhZ2VPcHRpb24gPSB0cnVlO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VEcm9wZG93bigpO1xyXG4gIH1cclxuXHJcbiAgY2FwaXRhbGl6ZVN0cmluZyhzdHJpbmdWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gc3RyaW5nVmFsdWVbMF0udG9VcHBlckNhc2UoKSArIHN0cmluZ1ZhbHVlLnNsaWNlKDEpO1xyXG4gIH1cclxuXHJcbiAgb25EZWxldGVQYWdlQ2xpY2soKSB7XHJcbiAgICAvLyB0aGlzLnNob3dEZWxldGVQb3B1cCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBpc1BhZ2VFbXB0eSgpIHtcclxuICAgIGlmICghWy4uLm5ldyBTZXQodGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5lbGVtZW50cy5tYXAoKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudC5wYWdlKSldLmluY2x1ZGVzKHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlcikpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdWJtaXRBZnRlckVycm9yQ2hlY2sobW9kZTogYW55KSB7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuYWN0aXZlUXVlc3Rpb25JbmRleC5uZXh0KC0xMCk7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuYWN0aXZlUXVlc3Rpb24gPSAtMTA7XHJcbiAgICBpZiAodGhpcy5lZGl0b3JTZXJ2aWNlLnN0ZXBJZGVudGlmaWVyID09PSAnd2VsY29tZXNjcmVlbicgfHwgdGhpcy5lZGl0b3JTZXJ2aWNlLnN0ZXBJZGVudGlmaWVyID09PSAndGhhbmt5b3VzY3JlZW4nKSB7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlciA9IDE7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zdGVwSWRlbnRpZmllciA9ICdwYWdlc2NyZWVuJztcclxuICAgIH1cclxuICAgIC8vdGhpcy5wYWdlTW9kZSA9ICdFRElUJztcclxuXHJcbiAgICB0aGlzLnZhbGlkYXRlV2VsY29tZVRoYW5rWW91KCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5jaGVja2ZvckVycm9yKCdmdWxsJykpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIG9mIHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMpIHtcclxuICAgICAgICAgIGlmICghWydjaGVja2JveCcsICdkcm9wZG93bicsICdtdWx0aXBsZS1jaG9pY2UnXS5pbmNsdWRlcyhxdWVzdGlvbi50eXBlKSkge1xyXG4gICAgICAgICAgICBpZiAocXVlc3Rpb24uY2hvaWNlcykge1xyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uLmNob2ljZXMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50LmNvbG9yID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudC5zY29yZSA9IDE7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50LmlzRmFpbGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcXVlc3Rpb24ub3RoZXJDb25maWcgPSB7IGNvbG9yOiAnJywgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogMCB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNhdmUobW9kZSlcclxuICAgICAgfVxyXG4gICAgfSwgMjAwKTtcclxuXHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVdlbGNvbWVUaGFua1lvdSgpIHtcclxuICAgIGNvbnN0IHF1ZXN0aW9uID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZTtcclxuICAgIGlmIChxdWVzdGlvbi5oYXNXZWxjb21lID09PSB0cnVlKSB7XHJcbiAgICAgIGlmIChxdWVzdGlvbi5oYXNXZWxjb21lRGVzY3JpcHRpb24gPT09IHRydWUgJiYgdGhpcy5lZGl0b3JTZXJ2aWNlLmV4dHJhY3QocXVlc3Rpb24ud2VsY29tZURlc2NyaXB0aW9uKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmhhc1dlbGNvbWVEZXNjcmlwdGlvbiA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChxdWVzdGlvbi5oYXNXZWxjb21lSW1hZ2UgPT09IHRydWUgJiYgdGhpcy5lZGl0b3JTZXJ2aWNlLmV4dHJhY3QocXVlc3Rpb24ud2VsY29tZUltYWdlKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmhhc1dlbGNvbWVJbWFnZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmVkaXRvclNlcnZpY2UuZXh0cmFjdChxdWVzdGlvbi53ZWxjb21lRGVzY3JpcHRpb24pLmxlbmd0aCA9PT0gMCAmJlxyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5leHRyYWN0KHF1ZXN0aW9uLndlbGNvbWVUZXh0KS5sZW5ndGggPT09IDAgJiZcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZXh0cmFjdChxdWVzdGlvbi53ZWxjb21lSW1hZ2UpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuaGFzV2VsY29tZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuaGFzV2VsY29tZURlc2NyaXB0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmhhc1dlbGNvbWVJbWFnZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5oYXNUaGFua3MgPT09IHRydWUpIHtcclxuICAgICAgaWYgKHF1ZXN0aW9uLmhhc1RoYW5reW91RGVzY3JpcHRpb24gPT09IHRydWUgJiYgdGhpcy5lZGl0b3JTZXJ2aWNlLmV4dHJhY3QocXVlc3Rpb24udGhhbmt5b3VEZXNjcmlwdGlvbikubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5oYXNUaGFua3lvdURlc2NyaXB0aW9uID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHF1ZXN0aW9uLmhhc1RoYW5reW91SW1hZ2UgPT09IHRydWUgJiYgdGhpcy5lZGl0b3JTZXJ2aWNlLmV4dHJhY3QocXVlc3Rpb24udGhhbmt5b3VJbWFnZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5oYXNUaGFua3lvdUltYWdlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZWRpdG9yU2VydmljZS5leHRyYWN0KHF1ZXN0aW9uLnRoYW5reW91RGVzY3JpcHRpb24pLmxlbmd0aCA9PT0gMCAmJlxyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5leHRyYWN0KHF1ZXN0aW9uLnRoYW5reW91VGV4dCkubGVuZ3RoID09PSAwICYmXHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmV4dHJhY3QocXVlc3Rpb24udGhhbmt5b3VJbWFnZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5oYXNUaGFua3MgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmhhc1RoYW5reW91RGVzY3JpcHRpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuaGFzVGhhbmt5b3VJbWFnZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNhdmUobW9kZTogJ0RSQUZUJyB8ICdBQ1RJVkUnKSB7XHJcbiAgICBpZiAobW9kZSA9PT0gJ0FDVElWRScgJiYgdGhpcy5vcGVuUG9ydGFsICE9PSAnUkVTUE9OU0lCSUxJVFlfQ0hFQ0tQT0lOVCcpIHtcclxuICAgICAgY29uc3QgcmVmID0gdGhpcy5kaWFsb2cub3BlbihBY3RpdmVDb21wb25lbnQsIHtcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBtZXNzYWdlOiBgT25jZSBwdWJsaXNoZWQsIHRoaXMgYXNzZXNzbWVudCB3aWxsIGJlIGFjdGl2ZSBhbmQgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBhIGNvbXBsaWFuY2UgcmVzcG9uc2liaWxpdHkuYFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9zaXRpb246ICdDRU5URVInLFxyXG4gICAgICAgIGJhY2tncm91bmQ6ICdibGFjaycsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5wb3N0QXNzZXNzbWVudC5lbWl0KHsgbW9kZTogbW9kZSwgYXNzZXNzbWVudERldGFpbHM6IHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wb3N0QXNzZXNzbWVudC5lbWl0KHsgbW9kZTogbW9kZSwgYXNzZXNzbWVudERldGFpbHM6IHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2V9KTtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
437
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1lZGl0b3IvY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyL2NyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUU5RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFReEYsTUFBTSxPQUFPLGtDQUFrQztJQXNCN0MsWUFDVSxNQUFxQixFQUN0QixhQUE0QjtJQUNuQyx5Q0FBeUM7SUFDakMsS0FBcUIsRUFDckIsUUFBeUIsRUFDekIsTUFBYztRQUxkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFM0IsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsYUFBUSxHQUFS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SUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO3dCQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO3FCQUMzRjtnQkFDSCxDQUFDO2FBQ0YsQ0FBQyxDQUFBO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUM7U0FFMUY7SUFDSCxDQUFDOzs7WUE3Y0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQ0FBaUM7Z0JBQzNDLDRwWkFBMkQ7Z0JBRTNELFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQzs7YUFDM0I7OztZQVZRLGFBQWE7WUFIYixhQUFhO1lBRWIsY0FBYztZQUVkLGVBQWU7WUFGQyxNQUFNOzs7eUJBdUI1QixLQUFLOzRCQUNMLE1BQU07NkJBQ04sTUFBTTs2QkFFTixLQUFLLFNBQUMsZ0JBQWdCOzZCQUd0QixLQUFLLFNBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBZGRQYWdlRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYWRkLXBhZ2UtZGV0YWlscy9hZGQtcGFnZS1kZXRhaWxzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2Vzc21lbnRTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXNzZXNzbWVudC1zZXR0aW5ncy9hc3Nlc3NtZW50LXNldHRpbmdzLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZWRpdG9yLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91aS1raXQvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IERlbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9hY3Rpb24tZGlhbG9nL2RlbGV0ZS9kZWxldGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWN0aXZlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L2FjdGlvbi1kaWFsb2cvYWN0aXZlL2FjdGl2ZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXIuY29tcG9uZW50Lmxlc3MnXSxcclxuICBwcm92aWRlcnM6IFtFZGl0b3JTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgc2hvd0NvbGxhcHNlID0gZmFsc2U7XHJcbiAgZXhwYW5kUGFnZSA9IGZhbHNlO1xyXG4gIGhpZGVRdWVzdGlvbiA9IGZhbHNlO1xyXG4gIGFzc2Vzc21lbnRJZCA9ICcnO1xyXG4gIGFzc2Vzc21lbnROYW1lID0gJyc7XHJcbiAgYXNzZXNzbWVudENhdGVnb3J5ID0gJyc7XHJcbiAgYXNzZXNzbWVudENvbnRyb2xJZCA9ICcnO1xyXG4gIGFzc2Vzc21lbnRDdXJyZW50U3RhdGUgPSAnRFJBRlQnO1xyXG4gIHBhZ2VNb2RlOiAnRURJVCcgfCAnUFJFVklFVycgPSAnRURJVCc7XHJcbiAgaXNMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBvcGVuUG9ydGFsIDonQVNTRVNTTUVOVF9JTVBPUlQnIHwgJ1JFU1BPTlNJQklMSVRZX0NIRUNLUE9JTlQnfCcnID0gJyc7XHJcbiAgQE91dHB1dCgpIHNldElzVXBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHBvc3RBc3Nlc3NtZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoJ2Fzc2Vzc21lbnRKU09OJykgc2V0IGFzc2Vzc21lbnREYXRhKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUFzc2Vzc21lbnQodmFsdWUpXHJcbiAgfVxyXG4gIEBJbnB1dCgnY2hlY2twb2ludEpTT04nKSBzZXQgY2hlY2twb2ludERhdGEodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5pbml0aWFsaXplQ2hlY2twb2ludCh2YWx1ZSlcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSxcclxuICAgIC8vIHByaXZhdGUgIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgc25hY2tiYXI6IFNuYWNrQmFyU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5hZGRQYWdlKCk7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UubnVtYmVyT2ZQYWdlcygpO1xyXG4gICAgLy8gdGhpcy5pbml0aWFsaXplQXNzZXNzbWVudCgpO1xyXG4gIH1cclxudHJpZ2dlclByZXZpZXdXaXRoVmFsaWRhdGlvbigpe1xyXG4gIHRoaXMuZWRpdG9yU2VydmljZS5hY3RpdmVRdWVzdGlvbkluZGV4Lm5leHQoLTEwKTtcclxuICB0aGlzLmVkaXRvclNlcnZpY2UuYWN0aXZlUXVlc3Rpb24gPSAtMTA7XHJcbn1cclxuICBpbml0aWFsaXplQXNzZXNzbWVudChhc3Nlc3NtZW50RGF0YTogYW55KSB7XHJcbiAgICBpZiAoYXNzZXNzbWVudERhdGEpIHtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZSA9IGFzc2Vzc21lbnREYXRhLmFzc2Vzc21lbnREYXRhO1xyXG4gICAgICB0aGlzLmFzc2Vzc21lbnROYW1lID0gYXNzZXNzbWVudERhdGEubWV0YWRhdGEuYXNzZXNzbWVudF9uYW1lO1xyXG4gICAgICB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeSA9IGFzc2Vzc21lbnREYXRhLm1ldGFkYXRhLmNhdGVnb3J5X2FycjtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplQ2hlY2twb2ludChjaGVja3BvaW50RGF0YTphbnkpe1xyXG4gICAgY29uc29sZS5sb2coXCJpbml0aWFsaXplQ2hlY2twb2ludCA9PT5cIiwgY2hlY2twb2ludERhdGEpXHJcbiAgICBpZihjaGVja3BvaW50RGF0YSAmJiBPYmplY3Qua2V5cyhjaGVja3BvaW50RGF0YSk/Lmxlbmd0aCA+IDApe1xyXG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlID0gY2hlY2twb2ludERhdGE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRBbGxQYWdlcygpIHtcclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5hbGxQYWdlcyA9IFsuLi5uZXcgU2V0KHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMubWFwKChlbGU6IGFueSkgPT4gZWxlLnBhZ2UpKV07XHJcbiAgICB0aGlzLmdldFBhZ2VOYW1lKDEpO1xyXG4gIH1cclxuXHJcbiAgYWRkUGFnZURldGFpbHMoKSB7XHJcblxyXG4gICAgY29uc3QgcmVmID0gdGhpcy5kaWFsb2cub3BlbihBZGRQYWdlRGV0YWlsc0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7IHBhZ2U6IHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlciwgcGFnZURldGFpbHM6IHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZURldGFpbHMsIHJlZjogdGhpcy5lZGl0b3JTZXJ2aWNlIH0sXHJcbiAgICAgIHBvc2l0aW9uOiAnUklHSFQnLFxyXG4gICAgICBiYWNrZ3JvdW5kOiAnYmxhY2snLFxyXG4gICAgfSk7XHJcbiAgICByZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coXCJkYXRhID09PT0+XCIsIGRhdGEsIHRoaXMuZWRpdG9yU2VydmljZS5zdGVwSWRlbnRpZmllciwgdGhpcy5lZGl0b3JTZXJ2aWNlLnNob3dBZGRQYWdlT3B0aW9uLHRoaXMuZWRpdG9yU2VydmljZS5zaG93UGFnZURldGFpbHMpO1xyXG5cclxuICAgICAgdGhpcy5nZW5lcmF0ZVBhZ2VEcm9wZG93bigpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbnRpdHlTZXR0aW5nczogYW55ID0ge1xyXG4gICAgcGFuZWxUaXRsZTogJydcclxuICB9O1xyXG5cclxuICBhc3Nlc3NtZW50U2V0dGluZ3MoKSB7XHJcbiAgICB0aGlzLmVudGl0eVNldHRpbmdzID0gdGhpcy5nZXRTZXR0aW5nc0RhdGEoKTtcclxuICAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQXNzZXNzbWVudFNldHRpbmdzQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHsgc2V0dGluZ3M6IHRoaXMuZW50aXR5U2V0dGluZ3MsIHNlcnZpY2U6IHRoaXMuZWRpdG9yU2VydmljZSB9LFxyXG4gICAgICBwb3NpdGlvbjogJ1JJR0hUJyxcclxuICAgICAgYmFja2dyb3VuZDogJ2JsYWNrJyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2V0dGluZ3NEYXRhKCkge1xyXG4gICAgbGV0IHNldHRpbmdzOiBhbnkgPSB7XHJcbiAgICAgIHBhbmVsVGl0bGU6IGBBc3Nlc3NtZW50IHNldHRpbmdzYCxcclxuXHJcbiAgICAgIHNldHRpbmdzRWxlbWVudHM6IFtdXHJcbiAgICB9XHJcbiAgICBzZXR0aW5ncy5zZXR0aW5nc0VsZW1lbnRzLnB1c2goXHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiAnQVNTRVNTTUVOVCcsXHJcbiAgICAgICAgZW50aXR5VHlwZTogJ0FTU0VTU01FTlQnLFxyXG4gICAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICBpc0VuYWJsZWQ6IHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2Uuc2V0dGluZ3MuYXNzZXNzbWVudE1vZGUsXHJcbiAgICAgICAgaGVscGluZ1RleHQ6ICdZb3UgY2FuIGNvbmZpZ3VyZSBzY29yZXMgZm9yIHRoZSBxdWVzdGlvbnMgYW5kIGFuYWx5emUgdGhlIHJlc3BvbnNlcyBzdWJtaXR0ZWQgYnkgdGhlIHJlc3BvbmRlbnQgYmFzZWQgb24gdGhlc2Ugc2NvcmVzLicsXHJcbiAgICAgICAgZGVmYXVsdFNjb3JlOiB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLnNldHRpbmdzLmRlZmF1bHRTY29yZSxcclxuICAgICAgICBuZWdhdGl2ZVNjb3JlQ3JpdGVyaWE6IHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2Uuc2V0dGluZ3MubmVnYXRpdmVTY29yZUNyaXRlcmlhLFxyXG4gICAgICAgIG5lZ2F0aXZlU2NvcmU6IHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2Uuc2V0dGluZ3MubmVnYXRpdmVTY29yZSxcclxuICAgICAgICB3ZWlnaHRhZ2VFbmFibGVkOiB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLnNldHRpbmdzLndlaWdodGFnZUVuYWJsZWQsXHJcbiAgICAgICAgc2V0dGluZ1RpdGxlOiAnQVNTRVNTTUVOVCBNT0RFJyxcclxuICAgICAgICBzZXR0aW5nRW5hYmxlVGV4dDogYEVuYWJsZSBhc3Nlc3NtZW50IG1vZGUgZm9yIHRoaXMgYXNzZXNzbWVudGAsXHJcbiAgICAgICAgdXBkYXRlVHlwZTogJ0xBWlknXHJcbiAgICAgIH1cclxuXHJcbiAgICApXHJcbiAgICBzZXR0aW5ncy5zZXR0aW5nc0VsZW1lbnRzLnB1c2goXHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiAnUkVTUE9OU0VfU0VHTUVOVCcsXHJcbiAgICAgICAgZW50aXR5VHlwZTogJ0FTU0VTU01FTlQnLFxyXG4gICAgICAgIGhlbHBpbmdUZXh0OiAnUmVzcG9uc2Ugc2VnbWVudHMgbGV0IHlvdSBkaXZpZGUgdGhlIHJlc3BvbnNlcyBpbnRvIHNlcGFyYXRlIHBhcnRzIG9yIHNlY3Rpb25zIGZvciBlYXNpZXIgYW5hbHlzaXMgb2YgZGF0YSBhbmQgYXNzaXN0IGluIGRlY2lzaW9uIG1ha2luZy4nLFxyXG4gICAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICBpc0VuYWJsZWQ6IHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UucmVzcG9uc2VTZWdtZW50Wydpc0VuYWJsZWQnXSA/PyBmYWxzZSxcclxuICAgICAgICBzZXR0aW5nVGl0bGU6ICdSRVNQT05TRSBTRUdNRU5UUycsXHJcbiAgICAgICAgc2V0dGluZ0VuYWJsZVRleHQ6IGBDb25maWd1cmUgUmVzcG9uc2UgU2VnbWVudHMgZm9yIHRoaXMgYXNzZXNzbWVudGAsXHJcbiAgICAgICAgdXBkYXRlVHlwZTogJ0xBWlknLFxyXG4gICAgICAgIHNlZ21lbnREYXRhOiB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLnJlc3BvbnNlU2VnbWVudFxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgICByZXR1cm4gc2V0dGluZ3M7XHJcbiAgfVxyXG5cclxuICBjbGlja0NvbGxhcHNlKCkge1xyXG4gICAgdGhpcy5zaG93Q29sbGFwc2UgPSAhdGhpcy5zaG93Q29sbGFwc2U7XHJcbiAgfVxyXG5cclxuICBjbGlja0V4cGFuZCgpIHtcclxuICAgIHRoaXMuZXhwYW5kUGFnZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZUV4cGFuZCgpIHtcclxuICAgIHRoaXMuZXhwYW5kUGFnZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlUGFnZSgpIHtcclxuICAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nLm9wZW4oRGVsZXRlQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHsgbWVzc2FnZTogYFRoaXMgYWN0aW9uIHdpbGwgPHN0cm9uZz5yZW1vdmU8L3N0cm9uZz4gdGhpcyBwYWdlLmAgfSxcclxuICAgICAgcG9zaXRpb246ICdDRU5URVInLFxyXG4gICAgICBiYWNrZ3JvdW5kOiAnYmxhY2snLFxyXG4gICAgfSk7XHJcbiAgICByZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuXHJcbiAgICAgIGlmIChkYXRhID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVQYWdlQ29uZmlybSh0cnVlKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGRlbGV0ZVBhZ2VDb25maXJtKGNvbmZpcm1EZWxldGU6IGFueSkge1xyXG4gICAgaWYgKGNvbmZpcm1EZWxldGUpIHtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFsbFBhZ2VzID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmFsbFBhZ2VzLmZpbHRlcigocGFnZU51bTogYW55KSA9PiBwYWdlTnVtICE9PSB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIpO1xyXG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UuYWxsUGFnZXMgPSB0aGlzLnVwZGF0ZVBhZ2VOdW1iZXJzRm9yQWxsUGFnZXModGhpcy5lZGl0b3JTZXJ2aWNlLmFsbFBhZ2VzKTtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5wYWdlRGV0YWlsc0xpc3QgPSB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLnBhZ2VEZXRhaWxzTGlzdC5maWx0ZXIoKHBhZ2VEZXRhaWw6IGFueSkgPT5cclxuICAgICAgICBwYWdlRGV0YWlsLnBhZ2VOdW1iZXIgIT09IHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlcik7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UucGFnZURldGFpbHNMaXN0ID0gdGhpcy51cGRhdGVQYWdlTnVtYmVyRm9yUGFnZURldGFpbHModGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5wYWdlRGV0YWlsc0xpc3QpO1xyXG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmVsZW1lbnRzID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5lbGVtZW50cy5maWx0ZXIoXHJcbiAgICAgICAgKGVsZW1lbnREZXRhaWw6IGFueSkgPT4gZWxlbWVudERldGFpbC5wYWdlICE9PSB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIpO1xyXG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmVsZW1lbnRzID0gdGhpcy51cGRhdGVQYWdlTnVtYmVyRm9yUXVlc3Rpb25zKHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMpO1xyXG4gICAgICBpZiAodGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyID4gMSkge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlciAtPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZ2V0UGFnZU5hbWUodGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKTtcclxuICAgICAgdGhpcy5jaGVja0ZvclBhZ2VEZXRhaWxzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFjdGl2ZVF1ZXN0aW9uID0gLTEwO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUGFnZU51bWJlcnNGb3JBbGxQYWdlcyhhcnJheVRvQmVVcGRhdGVkOiBhbnkpIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXlUb0JlVXBkYXRlZC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoaSA+PSB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIgLSAxKSB7XHJcbiAgICAgICAgYXJyYXlUb0JlVXBkYXRlZFtpXSAtPSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyYXlUb0JlVXBkYXRlZDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVBhZ2VOdW1iZXJGb3JQYWdlRGV0YWlscyhhcnJheVRvQmVVcGRhdGVkOiBhbnkpIHtcclxuICAgIGFycmF5VG9CZVVwZGF0ZWQuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbGVtZW50LnBhZ2VOdW1iZXIgPj0gdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKSB7XHJcbiAgICAgICAgZWxlbWVudC5wYWdlTnVtYmVyIC09IDE7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGFycmF5VG9CZVVwZGF0ZWQ7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQYWdlTnVtYmVyRm9yUXVlc3Rpb25zKGFycmF5VG9CZVVwZGF0ZWQ6IGFueSkge1xyXG4gICAgYXJyYXlUb0JlVXBkYXRlZC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgaWYgKGVsZW1lbnQucGFnZSA+PSB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIpIHtcclxuICAgICAgICBlbGVtZW50LnBhZ2UgLT0gMTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYXJyYXlUb0JlVXBkYXRlZDtcclxuICB9XHJcblxyXG4gIG9wZW5RdWVzdGlvbigpIHtcclxuICAgIHRoaXMuaGlkZVF1ZXN0aW9uID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNsb3NlUXVlc3Rpb24oKSB7XHJcbiAgICB0aGlzLmhpZGVRdWVzdGlvbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlUXVlc3Rpb25XaXRoVmFsaWRhdGlvbihpbmRleDogYW55KSB7XHJcbiAgICBpZiAoaW5kZXggPT09ICd3ZWxjb21lJykge1xyXG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmhhc1dlbGNvbWUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyID0gMTtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnN0ZXBJZGVudGlmaWVyID0gJ3BhZ2VzY3JlZW4nO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmRlbGV0ZVF1ZXN0aW9uKGluZGV4KTtcclxuICB9XHJcblxyXG4gIGNoZWNrZm9yRXJyb3IobW9kZT86IGFueSkge1xyXG4gICAgLy8gdGhpcy5tb3JlT3B0aW9ucyA9IGZhbHNlO1xyXG4gICAgY29uc3QgZXJyb3JRdWVzdGlvbkluZGV4ID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5lbGVtZW50cy5maW5kSW5kZXgoXHJcbiAgICAgIChlbGVtZW50OiBhbnksIGluZGV4OiBhbnkpID0+IChlbGVtZW50LmVycm9yQXJyYXkgJiYgZWxlbWVudC5lcnJvckFycmF5ICE9PSB7fSAmJiBPYmplY3QudmFsdWVzKGVsZW1lbnQuZXJyb3JBcnJheSkubGVuZ3RoID4gMCkpO1xyXG4gICAgaWYgKGVycm9yUXVlc3Rpb25JbmRleCA+PSAwKSB7XHJcbiAgICAgIGlmIChtb2RlID09PSAnZnVsbCcpIHtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIgPSB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmVsZW1lbnRzW2Vycm9yUXVlc3Rpb25JbmRleF0ucGFnZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobW9kZSAhPT0gJ3BhcnRpYWwnKSB7XHJcbiAgICAgICAgLy8gdGhpcy5nZXRQYWdlTmFtZSh0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIpO1xyXG5cclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuYWN0aXZlUXVlc3Rpb24gPSBlcnJvclF1ZXN0aW9uSW5kZXg7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFjdGl2ZVF1ZXN0aW9uSW5kZXgubmV4dChlcnJvclF1ZXN0aW9uSW5kZXgpO1xyXG5cclxuICAgICAgICBjb25zdCBxdWVzdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHNbZXJyb3JRdWVzdGlvbkluZGV4XS5uYW1lKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIGlmIChxdWVzdGlvbikge1xyXG4gICAgICAgICAgICBxdWVzdGlvbi5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdzdGFydCcgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMjAwKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobW9kZSA9PT0gJ3NhdmUnKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFjdGl2ZVF1ZXN0aW9uID0gLTEwO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5hY3RpdmVRdWVzdGlvbkluZGV4Lm5leHQoLTEwKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAobW9kZSA9PT0gJ3NhdmUnKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFjdGl2ZVF1ZXN0aW9uID0gLTEwO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5hY3RpdmVRdWVzdGlvbkluZGV4Lm5leHQoLTEwKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVBhZ2VEcm9wZG93bigpIHtcclxuICAgIGNvbnN0IGxpc3QgPSBbXTtcclxuICAgIGlmICh0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmhhc1dlbGNvbWUgPT09IHRydWUpIHtcclxuICAgICAgbGlzdC5wdXNoKHsgdmFsdWU6IC0xLCB0ZW1wbGF0ZTogYDxzcGFuIGNsYXNzPVwicGFnZS1udW1iZXJcIj5XZWxjb21lIFNjcmVlbjwvc3Bhbj5gIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuaGFzVGhhbmtzID09PSB0cnVlKSB7XHJcbiAgICAgIGxpc3QucHVzaCh7IHZhbHVlOiAtMiwgdGVtcGxhdGU6IGA8c3BhbiBjbGFzcz1cInBhZ2UtbnVtYmVyXCI+VGhhbmsgeW91IFNjcmVlbjwvc3Bhbj5gIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5hbGxQYWdlcy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgbGlzdC5wdXNoKHsgdmFsdWU6IGVsZW1lbnQsIHRlbXBsYXRlOiB0aGlzLmdldFBhZ2VOYW1lRm9yRHJvcGRvd24oZWxlbWVudCkgfSk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGxpc3Q7XHJcbiAgfVxyXG5cclxuICBnZXRQYWdlTmFtZUZvckRyb3Bkb3duKHBhZ2VOdW1iZXI6IGFueSkge1xyXG4gICAgbGV0IHBhZ2VWYWx1ZSA9IGA8c3BhbiBjbGFzcz1cInBhZ2UtbnVtYmVyXCI+UGFnZSAke3BhZ2VOdW1iZXJ9PC9zcGFuPmA7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLnBhZ2VEZXRhaWxzTGlzdC5mb3JFYWNoKChwYWdlRGV0YWlsOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHBhZ2VEZXRhaWwucGFnZU51bWJlciA9PT0gcGFnZU51bWJlciAmJiBwYWdlRGV0YWlsLnBhZ2VOYW1lICE9PSAnJykge1xyXG4gICAgICAgIHBhZ2VWYWx1ZSA9IGA8c3BhbiBjbGFzcz1cInBhZ2UtbGFiZWwgdngtZnMtOSB2eC1mdy02MDAgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1tci0yIHZ4LWxoLTNcIj5QQUdFPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGFnZS1udW1iZXIgdngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dFwiPiR7cGFnZURldGFpbC5wYWdlTnVtYmVyfTwvc3Bhbj5gXHJcbiAgICAgICAgLy9wYWdlVmFsdWUgPSBgPHNwYW4gY2xhc3M9XCJwYWdlLWxhYmVsIHZ4LWZzLTkgdngtZnctNjAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtbXItMiB2eC1saC0zXCI+UGFnZSA8L3NwYW4+IDxzcGFuICR7cGFnZURldGFpbC5wYWdlTnVtYmVyfTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJwYWdlLW51bWJlciB2eC1mcy0xMSB2eC1wYXJhZ3JhcGgtdHh0XCI+ICR7cGFnZURldGFpbC5wYWdlTmFtZX08L3NwYW4+YDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcGFnZVZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcGFnZUNoYW5nZWQoZXZ0OiBhbnkpIHtcclxuXHJcbiAgICBpZiAoZXZ0LnZhbHVlID09PSAtMSkge1xyXG4gICAgICB0aGlzLnNldElkZW50aWZpZXIoJ3dlbGNvbWVzY3JlZW4nKTtcclxuICAgIH0gZWxzZSBpZiAoZXZ0LnZhbHVlID09PSAtMikge1xyXG4gICAgICB0aGlzLnNldElkZW50aWZpZXIoJ3RoYW5reW91c2NyZWVuJyk7XHJcbiAgICB9IGVsc2UgaWYgKGV2dC52YWx1ZSA+PSAwKSB7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlciA9IGV2dD8udmFsdWU7XHJcbiAgICAgIHRoaXMuc2V0SWRlbnRpZmllcigncGFnZXNjcmVlbicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0SWRlbnRpZmllcihzY3JlZW46IGFueSkge1xyXG4gICAgdGhpcy5jaGFuZ2VUb0luYWN0aXZlKCk7XHJcbiAgICBpZiAoc2NyZWVuID09PSAnd2VsY29tZXNjcmVlbicpIHtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnN0ZXBJZGVudGlmaWVyID0gJ3dlbGNvbWVzY3JlZW4nO1xyXG4gICAgICB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIgPSAtMTtcclxuICAgIH1cclxuICAgIGlmIChzY3JlZW4gPT09ICd0aGFua3lvdXNjcmVlbicpIHtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnN0ZXBJZGVudGlmaWVyID0gJ3RoYW5reW91c2NyZWVuJztcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyID0gLTI7XHJcbiAgICB9XHJcbiAgICBpZiAoc2NyZWVuID09PSAncGFnZXNjcmVlbicpIHtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnN0ZXBJZGVudGlmaWVyID0gJ3BhZ2VzY3JlZW4nO1xyXG4gICAgICBpZiAodGhpcy5lZGl0b3JTZXJ2aWNlLmFsbFBhZ2VzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5hZGRQYWdlKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyID0gMTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIgPT09IC0xIHx8IHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlciA9PT0gLTIpIHtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIgPSB0aGlzLmVkaXRvclNlcnZpY2UuYWxsUGFnZXMubGVuZ3RoO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRQYWdlTmFtZSh0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VOdW1iZXIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFnZU5hbWUocGFnZU51bWJlcjogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcImNhbGxlZCAxMVwiKVxyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlRGV0YWlscyA9IHsgcGFnZU5hbWU6ICcnLCBwYWdlTnVtYmVyOiAwLCBwYWdlRGVzY3JpcHRpb246ICcnIH07XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLnBhZ2VEZXRhaWxzTGlzdC5mb3JFYWNoKChwYWdlRGV0YWlsOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHBhZ2VEZXRhaWwucGFnZU51bWJlciA9PT0gcGFnZU51bWJlcikge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZURldGFpbHMucGFnZU51bWJlciA9IHBhZ2VEZXRhaWwucGFnZU51bWJlcjtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VEZXRhaWxzLnBhZ2VOYW1lID0gcGFnZURldGFpbC5wYWdlTmFtZTtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VEZXRhaWxzLnBhZ2VEZXNjcmlwdGlvbiA9IHBhZ2VEZXRhaWwucGFnZURlc2NyaXB0aW9uO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2hlY2tGb3JQYWdlRGV0YWlscygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tGb3JQYWdlRGV0YWlscygpIHtcclxuICAgIGlmICh0aGlzLmVkaXRvclNlcnZpY2UuY3VycmVudFBhZ2VEZXRhaWxzID09PSB1bmRlZmluZWQgfHwgdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlRGV0YWlscy5wYWdlTmFtZSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnNob3dBZGRQYWdlT3B0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnNob3dQYWdlRGV0YWlscyA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnNob3dBZGRQYWdlT3B0aW9uID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zaG93UGFnZURldGFpbHMgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlVG9JbmFjdGl2ZSgpIHtcclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5hY3RpdmVRdWVzdGlvbiA9IC01O1xyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFjdGl2ZVF1ZXN0aW9uSW5kZXgubmV4dCgtNSk7XHJcbiAgfVxyXG5cclxuICBhZGROZXdQYWdlKCkge1xyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmFkZFBhZ2UoKTtcclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZURldGFpbHMgPSB7IHBhZ2VOYW1lOiAnJywgcGFnZU51bWJlcjogdGhpcy5lZGl0b3JTZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyLCBwYWdlRGVzY3JpcHRpb246ICcnIH07XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc2hvd1BhZ2VEZXRhaWxzID0gZmFsc2U7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc2hvd0FkZFBhZ2VPcHRpb24gPSB0cnVlO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VEcm9wZG93bigpO1xyXG4gIH1cclxuXHJcbiAgY2FwaXRhbGl6ZVN0cmluZyhzdHJpbmdWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gc3RyaW5nVmFsdWVbMF0udG9VcHBlckNhc2UoKSArIHN0cmluZ1ZhbHVlLnNsaWNlKDEpO1xyXG4gIH1cclxuXHJcbiAgb25EZWxldGVQYWdlQ2xpY2soKSB7XHJcbiAgICAvLyB0aGlzLnNob3dEZWxldGVQb3B1cCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBpc1BhZ2VFbXB0eSgpIHtcclxuICAgIGlmICghWy4uLm5ldyBTZXQodGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5lbGVtZW50cy5tYXAoKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudC5wYWdlKSldLmluY2x1ZGVzKHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlcikpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdWJtaXRBZnRlckVycm9yQ2hlY2sobW9kZTogYW55KSB7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuYWN0aXZlUXVlc3Rpb25JbmRleC5uZXh0KC0xMCk7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuYWN0aXZlUXVlc3Rpb24gPSAtMTA7XHJcbiAgICBpZiAodGhpcy5lZGl0b3JTZXJ2aWNlLnN0ZXBJZGVudGlmaWVyID09PSAnd2VsY29tZXNjcmVlbicgfHwgdGhpcy5lZGl0b3JTZXJ2aWNlLnN0ZXBJZGVudGlmaWVyID09PSAndGhhbmt5b3VzY3JlZW4nKSB7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jdXJyZW50UGFnZU51bWJlciA9IDE7XHJcbiAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zdGVwSWRlbnRpZmllciA9ICdwYWdlc2NyZWVuJztcclxuICAgIH1cclxuICAgIC8vdGhpcy5wYWdlTW9kZSA9ICdFRElUJztcclxuXHJcbiAgICB0aGlzLnZhbGlkYXRlV2VsY29tZVRoYW5rWW91KCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5jaGVja2ZvckVycm9yKCdmdWxsJykpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIG9mIHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMpIHtcclxuICAgICAgICAgIGlmICghWydjaGVja2JveCcsICdkcm9wZG93bicsICdtdWx0aXBsZS1jaG9pY2UnXS5pbmNsdWRlcyhxdWVzdGlvbi50eXBlKSkge1xyXG4gICAgICAgICAgICBpZiAocXVlc3Rpb24uY2hvaWNlcykge1xyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uLmNob2ljZXMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50LmNvbG9yID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudC5zY29yZSA9IDE7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50LmlzRmFpbGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcXVlc3Rpb24ub3RoZXJDb25maWcgPSB7IGNvbG9yOiAnJywgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogMCB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNhdmUobW9kZSlcclxuICAgICAgfVxyXG4gICAgfSwgMjAwKTtcclxuXHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVdlbGNvbWVUaGFua1lvdSgpIHtcclxuICAgIGNvbnN0IHF1ZXN0aW9uID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZTtcclxuICAgIGlmIChxdWVzdGlvbi5oYXNXZWxjb21lID09PSB0cnVlKSB7XHJcbiAgICAgIGlmIChxdWVzdGlvbi5oYXNXZWxjb21lRGVzY3JpcHRpb24gPT09IHRydWUgJiYgdGhpcy5lZGl0b3JTZXJ2aWNlLmV4dHJhY3QocXVlc3Rpb24ud2VsY29tZURlc2NyaXB0aW9uKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmhhc1dlbGNvbWVEZXNjcmlwdGlvbiA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChxdWVzdGlvbi5oYXNXZWxjb21lSW1hZ2UgPT09IHRydWUgJiYgdGhpcy5lZGl0b3JTZXJ2aWNlLmV4dHJhY3QocXVlc3Rpb24ud2VsY29tZUltYWdlKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmhhc1dlbGNvbWVJbWFnZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmVkaXRvclNlcnZpY2UuZXh0cmFjdChxdWVzdGlvbi53ZWxjb21lRGVzY3JpcHRpb24pLmxlbmd0aCA9PT0gMCAmJlxyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5leHRyYWN0KHF1ZXN0aW9uLndlbGNvbWVUZXh0KS5sZW5ndGggPT09IDAgJiZcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZXh0cmFjdChxdWVzdGlvbi53ZWxjb21lSW1hZ2UpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuaGFzV2VsY29tZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuaGFzV2VsY29tZURlc2NyaXB0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmhhc1dlbGNvbWVJbWFnZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5oYXNUaGFua3MgPT09IHRydWUpIHtcclxuICAgICAgaWYgKHF1ZXN0aW9uLmhhc1RoYW5reW91RGVzY3JpcHRpb24gPT09IHRydWUgJiYgdGhpcy5lZGl0b3JTZXJ2aWNlLmV4dHJhY3QocXVlc3Rpb24udGhhbmt5b3VEZXNjcmlwdGlvbikubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5oYXNUaGFua3lvdURlc2NyaXB0aW9uID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHF1ZXN0aW9uLmhhc1RoYW5reW91SW1hZ2UgPT09IHRydWUgJiYgdGhpcy5lZGl0b3JTZXJ2aWNlLmV4dHJhY3QocXVlc3Rpb24udGhhbmt5b3VJbWFnZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5oYXNUaGFua3lvdUltYWdlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZWRpdG9yU2VydmljZS5leHRyYWN0KHF1ZXN0aW9uLnRoYW5reW91RGVzY3JpcHRpb24pLmxlbmd0aCA9PT0gMCAmJlxyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5leHRyYWN0KHF1ZXN0aW9uLnRoYW5reW91VGV4dCkubGVuZ3RoID09PSAwICYmXHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmV4dHJhY3QocXVlc3Rpb24udGhhbmt5b3VJbWFnZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmZvcm1zUGFnZS5oYXNUaGFua3MgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZm9ybXNQYWdlLmhhc1RoYW5reW91RGVzY3JpcHRpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UuaGFzVGhhbmt5b3VJbWFnZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNhdmUobW9kZTogJ0RSQUZUJyB8ICdBQ1RJVkUnKSB7XHJcbiAgICBpZiAobW9kZSA9PT0gJ0FDVElWRScgJiYgdGhpcy5vcGVuUG9ydGFsICE9PSAnUkVTUE9OU0lCSUxJVFlfQ0hFQ0tQT0lOVCcpIHtcclxuICAgICAgY29uc3QgcmVmID0gdGhpcy5kaWFsb2cub3BlbihBY3RpdmVDb21wb25lbnQsIHtcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBtZXNzYWdlOiBgT25jZSBwdWJsaXNoZWQsIHRoaXMgYXNzZXNzbWVudCB3aWxsIGJlIGFjdGl2ZSBhbmQgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBhIGNvbXBsaWFuY2UgcmVzcG9uc2liaWxpdHkuYFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9zaXRpb246ICdDRU5URVInLFxyXG4gICAgICAgIGJhY2tncm91bmQ6ICdibGFjaycsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5wb3N0QXNzZXNzbWVudC5lbWl0KHsgbW9kZTogbW9kZSwgYXNzZXNzbWVudERldGFpbHM6IHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2UgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wb3N0QXNzZXNzbWVudC5lbWl0KHsgbW9kZTogbW9kZSwgYXNzZXNzbWVudERldGFpbHM6IHRoaXMuZWRpdG9yU2VydmljZS5mb3Jtc1BhZ2V9KTtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==