@horietakehiro/aws-cdk-utul 0.41.55 → 0.41.57

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 (151) hide show
  1. package/lib/types/cfn-resource-types/aws-apigatewayv2-integration.d.ts +1 -1
  2. package/lib/types/cfn-resource-types/aws-apigatewayv2-integration.js +1 -1
  3. package/lib/types/cfn-resource-types/aws-arcregionswitch-plan.d.ts +35 -2
  4. package/lib/types/cfn-resource-types/aws-arcregionswitch-plan.js +1 -1
  5. package/lib/types/cfn-resource-types/aws-autoscaling-autoscalinggroup.d.ts +8 -0
  6. package/lib/types/cfn-resource-types/aws-autoscaling-autoscalinggroup.js +1 -1
  7. package/lib/types/cfn-resource-types/aws-bedrockagentcore-gateway.d.ts +26 -1
  8. package/lib/types/cfn-resource-types/aws-bedrockagentcore-gateway.js +1 -1
  9. package/lib/types/cfn-resource-types/aws-bedrockagentcore-gatewaytarget.d.ts +7 -1
  10. package/lib/types/cfn-resource-types/aws-bedrockagentcore-gatewaytarget.js +1 -1
  11. package/lib/types/cfn-resource-types/aws-bedrockagentcore-memory.d.ts +53 -4
  12. package/lib/types/cfn-resource-types/aws-bedrockagentcore-memory.js +1 -1
  13. package/lib/types/cfn-resource-types/aws-bedrockagentcore-runtime.d.ts +4 -0
  14. package/lib/types/cfn-resource-types/aws-bedrockagentcore-runtime.js +1 -1
  15. package/lib/types/cfn-resource-types/aws-billing-billingview.d.ts +8 -0
  16. package/lib/types/cfn-resource-types/aws-billing-billingview.js +1 -1
  17. package/lib/types/cfn-resource-types/aws-billingconductor-customlineitem.d.ts +6 -4
  18. package/lib/types/cfn-resource-types/aws-billingconductor-customlineitem.js +1 -1
  19. package/lib/types/cfn-resource-types/aws-cases-caserule.d.ts +149 -0
  20. package/lib/types/cfn-resource-types/aws-cases-caserule.js +3 -0
  21. package/lib/types/cfn-resource-types/aws-cases-domain.d.ts +40 -0
  22. package/lib/types/cfn-resource-types/aws-cases-domain.js +3 -0
  23. package/lib/types/cfn-resource-types/aws-cases-field.d.ts +57 -0
  24. package/lib/types/cfn-resource-types/aws-cases-field.js +3 -0
  25. package/lib/types/cfn-resource-types/aws-cases-layout.d.ts +101 -0
  26. package/lib/types/cfn-resource-types/aws-cases-layout.js +3 -0
  27. package/lib/types/cfn-resource-types/aws-cases-template.d.ts +96 -0
  28. package/lib/types/cfn-resource-types/aws-cases-template.js +3 -0
  29. package/lib/types/cfn-resource-types/aws-cloudfront-distribution.d.ts +4 -0
  30. package/lib/types/cfn-resource-types/aws-cloudfront-distribution.js +1 -1
  31. package/lib/types/cfn-resource-types/aws-connect-contactflowmodule.d.ts +14 -0
  32. package/lib/types/cfn-resource-types/aws-connect-contactflowmodule.js +1 -1
  33. package/lib/types/cfn-resource-types/aws-connect-evaluationform.d.ts +27 -15
  34. package/lib/types/cfn-resource-types/aws-connect-evaluationform.js +1 -1
  35. package/lib/types/cfn-resource-types/aws-connect-hoursofoperation.d.ts +59 -0
  36. package/lib/types/cfn-resource-types/aws-connect-hoursofoperation.js +1 -1
  37. package/lib/types/cfn-resource-types/aws-connectcampaignsv2-campaign.d.ts +30 -2
  38. package/lib/types/cfn-resource-types/aws-connectcampaignsv2-campaign.js +1 -1
  39. package/lib/types/cfn-resource-types/aws-customerprofiles-domain.d.ts +0 -2
  40. package/lib/types/cfn-resource-types/aws-customerprofiles-domain.js +1 -1
  41. package/lib/types/cfn-resource-types/aws-datasync-locationnfs.d.ts +1 -1
  42. package/lib/types/cfn-resource-types/aws-datasync-locationnfs.js +1 -1
  43. package/lib/types/cfn-resource-types/aws-datasync-locationsmb.d.ts +1 -1
  44. package/lib/types/cfn-resource-types/aws-datasync-locationsmb.js +1 -1
  45. package/lib/types/cfn-resource-types/aws-dms-dataprovider.d.ts +1 -1
  46. package/lib/types/cfn-resource-types/aws-dms-dataprovider.js +1 -1
  47. package/lib/types/cfn-resource-types/aws-ec2-clientvpnendpoint.d.ts +2 -0
  48. package/lib/types/cfn-resource-types/aws-ec2-clientvpnendpoint.js +1 -1
  49. package/lib/types/cfn-resource-types/aws-ec2-ec2fleet.d.ts +59 -58
  50. package/lib/types/cfn-resource-types/aws-ec2-ec2fleet.js +1 -1
  51. package/lib/types/cfn-resource-types/aws-ec2-networkinterface.d.ts +35 -21
  52. package/lib/types/cfn-resource-types/aws-ec2-networkinterface.js +1 -1
  53. package/lib/types/cfn-resource-types/aws-ec2-networkinterfaceattachment.d.ts +13 -7
  54. package/lib/types/cfn-resource-types/aws-ec2-networkinterfaceattachment.js +1 -1
  55. package/lib/types/cfn-resource-types/aws-ec2-spotfleet.d.ts +138 -136
  56. package/lib/types/cfn-resource-types/aws-ec2-spotfleet.js +1 -1
  57. package/lib/types/cfn-resource-types/aws-ec2-volume.d.ts +29 -13
  58. package/lib/types/cfn-resource-types/aws-ec2-volume.js +1 -1
  59. package/lib/types/cfn-resource-types/aws-ec2-vpnconcentrator.d.ts +14 -9
  60. package/lib/types/cfn-resource-types/aws-ec2-vpnconcentrator.js +1 -1
  61. package/lib/types/cfn-resource-types/aws-ec2-vpnconnection.d.ts +17 -0
  62. package/lib/types/cfn-resource-types/aws-ec2-vpnconnection.js +1 -1
  63. package/lib/types/cfn-resource-types/aws-ecr-pulltimeupdateexclusion.d.ts +5 -6
  64. package/lib/types/cfn-resource-types/aws-ecr-pulltimeupdateexclusion.js +1 -1
  65. package/lib/types/cfn-resource-types/aws-ecr-repositorycreationtemplate.d.ts +1 -1
  66. package/lib/types/cfn-resource-types/aws-ecr-repositorycreationtemplate.js +1 -1
  67. package/lib/types/cfn-resource-types/aws-ecs-capacityprovider.d.ts +1 -0
  68. package/lib/types/cfn-resource-types/aws-ecs-capacityprovider.js +1 -1
  69. package/lib/types/cfn-resource-types/aws-ecs-service.d.ts +2 -0
  70. package/lib/types/cfn-resource-types/aws-ecs-service.js +1 -1
  71. package/lib/types/cfn-resource-types/aws-eks-nodegroup.d.ts +45 -4
  72. package/lib/types/cfn-resource-types/aws-eks-nodegroup.js +1 -1
  73. package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listener.d.ts +16 -1
  74. package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listener.js +1 -1
  75. package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listenerrule.d.ts +15 -0
  76. package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listenerrule.js +1 -1
  77. package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-loadbalancer.d.ts +3 -0
  78. package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-loadbalancer.js +1 -1
  79. package/lib/types/cfn-resource-types/aws-emr-step.d.ts +8 -0
  80. package/lib/types/cfn-resource-types/aws-emr-step.js +1 -1
  81. package/lib/types/cfn-resource-types/aws-entityresolution-matchingworkflow.d.ts +8 -1
  82. package/lib/types/cfn-resource-types/aws-entityresolution-matchingworkflow.js +1 -1
  83. package/lib/types/cfn-resource-types/aws-fsx-s3accesspointattachment.d.ts +96 -4
  84. package/lib/types/cfn-resource-types/aws-fsx-s3accesspointattachment.js +1 -1
  85. package/lib/types/cfn-resource-types/aws-groundstation-dataflowendpointgroupv2.d.ts +167 -0
  86. package/lib/types/cfn-resource-types/aws-groundstation-dataflowendpointgroupv2.js +3 -0
  87. package/lib/types/cfn-resource-types/aws-iot-topicrule.d.ts +7 -0
  88. package/lib/types/cfn-resource-types/aws-iot-topicrule.js +1 -1
  89. package/lib/types/cfn-resource-types/aws-kafkaconnect-connector.d.ts +4 -0
  90. package/lib/types/cfn-resource-types/aws-kafkaconnect-connector.js +1 -1
  91. package/lib/types/cfn-resource-types/aws-lex-bot.d.ts +39 -13
  92. package/lib/types/cfn-resource-types/aws-lex-bot.js +1 -1
  93. package/lib/types/cfn-resource-types/aws-lex-botalias.d.ts +4 -1
  94. package/lib/types/cfn-resource-types/aws-lex-botalias.js +1 -1
  95. package/lib/types/cfn-resource-types/aws-logs-loggroup.d.ts +1 -0
  96. package/lib/types/cfn-resource-types/aws-logs-loggroup.js +1 -1
  97. package/lib/types/cfn-resource-types/aws-logs-transformer.d.ts +3 -1
  98. package/lib/types/cfn-resource-types/aws-logs-transformer.js +1 -1
  99. package/lib/types/cfn-resource-types/aws-mediatailor-playbackconfiguration.d.ts +35 -0
  100. package/lib/types/cfn-resource-types/aws-mediatailor-playbackconfiguration.js +1 -1
  101. package/lib/types/cfn-resource-types/aws-msk-cluster.d.ts +2 -0
  102. package/lib/types/cfn-resource-types/aws-msk-cluster.js +1 -1
  103. package/lib/types/cfn-resource-types/aws-observabilityadmin-organizationtelemetryrule.d.ts +189 -1
  104. package/lib/types/cfn-resource-types/aws-observabilityadmin-organizationtelemetryrule.js +1 -1
  105. package/lib/types/cfn-resource-types/aws-observabilityadmin-telemetryrule.d.ts +202 -2
  106. package/lib/types/cfn-resource-types/aws-observabilityadmin-telemetryrule.js +1 -1
  107. package/lib/types/cfn-resource-types/aws-odb-odbpeeringconnection.d.ts +8 -0
  108. package/lib/types/cfn-resource-types/aws-odb-odbpeeringconnection.js +1 -1
  109. package/lib/types/cfn-resource-types/aws-organizations-policy.d.ts +1 -1
  110. package/lib/types/cfn-resource-types/aws-organizations-policy.js +1 -1
  111. package/lib/types/cfn-resource-types/aws-paymentcryptography-key.d.ts +1 -1
  112. package/lib/types/cfn-resource-types/aws-paymentcryptography-key.js +1 -1
  113. package/lib/types/cfn-resource-types/aws-pcs-cluster.d.ts +2 -2
  114. package/lib/types/cfn-resource-types/aws-pcs-cluster.js +1 -1
  115. package/lib/types/cfn-resource-types/aws-quicksight-dashboard.d.ts +38 -14
  116. package/lib/types/cfn-resource-types/aws-quicksight-dashboard.js +1 -1
  117. package/lib/types/cfn-resource-types/aws-ram-resourceshare.d.ts +20 -0
  118. package/lib/types/cfn-resource-types/aws-ram-resourceshare.js +1 -1
  119. package/lib/types/cfn-resource-types/aws-route53-hostedzone.d.ts +3 -3
  120. package/lib/types/cfn-resource-types/aws-route53-hostedzone.js +1 -1
  121. package/lib/types/cfn-resource-types/aws-route53profiles-profile.d.ts +4 -0
  122. package/lib/types/cfn-resource-types/aws-route53profiles-profile.js +1 -1
  123. package/lib/types/cfn-resource-types/aws-route53resolver-resolverendpoint.d.ts +8 -0
  124. package/lib/types/cfn-resource-types/aws-route53resolver-resolverendpoint.js +1 -1
  125. package/lib/types/cfn-resource-types/aws-route53resolver-resolverruleassociation.d.ts +1 -0
  126. package/lib/types/cfn-resource-types/aws-route53resolver-resolverruleassociation.js +1 -1
  127. package/lib/types/cfn-resource-types/aws-s3-bucket.d.ts +10 -2
  128. package/lib/types/cfn-resource-types/aws-s3-bucket.js +1 -1
  129. package/lib/types/cfn-resource-types/aws-sagemaker-cluster.d.ts +4 -0
  130. package/lib/types/cfn-resource-types/aws-sagemaker-cluster.js +1 -1
  131. package/lib/types/cfn-resource-types/aws-secretsmanager-secret.d.ts +3 -0
  132. package/lib/types/cfn-resource-types/aws-secretsmanager-secret.js +1 -1
  133. package/lib/types/cfn-resource-types/aws-securityhub-connectorv2.d.ts +25 -23
  134. package/lib/types/cfn-resource-types/aws-securityhub-connectorv2.js +1 -1
  135. package/lib/types/cfn-resource-types/aws-ses-tenant.d.ts +48 -0
  136. package/lib/types/cfn-resource-types/aws-ses-tenant.js +3 -0
  137. package/lib/types/cfn-resource-types/aws-ssm-document.d.ts +37 -37
  138. package/lib/types/cfn-resource-types/aws-ssm-document.js +1 -1
  139. package/lib/types/cfn-resource-types/aws-ssm-maintenancewindowtarget.d.ts +29 -2
  140. package/lib/types/cfn-resource-types/aws-ssm-maintenancewindowtarget.js +1 -1
  141. package/lib/types/cfn-resource-types/aws-ssm-maintenancewindowtask.d.ts +52 -1
  142. package/lib/types/cfn-resource-types/aws-ssm-maintenancewindowtask.js +1 -1
  143. package/lib/types/cfn-resource-types/aws-wisdom-aiprompt.d.ts +1 -1
  144. package/lib/types/cfn-resource-types/aws-wisdom-aiprompt.js +1 -1
  145. package/lib/types/cfn-resource-types/aws-wisdom-assistantassociation.d.ts +9 -3
  146. package/lib/types/cfn-resource-types/aws-wisdom-assistantassociation.js +1 -1
  147. package/lib/types/cfn-resource-types/aws-workspacesweb-usersettings.d.ts +37 -0
  148. package/lib/types/cfn-resource-types/aws-workspacesweb-usersettings.js +1 -1
  149. package/lib/types/cfn-resource-types.d.ts +14 -0
  150. package/lib/types/cfn-resource-types.js +43 -28
  151. package/package.json +1 -1
