@gemeentenijmegen/webapp 1.1.10 → 1.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/.jsii +10 -10
  2. package/assets/webapp/auth/auth.lambda/index.js +47 -66
  3. package/assets/webapp/login/login.lambda/index.js +2 -21
  4. package/assets/webapp/logout/logout.lambda/index.js +2 -2
  5. package/lib/webapp/Criticality.js +1 -1
  6. package/lib/webapp/Webapp.js +1 -1
  7. package/lib/webapp/Webpage.js +1 -1
  8. package/lib/webapp/util/Files.js +1 -1
  9. package/node_modules/@aws-sdk/client-dynamodb/dist-cjs/index.js +63 -0
  10. package/node_modules/@aws-sdk/client-dynamodb/dist-es/models/index.js +1 -0
  11. package/node_modules/@aws-sdk/client-dynamodb/dist-es/models/models_0.js +22 -0
  12. package/node_modules/@aws-sdk/client-dynamodb/dist-es/models/models_1.js +1 -0
  13. package/node_modules/@aws-sdk/client-dynamodb/dist-es/protocols/Aws_json1_0.js +14 -1
  14. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/BatchExecuteStatementCommand.d.ts +8 -3
  15. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/BatchGetItemCommand.d.ts +14 -7
  16. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/BatchWriteItemCommand.d.ts +14 -7
  17. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DeleteItemCommand.d.ts +14 -7
  18. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeContributorInsightsCommand.d.ts +1 -0
  19. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ExecuteStatementCommand.d.ts +14 -7
  20. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ExecuteTransactionCommand.d.ts +14 -7
  21. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/GetItemCommand.d.ts +14 -7
  22. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListContributorInsightsCommand.d.ts +1 -0
  23. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/PutItemCommand.d.ts +14 -7
  24. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/QueryCommand.d.ts +14 -7
  25. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ScanCommand.d.ts +14 -7
  26. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/TransactGetItemsCommand.d.ts +14 -7
  27. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/TransactWriteItemsCommand.d.ts +16 -8
  28. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateContributorInsightsCommand.d.ts +2 -0
  29. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateItemCommand.d.ts +14 -7
  30. package/node_modules/@aws-sdk/client-dynamodb/dist-types/models/index.d.ts +1 -0
  31. package/node_modules/@aws-sdk/client-dynamodb/dist-types/models/models_0.d.ts +151 -79
  32. package/node_modules/@aws-sdk/client-dynamodb/dist-types/models/models_1.d.ts +73 -0
  33. package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/commands/TransactWriteItemsCommand.d.ts +2 -4
  34. package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/models/index.d.ts +1 -0
  35. package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/models/models_0.d.ts +24 -6
  36. package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/models/models_1.d.ts +11 -0
  37. package/node_modules/@aws-sdk/client-dynamodb/package.json +35 -35
  38. package/node_modules/@aws-sdk/client-s3/package.json +50 -50
  39. package/node_modules/@aws-sdk/client-secrets-manager/package.json +33 -33
  40. package/node_modules/@aws-sdk/client-ssm/package.json +34 -34
  41. package/node_modules/@aws-sdk/client-sso/package.json +32 -32
  42. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +73 -25
  43. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_0Protocol.js +5 -1
  44. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_1Protocol.js +5 -1
  45. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +4 -3
  46. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +5 -2
  47. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +11 -7
  48. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/jsonReplacer.js +1 -1
  49. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +3 -0
  50. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +6 -2
  51. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +6 -3
  52. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +11 -7
  53. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +6 -1
  54. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +6 -1
  55. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +3 -1
  56. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsRestJsonProtocol.d.ts +4 -0
  57. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/AwsQueryProtocol.d.ts +4 -0
  58. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +4 -0
  59. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +8 -1
  60. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +8 -1
  61. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +8 -1
  62. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +1 -0
  63. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsQueryProtocol.d.ts +1 -0
  64. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +1 -0
  65. package/node_modules/@aws-sdk/core/package.json +12 -12
  66. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
  67. package/node_modules/@aws-sdk/credential-provider-http/package.json +10 -10
  68. package/node_modules/@aws-sdk/credential-provider-ini/package.json +13 -13
  69. package/node_modules/@aws-sdk/credential-provider-node/package.json +12 -12
  70. package/node_modules/@aws-sdk/credential-provider-process/package.json +6 -6
  71. package/node_modules/@aws-sdk/credential-provider-sso/package.json +8 -8
  72. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +6 -6
  73. package/node_modules/@aws-sdk/middleware-bucket-endpoint/package.json +5 -5
  74. package/node_modules/@aws-sdk/middleware-endpoint-discovery/package.json +5 -5
  75. package/node_modules/@aws-sdk/middleware-expect-continue/package.json +4 -4
  76. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +9 -9
  77. package/node_modules/@aws-sdk/middleware-host-header/package.json +4 -4
  78. package/node_modules/@aws-sdk/middleware-location-constraint/package.json +3 -3
  79. package/node_modules/@aws-sdk/middleware-logger/package.json +3 -3
  80. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +4 -4
  81. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +11 -11
  82. package/node_modules/@aws-sdk/middleware-ssec/package.json +3 -3
  83. package/node_modules/@aws-sdk/middleware-user-agent/package.json +7 -7
  84. package/node_modules/@aws-sdk/nested-clients/package.json +32 -32
  85. package/node_modules/@aws-sdk/region-config-resolver/package.json +5 -5
  86. package/node_modules/@aws-sdk/s3-request-presigner/package.json +10 -10
  87. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +6 -6
  88. package/node_modules/@aws-sdk/token-providers/package.json +10 -8
  89. package/node_modules/@aws-sdk/types/package.json +2 -2
  90. package/node_modules/@aws-sdk/util-endpoints/package.json +5 -5
  91. package/node_modules/@aws-sdk/util-format-url/package.json +4 -4
  92. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +3 -3
  93. package/node_modules/@aws-sdk/util-user-agent-node/package.json +5 -5
  94. package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
  95. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/.jsii +82 -4
  96. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/lib/index.js +1 -1
  97. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/.jsii +84 -6
  98. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/bedrock-inference-helper.js +2 -2
  99. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudfront-distribution-defaults.d.ts +1 -1
  100. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudfront-distribution-defaults.js +1 -1
  101. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudfront-distribution-helper.d.ts +1 -1
  102. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudfront-distribution-helper.js +1 -1
  103. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kendra-helper.js +4 -2
  104. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/waf-helper.js +5 -2
  105. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/package.json +3 -3
  106. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/TwoLogGroups.json +365 -0
  107. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/bedrock-inference-helper.test.js +2 -6
  108. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/lambda/index.js +1 -1
  109. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/pipes-helper.test.js +2 -2
  110. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/step-function-helper.test.js +1 -1
  111. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/test-helper.d.ts +6 -0
  112. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/test-helper.js +84 -1
  113. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/waf-helper.test.js +35 -1
  114. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/package.json +6 -6
  115. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js +2 -1
  116. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js +2 -1
  117. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/cdk.out +1 -1
  118. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/integ.json +2 -2
  119. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.assets.json +6 -6
  120. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.template.json +1 -136
  121. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddbdeployFunctionWithExistingVpcIntegDefaultTestDeployAssertEE08E38E.assets.json +2 -2
  122. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/manifest.json +475 -10
  123. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/tree.json +1 -1
  124. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js +2 -1
  125. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/cdk.out +1 -1
  126. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/integ.json +2 -2
  127. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.assets.json +6 -6
  128. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.template.json +1 -136
  129. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddbdeployFunctionWithVpcIntegDefaultTestDeployAssert0AB8275C.assets.json +2 -2
  130. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/manifest.json +475 -10
  131. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/tree.json +1 -1
  132. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js +2 -1
  133. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js +2 -1
  134. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js +2 -1
  135. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js +2 -1
  136. package/node_modules/@gemeentenijmegen/apiclient/node_modules/@gemeentenijmegen/utils/package.json +8 -8
  137. package/node_modules/@gemeentenijmegen/apiclient/package.json +7 -7
  138. package/node_modules/@gemeentenijmegen/apigateway-http/package.json +4 -4
  139. package/node_modules/@gemeentenijmegen/session/package.json +5 -5
  140. package/node_modules/@gemeentenijmegen/utils/package.json +7 -7
  141. package/node_modules/@smithy/abort-controller/package.json +2 -2
  142. package/node_modules/@smithy/config-resolver/package.json +4 -4
  143. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +77 -38
  144. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +88 -85
  145. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +12 -0
  146. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +6 -51
  147. package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +77 -41
  148. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +95 -0
  149. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +7 -95
  150. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +9 -0
  151. package/node_modules/@smithy/core/dist-es/submodules/serde/copyDocumentWithTransform.js +1 -53
  152. package/node_modules/@smithy/core/dist-es/submodules/serde/generateIdempotencyToken.js +2 -0
  153. package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +1 -0
  154. package/node_modules/@smithy/core/dist-types/submodules/cbor/CborCodec.d.ts +5 -0
  155. package/node_modules/@smithy/core/dist-types/submodules/protocols/HttpBindingProtocol.d.ts +9 -1
  156. package/node_modules/@smithy/core/dist-types/submodules/protocols/HttpProtocol.d.ts +3 -1
  157. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/NormalizedSchema.d.ts +5 -0
  158. package/node_modules/@smithy/core/dist-types/submodules/serde/copyDocumentWithTransform.d.ts +1 -0
  159. package/node_modules/@smithy/core/dist-types/submodules/serde/generateIdempotencyToken.d.ts +2 -0
  160. package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +1 -0
  161. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/CborCodec.d.ts +5 -0
  162. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/HttpBindingProtocol.d.ts +9 -1
  163. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/HttpProtocol.d.ts +3 -1
  164. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/NormalizedSchema.d.ts +5 -0
  165. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/copyDocumentWithTransform.d.ts +1 -0
  166. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/generateIdempotencyToken.d.ts +2 -0
  167. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/index.d.ts +1 -0
  168. package/node_modules/@smithy/core/package.json +9 -7
  169. package/node_modules/@smithy/credential-provider-imds/package.json +5 -5
  170. package/node_modules/@smithy/eventstream-codec/package.json +2 -2
  171. package/node_modules/@smithy/eventstream-serde-browser/package.json +3 -3
  172. package/node_modules/@smithy/eventstream-serde-config-resolver/package.json +2 -2
  173. package/node_modules/@smithy/eventstream-serde-node/package.json +3 -3
  174. package/node_modules/@smithy/eventstream-serde-universal/package.json +3 -3
  175. package/node_modules/@smithy/fetch-http-handler/package.json +5 -5
  176. package/node_modules/@smithy/hash-blob-browser/package.json +2 -2
  177. package/node_modules/@smithy/hash-node/package.json +2 -2
  178. package/node_modules/@smithy/hash-stream-node/package.json +2 -2
  179. package/node_modules/@smithy/invalid-dependency/package.json +2 -2
  180. package/node_modules/@smithy/md5-js/package.json +2 -2
  181. package/node_modules/@smithy/middleware-content-length/package.json +3 -3
  182. package/node_modules/@smithy/middleware-endpoint/package.json +8 -8
  183. package/node_modules/@smithy/middleware-retry/package.json +9 -9
  184. package/node_modules/@smithy/middleware-serde/package.json +3 -3
  185. package/node_modules/@smithy/middleware-stack/package.json +2 -2
  186. package/node_modules/@smithy/node-config-provider/package.json +4 -4
  187. package/node_modules/@smithy/node-http-handler/package.json +5 -5
  188. package/node_modules/@smithy/property-provider/package.json +2 -2
  189. package/node_modules/@smithy/protocol-http/package.json +2 -2
  190. package/node_modules/@smithy/querystring-builder/package.json +2 -2
  191. package/node_modules/@smithy/querystring-parser/package.json +2 -2
  192. package/node_modules/@smithy/service-error-classification/package.json +2 -2
  193. package/node_modules/@smithy/shared-ini-file-loader/package.json +2 -2
  194. package/node_modules/@smithy/signature-v4/package.json +4 -4
  195. package/node_modules/@smithy/smithy-client/dist-cjs/index.js +1 -0
  196. package/node_modules/@smithy/smithy-client/package.json +7 -7
  197. package/node_modules/@smithy/types/dist-types/schema/schema.d.ts +1 -0
  198. package/node_modules/@smithy/types/dist-types/ts3.4/schema/schema.d.ts +1 -0
  199. package/node_modules/@smithy/types/package.json +1 -1
  200. package/node_modules/@smithy/url-parser/package.json +3 -3
  201. package/node_modules/@smithy/util-defaults-mode-browser/package.json +4 -4
  202. package/node_modules/@smithy/util-defaults-mode-node/package.json +7 -7
  203. package/node_modules/@smithy/util-endpoints/package.json +3 -3
  204. package/node_modules/@smithy/util-middleware/package.json +2 -2
  205. package/node_modules/@smithy/util-retry/package.json +3 -3
  206. package/node_modules/@smithy/util-stream/package.json +4 -4
  207. package/node_modules/@smithy/util-waiter/package.json +3 -3
  208. package/node_modules/bowser/CHANGELOG.md +1 -1
  209. package/node_modules/bowser/README.md +2 -4
  210. package/node_modules/bowser/bundled.js +1 -1
  211. package/node_modules/bowser/es5.js +1 -1
  212. package/node_modules/bowser/index.d.ts +72 -7
  213. package/node_modules/bowser/package.json +4 -3
  214. package/node_modules/bowser/src/constants.js +3 -0
  215. package/node_modules/bowser/src/parser-browsers.js +15 -0
  216. package/node_modules/bowser/src/parser-platforms.js +17 -1
  217. package/node_modules/bowser/src/parser.js +20 -5
  218. package/node_modules/bowser/src/utils.js +2 -2
  219. package/node_modules/follow-redirects/package.json +1 -1
  220. package/node_modules/oidc-token-hash/README.md +1 -0
  221. package/node_modules/oidc-token-hash/lib/index.js +0 -10
  222. package/node_modules/oidc-token-hash/package.json +1 -1
  223. package/package.json +16 -16
  224. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +0 -21
  225. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +0 -1
  226. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +0 -1
  227. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +0 -21
  228. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +0 -1
  229. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +0 -1
  230. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +0 -21
  231. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +0 -21
  232. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +0 -21
  233. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +0 -21
  234. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +0 -21
  235. package/node_modules/oidc-token-hash/lib/shake256.js +0 -7
@@ -96,4 +96,4 @@ function getFunctionAssociationsProp(setHttpSecurityHeaders, cfFunction) {
96
96
  ]
97
97
  } : {};
