@senior-gestao-empresarial/erpx-components 0.0.0-develop-3bab051d

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 (382) hide show
  1. package/bundles/senior-gestao-empresarial-erpx-components.umd.js +37665 -0
  2. package/bundles/senior-gestao-empresarial-erpx-components.umd.js.map +1 -0
  3. package/bundles/senior-gestao-empresarial-erpx-components.umd.min.js +17 -0
  4. package/bundles/senior-gestao-empresarial-erpx-components.umd.min.js.map +1 -0
  5. package/components/breadcrumb/breadcrumb.component.d.ts +21 -0
  6. package/components/breadcrumb/breadcrumb.module.d.ts +2 -0
  7. package/components/breadcrumb/index.d.ts +2 -0
  8. package/components/focus/focus.service.d.ts +4 -0
  9. package/components/lote-serie/erp-lote-serie.component.d.ts +183 -0
  10. package/components/lote-serie/erp-lote-serie.module.d.ts +2 -0
  11. package/components/lote-serie/erp-lote-serie.service.d.ts +137 -0
  12. package/components/lote-serie/index.d.ts +2 -0
  13. package/components/rateio-editor/erp-rateio-editor.component.d.ts +202 -0
  14. package/components/rateio-editor/erp-rateio-editor.converter.d.ts +18 -0
  15. package/components/rateio-editor/erp-rateio-editor.module.d.ts +2 -0
  16. package/components/rateio-editor/erp-rateio-editor.service.d.ts +17 -0
  17. package/components/rateio-editor/erp-rateio-editor.types.d.ts +171 -0
  18. package/components/rateio-editor/index.d.ts +4 -0
  19. package/components/resumo/erp-resumo.component.d.ts +17 -0
  20. package/components/resumo/erp-resumo.module.d.ts +2 -0
  21. package/components/resumo/erp-resumo.service.d.ts +2 -0
  22. package/components/resumo/index.d.ts +2 -0
  23. package/components/tributos/calculators/effective-tax-rate-calculator.d.ts +34 -0
  24. package/components/tributos/calculators/gross-amount-calculator.d.ts +20 -0
  25. package/components/tributos/calculators/tax-amount-calculator.d.ts +54 -0
  26. package/components/tributos/erp-tributos.component.d.ts +215 -0
  27. package/components/tributos/erp-tributos.module.d.ts +2 -0
  28. package/components/tributos/erp-tributos.service.d.ts +10 -0
  29. package/components/tributos/erp-tributos.types.d.ts +286 -0
  30. package/components/tributos/index.d.ts +12 -0
  31. package/components/tributos/mappings/enum-tip-imp-cst-mapping.d.ts +2 -0
  32. package/components/tributos/rules/calculation/registries/calculation-rules-registries/calculation-rules.registry.d.ts +15 -0
  33. package/components/tributos/rules/calculation/registries/calculation-rules-registries/incoming-invoice-calculation-rules.registry.d.ts +28 -0
  34. package/components/tributos/rules/calculation/registries/calculation-rules-registries/outgoing-invoice-calculation-rules.registry.d.ts +30 -0
  35. package/components/tributos/rules/calculation/registries/calculation-rules-registries/purchase-order-calculation-rules.registry.d.ts +22 -0
  36. package/components/tributos/rules/calculation/registries/calculation-rules-registries/sale-order-calculation-rules.registry.d.ts +22 -0
  37. package/components/tributos/rules/calculation/rules/apply-net-value-to-document-calculation-rule.d.ts +5 -0
  38. package/components/tributos/rules/calculation/rules/assessment-period-calculation-rule.d.ts +5 -0
  39. package/components/tributos/rules/calculation/rules/effective-tax-rate-calculation-rule.d.ts +8 -0
  40. package/components/tributos/rules/calculation/rules/gross-amount-calculation-rule.d.ts +8 -0
  41. package/components/tributos/rules/calculation/rules/manual-tax-calculation-rule.d.ts +5 -0
  42. package/components/tributos/rules/calculation/rules/tax-amount-calculation-rule.d.ts +8 -0
  43. package/components/tributos/rules/calculation/rules/tax-calculation-type-calculation-rule.d.ts +5 -0
  44. package/components/tributos/rules/calculation/rules/tax-classification-calculation-rule.d.ts +6 -0
  45. package/components/tributos/rules/calculation/rules/tax-rate-calculation-rule.d.ts +5 -0
  46. package/components/tributos/rules/calculation/rules/tax-situation-calculation-rule.d.ts +5 -0
  47. package/components/tributos/rules/calculation/rules/taxable-base-calculation-rule.d.ts +8 -0
  48. package/components/tributos/rules/rules.service.d.ts +19 -0
  49. package/components/tributos/rules/status/registries/incoming-invoice-status-rules.registry.d.ts +16 -0
  50. package/components/tributos/rules/status/registries/outgoing-invoice-status-rules.registry.d.ts +12 -0
  51. package/components/tributos/rules/status/registries/purchase-order-status-rules.registry.d.ts +12 -0
  52. package/components/tributos/rules/status/registries/sale-order-status-rules.registry.d.ts +8 -0
  53. package/components/tributos/rules/status/registries/status-rules.registry.d.ts +15 -0
  54. package/components/tributos/rules/status/rules/apply-net-value-to-document-status-rule.d.ts +5 -0
  55. package/components/tributos/rules/status/rules/tax-classification-status-rule.d.ts +5 -0
  56. package/components/tributos/rules/status/rules/tax-rate-status-rule.d.ts +5 -0
  57. package/components/tributos/rules/status/rules/taxable-base-status-rule.d.ts +5 -0
  58. package/components/tributos/rules/types/available-fields.d.ts +2 -0
  59. package/components/tributos/rules/types/available-taxes.d.ts +1 -0
  60. package/components/tributos/rules/types/field-calculation-rule-mapping.d.ts +6 -0
  61. package/components/tributos/rules/types/field-rule-mapping.d.ts +6 -0
  62. package/components/tributos/rules/types/field-status-rule-mapping.d.ts +6 -0
  63. package/components/tributos/rules/types/rule-payload.d.ts +9 -0
  64. package/components/tributos/rules/types/schemas/incoming-invoice.schema.d.ts +235 -0
  65. package/components/tributos/rules/types/schemas/outgoing-invoice.schema.d.ts +349 -0
  66. package/components/tributos/rules/types/schemas/purchase-order.schema.d.ts +26 -0
  67. package/components/tributos/rules/types/schemas/sale-order.schema.d.ts +131 -0
  68. package/components/tributos/rules/types/strategies-by-document.d.ts +12 -0
  69. package/components/tributos/rules/types/strategies.d.ts +4 -0
  70. package/components/tributos/rules/types/tax-rule.d.ts +4 -0
  71. package/components/tributos/rules/validation/registries/incoming-invoice-validation-rules.registry.d.ts +20 -0
  72. package/components/tributos/rules/validation/registries/outgoing-invoice-validation-rules.registry.d.ts +22 -0
  73. package/components/tributos/rules/validation/registries/purchase-order-validation-rules.registry.d.ts +14 -0
  74. package/components/tributos/rules/validation/registries/sale-order-validation-rules.registry.d.ts +14 -0
  75. package/components/tributos/rules/validation/registries/validation-rules.registry.d.ts +15 -0
  76. package/components/tributos/rules/validation/rules/required/apply-net-value-to-document-required-validation-rule.d.ts +5 -0
  77. package/components/tributos/rules/validation/rules/required/assessment-period-required-validation-rule.d.ts +5 -0
  78. package/components/tributos/rules/validation/rules/required/tax-amount-required-validation-rule.d.ts +5 -0
  79. package/components/tributos/rules/validation/rules/required/tax-classification-required-validation-rule.d.ts +5 -0
  80. package/components/tributos/rules/validation/rules/required/tax-rate-required-validation-rule.d.ts +6 -0
  81. package/components/tributos/rules/validation/rules/required/tax-situation-required-validation-rule.d.ts +6 -0
  82. package/components/tributos/rules/validation/rules/required/taxable-base-required-validation-rule.d.ts +6 -0
  83. package/components/tributos/services/tax-rounding.service.d.ts +5 -0
  84. package/components/tributos/stores/tax.store.d.ts +10 -0
  85. package/components/tributos/tax-reform-utilities.d.ts +36 -0
  86. package/components/tributos/types/context.d.ts +7 -0
  87. package/components/tributos/types/controllership-incoming-invoice-context.d.ts +5 -0
  88. package/components/tributos/types/controllership-incoming-invoice.d.ts +3 -0
  89. package/components/tributos/types/controllership-outgoing-invoice-context.d.ts +5 -0
  90. package/components/tributos/types/controllership-outgoing-invoice.d.ts +3 -0
  91. package/components/tributos/types/credit-invoice-type.d.ts +1 -0
  92. package/components/tributos/types/debit-invoice-type.d.ts +1 -0
  93. package/components/tributos/types/group.d.ts +6 -0
  94. package/components/tributos/types/incoming-invoice-context.d.ts +5 -0
  95. package/components/tributos/types/incoming-invoice-item.d.ts +4 -0
  96. package/components/tributos/types/incoming-invoice-type.d.ts +1 -0
  97. package/components/tributos/types/incoming-invoice.d.ts +11 -0
  98. package/components/tributos/types/item-type.d.ts +1 -0
  99. package/components/tributos/types/outgoing-Invoice.d.ts +11 -0
  100. package/components/tributos/types/outgoing-invoice-context.d.ts +5 -0
  101. package/components/tributos/types/outgoing-invoice-item.d.ts +4 -0
  102. package/components/tributos/types/outgoing-invoice-type.d.ts +1 -0
  103. package/components/tributos/types/purchase-order-context.d.ts +5 -0
  104. package/components/tributos/types/purchase-order-type.d.ts +1 -0
  105. package/components/tributos/types/purchase-order.d.ts +8 -0
  106. package/components/tributos/types/sale-order-context.d.ts +5 -0
  107. package/components/tributos/types/sale-order-type.d.ts +1 -0
  108. package/components/tributos/types/sale-order.d.ts +8 -0
  109. package/components/tributos/types/tax.d.ts +8 -0
  110. package/components/utils/breakpoints.d.ts +10 -0
  111. package/components/utils/export-utils.d.ts +6 -0
  112. package/components/utils/index.d.ts +3 -0
  113. package/components/utils/loading-context.d.ts +7 -0
  114. package/components/utils/utils.d.ts +4 -0
  115. package/core/entities/entity-service.d.ts +32 -0
  116. package/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda-dto.d.ts +36 -0
  117. package/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.d.ts +40 -0
  118. package/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.module.d.ts +2 -0
  119. package/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.service.d.ts +11 -0
  120. package/core/enums/enum-classificacao-tributaria.d.ts +4 -0
  121. package/core/enums/enum-tipo-calculo-imposto.d.ts +5 -0
  122. package/core/enums/enum-tipo-documento-parametros.d.ts +7 -0
  123. package/core/enums/enum-tipo-documento.d.ts +10 -0
  124. package/core/enums/erpx-com-processo-faturamento-backend/enum-indicativo-padrao.d.ts +5 -0
  125. package/core/enums/erpx-cpl-imp-cadastros-backend/enum-indicativo-padrao.d.ts +8 -0
  126. package/esm2015/components/breadcrumb/breadcrumb.component.js +86 -0
  127. package/esm2015/components/breadcrumb/breadcrumb.module.js +17 -0
  128. package/esm2015/components/breadcrumb/index.js +3 -0
  129. package/esm2015/components/focus/focus.service.js +32 -0
  130. package/esm2015/components/lote-serie/erp-lote-serie.component.js +1772 -0
  131. package/esm2015/components/lote-serie/erp-lote-serie.module.js +47 -0
  132. package/esm2015/components/lote-serie/erp-lote-serie.service.js +94 -0
  133. package/esm2015/components/lote-serie/index.js +3 -0
  134. package/esm2015/components/rateio-editor/erp-rateio-editor.component.js +794 -0
  135. package/esm2015/components/rateio-editor/erp-rateio-editor.converter.js +52 -0
  136. package/esm2015/components/rateio-editor/erp-rateio-editor.module.js +40 -0
  137. package/esm2015/components/rateio-editor/erp-rateio-editor.service.js +49 -0
  138. package/esm2015/components/rateio-editor/erp-rateio-editor.types.js +5 -0
  139. package/esm2015/components/rateio-editor/index.js +4 -0
  140. package/esm2015/components/resumo/erp-resumo.component.js +19 -0
  141. package/esm2015/components/resumo/erp-resumo.module.js +25 -0
  142. package/esm2015/components/resumo/erp-resumo.service.js +13 -0
  143. package/esm2015/components/resumo/index.js +2 -0
  144. package/esm2015/components/tributos/calculators/effective-tax-rate-calculator.js +53 -0
  145. package/esm2015/components/tributos/calculators/gross-amount-calculator.js +37 -0
  146. package/esm2015/components/tributos/calculators/tax-amount-calculator.js +87 -0
  147. package/esm2015/components/tributos/erp-tributos.component.js +5176 -0
  148. package/esm2015/components/tributos/erp-tributos.module.js +33 -0
  149. package/esm2015/components/tributos/erp-tributos.service.js +23 -0
  150. package/esm2015/components/tributos/erp-tributos.types.js +268 -0
  151. package/esm2015/components/tributos/index.js +4 -0
  152. package/esm2015/components/tributos/mappings/enum-tip-imp-cst-mapping.js +33 -0
  153. package/esm2015/components/tributos/rules/calculation/registries/calculation-rules-registries/calculation-rules.registry.js +45 -0
  154. package/esm2015/components/tributos/rules/calculation/registries/calculation-rules-registries/incoming-invoice-calculation-rules.registry.js +3102 -0
  155. package/esm2015/components/tributos/rules/calculation/registries/calculation-rules-registries/outgoing-invoice-calculation-rules.registry.js +4516 -0
  156. package/esm2015/components/tributos/rules/calculation/registries/calculation-rules-registries/purchase-order-calculation-rules.registry.js +294 -0
  157. package/esm2015/components/tributos/rules/calculation/registries/calculation-rules-registries/sale-order-calculation-rules.registry.js +1464 -0
  158. package/esm2015/components/tributos/rules/calculation/rules/apply-net-value-to-document-calculation-rule.js +48 -0
  159. package/esm2015/components/tributos/rules/calculation/rules/assessment-period-calculation-rule.js +55 -0
  160. package/esm2015/components/tributos/rules/calculation/rules/effective-tax-rate-calculation-rule.js +83 -0
  161. package/esm2015/components/tributos/rules/calculation/rules/gross-amount-calculation-rule.js +74 -0
  162. package/esm2015/components/tributos/rules/calculation/rules/manual-tax-calculation-rule.js +72 -0
  163. package/esm2015/components/tributos/rules/calculation/rules/tax-amount-calculation-rule.js +244 -0
  164. package/esm2015/components/tributos/rules/calculation/rules/tax-calculation-type-calculation-rule.js +74 -0
  165. package/esm2015/components/tributos/rules/calculation/rules/tax-classification-calculation-rule.js +170 -0
  166. package/esm2015/components/tributos/rules/calculation/rules/tax-rate-calculation-rule.js +100 -0
  167. package/esm2015/components/tributos/rules/calculation/rules/tax-situation-calculation-rule.js +124 -0
  168. package/esm2015/components/tributos/rules/calculation/rules/taxable-base-calculation-rule.js +292 -0
  169. package/esm2015/components/tributos/rules/rules.service.js +61 -0
  170. package/esm2015/components/tributos/rules/status/registries/incoming-invoice-status-rules.registry.js +1076 -0
  171. package/esm2015/components/tributos/rules/status/registries/outgoing-invoice-status-rules.registry.js +1317 -0
  172. package/esm2015/components/tributos/rules/status/registries/purchase-order-status-rules.registry.js +62 -0
  173. package/esm2015/components/tributos/rules/status/registries/sale-order-status-rules.registry.js +18 -0
  174. package/esm2015/components/tributos/rules/status/registries/status-rules.registry.js +45 -0
  175. package/esm2015/components/tributos/rules/status/rules/apply-net-value-to-document-status-rule.js +39 -0
  176. package/esm2015/components/tributos/rules/status/rules/tax-classification-status-rule.js +94 -0
  177. package/esm2015/components/tributos/rules/status/rules/tax-rate-status-rule.js +61 -0
  178. package/esm2015/components/tributos/rules/status/rules/taxable-base-status-rule.js +65 -0
  179. package/esm2015/components/tributos/rules/types/available-fields.js +1 -0
  180. package/esm2015/components/tributos/rules/types/available-taxes.js +1 -0
  181. package/esm2015/components/tributos/rules/types/field-calculation-rule-mapping.js +1 -0
  182. package/esm2015/components/tributos/rules/types/field-rule-mapping.js +1 -0
  183. package/esm2015/components/tributos/rules/types/field-status-rule-mapping.js +1 -0
  184. package/esm2015/components/tributos/rules/types/rule-payload.js +1 -0
  185. package/esm2015/components/tributos/rules/types/schemas/incoming-invoice.schema.js +1816 -0
  186. package/esm2015/components/tributos/rules/types/schemas/outgoing-invoice.schema.js +2750 -0
  187. package/esm2015/components/tributos/rules/types/schemas/purchase-order.schema.js +150 -0
  188. package/esm2015/components/tributos/rules/types/schemas/sale-order.schema.js +879 -0
  189. package/esm2015/components/tributos/rules/types/strategies-by-document.js +1 -0
  190. package/esm2015/components/tributos/rules/types/strategies.js +1 -0
  191. package/esm2015/components/tributos/rules/types/tax-rule.js +1 -0
  192. package/esm2015/components/tributos/rules/validation/registries/incoming-invoice-validation-rules.registry.js +3606 -0
  193. package/esm2015/components/tributos/rules/validation/registries/outgoing-invoice-validation-rules.registry.js +5452 -0
  194. package/esm2015/components/tributos/rules/validation/registries/purchase-order-validation-rules.registry.js +270 -0
  195. package/esm2015/components/tributos/rules/validation/registries/sale-order-validation-rules.registry.js +1392 -0
  196. package/esm2015/components/tributos/rules/validation/registries/validation-rules.registry.js +45 -0
  197. package/esm2015/components/tributos/rules/validation/rules/required/apply-net-value-to-document-required-validation-rule.js +73 -0
  198. package/esm2015/components/tributos/rules/validation/rules/required/assessment-period-required-validation-rule.js +78 -0
  199. package/esm2015/components/tributos/rules/validation/rules/required/tax-amount-required-validation-rule.js +902 -0
  200. package/esm2015/components/tributos/rules/validation/rules/required/tax-classification-required-validation-rule.js +401 -0
  201. package/esm2015/components/tributos/rules/validation/rules/required/tax-rate-required-validation-rule.js +719 -0
  202. package/esm2015/components/tributos/rules/validation/rules/required/tax-situation-required-validation-rule.js +300 -0
  203. package/esm2015/components/tributos/rules/validation/rules/required/taxable-base-required-validation-rule.js +717 -0
  204. package/esm2015/components/tributos/services/tax-rounding.service.js +18 -0
  205. package/esm2015/components/tributos/stores/tax.store.js +19 -0
  206. package/esm2015/components/tributos/tax-reform-utilities.js +243 -0
  207. package/esm2015/components/tributos/types/context.js +1 -0
  208. package/esm2015/components/tributos/types/controllership-incoming-invoice-context.js +1 -0
  209. package/esm2015/components/tributos/types/controllership-incoming-invoice.js +1 -0
  210. package/esm2015/components/tributos/types/controllership-outgoing-invoice-context.js +1 -0
  211. package/esm2015/components/tributos/types/controllership-outgoing-invoice.js +1 -0
  212. package/esm2015/components/tributos/types/credit-invoice-type.js +1 -0
  213. package/esm2015/components/tributos/types/debit-invoice-type.js +1 -0
  214. package/esm2015/components/tributos/types/group.js +1 -0
  215. package/esm2015/components/tributos/types/incoming-invoice-context.js +1 -0
  216. package/esm2015/components/tributos/types/incoming-invoice-item.js +1 -0
  217. package/esm2015/components/tributos/types/incoming-invoice-type.js +1 -0
  218. package/esm2015/components/tributos/types/incoming-invoice.js +1 -0
  219. package/esm2015/components/tributos/types/item-type.js +1 -0
  220. package/esm2015/components/tributos/types/outgoing-Invoice.js +1 -0
  221. package/esm2015/components/tributos/types/outgoing-invoice-context.js +1 -0
  222. package/esm2015/components/tributos/types/outgoing-invoice-item.js +1 -0
  223. package/esm2015/components/tributos/types/outgoing-invoice-type.js +1 -0
  224. package/esm2015/components/tributos/types/purchase-order-context.js +1 -0
  225. package/esm2015/components/tributos/types/purchase-order-type.js +1 -0
  226. package/esm2015/components/tributos/types/purchase-order.js +1 -0
  227. package/esm2015/components/tributos/types/sale-order-context.js +1 -0
  228. package/esm2015/components/tributos/types/sale-order-type.js +1 -0
  229. package/esm2015/components/tributos/types/sale-order.js +1 -0
  230. package/esm2015/components/tributos/types/tax.js +2 -0
  231. package/esm2015/components/utils/breakpoints.js +11 -0
  232. package/esm2015/components/utils/export-utils.js +71 -0
  233. package/esm2015/components/utils/index.js +4 -0
  234. package/esm2015/components/utils/loading-context.js +20 -0
  235. package/esm2015/components/utils/utils.js +18 -0
  236. package/esm2015/core/entities/entity-service.js +91 -0
  237. package/esm2015/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda-dto.js +1 -0
  238. package/esm2015/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.js +62 -0
  239. package/esm2015/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.module.js +24 -0
  240. package/esm2015/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.service.js +24 -0
  241. package/esm2015/core/enums/enum-classificacao-tributaria.js +6 -0
  242. package/esm2015/core/enums/enum-tipo-calculo-imposto.js +7 -0
  243. package/esm2015/core/enums/enum-tipo-documento-parametros.js +9 -0
  244. package/esm2015/core/enums/enum-tipo-documento.js +12 -0
  245. package/esm2015/core/enums/erpx-com-processo-faturamento-backend/enum-indicativo-padrao.js +7 -0
  246. package/esm2015/core/enums/erpx-cpl-imp-cadastros-backend/enum-indicativo-padrao.js +10 -0
  247. package/esm2015/locale/fallback.js +56 -0
  248. package/esm2015/public-api.js +8 -0
  249. package/esm2015/senior-gestao-empresarial-erpx-components.js +58 -0
  250. package/esm5/components/breadcrumb/breadcrumb.component.js +91 -0
  251. package/esm5/components/breadcrumb/breadcrumb.module.js +20 -0
  252. package/esm5/components/breadcrumb/index.js +3 -0
  253. package/esm5/components/focus/focus.service.js +35 -0
  254. package/esm5/components/lote-serie/erp-lote-serie.component.js +1830 -0
  255. package/esm5/components/lote-serie/erp-lote-serie.module.js +50 -0
  256. package/esm5/components/lote-serie/erp-lote-serie.service.js +96 -0
  257. package/esm5/components/lote-serie/index.js +3 -0
  258. package/esm5/components/rateio-editor/erp-rateio-editor.component.js +861 -0
  259. package/esm5/components/rateio-editor/erp-rateio-editor.converter.js +68 -0
  260. package/esm5/components/rateio-editor/erp-rateio-editor.module.js +43 -0
  261. package/esm5/components/rateio-editor/erp-rateio-editor.service.js +51 -0
  262. package/esm5/components/rateio-editor/erp-rateio-editor.types.js +5 -0
  263. package/esm5/components/rateio-editor/index.js +4 -0
  264. package/esm5/components/resumo/erp-resumo.component.js +22 -0
  265. package/esm5/components/resumo/erp-resumo.module.js +28 -0
  266. package/esm5/components/resumo/erp-resumo.service.js +16 -0
  267. package/esm5/components/resumo/index.js +2 -0
  268. package/esm5/components/tributos/calculators/effective-tax-rate-calculator.js +58 -0
  269. package/esm5/components/tributos/calculators/gross-amount-calculator.js +39 -0
  270. package/esm5/components/tributos/calculators/tax-amount-calculator.js +91 -0
  271. package/esm5/components/tributos/erp-tributos.component.js +5296 -0
  272. package/esm5/components/tributos/erp-tributos.module.js +36 -0
  273. package/esm5/components/tributos/erp-tributos.service.js +24 -0
  274. package/esm5/components/tributos/erp-tributos.types.js +268 -0
  275. package/esm5/components/tributos/index.js +4 -0
  276. package/esm5/components/tributos/mappings/enum-tip-imp-cst-mapping.js +33 -0
  277. package/esm5/components/tributos/rules/calculation/registries/calculation-rules-registries/calculation-rules.registry.js +46 -0
  278. package/esm5/components/tributos/rules/calculation/registries/calculation-rules-registries/incoming-invoice-calculation-rules.registry.js +3104 -0
  279. package/esm5/components/tributos/rules/calculation/registries/calculation-rules-registries/outgoing-invoice-calculation-rules.registry.js +4518 -0
  280. package/esm5/components/tributos/rules/calculation/registries/calculation-rules-registries/purchase-order-calculation-rules.registry.js +296 -0
  281. package/esm5/components/tributos/rules/calculation/registries/calculation-rules-registries/sale-order-calculation-rules.registry.js +1466 -0
  282. package/esm5/components/tributos/rules/calculation/rules/apply-net-value-to-document-calculation-rule.js +60 -0
  283. package/esm5/components/tributos/rules/calculation/rules/assessment-period-calculation-rule.js +77 -0
  284. package/esm5/components/tributos/rules/calculation/rules/effective-tax-rate-calculation-rule.js +92 -0
  285. package/esm5/components/tributos/rules/calculation/rules/gross-amount-calculation-rule.js +83 -0
  286. package/esm5/components/tributos/rules/calculation/rules/manual-tax-calculation-rule.js +87 -0
  287. package/esm5/components/tributos/rules/calculation/rules/tax-amount-calculation-rule.js +286 -0
  288. package/esm5/components/tributos/rules/calculation/rules/tax-calculation-type-calculation-rule.js +89 -0
  289. package/esm5/components/tributos/rules/calculation/rules/tax-classification-calculation-rule.js +241 -0
  290. package/esm5/components/tributos/rules/calculation/rules/tax-rate-calculation-rule.js +118 -0
  291. package/esm5/components/tributos/rules/calculation/rules/tax-situation-calculation-rule.js +200 -0
  292. package/esm5/components/tributos/rules/calculation/rules/taxable-base-calculation-rule.js +330 -0
  293. package/esm5/components/tributos/rules/rules.service.js +139 -0
  294. package/esm5/components/tributos/rules/status/registries/incoming-invoice-status-rules.registry.js +1078 -0
  295. package/esm5/components/tributos/rules/status/registries/outgoing-invoice-status-rules.registry.js +1319 -0
  296. package/esm5/components/tributos/rules/status/registries/purchase-order-status-rules.registry.js +64 -0
  297. package/esm5/components/tributos/rules/status/registries/sale-order-status-rules.registry.js +19 -0
  298. package/esm5/components/tributos/rules/status/registries/status-rules.registry.js +46 -0
  299. package/esm5/components/tributos/rules/status/rules/apply-net-value-to-document-status-rule.js +43 -0
  300. package/esm5/components/tributos/rules/status/rules/tax-classification-status-rule.js +106 -0
  301. package/esm5/components/tributos/rules/status/rules/tax-rate-status-rule.js +68 -0
  302. package/esm5/components/tributos/rules/status/rules/taxable-base-status-rule.js +72 -0
  303. package/esm5/components/tributos/rules/types/available-fields.js +1 -0
  304. package/esm5/components/tributos/rules/types/available-taxes.js +1 -0
  305. package/esm5/components/tributos/rules/types/field-calculation-rule-mapping.js +1 -0
  306. package/esm5/components/tributos/rules/types/field-rule-mapping.js +1 -0
  307. package/esm5/components/tributos/rules/types/field-status-rule-mapping.js +1 -0
  308. package/esm5/components/tributos/rules/types/rule-payload.js +1 -0
  309. package/esm5/components/tributos/rules/types/schemas/incoming-invoice.schema.js +1817 -0
  310. package/esm5/components/tributos/rules/types/schemas/outgoing-invoice.schema.js +2751 -0
  311. package/esm5/components/tributos/rules/types/schemas/purchase-order.schema.js +151 -0
  312. package/esm5/components/tributos/rules/types/schemas/sale-order.schema.js +880 -0
  313. package/esm5/components/tributos/rules/types/strategies-by-document.js +1 -0
  314. package/esm5/components/tributos/rules/types/strategies.js +1 -0
  315. package/esm5/components/tributos/rules/types/tax-rule.js +1 -0
  316. package/esm5/components/tributos/rules/validation/registries/incoming-invoice-validation-rules.registry.js +3608 -0
  317. package/esm5/components/tributos/rules/validation/registries/outgoing-invoice-validation-rules.registry.js +5454 -0
  318. package/esm5/components/tributos/rules/validation/registries/purchase-order-validation-rules.registry.js +272 -0
  319. package/esm5/components/tributos/rules/validation/registries/sale-order-validation-rules.registry.js +1394 -0
  320. package/esm5/components/tributos/rules/validation/registries/validation-rules.registry.js +46 -0
  321. package/esm5/components/tributos/rules/validation/rules/required/apply-net-value-to-document-required-validation-rule.js +77 -0
  322. package/esm5/components/tributos/rules/validation/rules/required/assessment-period-required-validation-rule.js +86 -0
  323. package/esm5/components/tributos/rules/validation/rules/required/tax-amount-required-validation-rule.js +968 -0
  324. package/esm5/components/tributos/rules/validation/rules/required/tax-classification-required-validation-rule.js +433 -0
  325. package/esm5/components/tributos/rules/validation/rules/required/tax-rate-required-validation-rule.js +774 -0
  326. package/esm5/components/tributos/rules/validation/rules/required/tax-situation-required-validation-rule.js +323 -0
  327. package/esm5/components/tributos/rules/validation/rules/required/taxable-base-required-validation-rule.js +772 -0
  328. package/esm5/components/tributos/services/tax-rounding.service.js +23 -0
  329. package/esm5/components/tributos/stores/tax.store.js +26 -0
  330. package/esm5/components/tributos/tax-reform-utilities.js +249 -0
  331. package/esm5/components/tributos/types/context.js +1 -0
  332. package/esm5/components/tributos/types/controllership-incoming-invoice-context.js +1 -0
  333. package/esm5/components/tributos/types/controllership-incoming-invoice.js +1 -0
  334. package/esm5/components/tributos/types/controllership-outgoing-invoice-context.js +1 -0
  335. package/esm5/components/tributos/types/controllership-outgoing-invoice.js +1 -0
  336. package/esm5/components/tributos/types/credit-invoice-type.js +1 -0
  337. package/esm5/components/tributos/types/debit-invoice-type.js +1 -0
  338. package/esm5/components/tributos/types/group.js +1 -0
  339. package/esm5/components/tributos/types/incoming-invoice-context.js +1 -0
  340. package/esm5/components/tributos/types/incoming-invoice-item.js +1 -0
  341. package/esm5/components/tributos/types/incoming-invoice-type.js +1 -0
  342. package/esm5/components/tributos/types/incoming-invoice.js +1 -0
  343. package/esm5/components/tributos/types/item-type.js +1 -0
  344. package/esm5/components/tributos/types/outgoing-Invoice.js +1 -0
  345. package/esm5/components/tributos/types/outgoing-invoice-context.js +1 -0
  346. package/esm5/components/tributos/types/outgoing-invoice-item.js +1 -0
  347. package/esm5/components/tributos/types/outgoing-invoice-type.js +1 -0
  348. package/esm5/components/tributos/types/purchase-order-context.js +1 -0
  349. package/esm5/components/tributos/types/purchase-order-type.js +1 -0
  350. package/esm5/components/tributos/types/purchase-order.js +1 -0
  351. package/esm5/components/tributos/types/sale-order-context.js +1 -0
  352. package/esm5/components/tributos/types/sale-order-type.js +1 -0
  353. package/esm5/components/tributos/types/sale-order.js +1 -0
  354. package/esm5/components/tributos/types/tax.js +2 -0
  355. package/esm5/components/utils/breakpoints.js +11 -0
  356. package/esm5/components/utils/export-utils.js +78 -0
  357. package/esm5/components/utils/index.js +4 -0
  358. package/esm5/components/utils/loading-context.js +22 -0
  359. package/esm5/components/utils/utils.js +20 -0
  360. package/esm5/core/entities/entity-service.js +98 -0
  361. package/esm5/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda-dto.js +1 -0
  362. package/esm5/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.js +67 -0
  363. package/esm5/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.module.js +27 -0
  364. package/esm5/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.service.js +27 -0
  365. package/esm5/core/enums/enum-classificacao-tributaria.js +6 -0
  366. package/esm5/core/enums/enum-tipo-calculo-imposto.js +7 -0
  367. package/esm5/core/enums/enum-tipo-documento-parametros.js +9 -0
  368. package/esm5/core/enums/enum-tipo-documento.js +12 -0
  369. package/esm5/core/enums/erpx-com-processo-faturamento-backend/enum-indicativo-padrao.js +7 -0
  370. package/esm5/core/enums/erpx-cpl-imp-cadastros-backend/enum-indicativo-padrao.js +10 -0
  371. package/esm5/locale/fallback.js +56 -0
  372. package/esm5/public-api.js +8 -0
  373. package/esm5/senior-gestao-empresarial-erpx-components.js +58 -0
  374. package/fesm2015/senior-gestao-empresarial-erpx-components.js +36350 -0
  375. package/fesm2015/senior-gestao-empresarial-erpx-components.js.map +1 -0
  376. package/fesm5/senior-gestao-empresarial-erpx-components.js +37396 -0
  377. package/fesm5/senior-gestao-empresarial-erpx-components.js.map +1 -0
  378. package/locale/fallback.d.ts +55 -0
  379. package/package.json +23 -0
  380. package/public-api.d.ts +7 -0
  381. package/senior-gestao-empresarial-erpx-components.d.ts +57 -0
  382. package/senior-gestao-empresarial-erpx-components.metadata.json +1 -0