@@ -113,6 +113,10 @@ export interface Taint {
113
113
  * The node group update configuration.
114
114
  */
115
115
  export interface UpdateConfig {
116
+ /**
117
+ * The configuration for the behavior to follow during an node group version update of this managed node group. You choose between two possible strategies for replacing nodes during an UpdateNodegroupVersion action.
118
+ */
119
+ UpdateStrategy?: string;
116
120
  /**
117
121
  * The maximum number of nodes unavailable at once during a version update. Nodes will be updated in parallel. This value or maxUnavailablePercentage is required to have a value.The maximum number is 100.
118
122
  */
@@ -121,10 +125,6 @@ export interface UpdateConfig {
121
125
  * The maximum percentage of nodes unavailable during a version update. This percentage of nodes will be updated in parallel, up to 100 nodes at once. This value or maxUnavailable is required to have a value.
122
126
  */
123
127
  MaxUnavailablePercentage?: number;
124
- /**
125
- * The configuration for the behavior to follow during an node group version update of this managed node group. You choose between two possible strategies for replacing nodes during an UpdateNodegroupVersion action.
126
- */
127
- UpdateStrategy?: string;
128
128
  }
129
129
  /**
130
130
  * The node auto repair configuration for node group.
@@ -134,4 +134,45 @@ export interface NodeRepairConfig {
134
134
  * Set this value to true to enable node auto repair for the node group.
135
135
  */
136
136
  Enabled?: boolean;
137
+ /**
138
+ * Specify a count threshold of unhealthy nodes, above which node auto repair actions will stop. When using this, you cannot also set MaxUnhealthyNodeThresholdPercentage at the same time.
139
+ */
140
+ MaxUnhealthyNodeThresholdCount?: number;
141
+ /**
142
+ * Specify a percentage threshold of unhealthy nodes, above which node auto repair actions will stop. When using this, you cannot also set MaxUnhealthyNodeThresholdCount at the same time.
143
+ */
144
+ MaxUnhealthyNodeThresholdPercentage?: number;
145
+ /**
146
+ * Specify the maximum number of nodes that can be repaired concurrently or in parallel, expressed as a count of unhealthy nodes. This gives you finer-grained control over the pace of node replacements. When using this, you cannot also set MaxParallelNodesRepairedPercentage at the same time.
147
+ */
148
+ MaxParallelNodesRepairedCount?: number;
149
+ /**
150
+ * Specify the maximum number of nodes that can be repaired concurrently or in parallel, expressed as a percentage of unhealthy nodes. This gives you finer-grained control over the pace of node replacements. When using this, you cannot also set MaxParallelNodesRepairedCount at the same time.
151
+ */
152
+ MaxParallelNodesRepairedPercentage?: number;
153
+ /**
154
+ * Specify granular overrides for specific repair actions. These overrides control the repair action and the repair delay time before a node is considered eligible for repair. If you use this, you must specify all the values.
155
+ */
156
+ NodeRepairConfigOverrides?: NodeRepairConfigOverrides[];
157
+ }
158
+ /**
159
+ * Specify granular overrides for specific repair actions. These overrides control the repair action and the repair delay time before a node is considered eligible for repair. If you use this, you must specify all the values.
160
+ */
161
+ export interface NodeRepairConfigOverrides {
162
+ /**
163
+ * Specify an unhealthy condition reported by the node monitoring agent that this override would apply to.
164
+ */
165
+ NodeMonitoringCondition?: string;
166
+ /**
167
+ * Specify a reason reported by the node monitoring agent that this override would apply to.
168
+ */
169
+ NodeUnhealthyReason?: string;
170
+ /**
171
+ * Specify the minimum time in minutes to wait before attempting to repair a node with this specific NodeMonitoringCondition and NodeUnhealthyReason.
172
+ */
173
+ MinRepairWaitTimeMins?: number;
174
+ /**
175
+ * Specify the repair action to take for nodes when all of the specified conditions are met.
176
+ */
177
+ RepairAction?: ("Replace" | "Reboot" | "NoAction");
137
178
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVrcy1ub2RlZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtZWtzLW5vZGVncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvdXJjZSBzY2hlbWEgZm9yIEFXUzo6RUtTOjpOb2RlZ3JvdXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0VLU19OT0RFR1JPVVAge1xuLyoqXG4gKiBUaGUgQU1JIHR5cGUgZm9yIHlvdXIgbm9kZSBncm91cC5cbiAqL1xuQW1pVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgY2FwYWNpdHkgdHlwZSBvZiB5b3VyIG1hbmFnZWQgbm9kZSBncm91cC5cbiAqL1xuQ2FwYWNpdHlUeXBlPzogc3RyaW5nXG4vKipcbiAqIE5hbWUgb2YgdGhlIGNsdXN0ZXIgdG8gY3JlYXRlIHRoZSBub2RlIGdyb3VwIGluLlxuICovXG5DbHVzdGVyTmFtZTogc3RyaW5nXG4vKipcbiAqIFRoZSByb290IGRldmljZSBkaXNrIHNpemUgKGluIEdpQikgZm9yIHlvdXIgbm9kZSBncm91cCBpbnN0YW5jZXMuXG4gKi9cbkRpc2tTaXplPzogbnVtYmVyXG4vKipcbiAqIEZvcmNlIHRoZSB1cGRhdGUgaWYgdGhlIGV4aXN0aW5nIG5vZGUgZ3JvdXAncyBwb2RzIGFyZSB1bmFibGUgdG8gYmUgZHJhaW5lZCBkdWUgdG8gYSBwb2QgZGlzcnVwdGlvbiBidWRnZXQgaXNzdWUuXG4gKi9cbkZvcmNlVXBkYXRlRW5hYmxlZD86IGJvb2xlYW5cbi8qKlxuICogU3BlY2lmeSB0aGUgaW5zdGFuY2UgdHlwZXMgZm9yIGEgbm9kZSBncm91cC5cbiAqL1xuSW5zdGFuY2VUeXBlcz86IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBLdWJlcm5ldGVzIGxhYmVscyB0byBiZSBhcHBsaWVkIHRvIHRoZSBub2RlcyBpbiB0aGUgbm9kZSBncm91cCB3aGVuIHRoZXkgYXJlIGNyZWF0ZWQuXG4gKi9cbkxhYmVscz86IHtcbi8qKlxuICogVGhpcyBpbnRlcmZhY2Ugd2FzIHJlZmVyZW5jZWQgYnkgYHVuZGVmaW5lZGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXi4rJFwiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG5MYXVuY2hUZW1wbGF0ZT86IExhdW5jaFRlbXBsYXRlU3BlY2lmaWNhdGlvblxuLyoqXG4gKiBUaGUgdW5pcXVlIG5hbWUgdG8gZ2l2ZSB5b3VyIG5vZGUgZ3JvdXAuXG4gKi9cbk5vZGVncm91cE5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBJQU0gcm9sZSB0byBhc3NvY2lhdGUgd2l0aCB5b3VyIG5vZGUgZ3JvdXAuXG4gKi9cbk5vZGVSb2xlOiBzdHJpbmdcbi8qKlxuICogVGhlIEFNSSB2ZXJzaW9uIG9mIHRoZSBBbWF6b24gRUtTLW9wdGltaXplZCBBTUkgdG8gdXNlIHdpdGggeW91ciBub2RlIGdyb3VwLlxuICovXG5SZWxlYXNlVmVyc2lvbj86IHN0cmluZ1xuUmVtb3RlQWNjZXNzPzogUmVtb3RlQWNjZXNzXG5TY2FsaW5nQ29uZmlnPzogU2NhbGluZ0NvbmZpZ1xuLyoqXG4gKiBUaGUgc3VibmV0cyB0byB1c2UgZm9yIHRoZSBBdXRvIFNjYWxpbmcgZ3JvdXAgdGhhdCBpcyBjcmVhdGVkIGZvciB5b3VyIG5vZGUgZ3JvdXAuXG4gKi9cblN1Ym5ldHM6IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBtZXRhZGF0YSwgYXMga2V5LXZhbHVlIHBhaXJzLCB0byBhcHBseSB0byB0aGUgbm9kZSBncm91cCB0byBhc3Npc3Qgd2l0aCBjYXRlZ29yaXphdGlvbiBhbmQgb3JnYW5pemF0aW9uLiBGb2xsb3dzIHNhbWUgc2NoZW1hIGFzIExhYmVscyBmb3IgY29uc2lzdGVuY3kuXG4gKi9cblRhZ3M/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIl4uKyRcIi5cbiAqL1xuW2s6IHN0cmluZ106IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgS3ViZXJuZXRlcyB0YWludHMgdG8gYmUgYXBwbGllZCB0byB0aGUgbm9kZXMgaW4gdGhlIG5vZGUgZ3JvdXAgd2hlbiB0aGV5IGFyZSBjcmVhdGVkLlxuICovXG5UYWludHM/OiBUYWludFtdXG5VcGRhdGVDb25maWc/OiBVcGRhdGVDb25maWdcbk5vZGVSZXBhaXJDb25maWc/OiBOb2RlUmVwYWlyQ29uZmlnXG4vKipcbiAqIFRoZSBLdWJlcm5ldGVzIHZlcnNpb24gdG8gdXNlIGZvciB5b3VyIG1hbmFnZWQgbm9kZXMuXG4gKi9cblZlcnNpb24/OiBzdHJpbmdcbklkPzogc3RyaW5nXG5Bcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogQW4gb2JqZWN0IHJlcHJlc2VudGluZyBhIG5vZGUgZ3JvdXAncyBsYXVuY2ggdGVtcGxhdGUgc3BlY2lmaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYXVuY2hUZW1wbGF0ZVNwZWNpZmljYXRpb24ge1xuSWQ/OiBzdHJpbmdcblZlcnNpb24/OiBzdHJpbmdcbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIHJlbW90ZSBhY2Nlc3MgKFNTSCkgY29uZmlndXJhdGlvbiB0byB1c2Ugd2l0aCB5b3VyIG5vZGUgZ3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3RlQWNjZXNzIHtcblNvdXJjZVNlY3VyaXR5R3JvdXBzPzogc3RyaW5nW11cbkVjMlNzaEtleTogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBzY2FsaW5nIGNvbmZpZ3VyYXRpb24gZGV0YWlscyBmb3IgdGhlIEF1dG8gU2NhbGluZyBncm91cCB0aGF0IGlzIGNyZWF0ZWQgZm9yIHlvdXIgbm9kZSBncm91cC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2FsaW5nQ29uZmlnIHtcbk1pblNpemU/OiBudW1iZXJcbkRlc2lyZWRTaXplPzogbnVtYmVyXG5NYXhTaXplPzogbnVtYmVyXG59XG4vKipcbiAqIEFuIG9iamVjdCByZXByZXNlbnRpbmcgYSBUYWludCBzcGVjaWZpY2F0aW9uIGZvciBBV1MgRUtTIE5vZGVncm91cC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWludCB7XG5LZXk/OiBzdHJpbmdcblZhbHVlPzogc3RyaW5nXG5FZmZlY3Q/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIG5vZGUgZ3JvdXAgdXBkYXRlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQ29uZmlnIHtcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIG5vZGVzIHVuYXZhaWxhYmxlIGF0IG9uY2UgZHVyaW5nIGEgdmVyc2lvbiB1cGRhdGUuIE5vZGVzIHdpbGwgYmUgdXBkYXRlZCBpbiBwYXJhbGxlbC4gVGhpcyB2YWx1ZSBvciBtYXhVbmF2YWlsYWJsZVBlcmNlbnRhZ2UgaXMgcmVxdWlyZWQgdG8gaGF2ZSBhIHZhbHVlLlRoZSBtYXhpbXVtIG51bWJlciBpcyAxMDAuIFxuICovXG5NYXhVbmF2YWlsYWJsZT86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBwZXJjZW50YWdlIG9mIG5vZGVzIHVuYXZhaWxhYmxlIGR1cmluZyBhIHZlcnNpb24gdXBkYXRlLiBUaGlzIHBlcmNlbnRhZ2Ugb2Ygbm9kZXMgd2lsbCBiZSB1cGRhdGVkIGluIHBhcmFsbGVsLCB1cCB0byAxMDAgbm9kZXMgYXQgb25jZS4gVGhpcyB2YWx1ZSBvciBtYXhVbmF2YWlsYWJsZSBpcyByZXF1aXJlZCB0byBoYXZlIGEgdmFsdWUuXG4gKi9cbk1heFVuYXZhaWxhYmxlUGVyY2VudGFnZT86IG51bWJlclxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGJlaGF2aW9yIHRvIGZvbGxvdyBkdXJpbmcgYW4gbm9kZSBncm91cCB2ZXJzaW9uIHVwZGF0ZSBvZiB0aGlzIG1hbmFnZWQgbm9kZSBncm91cC4gWW91IGNob29zZSBiZXR3ZWVuIHR3byBwb3NzaWJsZSBzdHJhdGVnaWVzIGZvciByZXBsYWNpbmcgbm9kZXMgZHVyaW5nIGFuIFVwZGF0ZU5vZGVncm91cFZlcnNpb24gYWN0aW9uLlxuICovXG5VcGRhdGVTdHJhdGVneT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgbm9kZSBhdXRvIHJlcGFpciBjb25maWd1cmF0aW9uIGZvciBub2RlIGdyb3VwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVSZXBhaXJDb25maWcge1xuLyoqXG4gKiBTZXQgdGhpcyB2YWx1ZSB0byB0cnVlIHRvIGVuYWJsZSBub2RlIGF1dG8gcmVwYWlyIGZvciB0aGUgbm9kZSBncm91cC5cbiAqL1xuRW5hYmxlZD86IGJvb2xlYW5cbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVrcy1ub2RlZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtZWtzLW5vZGVncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvdXJjZSBzY2hlbWEgZm9yIEFXUzo6RUtTOjpOb2RlZ3JvdXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0VLU19OT0RFR1JPVVAge1xuLyoqXG4gKiBUaGUgQU1JIHR5cGUgZm9yIHlvdXIgbm9kZSBncm91cC5cbiAqL1xuQW1pVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgY2FwYWNpdHkgdHlwZSBvZiB5b3VyIG1hbmFnZWQgbm9kZSBncm91cC5cbiAqL1xuQ2FwYWNpdHlUeXBlPzogc3RyaW5nXG4vKipcbiAqIE5hbWUgb2YgdGhlIGNsdXN0ZXIgdG8gY3JlYXRlIHRoZSBub2RlIGdyb3VwIGluLlxuICovXG5DbHVzdGVyTmFtZTogc3RyaW5nXG4vKipcbiAqIFRoZSByb290IGRldmljZSBkaXNrIHNpemUgKGluIEdpQikgZm9yIHlvdXIgbm9kZSBncm91cCBpbnN0YW5jZXMuXG4gKi9cbkRpc2tTaXplPzogbnVtYmVyXG4vKipcbiAqIEZvcmNlIHRoZSB1cGRhdGUgaWYgdGhlIGV4aXN0aW5nIG5vZGUgZ3JvdXAncyBwb2RzIGFyZSB1bmFibGUgdG8gYmUgZHJhaW5lZCBkdWUgdG8gYSBwb2QgZGlzcnVwdGlvbiBidWRnZXQgaXNzdWUuXG4gKi9cbkZvcmNlVXBkYXRlRW5hYmxlZD86IGJvb2xlYW5cbi8qKlxuICogU3BlY2lmeSB0aGUgaW5zdGFuY2UgdHlwZXMgZm9yIGEgbm9kZSBncm91cC5cbiAqL1xuSW5zdGFuY2VUeXBlcz86IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBLdWJlcm5ldGVzIGxhYmVscyB0byBiZSBhcHBsaWVkIHRvIHRoZSBub2RlcyBpbiB0aGUgbm9kZSBncm91cCB3aGVuIHRoZXkgYXJlIGNyZWF0ZWQuXG4gKi9cbkxhYmVscz86IHtcbi8qKlxuICogVGhpcyBpbnRlcmZhY2Ugd2FzIHJlZmVyZW5jZWQgYnkgYHVuZGVmaW5lZGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXi4rJFwiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG5MYXVuY2hUZW1wbGF0ZT86IExhdW5jaFRlbXBsYXRlU3BlY2lmaWNhdGlvblxuLyoqXG4gKiBUaGUgdW5pcXVlIG5hbWUgdG8gZ2l2ZSB5b3VyIG5vZGUgZ3JvdXAuXG4gKi9cbk5vZGVncm91cE5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBJQU0gcm9sZSB0byBhc3NvY2lhdGUgd2l0aCB5b3VyIG5vZGUgZ3JvdXAuXG4gKi9cbk5vZGVSb2xlOiBzdHJpbmdcbi8qKlxuICogVGhlIEFNSSB2ZXJzaW9uIG9mIHRoZSBBbWF6b24gRUtTLW9wdGltaXplZCBBTUkgdG8gdXNlIHdpdGggeW91ciBub2RlIGdyb3VwLlxuICovXG5SZWxlYXNlVmVyc2lvbj86IHN0cmluZ1xuUmVtb3RlQWNjZXNzPzogUmVtb3RlQWNjZXNzXG5TY2FsaW5nQ29uZmlnPzogU2NhbGluZ0NvbmZpZ1xuLyoqXG4gKiBUaGUgc3VibmV0cyB0byB1c2UgZm9yIHRoZSBBdXRvIFNjYWxpbmcgZ3JvdXAgdGhhdCBpcyBjcmVhdGVkIGZvciB5b3VyIG5vZGUgZ3JvdXAuXG4gKi9cblN1Ym5ldHM6IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBtZXRhZGF0YSwgYXMga2V5LXZhbHVlIHBhaXJzLCB0byBhcHBseSB0byB0aGUgbm9kZSBncm91cCB0byBhc3Npc3Qgd2l0aCBjYXRlZ29yaXphdGlvbiBhbmQgb3JnYW5pemF0aW9uLiBGb2xsb3dzIHNhbWUgc2NoZW1hIGFzIExhYmVscyBmb3IgY29uc2lzdGVuY3kuXG4gKi9cblRhZ3M/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIl4uKyRcIi5cbiAqL1xuW2s6IHN0cmluZ106IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgS3ViZXJuZXRlcyB0YWludHMgdG8gYmUgYXBwbGllZCB0byB0aGUgbm9kZXMgaW4gdGhlIG5vZGUgZ3JvdXAgd2hlbiB0aGV5IGFyZSBjcmVhdGVkLlxuICovXG5UYWludHM/OiBUYWludFtdXG5VcGRhdGVDb25maWc/OiBVcGRhdGVDb25maWdcbk5vZGVSZXBhaXJDb25maWc/OiBOb2RlUmVwYWlyQ29uZmlnXG4vKipcbiAqIFRoZSBLdWJlcm5ldGVzIHZlcnNpb24gdG8gdXNlIGZvciB5b3VyIG1hbmFnZWQgbm9kZXMuXG4gKi9cblZlcnNpb24/OiBzdHJpbmdcbklkPzogc3RyaW5nXG5Bcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogQW4gb2JqZWN0IHJlcHJlc2VudGluZyBhIG5vZGUgZ3JvdXAncyBsYXVuY2ggdGVtcGxhdGUgc3BlY2lmaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYXVuY2hUZW1wbGF0ZVNwZWNpZmljYXRpb24ge1xuSWQ/OiBzdHJpbmdcblZlcnNpb24/OiBzdHJpbmdcbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIHJlbW90ZSBhY2Nlc3MgKFNTSCkgY29uZmlndXJhdGlvbiB0byB1c2Ugd2l0aCB5b3VyIG5vZGUgZ3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3RlQWNjZXNzIHtcblNvdXJjZVNlY3VyaXR5R3JvdXBzPzogc3RyaW5nW11cbkVjMlNzaEtleTogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBzY2FsaW5nIGNvbmZpZ3VyYXRpb24gZGV0YWlscyBmb3IgdGhlIEF1dG8gU2NhbGluZyBncm91cCB0aGF0IGlzIGNyZWF0ZWQgZm9yIHlvdXIgbm9kZSBncm91cC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2FsaW5nQ29uZmlnIHtcbk1pblNpemU/OiBudW1iZXJcbkRlc2lyZWRTaXplPzogbnVtYmVyXG5NYXhTaXplPzogbnVtYmVyXG59XG4vKipcbiAqIEFuIG9iamVjdCByZXByZXNlbnRpbmcgYSBUYWludCBzcGVjaWZpY2F0aW9uIGZvciBBV1MgRUtTIE5vZGVncm91cC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWludCB7XG5LZXk/OiBzdHJpbmdcblZhbHVlPzogc3RyaW5nXG5FZmZlY3Q/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIG5vZGUgZ3JvdXAgdXBkYXRlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQ29uZmlnIHtcbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBiZWhhdmlvciB0byBmb2xsb3cgZHVyaW5nIGFuIG5vZGUgZ3JvdXAgdmVyc2lvbiB1cGRhdGUgb2YgdGhpcyBtYW5hZ2VkIG5vZGUgZ3JvdXAuIFlvdSBjaG9vc2UgYmV0d2VlbiB0d28gcG9zc2libGUgc3RyYXRlZ2llcyBmb3IgcmVwbGFjaW5nIG5vZGVzIGR1cmluZyBhbiBVcGRhdGVOb2RlZ3JvdXBWZXJzaW9uIGFjdGlvbi5cbiAqL1xuVXBkYXRlU3RyYXRlZ3k/OiBzdHJpbmdcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIG5vZGVzIHVuYXZhaWxhYmxlIGF0IG9uY2UgZHVyaW5nIGEgdmVyc2lvbiB1cGRhdGUuIE5vZGVzIHdpbGwgYmUgdXBkYXRlZCBpbiBwYXJhbGxlbC4gVGhpcyB2YWx1ZSBvciBtYXhVbmF2YWlsYWJsZVBlcmNlbnRhZ2UgaXMgcmVxdWlyZWQgdG8gaGF2ZSBhIHZhbHVlLlRoZSBtYXhpbXVtIG51bWJlciBpcyAxMDAuIFxuICovXG5NYXhVbmF2YWlsYWJsZT86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBwZXJjZW50YWdlIG9mIG5vZGVzIHVuYXZhaWxhYmxlIGR1cmluZyBhIHZlcnNpb24gdXBkYXRlLiBUaGlzIHBlcmNlbnRhZ2Ugb2Ygbm9kZXMgd2lsbCBiZSB1cGRhdGVkIGluIHBhcmFsbGVsLCB1cCB0byAxMDAgbm9kZXMgYXQgb25jZS4gVGhpcyB2YWx1ZSBvciBtYXhVbmF2YWlsYWJsZSBpcyByZXF1aXJlZCB0byBoYXZlIGEgdmFsdWUuXG4gKi9cbk1heFVuYXZhaWxhYmxlUGVyY2VudGFnZT86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbm9kZSBhdXRvIHJlcGFpciBjb25maWd1cmF0aW9uIGZvciBub2RlIGdyb3VwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVSZXBhaXJDb25maWcge1xuLyoqXG4gKiBTZXQgdGhpcyB2YWx1ZSB0byB0cnVlIHRvIGVuYWJsZSBub2RlIGF1dG8gcmVwYWlyIGZvciB0aGUgbm9kZSBncm91cC5cbiAqL1xuRW5hYmxlZD86IGJvb2xlYW5cbi8qKlxuICogU3BlY2lmeSBhIGNvdW50IHRocmVzaG9sZCBvZiB1bmhlYWx0aHkgbm9kZXMsIGFib3ZlIHdoaWNoIG5vZGUgYXV0byByZXBhaXIgYWN0aW9ucyB3aWxsIHN0b3AuIFdoZW4gdXNpbmcgdGhpcywgeW91IGNhbm5vdCBhbHNvIHNldCBNYXhVbmhlYWx0aHlOb2RlVGhyZXNob2xkUGVyY2VudGFnZSBhdCB0aGUgc2FtZSB0aW1lLlxuICovXG5NYXhVbmhlYWx0aHlOb2RlVGhyZXNob2xkQ291bnQ/OiBudW1iZXJcbi8qKlxuICogU3BlY2lmeSBhIHBlcmNlbnRhZ2UgdGhyZXNob2xkIG9mIHVuaGVhbHRoeSBub2RlcywgYWJvdmUgd2hpY2ggbm9kZSBhdXRvIHJlcGFpciBhY3Rpb25zIHdpbGwgc3RvcC4gV2hlbiB1c2luZyB0aGlzLCB5b3UgY2Fubm90IGFsc28gc2V0IE1heFVuaGVhbHRoeU5vZGVUaHJlc2hvbGRDb3VudCBhdCB0aGUgc2FtZSB0aW1lLlxuICovXG5NYXhVbmhlYWx0aHlOb2RlVGhyZXNob2xkUGVyY2VudGFnZT86IG51bWJlclxuLyoqXG4gKiBTcGVjaWZ5IHRoZSBtYXhpbXVtIG51bWJlciBvZiBub2RlcyB0aGF0IGNhbiBiZSByZXBhaXJlZCBjb25jdXJyZW50bHkgb3IgaW4gcGFyYWxsZWwsIGV4cHJlc3NlZCBhcyBhIGNvdW50IG9mIHVuaGVhbHRoeSBub2Rlcy4gVGhpcyBnaXZlcyB5b3UgZmluZXItZ3JhaW5lZCBjb250cm9sIG92ZXIgdGhlIHBhY2Ugb2Ygbm9kZSByZXBsYWNlbWVudHMuIFdoZW4gdXNpbmcgdGhpcywgeW91IGNhbm5vdCBhbHNvIHNldCBNYXhQYXJhbGxlbE5vZGVzUmVwYWlyZWRQZXJjZW50YWdlIGF0IHRoZSBzYW1lIHRpbWUuXG4gKi9cbk1heFBhcmFsbGVsTm9kZXNSZXBhaXJlZENvdW50PzogbnVtYmVyXG4vKipcbiAqIFNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIG5vZGVzIHRoYXQgY2FuIGJlIHJlcGFpcmVkIGNvbmN1cnJlbnRseSBvciBpbiBwYXJhbGxlbCwgZXhwcmVzc2VkIGFzIGEgcGVyY2VudGFnZSBvZiB1bmhlYWx0aHkgbm9kZXMuIFRoaXMgZ2l2ZXMgeW91IGZpbmVyLWdyYWluZWQgY29udHJvbCBvdmVyIHRoZSBwYWNlIG9mIG5vZGUgcmVwbGFjZW1lbnRzLiBXaGVuIHVzaW5nIHRoaXMsIHlvdSBjYW5ub3QgYWxzbyBzZXQgTWF4UGFyYWxsZWxOb2Rlc1JlcGFpcmVkQ291bnQgYXQgdGhlIHNhbWUgdGltZS5cbiAqL1xuTWF4UGFyYWxsZWxOb2Rlc1JlcGFpcmVkUGVyY2VudGFnZT86IG51bWJlclxuLyoqXG4gKiBTcGVjaWZ5IGdyYW51bGFyIG92ZXJyaWRlcyBmb3Igc3BlY2lmaWMgcmVwYWlyIGFjdGlvbnMuIFRoZXNlIG92ZXJyaWRlcyBjb250cm9sIHRoZSByZXBhaXIgYWN0aW9uIGFuZCB0aGUgcmVwYWlyIGRlbGF5IHRpbWUgYmVmb3JlIGEgbm9kZSBpcyBjb25zaWRlcmVkIGVsaWdpYmxlIGZvciByZXBhaXIuIElmIHlvdSB1c2UgdGhpcywgeW91IG11c3Qgc3BlY2lmeSBhbGwgdGhlIHZhbHVlcy5cbiAqL1xuTm9kZVJlcGFpckNvbmZpZ092ZXJyaWRlcz86IE5vZGVSZXBhaXJDb25maWdPdmVycmlkZXNbXVxufVxuLyoqXG4gKiBTcGVjaWZ5IGdyYW51bGFyIG92ZXJyaWRlcyBmb3Igc3BlY2lmaWMgcmVwYWlyIGFjdGlvbnMuIFRoZXNlIG92ZXJyaWRlcyBjb250cm9sIHRoZSByZXBhaXIgYWN0aW9uIGFuZCB0aGUgcmVwYWlyIGRlbGF5IHRpbWUgYmVmb3JlIGEgbm9kZSBpcyBjb25zaWRlcmVkIGVsaWdpYmxlIGZvciByZXBhaXIuIElmIHlvdSB1c2UgdGhpcywgeW91IG11c3Qgc3BlY2lmeSBhbGwgdGhlIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb2RlUmVwYWlyQ29uZmlnT3ZlcnJpZGVzIHtcbi8qKlxuICogU3BlY2lmeSBhbiB1bmhlYWx0aHkgY29uZGl0aW9uIHJlcG9ydGVkIGJ5IHRoZSBub2RlIG1vbml0b3JpbmcgYWdlbnQgdGhhdCB0aGlzIG92ZXJyaWRlIHdvdWxkIGFwcGx5IHRvLlxuICovXG5Ob2RlTW9uaXRvcmluZ0NvbmRpdGlvbj86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZ5IGEgcmVhc29uIHJlcG9ydGVkIGJ5IHRoZSBub2RlIG1vbml0b3JpbmcgYWdlbnQgdGhhdCB0aGlzIG92ZXJyaWRlIHdvdWxkIGFwcGx5IHRvLlxuICovXG5Ob2RlVW5oZWFsdGh5UmVhc29uPzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZnkgdGhlIG1pbmltdW0gdGltZSBpbiBtaW51dGVzIHRvIHdhaXQgYmVmb3JlIGF0dGVtcHRpbmcgdG8gcmVwYWlyIGEgbm9kZSB3aXRoIHRoaXMgc3BlY2lmaWMgTm9kZU1vbml0b3JpbmdDb25kaXRpb24gYW5kIE5vZGVVbmhlYWx0aHlSZWFzb24uXG4gKi9cbk1pblJlcGFpcldhaXRUaW1lTWlucz86IG51bWJlclxuLyoqXG4gKiBTcGVjaWZ5IHRoZSByZXBhaXIgYWN0aW9uIHRvIHRha2UgZm9yIG5vZGVzIHdoZW4gYWxsIG9mIHRoZSBzcGVjaWZpZWQgY29uZGl0aW9ucyBhcmUgbWV0LlxuICovXG5SZXBhaXJBY3Rpb24/OiAoXCJSZXBsYWNlXCIgfCBcIlJlYm9vdFwiIHwgXCJOb0FjdGlvblwiKVxufVxuIl19
@@ -102,7 +102,7 @@ export interface _AWS_ELASTICLOADBALANCINGV2_LISTENER {
102
102
  */
103
103
  Certificates?: Certificate[];
104
104
  /**
105
- * The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer.
105
+ * The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, TCP_UDP, QUIC, and TCP_QUIC. You can’t specify the UDP, TCP_UDP, QUIC, or TCP_QUIC protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer.
106
106
  */
107
107
  Protocol?: string;
108
108
  }
@@ -282,14 +282,29 @@ export interface RedirectConfig {
282
282
  */
283
283
  StatusCode: string;
284
284
  }
285
+ /**
286
+ * [HTTPS listeners] Information for validating JWT access tokens in client requests. Specify only when ``Type`` is ``jwt-validation``.
287
+ */
285
288
  export interface JwtValidationConfig {
286
289
  JwksEndpoint: string;
287
290
  Issuer: string;
288
291
  AdditionalClaims?: JwtValidationActionAdditionalClaim[];
289
292
  }
293
+ /**
294
+ * Information about an additional claim to validate.
295
+ */
290
296
  export interface JwtValidationActionAdditionalClaim {
297
+ /**
298
+ * The format of the claim value.
299
+ */
291
300
  Format: string;
301
+ /**
302
+ * The claim value. The maximum size of the list is 10. Each value can be up to 256 characters in length. If the format is ``space-separated-values``, the values can't include spaces.
303
+ */
292
304
  Values: string[];
305
+ /**
306
+ * The name of the claim. You can't specify ``exp``, ``iss``, ``nbf``, or ``iat`` because we validate them by default.
307
+ */
293
308
  Name: string;
294
309
  }
295
310
  /**
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbGlzdGVuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi1saXN0ZW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBbSFRUUFMgbGlzdGVuZXJzXSBJbmZvcm1hdGlvbiBhYm91dCBhbiBpZGVudGl0eSBwcm92aWRlciB0aGF0IGlzIGNvbXBsaWFudCB3aXRoIE9wZW5JRCBDb25uZWN0IChPSURDKS4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBhdXRoZW50aWNhdGUtb2lkY2BgLlxuICovXG5leHBvcnQgdHlwZSBBdXRoZW50aWNhdGVPaWRjQ29uZmlnID0gKHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59ICYge1xuLyoqXG4gKiBUaGUgYmVoYXZpb3IgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQuIFRoZSBmb2xsb3dpbmcgYXJlIHBvc3NpYmxlIHZhbHVlczpcbiAqICAgKyAgZGVueWBgYGAgLSBSZXR1cm4gYW4gSFRUUCA0MDEgVW5hdXRob3JpemVkIGVycm9yLlxuICogICArICBhbGxvd2BgYGAgLSBBbGxvdyB0aGUgcmVxdWVzdCB0byBiZSBmb3J3YXJkZWQgdG8gdGhlIHRhcmdldC5cbiAqICAgKyAgYXV0aGVudGljYXRlYGBgYCAtIFJlZGlyZWN0IHRoZSByZXF1ZXN0IHRvIHRoZSBJZFAgYXV0aG9yaXphdGlvbiBlbmRwb2ludC4gVGhpcyBpcyB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAqL1xuT25VbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSB0b2tlbiBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Ub2tlbkVuZHBvaW50OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gdXNlIHRoZSBleGlzdGluZyBjbGllbnQgc2VjcmV0IHdoZW4gbW9kaWZ5aW5nIGEgcnVsZS4gSWYgeW91IGFyZSBjcmVhdGluZyBhIHJ1bGUsIHlvdSBjYW4gb21pdCB0aGlzIHBhcmFtZXRlciBvciBzZXQgaXQgdG8gZmFsc2UuXG4gKi9cblVzZUV4aXN0aW5nQ2xpZW50U2VjcmV0PzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbWF4aW11bSBkdXJhdGlvbiBvZiB0aGUgYXV0aGVudGljYXRpb24gc2Vzc2lvbiwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuXG4gKi9cblNlc3Npb25UaW1lb3V0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBzZXQgb2YgdXNlciBjbGFpbXMgdG8gYmUgcmVxdWVzdGVkIGZyb20gdGhlIElkUC4gVGhlIGRlZmF1bHQgaXMgYGBvcGVuaWRgYC5cbiAqICBUbyB2ZXJpZnkgd2hpY2ggc2NvcGUgdmFsdWVzIHlvdXIgSWRQIHN1cHBvcnRzIGFuZCBob3cgdG8gc2VwYXJhdGUgbXVsdGlwbGUgdmFsdWVzLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgSWRQLlxuICovXG5TY29wZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgT0lEQyBpc3N1ZXIgaWRlbnRpZmllciBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Jc3N1ZXI6IHN0cmluZ1xuLyoqXG4gKiBUaGUgT0F1dGggMi4wIGNsaWVudCBzZWNyZXQuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIGlmIHlvdSBhcmUgY3JlYXRpbmcgYSBydWxlLiBJZiB5b3UgYXJlIG1vZGlmeWluZyBhIHJ1bGUsIHlvdSBjYW4gb21pdCB0aGlzIHBhcmFtZXRlciBpZiB5b3Ugc2V0IGBgVXNlRXhpc3RpbmdDbGllbnRTZWNyZXRgYCB0byB0cnVlLlxuICovXG5DbGllbnRTZWNyZXQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIHVzZXIgaW5mbyBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Vc2VySW5mb0VuZHBvaW50OiBzdHJpbmdcbi8qKlxuICogVGhlIE9BdXRoIDIuMCBjbGllbnQgaWRlbnRpZmllci5cbiAqL1xuQ2xpZW50SWQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5BdXRob3JpemF0aW9uRW5kcG9pbnQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgY29va2llIHVzZWQgdG8gbWFpbnRhaW4gc2Vzc2lvbiBpbmZvcm1hdGlvbi4gVGhlIGRlZmF1bHQgaXMgQVdTRUxCQXV0aFNlc3Npb25Db29raWUuXG4gKi9cblNlc3Npb25Db29raWVOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBxdWVyeSBwYXJhbWV0ZXJzICh1cCB0byAxMCkgdG8gaW5jbHVkZSBpbiB0aGUgcmVkaXJlY3QgcmVxdWVzdCB0byB0aGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludC5cbiAqL1xuQXV0aGVudGljYXRpb25SZXF1ZXN0RXh0cmFQYXJhbXM/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIlthLXpBLVowLTldK1wiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG59KVxuXG4vKipcbiAqIFNwZWNpZmllcyBhIGxpc3RlbmVyIGZvciBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCBOZXR3b3JrIExvYWQgQmFsYW5jZXIsIG9yIEdhdGV3YXkgTG9hZCBCYWxhbmNlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0VMQVNUSUNMT0FEQkFMQU5DSU5HVjJfTElTVEVORVIge1xuTGlzdGVuZXJBcm4/OiBzdHJpbmdcbk11dHVhbEF1dGhlbnRpY2F0aW9uPzogTXV0dWFsQXV0aGVudGljYXRpb25cbi8qKlxuICogVGhlIGxpc3RlbmVyIGF0dHJpYnV0ZXMuIEF0dHJpYnV0ZXMgdGhhdCB5b3UgZG8gbm90IG1vZGlmeSByZXRhaW4gdGhlaXIgY3VycmVudCB2YWx1ZXMuXG4gKi9cbkxpc3RlbmVyQXR0cmlidXRlcz86IExpc3RlbmVyQXR0cmlidXRlW11cbi8qKlxuICogW1RMUyBsaXN0ZW5lcl0gVGhlIG5hbWUgb2YgdGhlIEFwcGxpY2F0aW9uLUxheWVyIFByb3RvY29sIE5lZ290aWF0aW9uIChBTFBOKSBwb2xpY3kuXG4gKi9cbkFscG5Qb2xpY3k/OiBzdHJpbmdbXVxuLyoqXG4gKiBbSFRUUFMgYW5kIFRMUyBsaXN0ZW5lcnNdIFRoZSBzZWN1cml0eSBwb2xpY3kgdGhhdCBkZWZpbmVzIHdoaWNoIHByb3RvY29scyBhbmQgY2lwaGVycyBhcmUgc3VwcG9ydGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTZWN1cml0eSBwb2xpY2llc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9hcHBsaWNhdGlvbi9kZXNjcmliZS1zc2wtcG9saWNpZXMuaHRtbCkgaW4gdGhlICpBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyBHdWlkZSogYW5kIFtTZWN1cml0eSBwb2xpY2llc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9uZXR3b3JrL2Rlc2NyaWJlLXNzbC1wb2xpY2llcy5odG1sKSBpbiB0aGUgKk5ldHdvcmsgTG9hZCBCYWxhbmNlcnMgR3VpZGUqLlxuICogIFtIVFRQUyBsaXN0ZW5lcnNdIFVwZGF0aW5nIHRoZSBzZWN1cml0eSBwb2xpY3kgY2FuIHJlc3VsdCBpbiBpbnRlcnJ1cHRpb25zIGlmIHRoZSBsb2FkIGJhbGFuY2VyIGlzIGhhbmRsaW5nIGEgaGlnaCB2b2x1bWUgb2YgdHJhZmZpYy4gVG8gZGVjcmVhc2UgdGhlIHBvc3NpYmlsaXR5IG9mIGFuIGludGVycnVwdGlvbiBpZiB5b3VyIGxvYWQgYmFsYW5jZXIgaXMgaGFuZGxpbmcgYSBoaWdoIHZvbHVtZSBvZiB0cmFmZmljLCBjcmVhdGUgYW4gYWRkaXRpb25hbCBsb2FkIGJhbGFuY2VyIG9yIHJlcXVlc3QgYW4gTENVIHJlc2VydmF0aW9uLlxuICovXG5Tc2xQb2xpY3k/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBsb2FkIGJhbGFuY2VyLlxuICovXG5Mb2FkQmFsYW5jZXJBcm46IHN0cmluZ1xuLyoqXG4gKiBUaGUgYWN0aW9ucyBmb3IgdGhlIGRlZmF1bHQgcnVsZS4gWW91IGNhbm5vdCBkZWZpbmUgYSBjb25kaXRpb24gZm9yIGEgZGVmYXVsdCBydWxlLlxuICogIFRvIGNyZWF0ZSBhZGRpdGlvbmFsIHJ1bGVzIGZvciBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCB1c2UgW0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXJSdWxlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi1saXN0ZW5lcnJ1bGUuaHRtbCkuXG4gKi9cbkRlZmF1bHRBY3Rpb25zOiBBY3Rpb25bXVxuLyoqXG4gKiBUaGUgcG9ydCBvbiB3aGljaCB0aGUgbG9hZCBiYWxhbmNlciBpcyBsaXN0ZW5pbmcuIFlvdSBjYW4ndCBzcGVjaWZ5IGEgcG9ydCBmb3IgYSBHYXRld2F5IExvYWQgQmFsYW5jZXIuXG4gKi9cblBvcnQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGRlZmF1bHQgU1NMIHNlcnZlciBjZXJ0aWZpY2F0ZSBmb3IgYSBzZWN1cmUgbGlzdGVuZXIuIFlvdSBtdXN0IHByb3ZpZGUgZXhhY3RseSBvbmUgY2VydGlmaWNhdGUgaWYgdGhlIGxpc3RlbmVyIHByb3RvY29sIGlzIEhUVFBTIG9yIFRMUy5cbiAqICBGb3IgYW4gSFRUUFMgbGlzdGVuZXIsIHVwZGF0ZSByZXF1aXJlcyBzb21lIGludGVycnVwdGlvbnMuIEZvciBhIFRMUyBsaXN0ZW5lciwgdXBkYXRlIHJlcXVpcmVzIG5vIGludGVycnVwdGlvbi5cbiAqICBUbyBjcmVhdGUgYSBjZXJ0aWZpY2F0ZSBsaXN0IGZvciBhIHNlY3VyZSBsaXN0ZW5lciwgdXNlIFtBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyQ2VydGlmaWNhdGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lbGFzdGljbG9hZGJhbGFuY2luZ3YyLWxpc3RlbmVyY2VydGlmaWNhdGUuaHRtbCkuXG4gKi9cbkNlcnRpZmljYXRlcz86IENlcnRpZmljYXRlW11cbi8qKlxuICogVGhlIHByb3RvY29sIGZvciBjb25uZWN0aW9ucyBmcm9tIGNsaWVudHMgdG8gdGhlIGxvYWQgYmFsYW5jZXIuIEZvciBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycywgdGhlIHN1cHBvcnRlZCBwcm90b2NvbHMgYXJlIEhUVFAgYW5kIEhUVFBTLiBGb3IgTmV0d29yayBMb2FkIEJhbGFuY2VycywgdGhlIHN1cHBvcnRlZCBwcm90b2NvbHMgYXJlIFRDUCwgVExTLCBVRFAsIGFuZCBUQ1BfVURQLiBZb3UgY2Fu4oCZdCBzcGVjaWZ5IHRoZSBVRFAgb3IgVENQX1VEUCBwcm90b2NvbCBpZiBkdWFsLXN0YWNrIG1vZGUgaXMgZW5hYmxlZC4gWW91IGNhbid0IHNwZWNpZnkgYSBwcm90b2NvbCBmb3IgYSBHYXRld2F5IExvYWQgQmFsYW5jZXIuXG4gKi9cblByb3RvY29sPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBtdXR1YWwgYXV0aGVudGljYXRpb24gY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNdXR1YWxBdXRoZW50aWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGV4cGlyZWQgY2xpZW50IGNlcnRpZmljYXRlcyBhcmUgaWdub3JlZC5cbiAqL1xuSWdub3JlQ2xpZW50Q2VydGlmaWNhdGVFeHBpcnk/OiBib29sZWFuXG4vKipcbiAqIFRoZSBjbGllbnQgY2VydGlmaWNhdGUgaGFuZGxpbmcgbWV0aG9kLiBPcHRpb25zIGFyZSBgYG9mZmBgLCBgYHBhc3N0aHJvdWdoYGAgb3IgYGB2ZXJpZnlgYC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgYGBvZmZgYC5cbiAqL1xuTW9kZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHRydXN0IHN0b3JlLlxuICovXG5UcnVzdFN0b3JlQXJuPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRydXN0IHN0b3JlIENBIGNlcnRpZmljYXRlIG5hbWVzIGFyZSBhZHZlcnRpc2VkLlxuICovXG5BZHZlcnRpc2VUcnVzdFN0b3JlQ2FOYW1lcz86IHN0cmluZ1xufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIGxpc3RlbmVyIGF0dHJpYnV0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0ZW5lckF0dHJpYnV0ZSB7XG4vKipcbiAqIFRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlLlxuICovXG5WYWx1ZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICogIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlIGlzIHN1cHBvcnRlZCBieSBOZXR3b3JrIExvYWQgQmFsYW5jZXJzLCBhbmQgR2F0ZXdheSBMb2FkIEJhbGFuY2Vycy5cbiAqICAgKyAgYGB0Y3AuaWRsZV90aW1lb3V0LnNlY29uZHNgYCAtIFRoZSB0Y3AgaWRsZSB0aW1lb3V0IHZhbHVlLCBpbiBzZWNvbmRzLiBUaGUgdmFsaWQgcmFuZ2UgaXMgNjAtNjAwMCBzZWNvbmRzLiBUaGUgZGVmYXVsdCBpcyAzNTAgc2Vjb25kcy5cbiAqICAgXG4gKiAgVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBvbmx5IHN1cHBvcnRlZCBieSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2Vycy5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fbXRsc19jbGllbnRjZXJ0X3NlcmlhbF9udW1iZXIuaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tTXRscy1DbGllbnRjZXJ0LVNlcmlhbC1OdW1iZXIqIEhUVFAgcmVxdWVzdCBoZWFkZXIuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX210bHNfY2xpZW50Y2VydF9pc3N1ZXIuaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tTXRscy1DbGllbnRjZXJ0LUlzc3VlciogSFRUUCByZXF1ZXN0IGhlYWRlci5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fbXRsc19jbGllbnRjZXJ0X3N1YmplY3QuaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tTXRscy1DbGllbnRjZXJ0LVN1YmplY3QqIEhUVFAgcmVxdWVzdCBoZWFkZXIuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX210bHNfY2xpZW50Y2VydF92YWxpZGl0eS5oZWFkZXJfbmFtZWBgIC0gRW5hYmxlcyB5b3UgdG8gbW9kaWZ5IHRoZSBoZWFkZXIgbmFtZSBvZiB0aGUgKlgtQW16bi1NdGxzLUNsaWVudGNlcnQtVmFsaWRpdHkqIEhUVFAgcmVxdWVzdCBoZWFkZXIuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX210bHNfY2xpZW50Y2VydF9sZWFmLmhlYWRlcl9uYW1lYGAgLSBFbmFibGVzIHlvdSB0byBtb2RpZnkgdGhlIGhlYWRlciBuYW1lIG9mIHRoZSAqWC1BbXpuLU10bHMtQ2xpZW50Y2VydC1MZWFmKiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5yZXF1ZXN0LnhfYW16bl9tdGxzX2NsaWVudGNlcnQuaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tTXRscy1DbGllbnRjZXJ0KiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5yZXF1ZXN0LnhfYW16bl90bHNfdmVyc2lvbi5oZWFkZXJfbmFtZWBgIC0gRW5hYmxlcyB5b3UgdG8gbW9kaWZ5IHRoZSBoZWFkZXIgbmFtZSBvZiB0aGUgKlgtQW16bi1UbHMtVmVyc2lvbiogSFRUUCByZXF1ZXN0IGhlYWRlci5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fdGxzX2NpcGhlcl9zdWl0ZS5oZWFkZXJfbmFtZWBgIC0gRW5hYmxlcyB5b3UgdG8gbW9kaWZ5IHRoZSBoZWFkZXIgbmFtZSBvZiB0aGUgKlgtQW16bi1UbHMtQ2lwaGVyLVN1aXRlKiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5yZXNwb25zZS5zZXJ2ZXIuZW5hYmxlZGBgIC0gRW5hYmxlcyB5b3UgdG8gYWxsb3cgb3IgcmVtb3ZlIHRoZSBIVFRQIHJlc3BvbnNlIHNlcnZlciBoZWFkZXIuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLnN0cmljdF90cmFuc3BvcnRfc2VjdXJpdHkuaGVhZGVyX3ZhbHVlYGAgLSBJbmZvcm1zIGJyb3dzZXJzIHRoYXQgdGhlIHNpdGUgc2hvdWxkIG9ubHkgYmUgYWNjZXNzZWQgdXNpbmcgSFRUUFMsIGFuZCB0aGF0IGFueSBmdXR1cmUgYXR0ZW1wdHMgdG8gYWNjZXNzIGl0IHVzaW5nIEhUVFAgc2hvdWxkIGF1dG9tYXRpY2FsbHkgYmUgY29udmVydGVkIHRvIEhUVFBTLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5yZXNwb25zZS5hY2Nlc3NfY29udHJvbF9hbGxvd19vcmlnaW4uaGVhZGVyX3ZhbHVlYGAgLSBTcGVjaWZpZXMgd2hpY2ggb3JpZ2lucyBhcmUgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIHNlcnZlci5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UuYWNjZXNzX2NvbnRyb2xfYWxsb3dfbWV0aG9kcy5oZWFkZXJfdmFsdWVgYCAtIFJldHVybnMgd2hpY2ggSFRUUCBtZXRob2RzIGFyZSBhbGxvd2VkIHdoZW4gYWNjZXNzaW5nIHRoZSBzZXJ2ZXIgZnJvbSBhIGRpZmZlcmVudCBvcmlnaW4uXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLmFjY2Vzc19jb250cm9sX2FsbG93X2hlYWRlcnMuaGVhZGVyX3ZhbHVlYGAgLSBTcGVjaWZpZXMgd2hpY2ggaGVhZGVycyBjYW4gYmUgdXNlZCBkdXJpbmcgdGhlIHJlcXVlc3QuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLmFjY2Vzc19jb250cm9sX2FsbG93X2NyZWRlbnRpYWxzLmhlYWRlcl92YWx1ZWBgIC0gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGJyb3dzZXIgc2hvdWxkIGluY2x1ZGUgY3JlZGVudGlhbHMgc3VjaCBhcyBjb29raWVzIG9yIGF1dGhlbnRpY2F0aW9uIHdoZW4gbWFraW5nIHJlcXVlc3RzLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5yZXNwb25zZS5hY2Nlc3NfY29udHJvbF9leHBvc2VfaGVhZGVycy5oZWFkZXJfdmFsdWVgYCAtIFJldHVybnMgd2hpY2ggaGVhZGVycyB0aGUgYnJvd3NlciBjYW4gZXhwb3NlIHRvIHRoZSByZXF1ZXN0aW5nIGNsaWVudC5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UuYWNjZXNzX2NvbnRyb2xfbWF4X2FnZS5oZWFkZXJfdmFsdWVgYCAtIFNwZWNpZmllcyBob3cgbG9uZyB0aGUgcmVzdWx0cyBvZiBhIHByZWZsaWdodCByZXF1ZXN0IGNhbiBiZSBjYWNoZWQsIGluIHNlY29uZHMuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLmNvbnRlbnRfc2VjdXJpdHlfcG9saWN5LmhlYWRlcl92YWx1ZWBgIC0gU3BlY2lmaWVzIHJlc3RyaWN0aW9ucyBlbmZvcmNlZCBieSB0aGUgYnJvd3NlciB0byBoZWxwIG1pbmltaXplIHRoZSByaXNrIG9mIGNlcnRhaW4gdHlwZXMgb2Ygc2VjdXJpdHkgdGhyZWF0cy5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UueF9jb250ZW50X3R5cGVfb3B0aW9ucy5oZWFkZXJfdmFsdWVgYCAtIEluZGljYXRlcyB3aGV0aGVyIHRoZSBNSU1FIHR5cGVzIGFkdmVydGlzZWQgaW4gdGhlICpDb250ZW50LVR5cGUqIGhlYWRlcnMgc2hvdWxkIGJlIGZvbGxvd2VkIGFuZCBub3QgYmUgY2hhbmdlZC5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UueF9mcmFtZV9vcHRpb25zLmhlYWRlcl92YWx1ZWBgIC0gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGJyb3dzZXIgaXMgYWxsb3dlZCB0byByZW5kZXIgYSBwYWdlIGluIGEgKmZyYW1lKiwgKmlmcmFtZSosICplbWJlZCogb3IgKm9iamVjdCouXG4gKi9cbktleT86IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgYW4gYWN0aW9uIGZvciBhIGxpc3RlbmVyIHJ1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uIHtcbi8qKlxuICogVGhlIG9yZGVyIGZvciB0aGUgYWN0aW9uLiBUaGlzIHZhbHVlIGlzIHJlcXVpcmVkIGZvciBydWxlcyB3aXRoIG11bHRpcGxlIGFjdGlvbnMuIFRoZSBhY3Rpb24gd2l0aCB0aGUgbG93ZXN0IHZhbHVlIGZvciBvcmRlciBpcyBwZXJmb3JtZWQgZmlyc3QuXG4gKi9cbk9yZGVyPzogbnVtYmVyXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgdGFyZ2V0IGdyb3VwLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYFR5cGVgYCBpcyBgYGZvcndhcmRgYCBhbmQgeW91IHdhbnQgdG8gcm91dGUgdG8gYSBzaW5nbGUgdGFyZ2V0IGdyb3VwLiBUbyByb3V0ZSB0byBtdWx0aXBsZSB0YXJnZXQgZ3JvdXBzLCB5b3UgbXVzdCB1c2UgYGBGb3J3YXJkQ29uZmlnYGAgaW5zdGVhZC5cbiAqL1xuVGFyZ2V0R3JvdXBBcm4/OiBzdHJpbmdcbkZpeGVkUmVzcG9uc2VDb25maWc/OiBGaXhlZFJlc3BvbnNlQ29uZmlnXG5BdXRoZW50aWNhdGVDb2duaXRvQ29uZmlnPzogQXV0aGVudGljYXRlQ29nbml0b0NvbmZpZ1xuLyoqXG4gKiBUaGUgdHlwZSBvZiBhY3Rpb24uXG4gKi9cblR5cGU6IHN0cmluZ1xuUmVkaXJlY3RDb25maWc/OiBSZWRpcmVjdENvbmZpZ1xuSnd0VmFsaWRhdGlvbkNvbmZpZz86IEp3dFZhbGlkYXRpb25Db25maWdcbkZvcndhcmRDb25maWc/OiBGb3J3YXJkQ29uZmlnXG5BdXRoZW50aWNhdGVPaWRjQ29uZmlnPzogQXV0aGVudGljYXRlT2lkY0NvbmZpZ1xufVxuLyoqXG4gKiBbQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcl0gSW5mb3JtYXRpb24gZm9yIGNyZWF0aW5nIGFuIGFjdGlvbiB0aGF0IHJldHVybnMgYSBjdXN0b20gSFRUUCByZXNwb25zZS4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBmaXhlZC1yZXNwb25zZWBgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpeGVkUmVzcG9uc2VDb25maWcge1xuLyoqXG4gKiBUaGUgY29udGVudCB0eXBlLlxuICogIFZhbGlkIFZhbHVlczogdGV4dC9wbGFpbiB8IHRleHQvY3NzIHwgdGV4dC9odG1sIHwgYXBwbGljYXRpb24vamF2YXNjcmlwdCB8IGFwcGxpY2F0aW9uL2pzb25cbiAqL1xuQ29udGVudFR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIEhUVFAgcmVzcG9uc2UgY29kZSAoMlhYLCA0WFgsIG9yIDVYWCkuXG4gKi9cblN0YXR1c0NvZGU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWVzc2FnZS5cbiAqL1xuTWVzc2FnZUJvZHk/OiBzdHJpbmdcbn1cbi8qKlxuICogW0hUVFBTIGxpc3RlbmVyc10gSW5mb3JtYXRpb24gZm9yIHVzaW5nIEFtYXpvbiBDb2duaXRvIHRvIGF1dGhlbnRpY2F0ZSB1c2Vycy4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBhdXRoZW50aWNhdGUtY29nbml0b2BgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhlbnRpY2F0ZUNvZ25pdG9Db25maWcge1xuLyoqXG4gKiBUaGUgYmVoYXZpb3IgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQuIFRoZSBmb2xsb3dpbmcgYXJlIHBvc3NpYmxlIHZhbHVlczpcbiAqICAgKyAgZGVueWBgYGAgLSBSZXR1cm4gYW4gSFRUUCA0MDEgVW5hdXRob3JpemVkIGVycm9yLlxuICogICArICBhbGxvd2BgYGAgLSBBbGxvdyB0aGUgcmVxdWVzdCB0byBiZSBmb3J3YXJkZWQgdG8gdGhlIHRhcmdldC5cbiAqICAgKyAgYXV0aGVudGljYXRlYGBgYCAtIFJlZGlyZWN0IHRoZSByZXF1ZXN0IHRvIHRoZSBJZFAgYXV0aG9yaXphdGlvbiBlbmRwb2ludC4gVGhpcyBpcyB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAqL1xuT25VbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgQW1hem9uIENvZ25pdG8gdXNlciBwb29sIGNsaWVudC5cbiAqL1xuVXNlclBvb2xDbGllbnRJZDogKHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59ICYgc3RyaW5nKVxuLyoqXG4gKiBUaGUgZG9tYWluIHByZWZpeCBvciBmdWxseS1xdWFsaWZpZWQgZG9tYWluIG5hbWUgb2YgdGhlIEFtYXpvbiBDb2duaXRvIHVzZXIgcG9vbC5cbiAqL1xuVXNlclBvb2xEb21haW46IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWF4aW11bSBkdXJhdGlvbiBvZiB0aGUgYXV0aGVudGljYXRpb24gc2Vzc2lvbiwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuXG4gKi9cblNlc3Npb25UaW1lb3V0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBzZXQgb2YgdXNlciBjbGFpbXMgdG8gYmUgcmVxdWVzdGVkIGZyb20gdGhlIElkUC4gVGhlIGRlZmF1bHQgaXMgYGBvcGVuaWRgYC5cbiAqICBUbyB2ZXJpZnkgd2hpY2ggc2NvcGUgdmFsdWVzIHlvdXIgSWRQIHN1cHBvcnRzIGFuZCBob3cgdG8gc2VwYXJhdGUgbXVsdGlwbGUgdmFsdWVzLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgSWRQLlxuICovXG5TY29wZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgY29va2llIHVzZWQgdG8gbWFpbnRhaW4gc2Vzc2lvbiBpbmZvcm1hdGlvbi4gVGhlIGRlZmF1bHQgaXMgQVdTRUxCQXV0aFNlc3Npb25Db29raWUuXG4gKi9cblNlc3Npb25Db29raWVOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgQW1hem9uIENvZ25pdG8gdXNlciBwb29sLlxuICovXG5Vc2VyUG9vbEFybjogc3RyaW5nXG4vKipcbiAqIFRoZSBxdWVyeSBwYXJhbWV0ZXJzICh1cCB0byAxMCkgdG8gaW5jbHVkZSBpbiB0aGUgcmVkaXJlY3QgcmVxdWVzdCB0byB0aGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludC5cbiAqL1xuQXV0aGVudGljYXRpb25SZXF1ZXN0RXh0cmFQYXJhbXM/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIlthLXpBLVowLTldK1wiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG59XG4vKipcbiAqIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyXSBJbmZvcm1hdGlvbiBmb3IgY3JlYXRpbmcgYSByZWRpcmVjdCBhY3Rpb24uIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgcmVkaXJlY3RgYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWRpcmVjdENvbmZpZyB7XG4vKipcbiAqIFRoZSBhYnNvbHV0ZSBwYXRoLCBzdGFydGluZyB3aXRoIHRoZSBsZWFkaW5nIFwiL1wiLiBUaGlzIGNvbXBvbmVudCBpcyBub3QgcGVyY2VudC1lbmNvZGVkLiBUaGUgcGF0aCBjYW4gY29udGFpbiAje2hvc3R9LCAje3BhdGh9LCBhbmQgI3twb3J0fS5cbiAqL1xuUGF0aD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgcXVlcnkgcGFyYW1ldGVycywgVVJMLWVuY29kZWQgd2hlbiBuZWNlc3NhcnksIGJ1dCBub3QgcGVyY2VudC1lbmNvZGVkLiBEbyBub3QgaW5jbHVkZSB0aGUgbGVhZGluZyBcIj9cIiwgYXMgaXQgaXMgYXV0b21hdGljYWxseSBhZGRlZC4gWW91IGNhbiBzcGVjaWZ5IGFueSBvZiB0aGUgcmVzZXJ2ZWQga2V5d29yZHMuXG4gKi9cblF1ZXJ5Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBwb3J0LiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIDEgdG8gNjU1MzUgb3IgI3twb3J0fS5cbiAqL1xuUG9ydD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaG9zdG5hbWUuIFRoaXMgY29tcG9uZW50IGlzIG5vdCBwZXJjZW50LWVuY29kZWQuIFRoZSBob3N0bmFtZSBjYW4gY29udGFpbiAje2hvc3R9LlxuICovXG5Ib3N0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBwcm90b2NvbC4gWW91IGNhbiBzcGVjaWZ5IEhUVFAsIEhUVFBTLCBvciAje3Byb3RvY29sfS4gWW91IGNhbiByZWRpcmVjdCBIVFRQIHRvIEhUVFAsIEhUVFAgdG8gSFRUUFMsIGFuZCBIVFRQUyB0byBIVFRQUy4gWW91IGNhbid0IHJlZGlyZWN0IEhUVFBTIHRvIEhUVFAuXG4gKi9cblByb3RvY29sPzogc3RyaW5nXG4vKipcbiAqIFRoZSBIVFRQIHJlZGlyZWN0IGNvZGUuIFRoZSByZWRpcmVjdCBpcyBlaXRoZXIgcGVybWFuZW50IChIVFRQIDMwMSkgb3IgdGVtcG9yYXJ5IChIVFRQIDMwMikuXG4gKi9cblN0YXR1c0NvZGU6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBKd3RWYWxpZGF0aW9uQ29uZmlnIHtcbkp3a3NFbmRwb2ludDogc3RyaW5nXG5Jc3N1ZXI6IHN0cmluZ1xuQWRkaXRpb25hbENsYWltcz86IEp3dFZhbGlkYXRpb25BY3Rpb25BZGRpdGlvbmFsQ2xhaW1bXVxufVxuZXhwb3J0IGludGVyZmFjZSBKd3RWYWxpZGF0aW9uQWN0aW9uQWRkaXRpb25hbENsYWltIHtcbkZvcm1hdDogc3RyaW5nXG5WYWx1ZXM6IHN0cmluZ1tdXG5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gZm9yIGNyZWF0aW5nIGFuIGFjdGlvbiB0aGF0IGRpc3RyaWJ1dGVzIHJlcXVlc3RzIGFtb25nIG11bHRpcGxlIHRhcmdldCBncm91cHMuIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgZm9yd2FyZGBgLlxuICogIElmIHlvdSBzcGVjaWZ5IGJvdGggYGBGb3J3YXJkQ29uZmlnYGAgYW5kIGBgVGFyZ2V0R3JvdXBBcm5gYCwgeW91IGNhbiBzcGVjaWZ5IG9ubHkgb25lIHRhcmdldCBncm91cCB1c2luZyBgYEZvcndhcmRDb25maWdgYCBhbmQgaXQgbXVzdCBiZSB0aGUgc2FtZSB0YXJnZXQgZ3JvdXAgc3BlY2lmaWVkIGluIGBgVGFyZ2V0R3JvdXBBcm5gYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3J3YXJkQ29uZmlnIHtcblRhcmdldEdyb3VwU3RpY2tpbmVzc0NvbmZpZz86IFRhcmdldEdyb3VwU3RpY2tpbmVzc0NvbmZpZ1xuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBob3cgdHJhZmZpYyB3aWxsIGJlIGRpc3RyaWJ1dGVkIGJldHdlZW4gbXVsdGlwbGUgdGFyZ2V0IGdyb3VwcyBpbiBhIGZvcndhcmQgcnVsZS5cbiAqL1xuVGFyZ2V0R3JvdXBzPzogVGFyZ2V0R3JvdXBUdXBsZVtdXG59XG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSB0YXJnZXQgZ3JvdXAgc3RpY2tpbmVzcyBmb3IgYSBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldEdyb3VwU3RpY2tpbmVzc0NvbmZpZyB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRhcmdldCBncm91cCBzdGlja2luZXNzIGlzIGVuYWJsZWQuXG4gKi9cbkVuYWJsZWQ/OiBib29sZWFuXG4vKipcbiAqIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2Vyc10gVGhlIHRpbWUgcGVyaW9kLCBpbiBzZWNvbmRzLCBkdXJpbmcgd2hpY2ggcmVxdWVzdHMgZnJvbSBhIGNsaWVudCBzaG91bGQgYmUgcm91dGVkIHRvIHRoZSBzYW1lIHRhcmdldCBncm91cC4gVGhlIHJhbmdlIGlzIDEtNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuIFlvdSBtdXN0IHNwZWNpZnkgdGhpcyB2YWx1ZSB3aGVuIGVuYWJsaW5nIHRhcmdldCBncm91cCBzdGlja2luZXNzLlxuICovXG5EdXJhdGlvblNlY29uZHM/OiBudW1iZXJcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgaG93IHRyYWZmaWMgd2lsbCBiZSBkaXN0cmlidXRlZCBiZXR3ZWVuIG11bHRpcGxlIHRhcmdldCBncm91cHMgaW4gYSBmb3J3YXJkIHJ1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0R3JvdXBUdXBsZSB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgdGFyZ2V0IGdyb3VwLlxuICovXG5UYXJnZXRHcm91cEFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgd2VpZ2h0LiBUaGUgcmFuZ2UgaXMgMCB0byA5OTkuXG4gKi9cbldlaWdodD86IG51bWJlclxufVxuLyoqXG4gKiBTcGVjaWZpZXMgYW4gU1NMIHNlcnZlciBjZXJ0aWZpY2F0ZSB0byB1c2UgYXMgdGhlIGRlZmF1bHQgY2VydGlmaWNhdGUgZm9yIGEgc2VjdXJlIGxpc3RlbmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENlcnRpZmljYXRlIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBjZXJ0aWZpY2F0ZS5cbiAqL1xuQ2VydGlmaWNhdGVBcm4/OiAoe1xuW2s6IHN0cmluZ106IHVua25vd25cbn0gJiBzdHJpbmcpXG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbGlzdGVuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi1saXN0ZW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBbSFRUUFMgbGlzdGVuZXJzXSBJbmZvcm1hdGlvbiBhYm91dCBhbiBpZGVudGl0eSBwcm92aWRlciB0aGF0IGlzIGNvbXBsaWFudCB3aXRoIE9wZW5JRCBDb25uZWN0IChPSURDKS4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBhdXRoZW50aWNhdGUtb2lkY2BgLlxuICovXG5leHBvcnQgdHlwZSBBdXRoZW50aWNhdGVPaWRjQ29uZmlnID0gKHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59ICYge1xuLyoqXG4gKiBUaGUgYmVoYXZpb3IgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQuIFRoZSBmb2xsb3dpbmcgYXJlIHBvc3NpYmxlIHZhbHVlczpcbiAqICAgKyAgZGVueWBgYGAgLSBSZXR1cm4gYW4gSFRUUCA0MDEgVW5hdXRob3JpemVkIGVycm9yLlxuICogICArICBhbGxvd2BgYGAgLSBBbGxvdyB0aGUgcmVxdWVzdCB0byBiZSBmb3J3YXJkZWQgdG8gdGhlIHRhcmdldC5cbiAqICAgKyAgYXV0aGVudGljYXRlYGBgYCAtIFJlZGlyZWN0IHRoZSByZXF1ZXN0IHRvIHRoZSBJZFAgYXV0aG9yaXphdGlvbiBlbmRwb2ludC4gVGhpcyBpcyB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAqL1xuT25VbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSB0b2tlbiBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Ub2tlbkVuZHBvaW50OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gdXNlIHRoZSBleGlzdGluZyBjbGllbnQgc2VjcmV0IHdoZW4gbW9kaWZ5aW5nIGEgcnVsZS4gSWYgeW91IGFyZSBjcmVhdGluZyBhIHJ1bGUsIHlvdSBjYW4gb21pdCB0aGlzIHBhcmFtZXRlciBvciBzZXQgaXQgdG8gZmFsc2UuXG4gKi9cblVzZUV4aXN0aW5nQ2xpZW50U2VjcmV0PzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbWF4aW11bSBkdXJhdGlvbiBvZiB0aGUgYXV0aGVudGljYXRpb24gc2Vzc2lvbiwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuXG4gKi9cblNlc3Npb25UaW1lb3V0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBzZXQgb2YgdXNlciBjbGFpbXMgdG8gYmUgcmVxdWVzdGVkIGZyb20gdGhlIElkUC4gVGhlIGRlZmF1bHQgaXMgYGBvcGVuaWRgYC5cbiAqICBUbyB2ZXJpZnkgd2hpY2ggc2NvcGUgdmFsdWVzIHlvdXIgSWRQIHN1cHBvcnRzIGFuZCBob3cgdG8gc2VwYXJhdGUgbXVsdGlwbGUgdmFsdWVzLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgSWRQLlxuICovXG5TY29wZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgT0lEQyBpc3N1ZXIgaWRlbnRpZmllciBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Jc3N1ZXI6IHN0cmluZ1xuLyoqXG4gKiBUaGUgT0F1dGggMi4wIGNsaWVudCBzZWNyZXQuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIGlmIHlvdSBhcmUgY3JlYXRpbmcgYSBydWxlLiBJZiB5b3UgYXJlIG1vZGlmeWluZyBhIHJ1bGUsIHlvdSBjYW4gb21pdCB0aGlzIHBhcmFtZXRlciBpZiB5b3Ugc2V0IGBgVXNlRXhpc3RpbmdDbGllbnRTZWNyZXRgYCB0byB0cnVlLlxuICovXG5DbGllbnRTZWNyZXQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIHVzZXIgaW5mbyBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Vc2VySW5mb0VuZHBvaW50OiBzdHJpbmdcbi8qKlxuICogVGhlIE9BdXRoIDIuMCBjbGllbnQgaWRlbnRpZmllci5cbiAqL1xuQ2xpZW50SWQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5BdXRob3JpemF0aW9uRW5kcG9pbnQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgY29va2llIHVzZWQgdG8gbWFpbnRhaW4gc2Vzc2lvbiBpbmZvcm1hdGlvbi4gVGhlIGRlZmF1bHQgaXMgQVdTRUxCQXV0aFNlc3Npb25Db29raWUuXG4gKi9cblNlc3Npb25Db29raWVOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBxdWVyeSBwYXJhbWV0ZXJzICh1cCB0byAxMCkgdG8gaW5jbHVkZSBpbiB0aGUgcmVkaXJlY3QgcmVxdWVzdCB0byB0aGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludC5cbiAqL1xuQXV0aGVudGljYXRpb25SZXF1ZXN0RXh0cmFQYXJhbXM/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIlthLXpBLVowLTldK1wiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG59KVxuXG4vKipcbiAqIFNwZWNpZmllcyBhIGxpc3RlbmVyIGZvciBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCBOZXR3b3JrIExvYWQgQmFsYW5jZXIsIG9yIEdhdGV3YXkgTG9hZCBCYWxhbmNlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0VMQVNUSUNMT0FEQkFMQU5DSU5HVjJfTElTVEVORVIge1xuTGlzdGVuZXJBcm4/OiBzdHJpbmdcbk11dHVhbEF1dGhlbnRpY2F0aW9uPzogTXV0dWFsQXV0aGVudGljYXRpb25cbi8qKlxuICogVGhlIGxpc3RlbmVyIGF0dHJpYnV0ZXMuIEF0dHJpYnV0ZXMgdGhhdCB5b3UgZG8gbm90IG1vZGlmeSByZXRhaW4gdGhlaXIgY3VycmVudCB2YWx1ZXMuXG4gKi9cbkxpc3RlbmVyQXR0cmlidXRlcz86IExpc3RlbmVyQXR0cmlidXRlW11cbi8qKlxuICogW1RMUyBsaXN0ZW5lcl0gVGhlIG5hbWUgb2YgdGhlIEFwcGxpY2F0aW9uLUxheWVyIFByb3RvY29sIE5lZ290aWF0aW9uIChBTFBOKSBwb2xpY3kuXG4gKi9cbkFscG5Qb2xpY3k/OiBzdHJpbmdbXVxuLyoqXG4gKiBbSFRUUFMgYW5kIFRMUyBsaXN0ZW5lcnNdIFRoZSBzZWN1cml0eSBwb2xpY3kgdGhhdCBkZWZpbmVzIHdoaWNoIHByb3RvY29scyBhbmQgY2lwaGVycyBhcmUgc3VwcG9ydGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTZWN1cml0eSBwb2xpY2llc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9hcHBsaWNhdGlvbi9kZXNjcmliZS1zc2wtcG9saWNpZXMuaHRtbCkgaW4gdGhlICpBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyBHdWlkZSogYW5kIFtTZWN1cml0eSBwb2xpY2llc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9uZXR3b3JrL2Rlc2NyaWJlLXNzbC1wb2xpY2llcy5odG1sKSBpbiB0aGUgKk5ldHdvcmsgTG9hZCBCYWxhbmNlcnMgR3VpZGUqLlxuICogIFtIVFRQUyBsaXN0ZW5lcnNdIFVwZGF0aW5nIHRoZSBzZWN1cml0eSBwb2xpY3kgY2FuIHJlc3VsdCBpbiBpbnRlcnJ1cHRpb25zIGlmIHRoZSBsb2FkIGJhbGFuY2VyIGlzIGhhbmRsaW5nIGEgaGlnaCB2b2x1bWUgb2YgdHJhZmZpYy4gVG8gZGVjcmVhc2UgdGhlIHBvc3NpYmlsaXR5IG9mIGFuIGludGVycnVwdGlvbiBpZiB5b3VyIGxvYWQgYmFsYW5jZXIgaXMgaGFuZGxpbmcgYSBoaWdoIHZvbHVtZSBvZiB0cmFmZmljLCBjcmVhdGUgYW4gYWRkaXRpb25hbCBsb2FkIGJhbGFuY2VyIG9yIHJlcXVlc3QgYW4gTENVIHJlc2VydmF0aW9uLlxuICovXG5Tc2xQb2xpY3k/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBsb2FkIGJhbGFuY2VyLlxuICovXG5Mb2FkQmFsYW5jZXJBcm46IHN0cmluZ1xuLyoqXG4gKiBUaGUgYWN0aW9ucyBmb3IgdGhlIGRlZmF1bHQgcnVsZS4gWW91IGNhbm5vdCBkZWZpbmUgYSBjb25kaXRpb24gZm9yIGEgZGVmYXVsdCBydWxlLlxuICogIFRvIGNyZWF0ZSBhZGRpdGlvbmFsIHJ1bGVzIGZvciBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCB1c2UgW0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXJSdWxlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi1saXN0ZW5lcnJ1bGUuaHRtbCkuXG4gKi9cbkRlZmF1bHRBY3Rpb25zOiBBY3Rpb25bXVxuLyoqXG4gKiBUaGUgcG9ydCBvbiB3aGljaCB0aGUgbG9hZCBiYWxhbmNlciBpcyBsaXN0ZW5pbmcuIFlvdSBjYW4ndCBzcGVjaWZ5IGEgcG9ydCBmb3IgYSBHYXRld2F5IExvYWQgQmFsYW5jZXIuXG4gKi9cblBvcnQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGRlZmF1bHQgU1NMIHNlcnZlciBjZXJ0aWZpY2F0ZSBmb3IgYSBzZWN1cmUgbGlzdGVuZXIuIFlvdSBtdXN0IHByb3ZpZGUgZXhhY3RseSBvbmUgY2VydGlmaWNhdGUgaWYgdGhlIGxpc3RlbmVyIHByb3RvY29sIGlzIEhUVFBTIG9yIFRMUy5cbiAqICBGb3IgYW4gSFRUUFMgbGlzdGVuZXIsIHVwZGF0ZSByZXF1aXJlcyBzb21lIGludGVycnVwdGlvbnMuIEZvciBhIFRMUyBsaXN0ZW5lciwgdXBkYXRlIHJlcXVpcmVzIG5vIGludGVycnVwdGlvbi5cbiAqICBUbyBjcmVhdGUgYSBjZXJ0aWZpY2F0ZSBsaXN0IGZvciBhIHNlY3VyZSBsaXN0ZW5lciwgdXNlIFtBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyQ2VydGlmaWNhdGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lbGFzdGljbG9hZGJhbGFuY2luZ3YyLWxpc3RlbmVyY2VydGlmaWNhdGUuaHRtbCkuXG4gKi9cbkNlcnRpZmljYXRlcz86IENlcnRpZmljYXRlW11cbi8qKlxuICogVGhlIHByb3RvY29sIGZvciBjb25uZWN0aW9ucyBmcm9tIGNsaWVudHMgdG8gdGhlIGxvYWQgYmFsYW5jZXIuIEZvciBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycywgdGhlIHN1cHBvcnRlZCBwcm90b2NvbHMgYXJlIEhUVFAgYW5kIEhUVFBTLiBGb3IgTmV0d29yayBMb2FkIEJhbGFuY2VycywgdGhlIHN1cHBvcnRlZCBwcm90b2NvbHMgYXJlIFRDUCwgVExTLCBVRFAsIFRDUF9VRFAsIFFVSUMsIGFuZCBUQ1BfUVVJQy4gWW91IGNhbuKAmXQgc3BlY2lmeSB0aGUgVURQLCBUQ1BfVURQLCBRVUlDLCBvciBUQ1BfUVVJQyBwcm90b2NvbCBpZiBkdWFsLXN0YWNrIG1vZGUgaXMgZW5hYmxlZC4gWW91IGNhbid0IHNwZWNpZnkgYSBwcm90b2NvbCBmb3IgYSBHYXRld2F5IExvYWQgQmFsYW5jZXIuXG4gKi9cblByb3RvY29sPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBtdXR1YWwgYXV0aGVudGljYXRpb24gY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNdXR1YWxBdXRoZW50aWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGV4cGlyZWQgY2xpZW50IGNlcnRpZmljYXRlcyBhcmUgaWdub3JlZC5cbiAqL1xuSWdub3JlQ2xpZW50Q2VydGlmaWNhdGVFeHBpcnk/OiBib29sZWFuXG4vKipcbiAqIFRoZSBjbGllbnQgY2VydGlmaWNhdGUgaGFuZGxpbmcgbWV0aG9kLiBPcHRpb25zIGFyZSBgYG9mZmBgLCBgYHBhc3N0aHJvdWdoYGAgb3IgYGB2ZXJpZnlgYC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgYGBvZmZgYC5cbiAqL1xuTW9kZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHRydXN0IHN0b3JlLlxuICovXG5UcnVzdFN0b3JlQXJuPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRydXN0IHN0b3JlIENBIGNlcnRpZmljYXRlIG5hbWVzIGFyZSBhZHZlcnRpc2VkLlxuICovXG5BZHZlcnRpc2VUcnVzdFN0b3JlQ2FOYW1lcz86IHN0cmluZ1xufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIGxpc3RlbmVyIGF0dHJpYnV0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0ZW5lckF0dHJpYnV0ZSB7XG4vKipcbiAqIFRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlLlxuICovXG5WYWx1ZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICogIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlIGlzIHN1cHBvcnRlZCBieSBOZXR3b3JrIExvYWQgQmFsYW5jZXJzLCBhbmQgR2F0ZXdheSBMb2FkIEJhbGFuY2Vycy5cbiAqICAgKyAgYGB0Y3AuaWRsZV90aW1lb3V0LnNlY29uZHNgYCAtIFRoZSB0Y3AgaWRsZSB0aW1lb3V0IHZhbHVlLCBpbiBzZWNvbmRzLiBUaGUgdmFsaWQgcmFuZ2UgaXMgNjAtNjAwMCBzZWNvbmRzLiBUaGUgZGVmYXVsdCBpcyAzNTAgc2Vjb25kcy5cbiAqICAgXG4gKiAgVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBvbmx5IHN1cHBvcnRlZCBieSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2Vycy5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fbXRsc19jbGllbnRjZXJ0X3NlcmlhbF9udW1iZXIuaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tTXRscy1DbGllbnRjZXJ0LVNlcmlhbC1OdW1iZXIqIEhUVFAgcmVxdWVzdCBoZWFkZXIuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX210bHNfY2xpZW50Y2VydF9pc3N1ZXIuaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tTXRscy1DbGllbnRjZXJ0LUlzc3VlciogSFRUUCByZXF1ZXN0IGhlYWRlci5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fbXRsc19jbGllbnRjZXJ0X3N1YmplY3QuaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tTXRscy1DbGllbnRjZXJ0LVN1YmplY3QqIEhUVFAgcmVxdWVzdCBoZWFkZXIuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX210bHNfY2xpZW50Y2VydF92YWxpZGl0eS5oZWFkZXJfbmFtZWBgIC0gRW5hYmxlcyB5b3UgdG8gbW9kaWZ5IHRoZSBoZWFkZXIgbmFtZSBvZiB0aGUgKlgtQW16bi1NdGxzLUNsaWVudGNlcnQtVmFsaWRpdHkqIEhUVFAgcmVxdWVzdCBoZWFkZXIuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX210bHNfY2xpZW50Y2VydF9sZWFmLmhlYWRlcl9uYW1lYGAgLSBFbmFibGVzIHlvdSB0byBtb2RpZnkgdGhlIGhlYWRlciBuYW1lIG9mIHRoZSAqWC1BbXpuLU10bHMtQ2xpZW50Y2VydC1MZWFmKiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5yZXF1ZXN0LnhfYW16bl9tdGxzX2NsaWVudGNlcnQuaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tTXRscy1DbGllbnRjZXJ0KiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5yZXF1ZXN0LnhfYW16bl90bHNfdmVyc2lvbi5oZWFkZXJfbmFtZWBgIC0gRW5hYmxlcyB5b3UgdG8gbW9kaWZ5IHRoZSBoZWFkZXIgbmFtZSBvZiB0aGUgKlgtQW16bi1UbHMtVmVyc2lvbiogSFRUUCByZXF1ZXN0IGhlYWRlci5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fdGxzX2NpcGhlcl9zdWl0ZS5oZWFkZXJfbmFtZWBgIC0gRW5hYmxlcyB5b3UgdG8gbW9kaWZ5IHRoZSBoZWFkZXIgbmFtZSBvZiB0aGUgKlgtQW16bi1UbHMtQ2lwaGVyLVN1aXRlKiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5yZXNwb25zZS5zZXJ2ZXIuZW5hYmxlZGBgIC0gRW5hYmxlcyB5b3UgdG8gYWxsb3cgb3IgcmVtb3ZlIHRoZSBIVFRQIHJlc3BvbnNlIHNlcnZlciBoZWFkZXIuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLnN0cmljdF90cmFuc3BvcnRfc2VjdXJpdHkuaGVhZGVyX3ZhbHVlYGAgLSBJbmZvcm1zIGJyb3dzZXJzIHRoYXQgdGhlIHNpdGUgc2hvdWxkIG9ubHkgYmUgYWNjZXNzZWQgdXNpbmcgSFRUUFMsIGFuZCB0aGF0IGFueSBmdXR1cmUgYXR0ZW1wdHMgdG8gYWNjZXNzIGl0IHVzaW5nIEhUVFAgc2hvdWxkIGF1dG9tYXRpY2FsbHkgYmUgY29udmVydGVkIHRvIEhUVFBTLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5yZXNwb25zZS5hY2Nlc3NfY29udHJvbF9hbGxvd19vcmlnaW4uaGVhZGVyX3ZhbHVlYGAgLSBTcGVjaWZpZXMgd2hpY2ggb3JpZ2lucyBhcmUgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIHNlcnZlci5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UuYWNjZXNzX2NvbnRyb2xfYWxsb3dfbWV0aG9kcy5oZWFkZXJfdmFsdWVgYCAtIFJldHVybnMgd2hpY2ggSFRUUCBtZXRob2RzIGFyZSBhbGxvd2VkIHdoZW4gYWNjZXNzaW5nIHRoZSBzZXJ2ZXIgZnJvbSBhIGRpZmZlcmVudCBvcmlnaW4uXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLmFjY2Vzc19jb250cm9sX2FsbG93X2hlYWRlcnMuaGVhZGVyX3ZhbHVlYGAgLSBTcGVjaWZpZXMgd2hpY2ggaGVhZGVycyBjYW4gYmUgdXNlZCBkdXJpbmcgdGhlIHJlcXVlc3QuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLmFjY2Vzc19jb250cm9sX2FsbG93X2NyZWRlbnRpYWxzLmhlYWRlcl92YWx1ZWBgIC0gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGJyb3dzZXIgc2hvdWxkIGluY2x1ZGUgY3JlZGVudGlhbHMgc3VjaCBhcyBjb29raWVzIG9yIGF1dGhlbnRpY2F0aW9uIHdoZW4gbWFraW5nIHJlcXVlc3RzLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5yZXNwb25zZS5hY2Nlc3NfY29udHJvbF9leHBvc2VfaGVhZGVycy5oZWFkZXJfdmFsdWVgYCAtIFJldHVybnMgd2hpY2ggaGVhZGVycyB0aGUgYnJvd3NlciBjYW4gZXhwb3NlIHRvIHRoZSByZXF1ZXN0aW5nIGNsaWVudC5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UuYWNjZXNzX2NvbnRyb2xfbWF4X2FnZS5oZWFkZXJfdmFsdWVgYCAtIFNwZWNpZmllcyBob3cgbG9uZyB0aGUgcmVzdWx0cyBvZiBhIHByZWZsaWdodCByZXF1ZXN0IGNhbiBiZSBjYWNoZWQsIGluIHNlY29uZHMuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLmNvbnRlbnRfc2VjdXJpdHlfcG9saWN5LmhlYWRlcl92YWx1ZWBgIC0gU3BlY2lmaWVzIHJlc3RyaWN0aW9ucyBlbmZvcmNlZCBieSB0aGUgYnJvd3NlciB0byBoZWxwIG1pbmltaXplIHRoZSByaXNrIG9mIGNlcnRhaW4gdHlwZXMgb2Ygc2VjdXJpdHkgdGhyZWF0cy5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UueF9jb250ZW50X3R5cGVfb3B0aW9ucy5oZWFkZXJfdmFsdWVgYCAtIEluZGljYXRlcyB3aGV0aGVyIHRoZSBNSU1FIHR5cGVzIGFkdmVydGlzZWQgaW4gdGhlICpDb250ZW50LVR5cGUqIGhlYWRlcnMgc2hvdWxkIGJlIGZvbGxvd2VkIGFuZCBub3QgYmUgY2hhbmdlZC5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UueF9mcmFtZV9vcHRpb25zLmhlYWRlcl92YWx1ZWBgIC0gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGJyb3dzZXIgaXMgYWxsb3dlZCB0byByZW5kZXIgYSBwYWdlIGluIGEgKmZyYW1lKiwgKmlmcmFtZSosICplbWJlZCogb3IgKm9iamVjdCouXG4gKi9cbktleT86IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgYW4gYWN0aW9uIGZvciBhIGxpc3RlbmVyIHJ1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uIHtcbi8qKlxuICogVGhlIG9yZGVyIGZvciB0aGUgYWN0aW9uLiBUaGlzIHZhbHVlIGlzIHJlcXVpcmVkIGZvciBydWxlcyB3aXRoIG11bHRpcGxlIGFjdGlvbnMuIFRoZSBhY3Rpb24gd2l0aCB0aGUgbG93ZXN0IHZhbHVlIGZvciBvcmRlciBpcyBwZXJmb3JtZWQgZmlyc3QuXG4gKi9cbk9yZGVyPzogbnVtYmVyXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgdGFyZ2V0IGdyb3VwLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYFR5cGVgYCBpcyBgYGZvcndhcmRgYCBhbmQgeW91IHdhbnQgdG8gcm91dGUgdG8gYSBzaW5nbGUgdGFyZ2V0IGdyb3VwLiBUbyByb3V0ZSB0byBtdWx0aXBsZSB0YXJnZXQgZ3JvdXBzLCB5b3UgbXVzdCB1c2UgYGBGb3J3YXJkQ29uZmlnYGAgaW5zdGVhZC5cbiAqL1xuVGFyZ2V0R3JvdXBBcm4/OiBzdHJpbmdcbkZpeGVkUmVzcG9uc2VDb25maWc/OiBGaXhlZFJlc3BvbnNlQ29uZmlnXG5BdXRoZW50aWNhdGVDb2duaXRvQ29uZmlnPzogQXV0aGVudGljYXRlQ29nbml0b0NvbmZpZ1xuLyoqXG4gKiBUaGUgdHlwZSBvZiBhY3Rpb24uXG4gKi9cblR5cGU6IHN0cmluZ1xuUmVkaXJlY3RDb25maWc/OiBSZWRpcmVjdENvbmZpZ1xuSnd0VmFsaWRhdGlvbkNvbmZpZz86IEp3dFZhbGlkYXRpb25Db25maWdcbkZvcndhcmRDb25maWc/OiBGb3J3YXJkQ29uZmlnXG5BdXRoZW50aWNhdGVPaWRjQ29uZmlnPzogQXV0aGVudGljYXRlT2lkY0NvbmZpZ1xufVxuLyoqXG4gKiBbQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcl0gSW5mb3JtYXRpb24gZm9yIGNyZWF0aW5nIGFuIGFjdGlvbiB0aGF0IHJldHVybnMgYSBjdXN0b20gSFRUUCByZXNwb25zZS4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBmaXhlZC1yZXNwb25zZWBgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpeGVkUmVzcG9uc2VDb25maWcge1xuLyoqXG4gKiBUaGUgY29udGVudCB0eXBlLlxuICogIFZhbGlkIFZhbHVlczogdGV4dC9wbGFpbiB8IHRleHQvY3NzIHwgdGV4dC9odG1sIHwgYXBwbGljYXRpb24vamF2YXNjcmlwdCB8IGFwcGxpY2F0aW9uL2pzb25cbiAqL1xuQ29udGVudFR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIEhUVFAgcmVzcG9uc2UgY29kZSAoMlhYLCA0WFgsIG9yIDVYWCkuXG4gKi9cblN0YXR1c0NvZGU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWVzc2FnZS5cbiAqL1xuTWVzc2FnZUJvZHk/OiBzdHJpbmdcbn1cbi8qKlxuICogW0hUVFBTIGxpc3RlbmVyc10gSW5mb3JtYXRpb24gZm9yIHVzaW5nIEFtYXpvbiBDb2duaXRvIHRvIGF1dGhlbnRpY2F0ZSB1c2Vycy4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBhdXRoZW50aWNhdGUtY29nbml0b2BgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhlbnRpY2F0ZUNvZ25pdG9Db25maWcge1xuLyoqXG4gKiBUaGUgYmVoYXZpb3IgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQuIFRoZSBmb2xsb3dpbmcgYXJlIHBvc3NpYmxlIHZhbHVlczpcbiAqICAgKyAgZGVueWBgYGAgLSBSZXR1cm4gYW4gSFRUUCA0MDEgVW5hdXRob3JpemVkIGVycm9yLlxuICogICArICBhbGxvd2BgYGAgLSBBbGxvdyB0aGUgcmVxdWVzdCB0byBiZSBmb3J3YXJkZWQgdG8gdGhlIHRhcmdldC5cbiAqICAgKyAgYXV0aGVudGljYXRlYGBgYCAtIFJlZGlyZWN0IHRoZSByZXF1ZXN0IHRvIHRoZSBJZFAgYXV0aG9yaXphdGlvbiBlbmRwb2ludC4gVGhpcyBpcyB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAqL1xuT25VbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgQW1hem9uIENvZ25pdG8gdXNlciBwb29sIGNsaWVudC5cbiAqL1xuVXNlclBvb2xDbGllbnRJZDogKHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59ICYgc3RyaW5nKVxuLyoqXG4gKiBUaGUgZG9tYWluIHByZWZpeCBvciBmdWxseS1xdWFsaWZpZWQgZG9tYWluIG5hbWUgb2YgdGhlIEFtYXpvbiBDb2duaXRvIHVzZXIgcG9vbC5cbiAqL1xuVXNlclBvb2xEb21haW46IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWF4aW11bSBkdXJhdGlvbiBvZiB0aGUgYXV0aGVudGljYXRpb24gc2Vzc2lvbiwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuXG4gKi9cblNlc3Npb25UaW1lb3V0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBzZXQgb2YgdXNlciBjbGFpbXMgdG8gYmUgcmVxdWVzdGVkIGZyb20gdGhlIElkUC4gVGhlIGRlZmF1bHQgaXMgYGBvcGVuaWRgYC5cbiAqICBUbyB2ZXJpZnkgd2hpY2ggc2NvcGUgdmFsdWVzIHlvdXIgSWRQIHN1cHBvcnRzIGFuZCBob3cgdG8gc2VwYXJhdGUgbXVsdGlwbGUgdmFsdWVzLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgSWRQLlxuICovXG5TY29wZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgY29va2llIHVzZWQgdG8gbWFpbnRhaW4gc2Vzc2lvbiBpbmZvcm1hdGlvbi4gVGhlIGRlZmF1bHQgaXMgQVdTRUxCQXV0aFNlc3Npb25Db29raWUuXG4gKi9cblNlc3Npb25Db29raWVOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgQW1hem9uIENvZ25pdG8gdXNlciBwb29sLlxuICovXG5Vc2VyUG9vbEFybjogc3RyaW5nXG4vKipcbiAqIFRoZSBxdWVyeSBwYXJhbWV0ZXJzICh1cCB0byAxMCkgdG8gaW5jbHVkZSBpbiB0aGUgcmVkaXJlY3QgcmVxdWVzdCB0byB0aGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludC5cbiAqL1xuQXV0aGVudGljYXRpb25SZXF1ZXN0RXh0cmFQYXJhbXM/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIlthLXpBLVowLTldK1wiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG59XG4vKipcbiAqIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyXSBJbmZvcm1hdGlvbiBmb3IgY3JlYXRpbmcgYSByZWRpcmVjdCBhY3Rpb24uIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgcmVkaXJlY3RgYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWRpcmVjdENvbmZpZyB7XG4vKipcbiAqIFRoZSBhYnNvbHV0ZSBwYXRoLCBzdGFydGluZyB3aXRoIHRoZSBsZWFkaW5nIFwiL1wiLiBUaGlzIGNvbXBvbmVudCBpcyBub3QgcGVyY2VudC1lbmNvZGVkLiBUaGUgcGF0aCBjYW4gY29udGFpbiAje2hvc3R9LCAje3BhdGh9LCBhbmQgI3twb3J0fS5cbiAqL1xuUGF0aD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgcXVlcnkgcGFyYW1ldGVycywgVVJMLWVuY29kZWQgd2hlbiBuZWNlc3NhcnksIGJ1dCBub3QgcGVyY2VudC1lbmNvZGVkLiBEbyBub3QgaW5jbHVkZSB0aGUgbGVhZGluZyBcIj9cIiwgYXMgaXQgaXMgYXV0b21hdGljYWxseSBhZGRlZC4gWW91IGNhbiBzcGVjaWZ5IGFueSBvZiB0aGUgcmVzZXJ2ZWQga2V5d29yZHMuXG4gKi9cblF1ZXJ5Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBwb3J0LiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIDEgdG8gNjU1MzUgb3IgI3twb3J0fS5cbiAqL1xuUG9ydD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaG9zdG5hbWUuIFRoaXMgY29tcG9uZW50IGlzIG5vdCBwZXJjZW50LWVuY29kZWQuIFRoZSBob3N0bmFtZSBjYW4gY29udGFpbiAje2hvc3R9LlxuICovXG5Ib3N0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBwcm90b2NvbC4gWW91IGNhbiBzcGVjaWZ5IEhUVFAsIEhUVFBTLCBvciAje3Byb3RvY29sfS4gWW91IGNhbiByZWRpcmVjdCBIVFRQIHRvIEhUVFAsIEhUVFAgdG8gSFRUUFMsIGFuZCBIVFRQUyB0byBIVFRQUy4gWW91IGNhbid0IHJlZGlyZWN0IEhUVFBTIHRvIEhUVFAuXG4gKi9cblByb3RvY29sPzogc3RyaW5nXG4vKipcbiAqIFRoZSBIVFRQIHJlZGlyZWN0IGNvZGUuIFRoZSByZWRpcmVjdCBpcyBlaXRoZXIgcGVybWFuZW50IChIVFRQIDMwMSkgb3IgdGVtcG9yYXJ5IChIVFRQIDMwMikuXG4gKi9cblN0YXR1c0NvZGU6IHN0cmluZ1xufVxuLyoqXG4gKiBbSFRUUFMgbGlzdGVuZXJzXSBJbmZvcm1hdGlvbiBmb3IgdmFsaWRhdGluZyBKV1QgYWNjZXNzIHRva2VucyBpbiBjbGllbnQgcmVxdWVzdHMuIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgand0LXZhbGlkYXRpb25gYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKd3RWYWxpZGF0aW9uQ29uZmlnIHtcbkp3a3NFbmRwb2ludDogc3RyaW5nXG5Jc3N1ZXI6IHN0cmluZ1xuQWRkaXRpb25hbENsYWltcz86IEp3dFZhbGlkYXRpb25BY3Rpb25BZGRpdGlvbmFsQ2xhaW1bXVxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhbiBhZGRpdGlvbmFsIGNsYWltIHRvIHZhbGlkYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEp3dFZhbGlkYXRpb25BY3Rpb25BZGRpdGlvbmFsQ2xhaW0ge1xuLyoqXG4gKiBUaGUgZm9ybWF0IG9mIHRoZSBjbGFpbSB2YWx1ZS5cbiAqL1xuRm9ybWF0OiBzdHJpbmdcbi8qKlxuICogVGhlIGNsYWltIHZhbHVlLiBUaGUgbWF4aW11bSBzaXplIG9mIHRoZSBsaXN0IGlzIDEwLiBFYWNoIHZhbHVlIGNhbiBiZSB1cCB0byAyNTYgY2hhcmFjdGVycyBpbiBsZW5ndGguIElmIHRoZSBmb3JtYXQgaXMgYGBzcGFjZS1zZXBhcmF0ZWQtdmFsdWVzYGAsIHRoZSB2YWx1ZXMgY2FuJ3QgaW5jbHVkZSBzcGFjZXMuXG4gKi9cblZhbHVlczogc3RyaW5nW11cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGNsYWltLiBZb3UgY2FuJ3Qgc3BlY2lmeSBgYGV4cGBgLCBgYGlzc2BgLCBgYG5iZmBgLCBvciBgYGlhdGBgIGJlY2F1c2Ugd2UgdmFsaWRhdGUgdGhlbSBieSBkZWZhdWx0LlxuICovXG5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gZm9yIGNyZWF0aW5nIGFuIGFjdGlvbiB0aGF0IGRpc3RyaWJ1dGVzIHJlcXVlc3RzIGFtb25nIG11bHRpcGxlIHRhcmdldCBncm91cHMuIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgZm9yd2FyZGBgLlxuICogIElmIHlvdSBzcGVjaWZ5IGJvdGggYGBGb3J3YXJkQ29uZmlnYGAgYW5kIGBgVGFyZ2V0R3JvdXBBcm5gYCwgeW91IGNhbiBzcGVjaWZ5IG9ubHkgb25lIHRhcmdldCBncm91cCB1c2luZyBgYEZvcndhcmRDb25maWdgYCBhbmQgaXQgbXVzdCBiZSB0aGUgc2FtZSB0YXJnZXQgZ3JvdXAgc3BlY2lmaWVkIGluIGBgVGFyZ2V0R3JvdXBBcm5gYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3J3YXJkQ29uZmlnIHtcblRhcmdldEdyb3VwU3RpY2tpbmVzc0NvbmZpZz86IFRhcmdldEdyb3VwU3RpY2tpbmVzc0NvbmZpZ1xuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBob3cgdHJhZmZpYyB3aWxsIGJlIGRpc3RyaWJ1dGVkIGJldHdlZW4gbXVsdGlwbGUgdGFyZ2V0IGdyb3VwcyBpbiBhIGZvcndhcmQgcnVsZS5cbiAqL1xuVGFyZ2V0R3JvdXBzPzogVGFyZ2V0R3JvdXBUdXBsZVtdXG59XG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSB0YXJnZXQgZ3JvdXAgc3RpY2tpbmVzcyBmb3IgYSBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldEdyb3VwU3RpY2tpbmVzc0NvbmZpZyB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRhcmdldCBncm91cCBzdGlja2luZXNzIGlzIGVuYWJsZWQuXG4gKi9cbkVuYWJsZWQ/OiBib29sZWFuXG4vKipcbiAqIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2Vyc10gVGhlIHRpbWUgcGVyaW9kLCBpbiBzZWNvbmRzLCBkdXJpbmcgd2hpY2ggcmVxdWVzdHMgZnJvbSBhIGNsaWVudCBzaG91bGQgYmUgcm91dGVkIHRvIHRoZSBzYW1lIHRhcmdldCBncm91cC4gVGhlIHJhbmdlIGlzIDEtNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuIFlvdSBtdXN0IHNwZWNpZnkgdGhpcyB2YWx1ZSB3aGVuIGVuYWJsaW5nIHRhcmdldCBncm91cCBzdGlja2luZXNzLlxuICovXG5EdXJhdGlvblNlY29uZHM/OiBudW1iZXJcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgaG93IHRyYWZmaWMgd2lsbCBiZSBkaXN0cmlidXRlZCBiZXR3ZWVuIG11bHRpcGxlIHRhcmdldCBncm91cHMgaW4gYSBmb3J3YXJkIHJ1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0R3JvdXBUdXBsZSB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgdGFyZ2V0IGdyb3VwLlxuICovXG5UYXJnZXRHcm91cEFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgd2VpZ2h0LiBUaGUgcmFuZ2UgaXMgMCB0byA5OTkuXG4gKi9cbldlaWdodD86IG51bWJlclxufVxuLyoqXG4gKiBTcGVjaWZpZXMgYW4gU1NMIHNlcnZlciBjZXJ0aWZpY2F0ZSB0byB1c2UgYXMgdGhlIGRlZmF1bHQgY2VydGlmaWNhdGUgZm9yIGEgc2VjdXJlIGxpc3RlbmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENlcnRpZmljYXRlIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBjZXJ0aWZpY2F0ZS5cbiAqL1xuQ2VydGlmaWNhdGVBcm4/OiAoe1xuW2s6IHN0cmluZ106IHVua25vd25cbn0gJiBzdHJpbmcpXG59XG4iXX0=
@@ -298,14 +298,29 @@ export interface TargetGroupTuple {
298
298
  */
299
299
  Weight?: number;
300
300
  }
301
+ /**
302
+ * [HTTPS listeners] Information for validating JWT access tokens in client requests. Specify only when ``Type`` is ``jwt-validation``.
303
+ */
301
304
  export interface JwtValidationConfig {
302
305
  JwksEndpoint: string;
303
306
  Issuer: string;
304
307
  AdditionalClaims?: JwtValidationActionAdditionalClaim[];
305
308
  }
309
+ /**
310
+ * Information about an additional claim to validate.
311
+ */
306
312
  export interface JwtValidationActionAdditionalClaim {
313
+ /**
314
+ * The format of the claim value.
315
+ */
307
316
  Format: string;
317
+ /**
318
+ * The name of the claim. You can't specify ``exp``, ``iss``, ``nbf``, or ``iat`` because we validate them by default.
319
+ */
308
320
  Name: string;
321
+ /**
322
+ * The claim value. The maximum size of the list is 10. Each value can be up to 256 characters in length. If the format is ``space-separated-values``, the values can't include spaces.
323
+ */
309
324
  Values: string[];
310
325
  }
311
326
  /**
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbGlzdGVuZXJydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbGlzdGVuZXJydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFtIVFRQUyBsaXN0ZW5lcnNdIEluZm9ybWF0aW9uIGFib3V0IGFuIGlkZW50aXR5IHByb3ZpZGVyIHRoYXQgaXMgY29tcGxpYW50IHdpdGggT3BlbklEIENvbm5lY3QgKE9JREMpLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYFR5cGVgYCBpcyBgYGF1dGhlbnRpY2F0ZS1vaWRjYGAuXG4gKi9cbmV4cG9ydCB0eXBlIEF1dGhlbnRpY2F0ZU9pZGNDb25maWcgPSAoe1xuW2s6IHN0cmluZ106IHVua25vd25cbn0gJiB7XG4vKipcbiAqIFRoZSBiZWhhdmlvciBpZiB0aGUgdXNlciBpcyBub3QgYXV0aGVudGljYXRlZC4gVGhlIGZvbGxvd2luZyBhcmUgcG9zc2libGUgdmFsdWVzOlxuICogICArICBkZW55YGBgYCAtIFJldHVybiBhbiBIVFRQIDQwMSBVbmF1dGhvcml6ZWQgZXJyb3IuXG4gKiAgICsgIGFsbG93YGBgYCAtIEFsbG93IHRoZSByZXF1ZXN0IHRvIGJlIGZvcndhcmRlZCB0byB0aGUgdGFyZ2V0LlxuICogICArICBhdXRoZW50aWNhdGVgYGBgIC0gUmVkaXJlY3QgdGhlIHJlcXVlc3QgdG8gdGhlIElkUCBhdXRob3JpemF0aW9uIGVuZHBvaW50LiBUaGlzIGlzIHRoZSBkZWZhdWx0IHZhbHVlLlxuICovXG5PblVuYXV0aGVudGljYXRlZFJlcXVlc3Q/OiBzdHJpbmdcbi8qKlxuICogVGhlIHRva2VuIGVuZHBvaW50IG9mIHRoZSBJZFAuIFRoaXMgbXVzdCBiZSBhIGZ1bGwgVVJMLCBpbmNsdWRpbmcgdGhlIEhUVFBTIHByb3RvY29sLCB0aGUgZG9tYWluLCBhbmQgdGhlIHBhdGguXG4gKi9cblRva2VuRW5kcG9pbnQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWF4aW11bSBkdXJhdGlvbiBvZiB0aGUgYXV0aGVudGljYXRpb24gc2Vzc2lvbiwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuXG4gKi9cblNlc3Npb25UaW1lb3V0PzogbnVtYmVyXG4vKipcbiAqIFRoZSBzZXQgb2YgdXNlciBjbGFpbXMgdG8gYmUgcmVxdWVzdGVkIGZyb20gdGhlIElkUC4gVGhlIGRlZmF1bHQgaXMgYGBvcGVuaWRgYC5cbiAqICBUbyB2ZXJpZnkgd2hpY2ggc2NvcGUgdmFsdWVzIHlvdXIgSWRQIHN1cHBvcnRzIGFuZCBob3cgdG8gc2VwYXJhdGUgbXVsdGlwbGUgdmFsdWVzLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgSWRQLlxuICovXG5TY29wZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgT0lEQyBpc3N1ZXIgaWRlbnRpZmllciBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Jc3N1ZXI6IHN0cmluZ1xuLyoqXG4gKiBUaGUgT0F1dGggMi4wIGNsaWVudCBzZWNyZXQuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIGlmIHlvdSBhcmUgY3JlYXRpbmcgYSBydWxlLiBJZiB5b3UgYXJlIG1vZGlmeWluZyBhIHJ1bGUsIHlvdSBjYW4gb21pdCB0aGlzIHBhcmFtZXRlciBpZiB5b3Ugc2V0IGBgVXNlRXhpc3RpbmdDbGllbnRTZWNyZXRgYCB0byB0cnVlLlxuICovXG5DbGllbnRTZWNyZXQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIHVzZXIgaW5mbyBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Vc2VySW5mb0VuZHBvaW50OiBzdHJpbmdcbi8qKlxuICogVGhlIE9BdXRoIDIuMCBjbGllbnQgaWRlbnRpZmllci5cbiAqL1xuQ2xpZW50SWQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5BdXRob3JpemF0aW9uRW5kcG9pbnQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgY29va2llIHVzZWQgdG8gbWFpbnRhaW4gc2Vzc2lvbiBpbmZvcm1hdGlvbi4gVGhlIGRlZmF1bHQgaXMgQVdTRUxCQXV0aFNlc3Npb25Db29raWUuXG4gKi9cblNlc3Npb25Db29raWVOYW1lPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHVzZSB0aGUgZXhpc3RpbmcgY2xpZW50IHNlY3JldCB3aGVuIG1vZGlmeWluZyBhIHJ1bGUuIElmIHlvdSBhcmUgY3JlYXRpbmcgYSBydWxlLCB5b3UgY2FuIG9taXQgdGhpcyBwYXJhbWV0ZXIgb3Igc2V0IGl0IHRvIGZhbHNlLlxuICovXG5Vc2VFeGlzdGluZ0NsaWVudFNlY3JldD86IGJvb2xlYW5cbi8qKlxuICogVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgKHVwIHRvIDEwKSB0byBpbmNsdWRlIGluIHRoZSByZWRpcmVjdCByZXF1ZXN0IHRvIHRoZSBhdXRob3JpemF0aW9uIGVuZHBvaW50LlxuICovXG5BdXRoZW50aWNhdGlvblJlcXVlc3RFeHRyYVBhcmFtcz86IHtcbi8qKlxuICogVGhpcyBpbnRlcmZhY2Ugd2FzIHJlZmVyZW5jZWQgYnkgYHVuZGVmaW5lZGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiW2EtekEtWjAtOV0rXCIuXG4gKi9cbltrOiBzdHJpbmddOiBzdHJpbmdcbn1cbn0pXG4vKipcbiAqIFRoZSByZWd1bGFyIGV4cHJlc3Npb25zIHRvIG1hdGNoIGFnYWluc3QgdGhlIGNvbmRpdGlvbiBmaWVsZC4gVGhlIG1heGltdW0gbGVuZ3RoIG9mIGVhY2ggc3RyaW5nIGlzIDEyOCBjaGFyYWN0ZXJzLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYEZpZWxkYGAgaXMgYGBodHRwLWhlYWRlcmBgLCBgYGhvc3QtaGVhZGVyYGAsIG9yIGBgcGF0aC1wYXR0ZXJuYGAuXG4gKi9cbmV4cG9ydCB0eXBlIExpc3RPZlN0cmluZ3MgPSBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgY29uZGl0aW9uIHZhbHVlLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYEZpZWxkYGAgaXMgYGBob3N0LWhlYWRlcmBgIG9yIGBgcGF0aC1wYXR0ZXJuYGAuIEFsdGVybmF0aXZlbHksIHRvIHNwZWNpZnkgbXVsdGlwbGUgaG9zdCBuYW1lcyBvciBtdWx0aXBsZSBwYXRoIHBhdHRlcm5zLCB1c2UgYGBIb3N0SGVhZGVyQ29uZmlnYGAgb3IgYGBQYXRoUGF0dGVybkNvbmZpZ2BgLlxuICogIElmIGBgRmllbGRgYCBpcyBgYGhvc3QtaGVhZGVyYGAgYW5kIHlvdSdyZSBub3QgdXNpbmcgYGBIb3N0SGVhZGVyQ29uZmlnYGAsIHlvdSBjYW4gc3BlY2lmeSBhIHNpbmdsZSBob3N0IG5hbWUgKGZvciBleGFtcGxlLCBteS5leGFtcGxlLmNvbSkuIEEgaG9zdCBuYW1lIGlzIGNhc2UgaW5zZW5zaXRpdmUsIGNhbiBiZSB1cCB0byAxMjggY2hhcmFjdGVycyBpbiBsZW5ndGgsIGFuZCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzLlxuICogICArICBBLVosIGEteiwgMC05XG4gKiAgICsgIC0gLlxuICogICArICAqIChtYXRjaGVzIDAgb3IgbW9yZSBjaGFyYWN0ZXJzKVxuICogICArICA/IChtYXRjaGVzIGV4YWN0bHkgMSBjaGFyYWN0ZXIpXG4gKiAgIFxuICogIElmIGBgRmllbGRgYCBpcyBgYHBhdGgtcGF0dGVybmBgIGFuZCB5b3UncmUgbm90IHVzaW5nIGBgUGF0aFBhdHRlcm5Db25maWdgYCwgeW91IGNhbiBzcGVjaWZ5IGEgc2luZ2xlIHBhdGggcGF0dGVybiAoZm9yIGV4YW1wbGUsIC9pbWcvKikuIEEgcGF0aCBwYXR0ZXJuIGlzIGNhc2Utc2Vuc2l0aXZlLCBjYW4gYmUgdXAgdG8gMTI4IGNoYXJhY3RlcnMgaW4gbGVuZ3RoLCBhbmQgY2FuIGNvbnRhaW4gYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVycy5cbiAqICAgKyAgQS1aLCBhLXosIDAtOVxuICogICArICBfIC0gLiAkIC8gfiBcIiAnIEAgOiArXG4gKiAgICsgICYgKHVzaW5nICZhbXA7KVxuICogICArICAqIChtYXRjaGVzIDAgb3IgbW9yZSBjaGFyYWN0ZXJzKVxuICogICArICA/IChtYXRjaGVzIGV4YWN0bHkgMSBjaGFyYWN0ZXIpXG4gKi9cbmV4cG9ydCB0eXBlIExpc3RPZlN0cmluZ3MxID0gc3RyaW5nW11cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgbWV0aG9kLiBUaGUgbWF4aW11bSBsZW5ndGggaXMgNDAgY2hhcmFjdGVycy4gVGhlIGFsbG93ZWQgY2hhcmFjdGVycyBhcmUgQS1aLCBoeXBoZW4gKC0pLCBhbmQgdW5kZXJzY29yZSAoXykuIFRoZSBjb21wYXJpc29uIGlzIGNhc2Ugc2Vuc2l0aXZlLiBXaWxkY2FyZHMgYXJlIG5vdCBzdXBwb3J0ZWQ7IHRoZXJlZm9yZSwgdGhlIG1ldGhvZCBuYW1lIG11c3QgYmUgYW4gZXhhY3QgbWF0Y2guXG4gKiAgSWYgeW91IHNwZWNpZnkgbXVsdGlwbGUgc3RyaW5ncywgdGhlIGNvbmRpdGlvbiBpcyBzYXRpc2ZpZWQgaWYgb25lIG9mIHRoZSBzdHJpbmdzIG1hdGNoZXMgdGhlIEhUVFAgcmVxdWVzdCBtZXRob2QuIFdlIHJlY29tbWVuZCB0aGF0IHlvdSByb3V0ZSBHRVQgYW5kIEhFQUQgcmVxdWVzdHMgaW4gdGhlIHNhbWUgd2F5LCBiZWNhdXNlIHRoZSByZXNwb25zZSB0byBhIEhFQUQgcmVxdWVzdCBtYXkgYmUgY2FjaGVkLlxuICovXG5leHBvcnQgdHlwZSBMaXN0T2ZTdHJpbmdzMiA9IHN0cmluZ1tdXG5leHBvcnQgdHlwZSBMaXN0T2ZTdHJpbmdzMyA9IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBwYXRoIHBhdHRlcm5zIHRvIGNvbXBhcmUgYWdhaW5zdCB0aGUgcmVxdWVzdCBVUkwuIFRoZSBtYXhpbXVtIHNpemUgb2YgZWFjaCBzdHJpbmcgaXMgMTI4IGNoYXJhY3RlcnMuIFRoZSBjb21wYXJpc29uIGlzIGNhc2Ugc2Vuc2l0aXZlLiBUaGUgZm9sbG93aW5nIHdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZDogKiAobWF0Y2hlcyAwIG9yIG1vcmUgY2hhcmFjdGVycykgYW5kID8gKG1hdGNoZXMgZXhhY3RseSAxIGNoYXJhY3RlcikuXG4gKiAgSWYgeW91IHNwZWNpZnkgbXVsdGlwbGUgc3RyaW5ncywgdGhlIGNvbmRpdGlvbiBpcyBzYXRpc2ZpZWQgaWYgb25lIG9mIHRoZW0gbWF0Y2hlcyB0aGUgcmVxdWVzdCBVUkwuIFRoZSBwYXRoIHBhdHRlcm4gaXMgY29tcGFyZWQgb25seSB0byB0aGUgcGF0aCBvZiB0aGUgVVJMLCBub3QgdG8gaXRzIHF1ZXJ5IHN0cmluZy5cbiAqL1xuZXhwb3J0IHR5cGUgTGlzdE9mU3RyaW5nczQgPSBzdHJpbmdbXVxuZXhwb3J0IHR5cGUgTGlzdE9mU3RyaW5nczUgPSBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgc3RyaW5ncyB0byBjb21wYXJlIGFnYWluc3QgdGhlIHZhbHVlIG9mIHRoZSBIVFRQIGhlYWRlci4gVGhlIG1heGltdW0gbGVuZ3RoIG9mIGVhY2ggc3RyaW5nIGlzIDEyOCBjaGFyYWN0ZXJzLiBUaGUgY29tcGFyaXNvbiBzdHJpbmdzIGFyZSBjYXNlIGluc2Vuc2l0aXZlLiBUaGUgZm9sbG93aW5nIHdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZDogKiAobWF0Y2hlcyAwIG9yIG1vcmUgY2hhcmFjdGVycykgYW5kID8gKG1hdGNoZXMgZXhhY3RseSAxIGNoYXJhY3RlcikuXG4gKiAgSWYgdGhlIHNhbWUgaGVhZGVyIGFwcGVhcnMgbXVsdGlwbGUgdGltZXMgaW4gdGhlIHJlcXVlc3QsIHdlIHNlYXJjaCB0aGVtIGluIG9yZGVyIHVudGlsIGEgbWF0Y2ggaXMgZm91bmQuXG4gKiAgSWYgeW91IHNwZWNpZnkgbXVsdGlwbGUgc3RyaW5ncywgdGhlIGNvbmRpdGlvbiBpcyBzYXRpc2ZpZWQgaWYgb25lIG9mIHRoZSBzdHJpbmdzIG1hdGNoZXMgdGhlIHZhbHVlIG9mIHRoZSBIVFRQIGhlYWRlci4gVG8gcmVxdWlyZSB0aGF0IGFsbCBvZiB0aGUgc3RyaW5ncyBhcmUgYSBtYXRjaCwgY3JlYXRlIG9uZSBjb25kaXRpb24gcGVyIHN0cmluZy5cbiAqL1xuZXhwb3J0IHR5cGUgTGlzdE9mU3RyaW5nczYgPSBzdHJpbmdbXVxuZXhwb3J0IHR5cGUgTGlzdE9mU3RyaW5nczcgPSBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgaG9zdCBuYW1lcy4gVGhlIG1heGltdW0gbGVuZ3RoIG9mIGVhY2ggc3RyaW5nIGlzIDEyOCBjaGFyYWN0ZXJzLiBUaGUgY29tcGFyaXNvbiBpcyBjYXNlIGluc2Vuc2l0aXZlLiBUaGUgZm9sbG93aW5nIHdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZDogKiAobWF0Y2hlcyAwIG9yIG1vcmUgY2hhcmFjdGVycykgYW5kID8gKG1hdGNoZXMgZXhhY3RseSAxIGNoYXJhY3RlcikuIFlvdSBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIFwiLlwiIGNoYXJhY3Rlci4gWW91IGNhbiBpbmNsdWRlIG9ubHkgYWxwaGFiZXRpY2FsIGNoYXJhY3RlcnMgYWZ0ZXIgdGhlIGZpbmFsIFwiLlwiIGNoYXJhY3Rlci5cbiAqICBJZiB5b3Ugc3BlY2lmeSBtdWx0aXBsZSBzdHJpbmdzLCB0aGUgY29uZGl0aW9uIGlzIHNhdGlzZmllZCBpZiBvbmUgb2YgdGhlIHN0cmluZ3MgbWF0Y2hlcyB0aGUgaG9zdCBuYW1lLlxuICovXG5leHBvcnQgdHlwZSBMaXN0T2ZTdHJpbmdzOCA9IHN0cmluZ1tdXG5leHBvcnQgdHlwZSBUcmFuc2Zvcm0gPSAoe1xuVHlwZTogc3RyaW5nXG5Ib3N0SGVhZGVyUmV3cml0ZUNvbmZpZz86IFJld3JpdGVDb25maWdPYmplY3RcblVybFJld3JpdGVDb25maWc/OiBSZXdyaXRlQ29uZmlnT2JqZWN0MVxufSAmIFRyYW5zZm9ybTEpXG5leHBvcnQgdHlwZSBSZXdyaXRlQ29uZmlnTGlzdCA9IFJld3JpdGVDb25maWdbXVxuZXhwb3J0IHR5cGUgVHJhbnNmb3JtMSA9IHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59XG5cbi8qKlxuICogU3BlY2lmaWVzIGEgbGlzdGVuZXIgcnVsZS4gVGhlIGxpc3RlbmVyIG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIGFuIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIuIEVhY2ggcnVsZSBjb25zaXN0cyBvZiBhIHByaW9yaXR5LCBvbmUgb3IgbW9yZSBhY3Rpb25zLCBhbmQgb25lIG9yIG1vcmUgY29uZGl0aW9ucy5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtRdW90YXMgZm9yIHlvdXIgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbGFzdGljbG9hZGJhbGFuY2luZy9sYXRlc3QvYXBwbGljYXRpb24vbG9hZC1iYWxhbmNlci1saW1pdHMuaHRtbCkgaW4gdGhlICpVc2VyIEd1aWRlIGZvciBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19FTEFTVElDTE9BREJBTEFOQ0lOR1YyX0xJU1RFTkVSUlVMRSB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgbGlzdGVuZXIuXG4gKi9cbkxpc3RlbmVyQXJuPzogc3RyaW5nXG5SdWxlQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBhY3Rpb25zLlxuICogIFRoZSBydWxlIG11c3QgaW5jbHVkZSBleGFjdGx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHR5cGVzIG9mIGFjdGlvbnM6IGBgZm9yd2FyZGBgLCBgYGZpeGVkLXJlc3BvbnNlYGAsIG9yIGBgcmVkaXJlY3RgYCwgYW5kIGl0IG11c3QgYmUgdGhlIGxhc3QgYWN0aW9uIHRvIGJlIHBlcmZvcm1lZC4gSWYgdGhlIHJ1bGUgaXMgZm9yIGFuIEhUVFBTIGxpc3RlbmVyLCBpdCBjYW4gYWxzbyBvcHRpb25hbGx5IGluY2x1ZGUgYW4gYXV0aGVudGljYXRpb24gYWN0aW9uLlxuICovXG5BY3Rpb25zOiBBY3Rpb25bXVxuLyoqXG4gKiBUaGUgcnVsZSBwcmlvcml0eS4gQSBsaXN0ZW5lciBjYW4ndCBoYXZlIG11bHRpcGxlIHJ1bGVzIHdpdGggdGhlIHNhbWUgcHJpb3JpdHkuXG4gKiAgSWYgeW91IHRyeSB0byByZW9yZGVyIHJ1bGVzIGJ5IHVwZGF0aW5nIHRoZWlyIHByaW9yaXRpZXMsIGRvIG5vdCBzcGVjaWZ5IGEgbmV3IHByaW9yaXR5IGlmIGFuIGV4aXN0aW5nIHJ1bGUgYWxyZWFkeSB1c2VzIHRoaXMgcHJpb3JpdHksIGFzIHRoaXMgY2FuIGNhdXNlIGFuIGVycm9yLiBJZiB5b3UgbmVlZCB0byByZXVzZSBhIHByaW9yaXR5IHdpdGggYSBkaWZmZXJlbnQgcnVsZSwgeW91IG11c3QgcmVtb3ZlIGl0IGFzIGEgcHJpb3JpdHkgZmlyc3QsIGFuZCB0aGVuIHNwZWNpZnkgaXQgaW4gYSBzdWJzZXF1ZW50IHVwZGF0ZS5cbiAqL1xuUHJpb3JpdHk6IG51bWJlclxuLyoqXG4gKiBUaGUgY29uZGl0aW9ucy5cbiAqICBUaGUgcnVsZSBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHVwIHRvIG9uZSBvZiBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczogYGBodHRwLXJlcXVlc3QtbWV0aG9kYGAsIGBgaG9zdC1oZWFkZXJgYCwgYGBwYXRoLXBhdHRlcm5gYCwgYW5kIGBgc291cmNlLWlwYGAuIEEgcnVsZSBjYW4gYWxzbyBvcHRpb25hbGx5IGluY2x1ZGUgb25lIG9yIG1vcmUgb2YgZWFjaCBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6IGBgaHR0cC1oZWFkZXJgYCBhbmQgYGBxdWVyeS1zdHJpbmdgYC5cbiAqL1xuQ29uZGl0aW9uczogUnVsZUNvbmRpdGlvbltdXG5UcmFuc2Zvcm1zPzogVHJhbnNmb3JtW11cbklzRGVmYXVsdD86IGJvb2xlYW5cbn1cbi8qKlxuICogU3BlY2lmaWVzIGFuIGFjdGlvbiBmb3IgYSBsaXN0ZW5lciBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbiB7XG4vKipcbiAqIFRoZSBvcmRlciBmb3IgdGhlIGFjdGlvbi4gVGhpcyB2YWx1ZSBpcyByZXF1aXJlZCBmb3IgcnVsZXMgd2l0aCBtdWx0aXBsZSBhY3Rpb25zLiBUaGUgYWN0aW9uIHdpdGggdGhlIGxvd2VzdCB2YWx1ZSBmb3Igb3JkZXIgaXMgcGVyZm9ybWVkIGZpcnN0LlxuICovXG5PcmRlcj86IG51bWJlclxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHRhcmdldCBncm91cC4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBmb3J3YXJkYGAgYW5kIHlvdSB3YW50IHRvIHJvdXRlIHRvIGEgc2luZ2xlIHRhcmdldCBncm91cC4gVG8gcm91dGUgdG8gbXVsdGlwbGUgdGFyZ2V0IGdyb3VwcywgeW91IG11c3QgdXNlIGBgRm9yd2FyZENvbmZpZ2BgIGluc3RlYWQuXG4gKi9cblRhcmdldEdyb3VwQXJuPzogc3RyaW5nXG5GaXhlZFJlc3BvbnNlQ29uZmlnPzogRml4ZWRSZXNwb25zZUNvbmZpZ1xuQXV0aGVudGljYXRlQ29nbml0b0NvbmZpZz86IEF1dGhlbnRpY2F0ZUNvZ25pdG9Db25maWdcbi8qKlxuICogVGhlIHR5cGUgb2YgYWN0aW9uLlxuICovXG5UeXBlOiBzdHJpbmdcblJlZGlyZWN0Q29uZmlnPzogUmVkaXJlY3RDb25maWdcbkZvcndhcmRDb25maWc/OiBGb3J3YXJkQ29uZmlnXG5BdXRoZW50aWNhdGVPaWRjQ29uZmlnPzogQXV0aGVudGljYXRlT2lkY0NvbmZpZ1xuSnd0VmFsaWRhdGlvbkNvbmZpZz86IEp3dFZhbGlkYXRpb25Db25maWdcbn1cbi8qKlxuICogW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJdIEluZm9ybWF0aW9uIGZvciBjcmVhdGluZyBhbiBhY3Rpb24gdGhhdCByZXR1cm5zIGEgY3VzdG9tIEhUVFAgcmVzcG9uc2UuIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgZml4ZWQtcmVzcG9uc2VgYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaXhlZFJlc3BvbnNlQ29uZmlnIHtcbi8qKlxuICogVGhlIGNvbnRlbnQgdHlwZS5cbiAqICBWYWxpZCBWYWx1ZXM6IHRleHQvcGxhaW4gfCB0ZXh0L2NzcyB8IHRleHQvaHRtbCB8IGFwcGxpY2F0aW9uL2phdmFzY3JpcHQgfCBhcHBsaWNhdGlvbi9qc29uXG4gKi9cbkNvbnRlbnRUeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBIVFRQIHJlc3BvbnNlIGNvZGUgKDJYWCwgNFhYLCBvciA1WFgpLlxuICovXG5TdGF0dXNDb2RlOiBzdHJpbmdcbi8qKlxuICogVGhlIG1lc3NhZ2UuXG4gKi9cbk1lc3NhZ2VCb2R5Pzogc3RyaW5nXG59XG4vKipcbiAqIFtIVFRQUyBsaXN0ZW5lcnNdIEluZm9ybWF0aW9uIGZvciB1c2luZyBBbWF6b24gQ29nbml0byB0byBhdXRoZW50aWNhdGUgdXNlcnMuIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgYXV0aGVudGljYXRlLWNvZ25pdG9gYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoZW50aWNhdGVDb2duaXRvQ29uZmlnIHtcbi8qKlxuICogVGhlIGJlaGF2aW9yIGlmIHRoZSB1c2VyIGlzIG5vdCBhdXRoZW50aWNhdGVkLiBUaGUgZm9sbG93aW5nIGFyZSBwb3NzaWJsZSB2YWx1ZXM6XG4gKiAgICsgIGRlbnlgYGBgIC0gUmV0dXJuIGFuIEhUVFAgNDAxIFVuYXV0aG9yaXplZCBlcnJvci5cbiAqICAgKyAgYWxsb3dgYGBgIC0gQWxsb3cgdGhlIHJlcXVlc3QgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZSB0YXJnZXQuXG4gKiAgICsgIGF1dGhlbnRpY2F0ZWBgYGAgLSBSZWRpcmVjdCB0aGUgcmVxdWVzdCB0byB0aGUgSWRQIGF1dGhvcml6YXRpb24gZW5kcG9pbnQuIFRoaXMgaXMgdGhlIGRlZmF1bHQgdmFsdWUuXG4gKi9cbk9uVW5hdXRoZW50aWNhdGVkUmVxdWVzdD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIEFtYXpvbiBDb2duaXRvIHVzZXIgcG9vbCBjbGllbnQuXG4gKi9cblVzZXJQb29sQ2xpZW50SWQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgZG9tYWluIHByZWZpeCBvciBmdWxseS1xdWFsaWZpZWQgZG9tYWluIG5hbWUgb2YgdGhlIEFtYXpvbiBDb2duaXRvIHVzZXIgcG9vbC5cbiAqL1xuVXNlclBvb2xEb21haW46IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWF4aW11bSBkdXJhdGlvbiBvZiB0aGUgYXV0aGVudGljYXRpb24gc2Vzc2lvbiwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuXG4gKi9cblNlc3Npb25UaW1lb3V0PzogbnVtYmVyXG4vKipcbiAqIFRoZSBzZXQgb2YgdXNlciBjbGFpbXMgdG8gYmUgcmVxdWVzdGVkIGZyb20gdGhlIElkUC4gVGhlIGRlZmF1bHQgaXMgYGBvcGVuaWRgYC5cbiAqICBUbyB2ZXJpZnkgd2hpY2ggc2NvcGUgdmFsdWVzIHlvdXIgSWRQIHN1cHBvcnRzIGFuZCBob3cgdG8gc2VwYXJhdGUgbXVsdGlwbGUgdmFsdWVzLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgSWRQLlxuICovXG5TY29wZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgY29va2llIHVzZWQgdG8gbWFpbnRhaW4gc2Vzc2lvbiBpbmZvcm1hdGlvbi4gVGhlIGRlZmF1bHQgaXMgQVdTRUxCQXV0aFNlc3Npb25Db29raWUuXG4gKi9cblNlc3Npb25Db29raWVOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgQW1hem9uIENvZ25pdG8gdXNlciBwb29sLlxuICovXG5Vc2VyUG9vbEFybjogc3RyaW5nXG4vKipcbiAqIFRoZSBxdWVyeSBwYXJhbWV0ZXJzICh1cCB0byAxMCkgdG8gaW5jbHVkZSBpbiB0aGUgcmVkaXJlY3QgcmVxdWVzdCB0byB0aGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludC5cbiAqL1xuQXV0aGVudGljYXRpb25SZXF1ZXN0RXh0cmFQYXJhbXM/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIlthLXpBLVowLTldK1wiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG59XG4vKipcbiAqIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyXSBJbmZvcm1hdGlvbiBmb3IgY3JlYXRpbmcgYSByZWRpcmVjdCBhY3Rpb24uIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgcmVkaXJlY3RgYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWRpcmVjdENvbmZpZyB7XG4vKipcbiAqIFRoZSBhYnNvbHV0ZSBwYXRoLCBzdGFydGluZyB3aXRoIHRoZSBsZWFkaW5nIFwiL1wiLiBUaGlzIGNvbXBvbmVudCBpcyBub3QgcGVyY2VudC1lbmNvZGVkLiBUaGUgcGF0aCBjYW4gY29udGFpbiAje2hvc3R9LCAje3BhdGh9LCBhbmQgI3twb3J0fS5cbiAqL1xuUGF0aD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgcXVlcnkgcGFyYW1ldGVycywgVVJMLWVuY29kZWQgd2hlbiBuZWNlc3NhcnksIGJ1dCBub3QgcGVyY2VudC1lbmNvZGVkLiBEbyBub3QgaW5jbHVkZSB0aGUgbGVhZGluZyBcIj9cIiwgYXMgaXQgaXMgYXV0b21hdGljYWxseSBhZGRlZC4gWW91IGNhbiBzcGVjaWZ5IGFueSBvZiB0aGUgcmVzZXJ2ZWQga2V5d29yZHMuXG4gKi9cblF1ZXJ5Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBwb3J0LiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIDEgdG8gNjU1MzUgb3IgI3twb3J0fS5cbiAqL1xuUG9ydD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaG9zdG5hbWUuIFRoaXMgY29tcG9uZW50IGlzIG5vdCBwZXJjZW50LWVuY29kZWQuIFRoZSBob3N0bmFtZSBjYW4gY29udGFpbiAje2hvc3R9LlxuICovXG5Ib3N0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBwcm90b2NvbC4gWW91IGNhbiBzcGVjaWZ5IEhUVFAsIEhUVFBTLCBvciAje3Byb3RvY29sfS4gWW91IGNhbiByZWRpcmVjdCBIVFRQIHRvIEhUVFAsIEhUVFAgdG8gSFRUUFMsIGFuZCBIVFRQUyB0byBIVFRQUy4gWW91IGNhbid0IHJlZGlyZWN0IEhUVFBTIHRvIEhUVFAuXG4gKi9cblByb3RvY29sPzogc3RyaW5nXG4vKipcbiAqIFRoZSBIVFRQIHJlZGlyZWN0IGNvZGUuIFRoZSByZWRpcmVjdCBpcyBlaXRoZXIgcGVybWFuZW50IChIVFRQIDMwMSkgb3IgdGVtcG9yYXJ5IChIVFRQIDMwMikuXG4gKi9cblN0YXR1c0NvZGU6IHN0cmluZ1xufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBmb3IgY3JlYXRpbmcgYW4gYWN0aW9uIHRoYXQgZGlzdHJpYnV0ZXMgcmVxdWVzdHMgYW1vbmcgbXVsdGlwbGUgdGFyZ2V0IGdyb3Vwcy4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBmb3J3YXJkYGAuXG4gKiAgSWYgeW91IHNwZWNpZnkgYm90aCBgYEZvcndhcmRDb25maWdgYCBhbmQgYGBUYXJnZXRHcm91cEFybmBgLCB5b3UgY2FuIHNwZWNpZnkgb25seSBvbmUgdGFyZ2V0IGdyb3VwIHVzaW5nIGBgRm9yd2FyZENvbmZpZ2BgIGFuZCBpdCBtdXN0IGJlIHRoZSBzYW1lIHRhcmdldCBncm91cCBzcGVjaWZpZWQgaW4gYGBUYXJnZXRHcm91cEFybmBgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcndhcmRDb25maWcge1xuVGFyZ2V0R3JvdXBTdGlja2luZXNzQ29uZmlnPzogVGFyZ2V0R3JvdXBTdGlja2luZXNzQ29uZmlnXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGhvdyB0cmFmZmljIHdpbGwgYmUgZGlzdHJpYnV0ZWQgYmV0d2VlbiBtdWx0aXBsZSB0YXJnZXQgZ3JvdXBzIGluIGEgZm9yd2FyZCBydWxlLlxuICovXG5UYXJnZXRHcm91cHM/OiBUYXJnZXRHcm91cFR1cGxlW11cbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIHRhcmdldCBncm91cCBzdGlja2luZXNzIGZvciBhIHJ1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0R3JvdXBTdGlja2luZXNzQ29uZmlnIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGFyZ2V0IGdyb3VwIHN0aWNraW5lc3MgaXMgZW5hYmxlZC5cbiAqL1xuRW5hYmxlZD86IGJvb2xlYW5cbi8qKlxuICogW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJzXSBUaGUgdGltZSBwZXJpb2QsIGluIHNlY29uZHMsIGR1cmluZyB3aGljaCByZXF1ZXN0cyBmcm9tIGEgY2xpZW50IHNob3VsZCBiZSByb3V0ZWQgdG8gdGhlIHNhbWUgdGFyZ2V0IGdyb3VwLiBUaGUgcmFuZ2UgaXMgMS02MDQ4MDAgc2Vjb25kcyAoNyBkYXlzKS4gWW91IG11c3Qgc3BlY2lmeSB0aGlzIHZhbHVlIHdoZW4gZW5hYmxpbmcgdGFyZ2V0IGdyb3VwIHN0aWNraW5lc3MuXG4gKi9cbkR1cmF0aW9uU2Vjb25kcz86IG51bWJlclxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBob3cgdHJhZmZpYyB3aWxsIGJlIGRpc3RyaWJ1dGVkIGJldHdlZW4gbXVsdGlwbGUgdGFyZ2V0IGdyb3VwcyBpbiBhIGZvcndhcmQgcnVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRHcm91cFR1cGxlIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSB0YXJnZXQgZ3JvdXAuXG4gKi9cblRhcmdldEdyb3VwQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSB3ZWlnaHQuIFRoZSByYW5nZSBpcyAwIHRvIDk5OS5cbiAqL1xuV2VpZ2h0PzogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIEp3dFZhbGlkYXRpb25Db25maWcge1xuSndrc0VuZHBvaW50OiBzdHJpbmdcbklzc3Vlcjogc3RyaW5nXG5BZGRpdGlvbmFsQ2xhaW1zPzogSnd0VmFsaWRhdGlvbkFjdGlvbkFkZGl0aW9uYWxDbGFpbVtdXG59XG5leHBvcnQgaW50ZXJmYWNlIEp3dFZhbGlkYXRpb25BY3Rpb25BZGRpdGlvbmFsQ2xhaW0ge1xuRm9ybWF0OiBzdHJpbmdcbk5hbWU6IHN0cmluZ1xuVmFsdWVzOiBzdHJpbmdbXVxufVxuLyoqXG4gKiBTcGVjaWZpZXMgYSBjb25kaXRpb24gZm9yIGEgbGlzdGVuZXIgcnVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlQ29uZGl0aW9uIHtcbi8qKlxuICogVGhlIGZpZWxkIGluIHRoZSBIVFRQIHJlcXVlc3QuIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBwb3NzaWJsZSB2YWx1ZXM6XG4gKiAgICsgICBgYGh0dHAtaGVhZGVyYGAgXG4gKiAgICsgICBgYGh0dHAtcmVxdWVzdC1tZXRob2RgYCBcbiAqICAgKyAgIGBgaG9zdC1oZWFkZXJgYCBcbiAqICAgKyAgIGBgcGF0aC1wYXR0ZXJuYGAgXG4gKiAgICsgICBgYHF1ZXJ5LXN0cmluZ2BgIFxuICogICArICAgYGBzb3VyY2UtaXBgYFxuICovXG5GaWVsZD86IHN0cmluZ1xuUmVnZXhWYWx1ZXM/OiBMaXN0T2ZTdHJpbmdzXG5WYWx1ZXM/OiBMaXN0T2ZTdHJpbmdzMVxuSHR0cFJlcXVlc3RNZXRob2RDb25maWc/OiBIdHRwUmVxdWVzdE1ldGhvZENvbmZpZ1xuUGF0aFBhdHRlcm5Db25maWc/OiBQYXRoUGF0dGVybkNvbmZpZ1xuSHR0cEhlYWRlckNvbmZpZz86IEh0dHBIZWFkZXJDb25maWdcblNvdXJjZUlwQ29uZmlnPzogU291cmNlSXBDb25maWdcbkhvc3RIZWFkZXJDb25maWc/OiBIb3N0SGVhZGVyQ29uZmlnXG5RdWVyeVN0cmluZ0NvbmZpZz86IFF1ZXJ5U3RyaW5nQ29uZmlnXG59XG4vKipcbiAqIEluZm9ybWF0aW9uIGZvciBhbiBIVFRQIG1ldGhvZCBjb25kaXRpb24uIFNwZWNpZnkgb25seSB3aGVuIGBgRmllbGRgYCBpcyBgYGh0dHAtcmVxdWVzdC1tZXRob2RgYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVxdWVzdE1ldGhvZENvbmZpZyB7XG5WYWx1ZXM/OiBMaXN0T2ZTdHJpbmdzMlxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBmb3IgYSBwYXRoIHBhdHRlcm4gY29uZGl0aW9uLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYEZpZWxkYGAgaXMgYGBwYXRoLXBhdHRlcm5gYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXRoUGF0dGVybkNvbmZpZyB7XG5SZWdleFZhbHVlcz86IExpc3RPZlN0cmluZ3MzXG5WYWx1ZXM/OiBMaXN0T2ZTdHJpbmdzNFxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBmb3IgYW4gSFRUUCBoZWFkZXIgY29uZGl0aW9uLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYEZpZWxkYGAgaXMgYGBodHRwLWhlYWRlcmBgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBIZWFkZXJDb25maWcge1xuUmVnZXhWYWx1ZXM/OiBMaXN0T2ZTdHJpbmdzNVxuVmFsdWVzPzogTGlzdE9mU3RyaW5nczZcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIEhUVFAgaGVhZGVyIGZpZWxkLiBUaGUgbWF4aW11bSBzaXplIGlzIDQwIGNoYXJhY3RlcnMuIFRoZSBoZWFkZXIgbmFtZSBpcyBjYXNlIGluc2Vuc2l0aXZlLiBUaGUgYWxsb3dlZCBjaGFyYWN0ZXJzIGFyZSBzcGVjaWZpZWQgYnkgUkZDIDcyMzAuIFdpbGRjYXJkcyBhcmUgbm90IHN1cHBvcnRlZC5cbiAqL1xuSHR0cEhlYWRlck5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gZm9yIGEgc291cmNlIElQIGNvbmRpdGlvbi4gU3BlY2lmeSBvbmx5IHdoZW4gYGBGaWVsZGBgIGlzIGBgc291cmNlLWlwYGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlSXBDb25maWcge1xuLyoqXG4gKiBUaGUgc291cmNlIElQIGFkZHJlc3NlcywgaW4gQ0lEUiBmb3JtYXQuIFlvdSBjYW4gdXNlIGJvdGggSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMuIFdpbGRjYXJkcyBhcmUgbm90IHN1cHBvcnRlZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSBtdWx0aXBsZSBhZGRyZXNzZXMsIHRoZSBjb25kaXRpb24gaXMgc2F0aXNmaWVkIGlmIHRoZSBzb3VyY2UgSVAgYWRkcmVzcyBvZiB0aGUgcmVxdWVzdCBtYXRjaGVzIG9uZSBvZiB0aGUgQ0lEUiBibG9ja3MuIFRoaXMgY29uZGl0aW9uIGlzIG5vdCBzYXRpc2ZpZWQgYnkgdGhlIGFkZHJlc3NlcyBpbiB0aGUgWC1Gb3J3YXJkZWQtRm9yIGhlYWRlci5cbiAqL1xuVmFsdWVzPzogc3RyaW5nW11cbn1cbi8qKlxuICogSW5mb3JtYXRpb24gZm9yIGEgaG9zdCBoZWFkZXIgY29uZGl0aW9uLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYEZpZWxkYGAgaXMgYGBob3N0LWhlYWRlcmBgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RIZWFkZXJDb25maWcge1xuUmVnZXhWYWx1ZXM/OiBMaXN0T2ZTdHJpbmdzN1xuVmFsdWVzPzogTGlzdE9mU3RyaW5nczhcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gZm9yIGEgcXVlcnkgc3RyaW5nIGNvbmRpdGlvbi4gU3BlY2lmeSBvbmx5IHdoZW4gYGBGaWVsZGBgIGlzIGBgcXVlcnktc3RyaW5nYGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlTdHJpbmdDb25maWcge1xuLyoqXG4gKiBUaGUga2V5L3ZhbHVlIHBhaXJzIG9yIHZhbHVlcyB0byBmaW5kIGluIHRoZSBxdWVyeSBzdHJpbmcuIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBlYWNoIHN0cmluZyBpcyAxMjggY2hhcmFjdGVycy4gVGhlIGNvbXBhcmlzb24gaXMgY2FzZSBpbnNlbnNpdGl2ZS4gVGhlIGZvbGxvd2luZyB3aWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBzdXBwb3J0ZWQ6ICogKG1hdGNoZXMgMCBvciBtb3JlIGNoYXJhY3RlcnMpIGFuZCA/IChtYXRjaGVzIGV4YWN0bHkgMSBjaGFyYWN0ZXIpLiBUbyBzZWFyY2ggZm9yIGEgbGl0ZXJhbCAnKicgb3IgJz8nIGNoYXJhY3RlciBpbiBhIHF1ZXJ5IHN0cmluZywgeW91IG11c3QgZXNjYXBlIHRoZXNlIGNoYXJhY3RlcnMgaW4gYGBWYWx1ZXNgYCB1c2luZyBhICdcXCcgY2hhcmFjdGVyLlxuICogIElmIHlvdSBzcGVjaWZ5IG11bHRpcGxlIGtleS92YWx1ZSBwYWlycyBvciB2YWx1ZXMsIHRoZSBjb25kaXRpb24gaXMgc2F0aXNmaWVkIGlmIG9uZSBvZiB0aGVtIGlzIGZvdW5kIGluIHRoZSBxdWVyeSBzdHJpbmcuXG4gKi9cblZhbHVlcz86IFF1ZXJ5U3RyaW5nS2V5VmFsdWVbXVxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIGtleS92YWx1ZSBwYWlyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5U3RyaW5nS2V5VmFsdWUge1xuLyoqXG4gKiBUaGUgdmFsdWUuXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkuIFlvdSBjYW4gb21pdCB0aGUga2V5LlxuICovXG5LZXk/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmV3cml0ZUNvbmZpZ09iamVjdCB7XG5SZXdyaXRlczogUmV3cml0ZUNvbmZpZ0xpc3Rcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgYSByZXdyaXRlIHRyYW5zZm9ybS4gVGhpcyB0cmFuc2Zvcm0gbWF0Y2hlcyBhIHBhdHRlcm4gYW5kIHJlcGxhY2VzIGl0IHdpdGggdGhlIHNwZWNpZmllZCBzdHJpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV3cml0ZUNvbmZpZyB7XG4vKipcbiAqIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggaW4gdGhlIGlucHV0IHN0cmluZy4gVGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaXMgMSwwMjQgY2hhcmFjdGVycy5cbiAqL1xuUmVnZXg6IHN0cmluZ1xuLyoqXG4gKiBUaGUgcmVwbGFjZW1lbnQgc3RyaW5nIHRvIHVzZSB3aGVuIHJld3JpdGluZyB0aGUgbWF0Y2hlZCBpbnB1dC4gVGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaXMgMSwwMjQgY2hhcmFjdGVycy4gWW91IGNhbiBzcGVjaWZ5IGNhcHR1cmUgZ3JvdXBzIGluIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gKGZvciBleGFtcGxlLCAkMSBhbmQgJDIpLlxuICovXG5SZXBsYWNlOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmV3cml0ZUNvbmZpZ09iamVjdDEge1xuUmV3cml0ZXM6IFJld3JpdGVDb25maWdMaXN0XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbGlzdGVuZXJydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbGlzdGVuZXJydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFtIVFRQUyBsaXN0ZW5lcnNdIEluZm9ybWF0aW9uIGFib3V0IGFuIGlkZW50aXR5IHByb3ZpZGVyIHRoYXQgaXMgY29tcGxpYW50IHdpdGggT3BlbklEIENvbm5lY3QgKE9JREMpLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYFR5cGVgYCBpcyBgYGF1dGhlbnRpY2F0ZS1vaWRjYGAuXG4gKi9cbmV4cG9ydCB0eXBlIEF1dGhlbnRpY2F0ZU9pZGNDb25maWcgPSAoe1xuW2s6IHN0cmluZ106IHVua25vd25cbn0gJiB7XG4vKipcbiAqIFRoZSBiZWhhdmlvciBpZiB0aGUgdXNlciBpcyBub3QgYXV0aGVudGljYXRlZC4gVGhlIGZvbGxvd2luZyBhcmUgcG9zc2libGUgdmFsdWVzOlxuICogICArICBkZW55YGBgYCAtIFJldHVybiBhbiBIVFRQIDQwMSBVbmF1dGhvcml6ZWQgZXJyb3IuXG4gKiAgICsgIGFsbG93YGBgYCAtIEFsbG93IHRoZSByZXF1ZXN0IHRvIGJlIGZvcndhcmRlZCB0byB0aGUgdGFyZ2V0LlxuICogICArICBhdXRoZW50aWNhdGVgYGBgIC0gUmVkaXJlY3QgdGhlIHJlcXVlc3QgdG8gdGhlIElkUCBhdXRob3JpemF0aW9uIGVuZHBvaW50LiBUaGlzIGlzIHRoZSBkZWZhdWx0IHZhbHVlLlxuICovXG5PblVuYXV0aGVudGljYXRlZFJlcXVlc3Q/OiBzdHJpbmdcbi8qKlxuICogVGhlIHRva2VuIGVuZHBvaW50IG9mIHRoZSBJZFAuIFRoaXMgbXVzdCBiZSBhIGZ1bGwgVVJMLCBpbmNsdWRpbmcgdGhlIEhUVFBTIHByb3RvY29sLCB0aGUgZG9tYWluLCBhbmQgdGhlIHBhdGguXG4gKi9cblRva2VuRW5kcG9pbnQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWF4aW11bSBkdXJhdGlvbiBvZiB0aGUgYXV0aGVudGljYXRpb24gc2Vzc2lvbiwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuXG4gKi9cblNlc3Npb25UaW1lb3V0PzogbnVtYmVyXG4vKipcbiAqIFRoZSBzZXQgb2YgdXNlciBjbGFpbXMgdG8gYmUgcmVxdWVzdGVkIGZyb20gdGhlIElkUC4gVGhlIGRlZmF1bHQgaXMgYGBvcGVuaWRgYC5cbiAqICBUbyB2ZXJpZnkgd2hpY2ggc2NvcGUgdmFsdWVzIHlvdXIgSWRQIHN1cHBvcnRzIGFuZCBob3cgdG8gc2VwYXJhdGUgbXVsdGlwbGUgdmFsdWVzLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgSWRQLlxuICovXG5TY29wZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgT0lEQyBpc3N1ZXIgaWRlbnRpZmllciBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Jc3N1ZXI6IHN0cmluZ1xuLyoqXG4gKiBUaGUgT0F1dGggMi4wIGNsaWVudCBzZWNyZXQuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIGlmIHlvdSBhcmUgY3JlYXRpbmcgYSBydWxlLiBJZiB5b3UgYXJlIG1vZGlmeWluZyBhIHJ1bGUsIHlvdSBjYW4gb21pdCB0aGlzIHBhcmFtZXRlciBpZiB5b3Ugc2V0IGBgVXNlRXhpc3RpbmdDbGllbnRTZWNyZXRgYCB0byB0cnVlLlxuICovXG5DbGllbnRTZWNyZXQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIHVzZXIgaW5mbyBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Vc2VySW5mb0VuZHBvaW50OiBzdHJpbmdcbi8qKlxuICogVGhlIE9BdXRoIDIuMCBjbGllbnQgaWRlbnRpZmllci5cbiAqL1xuQ2xpZW50SWQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5BdXRob3JpemF0aW9uRW5kcG9pbnQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgY29va2llIHVzZWQgdG8gbWFpbnRhaW4gc2Vzc2lvbiBpbmZvcm1hdGlvbi4gVGhlIGRlZmF1bHQgaXMgQVdTRUxCQXV0aFNlc3Npb25Db29raWUuXG4gKi9cblNlc3Npb25Db29raWVOYW1lPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHVzZSB0aGUgZXhpc3RpbmcgY2xpZW50IHNlY3JldCB3aGVuIG1vZGlmeWluZyBhIHJ1bGUuIElmIHlvdSBhcmUgY3JlYXRpbmcgYSBydWxlLCB5b3UgY2FuIG9taXQgdGhpcyBwYXJhbWV0ZXIgb3Igc2V0IGl0IHRvIGZhbHNlLlxuICovXG5Vc2VFeGlzdGluZ0NsaWVudFNlY3JldD86IGJvb2xlYW5cbi8qKlxuICogVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgKHVwIHRvIDEwKSB0byBpbmNsdWRlIGluIHRoZSByZWRpcmVjdCByZXF1ZXN0IHRvIHRoZSBhdXRob3JpemF0aW9uIGVuZHBvaW50LlxuICovXG5BdXRoZW50aWNhdGlvblJlcXVlc3RFeHRyYVBhcmFtcz86IHtcbi8qKlxuICogVGhpcyBpbnRlcmZhY2Ugd2FzIHJlZmVyZW5jZWQgYnkgYHVuZGVmaW5lZGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiW2EtekEtWjAtOV0rXCIuXG4gKi9cbltrOiBzdHJpbmddOiBzdHJpbmdcbn1cbn0pXG4vKipcbiAqIFRoZSByZWd1bGFyIGV4cHJlc3Npb25zIHRvIG1hdGNoIGFnYWluc3QgdGhlIGNvbmRpdGlvbiBmaWVsZC4gVGhlIG1heGltdW0gbGVuZ3RoIG9mIGVhY2ggc3RyaW5nIGlzIDEyOCBjaGFyYWN0ZXJzLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYEZpZWxkYGAgaXMgYGBodHRwLWhlYWRlcmBgLCBgYGhvc3QtaGVhZGVyYGAsIG9yIGBgcGF0aC1wYXR0ZXJuYGAuXG4gKi9cbmV4cG9ydCB0eXBlIExpc3RPZlN0cmluZ3MgPSBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgY29uZGl0aW9uIHZhbHVlLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYEZpZWxkYGAgaXMgYGBob3N0LWhlYWRlcmBgIG9yIGBgcGF0aC1wYXR0ZXJuYGAuIEFsdGVybmF0aXZlbHksIHRvIHNwZWNpZnkgbXVsdGlwbGUgaG9zdCBuYW1lcyBvciBtdWx0aXBsZSBwYXRoIHBhdHRlcm5zLCB1c2UgYGBIb3N0SGVhZGVyQ29uZmlnYGAgb3IgYGBQYXRoUGF0dGVybkNvbmZpZ2BgLlxuICogIElmIGBgRmllbGRgYCBpcyBgYGhvc3QtaGVhZGVyYGAgYW5kIHlvdSdyZSBub3QgdXNpbmcgYGBIb3N0SGVhZGVyQ29uZmlnYGAsIHlvdSBjYW4gc3BlY2lmeSBhIHNpbmdsZSBob3N0IG5hbWUgKGZvciBleGFtcGxlLCBteS5leGFtcGxlLmNvbSkuIEEgaG9zdCBuYW1lIGlzIGNhc2UgaW5zZW5zaXRpdmUsIGNhbiBiZSB1cCB0byAxMjggY2hhcmFjdGVycyBpbiBsZW5ndGgsIGFuZCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzLlxuICogICArICBBLVosIGEteiwgMC05XG4gKiAgICsgIC0gLlxuICogICArICAqIChtYXRjaGVzIDAgb3IgbW9yZSBjaGFyYWN0ZXJzKVxuICogICArICA/IChtYXRjaGVzIGV4YWN0bHkgMSBjaGFyYWN0ZXIpXG4gKiAgIFxuICogIElmIGBgRmllbGRgYCBpcyBgYHBhdGgtcGF0dGVybmBgIGFuZCB5b3UncmUgbm90IHVzaW5nIGBgUGF0aFBhdHRlcm5Db25maWdgYCwgeW91IGNhbiBzcGVjaWZ5IGEgc2luZ2xlIHBhdGggcGF0dGVybiAoZm9yIGV4YW1wbGUsIC9pbWcvKikuIEEgcGF0aCBwYXR0ZXJuIGlzIGNhc2Utc2Vuc2l0aXZlLCBjYW4gYmUgdXAgdG8gMTI4IGNoYXJhY3RlcnMgaW4gbGVuZ3RoLCBhbmQgY2FuIGNvbnRhaW4gYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVycy5cbiAqICAgKyAgQS1aLCBhLXosIDAtOVxuICogICArICBfIC0gLiAkIC8gfiBcIiAnIEAgOiArXG4gKiAgICsgICYgKHVzaW5nICZhbXA7KVxuICogICArICAqIChtYXRjaGVzIDAgb3IgbW9yZSBjaGFyYWN0ZXJzKVxuICogICArICA/IChtYXRjaGVzIGV4YWN0bHkgMSBjaGFyYWN0ZXIpXG4gKi9cbmV4cG9ydCB0eXBlIExpc3RPZlN0cmluZ3MxID0gc3RyaW5nW11cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgbWV0aG9kLiBUaGUgbWF4aW11bSBsZW5ndGggaXMgNDAgY2hhcmFjdGVycy4gVGhlIGFsbG93ZWQgY2hhcmFjdGVycyBhcmUgQS1aLCBoeXBoZW4gKC0pLCBhbmQgdW5kZXJzY29yZSAoXykuIFRoZSBjb21wYXJpc29uIGlzIGNhc2Ugc2Vuc2l0aXZlLiBXaWxkY2FyZHMgYXJlIG5vdCBzdXBwb3J0ZWQ7IHRoZXJlZm9yZSwgdGhlIG1ldGhvZCBuYW1lIG11c3QgYmUgYW4gZXhhY3QgbWF0Y2guXG4gKiAgSWYgeW91IHNwZWNpZnkgbXVsdGlwbGUgc3RyaW5ncywgdGhlIGNvbmRpdGlvbiBpcyBzYXRpc2ZpZWQgaWYgb25lIG9mIHRoZSBzdHJpbmdzIG1hdGNoZXMgdGhlIEhUVFAgcmVxdWVzdCBtZXRob2QuIFdlIHJlY29tbWVuZCB0aGF0IHlvdSByb3V0ZSBHRVQgYW5kIEhFQUQgcmVxdWVzdHMgaW4gdGhlIHNhbWUgd2F5LCBiZWNhdXNlIHRoZSByZXNwb25zZSB0byBhIEhFQUQgcmVxdWVzdCBtYXkgYmUgY2FjaGVkLlxuICovXG5leHBvcnQgdHlwZSBMaXN0T2ZTdHJpbmdzMiA9IHN0cmluZ1tdXG5leHBvcnQgdHlwZSBMaXN0T2ZTdHJpbmdzMyA9IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBwYXRoIHBhdHRlcm5zIHRvIGNvbXBhcmUgYWdhaW5zdCB0aGUgcmVxdWVzdCBVUkwuIFRoZSBtYXhpbXVtIHNpemUgb2YgZWFjaCBzdHJpbmcgaXMgMTI4IGNoYXJhY3RlcnMuIFRoZSBjb21wYXJpc29uIGlzIGNhc2Ugc2Vuc2l0aXZlLiBUaGUgZm9sbG93aW5nIHdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZDogKiAobWF0Y2hlcyAwIG9yIG1vcmUgY2hhcmFjdGVycykgYW5kID8gKG1hdGNoZXMgZXhhY3RseSAxIGNoYXJhY3RlcikuXG4gKiAgSWYgeW91IHNwZWNpZnkgbXVsdGlwbGUgc3RyaW5ncywgdGhlIGNvbmRpdGlvbiBpcyBzYXRpc2ZpZWQgaWYgb25lIG9mIHRoZW0gbWF0Y2hlcyB0aGUgcmVxdWVzdCBVUkwuIFRoZSBwYXRoIHBhdHRlcm4gaXMgY29tcGFyZWQgb25seSB0byB0aGUgcGF0aCBvZiB0aGUgVVJMLCBub3QgdG8gaXRzIHF1ZXJ5IHN0cmluZy5cbiAqL1xuZXhwb3J0IHR5cGUgTGlzdE9mU3RyaW5nczQgPSBzdHJpbmdbXVxuZXhwb3J0IHR5cGUgTGlzdE9mU3RyaW5nczUgPSBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgc3RyaW5ncyB0byBjb21wYXJlIGFnYWluc3QgdGhlIHZhbHVlIG9mIHRoZSBIVFRQIGhlYWRlci4gVGhlIG1heGltdW0gbGVuZ3RoIG9mIGVhY2ggc3RyaW5nIGlzIDEyOCBjaGFyYWN0ZXJzLiBUaGUgY29tcGFyaXNvbiBzdHJpbmdzIGFyZSBjYXNlIGluc2Vuc2l0aXZlLiBUaGUgZm9sbG93aW5nIHdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZDogKiAobWF0Y2hlcyAwIG9yIG1vcmUgY2hhcmFjdGVycykgYW5kID8gKG1hdGNoZXMgZXhhY3RseSAxIGNoYXJhY3RlcikuXG4gKiAgSWYgdGhlIHNhbWUgaGVhZGVyIGFwcGVhcnMgbXVsdGlwbGUgdGltZXMgaW4gdGhlIHJlcXVlc3QsIHdlIHNlYXJjaCB0aGVtIGluIG9yZGVyIHVudGlsIGEgbWF0Y2ggaXMgZm91bmQuXG4gKiAgSWYgeW91IHNwZWNpZnkgbXVsdGlwbGUgc3RyaW5ncywgdGhlIGNvbmRpdGlvbiBpcyBzYXRpc2ZpZWQgaWYgb25lIG9mIHRoZSBzdHJpbmdzIG1hdGNoZXMgdGhlIHZhbHVlIG9mIHRoZSBIVFRQIGhlYWRlci4gVG8gcmVxdWlyZSB0aGF0IGFsbCBvZiB0aGUgc3RyaW5ncyBhcmUgYSBtYXRjaCwgY3JlYXRlIG9uZSBjb25kaXRpb24gcGVyIHN0cmluZy5cbiAqL1xuZXhwb3J0IHR5cGUgTGlzdE9mU3RyaW5nczYgPSBzdHJpbmdbXVxuZXhwb3J0IHR5cGUgTGlzdE9mU3RyaW5nczcgPSBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgaG9zdCBuYW1lcy4gVGhlIG1heGltdW0gbGVuZ3RoIG9mIGVhY2ggc3RyaW5nIGlzIDEyOCBjaGFyYWN0ZXJzLiBUaGUgY29tcGFyaXNvbiBpcyBjYXNlIGluc2Vuc2l0aXZlLiBUaGUgZm9sbG93aW5nIHdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZDogKiAobWF0Y2hlcyAwIG9yIG1vcmUgY2hhcmFjdGVycykgYW5kID8gKG1hdGNoZXMgZXhhY3RseSAxIGNoYXJhY3RlcikuIFlvdSBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIFwiLlwiIGNoYXJhY3Rlci4gWW91IGNhbiBpbmNsdWRlIG9ubHkgYWxwaGFiZXRpY2FsIGNoYXJhY3RlcnMgYWZ0ZXIgdGhlIGZpbmFsIFwiLlwiIGNoYXJhY3Rlci5cbiAqICBJZiB5b3Ugc3BlY2lmeSBtdWx0aXBsZSBzdHJpbmdzLCB0aGUgY29uZGl0aW9uIGlzIHNhdGlzZmllZCBpZiBvbmUgb2YgdGhlIHN0cmluZ3MgbWF0Y2hlcyB0aGUgaG9zdCBuYW1lLlxuICovXG5leHBvcnQgdHlwZSBMaXN0T2ZTdHJpbmdzOCA9IHN0cmluZ1tdXG5leHBvcnQgdHlwZSBUcmFuc2Zvcm0gPSAoe1xuVHlwZTogc3RyaW5nXG5Ib3N0SGVhZGVyUmV3cml0ZUNvbmZpZz86IFJld3JpdGVDb25maWdPYmplY3RcblVybFJld3JpdGVDb25maWc/OiBSZXdyaXRlQ29uZmlnT2JqZWN0MVxufSAmIFRyYW5zZm9ybTEpXG5leHBvcnQgdHlwZSBSZXdyaXRlQ29uZmlnTGlzdCA9IFJld3JpdGVDb25maWdbXVxuZXhwb3J0IHR5cGUgVHJhbnNmb3JtMSA9IHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59XG5cbi8qKlxuICogU3BlY2lmaWVzIGEgbGlzdGVuZXIgcnVsZS4gVGhlIGxpc3RlbmVyIG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIGFuIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIuIEVhY2ggcnVsZSBjb25zaXN0cyBvZiBhIHByaW9yaXR5LCBvbmUgb3IgbW9yZSBhY3Rpb25zLCBhbmQgb25lIG9yIG1vcmUgY29uZGl0aW9ucy5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtRdW90YXMgZm9yIHlvdXIgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbGFzdGljbG9hZGJhbGFuY2luZy9sYXRlc3QvYXBwbGljYXRpb24vbG9hZC1iYWxhbmNlci1saW1pdHMuaHRtbCkgaW4gdGhlICpVc2VyIEd1aWRlIGZvciBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19FTEFTVElDTE9BREJBTEFOQ0lOR1YyX0xJU1RFTkVSUlVMRSB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgbGlzdGVuZXIuXG4gKi9cbkxpc3RlbmVyQXJuPzogc3RyaW5nXG5SdWxlQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBhY3Rpb25zLlxuICogIFRoZSBydWxlIG11c3QgaW5jbHVkZSBleGFjdGx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHR5cGVzIG9mIGFjdGlvbnM6IGBgZm9yd2FyZGBgLCBgYGZpeGVkLXJlc3BvbnNlYGAsIG9yIGBgcmVkaXJlY3RgYCwgYW5kIGl0IG11c3QgYmUgdGhlIGxhc3QgYWN0aW9uIHRvIGJlIHBlcmZvcm1lZC4gSWYgdGhlIHJ1bGUgaXMgZm9yIGFuIEhUVFBTIGxpc3RlbmVyLCBpdCBjYW4gYWxzbyBvcHRpb25hbGx5IGluY2x1ZGUgYW4gYXV0aGVudGljYXRpb24gYWN0aW9uLlxuICovXG5BY3Rpb25zOiBBY3Rpb25bXVxuLyoqXG4gKiBUaGUgcnVsZSBwcmlvcml0eS4gQSBsaXN0ZW5lciBjYW4ndCBoYXZlIG11bHRpcGxlIHJ1bGVzIHdpdGggdGhlIHNhbWUgcHJpb3JpdHkuXG4gKiAgSWYgeW91IHRyeSB0byByZW9yZGVyIHJ1bGVzIGJ5IHVwZGF0aW5nIHRoZWlyIHByaW9yaXRpZXMsIGRvIG5vdCBzcGVjaWZ5IGEgbmV3IHByaW9yaXR5IGlmIGFuIGV4aXN0aW5nIHJ1bGUgYWxyZWFkeSB1c2VzIHRoaXMgcHJpb3JpdHksIGFzIHRoaXMgY2FuIGNhdXNlIGFuIGVycm9yLiBJZiB5b3UgbmVlZCB0byByZXVzZSBhIHByaW9yaXR5IHdpdGggYSBkaWZmZXJlbnQgcnVsZSwgeW91IG11c3QgcmVtb3ZlIGl0IGFzIGEgcHJpb3JpdHkgZmlyc3QsIGFuZCB0aGVuIHNwZWNpZnkgaXQgaW4gYSBzdWJzZXF1ZW50IHVwZGF0ZS5cbiAqL1xuUHJpb3JpdHk6IG51bWJlclxuLyoqXG4gKiBUaGUgY29uZGl0aW9ucy5cbiAqICBUaGUgcnVsZSBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHVwIHRvIG9uZSBvZiBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczogYGBodHRwLXJlcXVlc3QtbWV0aG9kYGAsIGBgaG9zdC1oZWFkZXJgYCwgYGBwYXRoLXBhdHRlcm5gYCwgYW5kIGBgc291cmNlLWlwYGAuIEEgcnVsZSBjYW4gYWxzbyBvcHRpb25hbGx5IGluY2x1ZGUgb25lIG9yIG1vcmUgb2YgZWFjaCBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6IGBgaHR0cC1oZWFkZXJgYCBhbmQgYGBxdWVyeS1zdHJpbmdgYC5cbiAqL1xuQ29uZGl0aW9uczogUnVsZUNvbmRpdGlvbltdXG5UcmFuc2Zvcm1zPzogVHJhbnNmb3JtW11cbklzRGVmYXVsdD86IGJvb2xlYW5cbn1cbi8qKlxuICogU3BlY2lmaWVzIGFuIGFjdGlvbiBmb3IgYSBsaXN0ZW5lciBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbiB7XG4vKipcbiAqIFRoZSBvcmRlciBmb3IgdGhlIGFjdGlvbi4gVGhpcyB2YWx1ZSBpcyByZXF1aXJlZCBmb3IgcnVsZXMgd2l0aCBtdWx0aXBsZSBhY3Rpb25zLiBUaGUgYWN0aW9uIHdpdGggdGhlIGxvd2VzdCB2YWx1ZSBmb3Igb3JkZXIgaXMgcGVyZm9ybWVkIGZpcnN0LlxuICovXG5PcmRlcj86IG51bWJlclxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHRhcmdldCBncm91cC4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBmb3J3YXJkYGAgYW5kIHlvdSB3YW50IHRvIHJvdXRlIHRvIGEgc2luZ2xlIHRhcmdldCBncm91cC4gVG8gcm91dGUgdG8gbXVsdGlwbGUgdGFyZ2V0IGdyb3VwcywgeW91IG11c3QgdXNlIGBgRm9yd2FyZENvbmZpZ2BgIGluc3RlYWQuXG4gKi9cblRhcmdldEdyb3VwQXJuPzogc3RyaW5nXG5GaXhlZFJlc3BvbnNlQ29uZmlnPzogRml4ZWRSZXNwb25zZUNvbmZpZ1xuQXV0aGVudGljYXRlQ29nbml0b0NvbmZpZz86IEF1dGhlbnRpY2F0ZUNvZ25pdG9Db25maWdcbi8qKlxuICogVGhlIHR5cGUgb2YgYWN0aW9uLlxuICovXG5UeXBlOiBzdHJpbmdcblJlZGlyZWN0Q29uZmlnPzogUmVkaXJlY3RDb25maWdcbkZvcndhcmRDb25maWc/OiBGb3J3YXJkQ29uZmlnXG5BdXRoZW50aWNhdGVPaWRjQ29uZmlnPzogQXV0aGVudGljYXRlT2lkY0NvbmZpZ1xuSnd0VmFsaWRhdGlvbkNvbmZpZz86IEp3dFZhbGlkYXRpb25Db25maWdcbn1cbi8qKlxuICogW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJdIEluZm9ybWF0aW9uIGZvciBjcmVhdGluZyBhbiBhY3Rpb24gdGhhdCByZXR1cm5zIGEgY3VzdG9tIEhUVFAgcmVzcG9uc2UuIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgZml4ZWQtcmVzcG9uc2VgYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaXhlZFJlc3BvbnNlQ29uZmlnIHtcbi8qKlxuICogVGhlIGNvbnRlbnQgdHlwZS5cbiAqICBWYWxpZCBWYWx1ZXM6IHRleHQvcGxhaW4gfCB0ZXh0L2NzcyB8IHRleHQvaHRtbCB8IGFwcGxpY2F0aW9uL2phdmFzY3JpcHQgfCBhcHBsaWNhdGlvbi9qc29uXG4gKi9cbkNvbnRlbnRUeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBIVFRQIHJlc3BvbnNlIGNvZGUgKDJYWCwgNFhYLCBvciA1WFgpLlxuICovXG5TdGF0dXNDb2RlOiBzdHJpbmdcbi8qKlxuICogVGhlIG1lc3NhZ2UuXG4gKi9cbk1lc3NhZ2VCb2R5Pzogc3RyaW5nXG59XG4vKipcbiAqIFtIVFRQUyBsaXN0ZW5lcnNdIEluZm9ybWF0aW9uIGZvciB1c2luZyBBbWF6b24gQ29nbml0byB0byBhdXRoZW50aWNhdGUgdXNlcnMuIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgYXV0aGVudGljYXRlLWNvZ25pdG9gYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoZW50aWNhdGVDb2duaXRvQ29uZmlnIHtcbi8qKlxuICogVGhlIGJlaGF2aW9yIGlmIHRoZSB1c2VyIGlzIG5vdCBhdXRoZW50aWNhdGVkLiBUaGUgZm9sbG93aW5nIGFyZSBwb3NzaWJsZSB2YWx1ZXM6XG4gKiAgICsgIGRlbnlgYGBgIC0gUmV0dXJuIGFuIEhUVFAgNDAxIFVuYXV0aG9yaXplZCBlcnJvci5cbiAqICAgKyAgYWxsb3dgYGBgIC0gQWxsb3cgdGhlIHJlcXVlc3QgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZSB0YXJnZXQuXG4gKiAgICsgIGF1dGhlbnRpY2F0ZWBgYGAgLSBSZWRpcmVjdCB0aGUgcmVxdWVzdCB0byB0aGUgSWRQIGF1dGhvcml6YXRpb24gZW5kcG9pbnQuIFRoaXMgaXMgdGhlIGRlZmF1bHQgdmFsdWUuXG4gKi9cbk9uVW5hdXRoZW50aWNhdGVkUmVxdWVzdD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIEFtYXpvbiBDb2duaXRvIHVzZXIgcG9vbCBjbGllbnQuXG4gKi9cblVzZXJQb29sQ2xpZW50SWQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgZG9tYWluIHByZWZpeCBvciBmdWxseS1xdWFsaWZpZWQgZG9tYWluIG5hbWUgb2YgdGhlIEFtYXpvbiBDb2duaXRvIHVzZXIgcG9vbC5cbiAqL1xuVXNlclBvb2xEb21haW46IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWF4aW11bSBkdXJhdGlvbiBvZiB0aGUgYXV0aGVudGljYXRpb24gc2Vzc2lvbiwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuXG4gKi9cblNlc3Npb25UaW1lb3V0PzogbnVtYmVyXG4vKipcbiAqIFRoZSBzZXQgb2YgdXNlciBjbGFpbXMgdG8gYmUgcmVxdWVzdGVkIGZyb20gdGhlIElkUC4gVGhlIGRlZmF1bHQgaXMgYGBvcGVuaWRgYC5cbiAqICBUbyB2ZXJpZnkgd2hpY2ggc2NvcGUgdmFsdWVzIHlvdXIgSWRQIHN1cHBvcnRzIGFuZCBob3cgdG8gc2VwYXJhdGUgbXVsdGlwbGUgdmFsdWVzLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgSWRQLlxuICovXG5TY29wZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgY29va2llIHVzZWQgdG8gbWFpbnRhaW4gc2Vzc2lvbiBpbmZvcm1hdGlvbi4gVGhlIGRlZmF1bHQgaXMgQVdTRUxCQXV0aFNlc3Npb25Db29raWUuXG4gKi9cblNlc3Npb25Db29raWVOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgQW1hem9uIENvZ25pdG8gdXNlciBwb29sLlxuICovXG5Vc2VyUG9vbEFybjogc3RyaW5nXG4vKipcbiAqIFRoZSBxdWVyeSBwYXJhbWV0ZXJzICh1cCB0byAxMCkgdG8gaW5jbHVkZSBpbiB0aGUgcmVkaXJlY3QgcmVxdWVzdCB0byB0aGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludC5cbiAqL1xuQXV0aGVudGljYXRpb25SZXF1ZXN0RXh0cmFQYXJhbXM/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIlthLXpBLVowLTldK1wiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG59XG4vKipcbiAqIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyXSBJbmZvcm1hdGlvbiBmb3IgY3JlYXRpbmcgYSByZWRpcmVjdCBhY3Rpb24uIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgcmVkaXJlY3RgYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWRpcmVjdENvbmZpZyB7XG4vKipcbiAqIFRoZSBhYnNvbHV0ZSBwYXRoLCBzdGFydGluZyB3aXRoIHRoZSBsZWFkaW5nIFwiL1wiLiBUaGlzIGNvbXBvbmVudCBpcyBub3QgcGVyY2VudC1lbmNvZGVkLiBUaGUgcGF0aCBjYW4gY29udGFpbiAje2hvc3R9LCAje3BhdGh9LCBhbmQgI3twb3J0fS5cbiAqL1xuUGF0aD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgcXVlcnkgcGFyYW1ldGVycywgVVJMLWVuY29kZWQgd2hlbiBuZWNlc3NhcnksIGJ1dCBub3QgcGVyY2VudC1lbmNvZGVkLiBEbyBub3QgaW5jbHVkZSB0aGUgbGVhZGluZyBcIj9cIiwgYXMgaXQgaXMgYXV0b21hdGljYWxseSBhZGRlZC4gWW91IGNhbiBzcGVjaWZ5IGFueSBvZiB0aGUgcmVzZXJ2ZWQga2V5d29yZHMuXG4gKi9cblF1ZXJ5Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBwb3J0LiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIDEgdG8gNjU1MzUgb3IgI3twb3J0fS5cbiAqL1xuUG9ydD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaG9zdG5hbWUuIFRoaXMgY29tcG9uZW50IGlzIG5vdCBwZXJjZW50LWVuY29kZWQuIFRoZSBob3N0bmFtZSBjYW4gY29udGFpbiAje2hvc3R9LlxuICovXG5Ib3N0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBwcm90b2NvbC4gWW91IGNhbiBzcGVjaWZ5IEhUVFAsIEhUVFBTLCBvciAje3Byb3RvY29sfS4gWW91IGNhbiByZWRpcmVjdCBIVFRQIHRvIEhUVFAsIEhUVFAgdG8gSFRUUFMsIGFuZCBIVFRQUyB0byBIVFRQUy4gWW91IGNhbid0IHJlZGlyZWN0IEhUVFBTIHRvIEhUVFAuXG4gKi9cblByb3RvY29sPzogc3RyaW5nXG4vKipcbiAqIFRoZSBIVFRQIHJlZGlyZWN0IGNvZGUuIFRoZSByZWRpcmVjdCBpcyBlaXRoZXIgcGVybWFuZW50IChIVFRQIDMwMSkgb3IgdGVtcG9yYXJ5IChIVFRQIDMwMikuXG4gKi9cblN0YXR1c0NvZGU6IHN0cmluZ1xufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBmb3IgY3JlYXRpbmcgYW4gYWN0aW9uIHRoYXQgZGlzdHJpYnV0ZXMgcmVxdWVzdHMgYW1vbmcgbXVsdGlwbGUgdGFyZ2V0IGdyb3Vwcy4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBmb3J3YXJkYGAuXG4gKiAgSWYgeW91IHNwZWNpZnkgYm90aCBgYEZvcndhcmRDb25maWdgYCBhbmQgYGBUYXJnZXRHcm91cEFybmBgLCB5b3UgY2FuIHNwZWNpZnkgb25seSBvbmUgdGFyZ2V0IGdyb3VwIHVzaW5nIGBgRm9yd2FyZENvbmZpZ2BgIGFuZCBpdCBtdXN0IGJlIHRoZSBzYW1lIHRhcmdldCBncm91cCBzcGVjaWZpZWQgaW4gYGBUYXJnZXRHcm91cEFybmBgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcndhcmRDb25maWcge1xuVGFyZ2V0R3JvdXBTdGlja2luZXNzQ29uZmlnPzogVGFyZ2V0R3JvdXBTdGlja2luZXNzQ29uZmlnXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGhvdyB0cmFmZmljIHdpbGwgYmUgZGlzdHJpYnV0ZWQgYmV0d2VlbiBtdWx0aXBsZSB0YXJnZXQgZ3JvdXBzIGluIGEgZm9yd2FyZCBydWxlLlxuICovXG5UYXJnZXRHcm91cHM/OiBUYXJnZXRHcm91cFR1cGxlW11cbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIHRhcmdldCBncm91cCBzdGlja2luZXNzIGZvciBhIHJ1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0R3JvdXBTdGlja2luZXNzQ29uZmlnIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGFyZ2V0IGdyb3VwIHN0aWNraW5lc3MgaXMgZW5hYmxlZC5cbiAqL1xuRW5hYmxlZD86IGJvb2xlYW5cbi8qKlxuICogW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJzXSBUaGUgdGltZSBwZXJpb2QsIGluIHNlY29uZHMsIGR1cmluZyB3aGljaCByZXF1ZXN0cyBmcm9tIGEgY2xpZW50IHNob3VsZCBiZSByb3V0ZWQgdG8gdGhlIHNhbWUgdGFyZ2V0IGdyb3VwLiBUaGUgcmFuZ2UgaXMgMS02MDQ4MDAgc2Vjb25kcyAoNyBkYXlzKS4gWW91IG11c3Qgc3BlY2lmeSB0aGlzIHZhbHVlIHdoZW4gZW5hYmxpbmcgdGFyZ2V0IGdyb3VwIHN0aWNraW5lc3MuXG4gKi9cbkR1cmF0aW9uU2Vjb25kcz86IG51bWJlclxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBob3cgdHJhZmZpYyB3aWxsIGJlIGRpc3RyaWJ1dGVkIGJldHdlZW4gbXVsdGlwbGUgdGFyZ2V0IGdyb3VwcyBpbiBhIGZvcndhcmQgcnVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRHcm91cFR1cGxlIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSB0YXJnZXQgZ3JvdXAuXG4gKi9cblRhcmdldEdyb3VwQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSB3ZWlnaHQuIFRoZSByYW5nZSBpcyAwIHRvIDk5OS5cbiAqL1xuV2VpZ2h0PzogbnVtYmVyXG59XG4vKipcbiAqIFtIVFRQUyBsaXN0ZW5lcnNdIEluZm9ybWF0aW9uIGZvciB2YWxpZGF0aW5nIEpXVCBhY2Nlc3MgdG9rZW5zIGluIGNsaWVudCByZXF1ZXN0cy4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBqd3QtdmFsaWRhdGlvbmBgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEp3dFZhbGlkYXRpb25Db25maWcge1xuSndrc0VuZHBvaW50OiBzdHJpbmdcbklzc3Vlcjogc3RyaW5nXG5BZGRpdGlvbmFsQ2xhaW1zPzogSnd0VmFsaWRhdGlvbkFjdGlvbkFkZGl0aW9uYWxDbGFpbVtdXG59XG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGFuIGFkZGl0aW9uYWwgY2xhaW0gdG8gdmFsaWRhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnd0VmFsaWRhdGlvbkFjdGlvbkFkZGl0aW9uYWxDbGFpbSB7XG4vKipcbiAqIFRoZSBmb3JtYXQgb2YgdGhlIGNsYWltIHZhbHVlLlxuICovXG5Gb3JtYXQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgY2xhaW0uIFlvdSBjYW4ndCBzcGVjaWZ5IGBgZXhwYGAsIGBgaXNzYGAsIGBgbmJmYGAsIG9yIGBgaWF0YGAgYmVjYXVzZSB3ZSB2YWxpZGF0ZSB0aGVtIGJ5IGRlZmF1bHQuXG4gKi9cbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgY2xhaW0gdmFsdWUuIFRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIGxpc3QgaXMgMTAuIEVhY2ggdmFsdWUgY2FuIGJlIHVwIHRvIDI1NiBjaGFyYWN0ZXJzIGluIGxlbmd0aC4gSWYgdGhlIGZvcm1hdCBpcyBgYHNwYWNlLXNlcGFyYXRlZC12YWx1ZXNgYCwgdGhlIHZhbHVlcyBjYW4ndCBpbmNsdWRlIHNwYWNlcy5cbiAqL1xuVmFsdWVzOiBzdHJpbmdbXVxufVxuLyoqXG4gKiBTcGVjaWZpZXMgYSBjb25kaXRpb24gZm9yIGEgbGlzdGVuZXIgcnVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlQ29uZGl0aW9uIHtcbi8qKlxuICogVGhlIGZpZWxkIGluIHRoZSBIVFRQIHJlcXVlc3QuIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBwb3NzaWJsZSB2YWx1ZXM6XG4gKiAgICsgICBgYGh0dHAtaGVhZGVyYGAgXG4gKiAgICsgICBgYGh0dHAtcmVxdWVzdC1tZXRob2RgYCBcbiAqICAgKyAgIGBgaG9zdC1oZWFkZXJgYCBcbiAqICAgKyAgIGBgcGF0aC1wYXR0ZXJuYGAgXG4gKiAgICsgICBgYHF1ZXJ5LXN0cmluZ2BgIFxuICogICArICAgYGBzb3VyY2UtaXBgYFxuICovXG5GaWVsZD86IHN0cmluZ1xuUmVnZXhWYWx1ZXM/OiBMaXN0T2ZTdHJpbmdzXG5WYWx1ZXM/OiBMaXN0T2ZTdHJpbmdzMVxuSHR0cFJlcXVlc3RNZXRob2RDb25maWc/OiBIdHRwUmVxdWVzdE1ldGhvZENvbmZpZ1xuUGF0aFBhdHRlcm5Db25maWc/OiBQYXRoUGF0dGVybkNvbmZpZ1xuSHR0cEhlYWRlckNvbmZpZz86IEh0dHBIZWFkZXJDb25maWdcblNvdXJjZUlwQ29uZmlnPzogU291cmNlSXBDb25maWdcbkhvc3RIZWFkZXJDb25maWc/OiBIb3N0SGVhZGVyQ29uZmlnXG5RdWVyeVN0cmluZ0NvbmZpZz86IFF1ZXJ5U3RyaW5nQ29uZmlnXG59XG4vKipcbiAqIEluZm9ybWF0aW9uIGZvciBhbiBIVFRQIG1ldGhvZCBjb25kaXRpb24uIFNwZWNpZnkgb25seSB3aGVuIGBgRmllbGRgYCBpcyBgYGh0dHAtcmVxdWVzdC1tZXRob2RgYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVxdWVzdE1ldGhvZENvbmZpZyB7XG5WYWx1ZXM/OiBMaXN0T2ZTdHJpbmdzMlxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBmb3IgYSBwYXRoIHBhdHRlcm4gY29uZGl0aW9uLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYEZpZWxkYGAgaXMgYGBwYXRoLXBhdHRlcm5gYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXRoUGF0dGVybkNvbmZpZyB7XG5SZWdleFZhbHVlcz86IExpc3RPZlN0cmluZ3MzXG5WYWx1ZXM/OiBMaXN0T2ZTdHJpbmdzNFxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBmb3IgYW4gSFRUUCBoZWFkZXIgY29uZGl0aW9uLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYEZpZWxkYGAgaXMgYGBodHRwLWhlYWRlcmBgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBIZWFkZXJDb25maWcge1xuUmVnZXhWYWx1ZXM/OiBMaXN0T2ZTdHJpbmdzNVxuVmFsdWVzPzogTGlzdE9mU3RyaW5nczZcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIEhUVFAgaGVhZGVyIGZpZWxkLiBUaGUgbWF4aW11bSBzaXplIGlzIDQwIGNoYXJhY3RlcnMuIFRoZSBoZWFkZXIgbmFtZSBpcyBjYXNlIGluc2Vuc2l0aXZlLiBUaGUgYWxsb3dlZCBjaGFyYWN0ZXJzIGFyZSBzcGVjaWZpZWQgYnkgUkZDIDcyMzAuIFdpbGRjYXJkcyBhcmUgbm90IHN1cHBvcnRlZC5cbiAqL1xuSHR0cEhlYWRlck5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gZm9yIGEgc291cmNlIElQIGNvbmRpdGlvbi4gU3BlY2lmeSBvbmx5IHdoZW4gYGBGaWVsZGBgIGlzIGBgc291cmNlLWlwYGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlSXBDb25maWcge1xuLyoqXG4gKiBUaGUgc291cmNlIElQIGFkZHJlc3NlcywgaW4gQ0lEUiBmb3JtYXQuIFlvdSBjYW4gdXNlIGJvdGggSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMuIFdpbGRjYXJkcyBhcmUgbm90IHN1cHBvcnRlZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSBtdWx0aXBsZSBhZGRyZXNzZXMsIHRoZSBjb25kaXRpb24gaXMgc2F0aXNmaWVkIGlmIHRoZSBzb3VyY2UgSVAgYWRkcmVzcyBvZiB0aGUgcmVxdWVzdCBtYXRjaGVzIG9uZSBvZiB0aGUgQ0lEUiBibG9ja3MuIFRoaXMgY29uZGl0aW9uIGlzIG5vdCBzYXRpc2ZpZWQgYnkgdGhlIGFkZHJlc3NlcyBpbiB0aGUgWC1Gb3J3YXJkZWQtRm9yIGhlYWRlci5cbiAqL1xuVmFsdWVzPzogc3RyaW5nW11cbn1cbi8qKlxuICogSW5mb3JtYXRpb24gZm9yIGEgaG9zdCBoZWFkZXIgY29uZGl0aW9uLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYEZpZWxkYGAgaXMgYGBob3N0LWhlYWRlcmBgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RIZWFkZXJDb25maWcge1xuUmVnZXhWYWx1ZXM/OiBMaXN0T2ZTdHJpbmdzN1xuVmFsdWVzPzogTGlzdE9mU3RyaW5nczhcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gZm9yIGEgcXVlcnkgc3RyaW5nIGNvbmRpdGlvbi4gU3BlY2lmeSBvbmx5IHdoZW4gYGBGaWVsZGBgIGlzIGBgcXVlcnktc3RyaW5nYGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlTdHJpbmdDb25maWcge1xuLyoqXG4gKiBUaGUga2V5L3ZhbHVlIHBhaXJzIG9yIHZhbHVlcyB0byBmaW5kIGluIHRoZSBxdWVyeSBzdHJpbmcuIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBlYWNoIHN0cmluZyBpcyAxMjggY2hhcmFjdGVycy4gVGhlIGNvbXBhcmlzb24gaXMgY2FzZSBpbnNlbnNpdGl2ZS4gVGhlIGZvbGxvd2luZyB3aWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBzdXBwb3J0ZWQ6ICogKG1hdGNoZXMgMCBvciBtb3JlIGNoYXJhY3RlcnMpIGFuZCA/IChtYXRjaGVzIGV4YWN0bHkgMSBjaGFyYWN0ZXIpLiBUbyBzZWFyY2ggZm9yIGEgbGl0ZXJhbCAnKicgb3IgJz8nIGNoYXJhY3RlciBpbiBhIHF1ZXJ5IHN0cmluZywgeW91IG11c3QgZXNjYXBlIHRoZXNlIGNoYXJhY3RlcnMgaW4gYGBWYWx1ZXNgYCB1c2luZyBhICdcXCcgY2hhcmFjdGVyLlxuICogIElmIHlvdSBzcGVjaWZ5IG11bHRpcGxlIGtleS92YWx1ZSBwYWlycyBvciB2YWx1ZXMsIHRoZSBjb25kaXRpb24gaXMgc2F0aXNmaWVkIGlmIG9uZSBvZiB0aGVtIGlzIGZvdW5kIGluIHRoZSBxdWVyeSBzdHJpbmcuXG4gKi9cblZhbHVlcz86IFF1ZXJ5U3RyaW5nS2V5VmFsdWVbXVxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIGtleS92YWx1ZSBwYWlyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5U3RyaW5nS2V5VmFsdWUge1xuLyoqXG4gKiBUaGUgdmFsdWUuXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkuIFlvdSBjYW4gb21pdCB0aGUga2V5LlxuICovXG5LZXk/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmV3cml0ZUNvbmZpZ09iamVjdCB7XG5SZXdyaXRlczogUmV3cml0ZUNvbmZpZ0xpc3Rcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgYSByZXdyaXRlIHRyYW5zZm9ybS4gVGhpcyB0cmFuc2Zvcm0gbWF0Y2hlcyBhIHBhdHRlcm4gYW5kIHJlcGxhY2VzIGl0IHdpdGggdGhlIHNwZWNpZmllZCBzdHJpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV3cml0ZUNvbmZpZyB7XG4vKipcbiAqIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggaW4gdGhlIGlucHV0IHN0cmluZy4gVGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaXMgMSwwMjQgY2hhcmFjdGVycy5cbiAqL1xuUmVnZXg6IHN0cmluZ1xuLyoqXG4gKiBUaGUgcmVwbGFjZW1lbnQgc3RyaW5nIHRvIHVzZSB3aGVuIHJld3JpdGluZyB0aGUgbWF0Y2hlZCBpbnB1dC4gVGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaXMgMSwwMjQgY2hhcmFjdGVycy4gWW91IGNhbiBzcGVjaWZ5IGNhcHR1cmUgZ3JvdXBzIGluIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gKGZvciBleGFtcGxlLCAkMSBhbmQgJDIpLlxuICovXG5SZXBsYWNlOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmV3cml0ZUNvbmZpZ09iamVjdDEge1xuUmV3cml0ZXM6IFJld3JpdGVDb25maWdMaXN0XG59XG4iXX0=
@@ -105,6 +105,9 @@ export interface LoadBalancerAttribute {
105
105
  * + ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false``. The default is ``false``.
106
106
  * + ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.
107
107
  * + ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.
108
+ * + ``health_check_logs.s3.enabled`` - Indicates whether health check logs are enabled. The value is ``true`` or ``false``. The default is ``false``.
109
+ * + ``health_check_logs.s3.bucket`` - The name of the S3 bucket for the health check logs. This attribute is required if health check logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.
110
+ * + ``health_check_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the health check logs.
108
111
  * + ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor``, ``defensive``, and ``strictest``. The default is ``defensive``.
109
112
  * + ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (``true``) or routed to targets (``false``). The default is ``false``.
110
113
  * + ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false``. The default is ``false``.
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbG9hZGJhbGFuY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbG9hZGJhbGFuY2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNwZWNpZmllcyBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCBhIE5ldHdvcmsgTG9hZCBCYWxhbmNlciwgb3IgYSBHYXRld2F5IExvYWQgQmFsYW5jZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19FTEFTVElDTE9BREJBTEFOQ0lOR1YyX0xPQURCQUxBTkNFUiB7XG4vKipcbiAqIFRoZSBJUCBhZGRyZXNzIHR5cGUuIEludGVybmFsIGxvYWQgYmFsYW5jZXJzIG11c3QgdXNlIGBgaXB2NGBgLlxuICogIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2Vyc10gVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgYGBpcHY0YGAgKElQdjQgYWRkcmVzc2VzKSwgYGBkdWFsc3RhY2tgYCAoSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMpLCBhbmQgYGBkdWFsc3RhY2std2l0aG91dC1wdWJsaWMtaXB2NGBgIChwdWJsaWMgSVB2NiBhZGRyZXNzZXMgYW5kIHByaXZhdGUgSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMpLlxuICogIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgYXV0aGVudGljYXRpb24gc3VwcG9ydHMgSVB2NCBhZGRyZXNzZXMgb25seSB3aGVuIGNvbm5lY3RpbmcgdG8gYW4gSWRlbnRpdHkgUHJvdmlkZXIgKElkUCkgb3IgQW1hem9uIENvZ25pdG8gZW5kcG9pbnQuIFdpdGhvdXQgYSBwdWJsaWMgSVB2NCBhZGRyZXNzIHRoZSBsb2FkIGJhbGFuY2VyIGNhbid0IGNvbXBsZXRlIHRoZSBhdXRoZW50aWNhdGlvbiBwcm9jZXNzLCByZXN1bHRpbmcgaW4gSFRUUCA1MDAgZXJyb3JzLlxuICogIFtOZXR3b3JrIExvYWQgQmFsYW5jZXJzIGFuZCBHYXRld2F5IExvYWQgQmFsYW5jZXJzXSBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBgYGlwdjRgYCAoSVB2NCBhZGRyZXNzZXMpIGFuZCBgYGR1YWxzdGFja2BgIChJUHY0IGFuZCBJUHY2IGFkZHJlc3NlcykuXG4gKi9cbklwQWRkcmVzc1R5cGU/OiBzdHJpbmdcbi8qKlxuICogW05ldHdvcmsgTG9hZCBCYWxhbmNlcnMgd2l0aCBVRFAgbGlzdGVuZXJzXSBJbmRpY2F0ZXMgd2hldGhlciB0byB1c2UgYW4gSVB2NiBwcmVmaXggZnJvbSBlYWNoIHN1Ym5ldCBmb3Igc291cmNlIE5BVC4gVGhlIElQIGFkZHJlc3MgdHlwZSBtdXN0IGJlIGBgZHVhbHN0YWNrYGAuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGBgb2ZmYGAuXG4gKi9cbkVuYWJsZVByZWZpeEZvcklwdjZTb3VyY2VOYXQ/OiBzdHJpbmdcbi8qKlxuICogW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJzIGFuZCBOZXR3b3JrIExvYWQgQmFsYW5jZXJzXSBUaGUgSURzIG9mIHRoZSBzZWN1cml0eSBncm91cHMgZm9yIHRoZSBsb2FkIGJhbGFuY2VyLlxuICovXG5TZWN1cml0eUdyb3Vwcz86IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBsb2FkIGJhbGFuY2VyIGF0dHJpYnV0ZXMuIEF0dHJpYnV0ZXMgdGhhdCB5b3UgZG8gbm90IG1vZGlmeSByZXRhaW4gdGhlaXIgY3VycmVudCB2YWx1ZXMuXG4gKi9cbkxvYWRCYWxhbmNlckF0dHJpYnV0ZXM/OiBMb2FkQmFsYW5jZXJBdHRyaWJ1dGVbXVxuTWluaW11bUxvYWRCYWxhbmNlckNhcGFjaXR5PzogTWluaW11bUxvYWRCYWxhbmNlckNhcGFjaXR5XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGVuYWJsZSBzdGFiaWxpemF0aW9uIHdoZW4gY3JlYXRpbmcgb3IgdXBkYXRpbmcgYW4gTENVIHJlc2VydmF0aW9uLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgZmluYWwgc3RhY2sgc3RhdHVzIHJlZmxlY3RzIHRoZSBzdGF0dXMgb2YgdGhlIExDVSByZXNlcnZhdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGBmYWxzZWBgLlxuICovXG5FbmFibGVDYXBhY2l0eVJlc2VydmF0aW9uUHJvdmlzaW9uU3RhYmlsaXplPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbm9kZXMgb2YgYW4gSW50ZXJuZXQtZmFjaW5nIGxvYWQgYmFsYW5jZXIgaGF2ZSBwdWJsaWMgSVAgYWRkcmVzc2VzLiBUaGUgRE5TIG5hbWUgb2YgYW4gSW50ZXJuZXQtZmFjaW5nIGxvYWQgYmFsYW5jZXIgaXMgcHVibGljbHkgcmVzb2x2YWJsZSB0byB0aGUgcHVibGljIElQIGFkZHJlc3NlcyBvZiB0aGUgbm9kZXMuIFRoZXJlZm9yZSwgSW50ZXJuZXQtZmFjaW5nIGxvYWQgYmFsYW5jZXJzIGNhbiByb3V0ZSByZXF1ZXN0cyBmcm9tIGNsaWVudHMgb3ZlciB0aGUgaW50ZXJuZXQuXG4gKiAgVGhlIG5vZGVzIG9mIGFuIGludGVybmFsIGxvYWQgYmFsYW5jZXIgaGF2ZSBvbmx5IHByaXZhdGUgSVAgYWRkcmVzc2VzLiBUaGUgRE5TIG5hbWUgb2YgYW4gaW50ZXJuYWwgbG9hZCBiYWxhbmNlciBpcyBwdWJsaWNseSByZXNvbHZhYmxlIHRvIHRoZSBwcml2YXRlIElQIGFkZHJlc3NlcyBvZiB0aGUgbm9kZXMuIFRoZXJlZm9yZSwgaW50ZXJuYWwgbG9hZCBiYWxhbmNlcnMgY2FuIHJvdXRlIHJlcXVlc3RzIG9ubHkgZnJvbSBjbGllbnRzIHdpdGggYWNjZXNzIHRvIHRoZSBWUEMgZm9yIHRoZSBsb2FkIGJhbGFuY2VyLlxuICogIFRoZSBkZWZhdWx0IGlzIGFuIEludGVybmV0LWZhY2luZyBsb2FkIGJhbGFuY2VyLlxuICogIFlvdSBjYW4ndCBzcGVjaWZ5IGEgc2NoZW1lIGZvciBhIEdhdGV3YXkgTG9hZCBCYWxhbmNlci5cbiAqL1xuU2NoZW1lPzogc3RyaW5nXG5ETlNOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBsb2FkIGJhbGFuY2VyLiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgcGVyIHJlZ2lvbiBwZXIgYWNjb3VudCwgY2FuIGhhdmUgYSBtYXhpbXVtIG9mIDMyIGNoYXJhY3RlcnMsIG11c3QgY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9yIGh5cGhlbnMsIG11c3Qgbm90IGJlZ2luIG9yIGVuZCB3aXRoIGEgaHlwaGVuLCBhbmQgbXVzdCBub3QgYmVnaW4gd2l0aCBcImludGVybmFsLVwiLlxuICogIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgbmFtZSwgQVdTIENsb3VkRm9ybWF0aW9uIGdlbmVyYXRlcyBhIHVuaXF1ZSBwaHlzaWNhbCBJRCBmb3IgdGhlIGxvYWQgYmFsYW5jZXIuIElmIHlvdSBzcGVjaWZ5IGEgbmFtZSwgeW91IGNhbm5vdCBwZXJmb3JtIHVwZGF0ZXMgdGhhdCByZXF1aXJlIHJlcGxhY2VtZW50IG9mIHRoaXMgcmVzb3VyY2UsIGJ1dCB5b3UgY2FuIHBlcmZvcm0gb3RoZXIgdXBkYXRlcy4gVG8gcmVwbGFjZSB0aGUgcmVzb3VyY2UsIHNwZWNpZnkgYSBuZXcgbmFtZS5cbiAqL1xuTmFtZT86IHN0cmluZ1xuTG9hZEJhbGFuY2VyTmFtZT86IHN0cmluZ1xuTG9hZEJhbGFuY2VyRnVsbE5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIElEcyBvZiB0aGUgc3VibmV0cy4gWW91IGNhbiBzcGVjaWZ5IG9ubHkgb25lIHN1Ym5ldCBwZXIgQXZhaWxhYmlsaXR5IFpvbmUuIFlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIHN1Ym5ldHMgb3Igc3VibmV0IG1hcHBpbmdzLCBidXQgbm90IGJvdGguIFRvIHNwZWNpZnkgYW4gRWxhc3RpYyBJUCBhZGRyZXNzLCBzcGVjaWZ5IHN1Ym5ldCBtYXBwaW5ncyBpbnN0ZWFkIG9mIHN1Ym5ldHMuXG4gKiAgW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJzXSBZb3UgbXVzdCBzcGVjaWZ5IHN1Ym5ldHMgZnJvbSBhdCBsZWFzdCB0d28gQXZhaWxhYmlsaXR5IFpvbmVzLlxuICogIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyBvbiBPdXRwb3N0c10gWW91IG11c3Qgc3BlY2lmeSBvbmUgT3V0cG9zdCBzdWJuZXQuXG4gKiAgW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJzIG9uIExvY2FsIFpvbmVzXSBZb3UgY2FuIHNwZWNpZnkgc3VibmV0cyBmcm9tIG9uZSBvciBtb3JlIExvY2FsIFpvbmVzLlxuICogIFtOZXR3b3JrIExvYWQgQmFsYW5jZXJzIGFuZCBHYXRld2F5IExvYWQgQmFsYW5jZXJzXSBZb3UgY2FuIHNwZWNpZnkgc3VibmV0cyBmcm9tIG9uZSBvciBtb3JlIEF2YWlsYWJpbGl0eSBab25lcy5cbiAqL1xuU3VibmV0cz86IHN0cmluZ1tdXG4vKipcbiAqIFRoZSB0eXBlIG9mIGxvYWQgYmFsYW5jZXIuIFRoZSBkZWZhdWx0IGlzIGBgYXBwbGljYXRpb25gYC5cbiAqL1xuVHlwZT86IHN0cmluZ1xuQ2Fub25pY2FsSG9zdGVkWm9uZUlEPzogc3RyaW5nXG4vKipcbiAqIFRoZSB0YWdzIHRvIGFzc2lnbiB0byB0aGUgbG9hZCBiYWxhbmNlci5cbiAqL1xuVGFncz86IFRhZ1tdXG5Mb2FkQmFsYW5jZXJBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIElEcyBvZiB0aGUgc3VibmV0cy4gWW91IGNhbiBzcGVjaWZ5IG9ubHkgb25lIHN1Ym5ldCBwZXIgQXZhaWxhYmlsaXR5IFpvbmUuIFlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIHN1Ym5ldHMgb3Igc3VibmV0IG1hcHBpbmdzLCBidXQgbm90IGJvdGguXG4gKiAgW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJzXSBZb3UgbXVzdCBzcGVjaWZ5IHN1Ym5ldHMgZnJvbSBhdCBsZWFzdCB0d28gQXZhaWxhYmlsaXR5IFpvbmVzLiBZb3UgY2FuJ3Qgc3BlY2lmeSBFbGFzdGljIElQIGFkZHJlc3NlcyBmb3IgeW91ciBzdWJuZXRzLlxuICogIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyBvbiBPdXRwb3N0c10gWW91IG11c3Qgc3BlY2lmeSBvbmUgT3V0cG9zdCBzdWJuZXQuXG4gKiAgW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJzIG9uIExvY2FsIFpvbmVzXSBZb3UgY2FuIHNwZWNpZnkgc3VibmV0cyBmcm9tIG9uZSBvciBtb3JlIExvY2FsIFpvbmVzLlxuICogIFtOZXR3b3JrIExvYWQgQmFsYW5jZXJzXSBZb3UgY2FuIHNwZWNpZnkgc3VibmV0cyBmcm9tIG9uZSBvciBtb3JlIEF2YWlsYWJpbGl0eSBab25lcy4gWW91IGNhbiBzcGVjaWZ5IG9uZSBFbGFzdGljIElQIGFkZHJlc3MgcGVyIHN1Ym5ldCBpZiB5b3UgbmVlZCBzdGF0aWMgSVAgYWRkcmVzc2VzIGZvciB5b3VyIGludGVybmV0LWZhY2luZyBsb2FkIGJhbGFuY2VyLiBGb3IgaW50ZXJuYWwgbG9hZCBiYWxhbmNlcnMsIHlvdSBjYW4gc3BlY2lmeSBvbmUgcHJpdmF0ZSBJUCBhZGRyZXNzIHBlciBzdWJuZXQgZnJvbSB0aGUgSVB2NCByYW5nZSBvZiB0aGUgc3VibmV0LiBGb3IgaW50ZXJuZXQtZmFjaW5nIGxvYWQgYmFsYW5jZXIsIHlvdSBjYW4gc3BlY2lmeSBvbmUgSVB2NiBhZGRyZXNzIHBlciBzdWJuZXQuXG4gKiAgW0dhdGV3YXkgTG9hZCBCYWxhbmNlcnNdIFlvdSBjYW4gc3BlY2lmeSBzdWJuZXRzIGZyb20gb25lIG9yIG1vcmUgQXZhaWxhYmlsaXR5IFpvbmVzLiBZb3UgY2FuJ3Qgc3BlY2lmeSBFbGFzdGljIElQIGFkZHJlc3NlcyBmb3IgeW91ciBzdWJuZXRzLlxuICovXG5TdWJuZXRNYXBwaW5ncz86IFN1Ym5ldE1hcHBpbmdbXVxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0byBldmFsdWF0ZSBpbmJvdW5kIHNlY3VyaXR5IGdyb3VwIHJ1bGVzIGZvciB0cmFmZmljIHNlbnQgdG8gYSBOZXR3b3JrIExvYWQgQmFsYW5jZXIgdGhyb3VnaCBwcml2YXRlbGluay4gVGhlIGRlZmF1bHQgaXMgYGBvbmBgLlxuICogIFlvdSBjYW4ndCBjb25maWd1cmUgdGhpcyBwcm9wZXJ0eSBvbiBhIE5ldHdvcmsgTG9hZCBCYWxhbmNlciB1bmxlc3MgeW91IGFzc29jaWF0ZWQgYSBzZWN1cml0eSBncm91cCB3aXRoIHRoZSBsb2FkIGJhbGFuY2VyIHdoZW4geW91IGNyZWF0ZWQgaXQuXG4gKi9cbkVuZm9yY2VTZWN1cml0eUdyb3VwSW5ib3VuZFJ1bGVzT25Qcml2YXRlTGlua1RyYWZmaWM/OiBzdHJpbmdcbi8qKlxuICogVGhlIElEIG9mIHRoZSBJUHY0IElQQU0gcG9vbC5cbiAqL1xuSXB2NElwYW1Qb29sSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIGFuIGF0dHJpYnV0ZSBmb3IgYW4gQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciwgYSBOZXR3b3JrIExvYWQgQmFsYW5jZXIsIG9yIGEgR2F0ZXdheSBMb2FkIEJhbGFuY2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlckF0dHJpYnV0ZSB7XG4vKipcbiAqIFRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlLlxuICovXG5WYWx1ZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICogIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkIGJ5IGFsbCBsb2FkIGJhbGFuY2VyczpcbiAqICAgKyAgYGBkZWxldGlvbl9wcm90ZWN0aW9uLmVuYWJsZWRgYCAtIEluZGljYXRlcyB3aGV0aGVyIGRlbGV0aW9uIHByb3RlY3Rpb24gaXMgZW5hYmxlZC4gVGhlIHZhbHVlIGlzIGBgdHJ1ZWBgIG9yIGBgZmFsc2VgYC4gVGhlIGRlZmF1bHQgaXMgYGBmYWxzZWBgLlxuICogICArICBgYGxvYWRfYmFsYW5jaW5nLmNyb3NzX3pvbmUuZW5hYmxlZGBgIC0gSW5kaWNhdGVzIHdoZXRoZXIgY3Jvc3Mtem9uZSBsb2FkIGJhbGFuY2luZyBpcyBlbmFibGVkLiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBgYHRydWVgYCBhbmQgYGBmYWxzZWBgLiBUaGUgZGVmYXVsdCBmb3IgTmV0d29yayBMb2FkIEJhbGFuY2VycyBhbmQgR2F0ZXdheSBMb2FkIEJhbGFuY2VycyBpcyBgYGZhbHNlYGAuIFRoZSBkZWZhdWx0IGZvciBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyBpcyBgYHRydWVgYCwgYW5kIGNhbid0IGJlIGNoYW5nZWQuXG4gKiAgIFxuICogIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkIGJ5IGJvdGggQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcnMgYW5kIE5ldHdvcmsgTG9hZCBCYWxhbmNlcnM6XG4gKiAgICsgIGBgYWNjZXNzX2xvZ3MuczMuZW5hYmxlZGBgIC0gSW5kaWNhdGVzIHdoZXRoZXIgYWNjZXNzIGxvZ3MgYXJlIGVuYWJsZWQuIFRoZSB2YWx1ZSBpcyBgYHRydWVgYCBvciBgYGZhbHNlYGAuIFRoZSBkZWZhdWx0IGlzIGBgZmFsc2VgYC5cbiAqICAgKyAgYGBhY2Nlc3NfbG9ncy5zMy5idWNrZXRgYCAtIFRoZSBuYW1lIG9mIHRoZSBTMyBidWNrZXQgZm9yIHRoZSBhY2Nlc3MgbG9ncy4gVGhpcyBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgaWYgYWNjZXNzIGxvZ3MgYXJlIGVuYWJsZWQuIFRoZSBidWNrZXQgbXVzdCBleGlzdCBpbiB0aGUgc2FtZSByZWdpb24gYXMgdGhlIGxvYWQgYmFsYW5jZXIgYW5kIGhhdmUgYSBidWNrZXQgcG9saWN5IHRoYXQgZ3JhbnRzIEVsYXN0aWMgTG9hZCBCYWxhbmNpbmcgcGVybWlzc2lvbnMgdG8gd3JpdGUgdG8gdGhlIGJ1Y2tldC5cbiAqICAgKyAgYGBhY2Nlc3NfbG9ncy5zMy5wcmVmaXhgYCAtIFRoZSBwcmVmaXggZm9yIHRoZSBsb2NhdGlvbiBpbiB0aGUgUzMgYnVja2V0IGZvciB0aGUgYWNjZXNzIGxvZ3MuXG4gKiAgICsgIGBgaXB2Ni5kZW55X2FsbF9pZ3dfdHJhZmZpY2BgIC0gQmxvY2tzIGludGVybmV0IGdhdGV3YXkgKElHVykgYWNjZXNzIHRvIHRoZSBsb2FkIGJhbGFuY2VyLiBJdCBpcyBzZXQgdG8gYGBmYWxzZWBgIGZvciBpbnRlcm5ldC1mYWNpbmcgbG9hZCBiYWxhbmNlcnMgYW5kIGBgdHJ1ZWBgIGZvciBpbnRlcm5hbCBsb2FkIGJhbGFuY2VycywgcHJldmVudGluZyB1bmludGVuZGVkIGFjY2VzcyB0byB5b3VyIGludGVybmFsIGxvYWQgYmFsYW5jZXIgdGhyb3VnaCBhbiBpbnRlcm5ldCBnYXRld2F5LlxuICogICArICBgYHpvbmFsX3NoaWZ0LmNvbmZpZy5lbmFibGVkYGAgLSBJbmRpY2F0ZXMgd2hldGhlciB6b25hbCBzaGlmdCBpcyBlbmFibGVkLiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBgYHRydWVgYCBhbmQgYGBmYWxzZWBgLiBUaGUgZGVmYXVsdCBpcyBgYGZhbHNlYGAuXG4gKiAgIFxuICogIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkIGJ5IG9ubHkgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcnM6XG4gKiAgICsgIGBgaWRsZV90aW1lb3V0LnRpbWVvdXRfc2Vjb25kc2BgIC0gVGhlIGlkbGUgdGltZW91dCB2YWx1ZSwgaW4gc2Vjb25kcy4gVGhlIHZhbGlkIHJhbmdlIGlzIDEtNDAwMCBzZWNvbmRzLiBUaGUgZGVmYXVsdCBpcyA2MCBzZWNvbmRzLlxuICogICArICBgYGNsaWVudF9rZWVwX2FsaXZlLnNlY29uZHNgYCAtIFRoZSBjbGllbnQga2VlcCBhbGl2ZSB2YWx1ZSwgaW4gc2Vjb25kcy4gVGhlIHZhbGlkIHJhbmdlIGlzIDYwLTYwNDgwMCBzZWNvbmRzLiBUaGUgZGVmYXVsdCBpcyAzNjAwIHNlY29uZHMuXG4gKiAgICsgIGBgY29ubmVjdGlvbl9sb2dzLnMzLmVuYWJsZWRgYCAtIEluZGljYXRlcyB3aGV0aGVyIGNvbm5lY3Rpb24gbG9ncyBhcmUgZW5hYmxlZC4gVGhlIHZhbHVlIGlzIGBgdHJ1ZWBgIG9yIGBgZmFsc2VgYC4gVGhlIGRlZmF1bHQgaXMgYGBmYWxzZWBgLlxuICogICArICBgYGNvbm5lY3Rpb25fbG9ncy5zMy5idWNrZXRgYCAtIFRoZSBuYW1lIG9mIHRoZSBTMyBidWNrZXQgZm9yIHRoZSBjb25uZWN0aW9uIGxvZ3MuIFRoaXMgYXR0cmlidXRlIGlzIHJlcXVpcmVkIGlmIGNvbm5lY3Rpb24gbG9ncyBhcmUgZW5hYmxlZC4gVGhlIGJ1Y2tldCBtdXN0IGV4aXN0IGluIHRoZSBzYW1lIHJlZ2lvbiBhcyB0aGUgbG9hZCBiYWxhbmNlciBhbmQgaGF2ZSBhIGJ1Y2tldCBwb2xpY3kgdGhhdCBncmFudHMgRWxhc3RpYyBMb2FkIEJhbGFuY2luZyBwZXJtaXNzaW9ucyB0byB3cml0ZSB0byB0aGUgYnVja2V0LlxuICogICArICBgYGNvbm5lY3Rpb25fbG9ncy5zMy5wcmVmaXhgYCAtIFRoZSBwcmVmaXggZm9yIHRoZSBsb2NhdGlvbiBpbiB0aGUgUzMgYnVja2V0IGZvciB0aGUgY29ubmVjdGlvbiBsb2dzLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5kZXN5bmNfbWl0aWdhdGlvbl9tb2RlYGAgLSBEZXRlcm1pbmVzIGhvdyB0aGUgbG9hZCBiYWxhbmNlciBoYW5kbGVzIHJlcXVlc3RzIHRoYXQgbWlnaHQgcG9zZSBhIHNlY3VyaXR5IHJpc2sgdG8geW91ciBhcHBsaWNhdGlvbi4gVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgYGBtb25pdG9yYGAsIGBgZGVmZW5zaXZlYGAsIGFuZCBgYHN0cmljdGVzdGBgLiBUaGUgZGVmYXVsdCBpcyBgYGRlZmVuc2l2ZWBgLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5kcm9wX2ludmFsaWRfaGVhZGVyX2ZpZWxkcy5lbmFibGVkYGAgLSBJbmRpY2F0ZXMgd2hldGhlciBIVFRQIGhlYWRlcnMgd2l0aCBpbnZhbGlkIGhlYWRlciBmaWVsZHMgYXJlIHJlbW92ZWQgYnkgdGhlIGxvYWQgYmFsYW5jZXIgKGBgdHJ1ZWBgKSBvciByb3V0ZWQgdG8gdGFyZ2V0cyAoYGBmYWxzZWBgKS4gVGhlIGRlZmF1bHQgaXMgYGBmYWxzZWBgLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5wcmVzZXJ2ZV9ob3N0X2hlYWRlci5lbmFibGVkYGAgLSBJbmRpY2F0ZXMgd2hldGhlciB0aGUgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciBzaG91bGQgcHJlc2VydmUgdGhlIGBgSG9zdGBgIGhlYWRlciBpbiB0aGUgSFRUUCByZXF1ZXN0IGFuZCBzZW5kIGl0IHRvIHRoZSB0YXJnZXQgd2l0aG91dCBhbnkgY2hhbmdlLiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBgYHRydWVgYCBhbmQgYGBmYWxzZWBgLiBUaGUgZGVmYXVsdCBpcyBgYGZhbHNlYGAuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnhfYW16bl90bHNfdmVyc2lvbl9hbmRfY2lwaGVyX3N1aXRlLmVuYWJsZWRgYCAtIEluZGljYXRlcyB3aGV0aGVyIHRoZSB0d28gaGVhZGVycyAoYGB4LWFtem4tdGxzLXZlcnNpb25gYCBhbmQgYGB4LWFtem4tdGxzLWNpcGhlci1zdWl0ZWBgKSwgd2hpY2ggY29udGFpbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbmVnb3RpYXRlZCBUTFMgdmVyc2lvbiBhbmQgY2lwaGVyIHN1aXRlLCBhcmUgYWRkZWQgdG8gdGhlIGNsaWVudCByZXF1ZXN0IGJlZm9yZSBzZW5kaW5nIGl0IHRvIHRoZSB0YXJnZXQuIFRoZSBgYHgtYW16bi10bHMtdmVyc2lvbmBgIGhlYWRlciBoYXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFRMUyBwcm90b2NvbCB2ZXJzaW9uIG5lZ290aWF0ZWQgd2l0aCB0aGUgY2xpZW50LCBhbmQgdGhlIGBgeC1hbXpuLXRscy1jaXBoZXItc3VpdGVgYCBoZWFkZXIgaGFzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjaXBoZXIgc3VpdGUgbmVnb3RpYXRlZCB3aXRoIHRoZSBjbGllbnQuIEJvdGggaGVhZGVycyBhcmUgaW4gT3BlblNTTCBmb3JtYXQuIFRoZSBwb3NzaWJsZSB2YWx1ZXMgZm9yIHRoZSBhdHRyaWJ1dGUgYXJlIGBgdHJ1ZWBgIGFuZCBgYGZhbHNlYGAuIFRoZSBkZWZhdWx0IGlzIGBgZmFsc2VgYC5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAueGZmX2NsaWVudF9wb3J0LmVuYWJsZWRgYCAtIEluZGljYXRlcyB3aGV0aGVyIHRoZSBgYFgtRm9yd2FyZGVkLUZvcmBgIGhlYWRlciBzaG91bGQgcHJlc2VydmUgdGhlIHNvdXJjZSBwb3J0IHRoYXQgdGhlIGNsaWVudCB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIGxvYWQgYmFsYW5jZXIuIFRoZSBwb3NzaWJsZSB2YWx1ZXMgYXJlIGBgdHJ1ZWBgIGFuZCBgYGZhbHNlYGAuIFRoZSBkZWZhdWx0IGlzIGBgZmFsc2VgYC5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAueGZmX2hlYWRlcl9wcm9jZXNzaW5nLm1vZGVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSwgcHJlc2VydmUsIG9yIHJlbW92ZSB0aGUgYGBYLUZvcndhcmRlZC1Gb3JgYCBoZWFkZXIgaW4gdGhlIEhUVFAgcmVxdWVzdCBiZWZvcmUgdGhlIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgc2VuZHMgdGhlIHJlcXVlc3QgdG8gdGhlIHRhcmdldC4gVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgYGBhcHBlbmRgYCwgYGBwcmVzZXJ2ZWBgLCBhbmQgYGByZW1vdmVgYC4gVGhlIGRlZmF1bHQgaXMgYGBhcHBlbmRgYC5cbiAqICAgKyAgSWYgdGhlIHZhbHVlIGlzIGBgYXBwZW5kYGAsIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIGFkZHMgdGhlIGNsaWVudCBJUCBhZGRyZXNzIChvZiB0aGUgbGFzdCBob3ApIHRvIHRoZSBgYFgtRm9yd2FyZGVkLUZvcmBgIGhlYWRlciBpbiB0aGUgSFRUUCByZXF1ZXN0IGJlZm9yZSBpdCBzZW5kcyBpdCB0byB0YXJnZXRzLlxuICogICArICBJZiB0aGUgdmFsdWUgaXMgYGBwcmVzZXJ2ZWBgIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIHByZXNlcnZlcyB0aGUgYGBYLUZvcndhcmRlZC1Gb3JgYCBoZWFkZXIgaW4gdGhlIEhUVFAgcmVxdWVzdCwgYW5kIHNlbmRzIGl0IHRvIHRhcmdldHMgd2l0aG91dCBhbnkgY2hhbmdlLlxuICogICArICBJZiB0aGUgdmFsdWUgaXMgYGByZW1vdmVgYCwgdGhlIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgcmVtb3ZlcyB0aGUgYGBYLUZvcndhcmRlZC1Gb3JgYCBoZWFkZXIgaW4gdGhlIEhUVFAgcmVxdWVzdCBiZWZvcmUgaXQgc2VuZHMgaXQgdG8gdGFyZ2V0cy5cbiAqICAgXG4gKiAgICsgIGBgcm91dGluZy5odHRwMi5lbmFibGVkYGAgLSBJbmRpY2F0ZXMgd2hldGhlciBjbGllbnRzIGNhbiBjb25uZWN0IHRvIHRoZSBsb2FkIGJhbGFuY2VyIHVzaW5nIEhUVFAvMi4gSWYgYGB0cnVlYGAsIGNsaWVudHMgY2FuIGNvbm5lY3QgdXNpbmcgSFRUUC8yIG9yIEhUVFAvMS4xLiBIb3dldmVyLCBhbGwgY2xpZW50IHJlcXVlc3RzIGFyZSBzdWJqZWN0IHRvIHRoZSBzdHJpY3RlciBIVFRQLzIgaGVhZGVyIHZhbGlkYXRpb24gcnVsZXMuIEZvciBleGFtcGxlLCBtZXNzYWdlIGhlYWRlciBuYW1lcyBtdXN0IGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgaHlwaGVucy4gSWYgYGBmYWxzZWBgLCBjbGllbnRzIG11c3QgY29ubmVjdCB1c2luZyBIVFRQLzEuMS4gVGhlIGRlZmF1bHQgaXMgYGB0cnVlYGAuXG4gKiAgICsgIGBgd2FmLmZhaWxfb3Blbi5lbmFibGVkYGAgLSBJbmRpY2F0ZXMgd2hldGhlciB0byBhbGxvdyBhIFdBRi1lbmFibGVkIGxvYWQgYmFsYW5jZXIgdG8gcm91dGUgcmVxdWVzdHMgdG8gdGFyZ2V0cyBpZiBpdCBpcyB1bmFibGUgdG8gZm9yd2FyZCB0aGUgcmVxdWVzdCB0byBBV1MgV0FGLiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBgYHRydWVgYCBhbmQgYGBmYWxzZWBgLiBUaGUgZGVmYXVsdCBpcyBgYGZhbHNlYGAuXG4gKiAgIFxuICogIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkIGJ5IG9ubHkgTmV0d29yayBMb2FkIEJhbGFuY2VyczpcbiAqICAgKyAgYGBkbnNfcmVjb3JkLmNsaWVudF9yb3V0aW5nX3BvbGljeWBgIC0gSW5kaWNhdGVzIGhvdyB0cmFmZmljIGlzIGRpc3RyaWJ1dGVkIGFtb25nIHRoZSBsb2FkIGJhbGFuY2VyIEF2YWlsYWJpbGl0eSBab25lcy4gVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgYGBhdmFpbGFiaWxpdHlfem9uZV9hZmZpbml0eWBgIHdpdGggMTAwIHBlcmNlbnQgem9uYWwgYWZmaW5pdHksIGBgcGFydGlhbF9hdmFpbGFiaWxpdHlfem9uZV9hZmZpbml0eWBgIHdpdGggODUgcGVyY2VudCB6b25hbCBhZmZpbml0eSwgYW5kIGBgYW55X2F2YWlsYWJpbGl0eV96b25lYGAgd2l0aCAwIHBlcmNlbnQgem9uYWwgYWZmaW5pdHkuXG4gKiAgICsgIGBgc2Vjb25kYXJ5X2lwcy5hdXRvX2Fzc2lnbmVkLnBlcl9zdWJuZXRgYCAtIFRoZSBudW1iZXIgb2Ygc2Vjb25kYXJ5IElQIGFkZHJlc3NlcyB0byBjb25maWd1cmUgZm9yIHlvdXIgbG9hZCBiYWxhbmNlciBub2Rlcy4gVXNlIHRvIGFkZHJlc3MgcG9ydCBhbGxvY2F0aW9uIGVycm9ycyBpZiB5b3UgY2FuJ3QgYWRkIHRhcmdldHMuIFRoZSB2YWxpZCByYW5nZSBpcyAwIHRvIDcuIFRoZSBkZWZhdWx0IGlzIDAuIEFmdGVyIHlvdSBzZXQgdGhpcyB2YWx1ZSwgeW91IGNhbid0IGRlY3JlYXNlIGl0LlxuICovXG5LZXk/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gY2FwYWNpdHkgZm9yIGEgbG9hZCBiYWxhbmNlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNaW5pbXVtTG9hZEJhbGFuY2VyQ2FwYWNpdHkge1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGNhcGFjaXR5IHVuaXRzLlxuICovXG5DYXBhY2l0eVVuaXRzOiBudW1iZXJcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgYSB0YWcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSB0YWcuXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkgb2YgdGhlIHRhZy5cbiAqL1xuS2V5OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIGEgc3VibmV0IGZvciBhIGxvYWQgYmFsYW5jZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0TWFwcGluZyB7XG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgc3VibmV0LlxuICovXG5TdWJuZXRJZDogc3RyaW5nXG4vKipcbiAqIFtOZXR3b3JrIExvYWQgQmFsYW5jZXJzXSBUaGUgYWxsb2NhdGlvbiBJRCBvZiB0aGUgRWxhc3RpYyBJUCBhZGRyZXNzIGZvciBhbiBpbnRlcm5ldC1mYWNpbmcgbG9hZCBiYWxhbmNlci5cbiAqL1xuQWxsb2NhdGlvbklkPzogc3RyaW5nXG4vKipcbiAqIFtOZXR3b3JrIExvYWQgQmFsYW5jZXJzXSBUaGUgcHJpdmF0ZSBJUHY0IGFkZHJlc3MgZm9yIGFuIGludGVybmFsIGxvYWQgYmFsYW5jZXIuXG4gKi9cblByaXZhdGVJUHY0QWRkcmVzcz86IHN0cmluZ1xuLyoqXG4gKiBbTmV0d29yayBMb2FkIEJhbGFuY2Vyc10gVGhlIElQdjYgYWRkcmVzcy5cbiAqL1xuSVB2NkFkZHJlc3M/OiBzdHJpbmdcbi8qKlxuICogW05ldHdvcmsgTG9hZCBCYWxhbmNlcnMgd2l0aCBVRFAgbGlzdGVuZXJzXSBUaGUgSVB2NiBwcmVmaXggdG8gdXNlIGZvciBzb3VyY2UgTkFULiBTcGVjaWZ5IGFuIElQdjYgcHJlZml4ICgvODAgbmV0bWFzaykgZnJvbSB0aGUgc3VibmV0IENJRFIgYmxvY2sgb3IgYGBhdXRvX2Fzc2lnbmVkYGAgdG8gdXNlIGFuIElQdjYgcHJlZml4IHNlbGVjdGVkIGF0IHJhbmRvbSBmcm9tIHRoZSBzdWJuZXQgQ0lEUiBibG9jay5cbiAqL1xuU291cmNlTmF0SXB2NlByZWZpeD86IHN0cmluZ1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbG9hZGJhbGFuY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbG9hZGJhbGFuY2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNwZWNpZmllcyBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCBhIE5ldHdvcmsgTG9hZCBCYWxhbmNlciwgb3IgYSBHYXRld2F5IExvYWQgQmFsYW5jZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19FTEFTVElDTE9BREJBTEFOQ0lOR1YyX0xPQURCQUxBTkNFUiB7XG4vKipcbiAqIFRoZSBJUCBhZGRyZXNzIHR5cGUuIEludGVybmFsIGxvYWQgYmFsYW5jZXJzIG11c3QgdXNlIGBgaXB2NGBgLlxuICogIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2Vyc10gVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgYGBpcHY0YGAgKElQdjQgYWRkcmVzc2VzKSwgYGBkdWFsc3RhY2tgYCAoSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMpLCBhbmQgYGBkdWFsc3RhY2std2l0aG91dC1wdWJsaWMtaXB2NGBgIChwdWJsaWMgSVB2NiBhZGRyZXNzZXMgYW5kIHByaXZhdGUgSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMpLlxuICogIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgYXV0aGVudGljYXRpb24gc3VwcG9ydHMgSVB2NCBhZGRyZXNzZXMgb25seSB3aGVuIGNvbm5lY3RpbmcgdG8gYW4gSWRlbnRpdHkgUHJvdmlkZXIgKElkUCkgb3IgQW1hem9uIENvZ25pdG8gZW5kcG9pbnQuIFdpdGhvdXQgYSBwdWJsaWMgSVB2NCBhZGRyZXNzIHRoZSBsb2FkIGJhbGFuY2VyIGNhbid0IGNvbXBsZXRlIHRoZSBhdXRoZW50aWNhdGlvbiBwcm9jZXNzLCByZXN1bHRpbmcgaW4gSFRUUCA1MDAgZXJyb3JzLlxuICogIFtOZXR3b3JrIExvYWQgQmFsYW5jZXJzIGFuZCBHYXRld2F5IExvYWQgQmFsYW5jZXJzXSBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBgYGlwdjRgYCAoSVB2NCBhZGRyZXNzZXMpIGFuZCBgYGR1YWxzdGFja2BgIChJUHY0IGFuZCBJUHY2IGFkZHJlc3NlcykuXG4gKi9cbklwQWRkcmVzc1R5cGU/OiBzdHJpbmdcbi8qKlxuICogW05ldHdvcmsgTG9hZCBCYWxhbmNlcnMgd2l0aCBVRFAgbGlzdGVuZXJzXSBJbmRpY2F0ZXMgd2hldGhlciB0byB1c2UgYW4gSVB2NiBwcmVmaXggZnJvbSBlYWNoIHN1Ym5ldCBmb3Igc291cmNlIE5BVC4gVGhlIElQIGFkZHJlc3MgdHlwZSBtdXN0IGJlIGBgZHVhbHN0YWNrYGAuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGBgb2ZmYGAuXG4gKi9cbkVuYWJsZVByZWZpeEZvcklwdjZTb3VyY2VOYXQ/OiBzdHJpbmdcbi8qKlxuICogW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJzIGFuZCBOZXR3b3JrIExvYWQgQmFsYW5jZXJzXSBUaGUgSURzIG9mIHRoZSBzZWN1cml0eSBncm91cHMgZm9yIHRoZSBsb2FkIGJhbGFuY2VyLlxuICovXG5TZWN1cml0eUdyb3Vwcz86IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBsb2FkIGJhbGFuY2VyIGF0dHJpYnV0ZXMuIEF0dHJpYnV0ZXMgdGhhdCB5b3UgZG8gbm90IG1vZGlmeSByZXRhaW4gdGhlaXIgY3VycmVudCB2YWx1ZXMuXG4gKi9cbkxvYWRCYWxhbmNlckF0dHJpYnV0ZXM/OiBMb2FkQmFsYW5jZXJBdHRyaWJ1dGVbXVxuTWluaW11bUxvYWRCYWxhbmNlckNhcGFjaXR5PzogTWluaW11bUxvYWRCYWxhbmNlckNhcGFjaXR5XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGVuYWJsZSBzdGFiaWxpemF0aW9uIHdoZW4gY3JlYXRpbmcgb3IgdXBkYXRpbmcgYW4gTENVIHJlc2VydmF0aW9uLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgZmluYWwgc3RhY2sgc3RhdHVzIHJlZmxlY3RzIHRoZSBzdGF0dXMgb2YgdGhlIExDVSByZXNlcnZhdGlvbi4gVGhlIGRlZmF1bHQgaXMgYGBmYWxzZWBgLlxuICovXG5FbmFibGVDYXBhY2l0eVJlc2VydmF0aW9uUHJvdmlzaW9uU3RhYmlsaXplPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbm9kZXMgb2YgYW4gSW50ZXJuZXQtZmFjaW5nIGxvYWQgYmFsYW5jZXIgaGF2ZSBwdWJsaWMgSVAgYWRkcmVzc2VzLiBUaGUgRE5TIG5hbWUgb2YgYW4gSW50ZXJuZXQtZmFjaW5nIGxvYWQgYmFsYW5jZXIgaXMgcHVibGljbHkgcmVzb2x2YWJsZSB0byB0aGUgcHVibGljIElQIGFkZHJlc3NlcyBvZiB0aGUgbm9kZXMuIFRoZXJlZm9yZSwgSW50ZXJuZXQtZmFjaW5nIGxvYWQgYmFsYW5jZXJzIGNhbiByb3V0ZSByZXF1ZXN0cyBmcm9tIGNsaWVudHMgb3ZlciB0aGUgaW50ZXJuZXQuXG4gKiAgVGhlIG5vZGVzIG9mIGFuIGludGVybmFsIGxvYWQgYmFsYW5jZXIgaGF2ZSBvbmx5IHByaXZhdGUgSVAgYWRkcmVzc2VzLiBUaGUgRE5TIG5hbWUgb2YgYW4gaW50ZXJuYWwgbG9hZCBiYWxhbmNlciBpcyBwdWJsaWNseSByZXNvbHZhYmxlIHRvIHRoZSBwcml2YXRlIElQIGFkZHJlc3NlcyBvZiB0aGUgbm9kZXMuIFRoZXJlZm9yZSwgaW50ZXJuYWwgbG9hZCBiYWxhbmNlcnMgY2FuIHJvdXRlIHJlcXVlc3RzIG9ubHkgZnJvbSBjbGllbnRzIHdpdGggYWNjZXNzIHRvIHRoZSBWUEMgZm9yIHRoZSBsb2FkIGJhbGFuY2VyLlxuICogIFRoZSBkZWZhdWx0IGlzIGFuIEludGVybmV0LWZhY2luZyBsb2FkIGJhbGFuY2VyLlxuICogIFlvdSBjYW4ndCBzcGVjaWZ5IGEgc2NoZW1lIGZvciBhIEdhdGV3YXkgTG9hZCBCYWxhbmNlci5cbiAqL1xuU2NoZW1lPzogc3RyaW5nXG5ETlNOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBsb2FkIGJhbGFuY2VyLiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgcGVyIHJlZ2lvbiBwZXIgYWNjb3VudCwgY2FuIGhhdmUgYSBtYXhpbXVtIG9mIDMyIGNoYXJhY3RlcnMsIG11c3QgY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9yIGh5cGhlbnMsIG11c3Qgbm90IGJlZ2luIG9yIGVuZCB3aXRoIGEgaHlwaGVuLCBhbmQgbXVzdCBub3QgYmVnaW4gd2l0aCBcImludGVybmFsLVwiLlxuICogIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgbmFtZSwgQVdTIENsb3VkRm9ybWF0aW9uIGdlbmVyYXRlcyBhIHVuaXF1ZSBwaHlzaWNhbCBJRCBmb3IgdGhlIGxvYWQgYmFsYW5jZXIuIElmIHlvdSBzcGVjaWZ5IGEgbmFtZSwgeW91IGNhbm5vdCBwZXJmb3JtIHVwZGF0ZXMgdGhhdCByZXF1aXJlIHJlcGxhY2VtZW50IG9mIHRoaXMgcmVzb3VyY2UsIGJ1dCB5b3UgY2FuIHBlcmZvcm0gb3RoZXIgdXBkYXRlcy4gVG8gcmVwbGFjZSB0aGUgcmVzb3VyY2UsIHNwZWNpZnkgYSBuZXcgbmFtZS5cbiAqL1xuTmFtZT86IHN0cmluZ1xuTG9hZEJhbGFuY2VyTmFtZT86IHN0cmluZ1xuTG9hZEJhbGFuY2VyRnVsbE5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIElEcyBvZiB0aGUgc3VibmV0cy4gWW91IGNhbiBzcGVjaWZ5IG9ubHkgb25lIHN1Ym5ldCBwZXIgQXZhaWxhYmlsaXR5IFpvbmUuIFlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIHN1Ym5ldHMgb3Igc3VibmV0IG1hcHBpbmdzLCBidXQgbm90IGJvdGguIFRvIHNwZWNpZnkgYW4gRWxhc3RpYyBJUCBhZGRyZXNzLCBzcGVjaWZ5IHN1Ym5ldCBtYXBwaW5ncyBpbnN0ZWFkIG9mIHN1Ym5ldHMuXG4gKiAgW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJzXSBZb3UgbXVzdCBzcGVjaWZ5IHN1Ym5ldHMgZnJvbSBhdCBsZWFzdCB0d28gQXZhaWxhYmlsaXR5IFpvbmVzLlxuICogIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyBvbiBPdXRwb3N0c10gWW91IG11c3Qgc3BlY2lmeSBvbmUgT3V0cG9zdCBzdWJuZXQuXG4gKiAgW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJzIG9uIExvY2FsIFpvbmVzXSBZb3UgY2FuIHNwZWNpZnkgc3VibmV0cyBmcm9tIG9uZSBvciBtb3JlIExvY2FsIFpvbmVzLlxuICogIFtOZXR3b3JrIExvYWQgQmFsYW5jZXJzIGFuZCBHYXRld2F5IExvYWQgQmFsYW5jZXJzXSBZb3UgY2FuIHNwZWNpZnkgc3VibmV0cyBmcm9tIG9uZSBvciBtb3JlIEF2YWlsYWJpbGl0eSBab25lcy5cbiAqL1xuU3VibmV0cz86IHN0cmluZ1tdXG4vKipcbiAqIFRoZSB0eXBlIG9mIGxvYWQgYmFsYW5jZXIuIFRoZSBkZWZhdWx0IGlzIGBgYXBwbGljYXRpb25gYC5cbiAqL1xuVHlwZT86IHN0cmluZ1xuQ2Fub25pY2FsSG9zdGVkWm9uZUlEPzogc3RyaW5nXG4vKipcbiAqIFRoZSB0YWdzIHRvIGFzc2lnbiB0byB0aGUgbG9hZCBiYWxhbmNlci5cbiAqL1xuVGFncz86IFRhZ1tdXG5Mb2FkQmFsYW5jZXJBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIElEcyBvZiB0aGUgc3VibmV0cy4gWW91IGNhbiBzcGVjaWZ5IG9ubHkgb25lIHN1Ym5ldCBwZXIgQXZhaWxhYmlsaXR5IFpvbmUuIFlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIHN1Ym5ldHMgb3Igc3VibmV0IG1hcHBpbmdzLCBidXQgbm90IGJvdGguXG4gKiAgW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJzXSBZb3UgbXVzdCBzcGVjaWZ5IHN1Ym5ldHMgZnJvbSBhdCBsZWFzdCB0d28gQXZhaWxhYmlsaXR5IFpvbmVzLiBZb3UgY2FuJ3Qgc3BlY2lmeSBFbGFzdGljIElQIGFkZHJlc3NlcyBmb3IgeW91ciBzdWJuZXRzLlxuICogIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyBvbiBPdXRwb3N0c10gWW91IG11c3Qgc3BlY2lmeSBvbmUgT3V0cG9zdCBzdWJuZXQuXG4gKiAgW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJzIG9uIExvY2FsIFpvbmVzXSBZb3UgY2FuIHNwZWNpZnkgc3VibmV0cyBmcm9tIG9uZSBvciBtb3JlIExvY2FsIFpvbmVzLlxuICogIFtOZXR3b3JrIExvYWQgQmFsYW5jZXJzXSBZb3UgY2FuIHNwZWNpZnkgc3VibmV0cyBmcm9tIG9uZSBvciBtb3JlIEF2YWlsYWJpbGl0eSBab25lcy4gWW91IGNhbiBzcGVjaWZ5IG9uZSBFbGFzdGljIElQIGFkZHJlc3MgcGVyIHN1Ym5ldCBpZiB5b3UgbmVlZCBzdGF0aWMgSVAgYWRkcmVzc2VzIGZvciB5b3VyIGludGVybmV0LWZhY2luZyBsb2FkIGJhbGFuY2VyLiBGb3IgaW50ZXJuYWwgbG9hZCBiYWxhbmNlcnMsIHlvdSBjYW4gc3BlY2lmeSBvbmUgcHJpdmF0ZSBJUCBhZGRyZXNzIHBlciBzdWJuZXQgZnJvbSB0aGUgSVB2NCByYW5nZSBvZiB0aGUgc3VibmV0LiBGb3IgaW50ZXJuZXQtZmFjaW5nIGxvYWQgYmFsYW5jZXIsIHlvdSBjYW4gc3BlY2lmeSBvbmUgSVB2NiBhZGRyZXNzIHBlciBzdWJuZXQuXG4gKiAgW0dhdGV3YXkgTG9hZCBCYWxhbmNlcnNdIFlvdSBjYW4gc3BlY2lmeSBzdWJuZXRzIGZyb20gb25lIG9yIG1vcmUgQXZhaWxhYmlsaXR5IFpvbmVzLiBZb3UgY2FuJ3Qgc3BlY2lmeSBFbGFzdGljIElQIGFkZHJlc3NlcyBmb3IgeW91ciBzdWJuZXRzLlxuICovXG5TdWJuZXRNYXBwaW5ncz86IFN1Ym5ldE1hcHBpbmdbXVxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0byBldmFsdWF0ZSBpbmJvdW5kIHNlY3VyaXR5IGdyb3VwIHJ1bGVzIGZvciB0cmFmZmljIHNlbnQgdG8gYSBOZXR3b3JrIExvYWQgQmFsYW5jZXIgdGhyb3VnaCBwcml2YXRlbGluay4gVGhlIGRlZmF1bHQgaXMgYGBvbmBgLlxuICogIFlvdSBjYW4ndCBjb25maWd1cmUgdGhpcyBwcm9wZXJ0eSBvbiBhIE5ldHdvcmsgTG9hZCBCYWxhbmNlciB1bmxlc3MgeW91IGFzc29jaWF0ZWQgYSBzZWN1cml0eSBncm91cCB3aXRoIHRoZSBsb2FkIGJhbGFuY2VyIHdoZW4geW91IGNyZWF0ZWQgaXQuXG4gKi9cbkVuZm9yY2VTZWN1cml0eUdyb3VwSW5ib3VuZFJ1bGVzT25Qcml2YXRlTGlua1RyYWZmaWM/OiBzdHJpbmdcbi8qKlxuICogVGhlIElEIG9mIHRoZSBJUHY0IElQQU0gcG9vbC5cbiAqL1xuSXB2NElwYW1Qb29sSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIGFuIGF0dHJpYnV0ZSBmb3IgYW4gQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciwgYSBOZXR3b3JrIExvYWQgQmFsYW5jZXIsIG9yIGEgR2F0ZXdheSBMb2FkIEJhbGFuY2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlckF0dHJpYnV0ZSB7XG4vKipcbiAqIFRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlLlxuICovXG5WYWx1ZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICogIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkIGJ5IGFsbCBsb2FkIGJhbGFuY2VyczpcbiAqICAgKyAgYGBkZWxldGlvbl9wcm90ZWN0aW9uLmVuYWJsZWRgYCAtIEluZGljYXRlcyB3aGV0aGVyIGRlbGV0aW9uIHByb3RlY3Rpb24gaXMgZW5hYmxlZC4gVGhlIHZhbHVlIGlzIGBgdHJ1ZWBgIG9yIGBgZmFsc2VgYC4gVGhlIGRlZmF1bHQgaXMgYGBmYWxzZWBgLlxuICogICArICBgYGxvYWRfYmFsYW5jaW5nLmNyb3NzX3pvbmUuZW5hYmxlZGBgIC0gSW5kaWNhdGVzIHdoZXRoZXIgY3Jvc3Mtem9uZSBsb2FkIGJhbGFuY2luZyBpcyBlbmFibGVkLiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBgYHRydWVgYCBhbmQgYGBmYWxzZWBgLiBUaGUgZGVmYXVsdCBmb3IgTmV0d29yayBMb2FkIEJhbGFuY2VycyBhbmQgR2F0ZXdheSBMb2FkIEJhbGFuY2VycyBpcyBgYGZhbHNlYGAuIFRoZSBkZWZhdWx0IGZvciBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyBpcyBgYHRydWVgYCwgYW5kIGNhbid0IGJlIGNoYW5nZWQuXG4gKiAgIFxuICogIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkIGJ5IGJvdGggQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcnMgYW5kIE5ldHdvcmsgTG9hZCBCYWxhbmNlcnM6XG4gKiAgICsgIGBgYWNjZXNzX2xvZ3MuczMuZW5hYmxlZGBgIC0gSW5kaWNhdGVzIHdoZXRoZXIgYWNjZXNzIGxvZ3MgYXJlIGVuYWJsZWQuIFRoZSB2YWx1ZSBpcyBgYHRydWVgYCBvciBgYGZhbHNlYGAuIFRoZSBkZWZhdWx0IGlzIGBgZmFsc2VgYC5cbiAqICAgKyAgYGBhY2Nlc3NfbG9ncy5zMy5idWNrZXRgYCAtIFRoZSBuYW1lIG9mIHRoZSBTMyBidWNrZXQgZm9yIHRoZSBhY2Nlc3MgbG9ncy4gVGhpcyBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgaWYgYWNjZXNzIGxvZ3MgYXJlIGVuYWJsZWQuIFRoZSBidWNrZXQgbXVzdCBleGlzdCBpbiB0aGUgc2FtZSByZWdpb24gYXMgdGhlIGxvYWQgYmFsYW5jZXIgYW5kIGhhdmUgYSBidWNrZXQgcG9saWN5IHRoYXQgZ3JhbnRzIEVsYXN0aWMgTG9hZCBCYWxhbmNpbmcgcGVybWlzc2lvbnMgdG8gd3JpdGUgdG8gdGhlIGJ1Y2tldC5cbiAqICAgKyAgYGBhY2Nlc3NfbG9ncy5zMy5wcmVmaXhgYCAtIFRoZSBwcmVmaXggZm9yIHRoZSBsb2NhdGlvbiBpbiB0aGUgUzMgYnVja2V0IGZvciB0aGUgYWNjZXNzIGxvZ3MuXG4gKiAgICsgIGBgaXB2Ni5kZW55X2FsbF9pZ3dfdHJhZmZpY2BgIC0gQmxvY2tzIGludGVybmV0IGdhdGV3YXkgKElHVykgYWNjZXNzIHRvIHRoZSBsb2FkIGJhbGFuY2VyLiBJdCBpcyBzZXQgdG8gYGBmYWxzZWBgIGZvciBpbnRlcm5ldC1mYWNpbmcgbG9hZCBiYWxhbmNlcnMgYW5kIGBgdHJ1ZWBgIGZvciBpbnRlcm5hbCBsb2FkIGJhbGFuY2VycywgcHJldmVudGluZyB1bmludGVuZGVkIGFjY2VzcyB0byB5b3VyIGludGVybmFsIGxvYWQgYmFsYW5jZXIgdGhyb3VnaCBhbiBpbnRlcm5ldCBnYXRld2F5LlxuICogICArICBgYHpvbmFsX3NoaWZ0LmNvbmZpZy5lbmFibGVkYGAgLSBJbmRpY2F0ZXMgd2hldGhlciB6b25hbCBzaGlmdCBpcyBlbmFibGVkLiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBgYHRydWVgYCBhbmQgYGBmYWxzZWBgLiBUaGUgZGVmYXVsdCBpcyBgYGZhbHNlYGAuXG4gKiAgIFxuICogIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkIGJ5IG9ubHkgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcnM6XG4gKiAgICsgIGBgaWRsZV90aW1lb3V0LnRpbWVvdXRfc2Vjb25kc2BgIC0gVGhlIGlkbGUgdGltZW91dCB2YWx1ZSwgaW4gc2Vjb25kcy4gVGhlIHZhbGlkIHJhbmdlIGlzIDEtNDAwMCBzZWNvbmRzLiBUaGUgZGVmYXVsdCBpcyA2MCBzZWNvbmRzLlxuICogICArICBgYGNsaWVudF9rZWVwX2FsaXZlLnNlY29uZHNgYCAtIFRoZSBjbGllbnQga2VlcCBhbGl2ZSB2YWx1ZSwgaW4gc2Vjb25kcy4gVGhlIHZhbGlkIHJhbmdlIGlzIDYwLTYwNDgwMCBzZWNvbmRzLiBUaGUgZGVmYXVsdCBpcyAzNjAwIHNlY29uZHMuXG4gKiAgICsgIGBgY29ubmVjdGlvbl9sb2dzLnMzLmVuYWJsZWRgYCAtIEluZGljYXRlcyB3aGV0aGVyIGNvbm5lY3Rpb24gbG9ncyBhcmUgZW5hYmxlZC4gVGhlIHZhbHVlIGlzIGBgdHJ1ZWBgIG9yIGBgZmFsc2VgYC4gVGhlIGRlZmF1bHQgaXMgYGBmYWxzZWBgLlxuICogICArICBgYGNvbm5lY3Rpb25fbG9ncy5zMy5idWNrZXRgYCAtIFRoZSBuYW1lIG9mIHRoZSBTMyBidWNrZXQgZm9yIHRoZSBjb25uZWN0aW9uIGxvZ3MuIFRoaXMgYXR0cmlidXRlIGlzIHJlcXVpcmVkIGlmIGNvbm5lY3Rpb24gbG9ncyBhcmUgZW5hYmxlZC4gVGhlIGJ1Y2tldCBtdXN0IGV4aXN0IGluIHRoZSBzYW1lIHJlZ2lvbiBhcyB0aGUgbG9hZCBiYWxhbmNlciBhbmQgaGF2ZSBhIGJ1Y2tldCBwb2xpY3kgdGhhdCBncmFudHMgRWxhc3RpYyBMb2FkIEJhbGFuY2luZyBwZXJtaXNzaW9ucyB0byB3cml0ZSB0byB0aGUgYnVja2V0LlxuICogICArICBgYGNvbm5lY3Rpb25fbG9ncy5zMy5wcmVmaXhgYCAtIFRoZSBwcmVmaXggZm9yIHRoZSBsb2NhdGlvbiBpbiB0aGUgUzMgYnVja2V0IGZvciB0aGUgY29ubmVjdGlvbiBsb2dzLlxuICogICArICBgYGhlYWx0aF9jaGVja19sb2dzLnMzLmVuYWJsZWRgYCAtIEluZGljYXRlcyB3aGV0aGVyIGhlYWx0aCBjaGVjayBsb2dzIGFyZSBlbmFibGVkLiBUaGUgdmFsdWUgaXMgYGB0cnVlYGAgb3IgYGBmYWxzZWBgLiBUaGUgZGVmYXVsdCBpcyBgYGZhbHNlYGAuXG4gKiAgICsgIGBgaGVhbHRoX2NoZWNrX2xvZ3MuczMuYnVja2V0YGAgLSBUaGUgbmFtZSBvZiB0aGUgUzMgYnVja2V0IGZvciB0aGUgaGVhbHRoIGNoZWNrIGxvZ3MuIFRoaXMgYXR0cmlidXRlIGlzIHJlcXVpcmVkIGlmIGhlYWx0aCBjaGVjayBsb2dzIGFyZSBlbmFibGVkLiBUaGUgYnVja2V0IG11c3QgZXhpc3QgaW4gdGhlIHNhbWUgcmVnaW9uIGFzIHRoZSBsb2FkIGJhbGFuY2VyIGFuZCBoYXZlIGEgYnVja2V0IHBvbGljeSB0aGF0IGdyYW50cyBFbGFzdGljIExvYWQgQmFsYW5jaW5nIHBlcm1pc3Npb25zIHRvIHdyaXRlIHRvIHRoZSBidWNrZXQuXG4gKiAgICsgIGBgaGVhbHRoX2NoZWNrX2xvZ3MuczMucHJlZml4YGAgLSBUaGUgcHJlZml4IGZvciB0aGUgbG9jYXRpb24gaW4gdGhlIFMzIGJ1Y2tldCBmb3IgdGhlIGhlYWx0aCBjaGVjayBsb2dzLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5kZXN5bmNfbWl0aWdhdGlvbl9tb2RlYGAgLSBEZXRlcm1pbmVzIGhvdyB0aGUgbG9hZCBiYWxhbmNlciBoYW5kbGVzIHJlcXVlc3RzIHRoYXQgbWlnaHQgcG9zZSBhIHNlY3VyaXR5IHJpc2sgdG8geW91ciBhcHBsaWNhdGlvbi4gVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgYGBtb25pdG9yYGAsIGBgZGVmZW5zaXZlYGAsIGFuZCBgYHN0cmljdGVzdGBgLiBUaGUgZGVmYXVsdCBpcyBgYGRlZmVuc2l2ZWBgLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5kcm9wX2ludmFsaWRfaGVhZGVyX2ZpZWxkcy5lbmFibGVkYGAgLSBJbmRpY2F0ZXMgd2hldGhlciBIVFRQIGhlYWRlcnMgd2l0aCBpbnZhbGlkIGhlYWRlciBmaWVsZHMgYXJlIHJlbW92ZWQgYnkgdGhlIGxvYWQgYmFsYW5jZXIgKGBgdHJ1ZWBgKSBvciByb3V0ZWQgdG8gdGFyZ2V0cyAoYGBmYWxzZWBgKS4gVGhlIGRlZmF1bHQgaXMgYGBmYWxzZWBgLlxuICogICArICBgYHJvdXRpbmcuaHR0cC5wcmVzZXJ2ZV9ob3N0X2hlYWRlci5lbmFibGVkYGAgLSBJbmRpY2F0ZXMgd2hldGhlciB0aGUgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciBzaG91bGQgcHJlc2VydmUgdGhlIGBgSG9zdGBgIGhlYWRlciBpbiB0aGUgSFRUUCByZXF1ZXN0IGFuZCBzZW5kIGl0IHRvIHRoZSB0YXJnZXQgd2l0aG91dCBhbnkgY2hhbmdlLiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBgYHRydWVgYCBhbmQgYGBmYWxzZWBgLiBUaGUgZGVmYXVsdCBpcyBgYGZhbHNlYGAuXG4gKiAgICsgIGBgcm91dGluZy5odHRwLnhfYW16bl90bHNfdmVyc2lvbl9hbmRfY2lwaGVyX3N1aXRlLmVuYWJsZWRgYCAtIEluZGljYXRlcyB3aGV0aGVyIHRoZSB0d28gaGVhZGVycyAoYGB4LWFtem4tdGxzLXZlcnNpb25gYCBhbmQgYGB4LWFtem4tdGxzLWNpcGhlci1zdWl0ZWBgKSwgd2hpY2ggY29udGFpbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbmVnb3RpYXRlZCBUTFMgdmVyc2lvbiBhbmQgY2lwaGVyIHN1aXRlLCBhcmUgYWRkZWQgdG8gdGhlIGNsaWVudCByZXF1ZXN0IGJlZm9yZSBzZW5kaW5nIGl0IHRvIHRoZSB0YXJnZXQuIFRoZSBgYHgtYW16bi10bHMtdmVyc2lvbmBgIGhlYWRlciBoYXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFRMUyBwcm90b2NvbCB2ZXJzaW9uIG5lZ290aWF0ZWQgd2l0aCB0aGUgY2xpZW50LCBhbmQgdGhlIGBgeC1hbXpuLXRscy1jaXBoZXItc3VpdGVgYCBoZWFkZXIgaGFzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjaXBoZXIgc3VpdGUgbmVnb3RpYXRlZCB3aXRoIHRoZSBjbGllbnQuIEJvdGggaGVhZGVycyBhcmUgaW4gT3BlblNTTCBmb3JtYXQuIFRoZSBwb3NzaWJsZSB2YWx1ZXMgZm9yIHRoZSBhdHRyaWJ1dGUgYXJlIGBgdHJ1ZWBgIGFuZCBgYGZhbHNlYGAuIFRoZSBkZWZhdWx0IGlzIGBgZmFsc2VgYC5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAueGZmX2NsaWVudF9wb3J0LmVuYWJsZWRgYCAtIEluZGljYXRlcyB3aGV0aGVyIHRoZSBgYFgtRm9yd2FyZGVkLUZvcmBgIGhlYWRlciBzaG91bGQgcHJlc2VydmUgdGhlIHNvdXJjZSBwb3J0IHRoYXQgdGhlIGNsaWVudCB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIGxvYWQgYmFsYW5jZXIuIFRoZSBwb3NzaWJsZSB2YWx1ZXMgYXJlIGBgdHJ1ZWBgIGFuZCBgYGZhbHNlYGAuIFRoZSBkZWZhdWx0IGlzIGBgZmFsc2VgYC5cbiAqICAgKyAgYGByb3V0aW5nLmh0dHAueGZmX2hlYWRlcl9wcm9jZXNzaW5nLm1vZGVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSwgcHJlc2VydmUsIG9yIHJlbW92ZSB0aGUgYGBYLUZvcndhcmRlZC1Gb3JgYCBoZWFkZXIgaW4gdGhlIEhUVFAgcmVxdWVzdCBiZWZvcmUgdGhlIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgc2VuZHMgdGhlIHJlcXVlc3QgdG8gdGhlIHRhcmdldC4gVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgYGBhcHBlbmRgYCwgYGBwcmVzZXJ2ZWBgLCBhbmQgYGByZW1vdmVgYC4gVGhlIGRlZmF1bHQgaXMgYGBhcHBlbmRgYC5cbiAqICAgKyAgSWYgdGhlIHZhbHVlIGlzIGBgYXBwZW5kYGAsIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIGFkZHMgdGhlIGNsaWVudCBJUCBhZGRyZXNzIChvZiB0aGUgbGFzdCBob3ApIHRvIHRoZSBgYFgtRm9yd2FyZGVkLUZvcmBgIGhlYWRlciBpbiB0aGUgSFRUUCByZXF1ZXN0IGJlZm9yZSBpdCBzZW5kcyBpdCB0byB0YXJnZXRzLlxuICogICArICBJZiB0aGUgdmFsdWUgaXMgYGBwcmVzZXJ2ZWBgIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIHByZXNlcnZlcyB0aGUgYGBYLUZvcndhcmRlZC1Gb3JgYCBoZWFkZXIgaW4gdGhlIEhUVFAgcmVxdWVzdCwgYW5kIHNlbmRzIGl0IHRvIHRhcmdldHMgd2l0aG91dCBhbnkgY2hhbmdlLlxuICogICArICBJZiB0aGUgdmFsdWUgaXMgYGByZW1vdmVgYCwgdGhlIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgcmVtb3ZlcyB0aGUgYGBYLUZvcndhcmRlZC1Gb3JgYCBoZWFkZXIgaW4gdGhlIEhUVFAgcmVxdWVzdCBiZWZvcmUgaXQgc2VuZHMgaXQgdG8gdGFyZ2V0cy5cbiAqICAgXG4gKiAgICsgIGBgcm91dGluZy5odHRwMi5lbmFibGVkYGAgLSBJbmRpY2F0ZXMgd2hldGhlciBjbGllbnRzIGNhbiBjb25uZWN0IHRvIHRoZSBsb2FkIGJhbGFuY2VyIHVzaW5nIEhUVFAvMi4gSWYgYGB0cnVlYGAsIGNsaWVudHMgY2FuIGNvbm5lY3QgdXNpbmcgSFRUUC8yIG9yIEhUVFAvMS4xLiBIb3dldmVyLCBhbGwgY2xpZW50IHJlcXVlc3RzIGFyZSBzdWJqZWN0IHRvIHRoZSBzdHJpY3RlciBIVFRQLzIgaGVhZGVyIHZhbGlkYXRpb24gcnVsZXMuIEZvciBleGFtcGxlLCBtZXNzYWdlIGhlYWRlciBuYW1lcyBtdXN0IGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgaHlwaGVucy4gSWYgYGBmYWxzZWBgLCBjbGllbnRzIG11c3QgY29ubmVjdCB1c2luZyBIVFRQLzEuMS4gVGhlIGRlZmF1bHQgaXMgYGB0cnVlYGAuXG4gKiAgICsgIGBgd2FmLmZhaWxfb3Blbi5lbmFibGVkYGAgLSBJbmRpY2F0ZXMgd2hldGhlciB0byBhbGxvdyBhIFdBRi1lbmFibGVkIGxvYWQgYmFsYW5jZXIgdG8gcm91dGUgcmVxdWVzdHMgdG8gdGFyZ2V0cyBpZiBpdCBpcyB1bmFibGUgdG8gZm9yd2FyZCB0aGUgcmVxdWVzdCB0byBBV1MgV0FGLiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBgYHRydWVgYCBhbmQgYGBmYWxzZWBgLiBUaGUgZGVmYXVsdCBpcyBgYGZhbHNlYGAuXG4gKiAgIFxuICogIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkIGJ5IG9ubHkgTmV0d29yayBMb2FkIEJhbGFuY2VyczpcbiAqICAgKyAgYGBkbnNfcmVjb3JkLmNsaWVudF9yb3V0aW5nX3BvbGljeWBgIC0gSW5kaWNhdGVzIGhvdyB0cmFmZmljIGlzIGRpc3RyaWJ1dGVkIGFtb25nIHRoZSBsb2FkIGJhbGFuY2VyIEF2YWlsYWJpbGl0eSBab25lcy4gVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgYGBhdmFpbGFiaWxpdHlfem9uZV9hZmZpbml0eWBgIHdpdGggMTAwIHBlcmNlbnQgem9uYWwgYWZmaW5pdHksIGBgcGFydGlhbF9hdmFpbGFiaWxpdHlfem9uZV9hZmZpbml0eWBgIHdpdGggODUgcGVyY2VudCB6b25hbCBhZmZpbml0eSwgYW5kIGBgYW55X2F2YWlsYWJpbGl0eV96b25lYGAgd2l0aCAwIHBlcmNlbnQgem9uYWwgYWZmaW5pdHkuXG4gKiAgICsgIGBgc2Vjb25kYXJ5X2lwcy5hdXRvX2Fzc2lnbmVkLnBlcl9zdWJuZXRgYCAtIFRoZSBudW1iZXIgb2Ygc2Vjb25kYXJ5IElQIGFkZHJlc3NlcyB0byBjb25maWd1cmUgZm9yIHlvdXIgbG9hZCBiYWxhbmNlciBub2Rlcy4gVXNlIHRvIGFkZHJlc3MgcG9ydCBhbGxvY2F0aW9uIGVycm9ycyBpZiB5b3UgY2FuJ3QgYWRkIHRhcmdldHMuIFRoZSB2YWxpZCByYW5nZSBpcyAwIHRvIDcuIFRoZSBkZWZhdWx0IGlzIDAuIEFmdGVyIHlvdSBzZXQgdGhpcyB2YWx1ZSwgeW91IGNhbid0IGRlY3JlYXNlIGl0LlxuICovXG5LZXk/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gY2FwYWNpdHkgZm9yIGEgbG9hZCBiYWxhbmNlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNaW5pbXVtTG9hZEJhbGFuY2VyQ2FwYWNpdHkge1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGNhcGFjaXR5IHVuaXRzLlxuICovXG5DYXBhY2l0eVVuaXRzOiBudW1iZXJcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgYSB0YWcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSB0YWcuXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkgb2YgdGhlIHRhZy5cbiAqL1xuS2V5OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIGEgc3VibmV0IGZvciBhIGxvYWQgYmFsYW5jZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0TWFwcGluZyB7XG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgc3VibmV0LlxuICovXG5TdWJuZXRJZDogc3RyaW5nXG4vKipcbiAqIFtOZXR3b3JrIExvYWQgQmFsYW5jZXJzXSBUaGUgYWxsb2NhdGlvbiBJRCBvZiB0aGUgRWxhc3RpYyBJUCBhZGRyZXNzIGZvciBhbiBpbnRlcm5ldC1mYWNpbmcgbG9hZCBiYWxhbmNlci5cbiAqL1xuQWxsb2NhdGlvbklkPzogc3RyaW5nXG4vKipcbiAqIFtOZXR3b3JrIExvYWQgQmFsYW5jZXJzXSBUaGUgcHJpdmF0ZSBJUHY0IGFkZHJlc3MgZm9yIGFuIGludGVybmFsIGxvYWQgYmFsYW5jZXIuXG4gKi9cblByaXZhdGVJUHY0QWRkcmVzcz86IHN0cmluZ1xuLyoqXG4gKiBbTmV0d29yayBMb2FkIEJhbGFuY2Vyc10gVGhlIElQdjYgYWRkcmVzcy5cbiAqL1xuSVB2NkFkZHJlc3M/OiBzdHJpbmdcbi8qKlxuICogW05ldHdvcmsgTG9hZCBCYWxhbmNlcnMgd2l0aCBVRFAgbGlzdGVuZXJzXSBUaGUgSVB2NiBwcmVmaXggdG8gdXNlIGZvciBzb3VyY2UgTkFULiBTcGVjaWZ5IGFuIElQdjYgcHJlZml4ICgvODAgbmV0bWFzaykgZnJvbSB0aGUgc3VibmV0IENJRFIgYmxvY2sgb3IgYGBhdXRvX2Fzc2lnbmVkYGAgdG8gdXNlIGFuIElQdjYgcHJlZml4IHNlbGVjdGVkIGF0IHJhbmRvbSBmcm9tIHRoZSBzdWJuZXQgQ0lEUiBibG9jay5cbiAqL1xuU291cmNlTmF0SXB2NlByZWZpeD86IHN0cmluZ1xufVxuIl19
@@ -19,6 +19,14 @@ export interface _AWS_EMR_STEP {
19
19
  * The name of the cluster step.
20
20
  */
21
21
  Name: string;
22
+ /**
23
+ * The Amazon S3 destination URI for log publishing. When omitted, EMR falls back to cluster-level logging behavior.
24
+ */
25
+ LogUri?: string;
26
+ /**
27
+ * The KMS key ARN to encrypt the logs published to the given Amazon S3 destination. When omitted, EMR falls back to cluster-level logging behavior.
28
+ */
29
+ EncryptionKeyArn?: string;
22
30
  }