98
98
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1kaXN0cmlidXRpb24tZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZyb250LWRpc3RyaWJ1dGlvbi1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBbUJILGdIQXlCQztBQUtELGdHQXVCQztBQUtELDBHQWdDQztBQXJHRCx5REFBeUQ7QUFDekQsK0RBQXdFO0FBQ3hFLDhEQUE4RDtBQUc5RCxtQ0FBbUM7QUFHbkM7O0dBRUc7QUFDSCxTQUFnQixrREFBa0QsQ0FBQyxXQUF3QixFQUN6RixhQUFvQyxFQUNwQyxzQkFBK0IsRUFDL0IsVUFBaUMsRUFDakMscUJBQXdEO0lBR3hELE1BQU0sNkJBQTZCLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RixNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsNkJBQTZCLENBQUMsQ0FBQyxDQUFDO0lBRWpHLElBQUksZUFBZSxHQUFvQjtRQUNyQyxNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFO1lBQ3BELFVBQVUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFO1NBQ3hELENBQUM7UUFDRixHQUFHLDJCQUEyQixDQUFDLHNCQUFzQixFQUFFLFVBQVUsQ0FBQztRQUNsRSxvQkFBb0IsRUFBRSxVQUFVLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCO0tBQ3hFLENBQUM7SUFDRixJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDMUIsZUFBZSxHQUFHLEVBQUMsR0FBRyxlQUFlLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBQ0QsT0FBTztRQUNMLGVBQWU7UUFDZixhQUFhLEVBQUUsSUFBSTtRQUNuQixTQUFTLEVBQUUsYUFBYTtLQUN6QixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsMENBQTBDLENBQ3hELE1BQWUsRUFDZixhQUFvQyxFQUNwQyxzQkFBK0IsRUFDL0IsVUFBaUMsRUFDakMscUJBQXdEO0lBR3hELElBQUksZUFBZSxHQUFvQjtRQUNyQyxNQUFNO1FBQ04sb0JBQW9CLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQjtRQUN2RSxHQUFHLDJCQUEyQixDQUFDLHNCQUFzQixFQUFFLFVBQVUsQ0FBQztLQUNuRSxDQUFDO0lBRUYsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQzFCLGVBQWUsR0FBRyxFQUFDLEdBQUcsZUFBZSxFQUFFLHFCQUFxQixFQUFFLENBQUM7SUFDakUsQ0FBQztJQUNELE9BQU87UUFDTCxlQUFlO1FBQ2YsYUFBYSxFQUFFLElBQUk7UUFDbkIsU0FBUyxFQUFFLGFBQWE7UUFDeEIsaUJBQWlCLEVBQUUsWUFBWTtLQUNoQyxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsK0NBQStDLENBQUMsbUJBQTRDLEVBQzFHLGFBQW9DLEVBQ3BDLG1CQUFtRCxFQUNuRCxzQkFBK0IsRUFDL0IsYUFBc0MsRUFDdEMsVUFBaUMsRUFDakMscUJBQXdEO0lBR3hELE1BQU0scUNBQXFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3RILE1BQU0sNkJBQTZCLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDLENBQUM7SUFFakgsTUFBTSxVQUFVLEdBQXVCLGFBQWEsQ0FBQyxDQUFDO1FBQ3BELElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUV4RCxJQUFJLGVBQWUsR0FBb0I7UUFDckMsTUFBTSxFQUFFLFVBQVU7UUFDbEIsb0JBQW9CLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQjtRQUN2RSxjQUFjLEVBQUUsVUFBVSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0I7UUFDaEUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsc0JBQXNCO1FBQzlELG1CQUFtQjtRQUNuQixHQUFHLDJCQUEyQixDQUFDLHNCQUFzQixFQUFFLFVBQVUsQ0FBQztLQUNuRSxDQUFDO0lBQ0YsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQzFCLGVBQWUsR0FBRyxFQUFDLEdBQUcsZUFBZSxFQUFFLHFCQUFxQixFQUFFLENBQUM7SUFDakUsQ0FBQztJQUNELE9BQU87UUFDTCxlQUFlO1FBQ2YsYUFBYSxFQUFFLElBQUk7UUFDbkIsU0FBUyxFQUFFLGFBQWE7S0FDekIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLDJCQUEyQixDQUFDLHNCQUErQixFQUFFLFVBQTRDO0lBQ2hILE9BQU8sQ0FBQyxzQkFBc0IsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsb0JBQW9CLEVBQUU7WUFDcEI7Z0JBQ0UsU0FBUyxFQUFFLGtDQUFpQixDQUFDLGVBQWU7Z0JBQzVDLFFBQVEsRUFBRSxVQUFVO2FBQ3JCO1NBQ0Y7S0FDRixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBhcGkgZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXknO1xuaW1wb3J0ICogYXMgY2xvdWRmcm9udCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgeyBGdW5jdGlvbkV2ZW50VHlwZSwgSU9yaWdpbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCAqIGFzIG9yaWdpbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2lucyc7XG5pbXBvcnQgKiBhcyBtZWRpYXN0b3JlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYXN0b3JlJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtCZWhhdmlvck9wdGlvbnN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC9saWIvZGlzdHJpYnV0aW9uXCI7XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uRm9yQXBpR2F0ZXdheVByb3BzKGFwaUVuZFBvaW50OiBhcGkuUmVzdEFwaSxcbiAgbG9nZ2luZ0J1Y2tldDogczMuQnVja2V0IHwgdW5kZWZpbmVkLFxuICBzZXRIdHRwU2VjdXJpdHlIZWFkZXJzOiBib29sZWFuLFxuICBjZkZ1bmN0aW9uPzogY2xvdWRmcm9udC5JRnVuY3Rpb24sXG4gIHJlc3BvbnNlSGVhZGVyc1BvbGljeT86IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5LFxuKTogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcyB7XG5cbiAgY29uc3QgYXBpRW5kUG9pbnRVcmxXaXRob3V0UHJvdG9jb2wgPSBjZGsuRm4uc2VsZWN0KDEsIGNkay5Gbi5zcGxpdChcIjovL1wiLCBhcGlFbmRQb2ludC51cmwpKTtcbiAgY29uc3QgYXBpRW5kUG9pbnREb21haW5OYW1lID0gY2RrLkZuLnNlbGVjdCgwLCBjZGsuRm4uc3BsaXQoXCIvXCIsIGFwaUVuZFBvaW50VXJsV2l0aG91dFByb3RvY29sKSk7XG5cbiAgbGV0IGRlZmF1bHRCZWhhdmlvcjogQmVoYXZpb3JPcHRpb25zID0ge1xuICAgIG9yaWdpbjogbmV3IG9yaWdpbnMuSHR0cE9yaWdpbihhcGlFbmRQb2ludERvbWFpbk5hbWUsIHtcbiAgICAgIG9yaWdpblBhdGg6IGAvJHthcGlFbmRQb2ludC5kZXBsb3ltZW50U3RhZ2Uuc3RhZ2VOYW1lfWBcbiAgICB9KSxcbiAgICAuLi5nZXRGdW5jdGlvbkFzc29jaWF0aW9uc1Byb3Aoc2V0SHR0cFNlY3VyaXR5SGVhZGVycywgY2ZGdW5jdGlvbiksXG4gICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IGNsb3VkZnJvbnQuVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gIH07XG4gIGlmIChyZXNwb25zZUhlYWRlcnNQb2xpY3kpIHtcbiAgICBkZWZhdWx0QmVoYXZpb3IgPSB7Li4uZGVmYXVsdEJlaGF2aW9yLCByZXNwb25zZUhlYWRlcnNQb2xpY3kgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGRlZmF1bHRCZWhhdmlvcixcbiAgICBlbmFibGVMb2dnaW5nOiB0cnVlLFxuICAgIGxvZ0J1Y2tldDogbG9nZ2luZ0J1Y2tldCxcbiAgfTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdENsb3VkRnJvbnRXZWJEaXN0cmlidXRpb25Gb3JTM1Byb3BzKFxuICBvcmlnaW46IElPcmlnaW4sXG4gIGxvZ2dpbmdCdWNrZXQ6IHMzLkJ1Y2tldCB8IHVuZGVmaW5lZCxcbiAgc2V0SHR0cFNlY3VyaXR5SGVhZGVyczogYm9vbGVhbixcbiAgY2ZGdW5jdGlvbj86IGNsb3VkZnJvbnQuSUZ1bmN0aW9uLFxuICByZXNwb25zZUhlYWRlcnNQb2xpY3k/OiBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbik6IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMge1xuXG4gIGxldCBkZWZhdWx0QmVoYXZpb3I6IEJlaGF2aW9yT3B0aW9ucyA9IHtcbiAgICBvcmlnaW4sXG4gICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IGNsb3VkZnJvbnQuVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgLi4uZ2V0RnVuY3Rpb25Bc3NvY2lhdGlvbnNQcm9wKHNldEh0dHBTZWN1cml0eUhlYWRlcnMsIGNmRnVuY3Rpb24pXG4gIH07XG5cbiAgaWYgKHJlc3BvbnNlSGVhZGVyc1BvbGljeSkge1xuICAgIGRlZmF1bHRCZWhhdmlvciA9IHsuLi5kZWZhdWx0QmVoYXZpb3IsIHJlc3BvbnNlSGVhZGVyc1BvbGljeSB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgZGVmYXVsdEJlaGF2aW9yLFxuICAgIGVuYWJsZUxvZ2dpbmc6IHRydWUsXG4gICAgbG9nQnVja2V0OiBsb2dnaW5nQnVja2V0LFxuICAgIGRlZmF1bHRSb290T2JqZWN0OiAnaW5kZXguaHRtbCdcbiAgfTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JNZWRpYVN0b3JlUHJvcHMobWVkaWFzdG9yZUNvbnRhaW5lcjogbWVkaWFzdG9yZS5DZm5Db250YWluZXIsXG4gIGxvZ2dpbmdCdWNrZXQ6IHMzLkJ1Y2tldCB8IHVuZGVmaW5lZCxcbiAgb3JpZ2luUmVxdWVzdFBvbGljeTogY2xvdWRmcm9udC5PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICBzZXRIdHRwU2VjdXJpdHlIZWFkZXJzOiBib29sZWFuLFxuICBjdXN0b21IZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgY2ZGdW5jdGlvbj86IGNsb3VkZnJvbnQuSUZ1bmN0aW9uLFxuICByZXNwb25zZUhlYWRlcnNQb2xpY3k/OiBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeVxuKTogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcyB7XG5cbiAgY29uc3QgbWVkaWFTdG9yZUNvbnRhaW5lclVybFdpdGhvdXRQcm90b2NvbCA9IGNkay5Gbi5zZWxlY3QoMSwgY2RrLkZuLnNwbGl0KCc6Ly8nLCBtZWRpYXN0b3JlQ29udGFpbmVyLmF0dHJFbmRwb2ludCkpO1xuICBjb25zdCBtZWRpYVN0b3JlQ29udGFpbmVyRG9tYWluTmFtZSA9IGNkay5Gbi5zZWxlY3QoMCwgY2RrLkZuLnNwbGl0KCcvJywgbWVkaWFTdG9yZUNvbnRhaW5lclVybFdpdGhvdXRQcm90b2NvbCkpO1xuXG4gIGNvbnN0IGh0dHBPcmlnaW46IG9yaWdpbnMuSHR0cE9yaWdpbiA9IGN1c3RvbUhlYWRlcnMgP1xuICAgIG5ldyBvcmlnaW5zLkh0dHBPcmlnaW4obWVkaWFTdG9yZUNvbnRhaW5lckRvbWFpbk5hbWUsIHsgY3VzdG9tSGVhZGVycyB9KSA6XG4gICAgbmV3IG9yaWdpbnMuSHR0cE9yaWdpbihtZWRpYVN0b3JlQ29udGFpbmVyRG9tYWluTmFtZSk7XG5cbiAgbGV0IGRlZmF1bHRCZWhhdmlvcjogQmVoYXZpb3JPcHRpb25zID0ge1xuICAgIG9yaWdpbjogaHR0cE9yaWdpbixcbiAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICBhbGxvd2VkTWV0aG9kczogY2xvdWRmcm9udC5BbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRF9PUFRJT05TLFxuICAgIGNhY2hlZE1ldGhvZHM6IGNsb3VkZnJvbnQuQ2FjaGVkTWV0aG9kcy5DQUNIRV9HRVRfSEVBRF9PUFRJT05TLFxuICAgIG9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgLi4uZ2V0RnVuY3Rpb25Bc3NvY2lhdGlvbnNQcm9wKHNldEh0dHBTZWN1cml0eUhlYWRlcnMsIGNmRnVuY3Rpb24pLFxuICB9O1xuICBpZiAocmVzcG9uc2VIZWFkZXJzUG9saWN5KSB7XG4gICAgZGVmYXVsdEJlaGF2aW9yID0gey4uLmRlZmF1bHRCZWhhdmlvciwgcmVzcG9uc2VIZWFkZXJzUG9saWN5IH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBkZWZhdWx0QmVoYXZpb3IsXG4gICAgZW5hYmxlTG9nZ2luZzogdHJ1ZSxcbiAgICBsb2dCdWNrZXQ6IGxvZ2dpbmdCdWNrZXRcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RnVuY3Rpb25Bc3NvY2lhdGlvbnNQcm9wKHNldEh0dHBTZWN1cml0eUhlYWRlcnM6IGJvb2xlYW4sIGNmRnVuY3Rpb246IGNsb3VkZnJvbnQuSUZ1bmN0aW9uIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiAoc2V0SHR0cFNlY3VyaXR5SGVhZGVycyAmJiBjZkZ1bmN0aW9uKSA/IHtcbiAgICBmdW5jdGlvbkFzc29jaWF0aW9uczogW1xuICAgICAge1xuICAgICAgICBldmVudFR5cGU6IEZ1bmN0aW9uRXZlbnRUeXBlLlZJRVdFUl9SRVNQT05TRSxcbiAgICAgICAgZnVuY3Rpb246IGNmRnVuY3Rpb25cbiAgICAgIH1cbiAgICBdXG4gIH0gOiB7fTtcbn1cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1kaXN0cmlidXRpb24tZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZGZyb250LWRpc3RyaWJ1dGlvbi1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBbUJILGdIQXlCQztBQUtELGdHQXVCQztBQUtELDBHQWdDQztBQXJHRCx5REFBeUQ7QUFDekQsK0RBQXdFO0FBQ3hFLDhEQUE4RDtBQUc5RCxtQ0FBbUM7QUFHbkM7O0dBRUc7QUFDSCxTQUFnQixrREFBa0QsQ0FBQyxXQUE0QixFQUM3RixhQUFvQyxFQUNwQyxzQkFBK0IsRUFDL0IsVUFBaUMsRUFDakMscUJBQXdEO0lBR3hELE1BQU0sNkJBQTZCLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RixNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsNkJBQTZCLENBQUMsQ0FBQyxDQUFDO0lBRWpHLElBQUksZUFBZSxHQUFvQjtRQUNyQyxNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFO1lBQ3BELFVBQVUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFO1NBQ3hELENBQUM7UUFDRixHQUFHLDJCQUEyQixDQUFDLHNCQUFzQixFQUFFLFVBQVUsQ0FBQztRQUNsRSxvQkFBb0IsRUFBRSxVQUFVLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCO0tBQ3hFLENBQUM7SUFDRixJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDMUIsZUFBZSxHQUFHLEVBQUMsR0FBRyxlQUFlLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBQ0QsT0FBTztRQUNMLGVBQWU7UUFDZixhQUFhLEVBQUUsSUFBSTtRQUNuQixTQUFTLEVBQUUsYUFBYTtLQUN6QixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsMENBQTBDLENBQ3hELE1BQWUsRUFDZixhQUFvQyxFQUNwQyxzQkFBK0IsRUFDL0IsVUFBaUMsRUFDakMscUJBQXdEO0lBR3hELElBQUksZUFBZSxHQUFvQjtRQUNyQyxNQUFNO1FBQ04sb0JBQW9CLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQjtRQUN2RSxHQUFHLDJCQUEyQixDQUFDLHNCQUFzQixFQUFFLFVBQVUsQ0FBQztLQUNuRSxDQUFDO0lBRUYsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQzFCLGVBQWUsR0FBRyxFQUFDLEdBQUcsZUFBZSxFQUFFLHFCQUFxQixFQUFFLENBQUM7SUFDakUsQ0FBQztJQUNELE9BQU87UUFDTCxlQUFlO1FBQ2YsYUFBYSxFQUFFLElBQUk7UUFDbkIsU0FBUyxFQUFFLGFBQWE7UUFDeEIsaUJBQWlCLEVBQUUsWUFBWTtLQUNoQyxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsK0NBQStDLENBQUMsbUJBQTRDLEVBQzFHLGFBQW9DLEVBQ3BDLG1CQUFtRCxFQUNuRCxzQkFBK0IsRUFDL0IsYUFBc0MsRUFDdEMsVUFBaUMsRUFDakMscUJBQXdEO0lBR3hELE1BQU0scUNBQXFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3RILE1BQU0sNkJBQTZCLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDLENBQUM7SUFFakgsTUFBTSxVQUFVLEdBQXVCLGFBQWEsQ0FBQyxDQUFDO1FBQ3BELElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUV4RCxJQUFJLGVBQWUsR0FBb0I7UUFDckMsTUFBTSxFQUFFLFVBQVU7UUFDbEIsb0JBQW9CLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQjtRQUN2RSxjQUFjLEVBQUUsVUFBVSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0I7UUFDaEUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsc0JBQXNCO1FBQzlELG1CQUFtQjtRQUNuQixHQUFHLDJCQUEyQixDQUFDLHNCQUFzQixFQUFFLFVBQVUsQ0FBQztLQUNuRSxDQUFDO0lBQ0YsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQzFCLGVBQWUsR0FBRyxFQUFDLEdBQUcsZUFBZSxFQUFFLHFCQUFxQixFQUFFLENBQUM7SUFDakUsQ0FBQztJQUNELE9BQU87UUFDTCxlQUFlO1FBQ2YsYUFBYSxFQUFFLElBQUk7UUFDbkIsU0FBUyxFQUFFLGFBQWE7S0FDekIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLDJCQUEyQixDQUFDLHNCQUErQixFQUFFLFVBQTRDO0lBQ2hILE9BQU8sQ0FBQyxzQkFBc0IsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsb0JBQW9CLEVBQUU7WUFDcEI7Z0JBQ0UsU0FBUyxFQUFFLGtDQUFpQixDQUFDLGVBQWU7Z0JBQzVDLFFBQVEsRUFBRSxVQUFVO2FBQ3JCO1NBQ0Y7S0FDRixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBhcGkgZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXknO1xuaW1wb3J0ICogYXMgY2xvdWRmcm9udCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgeyBGdW5jdGlvbkV2ZW50VHlwZSwgSU9yaWdpbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCAqIGFzIG9yaWdpbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2lucyc7XG5pbXBvcnQgKiBhcyBtZWRpYXN0b3JlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYXN0b3JlJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtCZWhhdmlvck9wdGlvbnN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC9saWIvZGlzdHJpYnV0aW9uXCI7XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uRm9yQXBpR2F0ZXdheVByb3BzKGFwaUVuZFBvaW50OiBhcGkuUmVzdEFwaUJhc2UsXG4gIGxvZ2dpbmdCdWNrZXQ6IHMzLkJ1Y2tldCB8IHVuZGVmaW5lZCxcbiAgc2V0SHR0cFNlY3VyaXR5SGVhZGVyczogYm9vbGVhbixcbiAgY2ZGdW5jdGlvbj86IGNsb3VkZnJvbnQuSUZ1bmN0aW9uLFxuICByZXNwb25zZUhlYWRlcnNQb2xpY3k/OiBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbik6IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMge1xuXG4gIGNvbnN0IGFwaUVuZFBvaW50VXJsV2l0aG91dFByb3RvY29sID0gY2RrLkZuLnNlbGVjdCgxLCBjZGsuRm4uc3BsaXQoXCI6Ly9cIiwgYXBpRW5kUG9pbnQudXJsKSk7XG4gIGNvbnN0IGFwaUVuZFBvaW50RG9tYWluTmFtZSA9IGNkay5Gbi5zZWxlY3QoMCwgY2RrLkZuLnNwbGl0KFwiL1wiLCBhcGlFbmRQb2ludFVybFdpdGhvdXRQcm90b2NvbCkpO1xuXG4gIGxldCBkZWZhdWx0QmVoYXZpb3I6IEJlaGF2aW9yT3B0aW9ucyA9IHtcbiAgICBvcmlnaW46IG5ldyBvcmlnaW5zLkh0dHBPcmlnaW4oYXBpRW5kUG9pbnREb21haW5OYW1lLCB7XG4gICAgICBvcmlnaW5QYXRoOiBgLyR7YXBpRW5kUG9pbnQuZGVwbG95bWVudFN0YWdlLnN0YWdlTmFtZX1gXG4gICAgfSksXG4gICAgLi4uZ2V0RnVuY3Rpb25Bc3NvY2lhdGlvbnNQcm9wKHNldEh0dHBTZWN1cml0eUhlYWRlcnMsIGNmRnVuY3Rpb24pLFxuICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBjbG91ZGZyb250LlZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTLFxuICB9O1xuICBpZiAocmVzcG9uc2VIZWFkZXJzUG9saWN5KSB7XG4gICAgZGVmYXVsdEJlaGF2aW9yID0gey4uLmRlZmF1bHRCZWhhdmlvciwgcmVzcG9uc2VIZWFkZXJzUG9saWN5IH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBkZWZhdWx0QmVoYXZpb3IsXG4gICAgZW5hYmxlTG9nZ2luZzogdHJ1ZSxcbiAgICBsb2dCdWNrZXQ6IGxvZ2dpbmdCdWNrZXQsXG4gIH07XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uRm9yUzNQcm9wcyhcbiAgb3JpZ2luOiBJT3JpZ2luLFxuICBsb2dnaW5nQnVja2V0OiBzMy5CdWNrZXQgfCB1bmRlZmluZWQsXG4gIHNldEh0dHBTZWN1cml0eUhlYWRlcnM6IGJvb2xlYW4sXG4gIGNmRnVuY3Rpb24/OiBjbG91ZGZyb250LklGdW5jdGlvbixcbiAgcmVzcG9uc2VIZWFkZXJzUG9saWN5PzogY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNQb2xpY3ksXG4pOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvblByb3BzIHtcblxuICBsZXQgZGVmYXVsdEJlaGF2aW9yOiBCZWhhdmlvck9wdGlvbnMgPSB7XG4gICAgb3JpZ2luLFxuICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBjbG91ZGZyb250LlZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTLFxuICAgIC4uLmdldEZ1bmN0aW9uQXNzb2NpYXRpb25zUHJvcChzZXRIdHRwU2VjdXJpdHlIZWFkZXJzLCBjZkZ1bmN0aW9uKVxuICB9O1xuXG4gIGlmIChyZXNwb25zZUhlYWRlcnNQb2xpY3kpIHtcbiAgICBkZWZhdWx0QmVoYXZpb3IgPSB7Li4uZGVmYXVsdEJlaGF2aW9yLCByZXNwb25zZUhlYWRlcnNQb2xpY3kgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGRlZmF1bHRCZWhhdmlvcixcbiAgICBlbmFibGVMb2dnaW5nOiB0cnVlLFxuICAgIGxvZ0J1Y2tldDogbG9nZ2luZ0J1Y2tldCxcbiAgICBkZWZhdWx0Um9vdE9iamVjdDogJ2luZGV4Lmh0bWwnXG4gIH07XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yTWVkaWFTdG9yZVByb3BzKG1lZGlhc3RvcmVDb250YWluZXI6IG1lZGlhc3RvcmUuQ2ZuQ29udGFpbmVyLFxuICBsb2dnaW5nQnVja2V0OiBzMy5CdWNrZXQgfCB1bmRlZmluZWQsXG4gIG9yaWdpblJlcXVlc3RQb2xpY3k6IGNsb3VkZnJvbnQuT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgc2V0SHR0cFNlY3VyaXR5SGVhZGVyczogYm9vbGVhbixcbiAgY3VzdG9tSGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gIGNmRnVuY3Rpb24/OiBjbG91ZGZyb250LklGdW5jdGlvbixcbiAgcmVzcG9uc2VIZWFkZXJzUG9saWN5PzogY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNQb2xpY3lcbik6IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMge1xuXG4gIGNvbnN0IG1lZGlhU3RvcmVDb250YWluZXJVcmxXaXRob3V0UHJvdG9jb2wgPSBjZGsuRm4uc2VsZWN0KDEsIGNkay5Gbi5zcGxpdCgnOi8vJywgbWVkaWFzdG9yZUNvbnRhaW5lci5hdHRyRW5kcG9pbnQpKTtcbiAgY29uc3QgbWVkaWFTdG9yZUNvbnRhaW5lckRvbWFpbk5hbWUgPSBjZGsuRm4uc2VsZWN0KDAsIGNkay5Gbi5zcGxpdCgnLycsIG1lZGlhU3RvcmVDb250YWluZXJVcmxXaXRob3V0UHJvdG9jb2wpKTtcblxuICBjb25zdCBodHRwT3JpZ2luOiBvcmlnaW5zLkh0dHBPcmlnaW4gPSBjdXN0b21IZWFkZXJzID9cbiAgICBuZXcgb3JpZ2lucy5IdHRwT3JpZ2luKG1lZGlhU3RvcmVDb250YWluZXJEb21haW5OYW1lLCB7IGN1c3RvbUhlYWRlcnMgfSkgOlxuICAgIG5ldyBvcmlnaW5zLkh0dHBPcmlnaW4obWVkaWFTdG9yZUNvbnRhaW5lckRvbWFpbk5hbWUpO1xuXG4gIGxldCBkZWZhdWx0QmVoYXZpb3I6IEJlaGF2aW9yT3B0aW9ucyA9IHtcbiAgICBvcmlnaW46IGh0dHBPcmlnaW4sXG4gICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IGNsb3VkZnJvbnQuVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgYWxsb3dlZE1ldGhvZHM6IGNsb3VkZnJvbnQuQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OUyxcbiAgICBjYWNoZWRNZXRob2RzOiBjbG91ZGZyb250LkNhY2hlZE1ldGhvZHMuQ0FDSEVfR0VUX0hFQURfT1BUSU9OUyxcbiAgICBvcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgIC4uLmdldEZ1bmN0aW9uQXNzb2NpYXRpb25zUHJvcChzZXRIdHRwU2VjdXJpdHlIZWFkZXJzLCBjZkZ1bmN0aW9uKSxcbiAgfTtcbiAgaWYgKHJlc3BvbnNlSGVhZGVyc1BvbGljeSkge1xuICAgIGRlZmF1bHRCZWhhdmlvciA9IHsuLi5kZWZhdWx0QmVoYXZpb3IsIHJlc3BvbnNlSGVhZGVyc1BvbGljeSB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgZGVmYXVsdEJlaGF2aW9yLFxuICAgIGVuYWJsZUxvZ2dpbmc6IHRydWUsXG4gICAgbG9nQnVja2V0OiBsb2dnaW5nQnVja2V0XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldEZ1bmN0aW9uQXNzb2NpYXRpb25zUHJvcChzZXRIdHRwU2VjdXJpdHlIZWFkZXJzOiBib29sZWFuLCBjZkZ1bmN0aW9uOiBjbG91ZGZyb250LklGdW5jdGlvbiB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gKHNldEh0dHBTZWN1cml0eUhlYWRlcnMgJiYgY2ZGdW5jdGlvbikgPyB7XG4gICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgZXZlbnRUeXBlOiBGdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVTUE9OU0UsXG4gICAgICAgIGZ1bmN0aW9uOiBjZkZ1bmN0aW9uXG4gICAgICB9XG4gICAgXVxuICB9IDoge307XG59XG4iXX0=
@@ -23,7 +23,7 @@ export interface CloudFrontDistributionForApiGatewayResponse {
23
23
  /**
24
24
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
25
25
  */
26
- export declare function CloudFrontDistributionForApiGateway(scope: Construct, apiEndPoint: api.RestApi, cloudFrontDistributionProps?: cloudfront.DistributionProps | any, httpSecurityHeaders?: boolean, cloudFrontLoggingBucketProps?: s3.BucketProps, responseHeadersPolicyProps?: cloudfront.ResponseHeadersPolicyProps): CloudFrontDistributionForApiGatewayResponse;
26
+ export declare function CloudFrontDistributionForApiGateway(scope: Construct, apiEndPoint: api.RestApiBase, cloudFrontDistributionProps?: cloudfront.DistributionProps | any, httpSecurityHeaders?: boolean, cloudFrontLoggingBucketProps?: s3.BucketProps, responseHeadersPolicyProps?: cloudfront.ResponseHeadersPolicyProps): CloudFrontDistributionForApiGatewayResponse;
27
27
  export interface CreateCloudFrontDistributionForS3Props {
28
28
  readonly sourceBucket: s3.IBucket;
29
29
  readonly cloudFrontDistributionProps?: cloudfront.DistributionProps | any;
@@ -306,4 +306,4 @@ function CheckCloudfrontS3Props(props) {
306
306
  throw new Error(errorMessages);
307
307
  }
308
308
  }
309
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFvRUgsa0ZBeUJDO0FBdUJELDhFQWdFQztBQXdCRCxvRkFtRUM7QUFZRCxrRkEyREM7QUFLRCx3RUFJQztBQTRERCxvREFZQztBQVdELHdEQWdDQztBQWhkRDs7O0dBR0c7QUFFSCx5REFBeUQ7QUFDekQsOERBQThEO0FBQzlELHlDQUF5QztBQUN6QyxtQ0FBbUM7QUFHbkMseUZBSTRDO0FBQzVDLG1DQUF5RjtBQUN6Rix5REFBbUU7QUFDbkUsNkRBQXNEO0FBQ3RELG1EQUE4QztBQUk5QyxvR0FBb0c7QUFDcEcsU0FBUyxvQkFBb0IsQ0FBQyxjQUF1QztJQUNuRSxJQUFBLDJCQUFtQixFQUFDLGNBQWMsRUFBRTtRQUNsQztZQUNFLEVBQUUsRUFBRSxLQUFLO1lBQ1QsTUFBTSxFQUFFLHNLQUFzSztTQUMvSztLQUNGLENBQUMsQ0FBQztJQUVILE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFRCwyR0FBMkc7QUFDM0csc0NBQXNDO0FBQ3RDLFNBQVMseUJBQXlCLENBQUMsS0FBZ0I7SUFDakQscUVBQXFFO0lBQ3JFLHNFQUFzRTtJQUN0RSxnREFBZ0Q7SUFDaEQsa0RBQWtEO0lBQ2xELE1BQU0sVUFBVSxHQUFHLHlCQUF5QixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRTlELE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSx3QkFBd0IsRUFBRTtRQUM5RCxZQUFZLEVBQUUsVUFBVTtRQUN4QixJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsNEJBQTRCO1lBQ25FLGlDQUFpQztZQUNqQyxrQ0FBa0M7WUFDbEMsbUdBQW1HO1lBQ25H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QUN6RyxhQUFhLElBQUksdUhBQXVILENBQUM7UUFDekksVUFBVSxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgb3JpZ2lucyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgYXBpIGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5JztcbmltcG9ydCAqIGFzIG1lZGlhc3RvcmUgZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGVmYXVsdENsb3VkRnJvbnRXZWJEaXN0cmlidXRpb25Gb3JTM1Byb3BzLFxuICBEZWZhdWx0Q2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbkZvckFwaUdhdGV3YXlQcm9wcyxcbiAgRGVmYXVsdENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JNZWRpYVN0b3JlUHJvcHNcbn0gZnJvbSAnLi9jbG91ZGZyb250LWRpc3RyaWJ1dGlvbi1kZWZhdWx0cyc7XG5pbXBvcnQgeyBhZGRDZm5TdXBwcmVzc1J1bGVzLCBjb25zb2xpZGF0ZVByb3BzLCBnZW5lcmF0ZVBoeXNpY2FsT2FjTmFtZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgY3JlYXRlQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXQgfSBmcm9tICcuL3MzLWJ1Y2tldC1oZWxwZXInO1xuaW1wb3J0IHsgRGVmYXVsdFMzUHJvcHMgfSBmcm9tICcuL3MzLWJ1Y2tldC1kZWZhdWx0cyc7XG5pbXBvcnQgeyBTM09hY09yaWdpbiB9IGZyb20gJy4vczMtb2FjLW9yaWdpbic7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLy8gT3ZlcnJpZGUgQ2ZuX05hZyBydWxlOiBDbG91ZGZyb250IFRMUy0xLjIgcnVsZSAoaHR0cHM6Ly9naXRodWIuY29tL3N0ZWxsaWdlbnQvY2ZuX25hZy9pc3N1ZXMvMzg0KVxuZnVuY3Rpb24gdXBkYXRlU2VjdXJpdHlQb2xpY3koY2ZEaXN0cmlidXRpb246IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKSB7XG4gIGFkZENmblN1cHByZXNzUnVsZXMoY2ZEaXN0cmlidXRpb24sIFtcbiAgICB7XG4gICAgICBpZDogJ1c3MCcsXG4gICAgICByZWFzb246IGBTaW5jZSB0aGUgZGlzdHJpYnV0aW9uIHVzZXMgdGhlIENsb3VkRnJvbnQgZG9tYWluIG5hbWUsIENsb3VkRnJvbnQgYXV0b21hdGljYWxseSBzZXRzIHRoZSBzZWN1cml0eSBwb2xpY3kgdG8gVExTdjEgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgTWluaW11bVByb3RvY29sVmVyc2lvbmBcbiAgICB9XG4gIF0pO1xuXG4gIHJldHVybiBjZkRpc3RyaWJ1dGlvbjtcbn1cblxuLy8gQ2xvdWRmcm9udCBmdW5jdGlvbiB0byBpbnNlcnQgdGhlIEhUVFAgU2VjdXJpdHkgSGVhZGVycyBpbnRvIHRoZSByZXNwb25zZSBjb21pbmcgZnJvbSB0aGUgb3JpZ2luIHNlcnZlcnNcbi8vIGFuZCBiZWZvcmUgaXQgaXMgc2VudCB0byB0aGUgY2xpZW50XG5mdW5jdGlvbiBkZWZhdWx0Q2xvdWRmcm9udEZ1bmN0aW9uKHNjb3BlOiBDb25zdHJ1Y3QpOiBjbG91ZGZyb250LkZ1bmN0aW9uIHtcbiAgLy8gZ2VuZXJhdGUgYSBzdGFibGUgdW5pcXVlIGlkIGZvciB0aGUgY2xvdWRmcm9udCBmdW5jdGlvbiBhbmQgdXNlIGl0XG4gIC8vIGJvdGggZm9yIHRoZSBmdW5jdGlvbiBuYW1lIGFuZCB0aGUgbG9naWNhbCBpZCBvZiB0aGUgZnVuY3Rpb24gc28gaWZcbiAgLy8gaXQgaXMgY2hhbmdlZCB0aGUgZnVuY3Rpb24gd2lsbCBiZSByZWNyZWF0ZWQuXG4gIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE1NTIzXG4gIGNvbnN0IGZ1bmN0aW9uSWQgPSBgU2V0SHR0cFNlY3VyaXR5SGVhZGVycyR7c2NvcGUubm9kZS5hZGRyfWA7XG5cbiAgcmV0dXJuIG5ldyBjbG91ZGZyb250LkZ1bmN0aW9uKHNjb3BlLCBcIlNldEh0dHBTZWN1cml0eUhlYWRlcnNcIiwge1xuICAgIGZ1bmN0aW9uTmFtZTogZnVuY3Rpb25JZCxcbiAgICBjb2RlOiBjbG91ZGZyb250LkZ1bmN0aW9uQ29kZS5mcm9tSW5saW5lKFwiZnVuY3Rpb24gaGFuZGxlcihldmVudCkgeyBcIiArXG4gICAgICBcInZhciByZXNwb25zZSA9IGV2ZW50LnJlc3BvbnNlOyBcIiArXG4gICAgICBcInZhciBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsgXCIgK1xuICAgICAgXCJoZWFkZXJzWydzdHJpY3QtdHJhbnNwb3J0LXNlY3VyaXR5J10gPSB7IHZhbHVlOiAnbWF4LWFnZT02MzA3MjAwMDsgaW5jbHVkZVN1YmRvbWFpbnM7IHByZWxvYWQnfTsgXCIgK1xuICAgICAgXCJoZWFkZXJzWydjb250ZW50LXNlY3VyaXR5LXBvbGljeSddID0geyB2YWx1ZTogXFxcImRlZmF1bHQtc3JjICdub25lJzsgaW1nLXNyYyAnc2VsZic7IHNjcmlwdC1zcmMgJ3NlbGYnOyBzdHlsZS1zcmMgJ3NlbGYnOyBvYmplY3Qtc3JjICdub25lJ1xcXCJ9OyBcIiArXG4gICAgICBcImhlYWRlcnNbJ3gtY29udGVudC10eXBlLW9wdGlvbnMnXSA9IHsgdmFsdWU6ICdub3NuaWZmJ307IGhlYWRlcnNbJ3gtZnJhbWUtb3B0aW9ucyddID0ge3ZhbHVlOiAnREVOWSd9OyBcIiArXG4gICAgICBcImhlYWRlcnNbJ3gteHNzLXByb3RlY3Rpb24nXSA9IHt2YWx1ZTogJzE7IG1vZGU9YmxvY2snfTsgXCIgK1xuICAgICAgXCJyZXR1cm4gcmVzcG9uc2U7IH1cIilcbiAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvckFwaUdhdGV3YXlSZXNwb25zZSB7XG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5EaXN0cmlidXRpb24sXG4gIHJlYWRvbmx5IGNsb3VkZnJvbnRGdW5jdGlvbj86IGNsb3VkZnJvbnQuRnVuY3Rpb24sXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXQ/OiBzMy5CdWNrZXRcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvckFwaUdhdGV3YXkoc2NvcGU6IENvbnN0cnVjdCxcbiAgYXBpRW5kUG9pbnQ6IGFwaS5SZXN0QXBpLFxuICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/OiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvblByb3BzIHwgYW55LFxuICBodHRwU2VjdXJpdHlIZWFkZXJzOiBib29sZWFuID0gdHJ1ZSxcbiAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz86IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHNcbik6IENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JBcGlHYXRld2F5UmVzcG9uc2Uge1xuXG4gIGNvbnN0IGNsb3VkZnJvbnRGdW5jdGlvbiA9IGdldENsb3VkZnJvbnRGdW5jdGlvbihodHRwU2VjdXJpdHlIZWFkZXJzLCBzY29wZSk7XG5cbiAgY29uc3QgZ2V0TG9nZ2luZ0J1Y2tldFJlc3BvbnNlID0gZ2V0TG9nZ2luZ0J1Y2tldChzY29wZSwgIHsgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcywgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzIH0pO1xuXG4gIGNvbnN0IGRlZmF1bHRwcm9wcyA9IERlZmF1bHRDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uRm9yQXBpR2F0ZXdheVByb3BzKGFwaUVuZFBvaW50LFxuICAgIGdldExvZ2dpbmdCdWNrZXRSZXNwb25zZS5sb2dCdWNrZXQsXG4gICAgaHR0cFNlY3VyaXR5SGVhZGVycyxcbiAgICBjbG91ZGZyb250RnVuY3Rpb24sXG4gICAgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMgPyBuZXcgY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNQb2xpY3koc2NvcGUsICdSZXNwb25zZUhlYWRlcnNQb2xpY3knLCByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcykgOiB1bmRlZmluZWRcbiAgKTtcblxuICBjb25zdCBjZnByb3BzID0gY29uc29saWRhdGVQcm9wcyhkZWZhdWx0cHJvcHMsIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcyk7XG4gIC8vIENyZWF0ZSB0aGUgQ2xvdWRmcm9udCBEaXN0cmlidXRpb25cbiAgY29uc3QgY2ZEaXN0cmlidXRpb24gPSBuZXcgY2xvdWRmcm9udC5EaXN0cmlidXRpb24oc2NvcGUsICdDbG91ZEZyb250RGlzdHJpYnV0aW9uJywgY2Zwcm9wcyk7XG4gIHVwZGF0ZVNlY3VyaXR5UG9saWN5KGNmRGlzdHJpYnV0aW9uKTtcblxuICByZXR1cm4geyBkaXN0cmlidXRpb246IGNmRGlzdHJpYnV0aW9uLCBjbG91ZGZyb250RnVuY3Rpb24sIGxvZ2dpbmdCdWNrZXQ6IGdldExvZ2dpbmdCdWNrZXRSZXNwb25zZS5sb2dCdWNrZXR9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTM1Byb3BzIHtcbiAgcmVhZG9ubHkgc291cmNlQnVja2V0OiBzMy5JQnVja2V0LFxuICByZWFkb25seSBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/OiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvblByb3BzIHwgYW55LFxuICByZWFkb25seSBodHRwU2VjdXJpdHlIZWFkZXJzPzogYm9vbGVhbixcbiAgcmVhZG9ubHkgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICByZWFkb25seSAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRTM0FjY2Vzc0xvZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMsXG4gIHJlYWRvbmx5IHJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzPzogY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wc1xuICByZWFkb25seSBsb2dDbG91ZEZyb250QWNjZXNzTG9nPzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTM1Jlc3BvbnNlIHtcbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbixcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldD86IHMzLkJ1Y2tldCxcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldFMzQWNjZXNzc0xvZ0J1Y2tldD86IHMzLkJ1Y2tldCxcbiAgcmVhZG9ubHkgY2xvdWRmcm9udEZ1bmN0aW9uPzogY2xvdWRmcm9udC5GdW5jdGlvbixcbiAgcmVhZG9ubHkgb3JpZ2luQWNjZXNzQ29udHJvbD86IGNsb3VkZnJvbnQuQ2ZuT3JpZ2luQWNjZXNzQ29udHJvbCxcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvclMzKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBpZDogc3RyaW5nLFxuICBwcm9wczogQ3JlYXRlQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvclMzUHJvcHNcbik6IENyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTM1Jlc3BvbnNlIHtcbiAgY29uc3QgaHR0cFNlY3VyaXR5SGVhZGVycyA9IHByb3BzLmh0dHBTZWN1cml0eUhlYWRlcnMgPz8gdHJ1ZTtcbiAgY29uc3QgY2xvdWRmcm9udEZ1bmN0aW9uID0gZ2V0Q2xvdWRmcm9udEZ1bmN0aW9uKGh0dHBTZWN1cml0eUhlYWRlcnMsIHNjb3BlKTtcblxuICBjb25zdCBnZXRMb2dnaW5nQnVja2V0UmVzcG9uc2UgPSBnZXRMb2dnaW5nQnVja2V0KHNjb3BlLCB7XG4gICAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzOiBwcm9wcy5jbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMsXG4gICAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wczogcHJvcHMuY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcyxcbiAgICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFMzQWNjZXNzTG9nQnVja2V0UHJvcHM6IHByb3BzLmNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UzNBY2Nlc3NMb2dCdWNrZXRQcm9wcyxcbiAgICBlbmFibGVTM0FjY2Vzc0xvZ3M6IHByb3BzLmxvZ0Nsb3VkRnJvbnRBY2Nlc3NMb2dcbiAgfSk7XG5cbiAgbGV0IG9yaWdpbkFjY2Vzc0NvbnRyb2w7XG4gIGxldCBvcmlnaW5Qcm9wcyA9IHt9O1xuXG4gIGlmICghcHJvcHMuc291cmNlQnVja2V0LmlzV2Vic2l0ZSkge1xuICAgIG9yaWdpbkFjY2Vzc0NvbnRyb2wgPSBuZXcgY2xvdWRmcm9udC5DZm5PcmlnaW5BY2Nlc3NDb250cm9sKHNjb3BlLCAnQ2xvdWRGcm9udE9hYycsIHtcbiAgICAgIG9yaWdpbkFjY2Vzc0NvbnRyb2xDb25maWc6IHtcbiAgICAgICAgbmFtZTogZ2VuZXJhdGVQaHlzaWNhbE9hY05hbWUoJ2F3cy1jbG91ZGZyb250LXMzLScsIFtpZF0pLFxuICAgICAgICBvcmlnaW5BY2Nlc3NDb250cm9sT3JpZ2luVHlwZTogJ3MzJyxcbiAgICAgICAgc2lnbmluZ0JlaGF2aW9yOiAnYWx3YXlzJyxcbiAgICAgICAgc2lnbmluZ1Byb3RvY29sOiAnc2lndjQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09yaWdpbiBhY2Nlc3MgY29udHJvbCBwcm92aXNpb25lZCBieSBhd3MtY2xvdWRmcm9udC1zMydcbiAgICAgIH1cbiAgICB9KTtcbiAgICBvcmlnaW5Qcm9wcyA9IHsgb3JpZ2luQWNjZXNzQ29udHJvbCB9O1xuICB9XG5cbiAgY29uc3Qgb3JpZ2luID0gbmV3IFMzT2FjT3JpZ2luKHByb3BzLnNvdXJjZUJ1Y2tldCwgb3JpZ2luUHJvcHMpO1xuXG4gIGNvbnN0IGRlZmF1bHRwcm9wcyA9IERlZmF1bHRDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uRm9yUzNQcm9wcyhvcmlnaW4sXG4gICAgZ2V0TG9nZ2luZ0J1Y2tldFJlc3BvbnNlLmxvZ0J1Y2tldCxcbiAgICBodHRwU2VjdXJpdHlIZWFkZXJzLFxuICAgIGNsb3VkZnJvbnRGdW5jdGlvbixcbiAgICBwcm9wcy5yZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcyA/XG4gICAgICBuZXcgY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNQb2xpY3koc2NvcGUsICdSZXNwb25zZUhlYWRlcnNQb2xpY3knLCBwcm9wcy5yZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcykgOlxuICAgICAgdW5kZWZpbmVkXG4gICk7XG5cbiAgY29uc3QgY2Zwcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdHByb3BzLCBwcm9wcy5jbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMpO1xuICAvLyBDcmVhdGUgdGhlIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uXG4gIGNvbnN0IGNmRGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHNjb3BlLCAnQ2xvdWRGcm9udERpc3RyaWJ1dGlvbicsIGNmcHJvcHMpO1xuICB1cGRhdGVTZWN1cml0eVBvbGljeShjZkRpc3RyaWJ1dGlvbik7XG5cbiAgLy8gRXh0cmFjdCB0aGUgQ2ZuQnVja2V0UG9saWN5IGZyb20gdGhlIHNvdXJjZUJ1Y2tldFxuICBjb25zdCBidWNrZXRQb2xpY3kgPSBwcm9wcy5zb3VyY2VCdWNrZXQucG9saWN5IGFzIHMzLkJ1Y2tldFBvbGljeTtcbiAgLy8gdGhlIGxhY2sgb2YgYSBidWNrZXRQb2xpY3kgbWVhbnMgdGhlIGJ1Y2tldCB3YXMgaW1wb3J0ZWQgZnJvbSBvdXRzaWRlIHRoZSBzdGFjayBzbyB0aGUgbGFjayBvZiBjZm5fbmFnIHN1cHByZXNzaW9uIGlzIG5vdCBhbiBpc3N1ZVxuICBpZiAoYnVja2V0UG9saWN5KSB7XG4gICAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhidWNrZXRQb2xpY3ksIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdGMTYnLFxuICAgICAgICByZWFzb246IGBQdWJsaWMgd2Vic2l0ZSBidWNrZXQgcG9saWN5IHJlcXVpcmVzIGEgd2lsZGNhcmQgcHJpbmNpcGFsYFxuICAgICAgfVxuICAgIF0pO1xuICB9XG4gIHJldHVybiB7XG4gICAgZGlzdHJpYnV0aW9uOiBjZkRpc3RyaWJ1dGlvbixcbiAgICBjbG91ZGZyb250RnVuY3Rpb24sXG4gICAgbG9nZ2luZ0J1Y2tldDogZ2V0TG9nZ2luZ0J1Y2tldFJlc3BvbnNlLmxvZ0J1Y2tldCxcbiAgICBsb2dnaW5nQnVja2V0UzNBY2Nlc3NzTG9nQnVja2V0OiBnZXRMb2dnaW5nQnVja2V0UmVzcG9uc2UubG9nQnVja2V0QWNjZXNzTG9nQnVja2V0LFxuICAgIG9yaWdpbkFjY2Vzc0NvbnRyb2x9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNsb3VkRnJvbnRPYWlEaXN0cmlidXRpb25Gb3JTM1Byb3BzIHtcbiAgcmVhZG9ubHkgb3JpZ2luUGF0aD86ICBzdHJpbmcsXG4gIHJlYWRvbmx5IHNvdXJjZUJ1Y2tldDogczMuSUJ1Y2tldCxcbiAgcmVhZG9ubHkgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzPzogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcyB8IGFueSxcbiAgcmVhZG9ubHkgaHR0cFNlY3VyaXR5SGVhZGVycz86IGJvb2xlYW4sXG4gIHJlYWRvbmx5IGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVhZG9ubHkgIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UzNBY2Nlc3NMb2dCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICByZWFkb25seSByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz86IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHNcbiAgcmVhZG9ubHkgbG9nQ2xvdWRGcm9udEFjY2Vzc0xvZz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDbG91ZEZyb250T2FpRGlzdHJpYnV0aW9uRm9yUzNSZXNwb25zZSB7XG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5EaXN0cmlidXRpb24sXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXQ/OiBzMy5CdWNrZXQsXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXRTM0FjY2Vzc3NMb2dCdWNrZXQ/OiBzMy5CdWNrZXQsXG4gIHJlYWRvbmx5IGNsb3VkZnJvbnRGdW5jdGlvbj86IGNsb3VkZnJvbnQuRnVuY3Rpb24sXG4gIHJlYWRvbmx5IG9yaWdpbkFjY2Vzc0lkZW50aXR5OiBjbG91ZGZyb250Lk9yaWdpbkFjY2Vzc0lkZW50aXR5XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNsb3VkRnJvbnRPYWlEaXN0cmlidXRpb25Gb3JTMyhcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgcHJvcHM6IENyZWF0ZUNsb3VkRnJvbnRPYWlEaXN0cmlidXRpb25Gb3JTM1Byb3BzXG4pOiBDcmVhdGVDbG91ZEZyb250T2FpRGlzdHJpYnV0aW9uRm9yUzNSZXNwb25zZSB7XG5cbiAgY29uc3QgaHR0cFNlY3VyaXR5SGVhZGVycyA9IHByb3BzLmh0dHBTZWN1cml0eUhlYWRlcnMgPz8gdHJ1ZTtcbiAgY29uc3QgY2xvdWRmcm9udEZ1bmN0aW9uID0gZ2V0Q2xvdWRmcm9udEZ1bmN0aW9uKGh0dHBTZWN1cml0eUhlYWRlcnMsIHNjb3BlKTtcblxuICBpZiAocHJvcHMuc291cmNlQnVja2V0LmlzV2Vic2l0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgYXdzLWNsb3VkZnJvbnQtb2FpLXMzIGhhcyBiZWVuIHByb3ZpZGVkIGEgc291cmNlIGJ1Y2tldCB3aXRoIHdlYnNpdGUgaG9zdGluZyBlbmFibGVkLCB3aGljaCB0aGlzIGNvbnN0cnVjdFxuICAgICAgICBkb2VzIG5vdCBzdXBwb3J0LiBUaGlzIHJlcXVpcmVzIGJvdGggdGhlIGJ1Y2tldCBhbmQgaXRzIG9iamVjdHMgdG8gYmUgcHVibGljLiBBV1Mgc3Ryb25nbHkgcmVjb21tZW5kcyBhZ2FpbnN0IGNvbmZpZ3VyaW5nXG4gICAgICAgIGJ1Y2tldHMgYW5kIG9iamVjdHMgZm9yIHB1YmxpYyBhY2Nlc3MuIEFzIHN1Y2ggYSBjb25maWd1cmF0aW9uIHVzZXMgbmVpdGhlciBPQUMgbm9yIE9BSSwgaXQgY2FuIGJlIGxhdW5jaGVkIHdpdGggdGhlXG4gICAgICAgIGF3cy1jbG91ZGZyb24tczMgY29uc3RydWN0IGluIGFueSByZWdpb24uYCk7XG4gICB9XG5cbiAgY29uc3QgZ2V0TG9nZ2luZ0J1Y2tldFJlc3BvbnNlID0gZ2V0TG9nZ2luZ0J1Y2tldChzY29wZSwge1xuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczogcHJvcHMuY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLFxuICAgIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM6IHByb3BzLmNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMsXG4gICAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRTM0FjY2Vzc0xvZ0J1Y2tldFByb3BzOiBwcm9wcy5jbG91ZEZyb250TG9nZ2luZ0J1Y2tldFMzQWNjZXNzTG9nQnVja2V0UHJvcHMsXG4gICAgZW5hYmxlUzNBY2Nlc3NMb2dzOiBwcm9wcy5sb2dDbG91ZEZyb250QWNjZXNzTG9nXG4gIH0pO1xuXG4gIGxldCBvcmlnaW46IGNsb3VkZnJvbnQuSU9yaWdpbjtcbiAgY29uc3QgY29uc3RydWN0T2FpID0gbmV3IGNsb3VkZnJvbnQuT3JpZ2luQWNjZXNzSWRlbnRpdHkoc2NvcGUsICdjb25zdHJ1Y3RzR2VuZXJhdGVkT2FpJywge30pO1xuXG4gIGlmIChwcm9wcy5vcmlnaW5QYXRoKSB7XG4gICAgb3JpZ2luID0gb3JpZ2lucy5TM0J1Y2tldE9yaWdpbi53aXRoT3JpZ2luQWNjZXNzSWRlbnRpdHkocHJvcHMuc291cmNlQnVja2V0LCB7XG4gICAgICBvcmlnaW5QYXRoOiBwcm9wcy5vcmlnaW5QYXRoLFxuICAgICAgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IGNvbnN0cnVjdE9haVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIG9yaWdpbiA9IG9yaWdpbnMuUzNCdWNrZXRPcmlnaW4ud2l0aE9yaWdpbkFjY2Vzc0lkZW50aXR5KHByb3BzLnNvdXJjZUJ1Y2tldCwgeyBvcmlnaW5BY2Nlc3NJZGVudGl0eTogY29uc3RydWN0T2FpIH0pO1xuICB9XG5cbiAgY29uc3QgZGVmYXVsdHByb3BzID0gRGVmYXVsdENsb3VkRnJvbnRXZWJEaXN0cmlidXRpb25Gb3JTM1Byb3BzKFxuICAgIG9yaWdpbixcbiAgICBnZXRMb2dnaW5nQnVja2V0UmVzcG9uc2UubG9nQnVja2V0LFxuICAgIGh0dHBTZWN1cml0eUhlYWRlcnMsXG4gICAgY2xvdWRmcm9udEZ1bmN0aW9uLFxuICAgIHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzID9cbiAgICAgIG5ldyBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeShzY29wZSwgJ1Jlc3BvbnNlSGVhZGVyc1BvbGljeScsIHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzKSA6XG4gICAgICB1bmRlZmluZWRcbiAgKTtcblxuICBjb25zdCBjZnByb3BzID0gY29uc29saWRhdGVQcm9wcyhkZWZhdWx0cHJvcHMsIHByb3BzLmNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcyk7XG4gIC8vIENyZWF0ZSB0aGUgQ2xvdWRmcm9udCBEaXN0cmlidXRpb25cbiAgY29uc3QgY2ZEaXN0cmlidXRpb24gPSBuZXcgY2xvdWRmcm9udC5EaXN0cmlidXRpb24oc2NvcGUsICdDbG91ZEZyb250RGlzdHJpYnV0aW9uJywgY2Zwcm9wcyk7XG4gIHVwZGF0ZVNlY3VyaXR5UG9saWN5KGNmRGlzdHJpYnV0aW9uKTtcblxuICAvLyBFeHRyYWN0IHRoZSBDZm5CdWNrZXRQb2xpY3kgZnJvbSB0aGUgc291cmNlQnVja2V0XG4gIGNvbnN0IGJ1Y2tldFBvbGljeSA9IHByb3BzLnNvdXJjZUJ1Y2tldC5wb2xpY3kgYXMgczMuQnVja2V0UG9saWN5O1xuICAvLyB0aGUgbGFjayBvZiBhIGJ1Y2tldFBvbGljeSBtZWFucyB0aGUgYnVja2V0IHdhcyBpbXBvcnRlZCBmcm9tIG91dHNpZGUgdGhlIHN0YWNrIHNvIHRoZSBsYWNrIG9mIGNmbl9uYWcgc3VwcHJlc3Npb24gaXMgbm90IGFuIGlzc3VlXG4gIGlmIChidWNrZXRQb2xpY3kpIHtcbiAgICBhZGRDZm5TdXBwcmVzc1J1bGVzKGJ1Y2tldFBvbGljeSwgW1xuICAgICAge1xuICAgICAgICBpZDogJ0YxNicsXG4gICAgICAgIHJlYXNvbjogYFB1YmxpYyB3ZWJzaXRlIGJ1Y2tldCBwb2xpY3kgcmVxdWlyZXMgYSB3aWxkY2FyZCBwcmluY2lwYWxgXG4gICAgICB9XG4gICAgXSk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBkaXN0cmlidXRpb246IGNmRGlzdHJpYnV0aW9uLFxuICAgIGNsb3VkZnJvbnRGdW5jdGlvbixcbiAgICBsb2dnaW5nQnVja2V0OiBnZXRMb2dnaW5nQnVja2V0UmVzcG9uc2UubG9nQnVja2V0LFxuICAgIGxvZ2dpbmdCdWNrZXRTM0FjY2Vzc3NMb2dCdWNrZXQ6IGdldExvZ2dpbmdCdWNrZXRSZXNwb25zZS5sb2dCdWNrZXRBY2Nlc3NMb2dCdWNrZXQsXG4gICAgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IGNvbnN0cnVjdE9haVxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JNZWRpYVN0b3JlUmVzcG9uc2Uge1xuICByZWFkb25seSBkaXN0cmlidXRpb246IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uLFxuICByZWFkb25seSBsb2dnaW5nQnVja2V0PzogczMuQnVja2V0LFxuICByZWFkb25seSByZXF1ZXN0UG9saWN5OiBjbG91ZGZyb250Lk9yaWdpblJlcXVlc3RQb2xpY3ksXG4gIHJlYWRvbmx5IGNsb3VkZnJvbnRGdW5jdGlvbj86IGNsb3VkZnJvbnQuRnVuY3Rpb25cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvck1lZGlhU3RvcmUoc2NvcGU6IENvbnN0cnVjdCxcbiAgbWVkaWFTdG9yZUNvbnRhaW5lcjogbWVkaWFzdG9yZS5DZm5Db250YWluZXIsXG4gIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz86IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMgfCBhbnksXG4gIGh0dHBTZWN1cml0eUhlYWRlcnM6IGJvb2xlYW4gPSB0cnVlLFxuICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMsXG4gIHJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzPzogY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wc1xuKTogQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvck1lZGlhU3RvcmVSZXNwb25zZSB7XG5cbiAgbGV0IG9yaWdpblJlcXVlc3RQb2xpY3k6IGNsb3VkZnJvbnQuT3JpZ2luUmVxdWVzdFBvbGljeTtcblxuICBjb25zdCBnZXRMb2dnaW5nQnVja2V0UmVzcG9uc2UgPSBnZXRMb2dnaW5nQnVja2V0KHNjb3BlLCB7IGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcywgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcyB9KTtcblxuICBpZiAoY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzXG4gICAgJiYgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLmRlZmF1bHRCZWhhdmlvclxuICAgICYmIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcy5kZWZhdWx0QmVoYXZpb3Iub3JpZ2luUmVxdWVzdFBvbGljeSkge1xuICAgIG9yaWdpblJlcXVlc3RQb2xpY3kgPSBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMuZGVmYXVsdEJlaGF2aW9yLm9yaWdpblJlcXVlc3RQb2xpY3k7XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgb3JpZ2luUmVxdWVzdFBvbGljeVByb3BzOiBjbG91ZGZyb250Lk9yaWdpblJlcXVlc3RQb2xpY3lQcm9wcyA9IHtcbiAgICAgIGhlYWRlckJlaGF2aW9yOiB7XG4gICAgICAgIGJlaGF2aW9yOiAnd2hpdGVsaXN0JyxcbiAgICAgICAgaGVhZGVyczogW1xuICAgICAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLFxuICAgICAgICAgICdBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1ldGhvZCcsXG4gICAgICAgICAgJ0FjY2Vzcy1Db250cm9sLVJlcXVlc3QtSGVhZGVyJyxcbiAgICAgICAgICAnT3JpZ2luJ1xuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgcXVlcnlTdHJpbmdCZWhhdmlvcjoge1xuICAgICAgICBiZWhhdmlvcjogJ2FsbCdcbiAgICAgIH0sXG4gICAgICBjb29raWVCZWhhdmlvcjoge1xuICAgICAgICBiZWhhdmlvcjogJ25vbmUnXG4gICAgICB9LFxuICAgICAgY29tbWVudDogJ1BvbGljeSBmb3IgQ29uc3RydWN0cyBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yTWVkaWFTdG9yZScsXG4gICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5TmFtZTogYCR7Y2RrLkF3cy5TVEFDS19OQU1FfS0ke2Nkay5Bd3MuUkVHSU9OfS1DbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yTWVkaWFTdG9yZWBcbiAgICB9O1xuXG4gICAgb3JpZ2luUmVxdWVzdFBvbGljeSA9IG5ldyBjbG91ZGZyb250Lk9yaWdpblJlcXVlc3RQb2xpY3koc2NvcGUsICdDbG91ZGZyb250T3JpZ2luUmVxdWVzdFBvbGljeScsIG9yaWdpblJlcXVlc3RQb2xpY3lQcm9wcyk7XG4gIH1cblxuICBjb25zdCBjbG91ZGZyb250RnVuY3Rpb24gPSBnZXRDbG91ZGZyb250RnVuY3Rpb24oaHR0cFNlY3VyaXR5SGVhZGVycywgc2NvcGUpO1xuXG4gIGNvbnN0IGRlZmF1bHRwcm9wcyA9IERlZmF1bHRDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yTWVkaWFTdG9yZVByb3BzKFxuICAgIG1lZGlhU3RvcmVDb250YWluZXIsXG4gICAgZ2V0TG9nZ2luZ0J1Y2tldFJlc3BvbnNlLmxvZ0J1Y2tldCxcbiAgICBvcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgIGh0dHBTZWN1cml0eUhlYWRlcnMsXG4gICAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzPy5jdXN0b21IZWFkZXJzLFxuICAgIGNsb3VkZnJvbnRGdW5jdGlvbixcbiAgICByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcyA/IG5ldyBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeShzY29wZSwgJ1Jlc3BvbnNlSGVhZGVyc1BvbGljeScsIHJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzKSA6IHVuZGVmaW5lZFxuICApO1xuXG4gIGNvbnN0IGNmcHJvcHM6IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRwcm9wcywgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzKTtcblxuICAvLyBDcmVhdGUgdGhlIENsb3VkRnJvbnQgRGlzdHJpYnV0aW9uXG4gIGNvbnN0IGNmRGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHNjb3BlLCAnQ2xvdWRGcm9udERpc3RyaWJ1dGlvbicsIGNmcHJvcHMpO1xuICB1cGRhdGVTZWN1cml0eVBvbGljeShjZkRpc3RyaWJ1dGlvbik7XG5cbiAgcmV0dXJuIHsgZGlzdHJpYnV0aW9uOiBjZkRpc3RyaWJ1dGlvbiwgbG9nZ2luZ0J1Y2tldDogZ2V0TG9nZ2luZ0J1Y2tldFJlc3BvbnNlLmxvZ0J1Y2tldCwgcmVxdWVzdFBvbGljeTogb3JpZ2luUmVxdWVzdFBvbGljeSwgY2xvdWRmcm9udEZ1bmN0aW9uIH07XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eShzY29wZTogQ29uc3RydWN0LCBjb21tZW50Pzogc3RyaW5nKSB7XG4gIHJldHVybiBuZXcgY2xvdWRmcm9udC5PcmlnaW5BY2Nlc3NJZGVudGl0eShzY29wZSwgJ0Nsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsIHtcbiAgICBjb21tZW50OiBjb21tZW50ID8gY29tbWVudCA6IGBhY2Nlc3MtaWRlbnRpdHktJHtjZGsuQXdzLlJFR0lPTn0tJHtjZGsuQXdzLlNUQUNLX05BTUV9YFxuICB9KTtcbn1cblxuaW50ZXJmYWNlIEdldExvZ2dpbmdCdWNrZXRSZXF1ZXN0IHtcbiAgcmVhZG9ubHkgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvblByb3BzIHwgYW55LFxuICByZWFkb25seSBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMsXG4gIHJlYWRvbmx5IGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UzNBY2Nlc3NMb2dCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICByZWFkb25seSBlbmFibGVTM0FjY2Vzc0xvZ3M/OiBib29sZWFuXG59XG5pbnRlcmZhY2UgR2V0TG9nZ2luZ0J1Y2tldFJlc3BvbnNlIHtcbiAgbG9nQnVja2V0PzogczMuQnVja2V0LFxuICBsb2dCdWNrZXRBY2Nlc3NMb2dCdWNrZXQ/OiBzMy5CdWNrZXRcbn1cblxuZnVuY3Rpb24gZ2V0TG9nZ2luZ0J1Y2tldChzY29wZTogQ29uc3RydWN0LCBwcm9wczogR2V0TG9nZ2luZ0J1Y2tldFJlcXVlc3QpOiBHZXRMb2dnaW5nQnVja2V0UmVzcG9uc2Uge1xuICBjb25zdCBpc0xvZ2dpbmdEaXNhYmxlZCA9IHByb3BzLmNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz8uZW5hYmxlTG9nZ2luZyA9PT0gZmFsc2U7XG4gIGNvbnN0IHVzZXJTdXBwbGllZExvZ0J1Y2tldCA9IHByb3BzLmNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz8ubG9nQnVja2V0O1xuXG4gIGlmICh1c2VyU3VwcGxpZWRMb2dCdWNrZXQgJiYgcHJvcHMuY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcykge1xuICAgIHRocm93IEVycm9yKCdFaXRoZXIgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLmxvZ0J1Y2tldCBvciBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzIGNhbiBiZSBzZXQuJyk7XG4gIH1cblxuICBsZXQgbG9nQnVja2V0OiBzMy5CdWNrZXQgfCB1bmRlZmluZWQ7XG4gIGxldCBsb2dCdWNrZVMzQWNjZXNzTG9nQnVja2V0dDogczMuQnVja2V0IHwgdW5kZWZpbmVkO1xuICBpZiAoaXNMb2dnaW5nRGlzYWJsZWQpIHtcbiAgICBsb2dCdWNrZXQgPSB1bmRlZmluZWQ7XG4gIH0gZWxzZSBpZiAodXNlclN1cHBsaWVkTG9nQnVja2V0KSB7XG4gICAgbG9nQnVja2V0ID0gdXNlclN1cHBsaWVkTG9nQnVja2V0O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGNyZWF0ZUJ1Y2tldFJlc3BvbnNlID0gY3JlYXRlQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXQoXG4gICAgICBzY29wZSxcbiAgICAgICdDbG91ZGZyb250TG9nZ2luZ0J1Y2tldCcsXG4gICAgICB7XG4gICAgICAgIC8vIEJ1Y2tldHMgdXNlZCBmb3IgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gbG9nZ2luZyByZXF1aXJlIEFDTHMgdG8gYmUgZXhwbGljaXRseSBlbmFibGVkLCBzbyB3ZSBhcHBseSB0aGlzIG9iamVjdE93bmVyc2hpcFxuICAgICAgICBsb2dnaW5nQnVja2V0UHJvcHM6IGNvbnNvbGlkYXRlUHJvcHMoRGVmYXVsdFMzUHJvcHMoKSwgcHJvcHMuY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcywge1xuICAgICAgICAgIG9iamVjdE93bmVyc2hpcDogczMuT2JqZWN0T3duZXJzaGlwLk9CSkVDVF9XUklURVJcbiAgICAgICAgfSksXG4gICAgICAgIHMzQWNjZXNzTG9nQnVja2V0UHJvcHM6IHByb3BzLmNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UzNBY2Nlc3NMb2dCdWNrZXRQcm9wcyxcbiAgICAgICAgZW5hYmxlUzNBY2Nlc3NMb2dzOiBwcm9wcy5lbmFibGVTM0FjY2Vzc0xvZ3NcbiAgICAgIH0pO1xuXG4gICAgbG9nQnVja2V0ID0gY3JlYXRlQnVja2V0UmVzcG9uc2UubG9nQnVja2V0O1xuICAgIGxvZ0J1Y2tlUzNBY2Nlc3NMb2dCdWNrZXR0ID0gY3JlYXRlQnVja2V0UmVzcG9uc2UuczNBY2Nlc3NMb2dCdWNrZXQ7XG4gICAgY29uc3QgbG9nZ2luZ0J1Y2tldFJlc291cmNlID0gbG9nQnVja2V0Lm5vZGUuZmluZENoaWxkKCdSZXNvdXJjZScpIGFzIHMzLkNmbkJ1Y2tldDtcbiAgICBsb2dnaW5nQnVja2V0UmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgnQWNjZXNzQ29udHJvbCcsICdMb2dEZWxpdmVyeVdyaXRlJyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBsb2dCdWNrZXQsXG4gICAgbG9nQnVja2V0QWNjZXNzTG9nQnVja2V0OiBsb2dCdWNrZVMzQWNjZXNzTG9nQnVja2V0dFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDbG91ZGZyb250RnVuY3Rpb24oaHR0cFNlY3VyaXR5SGVhZGVyczogYm9vbGVhbiwgc2NvcGU6IENvbnN0cnVjdCkge1xuICByZXR1cm4gaHR0cFNlY3VyaXR5SGVhZGVycyA/IGRlZmF1bHRDbG91ZGZyb250RnVuY3Rpb24oc2NvcGUpIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkRnJvbnRQcm9wcyB7XG4gIHJlYWRvbmx5IGluc2VydEh0dHBTZWN1cml0eUhlYWRlcnM/OiBib29sZWFuO1xuICByZWFkb25seSByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz86IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGVja0Nsb3VkRnJvbnRQcm9wcyhwcm9wc09iamVjdDogQ2xvdWRGcm9udFByb3BzIHwgYW55KSB7XG4gIGxldCBlcnJvck1lc3NhZ2VzID0gJyc7XG4gIGxldCBlcnJvckZvdW5kID0gZmFsc2U7XG5cbiAgaWYgKHByb3BzT2JqZWN0Lmluc2VydEh0dHBTZWN1cml0eUhlYWRlcnMgIT09IGZhbHNlICYmIHByb3BzT2JqZWN0LnJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzPy5zZWN1cml0eUhlYWRlcnNCZWhhdmlvcikge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ3Jlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzLnNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yIGNhbiBvbmx5IGJlIHBhc3NlZCBpZiBodHRwU2VjdXJpdHlIZWFkZXJzIGlzIHNldCB0byBgZmFsc2VgLic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoZXJyb3JGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkZnJvbnRTM1Byb3BzIHtcbiAgcmVhZG9ubHkgYnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVhZG9ubHkgbG9nUzNBY2Nlc3NMb2dzPzogYm9vbGVhbixcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMsXG4gIHJlYWRvbmx5IGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVhZG9ubHkgbG9nQ2xvdWRGcm9udEFjY2Vzc0xvZz86IGJvb2xlYW4sXG4gIHJlYWRvbmx5IGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0QWNjZXNzTG9nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENoZWNrQ2xvdWRmcm9udFMzUHJvcHMocHJvcHM6IENsb3VkZnJvbnRTM1Byb3BzKSB7XG4gIGxldCBlcnJvck1lc3NhZ2VzID0gJyc7XG4gIGxldCBlcnJvckZvdW5kID0gZmFsc2U7XG5cbiAgaWYgKChwcm9wcy5sb2dTM0FjY2Vzc0xvZ3MgPT09IGZhbHNlKSAmJiBwcm9wcy5idWNrZXRQcm9wcz8uc2VydmVyQWNjZXNzTG9nc0J1Y2tldCkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gbG9nUzNBY2Nlc3NMb2dzIGlzIGZhbHNlLCBidXQgYSBsb2cgYnVja2V0IHdhcyBwcm92aWRlZCBpbiBidWNrZXRQcm9wcy5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzLmxvZ2dpbmdCdWNrZXRQcm9wcyAmJiBwcm9wcy5idWNrZXRQcm9wcz8uc2VydmVyQWNjZXNzTG9nc0J1Y2tldCkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gYm90aGxvZyBidWNrZXQgcHJvcHMgYW5kIGFuIGV4aXN0aW5nIGxvZyBidWNrZXQgd2VyZSBwcm92aWRlZC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzLmNsb3VkRnJvbnRMb2dnaW5nQnVja2V0QWNjZXNzTG9nQnVja2V0UHJvcHMgJiYgcHJvcHMuY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcz8uc2VydmVyQWNjZXNzTG9nc0J1Y2tldCkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gYW4gZXhpc3RpbmcgQ2xvdWRGcm9udCBsb2cgYnVja2V0IFMzIGFjY2VzcyBsb2cgYnVja2V0IGFuZCBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldEFjY2Vzc0xvZ0J1Y2tldFByb3BzIHdlcmUgcHJvdmlkZWRcXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzLmNsb3VkRnJvbnRMb2dnaW5nQnVja2V0QWNjZXNzTG9nQnVja2V0UHJvcHMgJiYgcHJvcHMubG9nQ2xvdWRGcm9udEFjY2Vzc0xvZyA9PT0gZmFsc2UpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0QWNjZXNzTG9nQnVja2V0UHJvcHMgd2VyZSBwcm92aWRlZCBidXQgbG9nQ2xvdWRGcm9udEFjY2Vzc0xvZyB3YXMgZmFsc2VcXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzLmNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM/LnNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQgJiYgcHJvcHMubG9nQ2xvdWRGcm9udEFjY2Vzc0xvZyA9PT0gZmFsc2UpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIHByb3BzLmNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMuc2VydmVyQWNjZXNzTG9nc0J1Y2tldCB3YXMgcHJvdmlkZWQgYnV0IGxvZ0Nsb3VkRnJvbnRBY2Nlc3NMb2cgd2FzIGZhbHNlXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChlcnJvckZvdW5kKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZXMpO1xuICB9XG59XG4iXX0=
309
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFvRUgsa0ZBeUJDO0FBdUJELDhFQWdFQztBQXdCRCxvRkFtRUM7QUFZRCxrRkEyREM7QUFLRCx3RUFJQztBQTRERCxvREFZQztBQVdELHdEQWdDQztBQWhkRDs7O0dBR0c7QUFFSCx5REFBeUQ7QUFDekQsOERBQThEO0FBQzlELHlDQUF5QztBQUN6QyxtQ0FBbUM7QUFHbkMseUZBSTRDO0FBQzVDLG1DQUF5RjtBQUN6Rix5REFBbUU7QUFDbkUsNkRBQXNEO0FBQ3RELG1EQUE4QztBQUk5QyxvR0FBb0c7QUFDcEcsU0FBUyxvQkFBb0IsQ0FBQyxjQUF1QztJQUNuRSxJQUFBLDJCQUFtQixFQUFDLGNBQWMsRUFBRTtRQUNsQztZQUNFLEVBQUUsRUFBRSxLQUFLO1lBQ1QsTUFBTSxFQUFFLHNLQUFzSztTQUMvSztLQUNGLENBQUMsQ0FBQztJQUVILE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFRCwyR0FBMkc7QUFDM0csc0NBQXNDO0FBQ3RDLFNBQVMseUJBQXlCLENBQUMsS0FBZ0I7SUFDakQscUVBQXFFO0lBQ3JFLHNFQUFzRTtJQUN0RSxnREFBZ0Q7SUFDaEQsa0RBQWtEO0lBQ2xELE1BQU0sVUFBVSxHQUFHLHlCQUF5QixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRTlELE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSx3QkFBd0IsRUFBRTtRQUM5RCxZQUFZLEVBQUUsVUFBVTtRQUN4QixJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsNEJBQTRCO1lBQ25FLGlDQUFpQztZQUNqQyxrQ0FBa0M7WUFDbEMsbUdBQW1HO1lBQ25H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QUN6RyxhQUFhLElBQUksdUhBQXVILENBQUM7UUFDekksVUFBVSxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgb3JpZ2lucyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgYXBpIGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5JztcbmltcG9ydCAqIGFzIG1lZGlhc3RvcmUgZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGVmYXVsdENsb3VkRnJvbnRXZWJEaXN0cmlidXRpb25Gb3JTM1Byb3BzLFxuICBEZWZhdWx0Q2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbkZvckFwaUdhdGV3YXlQcm9wcyxcbiAgRGVmYXVsdENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JNZWRpYVN0b3JlUHJvcHNcbn0gZnJvbSAnLi9jbG91ZGZyb250LWRpc3RyaWJ1dGlvbi1kZWZhdWx0cyc7XG5pbXBvcnQgeyBhZGRDZm5TdXBwcmVzc1J1bGVzLCBjb25zb2xpZGF0ZVByb3BzLCBnZW5lcmF0ZVBoeXNpY2FsT2FjTmFtZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgY3JlYXRlQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXQgfSBmcm9tICcuL3MzLWJ1Y2tldC1oZWxwZXInO1xuaW1wb3J0IHsgRGVmYXVsdFMzUHJvcHMgfSBmcm9tICcuL3MzLWJ1Y2tldC1kZWZhdWx0cyc7XG5pbXBvcnQgeyBTM09hY09yaWdpbiB9IGZyb20gJy4vczMtb2FjLW9yaWdpbic7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLy8gT3ZlcnJpZGUgQ2ZuX05hZyBydWxlOiBDbG91ZGZyb250IFRMUy0xLjIgcnVsZSAoaHR0cHM6Ly9naXRodWIuY29tL3N0ZWxsaWdlbnQvY2ZuX25hZy9pc3N1ZXMvMzg0KVxuZnVuY3Rpb24gdXBkYXRlU2VjdXJpdHlQb2xpY3koY2ZEaXN0cmlidXRpb246IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKSB7XG4gIGFkZENmblN1cHByZXNzUnVsZXMoY2ZEaXN0cmlidXRpb24sIFtcbiAgICB7XG4gICAgICBpZDogJ1c3MCcsXG4gICAgICByZWFzb246IGBTaW5jZSB0aGUgZGlzdHJpYnV0aW9uIHVzZXMgdGhlIENsb3VkRnJvbnQgZG9tYWluIG5hbWUsIENsb3VkRnJvbnQgYXV0b21hdGljYWxseSBzZXRzIHRoZSBzZWN1cml0eSBwb2xpY3kgdG8gVExTdjEgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgTWluaW11bVByb3RvY29sVmVyc2lvbmBcbiAgICB9XG4gIF0pO1xuXG4gIHJldHVybiBjZkRpc3RyaWJ1dGlvbjtcbn1cblxuLy8gQ2xvdWRmcm9udCBmdW5jdGlvbiB0byBpbnNlcnQgdGhlIEhUVFAgU2VjdXJpdHkgSGVhZGVycyBpbnRvIHRoZSByZXNwb25zZSBjb21pbmcgZnJvbSB0aGUgb3JpZ2luIHNlcnZlcnNcbi8vIGFuZCBiZWZvcmUgaXQgaXMgc2VudCB0byB0aGUgY2xpZW50XG5mdW5jdGlvbiBkZWZhdWx0Q2xvdWRmcm9udEZ1bmN0aW9uKHNjb3BlOiBDb25zdHJ1Y3QpOiBjbG91ZGZyb250LkZ1bmN0aW9uIHtcbiAgLy8gZ2VuZXJhdGUgYSBzdGFibGUgdW5pcXVlIGlkIGZvciB0aGUgY2xvdWRmcm9udCBmdW5jdGlvbiBhbmQgdXNlIGl0XG4gIC8vIGJvdGggZm9yIHRoZSBmdW5jdGlvbiBuYW1lIGFuZCB0aGUgbG9naWNhbCBpZCBvZiB0aGUgZnVuY3Rpb24gc28gaWZcbiAgLy8gaXQgaXMgY2hhbmdlZCB0aGUgZnVuY3Rpb24gd2lsbCBiZSByZWNyZWF0ZWQuXG4gIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE1NTIzXG4gIGNvbnN0IGZ1bmN0aW9uSWQgPSBgU2V0SHR0cFNlY3VyaXR5SGVhZGVycyR7c2NvcGUubm9kZS5hZGRyfWA7XG5cbiAgcmV0dXJuIG5ldyBjbG91ZGZyb250LkZ1bmN0aW9uKHNjb3BlLCBcIlNldEh0dHBTZWN1cml0eUhlYWRlcnNcIiwge1xuICAgIGZ1bmN0aW9uTmFtZTogZnVuY3Rpb25JZCxcbiAgICBjb2RlOiBjbG91ZGZyb250LkZ1bmN0aW9uQ29kZS5mcm9tSW5saW5lKFwiZnVuY3Rpb24gaGFuZGxlcihldmVudCkgeyBcIiArXG4gICAgICBcInZhciByZXNwb25zZSA9IGV2ZW50LnJlc3BvbnNlOyBcIiArXG4gICAgICBcInZhciBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsgXCIgK1xuICAgICAgXCJoZWFkZXJzWydzdHJpY3QtdHJhbnNwb3J0LXNlY3VyaXR5J10gPSB7IHZhbHVlOiAnbWF4LWFnZT02MzA3MjAwMDsgaW5jbHVkZVN1YmRvbWFpbnM7IHByZWxvYWQnfTsgXCIgK1xuICAgICAgXCJoZWFkZXJzWydjb250ZW50LXNlY3VyaXR5LXBvbGljeSddID0geyB2YWx1ZTogXFxcImRlZmF1bHQtc3JjICdub25lJzsgaW1nLXNyYyAnc2VsZic7IHNjcmlwdC1zcmMgJ3NlbGYnOyBzdHlsZS1zcmMgJ3NlbGYnOyBvYmplY3Qtc3JjICdub25lJ1xcXCJ9OyBcIiArXG4gICAgICBcImhlYWRlcnNbJ3gtY29udGVudC10eXBlLW9wdGlvbnMnXSA9IHsgdmFsdWU6ICdub3NuaWZmJ307IGhlYWRlcnNbJ3gtZnJhbWUtb3B0aW9ucyddID0ge3ZhbHVlOiAnREVOWSd9OyBcIiArXG4gICAgICBcImhlYWRlcnNbJ3gteHNzLXByb3RlY3Rpb24nXSA9IHt2YWx1ZTogJzE7IG1vZGU9YmxvY2snfTsgXCIgK1xuICAgICAgXCJyZXR1cm4gcmVzcG9uc2U7IH1cIilcbiAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvckFwaUdhdGV3YXlSZXNwb25zZSB7XG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5EaXN0cmlidXRpb24sXG4gIHJlYWRvbmx5IGNsb3VkZnJvbnRGdW5jdGlvbj86IGNsb3VkZnJvbnQuRnVuY3Rpb24sXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXQ/OiBzMy5CdWNrZXRcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvckFwaUdhdGV3YXkoc2NvcGU6IENvbnN0cnVjdCxcbiAgYXBpRW5kUG9pbnQ6IGFwaS5SZXN0QXBpQmFzZSxcbiAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzPzogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcyB8IGFueSxcbiAgaHR0cFNlY3VyaXR5SGVhZGVyczogYm9vbGVhbiA9IHRydWUsXG4gIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM/OiBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzXG4pOiBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yQXBpR2F0ZXdheVJlc3BvbnNlIHtcblxuICBjb25zdCBjbG91ZGZyb250RnVuY3Rpb24gPSBnZXRDbG91ZGZyb250RnVuY3Rpb24oaHR0cFNlY3VyaXR5SGVhZGVycywgc2NvcGUpO1xuXG4gIGNvbnN0IGdldExvZ2dpbmdCdWNrZXRSZXNwb25zZSA9IGdldExvZ2dpbmdCdWNrZXQoc2NvcGUsICB7IGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMsIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcyB9KTtcblxuICBjb25zdCBkZWZhdWx0cHJvcHMgPSBEZWZhdWx0Q2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbkZvckFwaUdhdGV3YXlQcm9wcyhhcGlFbmRQb2ludCxcbiAgICBnZXRMb2dnaW5nQnVja2V0UmVzcG9uc2UubG9nQnVja2V0LFxuICAgIGh0dHBTZWN1cml0eUhlYWRlcnMsXG4gICAgY2xvdWRmcm9udEZ1bmN0aW9uLFxuICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzID8gbmV3IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5KHNjb3BlLCAnUmVzcG9uc2VIZWFkZXJzUG9saWN5JywgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMpIDogdW5kZWZpbmVkXG4gICk7XG5cbiAgY29uc3QgY2Zwcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdHByb3BzLCBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMpO1xuICAvLyBDcmVhdGUgdGhlIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uXG4gIGNvbnN0IGNmRGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHNjb3BlLCAnQ2xvdWRGcm9udERpc3RyaWJ1dGlvbicsIGNmcHJvcHMpO1xuICB1cGRhdGVTZWN1cml0eVBvbGljeShjZkRpc3RyaWJ1dGlvbik7XG5cbiAgcmV0dXJuIHsgZGlzdHJpYnV0aW9uOiBjZkRpc3RyaWJ1dGlvbiwgY2xvdWRmcm9udEZ1bmN0aW9uLCBsb2dnaW5nQnVja2V0OiBnZXRMb2dnaW5nQnVja2V0UmVzcG9uc2UubG9nQnVja2V0fTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzNQcm9wcyB7XG4gIHJlYWRvbmx5IHNvdXJjZUJ1Y2tldDogczMuSUJ1Y2tldCxcbiAgcmVhZG9ubHkgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzPzogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcyB8IGFueSxcbiAgcmVhZG9ubHkgaHR0cFNlY3VyaXR5SGVhZGVycz86IGJvb2xlYW4sXG4gIHJlYWRvbmx5IGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVhZG9ubHkgIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UzNBY2Nlc3NMb2dCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICByZWFkb25seSByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz86IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHNcbiAgcmVhZG9ubHkgbG9nQ2xvdWRGcm9udEFjY2Vzc0xvZz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzNSZXNwb25zZSB7XG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5EaXN0cmlidXRpb24sXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXQ/OiBzMy5CdWNrZXQsXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXRTM0FjY2Vzc3NMb2dCdWNrZXQ/OiBzMy5CdWNrZXQsXG4gIHJlYWRvbmx5IGNsb3VkZnJvbnRGdW5jdGlvbj86IGNsb3VkZnJvbnQuRnVuY3Rpb24sXG4gIHJlYWRvbmx5IG9yaWdpbkFjY2Vzc0NvbnRyb2w/OiBjbG91ZGZyb250LkNmbk9yaWdpbkFjY2Vzc0NvbnRyb2wsXG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgaWQ6IHN0cmluZyxcbiAgcHJvcHM6IENyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTM1Byb3BzXG4pOiBDcmVhdGVDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzNSZXNwb25zZSB7XG4gIGNvbnN0IGh0dHBTZWN1cml0eUhlYWRlcnMgPSBwcm9wcy5odHRwU2VjdXJpdHlIZWFkZXJzID8/IHRydWU7XG4gIGNvbnN0IGNsb3VkZnJvbnRGdW5jdGlvbiA9IGdldENsb3VkZnJvbnRGdW5jdGlvbihodHRwU2VjdXJpdHlIZWFkZXJzLCBzY29wZSk7XG5cbiAgY29uc3QgZ2V0TG9nZ2luZ0J1Y2tldFJlc3BvbnNlID0gZ2V0TG9nZ2luZ0J1Y2tldChzY29wZSwge1xuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczogcHJvcHMuY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLFxuICAgIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM6IHByb3BzLmNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMsXG4gICAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRTM0FjY2Vzc0xvZ0J1Y2tldFByb3BzOiBwcm9wcy5jbG91ZEZyb250TG9nZ2luZ0J1Y2tldFMzQWNjZXNzTG9nQnVja2V0UHJvcHMsXG4gICAgZW5hYmxlUzNBY2Nlc3NMb2dzOiBwcm9wcy5sb2dDbG91ZEZyb250QWNjZXNzTG9nXG4gIH0pO1xuXG4gIGxldCBvcmlnaW5BY2Nlc3NDb250cm9sO1xuICBsZXQgb3JpZ2luUHJvcHMgPSB7fTtcblxuICBpZiAoIXByb3BzLnNvdXJjZUJ1Y2tldC5pc1dlYnNpdGUpIHtcbiAgICBvcmlnaW5BY2Nlc3NDb250cm9sID0gbmV3IGNsb3VkZnJvbnQuQ2ZuT3JpZ2luQWNjZXNzQ29udHJvbChzY29wZSwgJ0Nsb3VkRnJvbnRPYWMnLCB7XG4gICAgICBvcmlnaW5BY2Nlc3NDb250cm9sQ29uZmlnOiB7XG4gICAgICAgIG5hbWU6IGdlbmVyYXRlUGh5c2ljYWxPYWNOYW1lKCdhd3MtY2xvdWRmcm9udC1zMy0nLCBbaWRdKSxcbiAgICAgICAgb3JpZ2luQWNjZXNzQ29udHJvbE9yaWdpblR5cGU6ICdzMycsXG4gICAgICAgIHNpZ25pbmdCZWhhdmlvcjogJ2Fsd2F5cycsXG4gICAgICAgIHNpZ25pbmdQcm90b2NvbDogJ3NpZ3Y0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcmlnaW4gYWNjZXNzIGNvbnRyb2wgcHJvdmlzaW9uZWQgYnkgYXdzLWNsb3VkZnJvbnQtczMnXG4gICAgICB9XG4gICAgfSk7XG4gICAgb3JpZ2luUHJvcHMgPSB7IG9yaWdpbkFjY2Vzc0NvbnRyb2wgfTtcbiAgfVxuXG4gIGNvbnN0IG9yaWdpbiA9IG5ldyBTM09hY09yaWdpbihwcm9wcy5zb3VyY2VCdWNrZXQsIG9yaWdpblByb3BzKTtcblxuICBjb25zdCBkZWZhdWx0cHJvcHMgPSBEZWZhdWx0Q2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbkZvclMzUHJvcHMob3JpZ2luLFxuICAgIGdldExvZ2dpbmdCdWNrZXRSZXNwb25zZS5sb2dCdWNrZXQsXG4gICAgaHR0cFNlY3VyaXR5SGVhZGVycyxcbiAgICBjbG91ZGZyb250RnVuY3Rpb24sXG4gICAgcHJvcHMucmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMgP1xuICAgICAgbmV3IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5KHNjb3BlLCAnUmVzcG9uc2VIZWFkZXJzUG9saWN5JywgcHJvcHMucmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMpIDpcbiAgICAgIHVuZGVmaW5lZFxuICApO1xuXG4gIGNvbnN0IGNmcHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRwcm9wcywgcHJvcHMuY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzKTtcbiAgLy8gQ3JlYXRlIHRoZSBDbG91ZGZyb250IERpc3RyaWJ1dGlvblxuICBjb25zdCBjZkRpc3RyaWJ1dGlvbiA9IG5ldyBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbihzY29wZSwgJ0Nsb3VkRnJvbnREaXN0cmlidXRpb24nLCBjZnByb3BzKTtcbiAgdXBkYXRlU2VjdXJpdHlQb2xpY3koY2ZEaXN0cmlidXRpb24pO1xuXG4gIC8vIEV4dHJhY3QgdGhlIENmbkJ1Y2tldFBvbGljeSBmcm9tIHRoZSBzb3VyY2VCdWNrZXRcbiAgY29uc3QgYnVja2V0UG9saWN5ID0gcHJvcHMuc291cmNlQnVja2V0LnBvbGljeSBhcyBzMy5CdWNrZXRQb2xpY3k7XG4gIC8vIHRoZSBsYWNrIG9mIGEgYnVja2V0UG9saWN5IG1lYW5zIHRoZSBidWNrZXQgd2FzIGltcG9ydGVkIGZyb20gb3V0c2lkZSB0aGUgc3RhY2sgc28gdGhlIGxhY2sgb2YgY2ZuX25hZyBzdXBwcmVzc2lvbiBpcyBub3QgYW4gaXNzdWVcbiAgaWYgKGJ1Y2tldFBvbGljeSkge1xuICAgIGFkZENmblN1cHByZXNzUnVsZXMoYnVja2V0UG9saWN5LCBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnRjE2JyxcbiAgICAgICAgcmVhc29uOiBgUHVibGljIHdlYnNpdGUgYnVja2V0IHBvbGljeSByZXF1aXJlcyBhIHdpbGRjYXJkIHByaW5jaXBhbGBcbiAgICAgIH1cbiAgICBdKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGRpc3RyaWJ1dGlvbjogY2ZEaXN0cmlidXRpb24sXG4gICAgY2xvdWRmcm9udEZ1bmN0aW9uLFxuICAgIGxvZ2dpbmdCdWNrZXQ6IGdldExvZ2dpbmdCdWNrZXRSZXNwb25zZS5sb2dCdWNrZXQsXG4gICAgbG9nZ2luZ0J1Y2tldFMzQWNjZXNzc0xvZ0J1Y2tldDogZ2V0TG9nZ2luZ0J1Y2tldFJlc3BvbnNlLmxvZ0J1Y2tldEFjY2Vzc0xvZ0J1Y2tldCxcbiAgICBvcmlnaW5BY2Nlc3NDb250cm9sfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDbG91ZEZyb250T2FpRGlzdHJpYnV0aW9uRm9yUzNQcm9wcyB7XG4gIHJlYWRvbmx5IG9yaWdpblBhdGg/OiAgc3RyaW5nLFxuICByZWFkb25seSBzb3VyY2VCdWNrZXQ6IHMzLklCdWNrZXQsXG4gIHJlYWRvbmx5IGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz86IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMgfCBhbnksXG4gIHJlYWRvbmx5IGh0dHBTZWN1cml0eUhlYWRlcnM/OiBib29sZWFuLFxuICByZWFkb25seSBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMsXG4gIHJlYWRvbmx5ICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFMzQWNjZXNzTG9nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVhZG9ubHkgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM/OiBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzXG4gIHJlYWRvbmx5IGxvZ0Nsb3VkRnJvbnRBY2Nlc3NMb2c/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ2xvdWRGcm9udE9haURpc3RyaWJ1dGlvbkZvclMzUmVzcG9uc2Uge1xuICByZWFkb25seSBkaXN0cmlidXRpb246IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uLFxuICByZWFkb25seSBsb2dnaW5nQnVja2V0PzogczMuQnVja2V0LFxuICByZWFkb25seSBsb2dnaW5nQnVja2V0UzNBY2Nlc3NzTG9nQnVja2V0PzogczMuQnVja2V0LFxuICByZWFkb25seSBjbG91ZGZyb250RnVuY3Rpb24/OiBjbG91ZGZyb250LkZ1bmN0aW9uLFxuICByZWFkb25seSBvcmlnaW5BY2Nlc3NJZGVudGl0eTogY2xvdWRmcm9udC5PcmlnaW5BY2Nlc3NJZGVudGl0eVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDbG91ZEZyb250T2FpRGlzdHJpYnV0aW9uRm9yUzMoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIHByb3BzOiBDcmVhdGVDbG91ZEZyb250T2FpRGlzdHJpYnV0aW9uRm9yUzNQcm9wc1xuKTogQ3JlYXRlQ2xvdWRGcm9udE9haURpc3RyaWJ1dGlvbkZvclMzUmVzcG9uc2Uge1xuXG4gIGNvbnN0IGh0dHBTZWN1cml0eUhlYWRlcnMgPSBwcm9wcy5odHRwU2VjdXJpdHlIZWFkZXJzID8/IHRydWU7XG4gIGNvbnN0IGNsb3VkZnJvbnRGdW5jdGlvbiA9IGdldENsb3VkZnJvbnRGdW5jdGlvbihodHRwU2VjdXJpdHlIZWFkZXJzLCBzY29wZSk7XG5cbiAgaWYgKHByb3BzLnNvdXJjZUJ1Y2tldC5pc1dlYnNpdGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGF3cy1jbG91ZGZyb250LW9haS1zMyBoYXMgYmVlbiBwcm92aWRlZCBhIHNvdXJjZSBidWNrZXQgd2l0aCB3ZWJzaXRlIGhvc3RpbmcgZW5hYmxlZCwgd2hpY2ggdGhpcyBjb25zdHJ1Y3RcbiAgICAgICAgZG9lcyBub3Qgc3VwcG9ydC4gVGhpcyByZXF1aXJlcyBib3RoIHRoZSBidWNrZXQgYW5kIGl0cyBvYmplY3RzIHRvIGJlIHB1YmxpYy4gQVdTIHN0cm9uZ2x5IHJlY29tbWVuZHMgYWdhaW5zdCBjb25maWd1cmluZ1xuICAgICAgICBidWNrZXRzIGFuZCBvYmplY3RzIGZvciBwdWJsaWMgYWNjZXNzLiBBcyBzdWNoIGEgY29uZmlndXJhdGlvbiB1c2VzIG5laXRoZXIgT0FDIG5vciBPQUksIGl0IGNhbiBiZSBsYXVuY2hlZCB3aXRoIHRoZVxuICAgICAgICBhd3MtY2xvdWRmcm9uLXMzIGNvbnN0cnVjdCBpbiBhbnkgcmVnaW9uLmApO1xuICAgfVxuXG4gIGNvbnN0IGdldExvZ2dpbmdCdWNrZXRSZXNwb25zZSA9IGdldExvZ2dpbmdCdWNrZXQoc2NvcGUsIHtcbiAgICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM6IHByb3BzLmNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcyxcbiAgICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzOiBwcm9wcy5jbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzLFxuICAgIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UzNBY2Nlc3NMb2dCdWNrZXRQcm9wczogcHJvcHMuY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRTM0FjY2Vzc0xvZ0J1Y2tldFByb3BzLFxuICAgIGVuYWJsZVMzQWNjZXNzTG9nczogcHJvcHMubG9nQ2xvdWRGcm9udEFjY2Vzc0xvZ1xuICB9KTtcblxuICBsZXQgb3JpZ2luOiBjbG91ZGZyb250LklPcmlnaW47XG4gIGNvbnN0IGNvbnN0cnVjdE9haSA9IG5ldyBjbG91ZGZyb250Lk9yaWdpbkFjY2Vzc0lkZW50aXR5KHNjb3BlLCAnY29uc3RydWN0c0dlbmVyYXRlZE9haScsIHt9KTtcblxuICBpZiAocHJvcHMub3JpZ2luUGF0aCkge1xuICAgIG9yaWdpbiA9IG9yaWdpbnMuUzNCdWNrZXRPcmlnaW4ud2l0aE9yaWdpbkFjY2Vzc0lkZW50aXR5KHByb3BzLnNvdXJjZUJ1Y2tldCwge1xuICAgICAgb3JpZ2luUGF0aDogcHJvcHMub3JpZ2luUGF0aCxcbiAgICAgIG9yaWdpbkFjY2Vzc0lkZW50aXR5OiBjb25zdHJ1Y3RPYWlcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvcmlnaW4gPSBvcmlnaW5zLlMzQnVja2V0T3JpZ2luLndpdGhPcmlnaW5BY2Nlc3NJZGVudGl0eShwcm9wcy5zb3VyY2VCdWNrZXQsIHsgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IGNvbnN0cnVjdE9haSB9KTtcbiAgfVxuXG4gIGNvbnN0IGRlZmF1bHRwcm9wcyA9IERlZmF1bHRDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uRm9yUzNQcm9wcyhcbiAgICBvcmlnaW4sXG4gICAgZ2V0TG9nZ2luZ0J1Y2tldFJlc3BvbnNlLmxvZ0J1Y2tldCxcbiAgICBodHRwU2VjdXJpdHlIZWFkZXJzLFxuICAgIGNsb3VkZnJvbnRGdW5jdGlvbixcbiAgICBwcm9wcy5yZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcyA/XG4gICAgICBuZXcgY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNQb2xpY3koc2NvcGUsICdSZXNwb25zZUhlYWRlcnNQb2xpY3knLCBwcm9wcy5yZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcykgOlxuICAgICAgdW5kZWZpbmVkXG4gICk7XG5cbiAgY29uc3QgY2Zwcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdHByb3BzLCBwcm9wcy5jbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMpO1xuICAvLyBDcmVhdGUgdGhlIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uXG4gIGNvbnN0IGNmRGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHNjb3BlLCAnQ2xvdWRGcm9udERpc3RyaWJ1dGlvbicsIGNmcHJvcHMpO1xuICB1cGRhdGVTZWN1cml0eVBvbGljeShjZkRpc3RyaWJ1dGlvbik7XG5cbiAgLy8gRXh0cmFjdCB0aGUgQ2ZuQnVja2V0UG9saWN5IGZyb20gdGhlIHNvdXJjZUJ1Y2tldFxuICBjb25zdCBidWNrZXRQb2xpY3kgPSBwcm9wcy5zb3VyY2VCdWNrZXQucG9saWN5IGFzIHMzLkJ1Y2tldFBvbGljeTtcbiAgLy8gdGhlIGxhY2sgb2YgYSBidWNrZXRQb2xpY3kgbWVhbnMgdGhlIGJ1Y2tldCB3YXMgaW1wb3J0ZWQgZnJvbSBvdXRzaWRlIHRoZSBzdGFjayBzbyB0aGUgbGFjayBvZiBjZm5fbmFnIHN1cHByZXNzaW9uIGlzIG5vdCBhbiBpc3N1ZVxuICBpZiAoYnVja2V0UG9saWN5KSB7XG4gICAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhidWNrZXRQb2xpY3ksIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdGMTYnLFxuICAgICAgICByZWFzb246IGBQdWJsaWMgd2Vic2l0ZSBidWNrZXQgcG9saWN5IHJlcXVpcmVzIGEgd2lsZGNhcmQgcHJpbmNpcGFsYFxuICAgICAgfVxuICAgIF0pO1xuICB9XG4gIHJldHVybiB7XG4gICAgZGlzdHJpYnV0aW9uOiBjZkRpc3RyaWJ1dGlvbixcbiAgICBjbG91ZGZyb250RnVuY3Rpb24sXG4gICAgbG9nZ2luZ0J1Y2tldDogZ2V0TG9nZ2luZ0J1Y2tldFJlc3BvbnNlLmxvZ0J1Y2tldCxcbiAgICBsb2dnaW5nQnVja2V0UzNBY2Nlc3NzTG9nQnVja2V0OiBnZXRMb2dnaW5nQnVja2V0UmVzcG9uc2UubG9nQnVja2V0QWNjZXNzTG9nQnVja2V0LFxuICAgIG9yaWdpbkFjY2Vzc0lkZW50aXR5OiBjb25zdHJ1Y3RPYWlcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yTWVkaWFTdG9yZVJlc3BvbnNlIHtcbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbixcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldD86IHMzLkJ1Y2tldCxcbiAgcmVhZG9ubHkgcmVxdWVzdFBvbGljeTogY2xvdWRmcm9udC5PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICByZWFkb25seSBjbG91ZGZyb250RnVuY3Rpb24/OiBjbG91ZGZyb250LkZ1bmN0aW9uXG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JNZWRpYVN0b3JlKHNjb3BlOiBDb25zdHJ1Y3QsXG4gIG1lZGlhU3RvcmVDb250YWluZXI6IG1lZGlhc3RvcmUuQ2ZuQ29udGFpbmVyLFxuICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/OiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvblByb3BzIHwgYW55LFxuICBodHRwU2VjdXJpdHlIZWFkZXJzOiBib29sZWFuID0gdHJ1ZSxcbiAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz86IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHNcbik6IENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JNZWRpYVN0b3JlUmVzcG9uc2Uge1xuXG4gIGxldCBvcmlnaW5SZXF1ZXN0UG9saWN5OiBjbG91ZGZyb250Lk9yaWdpblJlcXVlc3RQb2xpY3k7XG5cbiAgY29uc3QgZ2V0TG9nZ2luZ0J1Y2tldFJlc3BvbnNlID0gZ2V0TG9nZ2luZ0J1Y2tldChzY29wZSwgeyBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMsIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMgfSk7XG5cbiAgaWYgKGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wc1xuICAgICYmIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcy5kZWZhdWx0QmVoYXZpb3JcbiAgICAmJiBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMuZGVmYXVsdEJlaGF2aW9yLm9yaWdpblJlcXVlc3RQb2xpY3kpIHtcbiAgICBvcmlnaW5SZXF1ZXN0UG9saWN5ID0gY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLmRlZmF1bHRCZWhhdmlvci5vcmlnaW5SZXF1ZXN0UG9saWN5O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG9yaWdpblJlcXVlc3RQb2xpY3lQcm9wczogY2xvdWRmcm9udC5PcmlnaW5SZXF1ZXN0UG9saWN5UHJvcHMgPSB7XG4gICAgICBoZWFkZXJCZWhhdmlvcjoge1xuICAgICAgICBiZWhhdmlvcjogJ3doaXRlbGlzdCcsXG4gICAgICAgIGhlYWRlcnM6IFtcbiAgICAgICAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJyxcbiAgICAgICAgICAnQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QnLFxuICAgICAgICAgICdBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcicsXG4gICAgICAgICAgJ09yaWdpbidcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHF1ZXJ5U3RyaW5nQmVoYXZpb3I6IHtcbiAgICAgICAgYmVoYXZpb3I6ICdhbGwnXG4gICAgICB9LFxuICAgICAgY29va2llQmVoYXZpb3I6IHtcbiAgICAgICAgYmVoYXZpb3I6ICdub25lJ1xuICAgICAgfSxcbiAgICAgIGNvbW1lbnQ6ICdQb2xpY3kgZm9yIENvbnN0cnVjdHMgQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvck1lZGlhU3RvcmUnLFxuICAgICAgb3JpZ2luUmVxdWVzdFBvbGljeU5hbWU6IGAke2Nkay5Bd3MuU1RBQ0tfTkFNRX0tJHtjZGsuQXdzLlJFR0lPTn0tQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvck1lZGlhU3RvcmVgXG4gICAgfTtcblxuICAgIG9yaWdpblJlcXVlc3RQb2xpY3kgPSBuZXcgY2xvdWRmcm9udC5PcmlnaW5SZXF1ZXN0UG9saWN5KHNjb3BlLCAnQ2xvdWRmcm9udE9yaWdpblJlcXVlc3RQb2xpY3knLCBvcmlnaW5SZXF1ZXN0UG9saWN5UHJvcHMpO1xuICB9XG5cbiAgY29uc3QgY2xvdWRmcm9udEZ1bmN0aW9uID0gZ2V0Q2xvdWRmcm9udEZ1bmN0aW9uKGh0dHBTZWN1cml0eUhlYWRlcnMsIHNjb3BlKTtcblxuICBjb25zdCBkZWZhdWx0cHJvcHMgPSBEZWZhdWx0Q2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvck1lZGlhU3RvcmVQcm9wcyhcbiAgICBtZWRpYVN0b3JlQ29udGFpbmVyLFxuICAgIGdldExvZ2dpbmdCdWNrZXRSZXNwb25zZS5sb2dCdWNrZXQsXG4gICAgb3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICBodHRwU2VjdXJpdHlIZWFkZXJzLFxuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz8uY3VzdG9tSGVhZGVycyxcbiAgICBjbG91ZGZyb250RnVuY3Rpb24sXG4gICAgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMgPyBuZXcgY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNQb2xpY3koc2NvcGUsICdSZXNwb25zZUhlYWRlcnNQb2xpY3knLCByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcykgOiB1bmRlZmluZWRcbiAgKTtcblxuICBjb25zdCBjZnByb3BzOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvblByb3BzID0gY29uc29saWRhdGVQcm9wcyhkZWZhdWx0cHJvcHMsIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcyk7XG5cbiAgLy8gQ3JlYXRlIHRoZSBDbG91ZEZyb250IERpc3RyaWJ1dGlvblxuICBjb25zdCBjZkRpc3RyaWJ1dGlvbiA9IG5ldyBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbihzY29wZSwgJ0Nsb3VkRnJvbnREaXN0cmlidXRpb24nLCBjZnByb3BzKTtcbiAgdXBkYXRlU2VjdXJpdHlQb2xpY3koY2ZEaXN0cmlidXRpb24pO1xuXG4gIHJldHVybiB7IGRpc3RyaWJ1dGlvbjogY2ZEaXN0cmlidXRpb24sIGxvZ2dpbmdCdWNrZXQ6IGdldExvZ2dpbmdCdWNrZXRSZXNwb25zZS5sb2dCdWNrZXQsIHJlcXVlc3RQb2xpY3k6IG9yaWdpblJlcXVlc3RQb2xpY3ksIGNsb3VkZnJvbnRGdW5jdGlvbiB9O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHkoc2NvcGU6IENvbnN0cnVjdCwgY29tbWVudD86IHN0cmluZykge1xuICByZXR1cm4gbmV3IGNsb3VkZnJvbnQuT3JpZ2luQWNjZXNzSWRlbnRpdHkoc2NvcGUsICdDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLCB7XG4gICAgY29tbWVudDogY29tbWVudCA/IGNvbW1lbnQgOiBgYWNjZXNzLWlkZW50aXR5LSR7Y2RrLkF3cy5SRUdJT059LSR7Y2RrLkF3cy5TVEFDS19OQU1FfWBcbiAgfSk7XG59XG5cbmludGVyZmFjZSBHZXRMb2dnaW5nQnVja2V0UmVxdWVzdCB7XG4gIHJlYWRvbmx5IGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcyB8IGFueSxcbiAgcmVhZG9ubHkgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICByZWFkb25seSBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFMzQWNjZXNzTG9nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVhZG9ubHkgZW5hYmxlUzNBY2Nlc3NMb2dzPzogYm9vbGVhblxufVxuaW50ZXJmYWNlIEdldExvZ2dpbmdCdWNrZXRSZXNwb25zZSB7XG4gIGxvZ0J1Y2tldD86IHMzLkJ1Y2tldCxcbiAgbG9nQnVja2V0QWNjZXNzTG9nQnVja2V0PzogczMuQnVja2V0XG59XG5cbmZ1bmN0aW9uIGdldExvZ2dpbmdCdWNrZXQoc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IEdldExvZ2dpbmdCdWNrZXRSZXF1ZXN0KTogR2V0TG9nZ2luZ0J1Y2tldFJlc3BvbnNlIHtcbiAgY29uc3QgaXNMb2dnaW5nRGlzYWJsZWQgPSBwcm9wcy5jbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/LmVuYWJsZUxvZ2dpbmcgPT09IGZhbHNlO1xuICBjb25zdCB1c2VyU3VwcGxpZWRMb2dCdWNrZXQgPSBwcm9wcy5jbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/LmxvZ0J1Y2tldDtcblxuICBpZiAodXNlclN1cHBsaWVkTG9nQnVja2V0ICYmIHByb3BzLmNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMpIHtcbiAgICB0aHJvdyBFcnJvcignRWl0aGVyIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcy5sb2dCdWNrZXQgb3IgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcyBjYW4gYmUgc2V0LicpO1xuICB9XG5cbiAgbGV0IGxvZ0J1Y2tldDogczMuQnVja2V0IHwgdW5kZWZpbmVkO1xuICBsZXQgbG9nQnVja2VTM0FjY2Vzc0xvZ0J1Y2tldHQ6IHMzLkJ1Y2tldCB8IHVuZGVmaW5lZDtcbiAgaWYgKGlzTG9nZ2luZ0Rpc2FibGVkKSB7XG4gICAgbG9nQnVja2V0ID0gdW5kZWZpbmVkO1xuICB9IGVsc2UgaWYgKHVzZXJTdXBwbGllZExvZ0J1Y2tldCkge1xuICAgIGxvZ0J1Y2tldCA9IHVzZXJTdXBwbGllZExvZ0J1Y2tldDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBjcmVhdGVCdWNrZXRSZXNwb25zZSA9IGNyZWF0ZUNsb3VkRnJvbnRMb2dnaW5nQnVja2V0KFxuICAgICAgc2NvcGUsXG4gICAgICAnQ2xvdWRmcm9udExvZ2dpbmdCdWNrZXQnLFxuICAgICAge1xuICAgICAgICAvLyBCdWNrZXRzIHVzZWQgZm9yIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIGxvZ2dpbmcgcmVxdWlyZSBBQ0xzIHRvIGJlIGV4cGxpY2l0bHkgZW5hYmxlZCwgc28gd2UgYXBwbHkgdGhpcyBvYmplY3RPd25lcnNoaXBcbiAgICAgICAgbG9nZ2luZ0J1Y2tldFByb3BzOiBjb25zb2xpZGF0ZVByb3BzKERlZmF1bHRTM1Byb3BzKCksIHByb3BzLmNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMsIHtcbiAgICAgICAgICBvYmplY3RPd25lcnNoaXA6IHMzLk9iamVjdE93bmVyc2hpcC5PQkpFQ1RfV1JJVEVSXG4gICAgICAgIH0pLFxuICAgICAgICBzM0FjY2Vzc0xvZ0J1Y2tldFByb3BzOiBwcm9wcy5jbG91ZEZyb250TG9nZ2luZ0J1Y2tldFMzQWNjZXNzTG9nQnVja2V0UHJvcHMsXG4gICAgICAgIGVuYWJsZVMzQWNjZXNzTG9nczogcHJvcHMuZW5hYmxlUzNBY2Nlc3NMb2dzXG4gICAgICB9KTtcblxuICAgIGxvZ0J1Y2tldCA9IGNyZWF0ZUJ1Y2tldFJlc3BvbnNlLmxvZ0J1Y2tldDtcbiAgICBsb2dCdWNrZVMzQWNjZXNzTG9nQnVja2V0dCA9IGNyZWF0ZUJ1Y2tldFJlc3BvbnNlLnMzQWNjZXNzTG9nQnVja2V0O1xuICAgIGNvbnN0IGxvZ2dpbmdCdWNrZXRSZXNvdXJjZSA9IGxvZ0J1Y2tldC5ub2RlLmZpbmRDaGlsZCgnUmVzb3VyY2UnKSBhcyBzMy5DZm5CdWNrZXQ7XG4gICAgbG9nZ2luZ0J1Y2tldFJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ0FjY2Vzc0NvbnRyb2wnLCAnTG9nRGVsaXZlcnlXcml0ZScpO1xuICB9XG4gIHJldHVybiB7XG4gICAgbG9nQnVja2V0LFxuICAgIGxvZ0J1Y2tldEFjY2Vzc0xvZ0J1Y2tldDogbG9nQnVja2VTM0FjY2Vzc0xvZ0J1Y2tldHRcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xvdWRmcm9udEZ1bmN0aW9uKGh0dHBTZWN1cml0eUhlYWRlcnM6IGJvb2xlYW4sIHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgcmV0dXJuIGh0dHBTZWN1cml0eUhlYWRlcnMgPyBkZWZhdWx0Q2xvdWRmcm9udEZ1bmN0aW9uKHNjb3BlKSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZyb250UHJvcHMge1xuICByZWFkb25seSBpbnNlcnRIdHRwU2VjdXJpdHlIZWFkZXJzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM/OiBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hlY2tDbG91ZEZyb250UHJvcHMocHJvcHNPYmplY3Q6IENsb3VkRnJvbnRQcm9wcyB8IGFueSkge1xuICBsZXQgZXJyb3JNZXNzYWdlcyA9ICcnO1xuICBsZXQgZXJyb3JGb3VuZCA9IGZhbHNlO1xuXG4gIGlmIChwcm9wc09iamVjdC5pbnNlcnRIdHRwU2VjdXJpdHlIZWFkZXJzICE9PSBmYWxzZSAmJiBwcm9wc09iamVjdC5yZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz8uc2VjdXJpdHlIZWFkZXJzQmVoYXZpb3IpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdyZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcy5zZWN1cml0eUhlYWRlcnNCZWhhdmlvciBjYW4gb25seSBiZSBwYXNzZWQgaWYgaHR0cFNlY3VyaXR5SGVhZGVycyBpcyBzZXQgdG8gYGZhbHNlYC4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGVycm9yRm91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlcyk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZGZyb250UzNQcm9wcyB7XG4gIHJlYWRvbmx5IGJ1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMsXG4gIHJlYWRvbmx5IGxvZ1MzQWNjZXNzTG9ncz86IGJvb2xlYW4sXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICByZWFkb25seSBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMsXG4gIHJlYWRvbmx5IGxvZ0Nsb3VkRnJvbnRBY2Nlc3NMb2c/OiBib29sZWFuLFxuICByZWFkb25seSBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldEFjY2Vzc0xvZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGVja0Nsb3VkZnJvbnRTM1Byb3BzKHByb3BzOiBDbG91ZGZyb250UzNQcm9wcykge1xuICBsZXQgZXJyb3JNZXNzYWdlcyA9ICcnO1xuICBsZXQgZXJyb3JGb3VuZCA9IGZhbHNlO1xuXG4gIGlmICgocHJvcHMubG9nUzNBY2Nlc3NMb2dzID09PSBmYWxzZSkgJiYgcHJvcHMuYnVja2V0UHJvcHM/LnNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIGxvZ1MzQWNjZXNzTG9ncyBpcyBmYWxzZSwgYnV0IGEgbG9nIGJ1Y2tldCB3YXMgcHJvdmlkZWQgaW4gYnVja2V0UHJvcHMuXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wcy5sb2dnaW5nQnVja2V0UHJvcHMgJiYgcHJvcHMuYnVja2V0UHJvcHM/LnNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIGJvdGhsb2cgYnVja2V0IHByb3BzIGFuZCBhbiBleGlzdGluZyBsb2cgYnVja2V0IHdlcmUgcHJvdmlkZWQuXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wcy5jbG91ZEZyb250TG9nZ2luZ0J1Y2tldEFjY2Vzc0xvZ0J1Y2tldFByb3BzICYmIHByb3BzLmNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM/LnNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIGFuIGV4aXN0aW5nIENsb3VkRnJvbnQgbG9nIGJ1Y2tldCBTMyBhY2Nlc3MgbG9nIGJ1Y2tldCBhbmQgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRBY2Nlc3NMb2dCdWNrZXRQcm9wcyB3ZXJlIHByb3ZpZGVkXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wcy5jbG91ZEZyb250TG9nZ2luZ0J1Y2tldEFjY2Vzc0xvZ0J1Y2tldFByb3BzICYmIHByb3BzLmxvZ0Nsb3VkRnJvbnRBY2Nlc3NMb2cgPT09IGZhbHNlKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldEFjY2Vzc0xvZ0J1Y2tldFByb3BzIHdlcmUgcHJvdmlkZWQgYnV0IGxvZ0Nsb3VkRnJvbnRBY2Nlc3NMb2cgd2FzIGZhbHNlXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wcy5jbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzPy5zZXJ2ZXJBY2Nlc3NMb2dzQnVja2V0ICYmIHByb3BzLmxvZ0Nsb3VkRnJvbnRBY2Nlc3NMb2cgPT09IGZhbHNlKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBwcm9wcy5jbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzLnNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQgd2FzIHByb3ZpZGVkIGJ1dCBsb2dDbG91ZEZyb250QWNjZXNzTG9nIHdhcyBmYWxzZVxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoZXJyb3JGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgfVxufVxuIl19
@@ -56,7 +56,9 @@ function buildKendraIndex(scope, id, props) {
56
56
  function AddMultipleKendraDataSources(scope, id, kendraIndex, clientDataSourceProps) {
57
57
  const returnDataSources = [];
58
58
  clientDataSourceProps.forEach((props, index) => {
59
- returnDataSources.push(AddKendraDataSource(scope, `${id}${index}`, kendraIndex, props));
59
+ const additionalDataSource = AddKendraDataSource(scope, `${id}${index}`, kendraIndex, props);
60
+ additionalDataSource.addDependency(kendraIndex);
61
+ returnDataSources.push(additionalDataSource);
60
62
  });
61
63
  return returnDataSources;
62
64
  }
@@ -214,4 +216,4 @@ function normalizeKendraPermissions(rawPermissions) {
214
216
  });
215
217
  return result;
216
218
  }
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VuZHJhLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImtlbmRyYS1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQTZCSCw0Q0F3QkM7QUFLRCxvRUFVQztBQUtELGtEQWVDO0FBaUpELGdFQVdDO0FBbFBEOzs7R0FHRztBQUVILGlEQUFpRDtBQUNqRCwyQ0FBMkM7QUFDM0MsbUNBQTBJO0FBQzFJLDZDQUFrQztBQUlsQyx1REFBNEQ7QUFZNUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtJQUN6Rix1Q0FBdUM7SUFDdkMsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQiwwRUFBMEU7UUFDMUUsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7SUFDaEMsQ0FBQztTQUFNLENBQUM7UUFFTixJQUFJLFlBQVksR0FBVyxFQUFFLENBQUM7UUFFOUIseUZBQXlGO1FBQ3pGLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDckMsWUFBWSxHQUFHLDRCQUE0QixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsTUFBTSxzQkFBc0IsR0FBRyxJQUFBLHlDQUF1QixFQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUV6RSxNQUFNLDJCQUEyQixHQUFHLElBQUEsd0JBQWdCLEVBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDckcsTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQUMvRixJQUFBLDJCQUFtQixFQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM3QixFQUFFLEVBQUUsS0FBSztnQkFDVCxN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QUM7SUFDSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBrZW5kcmEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWtlbmRyYSc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBhZGRDZm5HdWFyZFN1cHByZXNzUnVsZXMsIGFkZENmblN1cHByZXNzUnVsZXMsIGNvbnNvbGlkYXRlUHJvcHMsIGdlbmVyYXRlUGh5c2ljYWxLZW5kcmFJbmRleE5hbWUsIG92ZXJyaWRlUHJvcHMgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQXdzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERlZmF1bHRLZW5kcmFJbmRleFByb3BzIH0gZnJvbSAnLi9rZW5kcmEtZGVmYXVsdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkS2VuZHJhSW5kZXhQcm9wcyB7XG4gIHJlYWRvbmx5IGtlbmRyYUluZGV4UHJvcHM/OiBrZW5kcmEuQ2ZuSW5kZXhQcm9wcyB8IGFueTtcbiAgLyoqXG4gICAqIEV4aXN0aW5nIGluc3RhbmNlIG9mIEtlbmRyYSBJbmRleCBvYmplY3QsIFByb3ZpZGluZyBib3RoIHRoaXMgYW5kIGtlbmRyYUluZGV4UHJvcHMgd2lsbCBjYXVzZSBhbiBlcnJvci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBleGlzdGluZ0luZGV4T2JqPzoga2VuZHJhLkNmbkluZGV4O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEtlbmRyYUluZGV4KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCdWlsZEtlbmRyYUluZGV4UHJvcHMpOiBrZW5kcmEuQ2ZuSW5kZXgge1xuICAvLyBDb25kaXRpb25hbCBsYW1iZGEgZnVuY3Rpb24gY3JlYXRpb25cbiAgaWYgKHByb3BzLmV4aXN0aW5nSW5kZXhPYmopIHtcbiAgICAvLyBUaGUgY2xpZW50IHByb3ZpZGVkIGFuIEluZGV4LCBzbyB3ZSdsbCBkbyBub3RoaW5nIGFuZCByZXR1cm4gaXQgdG8gdGhlbVxuICAgIHJldHVybiBwcm9wcy5leGlzdGluZ0luZGV4T2JqO1xuICB9IGVsc2Uge1xuXG4gICAgbGV0IGluZGV4Um9sZUFybjogc3RyaW5nID0gXCJcIjtcblxuICAgIC8vIElmIHRoZSBjbGllbnQgcHJvdmlkZWQgYSByb2xlLCB0aGVuIGRvbid0IGJvdGhlciBjcmVhdGluZyBhIG5ldyBvbmUgdGhhdCB3ZSBkb24ndCBuZWVkXG4gICAgaWYgKCFwcm9wcy5rZW5kcmFJbmRleFByb3BzPy5yb2xlQXJuKSB7XG4gICAgICBpbmRleFJvbGVBcm4gPSBDcmVhdGVLZW5kcmFJbmRleExvZ2dpbmdSb2xlKHNjb3BlLCBpZCk7XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRJbmRleFByb3BlcnRpZXMgPSBEZWZhdWx0S2VuZHJhSW5kZXhQcm9wcyhpZCwgaW5kZXhSb2xlQXJuKTtcblxuICAgIGNvbnN0IGNvbnNvbGlkYXRlZEluZGV4UHJvcGVydGllcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdEluZGV4UHJvcGVydGllcywgcHJvcHMua2VuZHJhSW5kZXhQcm9wcyk7XG4gICAgY29uc3QgbmV3SW5kZXggPSBuZXcga2VuZHJhLkNmbkluZGV4KHNjb3BlLCBga2VuZHJhLWluZGV4LSR7aWR9YCwgY29uc29saWRhdGVkSW5kZXhQcm9wZXJ0aWVzKTtcbiAgICBhZGRDZm5TdXBwcmVzc1J1bGVzKG5ld0luZGV4LCBbe1xuICAgICAgaWQ6IFwiVzgwXCIsXG4gICAgICByZWFzb246IFwiV2UgY29uc3VsdGVkIHRoZSBLZW5kcmEgVEZDIGFuZCB0aGV5IGNvbmZpcm1lZCB0aGUgZGVmYXVsdCBlbmNyeXB0aW9uIGlzIHN1ZmZpY2llbnQgZm9yIGdlbmVyYWwgdXNlIGNhc2VzXCJcbiAgICB9XSk7XG5cbiAgICByZXR1cm4gbmV3SW5kZXg7XG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQWRkTXVsdGlwbGVLZW5kcmFEYXRhU291cmNlcyhzY29wZTogQ29uc3RydWN0LFxuICBpZDogc3RyaW5nLFxuICBrZW5kcmFJbmRleDoga2VuZHJhLkNmbkluZGV4LFxuICBjbGllbnREYXRhU291cmNlUHJvcHM6IFBhcnRpYWw8a2VuZHJhLkNmbkRhdGFTb3VyY2VQcm9wcz5bXSk6IGtlbmRyYS5DZm5EYXRhU291cmNlW10ge1xuXG4gIGNvbnN0IHJldHVybkRhdGFTb3VyY2VzOiBrZW5kcmEuQ2ZuRGF0YVNvdXJjZVtdID0gW107XG4gIGNsaWVudERhdGFTb3VyY2VQcm9wcy5mb3JFYWNoKChwcm9wcywgaW5kZXgpID0+IHtcbiAgICByZXR1cm5EYXRhU291cmNlcy5wdXNoKEFkZEtlbmRyYURhdGFTb3VyY2Uoc2NvcGUsIGAke2lkfSR7aW5kZXh9YCwga2VuZHJhSW5kZXgsIHByb3BzKSk7XG4gIH0pO1xuICByZXR1cm4gcmV0dXJuRGF0YVNvdXJjZXM7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEFkZEtlbmRyYURhdGFTb3VyY2Uoc2NvcGU6IENvbnN0cnVjdCxcbiAgaWQ6IHN0cmluZywgaW5kZXg6IGtlbmRyYS5DZm5JbmRleCxcbiAgY2xpZW50RGF0YVNvdXJjZVByb3BzOiBrZW5kcmEuQ2ZuRGF0YVNvdXJjZVByb3BzIHwgYW55KToga2VuZHJhLkNmbkRhdGFTb3VyY2Uge1xuXG4gIGlmICAoY2xpZW50RGF0YVNvdXJjZVByb3BzLnR5cGUgPT09ICdTMycpIHtcbiAgICByZXR1cm4gQ3JlYXRlUzNEYXRhU291cmNlKHNjb3BlLCBpbmRleCwgaWQsIGNsaWVudERhdGFTb3VyY2VQcm9wcyk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGNsaWVudERhdGFTb3VyY2VQcm9wcy5pbmRleElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgRGF0YVNvdXJjZSBwcm9wIHNwZWNpZmllZCAtIENvbnN0cnVjdCBtdXN0IHNldCB0aGUgaW5kZXhJZCBwcm9wJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcga2VuZHJhLkNmbkRhdGFTb3VyY2Uoc2NvcGUsIGBrZW5kcmEtZGF0YS1zb3VyY2UtJHtpZH1gLCB7XG4gICAgICAuLi5jbGllbnREYXRhU291cmNlUHJvcHMsXG4gICAgICBpbmRleElkOiBpbmRleC5hdHRySWRcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBDcmVhdGVTM0RhdGFTb3VyY2Uoc2NvcGU6IENvbnN0cnVjdCxcbiAgdGFyZ2V0SW5kZXg6IGtlbmRyYS5DZm5JbmRleCxcbiAgaWQ6IHN0cmluZyxcbiAgY2xpZW50UHJvcHM6IFBhcnRpYWw8a2VuZHJhLkNmbkRhdGFTb3VyY2VQcm9wcz4pOiBrZW5kcmEuQ2ZuRGF0YVNvdXJjZSB7XG5cbiAgLy8gV2UgZ28gdGhyb3VnaCBzb21lIGhvb3BzIGhlcmUgdG8gZXh0cmFjdCB0aGUgdmFyaW91cyBpbnB1dHMsIGJlY2F1c2Ugd2UgbmVlZCB0byBuYXJyb3dcbiAgLy8gdGhlIHR5cGUgdG8gcmVtb3ZlIHRoZSB1bmlvbiB3aXRoIElSZXNvbHZhYmxlXG4gIGNvbnN0IGRhdGFTb3VyY2VDb25maWcgPSBjbGllbnRQcm9wcy5kYXRhU291cmNlQ29uZmlndXJhdGlvbiBhcyBrZW5kcmEuQ2ZuRGF0YVNvdXJjZS5EYXRhU291cmNlQ29uZmlndXJhdGlvblByb3BlcnR5O1xuICBpZiAoIWRhdGFTb3VyY2VDb25maWcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIC0gYW4gUzMgS2VuZHJhIERhdGFTb3VyY2UgcmVxdWlyZXMgYW4gRGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24gcHJvcCcpO1xuICB9XG5cbiAgY29uc3QgczNEYXRhU291cmNlQ29uZmlnID0gZGF0YVNvdXJjZUNvbmZpZy5zM0NvbmZpZ3VyYXRpb24gYXMga2VuZHJhLkNmbkRhdGFTb3VyY2UuUzNEYXRhU291cmNlQ29uZmlndXJhdGlvblByb3BlcnR5O1xuXG4gIGlmICghczNEYXRhU291cmNlQ29uZmlnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciAtIGFuIFMzIEtlbmRyYSBEYXRhU291cmNlIHJlcXVpcmVzIGFuIERhdGFTb3VyY2VDb25maWd1cmF0aW9uLlMzQ29uZmlndXJhdGlvbiBwcm9wJyk7XG4gIH1cblxuICAvLyBObyBCdWNrZXQgbmFtZSBpcyBhbiBlcnJvclxuICBpZiAoIXMzRGF0YVNvdXJjZUNvbmZpZy5idWNrZXROYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciAtIGFuIFMzIEtlbmRyYSBEYXRhU291cmNlIHJlcXVpcmVzIHRoZSBEYXRhU291cmNlQ29uZmlndXJhdGlvbi5TM0NvbmZpZ3VyYXRpb24uYnVja2V0TmFtZSBwcm9wJyk7XG4gIH1cblxuICAvLyBJZiB0aGVyZSdzIG5vIHJvbGUsIG1ha2UgYSByb2xlIGFuZCBwdXQgaXQgaW50byBkZWZhdWx0UHJvcHNcbiAgLy8gUHV0IGJ1Y2tldCBuYW1lIGluIGRlZmF1bHQgcHJvcHNcbiAgbGV0IGRlZmF1bHRQcm9wczoga2VuZHJhLkNmbkRhdGFTb3VyY2VQcm9wcyA9IHtcbiAgICBpbmRleElkOiB0YXJnZXRJbmRleC5yZWYsXG4gICAgbmFtZTogZ2VuZXJhdGVQaHlzaWNhbEtlbmRyYUluZGV4TmFtZSgnJywgWydzMy1kYXRhc291cmNlJywgaWRdKSxcbiAgICB0eXBlOiAnUzMnXG4gIH07XG5cbiAgLy8gUmV0dXJuIGNvbnNvbGlkYXRlZCBkZWZhdWx0IGFuZCB1c2VyIHByb3BzXG4gIGlmICghY2xpZW50UHJvcHMucm9sZUFybikge1xuICAgIGNvbnN0IHMzQ3Jhd2xQb2xpY3kgPSBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIFwiczM6R2V0T2JqZWN0XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgYGFybjphd3M6czM6Ojoke3MzRGF0YVNvdXJjZUNvbmZpZy5idWNrZXROYW1lfS8qYFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgXCJzMzpMaXN0QnVja2V0XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgYGFybjphd3M6czM6Ojoke3MzRGF0YVNvdXJjZUNvbmZpZy5idWNrZXROYW1lfWBcbiAgICAgICAgICBdLFxuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPV1xuICAgICAgICB9KSxcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBcImtlbmRyYTpCYXRjaFB1dERvY3VtZW50XCIsXG4gICAgICAgICAgICBcImtlbmRyYTpCYXRjaERlbGV0ZURvY3VtZW50XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgdGFyZ2V0SW5kZXguYXR0ckFyblxuICAgICAgICAgIF1cbiAgICAgICAgfSksXG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBjb25zdCBkYXRhU291cmNlUm9sZTogaWFtLlJvbGUgPSBuZXcgaWFtLlJvbGUoc2NvcGUsIGBkYXRhLXNvdXJjZS1yb2xlLSR7aWR9YCwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2tlbmRyYS5hbWF6b25hd3MuY29tJyksXG4gICAgICBkZXNjcmlwdGlvbjogJ1BvbGljeSBmb3IgS2VuZHJhIFMzIERhdGEgU291cmNlJyxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgIHMzQ3Jhd2xQb2xpY3ksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGRlZmF1bHRQcm9wcyA9IG92ZXJyaWRlUHJvcHMoZGVmYXVsdFByb3BzLCB7IHJvbGVBcm46IGRhdGFTb3VyY2VSb2xlLnJvbGVBcm4gfSk7XG4gICAgYWRkQ2ZuR3VhcmRTdXBwcmVzc1J1bGVzKGRhdGFTb3VyY2VSb2xlLCBbXCJJQU1fTk9fSU5MSU5FX1BPTElDWV9DSEVDS1wiXSk7XG4gIH1cblxuICBjb25zdCBjb25zb2xpZGF0ZWRQcm9wczoga2VuZHJhLkNmbkRhdGFTb3VyY2VQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdFByb3BzLCBjbGllbnRQcm9wcyk7XG5cbiAgcmV0dXJuIG5ldyBrZW5kcmEuQ2ZuRGF0YVNvdXJjZShzY29wZSwgYGRhdGEtc291cmNlLSR7aWR9YCwgY29uc29saWRhdGVkUHJvcHMpO1xuXG59XG5cbmZ1bmN0aW9uIENyZWF0ZUtlbmRyYUluZGV4TG9nZ2luZ1JvbGUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGFsbG93S2VuZHJhVG9Mb2dQb2xpY3kgPSBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICBcImNsb3Vkd2F0Y2g6UHV0TWV0cmljRGF0YVwiXG4gICAgICAgIF0sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgXCJjbG91ZHdhdGNoOm5hbWVzcGFjZVwiOiBcIkFXUy9LZW5kcmFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHJlc291cmNlczogW2Bhcm46YXdzOmxvZ3M6JHtBd3MuUkVHSU9OfToke0F3cy5BQ0NPVU5UX0lEfTpsb2ctZ3JvdXA6L2F3cy9rZW5kcmEvKmBdLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJsb2dzOkNyZWF0ZUxvZ0dyb3VwXCJcbiAgICAgICAgXSxcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHJlc291cmNlczogW2Bhcm46JHtBd3MuUEFSVElUSU9OfTpsb2dzOiR7QXdzLlJFR0lPTn06JHtBd3MuQUNDT1VOVF9JRH06bG9nLWdyb3VwOi9hd3Mva2VuZHJhLypgXSxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwibG9nczpEZXNjcmliZUxvZ0dyb3Vwc1wiXG4gICAgICAgIF0sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7QXdzLlBBUlRJVElPTn06bG9nczoke0F3cy5SRUdJT059OiR7QXdzLkFDQ09VTlRfSUR9OmxvZy1ncm91cDovYXdzL2tlbmRyYS8qOmxvZy1zdHJlYW06KmBdLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ2xvZ3M6Q3JlYXRlTG9nU3RyZWFtJyxcbiAgICAgICAgICAnbG9nczpQdXRMb2dFdmVudHMnLFxuICAgICAgICAgICdsb2dzOkRlc2NyaWJlTG9nU3RyZWFtJyxcbiAgICAgICAgXSxcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgfSksXG4gICAgXSxcbiAgfSk7XG5cbiAgY29uc3QgaW5kZXhSb2xlOiBpYW0uUm9sZSA9IG5ldyBpYW0uUm9sZShzY29wZSwgYGtlbmRyYS1pbmRleC1yb2xlLSR7aWR9YCwge1xuICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdrZW5kcmEuYW1hem9uYXdzLmNvbScpLFxuICAgIGRlc2NyaXB0aW9uOiAnQWxsb3cgS2VuZHJhIGluZGV4IHRvIHdyaXRlIENsb3VkV2F0Y2ggTG9ncycsXG4gICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgIEFsbG93TG9nZ2luZzogYWxsb3dLZW5kcmFUb0xvZ1BvbGljeSxcbiAgICB9LFxuICB9KTtcbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhpbmRleFJvbGUsIFt7XG4gICAgaWQ6IFwiVzExXCIsXG4gICAgcmVhc29uOiBcIlB1dE1ldHJpY0RhdGEgZG9lcyBub3QgYWxsb3cgcmVzb3VyY2Ugc3BlY2lmaWNhdGlvbiwgXCIgK1xuICAgICAgXCJzY29wZSBpcyBuYXJyb3dlZCBieSB0aGUgbmFtZXNwYWNlIGNvbmRpdGlvbi4gXCIgK1xuICAgICAgXCJodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hbWF6b25jbG91ZHdhdGNoLmh0bWxcIlxuICB9XSk7XG4gIGFkZENmbkd1YXJkU3VwcHJlc3NSdWxlcyhpbmRleFJvbGUsIFtcIklBTV9OT19JTkxJTkVfUE9MSUNZX0NIRUNLXCJdKTtcblxuICByZXR1cm4gaW5kZXhSb2xlLnJvbGVBcm47XG59XG5cbi8vIEBzdW1tYXJ5IENvbmZpcm0gZWFjaCBlbnRyeSBpcyBhIGNvcnJlY3QgdmFsdWUsIHVwcGVyY2FzZSBlYWNoIGVudHJ5XG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplS2VuZHJhUGVybWlzc2lvbnMocmF3UGVybWlzc2lvbnM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICBjb25zdCB2YWxpZFBlcm1pc3Npb25zID0gW1wiUkVBRFwiLCBcIlNVQk1JVEZFRURCQUNLXCIsIFwiV1JJVEVcIl07XG5cbiAgY29uc3QgcmVzdWx0ID0gcmF3UGVybWlzc2lvbnMubWFwPHN0cmluZz4oKHMpID0+IHtcbiAgICBjb25zdCB1cHBlckNhc2VWYWx1ZSA9IHMudG9VcHBlckNhc2UoKTtcbiAgICBpZiAoIXZhbGlkUGVybWlzc2lvbnMuaW5jbHVkZXModXBwZXJDYXNlVmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaW5kZXhQZXJtaXNzaW9uIHZhbHVlIC0gdmFsaWQgdmFsdWVzIGFyZSBcIlJFQURcIiwgXCJTVUJNSVRGRUVEQkFDS1wiIGFuZCBcIldSSVRFXCJgKTtcbiAgICB9XG4gICAgcmV0dXJuIHVwcGVyQ2FzZVZhbHVlO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VuZHJhLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImtlbmRyYS1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQTZCSCw0Q0F3QkM7QUFLRCxvRUFZQztBQUtELGtEQWVDO0FBaUpELGdFQVdDO0FBcFBEOzs7R0FHRztBQUVILGlEQUFpRDtBQUNqRCwyQ0FBMkM7QUFDM0MsbUNBQTBJO0FBQzFJLDZDQUFrQztBQUlsQyx1REFBNEQ7QUFZNUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtJQUN6Rix1Q0FBdUM7SUFDdkMsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQiwwRUFBMEU7UUFDMUUsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7SUFDaEMsQ0FBQztTQUFNLENBQUM7UUFFTixJQUFJLFlBQVksR0FBVyxFQUFFLENBQUM7UUFFOUIseUZBQXlGO1FBQ3pGLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDckMsWUFBWSxHQUFHLDRCQUE0QixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsTUFBTSxzQkFBc0IsR0FBRyxJQUFBLHlDQUF1QixFQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUV6RSxNQUFNLDJCQUEyQixHQUFHLElBQUEsd0JBQWdCLEVBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDckcsTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQUMvRixJQUFBLDJCQUFtQixFQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM3QixFQUFFLEVBQUUsS0FBSztnQkFDVCxN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SSxLQUFLLENBQUMsdUZBQXVGLENBQUMsQ0FBQztRQUMzRyxDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBrZW5kcmEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWtlbmRyYSc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBhZGRDZm5HdWFyZFN1cHByZXNzUnVsZXMsIGFkZENmblN1cHByZXNzUnVsZXMsIGNvbnNvbGlkYXRlUHJvcHMsIGdlbmVyYXRlUGh5c2ljYWxLZW5kcmFJbmRleE5hbWUsIG92ZXJyaWRlUHJvcHMgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgQXdzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERlZmF1bHRLZW5kcmFJbmRleFByb3BzIH0gZnJvbSAnLi9rZW5kcmEtZGVmYXVsdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkS2VuZHJhSW5kZXhQcm9wcyB7XG4gIHJlYWRvbmx5IGtlbmRyYUluZGV4UHJvcHM/OiBrZW5kcmEuQ2ZuSW5kZXhQcm9wcyB8IGFueTtcbiAgLyoqXG4gICAqIEV4aXN0aW5nIGluc3RhbmNlIG9mIEtlbmRyYSBJbmRleCBvYmplY3QsIFByb3ZpZGluZyBib3RoIHRoaXMgYW5kIGtlbmRyYUluZGV4UHJvcHMgd2lsbCBjYXVzZSBhbiBlcnJvci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBleGlzdGluZ0luZGV4T2JqPzoga2VuZHJhLkNmbkluZGV4O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEtlbmRyYUluZGV4KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCdWlsZEtlbmRyYUluZGV4UHJvcHMpOiBrZW5kcmEuQ2ZuSW5kZXgge1xuICAvLyBDb25kaXRpb25hbCBsYW1iZGEgZnVuY3Rpb24gY3JlYXRpb25cbiAgaWYgKHByb3BzLmV4aXN0aW5nSW5kZXhPYmopIHtcbiAgICAvLyBUaGUgY2xpZW50IHByb3ZpZGVkIGFuIEluZGV4LCBzbyB3ZSdsbCBkbyBub3RoaW5nIGFuZCByZXR1cm4gaXQgdG8gdGhlbVxuICAgIHJldHVybiBwcm9wcy5leGlzdGluZ0luZGV4T2JqO1xuICB9IGVsc2Uge1xuXG4gICAgbGV0IGluZGV4Um9sZUFybjogc3RyaW5nID0gXCJcIjtcblxuICAgIC8vIElmIHRoZSBjbGllbnQgcHJvdmlkZWQgYSByb2xlLCB0aGVuIGRvbid0IGJvdGhlciBjcmVhdGluZyBhIG5ldyBvbmUgdGhhdCB3ZSBkb24ndCBuZWVkXG4gICAgaWYgKCFwcm9wcy5rZW5kcmFJbmRleFByb3BzPy5yb2xlQXJuKSB7XG4gICAgICBpbmRleFJvbGVBcm4gPSBDcmVhdGVLZW5kcmFJbmRleExvZ2dpbmdSb2xlKHNjb3BlLCBpZCk7XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRJbmRleFByb3BlcnRpZXMgPSBEZWZhdWx0S2VuZHJhSW5kZXhQcm9wcyhpZCwgaW5kZXhSb2xlQXJuKTtcblxuICAgIGNvbnN0IGNvbnNvbGlkYXRlZEluZGV4UHJvcGVydGllcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdEluZGV4UHJvcGVydGllcywgcHJvcHMua2VuZHJhSW5kZXhQcm9wcyk7XG4gICAgY29uc3QgbmV3SW5kZXggPSBuZXcga2VuZHJhLkNmbkluZGV4KHNjb3BlLCBga2VuZHJhLWluZGV4LSR7aWR9YCwgY29uc29saWRhdGVkSW5kZXhQcm9wZXJ0aWVzKTtcbiAgICBhZGRDZm5TdXBwcmVzc1J1bGVzKG5ld0luZGV4LCBbe1xuICAgICAgaWQ6IFwiVzgwXCIsXG4gICAgICByZWFzb246IFwiV2UgY29uc3VsdGVkIHRoZSBLZW5kcmEgVEZDIGFuZCB0aGV5IGNvbmZpcm1lZCB0aGUgZGVmYXVsdCBlbmNyeXB0aW9uIGlzIHN1ZmZpY2llbnQgZm9yIGdlbmVyYWwgdXNlIGNhc2VzXCJcbiAgICB9XSk7XG5cbiAgICByZXR1cm4gbmV3SW5kZXg7XG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQWRkTXVsdGlwbGVLZW5kcmFEYXRhU291cmNlcyhzY29wZTogQ29uc3RydWN0LFxuICBpZDogc3RyaW5nLFxuICBrZW5kcmFJbmRleDoga2VuZHJhLkNmbkluZGV4LFxuICBjbGllbnREYXRhU291cmNlUHJvcHM6IFBhcnRpYWw8a2VuZHJhLkNmbkRhdGFTb3VyY2VQcm9wcz5bXSk6IGtlbmRyYS5DZm5EYXRhU291cmNlW10ge1xuXG4gIGNvbnN0IHJldHVybkRhdGFTb3VyY2VzOiBrZW5kcmEuQ2ZuRGF0YVNvdXJjZVtdID0gW107XG4gIGNsaWVudERhdGFTb3VyY2VQcm9wcy5mb3JFYWNoKChwcm9wcywgaW5kZXgpID0+IHtcbiAgICBjb25zdCBhZGRpdGlvbmFsRGF0YVNvdXJjZSA9IEFkZEtlbmRyYURhdGFTb3VyY2Uoc2NvcGUsIGAke2lkfSR7aW5kZXh9YCwga2VuZHJhSW5kZXgsIHByb3BzKTtcbiAgICBhZGRpdGlvbmFsRGF0YVNvdXJjZS5hZGREZXBlbmRlbmN5KGtlbmRyYUluZGV4KTtcbiAgICByZXR1cm5EYXRhU291cmNlcy5wdXNoKGFkZGl0aW9uYWxEYXRhU291cmNlKTtcbiAgfSk7XG4gIHJldHVybiByZXR1cm5EYXRhU291cmNlcztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQWRkS2VuZHJhRGF0YVNvdXJjZShzY29wZTogQ29uc3RydWN0LFxuICBpZDogc3RyaW5nLCBpbmRleDoga2VuZHJhLkNmbkluZGV4LFxuICBjbGllbnREYXRhU291cmNlUHJvcHM6IGtlbmRyYS5DZm5EYXRhU291cmNlUHJvcHMgfCBhbnkpOiBrZW5kcmEuQ2ZuRGF0YVNvdXJjZSB7XG5cbiAgaWYgIChjbGllbnREYXRhU291cmNlUHJvcHMudHlwZSA9PT0gJ1MzJykge1xuICAgIHJldHVybiBDcmVhdGVTM0RhdGFTb3VyY2Uoc2NvcGUsIGluZGV4LCBpZCwgY2xpZW50RGF0YVNvdXJjZVByb3BzKTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoY2xpZW50RGF0YVNvdXJjZVByb3BzLmluZGV4SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBEYXRhU291cmNlIHByb3Agc3BlY2lmaWVkIC0gQ29uc3RydWN0IG11c3Qgc2V0IHRoZSBpbmRleElkIHByb3AnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBrZW5kcmEuQ2ZuRGF0YVNvdXJjZShzY29wZSwgYGtlbmRyYS1kYXRhLXNvdXJjZS0ke2lkfWAsIHtcbiAgICAgIC4uLmNsaWVudERhdGFTb3VyY2VQcm9wcyxcbiAgICAgIGluZGV4SWQ6IGluZGV4LmF0dHJJZFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIENyZWF0ZVMzRGF0YVNvdXJjZShzY29wZTogQ29uc3RydWN0LFxuICB0YXJnZXRJbmRleDoga2VuZHJhLkNmbkluZGV4LFxuICBpZDogc3RyaW5nLFxuICBjbGllbnRQcm9wczogUGFydGlhbDxrZW5kcmEuQ2ZuRGF0YVNvdXJjZVByb3BzPik6IGtlbmRyYS5DZm5EYXRhU291cmNlIHtcblxuICAvLyBXZSBnbyB0aHJvdWdoIHNvbWUgaG9vcHMgaGVyZSB0byBleHRyYWN0IHRoZSB2YXJpb3VzIGlucHV0cywgYmVjYXVzZSB3ZSBuZWVkIHRvIG5hcnJvd1xuICAvLyB0aGUgdHlwZSB0byByZW1vdmUgdGhlIHVuaW9uIHdpdGggSVJlc29sdmFibGVcbiAgY29uc3QgZGF0YVNvdXJjZUNvbmZpZyA9IGNsaWVudFByb3BzLmRhdGFTb3VyY2VDb25maWd1cmF0aW9uIGFzIGtlbmRyYS5DZm5EYXRhU291cmNlLkRhdGFTb3VyY2VDb25maWd1cmF0aW9uUHJvcGVydHk7XG4gIGlmICghZGF0YVNvdXJjZUNvbmZpZykge1xuICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgLSBhbiBTMyBLZW5kcmEgRGF0YVNvdXJjZSByZXF1aXJlcyBhbiBEYXRhU291cmNlQ29uZmlndXJhdGlvbiBwcm9wJyk7XG4gIH1cblxuICBjb25zdCBzM0RhdGFTb3VyY2VDb25maWcgPSBkYXRhU291cmNlQ29uZmlnLnMzQ29uZmlndXJhdGlvbiBhcyBrZW5kcmEuQ2ZuRGF0YVNvdXJjZS5TM0RhdGFTb3VyY2VDb25maWd1cmF0aW9uUHJvcGVydHk7XG5cbiAgaWYgKCFzM0RhdGFTb3VyY2VDb25maWcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIC0gYW4gUzMgS2VuZHJhIERhdGFTb3VyY2UgcmVxdWlyZXMgYW4gRGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24uUzNDb25maWd1cmF0aW9uIHByb3AnKTtcbiAgfVxuXG4gIC8vIE5vIEJ1Y2tldCBuYW1lIGlzIGFuIGVycm9yXG4gIGlmICghczNEYXRhU291cmNlQ29uZmlnLmJ1Y2tldE5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIC0gYW4gUzMgS2VuZHJhIERhdGFTb3VyY2UgcmVxdWlyZXMgdGhlIERhdGFTb3VyY2VDb25maWd1cmF0aW9uLlMzQ29uZmlndXJhdGlvbi5idWNrZXROYW1lIHByb3AnKTtcbiAgfVxuXG4gIC8vIElmIHRoZXJlJ3Mgbm8gcm9sZSwgbWFrZSBhIHJvbGUgYW5kIHB1dCBpdCBpbnRvIGRlZmF1bHRQcm9wc1xuICAvLyBQdXQgYnVja2V0IG5hbWUgaW4gZGVmYXVsdCBwcm9wc1xuICBsZXQgZGVmYXVsdFByb3BzOiBrZW5kcmEuQ2ZuRGF0YVNvdXJjZVByb3BzID0ge1xuICAgIGluZGV4SWQ6IHRhcmdldEluZGV4LnJlZixcbiAgICBuYW1lOiBnZW5lcmF0ZVBoeXNpY2FsS2VuZHJhSW5kZXhOYW1lKCcnLCBbJ3MzLWRhdGFzb3VyY2UnLCBpZF0pLFxuICAgIHR5cGU6ICdTMydcbiAgfTtcblxuICAvLyBSZXR1cm4gY29uc29saWRhdGVkIGRlZmF1bHQgYW5kIHVzZXIgcHJvcHNcbiAgaWYgKCFjbGllbnRQcm9wcy5yb2xlQXJuKSB7XG4gICAgY29uc3QgczNDcmF3bFBvbGljeSA9IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgXCJzMzpHZXRPYmplY3RcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICBgYXJuOmF3czpzMzo6OiR7czNEYXRhU291cmNlQ29uZmlnLmJ1Y2tldE5hbWV9LypgXG4gICAgICAgICAgXSxcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1dcbiAgICAgICAgfSksXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBcInMzOkxpc3RCdWNrZXRcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICBgYXJuOmF3czpzMzo6OiR7czNEYXRhU291cmNlQ29uZmlnLmJ1Y2tldE5hbWV9YFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIFwia2VuZHJhOkJhdGNoUHV0RG9jdW1lbnRcIixcbiAgICAgICAgICAgIFwia2VuZHJhOkJhdGNoRGVsZXRlRG9jdW1lbnRcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICB0YXJnZXRJbmRleC5hdHRyQXJuXG4gICAgICAgICAgXVxuICAgICAgICB9KSxcbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGNvbnN0IGRhdGFTb3VyY2VSb2xlOiBpYW0uUm9sZSA9IG5ldyBpYW0uUm9sZShzY29wZSwgYGRhdGEtc291cmNlLXJvbGUtJHtpZH1gLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgna2VuZHJhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnUG9saWN5IGZvciBLZW5kcmEgUzMgRGF0YSBTb3VyY2UnLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgczNDcmF3bFBvbGljeSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgZGVmYXVsdFByb3BzID0gb3ZlcnJpZGVQcm9wcyhkZWZhdWx0UHJvcHMsIHsgcm9sZUFybjogZGF0YVNvdXJjZVJvbGUucm9sZUFybiB9KTtcbiAgICBhZGRDZm5HdWFyZFN1cHByZXNzUnVsZXMoZGF0YVNvdXJjZVJvbGUsIFtcIklBTV9OT19JTkxJTkVfUE9MSUNZX0NIRUNLXCJdKTtcbiAgfVxuXG4gIGNvbnN0IGNvbnNvbGlkYXRlZFByb3BzOiBrZW5kcmEuQ2ZuRGF0YVNvdXJjZVByb3BzID0gY29uc29saWRhdGVQcm9wcyhkZWZhdWx0UHJvcHMsIGNsaWVudFByb3BzKTtcblxuICByZXR1cm4gbmV3IGtlbmRyYS5DZm5EYXRhU291cmNlKHNjb3BlLCBgZGF0YS1zb3VyY2UtJHtpZH1gLCBjb25zb2xpZGF0ZWRQcm9wcyk7XG5cbn1cblxuZnVuY3Rpb24gQ3JlYXRlS2VuZHJhSW5kZXhMb2dnaW5nUm9sZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgYWxsb3dLZW5kcmFUb0xvZ1BvbGljeSA9IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgIHN0YXRlbWVudHM6IFtcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwiY2xvdWR3YXRjaDpQdXRNZXRyaWNEYXRhXCJcbiAgICAgICAgXSxcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICBcImNsb3Vkd2F0Y2g6bmFtZXNwYWNlXCI6IFwiQVdTL0tlbmRyYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6bG9nczoke0F3cy5SRUdJT059OiR7QXdzLkFDQ09VTlRfSUR9OmxvZy1ncm91cDovYXdzL2tlbmRyYS8qYF0sXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICBcImxvZ3M6Q3JlYXRlTG9nR3JvdXBcIlxuICAgICAgICBdLFxuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke0F3cy5QQVJUSVRJT059OmxvZ3M6JHtBd3MuUkVHSU9OfToke0F3cy5BQ0NPVU5UX0lEfTpsb2ctZ3JvdXA6L2F3cy9rZW5kcmEvKmBdLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJsb2dzOkRlc2NyaWJlTG9nR3JvdXBzXCJcbiAgICAgICAgXSxcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHJlc291cmNlczogW2Bhcm46JHtBd3MuUEFSVElUSU9OfTpsb2dzOiR7QXdzLlJFR0lPTn06JHtBd3MuQUNDT1VOVF9JRH06bG9nLWdyb3VwOi9hd3Mva2VuZHJhLyo6bG9nLXN0cmVhbToqYF0sXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAnbG9nczpDcmVhdGVMb2dTdHJlYW0nLFxuICAgICAgICAgICdsb2dzOlB1dExvZ0V2ZW50cycsXG4gICAgICAgICAgJ2xvZ3M6RGVzY3JpYmVMb2dTdHJlYW0nLFxuICAgICAgICBdLFxuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICB9KSxcbiAgICBdLFxuICB9KTtcblxuICBjb25zdCBpbmRleFJvbGU6IGlhbS5Sb2xlID0gbmV3IGlhbS5Sb2xlKHNjb3BlLCBga2VuZHJhLWluZGV4LXJvbGUtJHtpZH1gLCB7XG4gICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2tlbmRyYS5hbWF6b25hd3MuY29tJyksXG4gICAgZGVzY3JpcHRpb246ICdBbGxvdyBLZW5kcmEgaW5kZXggdG8gd3JpdGUgQ2xvdWRXYXRjaCBMb2dzJyxcbiAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgQWxsb3dMb2dnaW5nOiBhbGxvd0tlbmRyYVRvTG9nUG9saWN5LFxuICAgIH0sXG4gIH0pO1xuICBhZGRDZm5TdXBwcmVzc1J1bGVzKGluZGV4Um9sZSwgW3tcbiAgICBpZDogXCJXMTFcIixcbiAgICByZWFzb246IFwiUHV0TWV0cmljRGF0YSBkb2VzIG5vdCBhbGxvdyByZXNvdXJjZSBzcGVjaWZpY2F0aW9uLCBcIiArXG4gICAgICBcInNjb3BlIGlzIG5hcnJvd2VkIGJ5IHRoZSBuYW1lc3BhY2UgY29uZGl0aW9uLiBcIiArXG4gICAgICBcImh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2FtYXpvbmNsb3Vkd2F0Y2guaHRtbFwiXG4gIH1dKTtcbiAgYWRkQ2ZuR3VhcmRTdXBwcmVzc1J1bGVzKGluZGV4Um9sZSwgW1wiSUFNX05PX0lOTElORV9QT0xJQ1lfQ0hFQ0tcIl0pO1xuXG4gIHJldHVybiBpbmRleFJvbGUucm9sZUFybjtcbn1cblxuLy8gQHN1bW1hcnkgQ29uZmlybSBlYWNoIGVudHJ5IGlzIGEgY29ycmVjdCB2YWx1ZSwgdXBwZXJjYXNlIGVhY2ggZW50cnlcbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVLZW5kcmFQZXJtaXNzaW9ucyhyYXdQZXJtaXNzaW9uczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHZhbGlkUGVybWlzc2lvbnMgPSBbXCJSRUFEXCIsIFwiU1VCTUlURkVFREJBQ0tcIiwgXCJXUklURVwiXTtcblxuICBjb25zdCByZXN1bHQgPSByYXdQZXJtaXNzaW9ucy5tYXA8c3RyaW5nPigocykgPT4ge1xuICAgIGNvbnN0IHVwcGVyQ2FzZVZhbHVlID0gcy50b1VwcGVyQ2FzZSgpO1xuICAgIGlmICghdmFsaWRQZXJtaXNzaW9ucy5pbmNsdWRlcyh1cHBlckNhc2VWYWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBpbmRleFBlcm1pc3Npb24gdmFsdWUgLSB2YWxpZCB2YWx1ZXMgYXJlIFwiUkVBRFwiLCBcIlNVQk1JVEZFRURCQUNLXCIgYW5kIFwiV1JJVEVcImApO1xuICAgIH1cbiAgICByZXR1cm4gdXBwZXJDYXNlVmFsdWU7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuIl19
@@ -27,7 +27,10 @@ function buildWebacl(scope, webaclScope, props) {
27
27
  }