@@ -0,0 +1,1464 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { EnumCampoTributo, EnumTipoTributo } from '../../../../erp-tributos.types';
4
+ import { EffectiveTaxRateCalculationRule } from '../../rules/effective-tax-rate-calculation-rule';
5
+ import { GrossAmountCalculationRule } from '../../rules/gross-amount-calculation-rule';
6
+ import { ManualTaxCalculationRule } from '../../rules/manual-tax-calculation-rule';
7
+ import { TaxAmountCalculationRule } from '../../rules/tax-amount-calculation-rule';
8
+ import { TaxCalculationTypeCalculationRule } from '../../rules/tax-calculation-type-calculation-rule';
9
+ import { TaxRateCalculationRule } from '../../rules/tax-rate-calculation-rule';
10
+ import { TaxableBaseCalculationRule } from '../../rules/taxable-base-calculation-rule';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "../../rules/taxable-base-calculation-rule";
13
+ import * as i2 from "../../rules/tax-rate-calculation-rule";
14
+ import * as i3 from "../../rules/effective-tax-rate-calculation-rule";
15
+ import * as i4 from "../../rules/tax-amount-calculation-rule";
16
+ import * as i5 from "../../rules/gross-amount-calculation-rule";
17
+ import * as i6 from "../../rules/tax-calculation-type-calculation-rule";
18
+ import * as i7 from "../../rules/manual-tax-calculation-rule";
19
+ let SaleOrderCalculationRulesRegistry = class SaleOrderCalculationRulesRegistry {
20
+ constructor(taxableBaseCalculationRule, taxRateCalculationRule, effectiveTaxRateCalculationRule, taxAmountCalculationRule, grossAmountCalculationRule, taxCalculationTypeCalculationRule, manualTaxCalculationRule) {
21
+ this.taxableBaseCalculationRule = taxableBaseCalculationRule;
22
+ this.taxRateCalculationRule = taxRateCalculationRule;
23
+ this.effectiveTaxRateCalculationRule = effectiveTaxRateCalculationRule;
24
+ this.taxAmountCalculationRule = taxAmountCalculationRule;
25
+ this.grossAmountCalculationRule = grossAmountCalculationRule;
26
+ this.taxCalculationTypeCalculationRule = taxCalculationTypeCalculationRule;
27
+ this.manualTaxCalculationRule = manualTaxCalculationRule;
28
+ this.strategies = {
29
+ 'Future Delivery Order': {
30
+ [EnumTipoTributo.CBS]: [
31
+ {
32
+ field: EnumCampoTributo.AliquotaEfetiva,
33
+ rule: this.effectiveTaxRateCalculationRule
34
+ },
35
+ {
36
+ field: EnumCampoTributo.ValorBruto,
37
+ rule: this.grossAmountCalculationRule
38
+ },
39
+ {
40
+ field: EnumCampoTributo.Valor,
41
+ rule: this.taxAmountCalculationRule
42
+ },
43
+ {
44
+ field: EnumCampoTributo.TipoCalculoImposto,
45
+ rule: this.taxCalculationTypeCalculationRule
46
+ },
47
+ {
48
+ field: EnumCampoTributo.ImpostoManual,
49
+ rule: this.manualTaxCalculationRule
50
+ }
51
+ ],
52
+ [EnumTipoTributo.CBS_DIFERIDO]: [
53
+ {
54
+ field: EnumCampoTributo.BaseCalculo,
55
+ rule: this.taxableBaseCalculationRule
56
+ },
57
+ {
58
+ field: EnumCampoTributo.Valor,
59
+ rule: this.taxAmountCalculationRule
60
+ }
61
+ ],
62
+ [EnumTipoTributo.CBS_CREDITO_PRESUMIDO]: [
63
+ {
64
+ field: EnumCampoTributo.Valor,
65
+ rule: this.taxAmountCalculationRule
66
+ }
67
+ ],
68
+ [EnumTipoTributo.CBS_TRIBUTACAO_REGULAR]: [
69
+ {
70
+ field: EnumCampoTributo.BaseCalculo,
71
+ rule: this.taxableBaseCalculationRule
72
+ },
73
+ {
74
+ field: EnumCampoTributo.Valor,
75
+ rule: this.taxAmountCalculationRule
76
+ }
77
+ ],
78
+ [EnumTipoTributo.CBS_GOVERNAMENTAL]: [
79
+ {
80
+ field: EnumCampoTributo.BaseCalculo,
81
+ rule: this.taxableBaseCalculationRule
82
+ },
83
+ {
84
+ field: EnumCampoTributo.Aliquota,
85
+ rule: this.taxRateCalculationRule
86
+ },
87
+ {
88
+ field: EnumCampoTributo.Valor,
89
+ rule: this.taxAmountCalculationRule
90
+ }
91
+ ],
92
+ [EnumTipoTributo.CBS_ALC_ZFM]: [
93
+ {
94
+ field: EnumCampoTributo.BaseCalculo,
95
+ rule: this.taxableBaseCalculationRule
96
+ },
97
+ {
98
+ field: EnumCampoTributo.Valor,
99
+ rule: this.taxAmountCalculationRule
100
+ }
101
+ ],
102
+ [EnumTipoTributo.IBS_ESTADUAL]: [
103
+ {
104
+ field: EnumCampoTributo.AliquotaEfetiva,
105
+ rule: this.effectiveTaxRateCalculationRule
106
+ },
107
+ {
108
+ field: EnumCampoTributo.ValorBruto,
109
+ rule: this.grossAmountCalculationRule
110
+ },
111
+ {
112
+ field: EnumCampoTributo.Valor,
113
+ rule: this.taxAmountCalculationRule
114
+ },
115
+ {
116
+ field: EnumCampoTributo.TipoCalculoImposto,
117
+ rule: this.taxCalculationTypeCalculationRule
118
+ },
119
+ {
120
+ field: EnumCampoTributo.ImpostoManual,
121
+ rule: this.manualTaxCalculationRule
122
+ }
123
+ ],
124
+ [EnumTipoTributo.IBS_ESTADUAL_DIFERIDO]: [
125
+ {
126
+ field: EnumCampoTributo.BaseCalculo,
127
+ rule: this.taxableBaseCalculationRule
128
+ },
129
+ {
130
+ field: EnumCampoTributo.Valor,
131
+ rule: this.taxAmountCalculationRule
132
+ }
133
+ ],
134
+ [EnumTipoTributo.IBS_ESTADUAL_TRIBUTACAO_REGULAR]: [
135
+ {
136
+ field: EnumCampoTributo.BaseCalculo,
137
+ rule: this.taxableBaseCalculationRule
138
+ },
139
+ {
140
+ field: EnumCampoTributo.Valor,
141
+ rule: this.taxAmountCalculationRule
142
+ }
143
+ ],
144
+ [EnumTipoTributo.IBS_ESTADUAL_GOVERNAMENTAL]: [
145
+ {
146
+ field: EnumCampoTributo.BaseCalculo,
147
+ rule: this.taxableBaseCalculationRule
148
+ },
149
+ {
150
+ field: EnumCampoTributo.Aliquota,
151
+ rule: this.taxRateCalculationRule
152
+ },
153
+ {
154
+ field: EnumCampoTributo.Valor,
155
+ rule: this.taxAmountCalculationRule
156
+ }
157
+ ],
158
+ [EnumTipoTributo.IBS_MUNICIPAL]: [
159
+ {
160
+ field: EnumCampoTributo.AliquotaEfetiva,
161
+ rule: this.effectiveTaxRateCalculationRule
162
+ },
163
+ {
164
+ field: EnumCampoTributo.ValorBruto,
165
+ rule: this.grossAmountCalculationRule
166
+ },
167
+ {
168
+ field: EnumCampoTributo.Valor,
169
+ rule: this.taxAmountCalculationRule
170
+ },
171
+ {
172
+ field: EnumCampoTributo.TipoCalculoImposto,
173
+ rule: this.taxCalculationTypeCalculationRule
174
+ },
175
+ {
176
+ field: EnumCampoTributo.ImpostoManual,
177
+ rule: this.manualTaxCalculationRule
178
+ }
179
+ ],
180
+ [EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO]: [
181
+ {
182
+ field: EnumCampoTributo.BaseCalculo,
183
+ rule: this.taxableBaseCalculationRule
184
+ },
185
+ {
186
+ field: EnumCampoTributo.Valor,
187
+ rule: this.taxAmountCalculationRule
188
+ }
189
+ ],
190
+ [EnumTipoTributo.IBS_MUNICIPAL_GOVERNAMENTAL]: [
191
+ {
192
+ field: EnumCampoTributo.BaseCalculo,
193
+ rule: this.taxableBaseCalculationRule
194
+ },
195
+ {
196
+ field: EnumCampoTributo.Aliquota,
197
+ rule: this.taxRateCalculationRule
198
+ },
199
+ {
200
+ field: EnumCampoTributo.Valor,
201
+ rule: this.taxAmountCalculationRule
202
+ }
203
+ ],
204
+ [EnumTipoTributo.IBS_MUNICIPAL_TRIBUTACAO_REGULAR]: [
205
+ {
206
+ field: EnumCampoTributo.BaseCalculo,
207
+ rule: this.taxableBaseCalculationRule
208
+ },
209
+ {
210
+ field: EnumCampoTributo.Valor,
211
+ rule: this.taxAmountCalculationRule
212
+ }
213
+ ],
214
+ [EnumTipoTributo.IBS_CREDITO_PRESUMIDO]: [
215
+ {
216
+ field: EnumCampoTributo.BaseCalculo,
217
+ rule: this.taxableBaseCalculationRule
218
+ },
219
+ {
220
+ field: EnumCampoTributo.Valor,
221
+ rule: this.taxAmountCalculationRule
222
+ }
223
+ ],
224
+ [EnumTipoTributo.IS]: [
225
+ {
226
+ field: EnumCampoTributo.Valor,
227
+ rule: this.taxAmountCalculationRule
228
+ }
229
+ ]
230
+ },
231
+ 'Product and Service Order': {
232
+ [EnumTipoTributo.CBS]: [
233
+ {
234
+ field: EnumCampoTributo.AliquotaEfetiva,
235
+ rule: this.effectiveTaxRateCalculationRule
236
+ },
237
+ {
238
+ field: EnumCampoTributo.ValorBruto,
239
+ rule: this.grossAmountCalculationRule
240
+ },
241
+ {
242
+ field: EnumCampoTributo.Valor,
243
+ rule: this.taxAmountCalculationRule
244
+ },
245
+ {
246
+ field: EnumCampoTributo.TipoCalculoImposto,
247
+ rule: this.taxCalculationTypeCalculationRule
248
+ },
249
+ {
250
+ field: EnumCampoTributo.ImpostoManual,
251
+ rule: this.manualTaxCalculationRule
252
+ }
253
+ ],
254
+ [EnumTipoTributo.CBS_DIFERIDO]: [
255
+ {
256
+ field: EnumCampoTributo.BaseCalculo,
257
+ rule: this.taxableBaseCalculationRule
258
+ },
259
+ {
260
+ field: EnumCampoTributo.Valor,
261
+ rule: this.taxAmountCalculationRule
262
+ }
263
+ ],
264
+ [EnumTipoTributo.CBS_CREDITO_PRESUMIDO]: [
265
+ {
266
+ field: EnumCampoTributo.Valor,
267
+ rule: this.taxAmountCalculationRule
268
+ }
269
+ ],
270
+ [EnumTipoTributo.CBS_TRIBUTACAO_REGULAR]: [
271
+ {
272
+ field: EnumCampoTributo.BaseCalculo,
273
+ rule: this.taxableBaseCalculationRule
274
+ },
275
+ {
276
+ field: EnumCampoTributo.Valor,
277
+ rule: this.taxAmountCalculationRule
278
+ }
279
+ ],
280
+ [EnumTipoTributo.CBS_GOVERNAMENTAL]: [
281
+ {
282
+ field: EnumCampoTributo.BaseCalculo,
283
+ rule: this.taxableBaseCalculationRule
284
+ },
285
+ {
286
+ field: EnumCampoTributo.Aliquota,
287
+ rule: this.taxRateCalculationRule
288
+ },
289
+ {
290
+ field: EnumCampoTributo.Valor,
291
+ rule: this.taxAmountCalculationRule
292
+ }
293
+ ],
294
+ [EnumTipoTributo.CBS_ALC_ZFM]: [
295
+ {
296
+ field: EnumCampoTributo.BaseCalculo,
297
+ rule: this.taxableBaseCalculationRule
298
+ },
299
+ {
300
+ field: EnumCampoTributo.Valor,
301
+ rule: this.taxAmountCalculationRule
302
+ }
303
+ ],
304
+ [EnumTipoTributo.IBS_ESTADUAL]: [
305
+ {
306
+ field: EnumCampoTributo.AliquotaEfetiva,
307
+ rule: this.effectiveTaxRateCalculationRule
308
+ },
309
+ {
310
+ field: EnumCampoTributo.ValorBruto,
311
+ rule: this.grossAmountCalculationRule
312
+ },
313
+ {
314
+ field: EnumCampoTributo.Valor,
315
+ rule: this.taxAmountCalculationRule
316
+ },
317
+ {
318
+ field: EnumCampoTributo.TipoCalculoImposto,
319
+ rule: this.taxCalculationTypeCalculationRule
320
+ },
321
+ {
322
+ field: EnumCampoTributo.ImpostoManual,
323
+ rule: this.manualTaxCalculationRule
324
+ }
325
+ ],
326
+ [EnumTipoTributo.IBS_ESTADUAL_DIFERIDO]: [
327
+ {
328
+ field: EnumCampoTributo.BaseCalculo,
329
+ rule: this.taxableBaseCalculationRule
330
+ },
331
+ {
332
+ field: EnumCampoTributo.Valor,
333
+ rule: this.taxAmountCalculationRule
334
+ }
335
+ ],
336
+ [EnumTipoTributo.IBS_ESTADUAL_TRIBUTACAO_REGULAR]: [
337
+ {
338
+ field: EnumCampoTributo.BaseCalculo,
339
+ rule: this.taxableBaseCalculationRule
340
+ },
341
+ {
342
+ field: EnumCampoTributo.Valor,
343
+ rule: this.taxAmountCalculationRule
344
+ }
345
+ ],
346
+ [EnumTipoTributo.IBS_ESTADUAL_GOVERNAMENTAL]: [
347
+ {
348
+ field: EnumCampoTributo.BaseCalculo,
349
+ rule: this.taxableBaseCalculationRule
350
+ },
351
+ {
352
+ field: EnumCampoTributo.Aliquota,
353
+ rule: this.taxRateCalculationRule
354
+ },
355
+ {
356
+ field: EnumCampoTributo.Valor,
357
+ rule: this.taxAmountCalculationRule
358
+ }
359
+ ],
360
+ [EnumTipoTributo.IBS_MUNICIPAL]: [
361
+ {
362
+ field: EnumCampoTributo.AliquotaEfetiva,
363
+ rule: this.effectiveTaxRateCalculationRule
364
+ },
365
+ {
366
+ field: EnumCampoTributo.ValorBruto,
367
+ rule: this.grossAmountCalculationRule
368
+ },
369
+ {
370
+ field: EnumCampoTributo.Valor,
371
+ rule: this.taxAmountCalculationRule
372
+ },
373
+ {
374
+ field: EnumCampoTributo.TipoCalculoImposto,
375
+ rule: this.taxCalculationTypeCalculationRule
376
+ },
377
+ {
378
+ field: EnumCampoTributo.ImpostoManual,
379
+ rule: this.manualTaxCalculationRule
380
+ }
381
+ ],
382
+ [EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO]: [
383
+ {
384
+ field: EnumCampoTributo.BaseCalculo,
385
+ rule: this.taxableBaseCalculationRule
386
+ },
387
+ {
388
+ field: EnumCampoTributo.Valor,
389
+ rule: this.taxAmountCalculationRule
390
+ }
391
+ ],
392
+ [EnumTipoTributo.IBS_MUNICIPAL_GOVERNAMENTAL]: [
393
+ {
394
+ field: EnumCampoTributo.BaseCalculo,
395
+ rule: this.taxableBaseCalculationRule
396
+ },
397
+ {
398
+ field: EnumCampoTributo.Aliquota,
399
+ rule: this.taxRateCalculationRule
400
+ },
401
+ {
402
+ field: EnumCampoTributo.Valor,
403
+ rule: this.taxAmountCalculationRule
404
+ }
405
+ ],
406
+ [EnumTipoTributo.IBS_MUNICIPAL_TRIBUTACAO_REGULAR]: [
407
+ {
408
+ field: EnumCampoTributo.BaseCalculo,
409
+ rule: this.taxableBaseCalculationRule
410
+ },
411
+ {
412
+ field: EnumCampoTributo.Valor,
413
+ rule: this.taxAmountCalculationRule
414
+ }
415
+ ],
416
+ [EnumTipoTributo.IBS_CREDITO_PRESUMIDO]: [
417
+ {
418
+ field: EnumCampoTributo.BaseCalculo,
419
+ rule: this.taxableBaseCalculationRule
420
+ },
421
+ {
422
+ field: EnumCampoTributo.Valor,
423
+ rule: this.taxAmountCalculationRule
424
+ }
425
+ ],
426
+ [EnumTipoTributo.IS]: [
427
+ {
428
+ field: EnumCampoTributo.Valor,
429
+ rule: this.taxAmountCalculationRule
430
+ }
431
+ ]
432
+ },
433
+ 'Product and Service Quote': {
434
+ [EnumTipoTributo.CBS]: [
435
+ {
436
+ field: EnumCampoTributo.AliquotaEfetiva,
437
+ rule: this.effectiveTaxRateCalculationRule
438
+ },
439
+ {
440
+ field: EnumCampoTributo.ValorBruto,
441
+ rule: this.grossAmountCalculationRule
442
+ },
443
+ {
444
+ field: EnumCampoTributo.Valor,
445
+ rule: this.taxAmountCalculationRule
446
+ },
447
+ {
448
+ field: EnumCampoTributo.TipoCalculoImposto,
449
+ rule: this.taxCalculationTypeCalculationRule
450
+ },
451
+ {
452
+ field: EnumCampoTributo.ImpostoManual,
453
+ rule: this.manualTaxCalculationRule
454
+ }
455
+ ],
456
+ [EnumTipoTributo.CBS_DIFERIDO]: [
457
+ {
458
+ field: EnumCampoTributo.BaseCalculo,
459
+ rule: this.taxableBaseCalculationRule
460
+ },
461
+ {
462
+ field: EnumCampoTributo.Valor,
463
+ rule: this.taxAmountCalculationRule
464
+ }
465
+ ],
466
+ [EnumTipoTributo.CBS_CREDITO_PRESUMIDO]: [
467
+ {
468
+ field: EnumCampoTributo.Valor,
469
+ rule: this.taxAmountCalculationRule
470
+ }
471
+ ],
472
+ [EnumTipoTributo.CBS_TRIBUTACAO_REGULAR]: [
473
+ {
474
+ field: EnumCampoTributo.BaseCalculo,
475
+ rule: this.taxableBaseCalculationRule
476
+ },
477
+ {
478
+ field: EnumCampoTributo.Valor,
479
+ rule: this.taxAmountCalculationRule
480
+ }
481
+ ],
482
+ [EnumTipoTributo.CBS_GOVERNAMENTAL]: [
483
+ {
484
+ field: EnumCampoTributo.BaseCalculo,
485
+ rule: this.taxableBaseCalculationRule
486
+ },
487
+ {
488
+ field: EnumCampoTributo.Aliquota,
489
+ rule: this.taxRateCalculationRule
490
+ },
491
+ {
492
+ field: EnumCampoTributo.Valor,
493
+ rule: this.taxAmountCalculationRule
494
+ }
495
+ ],
496
+ [EnumTipoTributo.CBS_ALC_ZFM]: [
497
+ {
498
+ field: EnumCampoTributo.BaseCalculo,
499
+ rule: this.taxableBaseCalculationRule
500
+ },
501
+ {
502
+ field: EnumCampoTributo.Valor,
503
+ rule: this.taxAmountCalculationRule
504
+ }
505
+ ],
506
+ [EnumTipoTributo.IBS_ESTADUAL]: [
507
+ {
508
+ field: EnumCampoTributo.AliquotaEfetiva,
509
+ rule: this.effectiveTaxRateCalculationRule
510
+ },
511
+ {
512
+ field: EnumCampoTributo.ValorBruto,
513
+ rule: this.grossAmountCalculationRule
514
+ },
515
+ {
516
+ field: EnumCampoTributo.Valor,
517
+ rule: this.taxAmountCalculationRule
518
+ },
519
+ {
520
+ field: EnumCampoTributo.TipoCalculoImposto,
521
+ rule: this.taxCalculationTypeCalculationRule
522
+ },
523
+ {
524
+ field: EnumCampoTributo.ImpostoManual,
525
+ rule: this.manualTaxCalculationRule
526
+ }
527
+ ],
528
+ [EnumTipoTributo.IBS_ESTADUAL_DIFERIDO]: [
529
+ {
530
+ field: EnumCampoTributo.BaseCalculo,
531
+ rule: this.taxableBaseCalculationRule
532
+ },
533
+ {
534
+ field: EnumCampoTributo.Valor,
535
+ rule: this.taxAmountCalculationRule
536
+ }
537
+ ],
538
+ [EnumTipoTributo.IBS_ESTADUAL_TRIBUTACAO_REGULAR]: [
539
+ {
540
+ field: EnumCampoTributo.BaseCalculo,
541
+ rule: this.taxableBaseCalculationRule
542
+ },
543
+ {
544
+ field: EnumCampoTributo.Valor,
545
+ rule: this.taxAmountCalculationRule
546
+ }
547
+ ],
548
+ [EnumTipoTributo.IBS_ESTADUAL_GOVERNAMENTAL]: [
549
+ {
550
+ field: EnumCampoTributo.BaseCalculo,
551
+ rule: this.taxableBaseCalculationRule
552
+ },
553
+ {
554
+ field: EnumCampoTributo.Aliquota,
555
+ rule: this.taxRateCalculationRule
556
+ },
557
+ {
558
+ field: EnumCampoTributo.Valor,
559
+ rule: this.taxAmountCalculationRule
560
+ }
561
+ ],
562
+ [EnumTipoTributo.IBS_MUNICIPAL]: [
563
+ {
564
+ field: EnumCampoTributo.AliquotaEfetiva,
565
+ rule: this.effectiveTaxRateCalculationRule
566
+ },
567
+ {
568
+ field: EnumCampoTributo.ValorBruto,
569
+ rule: this.grossAmountCalculationRule
570
+ },
571
+ {
572
+ field: EnumCampoTributo.Valor,
573
+ rule: this.taxAmountCalculationRule
574
+ },
575
+ {
576
+ field: EnumCampoTributo.TipoCalculoImposto,
577
+ rule: this.taxCalculationTypeCalculationRule
578
+ },
579
+ {
580
+ field: EnumCampoTributo.ImpostoManual,
581
+ rule: this.manualTaxCalculationRule
582
+ }
583
+ ],
584
+ [EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO]: [
585
+ {
586
+ field: EnumCampoTributo.BaseCalculo,
587
+ rule: this.taxableBaseCalculationRule
588
+ },
589
+ {
590
+ field: EnumCampoTributo.Valor,
591
+ rule: this.taxAmountCalculationRule
592
+ }
593
+ ],
594
+ [EnumTipoTributo.IBS_MUNICIPAL_GOVERNAMENTAL]: [
595
+ {
596
+ field: EnumCampoTributo.BaseCalculo,
597
+ rule: this.taxableBaseCalculationRule
598
+ },
599
+ {
600
+ field: EnumCampoTributo.Aliquota,
601
+ rule: this.taxRateCalculationRule
602
+ },
603
+ {
604
+ field: EnumCampoTributo.Valor,
605
+ rule: this.taxAmountCalculationRule
606
+ }
607
+ ],
608
+ [EnumTipoTributo.IBS_MUNICIPAL_TRIBUTACAO_REGULAR]: [
609
+ {
610
+ field: EnumCampoTributo.BaseCalculo,
611
+ rule: this.taxableBaseCalculationRule
612
+ },
613
+ {
614
+ field: EnumCampoTributo.Valor,
615
+ rule: this.taxAmountCalculationRule
616
+ }
617
+ ],
618
+ [EnumTipoTributo.IBS_CREDITO_PRESUMIDO]: [
619
+ {
620
+ field: EnumCampoTributo.BaseCalculo,
621
+ rule: this.taxableBaseCalculationRule
622
+ },
623
+ {
624
+ field: EnumCampoTributo.Valor,
625
+ rule: this.taxAmountCalculationRule
626
+ }
627
+ ],
628
+ [EnumTipoTributo.IS]: [
629
+ {
630
+ field: EnumCampoTributo.Valor,
631
+ rule: this.taxAmountCalculationRule
632
+ }
633
+ ]
634
+ },
635
+ 'Product Order': {
636
+ [EnumTipoTributo.CBS]: [
637
+ {
638
+ field: EnumCampoTributo.AliquotaEfetiva,
639
+ rule: this.effectiveTaxRateCalculationRule
640
+ },
641
+ {
642
+ field: EnumCampoTributo.ValorBruto,
643
+ rule: this.grossAmountCalculationRule
644
+ },
645
+ {
646
+ field: EnumCampoTributo.Valor,
647
+ rule: this.taxAmountCalculationRule
648
+ },
649
+ {
650
+ field: EnumCampoTributo.TipoCalculoImposto,
651
+ rule: this.taxCalculationTypeCalculationRule
652
+ },
653
+ {
654
+ field: EnumCampoTributo.ImpostoManual,
655
+ rule: this.manualTaxCalculationRule
656
+ }
657
+ ],
658
+ [EnumTipoTributo.CBS_DIFERIDO]: [
659
+ {
660
+ field: EnumCampoTributo.BaseCalculo,
661
+ rule: this.taxableBaseCalculationRule
662
+ },
663
+ {
664
+ field: EnumCampoTributo.Valor,
665
+ rule: this.taxAmountCalculationRule
666
+ }
667
+ ],
668
+ [EnumTipoTributo.CBS_CREDITO_PRESUMIDO]: [
669
+ {
670
+ field: EnumCampoTributo.Valor,
671
+ rule: this.taxAmountCalculationRule
672
+ }
673
+ ],
674
+ [EnumTipoTributo.CBS_TRIBUTACAO_REGULAR]: [
675
+ {
676
+ field: EnumCampoTributo.BaseCalculo,
677
+ rule: this.taxableBaseCalculationRule
678
+ },
679
+ {
680
+ field: EnumCampoTributo.Valor,
681
+ rule: this.taxAmountCalculationRule
682
+ }
683
+ ],
684
+ [EnumTipoTributo.CBS_GOVERNAMENTAL]: [
685
+ {
686
+ field: EnumCampoTributo.BaseCalculo,
687
+ rule: this.taxableBaseCalculationRule
688
+ },
689
+ {
690
+ field: EnumCampoTributo.Aliquota,
691
+ rule: this.taxRateCalculationRule
692
+ },
693
+ {
694
+ field: EnumCampoTributo.Valor,
695
+ rule: this.taxAmountCalculationRule
696
+ }
697
+ ],
698
+ [EnumTipoTributo.CBS_ALC_ZFM]: [
699
+ {
700
+ field: EnumCampoTributo.BaseCalculo,
701
+ rule: this.taxableBaseCalculationRule
702
+ },
703
+ {
704
+ field: EnumCampoTributo.Valor,
705
+ rule: this.taxAmountCalculationRule
706
+ }
707
+ ],
708
+ [EnumTipoTributo.IBS_ESTADUAL]: [
709
+ {
710
+ field: EnumCampoTributo.AliquotaEfetiva,
711
+ rule: this.effectiveTaxRateCalculationRule
712
+ },
713
+ {
714
+ field: EnumCampoTributo.ValorBruto,
715
+ rule: this.grossAmountCalculationRule
716
+ },
717
+ {
718
+ field: EnumCampoTributo.Valor,
719
+ rule: this.taxAmountCalculationRule
720
+ },
721
+ {
722
+ field: EnumCampoTributo.TipoCalculoImposto,
723
+ rule: this.taxCalculationTypeCalculationRule
724
+ },
725
+ {
726
+ field: EnumCampoTributo.ImpostoManual,
727
+ rule: this.manualTaxCalculationRule
728
+ }
729
+ ],
730
+ [EnumTipoTributo.IBS_ESTADUAL_DIFERIDO]: [
731
+ {
732
+ field: EnumCampoTributo.BaseCalculo,
733
+ rule: this.taxableBaseCalculationRule
734
+ },
735
+ {
736
+ field: EnumCampoTributo.Valor,
737
+ rule: this.taxAmountCalculationRule
738
+ }
739
+ ],
740
+ [EnumTipoTributo.IBS_ESTADUAL_TRIBUTACAO_REGULAR]: [
741
+ {
742
+ field: EnumCampoTributo.BaseCalculo,
743
+ rule: this.taxableBaseCalculationRule
744
+ },
745
+ {
746
+ field: EnumCampoTributo.Valor,
747
+ rule: this.taxAmountCalculationRule
748
+ }
749
+ ],
750
+ [EnumTipoTributo.IBS_ESTADUAL_GOVERNAMENTAL]: [
751
+ {
752
+ field: EnumCampoTributo.BaseCalculo,
753
+ rule: this.taxableBaseCalculationRule
754
+ },
755
+ {
756
+ field: EnumCampoTributo.Aliquota,
757
+ rule: this.taxRateCalculationRule
758
+ },
759
+ {
760
+ field: EnumCampoTributo.Valor,
761
+ rule: this.taxAmountCalculationRule
762
+ }
763
+ ],
764
+ [EnumTipoTributo.IBS_MUNICIPAL]: [
765
+ {
766
+ field: EnumCampoTributo.AliquotaEfetiva,
767
+ rule: this.effectiveTaxRateCalculationRule
768
+ },
769
+ {
770
+ field: EnumCampoTributo.ValorBruto,
771
+ rule: this.grossAmountCalculationRule
772
+ },
773
+ {
774
+ field: EnumCampoTributo.Valor,
775
+ rule: this.taxAmountCalculationRule
776
+ },
777
+ {
778
+ field: EnumCampoTributo.TipoCalculoImposto,
779
+ rule: this.taxCalculationTypeCalculationRule
780
+ },
781
+ {
782
+ field: EnumCampoTributo.ImpostoManual,
783
+ rule: this.manualTaxCalculationRule
784
+ }
785
+ ],
786
+ [EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO]: [
787
+ {
788
+ field: EnumCampoTributo.BaseCalculo,
789
+ rule: this.taxableBaseCalculationRule
790
+ },
791
+ {
792
+ field: EnumCampoTributo.Valor,
793
+ rule: this.taxAmountCalculationRule
794
+ }
795
+ ],
796
+ [EnumTipoTributo.IBS_MUNICIPAL_GOVERNAMENTAL]: [
797
+ {
798
+ field: EnumCampoTributo.BaseCalculo,
799
+ rule: this.taxableBaseCalculationRule
800
+ },
801
+ {
802
+ field: EnumCampoTributo.Aliquota,
803
+ rule: this.taxRateCalculationRule
804
+ },
805
+ {
806
+ field: EnumCampoTributo.Valor,
807
+ rule: this.taxAmountCalculationRule
808
+ }
809
+ ],
810
+ [EnumTipoTributo.IBS_MUNICIPAL_TRIBUTACAO_REGULAR]: [
811
+ {
812
+ field: EnumCampoTributo.BaseCalculo,
813
+ rule: this.taxableBaseCalculationRule
814
+ },
815
+ {
816
+ field: EnumCampoTributo.Valor,
817
+ rule: this.taxAmountCalculationRule
818
+ }
819
+ ],
820
+ [EnumTipoTributo.IBS_CREDITO_PRESUMIDO]: [
821
+ {
822
+ field: EnumCampoTributo.BaseCalculo,
823
+ rule: this.taxableBaseCalculationRule
824
+ },
825
+ {
826
+ field: EnumCampoTributo.Valor,
827
+ rule: this.taxAmountCalculationRule
828
+ }
829
+ ],
830
+ [EnumTipoTributo.IS]: [
831
+ {
832
+ field: EnumCampoTributo.Valor,
833
+ rule: this.taxAmountCalculationRule
834
+ }
835
+ ]
836
+ },
837
+ 'Product Quote': {
838
+ [EnumTipoTributo.CBS]: [
839
+ {
840
+ field: EnumCampoTributo.AliquotaEfetiva,
841
+ rule: this.effectiveTaxRateCalculationRule
842
+ },
843
+ {
844
+ field: EnumCampoTributo.ValorBruto,
845
+ rule: this.grossAmountCalculationRule
846
+ },
847
+ {
848
+ field: EnumCampoTributo.Valor,
849
+ rule: this.taxAmountCalculationRule
850
+ },
851
+ {
852
+ field: EnumCampoTributo.TipoCalculoImposto,
853
+ rule: this.taxCalculationTypeCalculationRule
854
+ },
855
+ {
856
+ field: EnumCampoTributo.ImpostoManual,
857
+ rule: this.manualTaxCalculationRule
858
+ }
859
+ ],
860
+ [EnumTipoTributo.CBS_DIFERIDO]: [
861
+ {
862
+ field: EnumCampoTributo.BaseCalculo,
863
+ rule: this.taxableBaseCalculationRule
864
+ },
865
+ {
866
+ field: EnumCampoTributo.Valor,
867
+ rule: this.taxAmountCalculationRule
868
+ }
869
+ ],
870
+ [EnumTipoTributo.CBS_CREDITO_PRESUMIDO]: [
871
+ {
872
+ field: EnumCampoTributo.Valor,
873
+ rule: this.taxAmountCalculationRule
874
+ }
875
+ ],
876
+ [EnumTipoTributo.CBS_TRIBUTACAO_REGULAR]: [
877
+ {
878
+ field: EnumCampoTributo.BaseCalculo,
879
+ rule: this.taxableBaseCalculationRule
880
+ },
881
+ {
882
+ field: EnumCampoTributo.Valor,
883
+ rule: this.taxAmountCalculationRule
884
+ }
885
+ ],
886
+ [EnumTipoTributo.CBS_GOVERNAMENTAL]: [
887
+ {
888
+ field: EnumCampoTributo.BaseCalculo,
889
+ rule: this.taxableBaseCalculationRule
890
+ },
891
+ {
892
+ field: EnumCampoTributo.Aliquota,
893
+ rule: this.taxRateCalculationRule
894
+ },
895
+ {
896
+ field: EnumCampoTributo.Valor,
897
+ rule: this.taxAmountCalculationRule
898
+ }
899
+ ],
900
+ [EnumTipoTributo.CBS_ALC_ZFM]: [
901
+ {
902
+ field: EnumCampoTributo.BaseCalculo,
903
+ rule: this.taxableBaseCalculationRule
904
+ },
905
+ {
906
+ field: EnumCampoTributo.Valor,
907
+ rule: this.taxAmountCalculationRule
908
+ }
909
+ ],
910
+ [EnumTipoTributo.IBS_ESTADUAL]: [
911
+ {
912
+ field: EnumCampoTributo.AliquotaEfetiva,
913
+ rule: this.effectiveTaxRateCalculationRule
914
+ },
915
+ {
916
+ field: EnumCampoTributo.ValorBruto,
917
+ rule: this.grossAmountCalculationRule
918
+ },
919
+ {
920
+ field: EnumCampoTributo.Valor,
921
+ rule: this.taxAmountCalculationRule
922
+ },
923
+ {
924
+ field: EnumCampoTributo.TipoCalculoImposto,
925
+ rule: this.taxCalculationTypeCalculationRule
926
+ },
927
+ {
928
+ field: EnumCampoTributo.ImpostoManual,
929
+ rule: this.manualTaxCalculationRule
930
+ }
931
+ ],
932
+ [EnumTipoTributo.IBS_ESTADUAL_DIFERIDO]: [
933
+ {
934
+ field: EnumCampoTributo.BaseCalculo,
935
+ rule: this.taxableBaseCalculationRule
936
+ },
937
+ {
938
+ field: EnumCampoTributo.Valor,
939
+ rule: this.taxAmountCalculationRule
940
+ }
941
+ ],
942
+ [EnumTipoTributo.IBS_ESTADUAL_TRIBUTACAO_REGULAR]: [
943
+ {
944
+ field: EnumCampoTributo.BaseCalculo,
945
+ rule: this.taxableBaseCalculationRule
946
+ },
947
+ {
948
+ field: EnumCampoTributo.Valor,
949
+ rule: this.taxAmountCalculationRule
950
+ }
951
+ ],
952
+ [EnumTipoTributo.IBS_ESTADUAL_GOVERNAMENTAL]: [
953
+ {
954
+ field: EnumCampoTributo.BaseCalculo,
955
+ rule: this.taxableBaseCalculationRule
956
+ },
957
+ {
958
+ field: EnumCampoTributo.Aliquota,
959
+ rule: this.taxRateCalculationRule
960
+ },
961
+ {
962
+ field: EnumCampoTributo.Valor,
963
+ rule: this.taxAmountCalculationRule
964
+ }
965
+ ],
966
+ [EnumTipoTributo.IBS_MUNICIPAL]: [
967
+ {
968
+ field: EnumCampoTributo.AliquotaEfetiva,
969
+ rule: this.effectiveTaxRateCalculationRule
970
+ },
971
+ {
972
+ field: EnumCampoTributo.ValorBruto,
973
+ rule: this.grossAmountCalculationRule
974
+ },
975
+ {
976
+ field: EnumCampoTributo.Valor,
977
+ rule: this.taxAmountCalculationRule
978
+ },
979
+ {
980
+ field: EnumCampoTributo.TipoCalculoImposto,
981
+ rule: this.taxCalculationTypeCalculationRule
982
+ },
983
+ {
984
+ field: EnumCampoTributo.ImpostoManual,
985
+ rule: this.manualTaxCalculationRule
986
+ }
987
+ ],
988
+ [EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO]: [
989
+ {
990
+ field: EnumCampoTributo.BaseCalculo,
991
+ rule: this.taxableBaseCalculationRule
992
+ },
993
+ {
994
+ field: EnumCampoTributo.Valor,
995
+ rule: this.taxAmountCalculationRule
996
+ }
997
+ ],
998
+ [EnumTipoTributo.IBS_MUNICIPAL_GOVERNAMENTAL]: [
999
+ {
1000
+ field: EnumCampoTributo.BaseCalculo,
1001
+ rule: this.taxableBaseCalculationRule
1002
+ },
1003
+ {
1004
+ field: EnumCampoTributo.Aliquota,
1005
+ rule: this.taxRateCalculationRule
1006
+ },
1007
+ {
1008
+ field: EnumCampoTributo.Valor,
1009
+ rule: this.taxAmountCalculationRule
1010
+ }
1011
+ ],
1012
+ [EnumTipoTributo.IBS_MUNICIPAL_TRIBUTACAO_REGULAR]: [
1013
+ {
1014
+ field: EnumCampoTributo.BaseCalculo,
1015
+ rule: this.taxableBaseCalculationRule
1016
+ },
1017
+ {
1018
+ field: EnumCampoTributo.Valor,
1019
+ rule: this.taxAmountCalculationRule
1020
+ }
1021
+ ],
1022
+ [EnumTipoTributo.IBS_CREDITO_PRESUMIDO]: [
1023
+ {
1024
+ field: EnumCampoTributo.BaseCalculo,
1025
+ rule: this.taxableBaseCalculationRule
1026
+ },
1027
+ {
1028
+ field: EnumCampoTributo.Valor,
1029
+ rule: this.taxAmountCalculationRule
1030
+ }
1031
+ ],
1032
+ [EnumTipoTributo.IS]: [
1033
+ {
1034
+ field: EnumCampoTributo.Valor,
1035
+ rule: this.taxAmountCalculationRule
1036
+ }
1037
+ ]
1038
+ },
1039
+ 'Service Order': {
1040
+ [EnumTipoTributo.CBS]: [
1041
+ {
1042
+ field: EnumCampoTributo.AliquotaEfetiva,
1043
+ rule: this.effectiveTaxRateCalculationRule
1044
+ },
1045
+ {
1046
+ field: EnumCampoTributo.ValorBruto,
1047
+ rule: this.grossAmountCalculationRule
1048
+ },
1049
+ {
1050
+ field: EnumCampoTributo.Valor,
1051
+ rule: this.taxAmountCalculationRule
1052
+ },
1053
+ {
1054
+ field: EnumCampoTributo.TipoCalculoImposto,
1055
+ rule: this.taxCalculationTypeCalculationRule
1056
+ },
1057
+ {
1058
+ field: EnumCampoTributo.ImpostoManual,
1059
+ rule: this.manualTaxCalculationRule
1060
+ }
1061
+ ],
1062
+ [EnumTipoTributo.CBS_DIFERIDO]: [
1063
+ {
1064
+ field: EnumCampoTributo.BaseCalculo,
1065
+ rule: this.taxableBaseCalculationRule
1066
+ },
1067
+ {
1068
+ field: EnumCampoTributo.Valor,
1069
+ rule: this.taxAmountCalculationRule
1070
+ }
1071
+ ],
1072
+ [EnumTipoTributo.CBS_CREDITO_PRESUMIDO]: [
1073
+ {
1074
+ field: EnumCampoTributo.Valor,
1075
+ rule: this.taxAmountCalculationRule
1076
+ }
1077
+ ],
1078
+ [EnumTipoTributo.CBS_TRIBUTACAO_REGULAR]: [
1079
+ {
1080
+ field: EnumCampoTributo.BaseCalculo,
1081
+ rule: this.taxableBaseCalculationRule
1082
+ },
1083
+ {
1084
+ field: EnumCampoTributo.Valor,
1085
+ rule: this.taxAmountCalculationRule
1086
+ }
1087
+ ],
1088
+ [EnumTipoTributo.CBS_GOVERNAMENTAL]: [
1089
+ {
1090
+ field: EnumCampoTributo.BaseCalculo,
1091
+ rule: this.taxableBaseCalculationRule
1092
+ },
1093
+ {
1094
+ field: EnumCampoTributo.Aliquota,
1095
+ rule: this.taxRateCalculationRule
1096
+ },
1097
+ {
1098
+ field: EnumCampoTributo.Valor,
1099
+ rule: this.taxAmountCalculationRule
1100
+ }
1101
+ ],
1102
+ [EnumTipoTributo.CBS_ALC_ZFM]: [
1103
+ {
1104
+ field: EnumCampoTributo.BaseCalculo,
1105
+ rule: this.taxableBaseCalculationRule
1106
+ },
1107
+ {
1108
+ field: EnumCampoTributo.Valor,
1109
+ rule: this.taxAmountCalculationRule
1110
+ }
1111
+ ],
1112
+ [EnumTipoTributo.IBS_ESTADUAL]: [
1113
+ {
1114
+ field: EnumCampoTributo.AliquotaEfetiva,
1115
+ rule: this.effectiveTaxRateCalculationRule
1116
+ },
1117
+ {
1118
+ field: EnumCampoTributo.ValorBruto,
1119
+ rule: this.grossAmountCalculationRule
1120
+ },
1121
+ {
1122
+ field: EnumCampoTributo.Valor,
1123
+ rule: this.taxAmountCalculationRule
1124
+ },
1125
+ {
1126
+ field: EnumCampoTributo.TipoCalculoImposto,
1127
+ rule: this.taxCalculationTypeCalculationRule
1128
+ },
1129
+ {
1130
+ field: EnumCampoTributo.ImpostoManual,
1131
+ rule: this.manualTaxCalculationRule
1132
+ }
1133
+ ],
1134
+ [EnumTipoTributo.IBS_ESTADUAL_DIFERIDO]: [
1135
+ {
1136
+ field: EnumCampoTributo.BaseCalculo,
1137
+ rule: this.taxableBaseCalculationRule
1138
+ },
1139
+ {
1140
+ field: EnumCampoTributo.Valor,
1141
+ rule: this.taxAmountCalculationRule
1142
+ }
1143
+ ],
1144
+ [EnumTipoTributo.IBS_ESTADUAL_TRIBUTACAO_REGULAR]: [
1145
+ {
1146
+ field: EnumCampoTributo.BaseCalculo,
1147
+ rule: this.taxableBaseCalculationRule
1148
+ },
1149
+ {
1150
+ field: EnumCampoTributo.Valor,
1151
+ rule: this.taxAmountCalculationRule
1152
+ }
1153
+ ],
1154
+ [EnumTipoTributo.IBS_ESTADUAL_GOVERNAMENTAL]: [
1155
+ {
1156
+ field: EnumCampoTributo.BaseCalculo,
1157
+ rule: this.taxableBaseCalculationRule
1158
+ },
1159
+ {
1160
+ field: EnumCampoTributo.Aliquota,
1161
+ rule: this.taxRateCalculationRule
1162
+ },
1163
+ {
1164
+ field: EnumCampoTributo.Valor,
1165
+ rule: this.taxAmountCalculationRule
1166
+ }
1167
+ ],
1168
+ [EnumTipoTributo.IBS_MUNICIPAL]: [
1169
+ {
1170
+ field: EnumCampoTributo.AliquotaEfetiva,
1171
+ rule: this.effectiveTaxRateCalculationRule
1172
+ },
1173
+ {
1174
+ field: EnumCampoTributo.ValorBruto,
1175
+ rule: this.grossAmountCalculationRule
1176
+ },
1177
+ {
1178
+ field: EnumCampoTributo.Valor,
1179
+ rule: this.taxAmountCalculationRule
1180
+ },
1181
+ {
1182
+ field: EnumCampoTributo.TipoCalculoImposto,
1183
+ rule: this.taxCalculationTypeCalculationRule
1184
+ },
1185
+ {
1186
+ field: EnumCampoTributo.ImpostoManual,
1187
+ rule: this.manualTaxCalculationRule
1188
+ }
1189
+ ],
1190
+ [EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO]: [
1191
+ {
1192
+ field: EnumCampoTributo.BaseCalculo,
1193
+ rule: this.taxableBaseCalculationRule
1194
+ },
1195
+ {
1196
+ field: EnumCampoTributo.Valor,
1197
+ rule: this.taxAmountCalculationRule
1198
+ }
1199
+ ],
1200
+ [EnumTipoTributo.IBS_MUNICIPAL_GOVERNAMENTAL]: [
1201
+ {
1202
+ field: EnumCampoTributo.BaseCalculo,
1203
+ rule: this.taxableBaseCalculationRule
1204
+ },
1205
+ {
1206
+ field: EnumCampoTributo.Aliquota,
1207
+ rule: this.taxRateCalculationRule
1208
+ },
1209
+ {
1210
+ field: EnumCampoTributo.Valor,
1211
+ rule: this.taxAmountCalculationRule
1212
+ }
1213
+ ],
1214
+ [EnumTipoTributo.IBS_MUNICIPAL_TRIBUTACAO_REGULAR]: [
1215
+ {
1216
+ field: EnumCampoTributo.BaseCalculo,
1217
+ rule: this.taxableBaseCalculationRule
1218
+ },
1219
+ {
1220
+ field: EnumCampoTributo.Valor,
1221
+ rule: this.taxAmountCalculationRule
1222
+ }
1223
+ ],
1224
+ [EnumTipoTributo.IBS_CREDITO_PRESUMIDO]: [
1225
+ {
1226
+ field: EnumCampoTributo.BaseCalculo,
1227
+ rule: this.taxableBaseCalculationRule
1228
+ },
1229
+ {
1230
+ field: EnumCampoTributo.Valor,
1231
+ rule: this.taxAmountCalculationRule
1232
+ }
1233
+ ],
1234
+ [EnumTipoTributo.IS]: [
1235
+ {
1236
+ field: EnumCampoTributo.Valor,
1237
+ rule: this.taxAmountCalculationRule
1238
+ }
1239
+ ]
1240
+ },
1241
+ 'Service Quote': {
1242
+ [EnumTipoTributo.CBS]: [
1243
+ {
1244
+ field: EnumCampoTributo.AliquotaEfetiva,
1245
+ rule: this.effectiveTaxRateCalculationRule
1246
+ },
1247
+ {
1248
+ field: EnumCampoTributo.ValorBruto,
1249
+ rule: this.grossAmountCalculationRule
1250
+ },
1251
+ {
1252
+ field: EnumCampoTributo.Valor,
1253
+ rule: this.taxAmountCalculationRule
1254
+ },
1255
+ {
1256
+ field: EnumCampoTributo.TipoCalculoImposto,
1257
+ rule: this.taxCalculationTypeCalculationRule
1258
+ },
1259
+ {
1260
+ field: EnumCampoTributo.ImpostoManual,
1261
+ rule: this.manualTaxCalculationRule
1262
+ }
1263
+ ],
1264
+ [EnumTipoTributo.CBS_DIFERIDO]: [
1265
+ {
1266
+ field: EnumCampoTributo.BaseCalculo,
1267
+ rule: this.taxableBaseCalculationRule
1268
+ },
1269
+ {
1270
+ field: EnumCampoTributo.Valor,
1271
+ rule: this.taxAmountCalculationRule
1272
+ }
1273
+ ],
1274
+ [EnumTipoTributo.CBS_CREDITO_PRESUMIDO]: [
1275
+ {
1276
+ field: EnumCampoTributo.Valor,
1277
+ rule: this.taxAmountCalculationRule
1278
+ }
1279
+ ],
1280
+ [EnumTipoTributo.CBS_TRIBUTACAO_REGULAR]: [
1281
+ {
1282
+ field: EnumCampoTributo.BaseCalculo,
1283
+ rule: this.taxableBaseCalculationRule
1284
+ },
1285
+ {
1286
+ field: EnumCampoTributo.Valor,
1287
+ rule: this.taxAmountCalculationRule
1288
+ }
1289
+ ],
1290
+ [EnumTipoTributo.CBS_GOVERNAMENTAL]: [
1291
+ {
1292
+ field: EnumCampoTributo.BaseCalculo,
1293
+ rule: this.taxableBaseCalculationRule
1294
+ },
1295
+ {
1296
+ field: EnumCampoTributo.Aliquota,
1297
+ rule: this.taxRateCalculationRule
1298
+ },
1299
+ {
1300
+ field: EnumCampoTributo.Valor,
1301
+ rule: this.taxAmountCalculationRule
1302
+ }
1303
+ ],
1304
+ [EnumTipoTributo.CBS_ALC_ZFM]: [
1305
+ {
1306
+ field: EnumCampoTributo.BaseCalculo,
1307
+ rule: this.taxableBaseCalculationRule
1308
+ },
1309
+ {
1310
+ field: EnumCampoTributo.Valor,
1311
+ rule: this.taxAmountCalculationRule
1312
+ }
1313
+ ],
1314
+ [EnumTipoTributo.IBS_ESTADUAL]: [
1315
+ {
1316
+ field: EnumCampoTributo.AliquotaEfetiva,
1317
+ rule: this.effectiveTaxRateCalculationRule
1318
+ },
1319
+ {
1320
+ field: EnumCampoTributo.ValorBruto,
1321
+ rule: this.grossAmountCalculationRule
1322
+ },
1323
+ {
1324
+ field: EnumCampoTributo.Valor,
1325
+ rule: this.taxAmountCalculationRule
1326
+ },
1327
+ {
1328
+ field: EnumCampoTributo.TipoCalculoImposto,
1329
+ rule: this.taxCalculationTypeCalculationRule
1330
+ },
1331
+ {
1332
+ field: EnumCampoTributo.ImpostoManual,
1333
+ rule: this.manualTaxCalculationRule
1334
+ }
1335
+ ],
1336
+ [EnumTipoTributo.IBS_ESTADUAL_DIFERIDO]: [
1337
+ {
1338
+ field: EnumCampoTributo.BaseCalculo,
1339
+ rule: this.taxableBaseCalculationRule
1340
+ },
1341
+ {
1342
+ field: EnumCampoTributo.Valor,
1343
+ rule: this.taxAmountCalculationRule
1344
+ }
1345
+ ],
1346
+ [EnumTipoTributo.IBS_ESTADUAL_TRIBUTACAO_REGULAR]: [
1347
+ {
1348
+ field: EnumCampoTributo.BaseCalculo,
1349
+ rule: this.taxableBaseCalculationRule
1350
+ },
1351
+ {
1352
+ field: EnumCampoTributo.Valor,
1353
+ rule: this.taxAmountCalculationRule
1354
+ }
1355
+ ],
1356
+ [EnumTipoTributo.IBS_ESTADUAL_GOVERNAMENTAL]: [
1357
+ {
1358
+ field: EnumCampoTributo.BaseCalculo,
1359
+ rule: this.taxableBaseCalculationRule
1360
+ },
1361
+ {
1362
+ field: EnumCampoTributo.Aliquota,
1363
+ rule: this.taxRateCalculationRule
1364
+ },
1365
+ {
1366
+ field: EnumCampoTributo.Valor,
1367
+ rule: this.taxAmountCalculationRule
1368
+ }
1369
+ ],
1370
+ [EnumTipoTributo.IBS_MUNICIPAL]: [
1371
+ {
1372
+ field: EnumCampoTributo.AliquotaEfetiva,
1373
+ rule: this.effectiveTaxRateCalculationRule
1374
+ },
1375
+ {
1376
+ field: EnumCampoTributo.ValorBruto,
1377
+ rule: this.grossAmountCalculationRule
1378
+ },
1379
+ {
1380
+ field: EnumCampoTributo.Valor,
1381
+ rule: this.taxAmountCalculationRule
1382
+ },
1383
+ {
1384
+ field: EnumCampoTributo.TipoCalculoImposto,
1385
+ rule: this.taxCalculationTypeCalculationRule
1386
+ },
1387
+ {
1388
+ field: EnumCampoTributo.ImpostoManual,
1389
+ rule: this.manualTaxCalculationRule
1390
+ }
1391
+ ],
1392
+ [EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO]: [
1393
+ {
1394
+ field: EnumCampoTributo.BaseCalculo,
1395
+ rule: this.taxableBaseCalculationRule
1396
+ },
1397
+ {
1398
+ field: EnumCampoTributo.Valor,
1399
+ rule: this.taxAmountCalculationRule
1400
+ }
1401
+ ],
1402
+ [EnumTipoTributo.IBS_MUNICIPAL_GOVERNAMENTAL]: [
1403
+ {
1404
+ field: EnumCampoTributo.BaseCalculo,
1405
+ rule: this.taxableBaseCalculationRule
1406
+ },
1407
+ {
1408
+ field: EnumCampoTributo.Aliquota,
1409
+ rule: this.taxRateCalculationRule
1410
+ },
1411
+ {
1412
+ field: EnumCampoTributo.Valor,
1413
+ rule: this.taxAmountCalculationRule
1414
+ }
1415
+ ],
1416
+ [EnumTipoTributo.IBS_MUNICIPAL_TRIBUTACAO_REGULAR]: [
1417
+ {
1418
+ field: EnumCampoTributo.BaseCalculo,
1419
+ rule: this.taxableBaseCalculationRule
1420
+ },
1421
+ {
1422
+ field: EnumCampoTributo.Valor,
1423
+ rule: this.taxAmountCalculationRule
1424
+ }
1425
+ ],
1426
+ [EnumTipoTributo.IBS_CREDITO_PRESUMIDO]: [
1427
+ {
1428
+ field: EnumCampoTributo.BaseCalculo,
1429
+ rule: this.taxableBaseCalculationRule
1430
+ },
1431
+ {
1432
+ field: EnumCampoTributo.Valor,
1433
+ rule: this.taxAmountCalculationRule
1434
+ }
1435
+ ],
1436
+ [EnumTipoTributo.IS]: [
1437
+ {
1438
+ field: EnumCampoTributo.Valor,
1439
+ rule: this.taxAmountCalculationRule
1440
+ }
1441
+ ]
1442
+ }
1443
+ };
1444
+ }
1445
+ get(type, taxType) {
1446
+ var _a, _b;
1447
+ return (_b = (_a = this.strategies[type]) === null || _a === void 0 ? void 0 : _a[taxType]) !== null && _b !== void 0 ? _b : [];
1448
+ }
1449
+ };
1450
+ SaleOrderCalculationRulesRegistry.ctorParameters = () => [
1451
+ { type: TaxableBaseCalculationRule },
1452
+ { type: TaxRateCalculationRule },
1453
+ { type: EffectiveTaxRateCalculationRule },
1454
+ { type: TaxAmountCalculationRule },
1455
+ { type: GrossAmountCalculationRule },
1456
+ { type: TaxCalculationTypeCalculationRule },
1457
+ { type: ManualTaxCalculationRule }
1458
+ ];
1459
+ SaleOrderCalculationRulesRegistry.ɵprov = i0.ɵɵdefineInjectable({ factory: function SaleOrderCalculationRulesRegistry_Factory() { return new SaleOrderCalculationRulesRegistry(i0.ɵɵinject(i1.TaxableBaseCalculationRule), i0.ɵɵinject(i2.TaxRateCalculationRule), i0.ɵɵinject(i3.EffectiveTaxRateCalculationRule), i0.ɵɵinject(i4.TaxAmountCalculationRule), i0.ɵɵinject(i5.GrossAmountCalculationRule), i0.ɵɵinject(i6.TaxCalculationTypeCalculationRule), i0.ɵɵinject(i7.ManualTaxCalculationRule)); }, token: SaleOrderCalculationRulesRegistry, providedIn: "root" });
1460
+ SaleOrderCalculationRulesRegistry = __decorate([
1461
+ Injectable({ providedIn: 'root' })
1462
+ ], SaleOrderCalculationRulesRegistry);
1463
+ export { SaleOrderCalculationRulesRegistry };
1464
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZS1vcmRlci1jYWxjdWxhdGlvbi1ydWxlcy5yZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLWVtcHJlc2FyaWFsL2VycHgtY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvY2FsY3VsYXRpb24vcmVnaXN0cmllcy9jYWxjdWxhdGlvbi1ydWxlcy1yZWdpc3RyaWVzL3NhbGUtb3JkZXItY2FsY3VsYXRpb24tcnVsZXMucmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUNILGdCQUFnQixFQUNoQixlQUFlLEVBQ2xCLE1BQU0sZ0NBQWdDLENBQUM7QUFLeEMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7OztBQUd2RixJQUFhLGlDQUFpQyxHQUE5QyxNQUFhLGlDQUFpQztJQTA0QzFDLFlBQ3FCLDBCQUFzRCxFQUN0RCxzQkFBOEMsRUFDOUMsK0JBQWdFLEVBQ2hFLHdCQUFrRCxFQUNsRCwwQkFBc0QsRUFDdEQsaUNBQW9FLEVBQ3BFLHdCQUFrRDtRQU5sRCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FB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QUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDLHdCQUF3QjtxQkFDdEM7aUJBQ0o7YUFDSjtTQUNKLENBQUM7SUFVQyxDQUFDO0lBRUosR0FBRyxDQUNDLElBQW1CLEVBQ25CLE9BQXdCOztRQUV4QixtQkFBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQywwQ0FBRyxPQUFPLG9DQUFLLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0NBQ0osQ0FBQTs7WUFmb0QsMEJBQTBCO1lBQzlCLHNCQUFzQjtZQUNiLCtCQUErQjtZQUN0Qyx3QkFBd0I7WUFDdEIsMEJBQTBCO1lBQ25CLGlDQUFpQztZQUMxQyx3QkFBd0I7OztBQWo1QzlELGlDQUFpQztJQUQ3QyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7R0FDdEIsaUNBQWlDLENBMDVDN0M7U0ExNUNZLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRW51bUNhbXBvVHJpYnV0byxcbiAgICBFbnVtVGlwb1RyaWJ1dG9cbn0gZnJvbSAnLi4vLi4vLi4vLi4vZXJwLXRyaWJ1dG9zLnR5cGVzJztcbmltcG9ydCB7IFNhbGVPcmRlclR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi90eXBlcy9zYWxlLW9yZGVyLXR5cGUnO1xuaW1wb3J0IHsgRmllbGRDYWxjdWxhdGlvblJ1bGVNYXBwaW5nIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvZmllbGQtY2FsY3VsYXRpb24tcnVsZS1tYXBwaW5nJztcbmltcG9ydCB7IFNjaGVtYSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3NjaGVtYXMvc2FsZS1vcmRlci5zY2hlbWEnO1xuaW1wb3J0IHsgU3RyYXRlZ2llcyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3N0cmF0ZWdpZXMnO1xuaW1wb3J0IHsgRWZmZWN0aXZlVGF4UmF0ZUNhbGN1bGF0aW9uUnVsZSB9IGZyb20gJy4uLy4uL3J1bGVzL2VmZmVjdGl2ZS10YXgtcmF0ZS1jYWxjdWxhdGlvbi1ydWxlJztcbmltcG9ydCB7IEdyb3NzQW1vdW50Q2FsY3VsYXRpb25SdWxlIH0gZnJvbSAnLi4vLi4vcnVsZXMvZ3Jvc3MtYW1vdW50LWNhbGN1bGF0aW9uLXJ1bGUnO1xuaW1wb3J0IHsgTWFudWFsVGF4Q2FsY3VsYXRpb25SdWxlIH0gZnJvbSAnLi4vLi4vcnVsZXMvbWFudWFsLXRheC1jYWxjdWxhdGlvbi1ydWxlJztcbmltcG9ydCB7IFRheEFtb3VudENhbGN1bGF0aW9uUnVsZSB9IGZyb20gJy4uLy4uL3J1bGVzL3RheC1hbW91bnQtY2FsY3VsYXRpb24tcnVsZSc7XG5pbXBvcnQgeyBUYXhDYWxjdWxhdGlvblR5cGVDYWxjdWxhdGlvblJ1bGUgfSBmcm9tICcuLi8uLi9ydWxlcy90YXgtY2FsY3VsYXRpb24tdHlwZS1jYWxjdWxhdGlvbi1ydWxlJztcbmltcG9ydCB7IFRheFJhdGVDYWxjdWxhdGlvblJ1bGUgfSBmcm9tICcuLi8uLi9ydWxlcy90YXgtcmF0ZS1jYWxjdWxhdGlvbi1ydWxlJztcbmltcG9ydCB7IFRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlIH0gZnJvbSAnLi4vLi4vcnVsZXMvdGF4YWJsZS1iYXNlLWNhbGN1bGF0aW9uLXJ1bGUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNhbGVPcmRlckNhbGN1bGF0aW9uUnVsZXNSZWdpc3RyeSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzdHJhdGVnaWVzOiBTdHJhdGVnaWVzPFNjaGVtYT4gPSB7XG4gICAgICAgICdGdXR1cmUgRGVsaXZlcnkgT3JkZXInOiB7XG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhRWZldGl2YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5lZmZlY3RpdmVUYXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yQnJ1dG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZ3Jvc3NBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlRpcG9DYWxjdWxvSW1wb3N0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhDYWxjdWxhdGlvblR5cGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uSW1wb3N0b01hbnVhbCxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5tYW51YWxUYXhDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNfRElGRVJJRE9dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNfQ1JFRElUT19QUkVTVU1JRE9dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNfVFJJQlVUQUNBT19SRUdVTEFSXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uQ0JTX0dPVkVSTkFNRU5UQUxdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5BbGlxdW90YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU19BTENfWkZNXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGFFZmV0aXZhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLmVmZmVjdGl2ZVRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3JCcnV0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5ncm9zc0Ftb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVGlwb0NhbGN1bG9JbXBvc3RvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheENhbGN1bGF0aW9uVHlwZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5JbXBvc3RvTWFudWFsLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLm1hbnVhbFRheENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9ESUZFUklET106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9UUklCVVRBQ0FPX1JFR1VMQVJdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfR09WRVJOQU1FTlRBTF06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhRWZldGl2YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5lZmZlY3RpdmVUYXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yQnJ1dG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZ3Jvc3NBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlRpcG9DYWxjdWxvSW1wb3N0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhDYWxjdWxhdGlvblR5cGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uSW1wb3N0b01hbnVhbCxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5tYW51YWxUYXhDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0RJRkVSSURPXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9HT1ZFUk5BTUVOVEFMXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGEsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4UmF0ZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX1RSSUJVVEFDQU9fUkVHVUxBUl06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19DUkVESVRPX1BSRVNVTUlET106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklTXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICAnUHJvZHVjdCBhbmQgU2VydmljZSBPcmRlcic6IHtcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uQ0JTXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGFFZmV0aXZhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLmVmZmVjdGl2ZVRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3JCcnV0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5ncm9zc0Ftb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVGlwb0NhbGN1bG9JbXBvc3RvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheENhbGN1bGF0aW9uVHlwZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5JbXBvc3RvTWFudWFsLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLm1hbnVhbFRheENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU19ESUZFUklET106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU19DUkVESVRPX1BSRVNVTUlET106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU19UUklCVVRBQ0FPX1JFR1VMQVJdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNfR09WRVJOQU1FTlRBTF06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uQ0JTX0FMQ19aRk1dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5BbGlxdW90YUVmZXRpdmEsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZWZmZWN0aXZlVGF4UmF0ZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvckJydXRvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLmdyb3NzQW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5UaXBvQ2FsY3Vsb0ltcG9zdG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4Q2FsY3VsYXRpb25UeXBlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkltcG9zdG9NYW51YWwsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMubWFudWFsVGF4Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX0RJRkVSSURPXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX1RSSUJVVEFDQU9fUkVHVUxBUl06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9HT1ZFUk5BTUVOVEFMXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGEsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4UmF0ZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGFFZmV0aXZhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLmVmZmVjdGl2ZVRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3JCcnV0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5ncm9zc0Ftb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVGlwb0NhbGN1bG9JbXBvc3RvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheENhbGN1bGF0aW9uVHlwZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5JbXBvc3RvTWFudWFsLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLm1hbnVhbFRheENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfRElGRVJJRE9dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0dPVkVSTkFNRU5UQUxdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5BbGlxdW90YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX0NSRURJVE9fUFJFU1VNSURPXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSVNdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgICdQcm9kdWN0IGFuZCBTZXJ2aWNlIFF1b3RlJzoge1xuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5BbGlxdW90YUVmZXRpdmEsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZWZmZWN0aXZlVGF4UmF0ZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvckJydXRvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLmdyb3NzQW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5UaXBvQ2FsY3Vsb0ltcG9zdG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4Q2FsY3VsYXRpb25UeXBlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkltcG9zdG9NYW51YWwsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMubWFudWFsVGF4Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uQ0JTX0RJRkVSSURPXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uQ0JTX0NSRURJVE9fUFJFU1VNSURPXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uQ0JTX1RSSUJVVEFDQU9fUkVHVUxBUl06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU19HT1ZFUk5BTUVOVEFMXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGEsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4UmF0ZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNfQUxDX1pGTV06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhRWZldGl2YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5lZmZlY3RpdmVUYXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yQnJ1dG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZ3Jvc3NBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlRpcG9DYWxjdWxvSW1wb3N0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhDYWxjdWxhdGlvblR5cGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uSW1wb3N0b01hbnVhbCxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5tYW51YWxUYXhDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfRElGRVJJRE9dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfVFJJQlVUQUNBT19SRUdVTEFSXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX0dPVkVSTkFNRU5UQUxdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5BbGlxdW90YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5BbGlxdW90YUVmZXRpdmEsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZWZmZWN0aXZlVGF4UmF0ZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvckJydXRvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLmdyb3NzQW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5UaXBvQ2FsY3Vsb0ltcG9zdG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4Q2FsY3VsYXRpb25UeXBlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkltcG9zdG9NYW51YWwsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMubWFudWFsVGF4Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9ESUZFUklET106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfR09WRVJOQU1FTlRBTF06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9UUklCVVRBQ0FPX1JFR1VMQVJdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfQ1JFRElUT19QUkVTVU1JRE9dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JU106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgJ1Byb2R1Y3QgT3JkZXInOiB7XG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhRWZldGl2YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5lZmZlY3RpdmVUYXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yQnJ1dG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZ3Jvc3NBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlRpcG9DYWxjdWxvSW1wb3N0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhDYWxjdWxhdGlvblR5cGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uSW1wb3N0b01hbnVhbCxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5tYW51YWxUYXhDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNfRElGRVJJRE9dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNfQ1JFRElUT19QUkVTVU1JRE9dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNfVFJJQlVUQUNBT19SRUdVTEFSXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uQ0JTX0dPVkVSTkFNRU5UQUxdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5BbGlxdW90YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU19BTENfWkZNXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGFFZmV0aXZhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLmVmZmVjdGl2ZVRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3JCcnV0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5ncm9zc0Ftb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVGlwb0NhbGN1bG9JbXBvc3RvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheENhbGN1bGF0aW9uVHlwZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5JbXBvc3RvTWFudWFsLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLm1hbnVhbFRheENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9ESUZFUklET106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9UUklCVVRBQ0FPX1JFR1VMQVJdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfR09WRVJOQU1FTlRBTF06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhRWZldGl2YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5lZmZlY3RpdmVUYXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yQnJ1dG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZ3Jvc3NBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlRpcG9DYWxjdWxvSW1wb3N0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhDYWxjdWxhdGlvblR5cGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uSW1wb3N0b01hbnVhbCxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5tYW51YWxUYXhDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0RJRkVSSURPXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9HT1ZFUk5BTUVOVEFMXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGEsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4UmF0ZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX1RSSUJVVEFDQU9fUkVHVUxBUl06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19DUkVESVRPX1BSRVNVTUlET106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklTXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICAnUHJvZHVjdCBRdW90ZSc6IHtcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uQ0JTXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGFFZmV0aXZhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLmVmZmVjdGl2ZVRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3JCcnV0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5ncm9zc0Ftb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVGlwb0NhbGN1bG9JbXBvc3RvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheENhbGN1bGF0aW9uVHlwZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5JbXBvc3RvTWFudWFsLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLm1hbnVhbFRheENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU19ESUZFUklET106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU19DUkVESVRPX1BSRVNVTUlET106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU19UUklCVVRBQ0FPX1JFR1VMQVJdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNfR09WRVJOQU1FTlRBTF06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uQ0JTX0FMQ19aRk1dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5BbGlxdW90YUVmZXRpdmEsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZWZmZWN0aXZlVGF4UmF0ZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvckJydXRvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLmdyb3NzQW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5UaXBvQ2FsY3Vsb0ltcG9zdG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4Q2FsY3VsYXRpb25UeXBlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkltcG9zdG9NYW51YWwsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMubWFudWFsVGF4Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX0RJRkVSSURPXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX1RSSUJVVEFDQU9fUkVHVUxBUl06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9HT1ZFUk5BTUVOVEFMXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGEsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4UmF0ZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGFFZmV0aXZhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLmVmZmVjdGl2ZVRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3JCcnV0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5ncm9zc0Ftb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVGlwb0NhbGN1bG9JbXBvc3RvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheENhbGN1bGF0aW9uVHlwZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5JbXBvc3RvTWFudWFsLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLm1hbnVhbFRheENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfRElGRVJJRE9dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0dPVkVSTkFNRU5UQUxdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5BbGlxdW90YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX0NSRURJVE9fUFJFU1VNSURPXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSVNdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgICdTZXJ2aWNlIE9yZGVyJzoge1xuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5BbGlxdW90YUVmZXRpdmEsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZWZmZWN0aXZlVGF4UmF0ZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvckJydXRvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLmdyb3NzQW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5UaXBvQ2FsY3Vsb0ltcG9zdG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4Q2FsY3VsYXRpb25UeXBlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkltcG9zdG9NYW51YWwsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMubWFudWFsVGF4Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uQ0JTX0RJRkVSSURPXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uQ0JTX0NSRURJVE9fUFJFU1VNSURPXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uQ0JTX1RSSUJVVEFDQU9fUkVHVUxBUl06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU19HT1ZFUk5BTUVOVEFMXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGEsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4UmF0ZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNfQUxDX1pGTV06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhRWZldGl2YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5lZmZlY3RpdmVUYXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yQnJ1dG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZ3Jvc3NBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlRpcG9DYWxjdWxvSW1wb3N0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhDYWxjdWxhdGlvblR5cGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uSW1wb3N0b01hbnVhbCxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5tYW51YWxUYXhDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfRElGRVJJRE9dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfVFJJQlVUQUNBT19SRUdVTEFSXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX0dPVkVSTkFNRU5UQUxdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5BbGlxdW90YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5BbGlxdW90YUVmZXRpdmEsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZWZmZWN0aXZlVGF4UmF0ZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvckJydXRvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLmdyb3NzQW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5UaXBvQ2FsY3Vsb0ltcG9zdG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4Q2FsY3VsYXRpb25UeXBlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkltcG9zdG9NYW51YWwsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMubWFudWFsVGF4Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9ESUZFUklET106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfR09WRVJOQU1FTlRBTF06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9UUklCVVRBQ0FPX1JFR1VMQVJdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfQ1JFRElUT19QUkVTVU1JRE9dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JU106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgJ1NlcnZpY2UgUXVvdGUnOiB7XG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhRWZldGl2YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5lZmZlY3RpdmVUYXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yQnJ1dG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZ3Jvc3NBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlRpcG9DYWxjdWxvSW1wb3N0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhDYWxjdWxhdGlvblR5cGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uSW1wb3N0b01hbnVhbCxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5tYW51YWxUYXhDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNfRElGRVJJRE9dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNfQ1JFRElUT19QUkVTVU1JRE9dOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5DQlNfVFJJQlVUQUNBT19SRUdVTEFSXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uQ0JTX0dPVkVSTkFNRU5UQUxdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5BbGlxdW90YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLkNCU19BTENfWkZNXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGFFZmV0aXZhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLmVmZmVjdGl2ZVRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3JCcnV0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5ncm9zc0Ftb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVGlwb0NhbGN1bG9JbXBvc3RvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheENhbGN1bGF0aW9uVHlwZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5JbXBvc3RvTWFudWFsLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLm1hbnVhbFRheENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9ESUZFUklET106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9UUklCVVRBQ0FPX1JFR1VMQVJdOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5CYXNlQ2FsY3VsbyxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfR09WRVJOQU1FTlRBTF06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheFJhdGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkFsaXF1b3RhRWZldGl2YSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5lZmZlY3RpdmVUYXhSYXRlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yQnJ1dG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMuZ3Jvc3NBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlRpcG9DYWxjdWxvSW1wb3N0byxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhDYWxjdWxhdGlvblR5cGVDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uSW1wb3N0b01hbnVhbCxcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy5tYW51YWxUYXhDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0RJRkVSSURPXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9HT1ZFUk5BTUVOVEFMXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQmFzZUNhbGN1bG8sXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uQWxpcXVvdGEsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4UmF0ZUNhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRW51bUNhbXBvVHJpYnV0by5WYWxvcixcbiAgICAgICAgICAgICAgICAgICAgcnVsZTogdGhpcy50YXhBbW91bnRDYWxjdWxhdGlvblJ1bGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW0VudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX1RSSUJVVEFDQU9fUkVHVUxBUl06IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklCU19DUkVESVRPX1BSRVNVTUlET106IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLkJhc2VDYWxjdWxvLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBFbnVtQ2FtcG9UcmlidXRvLlZhbG9yLFxuICAgICAgICAgICAgICAgICAgICBydWxlOiB0aGlzLnRheEFtb3VudENhbGN1bGF0aW9uUnVsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbRW51bVRpcG9UcmlidXRvLklTXTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEVudW1DYW1wb1RyaWJ1dG8uVmFsb3IsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGU6IHRoaXMudGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRheGFibGVCYXNlQ2FsY3VsYXRpb25SdWxlOiBUYXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0YXhSYXRlQ2FsY3VsYXRpb25SdWxlOiBUYXhSYXRlQ2FsY3VsYXRpb25SdWxlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVmZmVjdGl2ZVRheFJhdGVDYWxjdWxhdGlvblJ1bGU6IEVmZmVjdGl2ZVRheFJhdGVDYWxjdWxhdGlvblJ1bGUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlOiBUYXhBbW91bnRDYWxjdWxhdGlvblJ1bGUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZ3Jvc3NBbW91bnRDYWxjdWxhdGlvblJ1bGU6IEdyb3NzQW1vdW50Q2FsY3VsYXRpb25SdWxlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRheENhbGN1bGF0aW9uVHlwZUNhbGN1bGF0aW9uUnVsZTogVGF4Q2FsY3VsYXRpb25UeXBlQ2FsY3VsYXRpb25SdWxlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1hbnVhbFRheENhbGN1bGF0aW9uUnVsZTogTWFudWFsVGF4Q2FsY3VsYXRpb25SdWxlXG4gICAgKSB7fVxuXG4gICAgZ2V0KFxuICAgICAgICB0eXBlOiBTYWxlT3JkZXJUeXBlLFxuICAgICAgICB0YXhUeXBlOiBFbnVtVGlwb1RyaWJ1dG9cbiAgICApOiBGaWVsZENhbGN1bGF0aW9uUnVsZU1hcHBpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmF0ZWdpZXNbdHlwZV0/Llt0YXhUeXBlXSA/PyBbXTtcbiAgICB9XG59XG4iXX0=