23
31
  /**
24
32
  * The HadoopJarStepConfig property type specifies a job flow step consisting of a JAR file whose main function will be executed. The main function submits a job for the cluster to execute as a step on the master node, and then waits for the job to finish or fail before executing subsequent steps.
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVtci1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVtci1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNjaGVtYSBmb3IgQVdTOjpFTVI6OlN0ZXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0VNUl9TVEVQIHtcbi8qKlxuICogSUQgZ2VuZXJhdGVkIGJ5IHNlcnZpY2VcbiAqL1xuSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhpcyBzcGVjaWZpZXMgd2hhdCBhY3Rpb24gdG8gdGFrZSB3aGVuIHRoZSBjbHVzdGVyIHN0ZXAgZmFpbHMuIFBvc3NpYmxlIHZhbHVlcyBhcmUgQ0FOQ0VMX0FORF9XQUlUIGFuZCBDT05USU5VRS5cbiAqL1xuQWN0aW9uT25GYWlsdXJlOiBzdHJpbmdcbkhhZG9vcEphclN0ZXA6IEhhZG9vcEphclN0ZXBDb25maWdcbi8qKlxuICogQSBzdHJpbmcgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBjbHVzdGVyIChqb2IgZmxvdykuXG4gKi9cbkpvYkZsb3dJZDogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBjbHVzdGVyIHN0ZXAuXG4gKi9cbk5hbWU6IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgSGFkb29wSmFyU3RlcENvbmZpZyBwcm9wZXJ0eSB0eXBlIHNwZWNpZmllcyBhIGpvYiBmbG93IHN0ZXAgY29uc2lzdGluZyBvZiBhIEpBUiBmaWxlIHdob3NlIG1haW4gZnVuY3Rpb24gd2lsbCBiZSBleGVjdXRlZC4gVGhlIG1haW4gZnVuY3Rpb24gc3VibWl0cyBhIGpvYiBmb3IgdGhlIGNsdXN0ZXIgdG8gZXhlY3V0ZSBhcyBhIHN0ZXAgb24gdGhlIG1hc3RlciBub2RlLCBhbmQgdGhlbiB3YWl0cyBmb3IgdGhlIGpvYiB0byBmaW5pc2ggb3IgZmFpbCBiZWZvcmUgZXhlY3V0aW5nIHN1YnNlcXVlbnQgc3RlcHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGFkb29wSmFyU3RlcENvbmZpZyB7XG5BcmdzPzogc3RyaW5nW11cbkphcjogc3RyaW5nXG5NYWluQ2xhc3M/OiBzdHJpbmdcblN0ZXBQcm9wZXJ0aWVzPzogS2V5VmFsdWVbXVxufVxuZXhwb3J0IGludGVyZmFjZSBLZXlWYWx1ZSB7XG5LZXk/OiBzdHJpbmdcblZhbHVlPzogc3RyaW5nXG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVtci1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVtci1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNjaGVtYSBmb3IgQVdTOjpFTVI6OlN0ZXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0VNUl9TVEVQIHtcbi8qKlxuICogSUQgZ2VuZXJhdGVkIGJ5IHNlcnZpY2VcbiAqL1xuSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhpcyBzcGVjaWZpZXMgd2hhdCBhY3Rpb24gdG8gdGFrZSB3aGVuIHRoZSBjbHVzdGVyIHN0ZXAgZmFpbHMuIFBvc3NpYmxlIHZhbHVlcyBhcmUgQ0FOQ0VMX0FORF9XQUlUIGFuZCBDT05USU5VRS5cbiAqL1xuQWN0aW9uT25GYWlsdXJlOiBzdHJpbmdcbkhhZG9vcEphclN0ZXA6IEhhZG9vcEphclN0ZXBDb25maWdcbi8qKlxuICogQSBzdHJpbmcgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBjbHVzdGVyIChqb2IgZmxvdykuXG4gKi9cbkpvYkZsb3dJZDogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBjbHVzdGVyIHN0ZXAuXG4gKi9cbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFMzIGRlc3RpbmF0aW9uIFVSSSBmb3IgbG9nIHB1Ymxpc2hpbmcuIFdoZW4gb21pdHRlZCwgRU1SIGZhbGxzIGJhY2sgdG8gY2x1c3Rlci1sZXZlbCBsb2dnaW5nIGJlaGF2aW9yLlxuICovXG5Mb2dVcmk/OiBzdHJpbmdcbi8qKlxuICogVGhlIEtNUyBrZXkgQVJOIHRvIGVuY3J5cHQgdGhlIGxvZ3MgcHVibGlzaGVkIHRvIHRoZSBnaXZlbiBBbWF6b24gUzMgZGVzdGluYXRpb24uIFdoZW4gb21pdHRlZCwgRU1SIGZhbGxzIGJhY2sgdG8gY2x1c3Rlci1sZXZlbCBsb2dnaW5nIGJlaGF2aW9yLlxuICovXG5FbmNyeXB0aW9uS2V5QXJuPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBIYWRvb3BKYXJTdGVwQ29uZmlnIHByb3BlcnR5IHR5cGUgc3BlY2lmaWVzIGEgam9iIGZsb3cgc3RlcCBjb25zaXN0aW5nIG9mIGEgSkFSIGZpbGUgd2hvc2UgbWFpbiBmdW5jdGlvbiB3aWxsIGJlIGV4ZWN1dGVkLiBUaGUgbWFpbiBmdW5jdGlvbiBzdWJtaXRzIGEgam9iIGZvciB0aGUgY2x1c3RlciB0byBleGVjdXRlIGFzIGEgc3RlcCBvbiB0aGUgbWFzdGVyIG5vZGUsIGFuZCB0aGVuIHdhaXRzIGZvciB0aGUgam9iIHRvIGZpbmlzaCBvciBmYWlsIGJlZm9yZSBleGVjdXRpbmcgc3Vic2VxdWVudCBzdGVwcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYWRvb3BKYXJTdGVwQ29uZmlnIHtcbkFyZ3M/OiBzdHJpbmdbXVxuSmFyOiBzdHJpbmdcbk1haW5DbGFzcz86IHN0cmluZ1xuU3RlcFByb3BlcnRpZXM/OiBLZXlWYWx1ZVtdXG59XG5leHBvcnQgaW50ZXJmYWNlIEtleVZhbHVlIHtcbktleT86IHN0cmluZ1xuVmFsdWU/OiBzdHJpbmdcbn1cbiJdfQ==
@@ -1,5 +1,7 @@
1
1
  export type AttributeName = string;
2
2
  export type KMSArn = string;
3
+ export type CustomerProfilesDomainArn = string;
4
+ export type CustomerProfilesObjectTypeArn = string;
3
5
  export type ResolutionType = ("RULE_MATCHING" | "ML_MATCHING" | "PROVIDER");
4
6
  /**
5
7
  * The default MatchingWorkflow arn
@@ -62,7 +64,7 @@ export interface OutputSource {
62
64
  /**
63
65
  * The S3 path to which Entity Resolution will write the output table
64
66
  */