28
28
  else { // Create a new WAF web ACL
29
29
  const finalWebaclProps = (0, utils_1.consolidateProps)((0, waf_defaults_1.DefaultWafwebaclProps)(webaclScope), props.webaclProps);
30
- webAcl = new waf.CfnWebACL(scope, `${scope.node.id}-WebACL`, finalWebaclProps);
30
+ webAcl = new waf.CfnWebACL(scope, `${scope.node.id}-WebACL`, {
31
+ ...finalWebaclProps,
32
+ defaultAction: props.webaclProps?.defaultAction ?? finalWebaclProps.defaultAction
33
+ });
31
34
  }
32
35
  return webAcl;
33
36
  }
@@ -42,4 +45,4 @@ function CheckWafWebAclProps(propsObject) {
42
45
  throw new Error(errorMessages);
43
46
  }
44
47
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FmLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndhZi1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQTBCSCxrQ0FZQztBQU9ELGtEQVlDO0FBakRELDZDQUE2QztBQUM3QyxpREFBdUQ7QUFDdkQsbUNBQTJDO0FBYTNDOztHQUVHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLEtBQWdCLEVBQUUsV0FBbUIsRUFBRSxLQUF1QjtJQUN4RixJQUFJLE1BQU0sQ0FBQztJQUVYLElBQUksS0FBSyxDQUFDLGlCQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsdUJBQXVCO1FBQzFFLE1BQU0sR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7SUFDbkMsQ0FBQztTQUFNLENBQUMsQ0FBQywyQkFBMkI7UUFDbEMsTUFBTSxnQkFBZ0IsR0FBdUIsSUFBQSx3QkFBZ0IsRUFBQyxJQUFBLG9DQUFxQixFQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVySCxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQU9ELFNBQWdCLG1CQUFtQixDQUFDLFdBQWlDO0lBQ25FLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN2QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFdkIsSUFBSSxXQUFXLENBQUMsaUJBQWlCLElBQUksV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdELGFBQWEsSUFBSSwwRUFBMEUsQ0FBQztRQUM1RixVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqQyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHdhZiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXdhZnYyXCI7XG5pbXBvcnQgeyBEZWZhdWx0V2Fmd2ViYWNsUHJvcHMgfSBmcm9tIFwiLi93YWYtZGVmYXVsdHNcIjtcbmltcG9ydCB7IGNvbnNvbGlkYXRlUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFdlYmFjbFByb3BzIHtcbiAgLyoqXG4gICAqIEV4aXN0aW5nIGluc3RhbmNlIG9mIGEgV0FGIHdlYiBBQ0wsIGlmIHRoaXMgaXMgc2V0IHRoZW4gdGhlIGFsbCBwcm9wcyBhcmUgaWdub3JlZFxuICAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdXZWJhY2xPYmo/OiB3YWYuQ2ZuV2ViQUNMO1xuICAvKipcbiAgICogVXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBBQ0wgcHJvcHMgZm9yIFdBRiB3ZWIgQUNMLlxuICAgKi9cbiAgcmVhZG9ubHkgd2ViYWNsUHJvcHM/OiB3YWYuQ2ZuV2ViQUNMUHJvcHMgfCBhbnk7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkV2ViYWNsKHNjb3BlOiBDb25zdHJ1Y3QsIHdlYmFjbFNjb3BlOiBzdHJpbmcsIHByb3BzOiBCdWlsZFdlYmFjbFByb3BzKTogd2FmLkNmbldlYkFDTCB7XG4gIGxldCB3ZWJBY2w7XG5cbiAgaWYgKHByb3BzLmV4aXN0aW5nV2ViYWNsT2JqICYmICFwcm9wcy53ZWJhY2xQcm9wcykgeyAvLyBFeGlzdGluZyBXQUYgd2ViIEFDTFxuICAgIHdlYkFjbCA9IHByb3BzLmV4aXN0aW5nV2ViYWNsT2JqO1xuICB9IGVsc2UgeyAvLyBDcmVhdGUgYSBuZXcgV0FGIHdlYiBBQ0xcbiAgICBjb25zdCBmaW5hbFdlYmFjbFByb3BzOiB3YWYuQ2ZuV2ViQUNMUHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKERlZmF1bHRXYWZ3ZWJhY2xQcm9wcyh3ZWJhY2xTY29wZSksIHByb3BzLndlYmFjbFByb3BzKTtcblxuICAgIHdlYkFjbCA9IG5ldyB3YWYuQ2ZuV2ViQUNMKHNjb3BlLCBgJHtzY29wZS5ub2RlLmlkfS1XZWJBQ0xgLCBmaW5hbFdlYmFjbFByb3BzKTtcbiAgfVxuXG4gIHJldHVybiB3ZWJBY2w7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FmV2ViQWNsUHJvcHMge1xuICByZWFkb25seSBleGlzdGluZ1dlYmFjbE9iajogd2FmLkNmbldlYkFDTCxcbiAgcmVhZG9ubHkgd2ViYWNsUHJvcHM6IHdhZi5DZm5XZWJBQ0xQcm9wcyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENoZWNrV2FmV2ViQWNsUHJvcHMocHJvcHNPYmplY3Q6IFdhZldlYkFjbFByb3BzIHwgYW55KSB7XG4gIGxldCBlcnJvck1lc3NhZ2VzID0gJyc7XG4gIGxldCBlcnJvckZvdW5kID0gZmFsc2U7XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nV2ViYWNsT2JqICYmIHByb3BzT2JqZWN0LndlYmFjbFByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBleGlzdGluZ1dlYmFjbE9iaiBvciB3ZWJhY2xQcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoZXJyb3JGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgfVxufSJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FmLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndhZi1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQTBCSCxrQ0FlQztBQU9ELGtEQVlDO0FBcERELDZDQUE2QztBQUM3QyxpREFBdUQ7QUFDdkQsbUNBQTJDO0FBYTNDOztHQUVHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLEtBQWdCLEVBQUUsV0FBbUIsRUFBRSxLQUF1QjtJQUN4RixJQUFJLE1BQU0sQ0FBQztJQUVYLElBQUksS0FBSyxDQUFDLGlCQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsdUJBQXVCO1FBQzFFLE1BQU0sR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7SUFDbkMsQ0FBQztTQUFNLENBQUMsQ0FBQywyQkFBMkI7UUFDbEMsTUFBTSxnQkFBZ0IsR0FBdUIsSUFBQSx3QkFBZ0IsRUFBQyxJQUFBLG9DQUFxQixFQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVySCxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUU7WUFDM0QsR0FBRyxnQkFBZ0I7WUFDbkIsYUFBYSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsYUFBYSxJQUFJLGdCQUFnQixDQUFDLGFBQWE7U0FDbEYsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFPRCxTQUFnQixtQkFBbUIsQ0FBQyxXQUFpQztJQUNuRSxJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDdkIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBRXZCLElBQUksV0FBVyxDQUFDLGlCQUFpQixJQUFJLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3RCxhQUFhLElBQUksMEVBQTBFLENBQUM7UUFDNUYsVUFBVSxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyB3YWYgZnJvbSBcImF3cy1jZGstbGliL2F3cy13YWZ2MlwiO1xuaW1wb3J0IHsgRGVmYXVsdFdhZndlYmFjbFByb3BzIH0gZnJvbSBcIi4vd2FmLWRlZmF1bHRzXCI7XG5pbXBvcnQgeyBjb25zb2xpZGF0ZVByb3BzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRXZWJhY2xQcm9wcyB7XG4gIC8qKlxuICAgKiBFeGlzdGluZyBpbnN0YW5jZSBvZiBhIFdBRiB3ZWIgQUNMLCBpZiB0aGlzIGlzIHNldCB0aGVuIHRoZSBhbGwgcHJvcHMgYXJlIGlnbm9yZWRcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nV2ViYWNsT2JqPzogd2FmLkNmbldlYkFDTDtcbiAgLyoqXG4gICAqIFVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgQUNMIHByb3BzIGZvciBXQUYgd2ViIEFDTC5cbiAgICovXG4gIHJlYWRvbmx5IHdlYmFjbFByb3BzPzogd2FmLkNmbldlYkFDTFByb3BzIHwgYW55O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFdlYmFjbChzY29wZTogQ29uc3RydWN0LCB3ZWJhY2xTY29wZTogc3RyaW5nLCBwcm9wczogQnVpbGRXZWJhY2xQcm9wcyk6IHdhZi5DZm5XZWJBQ0wge1xuICBsZXQgd2ViQWNsO1xuXG4gIGlmIChwcm9wcy5leGlzdGluZ1dlYmFjbE9iaiAmJiAhcHJvcHMud2ViYWNsUHJvcHMpIHsgLy8gRXhpc3RpbmcgV0FGIHdlYiBBQ0xcbiAgICB3ZWJBY2wgPSBwcm9wcy5leGlzdGluZ1dlYmFjbE9iajtcbiAgfSBlbHNlIHsgLy8gQ3JlYXRlIGEgbmV3IFdBRiB3ZWIgQUNMXG4gICAgY29uc3QgZmluYWxXZWJhY2xQcm9wczogd2FmLkNmbldlYkFDTFByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0V2Fmd2ViYWNsUHJvcHMod2ViYWNsU2NvcGUpLCBwcm9wcy53ZWJhY2xQcm9wcyk7XG5cbiAgICB3ZWJBY2wgPSBuZXcgd2FmLkNmbldlYkFDTChzY29wZSwgYCR7c2NvcGUubm9kZS5pZH0tV2ViQUNMYCwge1xuICAgICAgLi4uZmluYWxXZWJhY2xQcm9wcyxcbiAgICAgIGRlZmF1bHRBY3Rpb246IHByb3BzLndlYmFjbFByb3BzPy5kZWZhdWx0QWN0aW9uID8/IGZpbmFsV2ViYWNsUHJvcHMuZGVmYXVsdEFjdGlvblxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHdlYkFjbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXYWZXZWJBY2xQcm9wcyB7XG4gIHJlYWRvbmx5IGV4aXN0aW5nV2ViYWNsT2JqOiB3YWYuQ2ZuV2ViQUNMLFxuICByZWFkb25seSB3ZWJhY2xQcm9wczogd2FmLkNmbldlYkFDTFByb3BzLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hlY2tXYWZXZWJBY2xQcm9wcyhwcm9wc09iamVjdDogV2FmV2ViQWNsUHJvcHMgfCBhbnkpIHtcbiAgbGV0IGVycm9yTWVzc2FnZXMgPSAnJztcbiAgbGV0IGVycm9yRm91bmQgPSBmYWxzZTtcblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdXZWJhY2xPYmogJiYgcHJvcHNPYmplY3Qud2ViYWNsUHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGV4aXN0aW5nV2ViYWNsT2JqIG9yIHdlYmFjbFByb3BzLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChlcnJvckZvdW5kKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZXMpO1xuICB9XG59Il19
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-solutions-constructs/core",
3
- "version": "2.86.0",
3
+ "version": "2.91.0",
4
4
  "description": "Core CDK Construct for patterns library",
5
5
  "main": "index.js",
6
6
  "types": "index.ts",
@@ -66,7 +66,7 @@
66
66
  "@types/jest": "^27.4.0",
67
67
  "@types/node": "^10.3.0",
68
68
  "constructs": "^10.0.0",
69
- "aws-cdk-lib": "2.193.0"
69
+ "aws-cdk-lib": "2.210.0"
70
70
  },
71
71
  "jest": {
72
72
  "moduleFileExtensions": [
@@ -89,6 +89,6 @@
89
89
  ],
90
90
  "peerDependencies": {
91
91
  "constructs": "^10.0.0",
92
- "aws-cdk-lib": "^2.193.0"
92
+ "aws-cdk-lib": "^2.210.0"
93
93
  }
94
94
  }