65
- OutputS3Path: string;
67
+ OutputS3Path?: string;
66
68
  /**
67
69
  * @minItems 0
68
70
  * @maxItems 750
@@ -70,11 +72,16 @@ export interface OutputSource {
70
72
  Output: OutputAttribute[];
71
73
  KMSArn?: KMSArn;
72
74
  ApplyNormalization?: boolean;
75
+ CustomerProfilesIntegrationConfig?: CustomerProfilesIntegrationConfig;
73
76
  }
74
77
  export interface OutputAttribute {
75
78
  Name: AttributeName;
76
79
  Hashed?: boolean;
77
80
  }
81
+ export interface CustomerProfilesIntegrationConfig {
82
+ DomainArn: CustomerProfilesDomainArn;
83
+ ObjectTypeArn: CustomerProfilesObjectTypeArn;
84
+ }
78
85
  export interface ResolutionTechniques {
79
86
  ResolutionType?: ResolutionType;
80
87
  RuleBasedProperties?: RuleBasedProperties;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVudGl0eXJlc29sdXRpb24tbWF0Y2hpbmd3b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1lbnRpdHlyZXNvbHV0aW9uLW1hdGNoaW5nd29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEF0dHJpYnV0ZU5hbWUgPSBzdHJpbmdcbmV4cG9ydCB0eXBlIEtNU0FybiA9IHN0cmluZ1xuZXhwb3J0IHR5cGUgUmVzb2x1dGlvblR5cGUgPSAoXCJSVUxFX01BVENISU5HXCIgfCBcIk1MX01BVENISU5HXCIgfCBcIlBST1ZJREVSXCIpXG4vKipcbiAqIFRoZSBkZWZhdWx0IE1hdGNoaW5nV29ya2Zsb3cgYXJuXG4gKi9cbmV4cG9ydCB0eXBlIE1hdGNoaW5nV29ya2Zsb3dBcm4gPSBzdHJpbmdcbi8qKlxuICogVGhlIHRpbWUgb2YgdGhpcyBNYXRjaGluZ1dvcmtmbG93IGdvdCBjcmVhdGVkXG4gKi9cbmV4cG9ydCB0eXBlIENyZWF0ZWRBdCA9IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGltZSBvZiB0aGlzIE1hdGNoaW5nV29ya2Zsb3cgZ290IGxhc3QgdXBkYXRlZCBhdFxuICovXG5leHBvcnQgdHlwZSBVcGRhdGVkQXQgPSBzdHJpbmdcblxuLyoqXG4gKiBNYXRjaGluZ1dvcmtmbG93IGRlZmluZWQgaW4gQVdTIEVudGl0eSBSZXNvbHV0aW9uIHNlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0VOVElUWVJFU09MVVRJT05fTUFUQ0hJTkdXT1JLRkxPVyB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBNYXRjaGluZ1dvcmtmbG93XG4gKi9cbldvcmtmbG93TmFtZTogc3RyaW5nXG4vKipcbiAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgTWF0Y2hpbmdXb3JrZmxvd1xuICovXG5EZXNjcmlwdGlvbj86IHN0cmluZ1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwXG4gKi9cbklucHV0U291cmNlQ29uZmlnOiBJbnB1dFNvdXJjZVtdXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMVxuICovXG5PdXRwdXRTb3VyY2VDb25maWc6IE91dHB1dFNvdXJjZVtdXG5SZXNvbHV0aW9uVGVjaG5pcXVlczogUmVzb2x1dGlvblRlY2huaXF1ZXNcblJvbGVBcm46IHN0cmluZ1xuLyoqXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDIwMFxuICovXG5UYWdzPzogVGFnW11cbldvcmtmbG93QXJuPzogTWF0Y2hpbmdXb3JrZmxvd0FyblxuQ3JlYXRlZEF0PzogQ3JlYXRlZEF0XG5VcGRhdGVkQXQ/OiBVcGRhdGVkQXRcbkluY3JlbWVudGFsUnVuQ29uZmlnPzogSW5jcmVtZW50YWxSdW5Db25maWdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRTb3VyY2Uge1xuLyoqXG4gKiBBbiBHbHVlIHRhYmxlIEFSTiBmb3IgdGhlIGlucHV0IHNvdXJjZSB0YWJsZVxuICovXG5JbnB1dFNvdXJjZUFSTjogc3RyaW5nXG4vKipcbiAqIFRoZSBTY2hlbWFNYXBwaW5nIGFybiBhc3NvY2lhdGVkIHdpdGggdGhlIFNjaGVtYVxuICovXG5TY2hlbWFBcm46IHN0cmluZ1xuQXBwbHlOb3JtYWxpemF0aW9uPzogYm9vbGVhblxufVxuZXhwb3J0IGludGVyZmFjZSBPdXRwdXRTb3VyY2Uge1xuLyoqXG4gKiBUaGUgUzMgcGF0aCB0byB3aGljaCBFbnRpdHkgUmVzb2x1dGlvbiB3aWxsIHdyaXRlIHRoZSBvdXRwdXQgdGFibGVcbiAqL1xuT3V0cHV0UzNQYXRoOiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyA3NTBcbiAqL1xuT3V0cHV0OiBPdXRwdXRBdHRyaWJ1dGVbXVxuS01TQXJuPzogS01TQXJuXG5BcHBseU5vcm1hbGl6YXRpb24/OiBib29sZWFuXG59XG5leHBvcnQgaW50ZXJmYWNlIE91dHB1dEF0dHJpYnV0ZSB7XG5OYW1lOiBBdHRyaWJ1dGVOYW1lXG5IYXNoZWQ/OiBib29sZWFuXG59XG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdXRpb25UZWNobmlxdWVzIHtcblJlc29sdXRpb25UeXBlPzogUmVzb2x1dGlvblR5cGVcblJ1bGVCYXNlZFByb3BlcnRpZXM/OiBSdWxlQmFzZWRQcm9wZXJ0aWVzXG5SdWxlQ29uZGl0aW9uUHJvcGVydGllcz86IFJ1bGVDb25kaXRpb25Qcm9wZXJ0aWVzXG5Qcm92aWRlclByb3BlcnRpZXM/OiBQcm92aWRlclByb3BlcnRpZXNcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUJhc2VkUHJvcGVydGllcyB7XG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjVcbiAqL1xuUnVsZXM6IFJ1bGVbXVxuQXR0cmlidXRlTWF0Y2hpbmdNb2RlbDogKFwiT05FX1RPX09ORVwiIHwgXCJNQU5ZX1RPX01BTllcIilcbk1hdGNoUHVycG9zZT86IChcIklERU5USUZJRVJfR0VORVJBVElPTlwiIHwgXCJJTkRFWElOR1wiKVxufVxuZXhwb3J0IGludGVyZmFjZSBSdWxlIHtcblJ1bGVOYW1lOiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxNVxuICovXG5NYXRjaGluZ0tleXM6IEF0dHJpYnV0ZU5hbWVbXVxufVxuZXhwb3J0IGludGVyZmFjZSBSdWxlQ29uZGl0aW9uUHJvcGVydGllcyB7XG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjVcbiAqL1xuUnVsZXM6IFJ1bGVDb25kaXRpb25bXVxufVxuZXhwb3J0IGludGVyZmFjZSBSdWxlQ29uZGl0aW9uIHtcblJ1bGVOYW1lPzogQXR0cmlidXRlTmFtZVxuQ29uZGl0aW9uPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyUHJvcGVydGllcyB7XG4vKipcbiAqIEFybiBvZiB0aGUgUHJvdmlkZXIgc2VydmljZSBiZWluZyB1c2VkLlxuICovXG5Qcm92aWRlclNlcnZpY2VBcm46IHN0cmluZ1xuLyoqXG4gKiBBZGRpdGlvbmFsIFByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gdGhhdCB3b3VsZCBiZSByZXF1aXJlZCBmb3IgdGhlIHByb3ZpZGVyIHNlcnZpY2UuIFRoZSBDb25maWd1cmF0aW9uIG11c3QgYmUgaW4gSlNPTiBzdHJpbmcgZm9ybWF0XG4gKi9cblByb3ZpZGVyQ29uZmlndXJhdGlvbj86IHtcbi8qKlxuICogVGhpcyBpbnRlcmZhY2Ugd2FzIHJlZmVyZW5jZWQgYnkgYHVuZGVmaW5lZGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXi4rJFwiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG5JbnRlcm1lZGlhdGVTb3VyY2VDb25maWd1cmF0aW9uPzogSW50ZXJtZWRpYXRlU291cmNlQ29uZmlndXJhdGlvblxufVxuZXhwb3J0IGludGVyZmFjZSBJbnRlcm1lZGlhdGVTb3VyY2VDb25maWd1cmF0aW9uIHtcbi8qKlxuICogVGhlIHMzIHBhdGggdGhhdCB3b3VsZCBiZSB1c2VkIHRvIHN0YWdlIHRoZSBpbnRlcm1lZGlhdGUgZGF0YSBiZWluZyBnZW5lcmF0ZWQgZHVyaW5nIHdvcmtmbG93IGV4ZWN1dGlvbi5cbiAqL1xuSW50ZXJtZWRpYXRlUzNQYXRoOiBzdHJpbmdcbn1cbi8qKlxuICogQSBrZXktdmFsdWUgcGFpciB0byBhc3NvY2lhdGUgd2l0aCBhIHJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIGtleSBuYW1lIG9mIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMSB0byAxMjggVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAwIHRvIDI1NiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLS5cbiAqL1xuVmFsdWU6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBJbmNyZW1lbnRhbFJ1bkNvbmZpZyB7XG5JbmNyZW1lbnRhbFJ1blR5cGU6IFwiSU1NRURJQVRFXCJcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVudGl0eXJlc29sdXRpb24tbWF0Y2hpbmd3b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1lbnRpdHlyZXNvbHV0aW9uLW1hdGNoaW5nd29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEF0dHJpYnV0ZU5hbWUgPSBzdHJpbmdcbmV4cG9ydCB0eXBlIEtNU0FybiA9IHN0cmluZ1xuZXhwb3J0IHR5cGUgQ3VzdG9tZXJQcm9maWxlc0RvbWFpbkFybiA9IHN0cmluZ1xuZXhwb3J0IHR5cGUgQ3VzdG9tZXJQcm9maWxlc09iamVjdFR5cGVBcm4gPSBzdHJpbmdcbmV4cG9ydCB0eXBlIFJlc29sdXRpb25UeXBlID0gKFwiUlVMRV9NQVRDSElOR1wiIHwgXCJNTF9NQVRDSElOR1wiIHwgXCJQUk9WSURFUlwiKVxuLyoqXG4gKiBUaGUgZGVmYXVsdCBNYXRjaGluZ1dvcmtmbG93IGFyblxuICovXG5leHBvcnQgdHlwZSBNYXRjaGluZ1dvcmtmbG93QXJuID0gc3RyaW5nXG4vKipcbiAqIFRoZSB0aW1lIG9mIHRoaXMgTWF0Y2hpbmdXb3JrZmxvdyBnb3QgY3JlYXRlZFxuICovXG5leHBvcnQgdHlwZSBDcmVhdGVkQXQgPSBzdHJpbmdcbi8qKlxuICogVGhlIHRpbWUgb2YgdGhpcyBNYXRjaGluZ1dvcmtmbG93IGdvdCBsYXN0IHVwZGF0ZWQgYXRcbiAqL1xuZXhwb3J0IHR5cGUgVXBkYXRlZEF0ID0gc3RyaW5nXG5cbi8qKlxuICogTWF0Y2hpbmdXb3JrZmxvdyBkZWZpbmVkIGluIEFXUyBFbnRpdHkgUmVzb2x1dGlvbiBzZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19FTlRJVFlSRVNPTFVUSU9OX01BVENISU5HV09SS0ZMT1cge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgTWF0Y2hpbmdXb3JrZmxvd1xuICovXG5Xb3JrZmxvd05hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIE1hdGNoaW5nV29ya2Zsb3dcbiAqL1xuRGVzY3JpcHRpb24/OiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5JbnB1dFNvdXJjZUNvbmZpZzogSW5wdXRTb3VyY2VbXVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDFcbiAqL1xuT3V0cHV0U291cmNlQ29uZmlnOiBPdXRwdXRTb3VyY2VbXVxuUmVzb2x1dGlvblRlY2huaXF1ZXM6IFJlc29sdXRpb25UZWNobmlxdWVzXG5Sb2xlQXJuOiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAyMDBcbiAqL1xuVGFncz86IFRhZ1tdXG5Xb3JrZmxvd0Fybj86IE1hdGNoaW5nV29ya2Zsb3dBcm5cbkNyZWF0ZWRBdD86IENyZWF0ZWRBdFxuVXBkYXRlZEF0PzogVXBkYXRlZEF0XG5JbmNyZW1lbnRhbFJ1bkNvbmZpZz86IEluY3JlbWVudGFsUnVuQ29uZmlnXG59XG5leHBvcnQgaW50ZXJmYWNlIElucHV0U291cmNlIHtcbi8qKlxuICogQW4gR2x1ZSB0YWJsZSBBUk4gZm9yIHRoZSBpbnB1dCBzb3VyY2UgdGFibGVcbiAqL1xuSW5wdXRTb3VyY2VBUk46IHN0cmluZ1xuLyoqXG4gKiBUaGUgU2NoZW1hTWFwcGluZyBhcm4gYXNzb2NpYXRlZCB3aXRoIHRoZSBTY2hlbWFcbiAqL1xuU2NoZW1hQXJuOiBzdHJpbmdcbkFwcGx5Tm9ybWFsaXphdGlvbj86IGJvb2xlYW5cbn1cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0U291cmNlIHtcbi8qKlxuICogVGhlIFMzIHBhdGggdG8gd2hpY2ggRW50aXR5IFJlc29sdXRpb24gd2lsbCB3cml0ZSB0aGUgb3V0cHV0IHRhYmxlXG4gKi9cbk91dHB1dFMzUGF0aD86IHN0cmluZ1xuLyoqXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDc1MFxuICovXG5PdXRwdXQ6IE91dHB1dEF0dHJpYnV0ZVtdXG5LTVNBcm4/OiBLTVNBcm5cbkFwcGx5Tm9ybWFsaXphdGlvbj86IGJvb2xlYW5cbkN1c3RvbWVyUHJvZmlsZXNJbnRlZ3JhdGlvbkNvbmZpZz86IEN1c3RvbWVyUHJvZmlsZXNJbnRlZ3JhdGlvbkNvbmZpZ1xufVxuZXhwb3J0IGludGVyZmFjZSBPdXRwdXRBdHRyaWJ1dGUge1xuTmFtZTogQXR0cmlidXRlTmFtZVxuSGFzaGVkPzogYm9vbGVhblxufVxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lclByb2ZpbGVzSW50ZWdyYXRpb25Db25maWcge1xuRG9tYWluQXJuOiBDdXN0b21lclByb2ZpbGVzRG9tYWluQXJuXG5PYmplY3RUeXBlQXJuOiBDdXN0b21lclByb2ZpbGVzT2JqZWN0VHlwZUFyblxufVxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHV0aW9uVGVjaG5pcXVlcyB7XG5SZXNvbHV0aW9uVHlwZT86IFJlc29sdXRpb25UeXBlXG5SdWxlQmFzZWRQcm9wZXJ0aWVzPzogUnVsZUJhc2VkUHJvcGVydGllc1xuUnVsZUNvbmRpdGlvblByb3BlcnRpZXM/OiBSdWxlQ29uZGl0aW9uUHJvcGVydGllc1xuUHJvdmlkZXJQcm9wZXJ0aWVzPzogUHJvdmlkZXJQcm9wZXJ0aWVzXG59XG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVCYXNlZFByb3BlcnRpZXMge1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDI1XG4gKi9cblJ1bGVzOiBSdWxlW11cbkF0dHJpYnV0ZU1hdGNoaW5nTW9kZWw6IChcIk9ORV9UT19PTkVcIiB8IFwiTUFOWV9UT19NQU5ZXCIpXG5NYXRjaFB1cnBvc2U/OiAoXCJJREVOVElGSUVSX0dFTkVSQVRJT05cIiB8IFwiSU5ERVhJTkdcIilcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZSB7XG5SdWxlTmFtZTogc3RyaW5nXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTVcbiAqL1xuTWF0Y2hpbmdLZXlzOiBBdHRyaWJ1dGVOYW1lW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUNvbmRpdGlvblByb3BlcnRpZXMge1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDI1XG4gKi9cblJ1bGVzOiBSdWxlQ29uZGl0aW9uW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUNvbmRpdGlvbiB7XG5SdWxlTmFtZT86IEF0dHJpYnV0ZU5hbWVcbkNvbmRpdGlvbj86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlclByb3BlcnRpZXMge1xuLyoqXG4gKiBBcm4gb2YgdGhlIFByb3ZpZGVyIHNlcnZpY2UgYmVpbmcgdXNlZC5cbiAqL1xuUHJvdmlkZXJTZXJ2aWNlQXJuOiBzdHJpbmdcbi8qKlxuICogQWRkaXRpb25hbCBQcm92aWRlciBjb25maWd1cmF0aW9uIHRoYXQgd291bGQgYmUgcmVxdWlyZWQgZm9yIHRoZSBwcm92aWRlciBzZXJ2aWNlLiBUaGUgQ29uZmlndXJhdGlvbiBtdXN0IGJlIGluIEpTT04gc3RyaW5nIGZvcm1hdFxuICovXG5Qcm92aWRlckNvbmZpZ3VyYXRpb24/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIl4uKyRcIi5cbiAqL1xuW2s6IHN0cmluZ106IHN0cmluZ1xufVxuSW50ZXJtZWRpYXRlU291cmNlQ29uZmlndXJhdGlvbj86IEludGVybWVkaWF0ZVNvdXJjZUNvbmZpZ3VyYXRpb25cbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJtZWRpYXRlU291cmNlQ29uZmlndXJhdGlvbiB7XG4vKipcbiAqIFRoZSBzMyBwYXRoIHRoYXQgd291bGQgYmUgdXNlZCB0byBzdGFnZSB0aGUgaW50ZXJtZWRpYXRlIGRhdGEgYmVpbmcgZ2VuZXJhdGVkIGR1cmluZyB3b3JrZmxvdyBleGVjdXRpb24uXG4gKi9cbkludGVybWVkaWF0ZVMzUGF0aDogc3RyaW5nXG59XG4vKipcbiAqIEEga2V5LXZhbHVlIHBhaXIgdG8gYXNzb2NpYXRlIHdpdGggYSByZXNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSBrZXkgbmFtZSBvZiB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMTI4IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLlxuICovXG5LZXk6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW5jcmVtZW50YWxSdW5Db25maWcge1xuSW5jcmVtZW50YWxSdW5UeXBlOiBcIklNTUVESUFURVwiXG59XG4iXX0=