@microsoft/terraform-cdk-constructs 1.10.0 → 2.5.0
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.
- package/.jsii +51855 -36874
- package/API.md +62102 -40530
- package/README.md +15 -0
- package/docs/azure-api-version-update-pipeline.md +271 -0
- package/lib/azure-actiongroup/lib/action-group.d.ts +3 -3
- package/lib/azure-actiongroup/lib/action-group.js +5 -5
- package/lib/azure-actiongroup/test/action-group.integ.d.ts +1 -1
- package/lib/azure-actiongroup/test/action-group.integ.js +5 -5
- package/lib/azure-actiongroup/test/action-group.spec.js +9 -9
- package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +3 -3
- package/lib/azure-activitylogalert/lib/activity-log-alert.js +5 -5
- package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +1 -1
- package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +6 -6
- package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +9 -9
- package/lib/azure-aks/lib/aks-cluster.d.ts +6 -6
- package/lib/azure-aks/lib/aks-cluster.js +8 -8
- package/lib/azure-aks/test/aks-cluster.integ.d.ts +1 -1
- package/lib/azure-aks/test/aks-cluster.integ.js +5 -5
- package/lib/azure-aks/test/aks-cluster.spec.js +12 -12
- package/lib/azure-applicationinsights/lib/application-insights.d.ts +6 -6
- package/lib/azure-applicationinsights/lib/application-insights.js +8 -8
- package/lib/azure-applicationinsights/test/application-insights.integ.d.ts +1 -1
- package/lib/azure-applicationinsights/test/application-insights.integ.js +6 -6
- package/lib/azure-applicationinsights/test/application-insights.spec.js +5 -5
- package/lib/azure-containerapps/lib/container-app-environment.d.ts +8 -8
- package/lib/azure-containerapps/lib/container-app-environment.js +10 -10
- package/lib/azure-containerapps/lib/container-app.d.ts +9 -9
- package/lib/azure-containerapps/lib/container-app.js +11 -11
- package/lib/azure-containerapps/lib/container-apps-job-schemas.d.ts +8 -0
- package/lib/azure-containerapps/lib/container-apps-job-schemas.js +179 -0
- package/lib/azure-containerapps/lib/container-apps-job.d.ts +128 -0
- package/lib/azure-containerapps/lib/container-apps-job.js +81 -0
- package/lib/azure-containerapps/lib/index.d.ts +2 -0
- package/lib/azure-containerapps/lib/index.js +3 -1
- package/lib/azure-containerapps/test/container-app-environment.integ.d.ts +1 -1
- package/lib/azure-containerapps/test/container-app-environment.integ.js +5 -5
- package/lib/azure-containerapps/test/container-app-environment.spec.js +19 -19
- package/lib/azure-containerapps/test/container-app.integ.d.ts +1 -1
- package/lib/azure-containerapps/test/container-app.integ.js +5 -5
- package/lib/azure-containerapps/test/container-app.spec.js +30 -30
- package/lib/azure-containerapps/test/container-apps-job.integ.d.ts +6 -0
- package/lib/azure-containerapps/test/container-apps-job.integ.js +95 -0
- package/lib/azure-containerapps/test/container-apps-job.spec.d.ts +1 -0
- package/lib/azure-containerapps/test/container-apps-job.spec.js +261 -0
- package/lib/azure-containerregistry/lib/container-registry.d.ts +6 -6
- package/lib/azure-containerregistry/lib/container-registry.js +8 -8
- package/lib/azure-containerregistry/test/container-registry.integ.d.ts +1 -1
- package/lib/azure-containerregistry/test/container-registry.integ.js +5 -5
- package/lib/azure-containerregistry/test/container-registry.spec.js +11 -11
- package/lib/azure-cosmosdb/lib/cosmos-db.d.ts +6 -6
- package/lib/azure-cosmosdb/lib/cosmos-db.js +8 -8
- package/lib/azure-cosmosdb/test/cosmos-db.integ.d.ts +1 -1
- package/lib/azure-cosmosdb/test/cosmos-db.integ.js +5 -5
- package/lib/azure-cosmosdb/test/cosmos-db.spec.js +11 -11
- package/lib/azure-dataexplorer/index.d.ts +1 -0
- package/lib/azure-dataexplorer/index.js +18 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.d.ts +5 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.js +131 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster.d.ts +54 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster.js +91 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.d.ts +5 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.js +78 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database.d.ts +24 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database.js +68 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.d.ts +5 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.js +94 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table.d.ts +25 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table.js +62 -0
- package/lib/azure-dataexplorer/lib/index.d.ts +6 -0
- package/lib/azure-dataexplorer/lib/index.js +23 -0
- package/lib/azure-dataexplorer/test/data-explorer.integ.d.ts +1 -0
- package/lib/azure-dataexplorer/test/data-explorer.integ.js +78 -0
- package/lib/azure-dataexplorer/test/data-explorer.spec.d.ts +1 -0
- package/lib/azure-dataexplorer/test/data-explorer.spec.js +248 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +3 -3
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +5 -5
- package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +9 -9
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +7 -7
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +9 -9
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +4 -4
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +6 -6
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +4 -4
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +6 -6
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +1 -1
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +5 -5
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +11 -11
- package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +14 -14
- package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +12 -12
- package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +8 -8
- package/lib/azure-dnsresolver/lib/dns-resolver.js +10 -10
- package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +6 -6
- package/lib/azure-dnsresolver/lib/inbound-endpoint.js +8 -8
- package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +7 -7
- package/lib/azure-dnsresolver/lib/outbound-endpoint.js +9 -9
- package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +1 -1
- package/lib/azure-dnsresolver/test/dns-resolver.integ.js +5 -5
- package/lib/azure-dnsresolver/test/dns-resolver.spec.js +11 -11
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +1 -1
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +5 -5
- package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +12 -12
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +1 -1
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +5 -5
- package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +9 -9
- package/lib/azure-dnszone/lib/dns-zone.d.ts +6 -6
- package/lib/azure-dnszone/lib/dns-zone.js +8 -8
- package/lib/azure-dnszone/lib/records/dns-records.d.ts +31 -31
- package/lib/azure-dnszone/lib/records/dns-records.js +42 -42
- package/lib/azure-dnszone/test/dns-records.integ.d.ts +1 -1
- package/lib/azure-dnszone/test/dns-records.integ.js +5 -5
- package/lib/azure-dnszone/test/dns-records.spec.js +57 -57
- package/lib/azure-dnszone/test/dns-zone.integ.d.ts +1 -1
- package/lib/azure-dnszone/test/dns-zone.integ.js +5 -5
- package/lib/azure-dnszone/test/dns-zone.spec.js +11 -11
- package/lib/azure-eventgrideventsubscription/index.d.ts +1 -0
- package/lib/azure-eventgrideventsubscription/index.js +18 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.d.ts +5 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.js +151 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.d.ts +59 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.js +67 -0
- package/lib/azure-eventgrideventsubscription/lib/index.d.ts +2 -0
- package/lib/azure-eventgrideventsubscription/lib/index.js +19 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.d.ts +1 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.js +100 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.d.ts +1 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.js +242 -0
- package/lib/azure-eventgridsystemtopic/index.d.ts +1 -0
- package/lib/azure-eventgridsystemtopic/index.js +18 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.d.ts +5 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.js +164 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.d.ts +46 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.js +68 -0
- package/lib/azure-eventgridsystemtopic/lib/index.d.ts +2 -0
- package/lib/azure-eventgridsystemtopic/lib/index.js +19 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.d.ts +1 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.js +64 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.d.ts +1 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.js +241 -0
- package/lib/azure-eventhub/index.d.ts +7 -0
- package/lib/azure-eventhub/index.js +24 -0
- package/lib/azure-eventhub/lib/event-hub-namespace.d.ts +204 -0
- package/lib/azure-eventhub/lib/event-hub-namespace.js +178 -0
- package/lib/azure-eventhub/lib/event-hub-schemas.d.ts +63 -0
- package/lib/azure-eventhub/lib/event-hub-schemas.js +370 -0
- package/lib/azure-eventhub/lib/event-hub.d.ts +153 -0
- package/lib/azure-eventhub/lib/event-hub.js +171 -0
- package/lib/azure-eventhub/lib/index.d.ts +6 -0
- package/lib/azure-eventhub/lib/index.js +23 -0
- package/lib/azure-eventhub/test/event-hub.integ.d.ts +9 -0
- package/lib/azure-eventhub/test/event-hub.integ.js +113 -0
- package/lib/azure-eventhub/test/event-hub.spec.d.ts +8 -0
- package/lib/azure-eventhub/test/event-hub.spec.js +438 -0
- package/lib/azure-functionapp/lib/function-app.d.ts +6 -6
- package/lib/azure-functionapp/lib/function-app.js +8 -8
- package/lib/azure-functionapp/test/function-app.integ.d.ts +1 -1
- package/lib/azure-functionapp/test/function-app.integ.js +5 -5
- package/lib/azure-functionapp/test/function-app.spec.js +12 -12
- package/lib/azure-keyvault/lib/key-vault.d.ts +6 -6
- package/lib/azure-keyvault/lib/key-vault.js +8 -8
- package/lib/azure-keyvault/test/key-vault.integ.d.ts +1 -1
- package/lib/azure-keyvault/test/key-vault.integ.js +5 -5
- package/lib/azure-keyvault/test/key-vault.spec.js +11 -11
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +1 -1
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +3 -3
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +1 -1
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +6 -6
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +6 -6
- package/lib/azure-metricalert/lib/metric-alert.d.ts +3 -3
- package/lib/azure-metricalert/lib/metric-alert.js +5 -5
- package/lib/azure-metricalert/test/metric-alert.integ.d.ts +1 -1
- package/lib/azure-metricalert/test/metric-alert.integ.js +5 -5
- package/lib/azure-metricalert/test/metric-alert.spec.js +9 -9
- package/lib/azure-networkinterface/lib/network-interface.d.ts +5 -5
- package/lib/azure-networkinterface/lib/network-interface.js +7 -7
- package/lib/azure-networkinterface/test/network-interface.integ.d.ts +1 -1
- package/lib/azure-networkinterface/test/network-interface.integ.js +5 -5
- package/lib/azure-networkinterface/test/network-interface.spec.js +11 -11
- package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +6 -6
- package/lib/azure-networksecuritygroup/lib/network-security-group.js +8 -8
- package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +1 -1
- package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +5 -5
- package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +12 -12
- package/lib/azure-networkwatcher/lib/network-watcher.d.ts +1 -1
- package/lib/azure-networkwatcher/lib/network-watcher.js +3 -3
- package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +1 -1
- package/lib/azure-networkwatcher/test/network-watcher.integ.js +6 -6
- package/lib/azure-networkwatcher/test/network-watcher.spec.js +6 -6
- package/lib/azure-policyassignment/lib/policy-assignment.d.ts +3 -3
- package/lib/azure-policyassignment/lib/policy-assignment.js +5 -5
- package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +1 -1
- package/lib/azure-policyassignment/test/policy-assignment.integ.js +5 -5
- package/lib/azure-policyassignment/test/policy-assignment.spec.js +12 -12
- package/lib/azure-policydefinition/lib/policy-definition.d.ts +3 -3
- package/lib/azure-policydefinition/lib/policy-definition.js +5 -5
- package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +1 -1
- package/lib/azure-policydefinition/test/policy-definition.integ.js +5 -5
- package/lib/azure-policydefinition/test/policy-definition.spec.js +19 -19
- package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +1 -1
- package/lib/azure-policysetdefinition/lib/policy-set-definition.js +3 -3
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +1 -1
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +6 -6
- package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +6 -6
- package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +10 -10
- package/lib/azure-privatednszone/lib/private-dns-zone.js +12 -12
- package/lib/azure-privatednszone/lib/records/private-dns-records.d.ts +25 -25
- package/lib/azure-privatednszone/lib/records/private-dns-records.js +34 -34
- package/lib/azure-privatednszone/test/private-dns-records.integ.d.ts +1 -1
- package/lib/azure-privatednszone/test/private-dns-records.integ.js +5 -5
- package/lib/azure-privatednszone/test/private-dns-records.spec.js +49 -49
- package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +1 -1
- package/lib/azure-privatednszone/test/private-dns-zone.integ.js +5 -5
- package/lib/azure-privatednszone/test/private-dns-zone.spec.js +12 -12
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +6 -6
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +8 -8
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +1 -1
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +5 -5
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +12 -12
- package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +5 -5
- package/lib/azure-publicipaddress/lib/public-ip-address.js +7 -7
- package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +1 -1
- package/lib/azure-publicipaddress/test/public-ip-address.integ.js +6 -6
- package/lib/azure-publicipaddress/test/public-ip-address.spec.js +11 -11
- package/lib/azure-resourcegroup/lib/resource-group.d.ts +5 -5
- package/lib/azure-resourcegroup/lib/resource-group.js +7 -7
- package/lib/azure-resourcegroup/test/resource-group.integ.d.ts +1 -1
- package/lib/azure-resourcegroup/test/resource-group.integ.js +5 -5
- package/lib/azure-resourcegroup/test/resource-group.spec.js +14 -14
- package/lib/azure-roleassignment/lib/role-assignment.d.ts +3 -3
- package/lib/azure-roleassignment/lib/role-assignment.js +5 -5
- package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +1 -1
- package/lib/azure-roleassignment/test/role-assignment.integ.js +5 -5
- package/lib/azure-roleassignment/test/role-assignment.spec.js +12 -12
- package/lib/azure-roledefinition/lib/role-definition.d.ts +3 -3
- package/lib/azure-roledefinition/lib/role-definition.js +5 -5
- package/lib/azure-roledefinition/test/role-definition.integ.d.ts +1 -1
- package/lib/azure-roledefinition/test/role-definition.integ.js +5 -5
- package/lib/azure-roledefinition/test/role-definition.spec.js +12 -12
- package/lib/azure-sreagent/lib/sre-agent.d.ts +8 -8
- package/lib/azure-sreagent/lib/sre-agent.js +10 -10
- package/lib/azure-sreagent/test/sre-agent.integ.d.ts +1 -1
- package/lib/azure-sreagent/test/sre-agent.integ.js +5 -5
- package/lib/azure-sreagent/test/sre-agent.spec.js +11 -11
- package/lib/azure-staticwebapp/lib/static-web-app.d.ts +6 -6
- package/lib/azure-staticwebapp/lib/static-web-app.js +8 -8
- package/lib/azure-staticwebapp/test/static-web-app.integ.d.ts +1 -1
- package/lib/azure-staticwebapp/test/static-web-app.integ.js +6 -6
- package/lib/azure-staticwebapp/test/static-web-app.spec.js +12 -12
- package/lib/azure-storageaccount/lib/storage-account.d.ts +6 -6
- package/lib/azure-storageaccount/lib/storage-account.js +8 -8
- package/lib/azure-storageaccount/test/storage-account.integ.d.ts +1 -1
- package/lib/azure-storageaccount/test/storage-account.integ.js +5 -5
- package/lib/azure-storageaccount/test/storage-account.spec.js +11 -11
- package/lib/azure-storageblobcontainer/index.d.ts +1 -0
- package/lib/azure-storageblobcontainer/index.js +18 -0
- package/lib/azure-storageblobcontainer/lib/index.d.ts +2 -0
- package/lib/azure-storageblobcontainer/lib/index.js +19 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.d.ts +5 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.js +108 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container.d.ts +37 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container.js +63 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.d.ts +1 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.js +60 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.d.ts +1 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.js +172 -0
- package/lib/azure-subnet/lib/subnet.d.ts +3 -3
- package/lib/azure-subnet/lib/subnet.js +5 -5
- package/lib/azure-subnet/test/subnet.integ.d.ts +1 -1
- package/lib/azure-subnet/test/subnet.integ.js +5 -5
- package/lib/azure-subnet/test/subnet.spec.js +9 -9
- package/lib/azure-userassignedidentity/index.d.ts +1 -0
- package/lib/azure-userassignedidentity/index.js +18 -0
- package/lib/azure-userassignedidentity/lib/index.d.ts +2 -0
- package/lib/azure-userassignedidentity/lib/index.js +19 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.d.ts +8 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.js +107 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity.d.ts +37 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity.js +85 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.d.ts +1 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.js +64 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.d.ts +1 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.js +241 -0
- package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +6 -6
- package/lib/azure-virtualmachine/lib/virtual-machine.js +8 -8
- package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +1 -1
- package/lib/azure-virtualmachine/test/virtual-machine.integ.js +5 -5
- package/lib/azure-virtualmachine/test/virtual-machine.spec.js +17 -17
- package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +6 -6
- package/lib/azure-virtualnetwork/lib/virtual-network.js +8 -8
- package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +1 -1
- package/lib/azure-virtualnetwork/test/virtual-network.integ.js +5 -5
- package/lib/azure-virtualnetwork/test/virtual-network.spec.js +12 -12
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +5 -5
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +7 -7
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.d.ts +1 -1
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.js +5 -5
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.spec.js +13 -13
- package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.d.ts +5 -5
- package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +7 -7
- package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.d.ts +1 -1
- package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.js +5 -5
- package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.spec.js +20 -20
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/network-group.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +7 -7
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +9 -9
- package/lib/azure-virtualnetworkmanager/test/ipam-pool-static-cidr.spec.js +17 -17
- package/lib/azure-virtualnetworkmanager/test/ipam-pool.spec.js +15 -15
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +1 -1
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +5 -5
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +57 -57
- package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +72 -7
- package/lib/azure-vmss/lib/virtual-machine-scale-set.js +147 -8
- package/lib/azure-vmss/lib/vmss-schemas.d.ts +195 -0
- package/lib/azure-vmss/lib/vmss-schemas.js +33 -1
- package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +1 -1
- package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +5 -5
- package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +474 -12
- package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +6 -6
- package/lib/core-azure/lib/azapi/azapi-resource.d.ts +7 -7
- package/lib/core-azure/lib/azapi/azapi-resource.js +6 -6
- package/lib/core-azure/lib/azapi/azapi-resource.spec.js +7 -7
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +12 -12
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +15 -15
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +35 -35
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +58 -58
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +25 -25
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +49 -49
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +13 -13
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +22 -22
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +24 -24
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +40 -40
- package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +44 -44
- package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +72 -72
- package/lib/core-azure/lib/azapi/providers-azapi/index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +54 -54
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +86 -86
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +65 -65
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +102 -102
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +25 -25
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +62 -62
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +36 -36
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +69 -69
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
- package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
- package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
- package/lib/index.d.ts +26 -0
- package/lib/index.js +28 -2
- package/lib/testing/index.d.ts +1 -1
- package/lib/testing/index.js +25 -8
- package/lib/testing/lib/cleanup.js +1 -1
- package/lib/testing/lib/metadata.js +12 -4
- package/lib/testing/lib/naming.js +57 -1
- package/package.json +10 -22
- package/scripts/azure-version-updater/create-issue.ts +189 -0
- package/scripts/azure-version-updater/discover.ts +382 -0
- package/scripts/azure-version-updater/spec-mapping.ts +164 -0
- package/scripts/azure-version-updater/tsconfig.json +11 -0
- package/setup.js +2 -2
|
@@ -7,15 +7,15 @@
|
|
|
7
7
|
* destination configurations, property transformation, and resource creation.
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
const
|
|
11
|
-
const
|
|
10
|
+
const cdktn_1 = require("cdktn");
|
|
11
|
+
const cdktn = require("cdktn");
|
|
12
12
|
const diagnostic_settings_1 = require("../lib/diagnostic-settings");
|
|
13
13
|
describe("DiagnosticSettings - Implementation", () => {
|
|
14
14
|
let app;
|
|
15
15
|
let stack;
|
|
16
16
|
beforeEach(() => {
|
|
17
|
-
app =
|
|
18
|
-
stack = new
|
|
17
|
+
app = cdktn_1.Testing.app();
|
|
18
|
+
stack = new cdktn.TerraformStack(app, "TestStack");
|
|
19
19
|
});
|
|
20
20
|
// =============================================================================
|
|
21
21
|
// Constructor and Basic Properties
|
|
@@ -325,8 +325,8 @@ describe("DiagnosticSettings - Implementation", () => {
|
|
|
325
325
|
targetResourceId: "/subscriptions/test-sub/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/test-vm",
|
|
326
326
|
workspaceId: "/subscriptions/test-sub/resourceGroups/test-rg/providers/Microsoft.OperationalInsights/workspaces/test-workspace",
|
|
327
327
|
});
|
|
328
|
-
expect(diagnostics.idOutput).toBeInstanceOf(
|
|
329
|
-
expect(diagnostics.nameOutput).toBeInstanceOf(
|
|
328
|
+
expect(diagnostics.idOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
329
|
+
expect(diagnostics.nameOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
330
330
|
expect(diagnostics.id).toMatch(/^\$\{.*\.id\}$/);
|
|
331
331
|
});
|
|
332
332
|
});
|
|
@@ -346,7 +346,7 @@ describe("DiagnosticSettings - Implementation", () => {
|
|
|
346
346
|
},
|
|
347
347
|
],
|
|
348
348
|
});
|
|
349
|
-
const synthesized =
|
|
349
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
350
350
|
expect(synthesized).toBeDefined();
|
|
351
351
|
const stackConfig = JSON.parse(synthesized);
|
|
352
352
|
expect(stackConfig.resource).toBeDefined();
|
|
@@ -365,7 +365,7 @@ describe("DiagnosticSettings - Implementation", () => {
|
|
|
365
365
|
});
|
|
366
366
|
expect(diagnostics1.resolvedApiVersion).toBe("2021-05-01-preview");
|
|
367
367
|
expect(diagnostics2.resolvedApiVersion).toBe("2016-09-01");
|
|
368
|
-
const synthesized =
|
|
368
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
369
369
|
expect(synthesized).toBeDefined();
|
|
370
370
|
});
|
|
371
371
|
});
|
|
@@ -429,4 +429,4 @@ describe("DiagnosticSettings - Implementation", () => {
|
|
|
429
429
|
});
|
|
430
430
|
});
|
|
431
431
|
});
|
|
432
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc3RpYy1zZXR0aW5ncy5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWRpYWdub3N0aWNzZXR0aW5ncy90ZXN0L2RpYWdub3N0aWMtc2V0dGluZ3Muc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILGlDQUFnQztBQUNoQywrQkFBK0I7QUFLL0Isb0VBR29DO0FBRXBDLFFBQVEsQ0FBQyxxQ0FBcUMsRUFBRSxHQUFHLEVBQUU7SUFDbkQsSUFBSSxHQUFjLENBQUM7SUFDbkIsSUFBSSxLQUEyQixDQUFDO0lBRWhDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0lBRUgsZ0ZBQWdGO0lBQ2hGLG1DQUFtQztJQUNuQyxnRkFBZ0Y7SUFFaEYsUUFBUSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxFQUFFLENBQUMsZ0VBQWdFLEVBQUUsR0FBRyxFQUFFO1lBQ3hFLE1BQU0sS0FBSyxHQUE0QjtnQkFDckMsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsZ0JBQWdCLEVBQ2Qsb0dBQW9HO2dCQUN0RyxXQUFXLEVBQ1Qsa0hBQWtIO2FBQ3JILENBQUM7WUFFRixNQUFNLFdBQVcsR0FBRyxJQUFJLHdDQUFrQixDQUN4QyxLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLEtBQUssQ0FDTixDQUFDO1lBRUYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyx3Q0FBa0IsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxX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QUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RCxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLElBQUksQ0FDOUQsV0FBVyxDQUNaLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXByZWhlbnNpdmUgdGVzdHMgZm9yIHRoZSBEaWFnbm9zdGljU2V0dGluZ3MgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVzIHRoZSBEaWFnbm9zdGljU2V0dGluZ3MgY2xhc3MgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrLlxuICogVGVzdHMgY292ZXIgYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbiwgZXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nLCBzY2hlbWEgdmFsaWRhdGlvbixcbiAqIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb25zLCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiwgYW5kIHJlc291cmNlIGNyZWF0aW9uLlxuICovXG5cbmltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHtcbiAgRGlhZ25vc3RpY0xvZ0NvbmZpZyxcbiAgRGlhZ25vc3RpY01ldHJpY0NvbmZpZyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQge1xuICBEaWFnbm9zdGljU2V0dGluZ3MsXG4gIERpYWdub3N0aWNTZXR0aW5nc1Byb3BzLFxufSBmcm9tIFwiLi4vbGliL2RpYWdub3N0aWMtc2V0dGluZ3NcIjtcblxuZGVzY3JpYmUoXCJEaWFnbm9zdGljU2V0dGluZ3MgLSBJbXBsZW1lbnRhdGlvblwiLCAoKSA9PiB7XG4gIGxldCBhcHA6IGNka3RmLkFwcDtcbiAgbGV0IHN0YWNrOiBjZGt0Zi5UZXJyYWZvcm1TdGFjaztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIHN0YWNrID0gbmV3IGNka3RmLlRlcnJhZm9ybVN0YWNrKGFwcCwgXCJUZXN0U3RhY2tcIik7XG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIENvbnN0cnVjdG9yIGFuZCBCYXNpYyBQcm9wZXJ0aWVzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgZGVzY3JpYmUoXCJDb25zdHJ1Y3RvciBhbmQgQmFzaWMgUHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGRpYWdub3N0aWMgc2V0dGluZ3Mgd2l0aCBMb2cgQW5hbHl0aWNzIHdvcmtzcGFjZVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogRGlhZ25vc3RpY1NldHRpbmdzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1kaWFnbm9zdGljc1wiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3Rlc3Qtdm1cIixcbiAgICAgICAgd29ya3NwYWNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuT3BlcmF0aW9uYWxJbnNpZ2h0cy93b3Jrc3BhY2VzL3Rlc3Qtd29ya3NwYWNlXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBkaWFnbm9zdGljcyA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3MoXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3REaWFnbm9zdGljc1wiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcykudG9CZUluc3RhbmNlT2YoRGlhZ25vc3RpY1NldHRpbmdzKTtcbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcykudG9CZShwcm9wcyk7XG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMubmFtZSkudG9CZShcInRlc3QtZGlhZ25vc3RpY3NcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgZGlhZ25vc3RpYyBzZXR0aW5ncyB3aXRoIHN0b3JhZ2UgYWNjb3VudFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogRGlhZ25vc3RpY1NldHRpbmdzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwic3RvcmFnZS1kaWFnbm9zdGljc1wiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3Rlc3Qtc3RvcmFnZVwiLFxuICAgICAgICBzdG9yYWdlQWNjb3VudElkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL2FyY2hpdmUtc3RvcmFnZVwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJTdG9yYWdlRGlhZ25vc3RpY3NcIixcbiAgICAgICAgcHJvcHMsXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMuc3RvcmFnZUFjY291bnRJZCkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBkaWFnbm9zdGljIHNldHRpbmdzIHdpdGggZXZlbnQgaHViXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEaWFnbm9zdGljU2V0dGluZ3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJldmVudGh1Yi1kaWFnbm9zdGljc1wiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbmV0d29ya1NlY3VyaXR5R3JvdXBzL3Rlc3QtbnNnXCIsXG4gICAgICAgIGV2ZW50SHViQXV0aG9yaXphdGlvblJ1bGVJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5FdmVudEh1Yi9uYW1lc3BhY2VzL3Rlc3QtZWgvYXV0aG9yaXphdGlvblJ1bGVzL3Rlc3QtcnVsZVwiLFxuICAgICAgICBldmVudEh1Yk5hbWU6IFwibW9uaXRvcmluZy1odWJcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNTZXR0aW5ncyhcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiRXZlbnRIdWJEaWFnbm9zdGljc1wiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcy5ldmVudEh1YkF1dGhvcml6YXRpb25SdWxlSWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMuZXZlbnRIdWJOYW1lKS50b0JlKFwibW9uaXRvcmluZy1odWJcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgZGlhZ25vc3RpYyBzZXR0aW5ncyB3aXRoIG11bHRpcGxlIGRlc3RpbmF0aW9uc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogRGlhZ25vc3RpY1NldHRpbmdzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwibXVsdGktZGVzdGluYXRpb24tZGlhZ25vc3RpY3NcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5TcWwvc2VydmVycy90ZXN0LXNxbFwiLFxuICAgICAgICB3b3Jrc3BhY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdC13b3Jrc3BhY2VcIixcbiAgICAgICAgc3RvcmFnZUFjY291bnRJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9hcmNoaXZlLXN0b3JhZ2VcIixcbiAgICAgICAgZXZlbnRIdWJBdXRob3JpemF0aW9uUnVsZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkV2ZW50SHViL25hbWVzcGFjZXMvdGVzdC1laC9hdXRob3JpemF0aW9uUnVsZXMvdGVzdC1ydWxlXCIsXG4gICAgICAgIGV2ZW50SHViTmFtZTogXCJhdWRpdC1odWJcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNTZXR0aW5ncyhzdGFjaywgXCJNdWx0aURlc3RcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMud29ya3NwYWNlSWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMuc3RvcmFnZUFjY291bnRJZCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcy5ldmVudEh1YkF1dGhvcml6YXRpb25SdWxlSWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFZlcnNpb24gUmVzb2x1dGlvblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGRlc2NyaWJlKFwiVmVyc2lvbiBSZXNvbHV0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCB1c2UgbGF0ZXN0IHZlcnNpb24gMjAyMS0wNS0wMS1wcmV2aWV3IHdoZW4gbm8gdmVyc2lvbiBzcGVjaWZpZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIkRlZmF1bHRWZXJzaW9uXCIsIHtcbiAgICAgICAgbmFtZTogXCJkZWZhdWx0LXZlcnNpb24tZGlhZ25vc3RpY3NcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDIxLTA1LTAxLXByZXZpZXdcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB1c2UgZXhwbGljaXQgc3RhYmxlIHZlcnNpb24gd2hlbiBzcGVjaWZpZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIlN0YWJsZVZlcnNpb25cIiwge1xuICAgICAgICBuYW1lOiBcInN0YWJsZS12ZXJzaW9uLWRpYWdub3N0aWNzXCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZXMvdGVzdC12bVwiLFxuICAgICAgICB3b3Jrc3BhY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdC13b3Jrc3BhY2VcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDE2LTA5LTAxXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMTYtMDktMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB1c2UgcHJldmlldyB2ZXJzaW9uIHdoZW4gZXhwbGljaXRseSBzcGVjaWZpZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIlByZXZpZXdWZXJzaW9uXCIsIHtcbiAgICAgICAgbmFtZTogXCJwcmV2aWV3LXZlcnNpb24tZGlhZ25vc3RpY3NcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjEtMDUtMDEtcHJldmlld1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDIxLTA1LTAxLXByZXZpZXdcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFZhbGlkYXRpb24gVGVzdHNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBkZXNjcmliZShcIlZhbGlkYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHRocm93IGVycm9yIHdoZW4gbm8gZGVzdGluYXRpb24gaXMgc3BlY2lmaWVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEaWFnbm9zdGljU2V0dGluZ3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJuby1kZXN0aW5hdGlvblwiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3Rlc3Qtdm1cIixcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBEaWFnbm9zdGljU2V0dGluZ3Moc3RhY2ssIFwiTm9EZXN0aW5hdGlvblwiLCBwcm9wcyk7XG4gICAgICB9KS50b1Rocm93KC9BdCBsZWFzdCBvbmUgZGVzdGluYXRpb24vKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHRocm93IGVycm9yIHdoZW4gZXZlbnRIdWJBdXRob3JpemF0aW9uUnVsZUlkIHdpdGhvdXQgZXZlbnRIdWJOYW1lXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEaWFnbm9zdGljU2V0dGluZ3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJtaXNzaW5nLWV2ZW50aHViLW5hbWVcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIGV2ZW50SHViQXV0aG9yaXphdGlvblJ1bGVJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5FdmVudEh1Yi9uYW1lc3BhY2VzL3Rlc3QtZWgvYXV0aG9yaXphdGlvblJ1bGVzL3Rlc3QtcnVsZVwiLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgbmV3IERpYWdub3N0aWNTZXR0aW5ncyhzdGFjaywgXCJNaXNzaW5nRXZlbnRIdWJOYW1lXCIsIHByb3BzKTtcbiAgICAgIH0pLnRvVGhyb3coL2V2ZW50SHViTmFtZSBpcyByZXF1aXJlZC8pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgbm90IHRocm93IHdoZW4gZXZlbnRIdWJOYW1lIHByb3ZpZGVkIHdpdGggZXZlbnRIdWJBdXRob3JpemF0aW9uUnVsZUlkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEaWFnbm9zdGljU2V0dGluZ3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ2YWxpZC1ldmVudGh1YlwiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3Rlc3Qtdm1cIixcbiAgICAgICAgZXZlbnRIdWJBdXRob3JpemF0aW9uUnVsZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkV2ZW50SHViL25hbWVzcGFjZXMvdGVzdC1laC9hdXRob3JpemF0aW9uUnVsZXMvdGVzdC1ydWxlXCIsXG4gICAgICAgIGV2ZW50SHViTmFtZTogXCJtb25pdG9yaW5nLWh1YlwiLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgbmV3IERpYWdub3N0aWNTZXR0aW5ncyhzdGFjaywgXCJWYWxpZEV2ZW50SHViXCIsIHByb3BzKTtcbiAgICAgIH0pLm5vdC50b1Rocm93KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIExvZyBhbmQgTWV0cmljIENvbmZpZ3VyYXRpb25cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBkZXNjcmliZShcIkxvZyBhbmQgTWV0cmljIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSBsb2dzIHdpdGggc3BlY2lmaWMgY2F0ZWdvcmllc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBsb2dzOiBEaWFnbm9zdGljTG9nQ29uZmlnW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBjYXRlZ29yeTogXCJBdWRpdEV2ZW50XCIsXG4gICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICByZXRlbnRpb25Qb2xpY3k6IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBkYXlzOiA5MCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY2F0ZWdvcnk6IFwiU2VjdXJpdHlFdmVudFwiLFxuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgcmV0ZW50aW9uUG9saWN5OiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgZGF5czogMzY1LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBkaWFnbm9zdGljcyA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3Moc3RhY2ssIFwiTG9nQ2F0ZWdvcmllc1wiLCB7XG4gICAgICAgIG5hbWU6IFwibG9nLWNhdGVnb3JpZXNcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy90ZXN0LXN0b3JhZ2VcIixcbiAgICAgICAgd29ya3NwYWNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuT3BlcmF0aW9uYWxJbnNpZ2h0cy93b3Jrc3BhY2VzL3Rlc3Qtd29ya3NwYWNlXCIsXG4gICAgICAgIGxvZ3MsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzLnByb3BzLmxvZ3MpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcy5sb2dzIVswXS5jYXRlZ29yeSkudG9CZShcIkF1ZGl0RXZlbnRcIik7XG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMubG9ncyFbMF0ucmV0ZW50aW9uUG9saWN5Py5kYXlzKS50b0JlKDkwKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSBsb2dzIHdpdGggY2F0ZWdvcnkgZ3JvdXBzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGxvZ3M6IERpYWdub3N0aWNMb2dDb25maWdbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5R3JvdXA6IFwiYWxsTG9nc1wiLFxuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBkaWFnbm9zdGljcyA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3Moc3RhY2ssIFwiTG9nQ2F0ZWdvcnlHcm91cFwiLCB7XG4gICAgICAgIG5hbWU6IFwibG9nLWNhdGVnb3J5LWdyb3VwXCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZXMvdGVzdC12bVwiLFxuICAgICAgICB3b3Jrc3BhY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdC13b3Jrc3BhY2VcIixcbiAgICAgICAgbG9ncyxcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDIxLTA1LTAxLXByZXZpZXdcIiwgLy8gQ2F0ZWdvcnkgZ3JvdXBzIGF2YWlsYWJsZSBpbiBwcmV2aWV3XG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzLnByb3BzLmxvZ3MpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcy5sb2dzIVswXS5jYXRlZ29yeUdyb3VwKS50b0JlKFwiYWxsTG9nc1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSBtZXRyaWNzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG1ldHJpY3M6IERpYWdub3N0aWNNZXRyaWNDb25maWdbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5OiBcIkFsbE1ldHJpY3NcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHJldGVudGlvblBvbGljeToge1xuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRheXM6IDMwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBkaWFnbm9zdGljcyA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3Moc3RhY2ssIFwiTWV0cmljc1wiLCB7XG4gICAgICAgIG5hbWU6IFwibWV0cmljcy1jb25maWdcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgICBtZXRyaWNzLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcy5tZXRyaWNzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMubWV0cmljcyFbMF0uY2F0ZWdvcnkpLnRvQmUoXCJBbGxNZXRyaWNzXCIpO1xuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzLnByb3BzLm1ldHJpY3MhWzBdLnJldGVudGlvblBvbGljeT8uZGF5cykudG9CZSgzMCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjb25maWd1cmUgYm90aCBsb2dzIGFuZCBtZXRyaWNzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGxvZ3M6IERpYWdub3N0aWNMb2dDb25maWdbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5OiBcIkFkbWluaXN0cmF0aXZlXCIsXG4gICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IG1ldHJpY3M6IERpYWdub3N0aWNNZXRyaWNDb25maWdbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5OiBcIkFsbE1ldHJpY3NcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIkxvZ3NBbmRNZXRyaWNzXCIsIHtcbiAgICAgICAgbmFtZTogXCJsb2dzLWFuZC1tZXRyaWNzXCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9uZXR3b3JrU2VjdXJpdHlHcm91cHMvdGVzdC1uc2dcIixcbiAgICAgICAgd29ya3NwYWNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuT3BlcmF0aW9uYWxJbnNpZ2h0cy93b3Jrc3BhY2VzL3Rlc3Qtd29ya3NwYWNlXCIsXG4gICAgICAgIGxvZ3MsXG4gICAgICAgIG1ldHJpY3MsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzLnByb3BzLmxvZ3MpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcy5tZXRyaWNzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFByb3BlcnR5IFRyYW5zZm9ybWF0aW9uXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgZGVzY3JpYmUoXCJQcm9wZXJ0eSBUcmFuc2Zvcm1hdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgZ2VuZXJhdGUgY29ycmVjdCBBenVyZSBBUEkgZm9ybWF0IHZpYSBjcmVhdGVSZXNvdXJjZUJvZHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IERpYWdub3N0aWNTZXR0aW5nc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRyYW5zZm9ybS10ZXN0XCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZXMvdGVzdC12bVwiLFxuICAgICAgICB3b3Jrc3BhY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdC13b3Jrc3BhY2VcIixcbiAgICAgICAgbG9nczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNhdGVnb3J5OiBcIkF1ZGl0RXZlbnRcIixcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbWV0cmljczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNhdGVnb3J5OiBcIkFsbE1ldHJpY3NcIixcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNTZXR0aW5ncyhzdGFjaywgXCJUcmFuc2Zvcm1UZXN0XCIsIHByb3BzKTtcblxuICAgICAgLy8gQWNjZXNzIHRoZSBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2VCb2R5IG1ldGhvZFxuICAgICAgY29uc3QgcmVzb3VyY2VCb2R5ID0gKGRpYWdub3N0aWNzIGFzIGFueSkuY3JlYXRlUmVzb3VyY2VCb2R5KHByb3BzKTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlQm9keSkudG9IYXZlUHJvcGVydHkoXCJwcm9wZXJ0aWVzXCIpO1xuICAgICAgZXhwZWN0KHJlc291cmNlQm9keS5wcm9wZXJ0aWVzKS50b0hhdmVQcm9wZXJ0eShcIndvcmtzcGFjZUlkXCIpO1xuICAgICAgZXhwZWN0KHJlc291cmNlQm9keS5wcm9wZXJ0aWVzKS50b0hhdmVQcm9wZXJ0eShcImxvZ3NcIik7XG4gICAgICBleHBlY3QocmVzb3VyY2VCb2R5LnByb3BlcnRpZXMpLnRvSGF2ZVByb3BlcnR5KFwibWV0cmljc1wiKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkpLm5vdC50b0hhdmVQcm9wZXJ0eShcImxvY2F0aW9uXCIpO1xuICAgICAgZXhwZWN0KHJlc291cmNlQm9keSkubm90LnRvSGF2ZVByb3BlcnR5KFwidGFnc1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGluY2x1ZGUgbG9nQW5hbHl0aWNzRGVzdGluYXRpb25UeXBlIHdoZW4gc3BlY2lmaWVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEaWFnbm9zdGljU2V0dGluZ3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJkZXN0aW5hdGlvbi10eXBlLXRlc3RcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgICBsb2dBbmFseXRpY3NEZXN0aW5hdGlvblR5cGU6IFwiRGVkaWNhdGVkXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBkaWFnbm9zdGljcyA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3MoXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIkRlc3RpbmF0aW9uVHlwZVwiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG4gICAgICBjb25zdCByZXNvdXJjZUJvZHkgPSAoZGlhZ25vc3RpY3MgYXMgYW55KS5jcmVhdGVSZXNvdXJjZUJvZHkocHJvcHMpO1xuXG4gICAgICBleHBlY3QocmVzb3VyY2VCb2R5LnByb3BlcnRpZXMubG9nQW5hbHl0aWNzRGVzdGluYXRpb25UeXBlKS50b0JlKFxuICAgICAgICBcIkRlZGljYXRlZFwiLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBlbXB0eSBsb2dzIGFuZCBtZXRyaWNzIGFycmF5c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogRGlhZ25vc3RpY1NldHRpbmdzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwiZW1wdHktYXJyYXlzLXRlc3RcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIkVtcHR5QXJyYXlzXCIsIHByb3BzKTtcbiAgICAgIGNvbnN0IHJlc291cmNlQm9keSA9IChkaWFnbm9zdGljcyBhcyBhbnkpLmNyZWF0ZVJlc291cmNlQm9keShwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkucHJvcGVydGllcy5sb2dzKS50b0VxdWFsKFtdKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkucHJvcGVydGllcy5tZXRyaWNzKS50b0VxdWFsKFtdKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gSW50ZWdyYXRpb24gd2l0aCBCYXNlIENsYXNzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgZGVzY3JpYmUoXCJJbnRlZ3JhdGlvbiB3aXRoIEJhc2UgQ2xhc3NcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGluaGVyaXQgZnJvbSBBemFwaVJlc291cmNlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNTZXR0aW5ncyhzdGFjaywgXCJJbmhlcml0YW5jZVRlc3RcIiwge1xuICAgICAgICBuYW1lOiBcImluaGVyaXRhbmNlLXRlc3RcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFZlcmlmeSBpdCBoYXMgQXphcGlSZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MpLnRvSGF2ZVByb3BlcnR5KFwidGVycmFmb3JtUmVzb3VyY2VcIik7XG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MpLnRvSGF2ZVByb3BlcnR5KFwicmVzb2x2ZWRBcGlWZXJzaW9uXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGF2ZSBjb3JyZWN0IGF6YXBpUmVzb3VyY2VUeXBlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNTZXR0aW5ncyhzdGFjaywgXCJSZXNvdXJjZVR5cGVUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJyZXNvdXJjZS10eXBlLXRlc3RcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEFjY2VzcyB0aGUgcHJvdGVjdGVkIHJlc291cmNlVHlwZSBtZXRob2RcbiAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IChkaWFnbm9zdGljcyBhcyBhbnkpLnJlc291cmNlVHlwZSgpO1xuICAgICAgZXhwZWN0KHJlc291cmNlVHlwZSkudG9CZShcIk1pY3Jvc29mdC5JbnNpZ2h0cy9kaWFnbm9zdGljU2V0dGluZ3NcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCByZXNvbHZlIHBhcmVudCBJRCBjb3JyZWN0bHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0UmVzb3VyY2VJZCA9XG4gICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3Rlc3Qtdm1cIjtcblxuICAgICAgY29uc3QgcHJvcHM6IERpYWdub3N0aWNTZXR0aW5nc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInBhcmVudC1pZC10ZXN0XCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIlBhcmVudElkVGVzdFwiLCBwcm9wcyk7XG5cbiAgICAgIC8vIEFjY2VzcyB0aGUgcHJvdGVjdGVkIHJlc29sdmVQYXJlbnRJZCBtZXRob2RcbiAgICAgIGNvbnN0IHBhcmVudElkID0gKGRpYWdub3N0aWNzIGFzIGFueSkucmVzb2x2ZVBhcmVudElkKHByb3BzKTtcbiAgICAgIGV4cGVjdChwYXJlbnRJZCkudG9CZSh0YXJnZXRSZXNvdXJjZUlkKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGdlbmVyYXRlIHJlc291cmNlIG91dHB1dHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIk91dHB1dHNUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJvdXRwdXRzLXRlc3RcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5pZE91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdGYuVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5uYW1lT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0Zi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzLmlkKS50b01hdGNoKC9eXFwkXFx7LipcXC5pZFxcfSQvKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQ0RLIFRlcnJhZm9ybSBJbnRlZ3JhdGlvblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGRlc2NyaWJlKFwiQ0RLIFRlcnJhZm9ybSBJbnRlZ3JhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgc3ludGhlc2l6ZSB0byB2YWxpZCBUZXJyYWZvcm0gY29uZmlndXJhdGlvblwiLCAoKSA9PiB7XG4gICAgICBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIlN5bnRoVGVzdFwiLCB7XG4gICAgICAgIG5hbWU6IFwic3ludGgtdGVzdFwiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3Rlc3Qtdm1cIixcbiAgICAgICAgd29ya3NwYWNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuT3BlcmF0aW9uYWxJbnNpZ2h0cy93b3Jrc3BhY2VzL3Rlc3Qtd29ya3NwYWNlXCIsXG4gICAgICAgIGxvZ3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjYXRlZ29yeTogXCJBdWRpdEV2ZW50XCIsXG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcblxuICAgICAgY29uc3Qgc3RhY2tDb25maWcgPSBKU09OLnBhcnNlKHN5bnRoZXNpemVkKTtcbiAgICAgIGV4cGVjdChzdGFja0NvbmZpZy5yZXNvdXJjZSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBtdWx0aXBsZSBkaWFnbm9zdGljIHNldHRpbmdzIGluIHRoZSBzYW1lIHN0YWNrXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzMSA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3Moc3RhY2ssIFwiRGlhZ25vc3RpY3MxXCIsIHtcbiAgICAgICAgbmFtZTogXCJkaWFnbm9zdGljcy0xXCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZXMvdm0xXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzMiA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3Moc3RhY2ssIFwiRGlhZ25vc3RpY3MyXCIsIHtcbiAgICAgICAgbmFtZTogXCJkaWFnbm9zdGljcy0yXCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZXMvdm0yXCIsXG4gICAgICAgIHN0b3JhZ2VBY2NvdW50SWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHMvYXJjaGl2ZS1zdG9yYWdlXCIsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAxNi0wOS0wMVwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljczEucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyMS0wNS0wMS1wcmV2aWV3XCIpO1xuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzMi5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDE2LTA5LTAxXCIpO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBDb21wbGV4IFNjZW5hcmlvc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGRlc2NyaWJlKFwiQ29tcGxleCBTY2VuYXJpb3NcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBjb21wcmVoZW5zaXZlIGRpYWdub3N0aWMgc2V0dGluZ3MgY29uZmlndXJhdGlvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBsb2dzOiBEaWFnbm9zdGljTG9nQ29uZmlnW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBjYXRlZ29yeTogXCJBdWRpdEV2ZW50XCIsXG4gICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICByZXRlbnRpb25Qb2xpY3k6IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBkYXlzOiAzNjUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5OiBcIlNlY3VyaXR5RXZlbnRcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHJldGVudGlvblBvbGljeToge1xuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRheXM6IDM2NSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY2F0ZWdvcnk6IFwiQWRtaW5pc3RyYXRpdmVcIixcbiAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IG1ldHJpY3M6IERpYWdub3N0aWNNZXRyaWNDb25maWdbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5OiBcIkFsbE1ldHJpY3NcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHJldGVudGlvblBvbGljeToge1xuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRheXM6IDMwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBwcm9wczogRGlhZ25vc3RpY1NldHRpbmdzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwiY29tcHJlaGVuc2l2ZS1kaWFnbm9zdGljc1wiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3Rlc3Qtc3RvcmFnZVwiLFxuICAgICAgICB3b3Jrc3BhY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdC13b3Jrc3BhY2VcIixcbiAgICAgICAgc3RvcmFnZUFjY291bnRJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9hcmNoaXZlLXN0b3JhZ2VcIixcbiAgICAgICAgZXZlbnRIdWJBdXRob3JpemF0aW9uUnVsZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkV2ZW50SHViL25hbWVzcGFjZXMvdGVzdC1laC9hdXRob3JpemF0aW9uUnVsZXMvdGVzdC1ydWxlXCIsXG4gICAgICAgIGV2ZW50SHViTmFtZTogXCJzZWN1cml0eS1ldmVudHNcIixcbiAgICAgICAgbG9ncyxcbiAgICAgICAgbWV0cmljcyxcbiAgICAgICAgbG9nQW5hbHl0aWNzRGVzdGluYXRpb25UeXBlOiBcIkRlZGljYXRlZFwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJDb21wcmVoZW5zaXZlQ29uZmlnXCIsXG4gICAgICAgIHByb3BzLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHJlc291cmNlQm9keSA9IChkaWFnbm9zdGljcyBhcyBhbnkpLmNyZWF0ZVJlc291cmNlQm9keShwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkucHJvcGVydGllcy53b3Jrc3BhY2VJZCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkucHJvcGVydGllcy5zdG9yYWdlQWNjb3VudElkKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHJlc291cmNlQm9keS5wcm9wZXJ0aWVzLmV2ZW50SHViQXV0aG9yaXphdGlvblJ1bGVJZCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkucHJvcGVydGllcy5ldmVudEh1Yk5hbWUpLnRvQmUoXCJzZWN1cml0eS1ldmVudHNcIik7XG4gICAgICBleHBlY3QocmVzb3VyY2VCb2R5LnByb3BlcnRpZXMubG9ncykudG9IYXZlTGVuZ3RoKDMpO1xuICAgICAgZXhwZWN0KHJlc291cmNlQm9keS5wcm9wZXJ0aWVzLm1ldHJpY3MpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkucHJvcGVydGllcy5sb2dBbmFseXRpY3NEZXN0aW5hdGlvblR5cGUpLnRvQmUoXG4gICAgICAgIFwiRGVkaWNhdGVkXCIsXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
432
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc3RpYy1zZXR0aW5ncy5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWRpYWdub3N0aWNzZXR0aW5ncy90ZXN0L2RpYWdub3N0aWMtc2V0dGluZ3Muc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILGlDQUFnQztBQUNoQywrQkFBK0I7QUFLL0Isb0VBR29DO0FBRXBDLFFBQVEsQ0FBQyxxQ0FBcUMsRUFBRSxHQUFHLEVBQUU7SUFDbkQsSUFBSSxHQUFjLENBQUM7SUFDbkIsSUFBSSxLQUEyQixDQUFDO0lBRWhDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0lBRUgsZ0ZBQWdGO0lBQ2hGLG1DQUFtQztJQUNuQyxnRkFBZ0Y7SUFFaEYsUUFBUSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxFQUFFLENBQUMsZ0VBQWdFLEVBQUUsR0FBRyxFQUFFO1lBQ3hFLE1BQU0sS0FBSyxHQUE0QjtnQkFDckMsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsZ0JBQWdCLEVBQ2Qsb0dBQW9HO2dCQUN0RyxXQUFXLEVBQ1Qsa0hBQWtIO2FBQ3JILENBQUM7WUFFRixNQUFNLFdBQVcsR0FBRyxJQUFJLHdDQUFrQixDQUN4QyxLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLEtBQUssQ0FDTixDQUFDO1lBRUYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyx3Q0FBa0IsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxX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QUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RCxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLElBQUksQ0FDOUQsV0FBVyxDQUNaLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXByZWhlbnNpdmUgdGVzdHMgZm9yIHRoZSBEaWFnbm9zdGljU2V0dGluZ3MgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVzIHRoZSBEaWFnbm9zdGljU2V0dGluZ3MgY2xhc3MgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrLlxuICogVGVzdHMgY292ZXIgYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbiwgZXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nLCBzY2hlbWEgdmFsaWRhdGlvbixcbiAqIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb25zLCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiwgYW5kIHJlc291cmNlIGNyZWF0aW9uLlxuICovXG5cbmltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCAqIGFzIGNka3RuIGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHtcbiAgRGlhZ25vc3RpY0xvZ0NvbmZpZyxcbiAgRGlhZ25vc3RpY01ldHJpY0NvbmZpZyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQge1xuICBEaWFnbm9zdGljU2V0dGluZ3MsXG4gIERpYWdub3N0aWNTZXR0aW5nc1Byb3BzLFxufSBmcm9tIFwiLi4vbGliL2RpYWdub3N0aWMtc2V0dGluZ3NcIjtcblxuZGVzY3JpYmUoXCJEaWFnbm9zdGljU2V0dGluZ3MgLSBJbXBsZW1lbnRhdGlvblwiLCAoKSA9PiB7XG4gIGxldCBhcHA6IGNka3RuLkFwcDtcbiAgbGV0IHN0YWNrOiBjZGt0bi5UZXJyYWZvcm1TdGFjaztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIHN0YWNrID0gbmV3IGNka3RuLlRlcnJhZm9ybVN0YWNrKGFwcCwgXCJUZXN0U3RhY2tcIik7XG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIENvbnN0cnVjdG9yIGFuZCBCYXNpYyBQcm9wZXJ0aWVzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgZGVzY3JpYmUoXCJDb25zdHJ1Y3RvciBhbmQgQmFzaWMgUHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGRpYWdub3N0aWMgc2V0dGluZ3Mgd2l0aCBMb2cgQW5hbHl0aWNzIHdvcmtzcGFjZVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogRGlhZ25vc3RpY1NldHRpbmdzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1kaWFnbm9zdGljc1wiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3Rlc3Qtdm1cIixcbiAgICAgICAgd29ya3NwYWNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuT3BlcmF0aW9uYWxJbnNpZ2h0cy93b3Jrc3BhY2VzL3Rlc3Qtd29ya3NwYWNlXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBkaWFnbm9zdGljcyA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3MoXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3REaWFnbm9zdGljc1wiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcykudG9CZUluc3RhbmNlT2YoRGlhZ25vc3RpY1NldHRpbmdzKTtcbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcykudG9CZShwcm9wcyk7XG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMubmFtZSkudG9CZShcInRlc3QtZGlhZ25vc3RpY3NcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgZGlhZ25vc3RpYyBzZXR0aW5ncyB3aXRoIHN0b3JhZ2UgYWNjb3VudFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogRGlhZ25vc3RpY1NldHRpbmdzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwic3RvcmFnZS1kaWFnbm9zdGljc1wiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3Rlc3Qtc3RvcmFnZVwiLFxuICAgICAgICBzdG9yYWdlQWNjb3VudElkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL2FyY2hpdmUtc3RvcmFnZVwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJTdG9yYWdlRGlhZ25vc3RpY3NcIixcbiAgICAgICAgcHJvcHMsXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMuc3RvcmFnZUFjY291bnRJZCkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBkaWFnbm9zdGljIHNldHRpbmdzIHdpdGggZXZlbnQgaHViXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEaWFnbm9zdGljU2V0dGluZ3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJldmVudGh1Yi1kaWFnbm9zdGljc1wiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbmV0d29ya1NlY3VyaXR5R3JvdXBzL3Rlc3QtbnNnXCIsXG4gICAgICAgIGV2ZW50SHViQXV0aG9yaXphdGlvblJ1bGVJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5FdmVudEh1Yi9uYW1lc3BhY2VzL3Rlc3QtZWgvYXV0aG9yaXphdGlvblJ1bGVzL3Rlc3QtcnVsZVwiLFxuICAgICAgICBldmVudEh1Yk5hbWU6IFwibW9uaXRvcmluZy1odWJcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNTZXR0aW5ncyhcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiRXZlbnRIdWJEaWFnbm9zdGljc1wiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcy5ldmVudEh1YkF1dGhvcml6YXRpb25SdWxlSWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMuZXZlbnRIdWJOYW1lKS50b0JlKFwibW9uaXRvcmluZy1odWJcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgZGlhZ25vc3RpYyBzZXR0aW5ncyB3aXRoIG11bHRpcGxlIGRlc3RpbmF0aW9uc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogRGlhZ25vc3RpY1NldHRpbmdzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwibXVsdGktZGVzdGluYXRpb24tZGlhZ25vc3RpY3NcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5TcWwvc2VydmVycy90ZXN0LXNxbFwiLFxuICAgICAgICB3b3Jrc3BhY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdC13b3Jrc3BhY2VcIixcbiAgICAgICAgc3RvcmFnZUFjY291bnRJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9hcmNoaXZlLXN0b3JhZ2VcIixcbiAgICAgICAgZXZlbnRIdWJBdXRob3JpemF0aW9uUnVsZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkV2ZW50SHViL25hbWVzcGFjZXMvdGVzdC1laC9hdXRob3JpemF0aW9uUnVsZXMvdGVzdC1ydWxlXCIsXG4gICAgICAgIGV2ZW50SHViTmFtZTogXCJhdWRpdC1odWJcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNTZXR0aW5ncyhzdGFjaywgXCJNdWx0aURlc3RcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMud29ya3NwYWNlSWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMuc3RvcmFnZUFjY291bnRJZCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcy5ldmVudEh1YkF1dGhvcml6YXRpb25SdWxlSWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFZlcnNpb24gUmVzb2x1dGlvblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGRlc2NyaWJlKFwiVmVyc2lvbiBSZXNvbHV0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCB1c2UgbGF0ZXN0IHZlcnNpb24gMjAyMS0wNS0wMS1wcmV2aWV3IHdoZW4gbm8gdmVyc2lvbiBzcGVjaWZpZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIkRlZmF1bHRWZXJzaW9uXCIsIHtcbiAgICAgICAgbmFtZTogXCJkZWZhdWx0LXZlcnNpb24tZGlhZ25vc3RpY3NcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDIxLTA1LTAxLXByZXZpZXdcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB1c2UgZXhwbGljaXQgc3RhYmxlIHZlcnNpb24gd2hlbiBzcGVjaWZpZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIlN0YWJsZVZlcnNpb25cIiwge1xuICAgICAgICBuYW1lOiBcInN0YWJsZS12ZXJzaW9uLWRpYWdub3N0aWNzXCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZXMvdGVzdC12bVwiLFxuICAgICAgICB3b3Jrc3BhY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdC13b3Jrc3BhY2VcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDE2LTA5LTAxXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMTYtMDktMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB1c2UgcHJldmlldyB2ZXJzaW9uIHdoZW4gZXhwbGljaXRseSBzcGVjaWZpZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIlByZXZpZXdWZXJzaW9uXCIsIHtcbiAgICAgICAgbmFtZTogXCJwcmV2aWV3LXZlcnNpb24tZGlhZ25vc3RpY3NcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjEtMDUtMDEtcHJldmlld1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDIxLTA1LTAxLXByZXZpZXdcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFZhbGlkYXRpb24gVGVzdHNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBkZXNjcmliZShcIlZhbGlkYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHRocm93IGVycm9yIHdoZW4gbm8gZGVzdGluYXRpb24gaXMgc3BlY2lmaWVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEaWFnbm9zdGljU2V0dGluZ3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJuby1kZXN0aW5hdGlvblwiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3Rlc3Qtdm1cIixcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBEaWFnbm9zdGljU2V0dGluZ3Moc3RhY2ssIFwiTm9EZXN0aW5hdGlvblwiLCBwcm9wcyk7XG4gICAgICB9KS50b1Rocm93KC9BdCBsZWFzdCBvbmUgZGVzdGluYXRpb24vKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHRocm93IGVycm9yIHdoZW4gZXZlbnRIdWJBdXRob3JpemF0aW9uUnVsZUlkIHdpdGhvdXQgZXZlbnRIdWJOYW1lXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEaWFnbm9zdGljU2V0dGluZ3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJtaXNzaW5nLWV2ZW50aHViLW5hbWVcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIGV2ZW50SHViQXV0aG9yaXphdGlvblJ1bGVJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5FdmVudEh1Yi9uYW1lc3BhY2VzL3Rlc3QtZWgvYXV0aG9yaXphdGlvblJ1bGVzL3Rlc3QtcnVsZVwiLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgbmV3IERpYWdub3N0aWNTZXR0aW5ncyhzdGFjaywgXCJNaXNzaW5nRXZlbnRIdWJOYW1lXCIsIHByb3BzKTtcbiAgICAgIH0pLnRvVGhyb3coL2V2ZW50SHViTmFtZSBpcyByZXF1aXJlZC8pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgbm90IHRocm93IHdoZW4gZXZlbnRIdWJOYW1lIHByb3ZpZGVkIHdpdGggZXZlbnRIdWJBdXRob3JpemF0aW9uUnVsZUlkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEaWFnbm9zdGljU2V0dGluZ3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ2YWxpZC1ldmVudGh1YlwiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3Rlc3Qtdm1cIixcbiAgICAgICAgZXZlbnRIdWJBdXRob3JpemF0aW9uUnVsZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkV2ZW50SHViL25hbWVzcGFjZXMvdGVzdC1laC9hdXRob3JpemF0aW9uUnVsZXMvdGVzdC1ydWxlXCIsXG4gICAgICAgIGV2ZW50SHViTmFtZTogXCJtb25pdG9yaW5nLWh1YlwiLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgbmV3IERpYWdub3N0aWNTZXR0aW5ncyhzdGFjaywgXCJWYWxpZEV2ZW50SHViXCIsIHByb3BzKTtcbiAgICAgIH0pLm5vdC50b1Rocm93KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIExvZyBhbmQgTWV0cmljIENvbmZpZ3VyYXRpb25cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBkZXNjcmliZShcIkxvZyBhbmQgTWV0cmljIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSBsb2dzIHdpdGggc3BlY2lmaWMgY2F0ZWdvcmllc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBsb2dzOiBEaWFnbm9zdGljTG9nQ29uZmlnW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBjYXRlZ29yeTogXCJBdWRpdEV2ZW50XCIsXG4gICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICByZXRlbnRpb25Qb2xpY3k6IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBkYXlzOiA5MCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY2F0ZWdvcnk6IFwiU2VjdXJpdHlFdmVudFwiLFxuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgcmV0ZW50aW9uUG9saWN5OiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgZGF5czogMzY1LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBkaWFnbm9zdGljcyA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3Moc3RhY2ssIFwiTG9nQ2F0ZWdvcmllc1wiLCB7XG4gICAgICAgIG5hbWU6IFwibG9nLWNhdGVnb3JpZXNcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy90ZXN0LXN0b3JhZ2VcIixcbiAgICAgICAgd29ya3NwYWNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuT3BlcmF0aW9uYWxJbnNpZ2h0cy93b3Jrc3BhY2VzL3Rlc3Qtd29ya3NwYWNlXCIsXG4gICAgICAgIGxvZ3MsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzLnByb3BzLmxvZ3MpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcy5sb2dzIVswXS5jYXRlZ29yeSkudG9CZShcIkF1ZGl0RXZlbnRcIik7XG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMubG9ncyFbMF0ucmV0ZW50aW9uUG9saWN5Py5kYXlzKS50b0JlKDkwKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSBsb2dzIHdpdGggY2F0ZWdvcnkgZ3JvdXBzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGxvZ3M6IERpYWdub3N0aWNMb2dDb25maWdbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5R3JvdXA6IFwiYWxsTG9nc1wiLFxuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBkaWFnbm9zdGljcyA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3Moc3RhY2ssIFwiTG9nQ2F0ZWdvcnlHcm91cFwiLCB7XG4gICAgICAgIG5hbWU6IFwibG9nLWNhdGVnb3J5LWdyb3VwXCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZXMvdGVzdC12bVwiLFxuICAgICAgICB3b3Jrc3BhY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdC13b3Jrc3BhY2VcIixcbiAgICAgICAgbG9ncyxcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDIxLTA1LTAxLXByZXZpZXdcIiwgLy8gQ2F0ZWdvcnkgZ3JvdXBzIGF2YWlsYWJsZSBpbiBwcmV2aWV3XG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzLnByb3BzLmxvZ3MpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcy5sb2dzIVswXS5jYXRlZ29yeUdyb3VwKS50b0JlKFwiYWxsTG9nc1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSBtZXRyaWNzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG1ldHJpY3M6IERpYWdub3N0aWNNZXRyaWNDb25maWdbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5OiBcIkFsbE1ldHJpY3NcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHJldGVudGlvblBvbGljeToge1xuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRheXM6IDMwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBkaWFnbm9zdGljcyA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3Moc3RhY2ssIFwiTWV0cmljc1wiLCB7XG4gICAgICAgIG5hbWU6IFwibWV0cmljcy1jb25maWdcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgICBtZXRyaWNzLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcy5tZXRyaWNzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MucHJvcHMubWV0cmljcyFbMF0uY2F0ZWdvcnkpLnRvQmUoXCJBbGxNZXRyaWNzXCIpO1xuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzLnByb3BzLm1ldHJpY3MhWzBdLnJldGVudGlvblBvbGljeT8uZGF5cykudG9CZSgzMCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjb25maWd1cmUgYm90aCBsb2dzIGFuZCBtZXRyaWNzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGxvZ3M6IERpYWdub3N0aWNMb2dDb25maWdbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5OiBcIkFkbWluaXN0cmF0aXZlXCIsXG4gICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IG1ldHJpY3M6IERpYWdub3N0aWNNZXRyaWNDb25maWdbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5OiBcIkFsbE1ldHJpY3NcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIkxvZ3NBbmRNZXRyaWNzXCIsIHtcbiAgICAgICAgbmFtZTogXCJsb2dzLWFuZC1tZXRyaWNzXCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9uZXR3b3JrU2VjdXJpdHlHcm91cHMvdGVzdC1uc2dcIixcbiAgICAgICAgd29ya3NwYWNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuT3BlcmF0aW9uYWxJbnNpZ2h0cy93b3Jrc3BhY2VzL3Rlc3Qtd29ya3NwYWNlXCIsXG4gICAgICAgIGxvZ3MsXG4gICAgICAgIG1ldHJpY3MsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzLnByb3BzLmxvZ3MpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5wcm9wcy5tZXRyaWNzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFByb3BlcnR5IFRyYW5zZm9ybWF0aW9uXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgZGVzY3JpYmUoXCJQcm9wZXJ0eSBUcmFuc2Zvcm1hdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgZ2VuZXJhdGUgY29ycmVjdCBBenVyZSBBUEkgZm9ybWF0IHZpYSBjcmVhdGVSZXNvdXJjZUJvZHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IERpYWdub3N0aWNTZXR0aW5nc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRyYW5zZm9ybS10ZXN0XCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZXMvdGVzdC12bVwiLFxuICAgICAgICB3b3Jrc3BhY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdC13b3Jrc3BhY2VcIixcbiAgICAgICAgbG9nczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNhdGVnb3J5OiBcIkF1ZGl0RXZlbnRcIixcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbWV0cmljczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNhdGVnb3J5OiBcIkFsbE1ldHJpY3NcIixcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNTZXR0aW5ncyhzdGFjaywgXCJUcmFuc2Zvcm1UZXN0XCIsIHByb3BzKTtcblxuICAgICAgLy8gQWNjZXNzIHRoZSBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2VCb2R5IG1ldGhvZFxuICAgICAgY29uc3QgcmVzb3VyY2VCb2R5ID0gKGRpYWdub3N0aWNzIGFzIGFueSkuY3JlYXRlUmVzb3VyY2VCb2R5KHByb3BzKTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlQm9keSkudG9IYXZlUHJvcGVydHkoXCJwcm9wZXJ0aWVzXCIpO1xuICAgICAgZXhwZWN0KHJlc291cmNlQm9keS5wcm9wZXJ0aWVzKS50b0hhdmVQcm9wZXJ0eShcIndvcmtzcGFjZUlkXCIpO1xuICAgICAgZXhwZWN0KHJlc291cmNlQm9keS5wcm9wZXJ0aWVzKS50b0hhdmVQcm9wZXJ0eShcImxvZ3NcIik7XG4gICAgICBleHBlY3QocmVzb3VyY2VCb2R5LnByb3BlcnRpZXMpLnRvSGF2ZVByb3BlcnR5KFwibWV0cmljc1wiKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkpLm5vdC50b0hhdmVQcm9wZXJ0eShcImxvY2F0aW9uXCIpO1xuICAgICAgZXhwZWN0KHJlc291cmNlQm9keSkubm90LnRvSGF2ZVByb3BlcnR5KFwidGFnc1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGluY2x1ZGUgbG9nQW5hbHl0aWNzRGVzdGluYXRpb25UeXBlIHdoZW4gc3BlY2lmaWVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEaWFnbm9zdGljU2V0dGluZ3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJkZXN0aW5hdGlvbi10eXBlLXRlc3RcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgICBsb2dBbmFseXRpY3NEZXN0aW5hdGlvblR5cGU6IFwiRGVkaWNhdGVkXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBkaWFnbm9zdGljcyA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3MoXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIkRlc3RpbmF0aW9uVHlwZVwiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG4gICAgICBjb25zdCByZXNvdXJjZUJvZHkgPSAoZGlhZ25vc3RpY3MgYXMgYW55KS5jcmVhdGVSZXNvdXJjZUJvZHkocHJvcHMpO1xuXG4gICAgICBleHBlY3QocmVzb3VyY2VCb2R5LnByb3BlcnRpZXMubG9nQW5hbHl0aWNzRGVzdGluYXRpb25UeXBlKS50b0JlKFxuICAgICAgICBcIkRlZGljYXRlZFwiLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBlbXB0eSBsb2dzIGFuZCBtZXRyaWNzIGFycmF5c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogRGlhZ25vc3RpY1NldHRpbmdzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwiZW1wdHktYXJyYXlzLXRlc3RcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIkVtcHR5QXJyYXlzXCIsIHByb3BzKTtcbiAgICAgIGNvbnN0IHJlc291cmNlQm9keSA9IChkaWFnbm9zdGljcyBhcyBhbnkpLmNyZWF0ZVJlc291cmNlQm9keShwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkucHJvcGVydGllcy5sb2dzKS50b0VxdWFsKFtdKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkucHJvcGVydGllcy5tZXRyaWNzKS50b0VxdWFsKFtdKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gSW50ZWdyYXRpb24gd2l0aCBCYXNlIENsYXNzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgZGVzY3JpYmUoXCJJbnRlZ3JhdGlvbiB3aXRoIEJhc2UgQ2xhc3NcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGluaGVyaXQgZnJvbSBBemFwaVJlc291cmNlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNTZXR0aW5ncyhzdGFjaywgXCJJbmhlcml0YW5jZVRlc3RcIiwge1xuICAgICAgICBuYW1lOiBcImluaGVyaXRhbmNlLXRlc3RcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFZlcmlmeSBpdCBoYXMgQXphcGlSZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MpLnRvSGF2ZVByb3BlcnR5KFwidGVycmFmb3JtUmVzb3VyY2VcIik7XG4gICAgICBleHBlY3QoZGlhZ25vc3RpY3MpLnRvSGF2ZVByb3BlcnR5KFwicmVzb2x2ZWRBcGlWZXJzaW9uXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGF2ZSBjb3JyZWN0IGF6YXBpUmVzb3VyY2VUeXBlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNTZXR0aW5ncyhzdGFjaywgXCJSZXNvdXJjZVR5cGVUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJyZXNvdXJjZS10eXBlLXRlc3RcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEFjY2VzcyB0aGUgcHJvdGVjdGVkIHJlc291cmNlVHlwZSBtZXRob2RcbiAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IChkaWFnbm9zdGljcyBhcyBhbnkpLnJlc291cmNlVHlwZSgpO1xuICAgICAgZXhwZWN0KHJlc291cmNlVHlwZSkudG9CZShcIk1pY3Jvc29mdC5JbnNpZ2h0cy9kaWFnbm9zdGljU2V0dGluZ3NcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCByZXNvbHZlIHBhcmVudCBJRCBjb3JyZWN0bHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0UmVzb3VyY2VJZCA9XG4gICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3Rlc3Qtdm1cIjtcblxuICAgICAgY29uc3QgcHJvcHM6IERpYWdub3N0aWNTZXR0aW5nc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInBhcmVudC1pZC10ZXN0XCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIlBhcmVudElkVGVzdFwiLCBwcm9wcyk7XG5cbiAgICAgIC8vIEFjY2VzcyB0aGUgcHJvdGVjdGVkIHJlc29sdmVQYXJlbnRJZCBtZXRob2RcbiAgICAgIGNvbnN0IHBhcmVudElkID0gKGRpYWdub3N0aWNzIGFzIGFueSkucmVzb2x2ZVBhcmVudElkKHByb3BzKTtcbiAgICAgIGV4cGVjdChwYXJlbnRJZCkudG9CZSh0YXJnZXRSZXNvdXJjZUlkKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGdlbmVyYXRlIHJlc291cmNlIG91dHB1dHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIk91dHB1dHNUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJvdXRwdXRzLXRlc3RcIixcbiAgICAgICAgdGFyZ2V0UmVzb3VyY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90ZXN0LXZtXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5pZE91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChkaWFnbm9zdGljcy5uYW1lT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzLmlkKS50b01hdGNoKC9eXFwkXFx7LipcXC5pZFxcfSQvKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQ0RLIFRlcnJhZm9ybSBJbnRlZ3JhdGlvblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGRlc2NyaWJlKFwiQ0RLIFRlcnJhZm9ybSBJbnRlZ3JhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgc3ludGhlc2l6ZSB0byB2YWxpZCBUZXJyYWZvcm0gY29uZmlndXJhdGlvblwiLCAoKSA9PiB7XG4gICAgICBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKHN0YWNrLCBcIlN5bnRoVGVzdFwiLCB7XG4gICAgICAgIG5hbWU6IFwic3ludGgtdGVzdFwiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3Rlc3Qtdm1cIixcbiAgICAgICAgd29ya3NwYWNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuT3BlcmF0aW9uYWxJbnNpZ2h0cy93b3Jrc3BhY2VzL3Rlc3Qtd29ya3NwYWNlXCIsXG4gICAgICAgIGxvZ3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjYXRlZ29yeTogXCJBdWRpdEV2ZW50XCIsXG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcblxuICAgICAgY29uc3Qgc3RhY2tDb25maWcgPSBKU09OLnBhcnNlKHN5bnRoZXNpemVkKTtcbiAgICAgIGV4cGVjdChzdGFja0NvbmZpZy5yZXNvdXJjZSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBtdWx0aXBsZSBkaWFnbm9zdGljIHNldHRpbmdzIGluIHRoZSBzYW1lIHN0YWNrXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzMSA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3Moc3RhY2ssIFwiRGlhZ25vc3RpY3MxXCIsIHtcbiAgICAgICAgbmFtZTogXCJkaWFnbm9zdGljcy0xXCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZXMvdm0xXCIsXG4gICAgICAgIHdvcmtzcGFjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk9wZXJhdGlvbmFsSW5zaWdodHMvd29ya3NwYWNlcy90ZXN0LXdvcmtzcGFjZVwiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzMiA9IG5ldyBEaWFnbm9zdGljU2V0dGluZ3Moc3RhY2ssIFwiRGlhZ25vc3RpY3MyXCIsIHtcbiAgICAgICAgbmFtZTogXCJkaWFnbm9zdGljcy0yXCIsXG4gICAgICAgIHRhcmdldFJlc291cmNlSWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZXMvdm0yXCIsXG4gICAgICAgIHN0b3JhZ2VBY2NvdW50SWQ6XG4gICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHMvYXJjaGl2ZS1zdG9yYWdlXCIsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAxNi0wOS0wMVwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkaWFnbm9zdGljczEucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyMS0wNS0wMS1wcmV2aWV3XCIpO1xuICAgICAgZXhwZWN0KGRpYWdub3N0aWNzMi5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDE2LTA5LTAxXCIpO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBDb21wbGV4IFNjZW5hcmlvc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGRlc2NyaWJlKFwiQ29tcGxleCBTY2VuYXJpb3NcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBjb21wcmVoZW5zaXZlIGRpYWdub3N0aWMgc2V0dGluZ3MgY29uZmlndXJhdGlvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBsb2dzOiBEaWFnbm9zdGljTG9nQ29uZmlnW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBjYXRlZ29yeTogXCJBdWRpdEV2ZW50XCIsXG4gICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICByZXRlbnRpb25Qb2xpY3k6IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBkYXlzOiAzNjUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5OiBcIlNlY3VyaXR5RXZlbnRcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHJldGVudGlvblBvbGljeToge1xuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRheXM6IDM2NSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY2F0ZWdvcnk6IFwiQWRtaW5pc3RyYXRpdmVcIixcbiAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IG1ldHJpY3M6IERpYWdub3N0aWNNZXRyaWNDb25maWdbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3J5OiBcIkFsbE1ldHJpY3NcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHJldGVudGlvblBvbGljeToge1xuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRheXM6IDMwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBwcm9wczogRGlhZ25vc3RpY1NldHRpbmdzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwiY29tcHJlaGVuc2l2ZS1kaWFnbm9zdGljc1wiLFxuICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3Rlc3Qtc3RvcmFnZVwiLFxuICAgICAgICB3b3Jrc3BhY2VJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdC13b3Jrc3BhY2VcIixcbiAgICAgICAgc3RvcmFnZUFjY291bnRJZDpcbiAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9hcmNoaXZlLXN0b3JhZ2VcIixcbiAgICAgICAgZXZlbnRIdWJBdXRob3JpemF0aW9uUnVsZUlkOlxuICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0LkV2ZW50SHViL25hbWVzcGFjZXMvdGVzdC1laC9hdXRob3JpemF0aW9uUnVsZXMvdGVzdC1ydWxlXCIsXG4gICAgICAgIGV2ZW50SHViTmFtZTogXCJzZWN1cml0eS1ldmVudHNcIixcbiAgICAgICAgbG9ncyxcbiAgICAgICAgbWV0cmljcyxcbiAgICAgICAgbG9nQW5hbHl0aWNzRGVzdGluYXRpb25UeXBlOiBcIkRlZGljYXRlZFwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY1NldHRpbmdzKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJDb21wcmVoZW5zaXZlQ29uZmlnXCIsXG4gICAgICAgIHByb3BzLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHJlc291cmNlQm9keSA9IChkaWFnbm9zdGljcyBhcyBhbnkpLmNyZWF0ZVJlc291cmNlQm9keShwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkucHJvcGVydGllcy53b3Jrc3BhY2VJZCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkucHJvcGVydGllcy5zdG9yYWdlQWNjb3VudElkKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHJlc291cmNlQm9keS5wcm9wZXJ0aWVzLmV2ZW50SHViQXV0aG9yaXphdGlvblJ1bGVJZCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkucHJvcGVydGllcy5ldmVudEh1Yk5hbWUpLnRvQmUoXCJzZWN1cml0eS1ldmVudHNcIik7XG4gICAgICBleHBlY3QocmVzb3VyY2VCb2R5LnByb3BlcnRpZXMubG9ncykudG9IYXZlTGVuZ3RoKDMpO1xuICAgICAgZXhwZWN0KHJlc291cmNlQm9keS5wcm9wZXJ0aWVzLm1ldHJpY3MpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUJvZHkucHJvcGVydGllcy5sb2dBbmFseXRpY3NEZXN0aW5hdGlvblR5cGUpLnRvQmUoXG4gICAgICAgIFwiRGVkaWNhdGVkXCIsXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* - JSII compliance for multi-language support
|
|
16
16
|
* - Conditional DNS forwarding for hybrid scenarios
|
|
17
17
|
*/
|
|
18
|
-
import * as
|
|
18
|
+
import * as cdktn from "cdktn";
|
|
19
19
|
import { Construct } from "constructs";
|
|
20
20
|
import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
|
|
21
21
|
import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
@@ -117,12 +117,12 @@ export interface DnsForwardingRulesetBody {
|
|
|
117
117
|
*/
|
|
118
118
|
export declare class DnsForwardingRuleset extends AzapiResource {
|
|
119
119
|
readonly props: DnsForwardingRulesetProps;
|
|
120
|
-
readonly idOutput:
|
|
121
|
-
readonly locationOutput:
|
|
122
|
-
readonly nameOutput:
|
|
123
|
-
readonly tagsOutput:
|
|
124
|
-
readonly provisioningStateOutput:
|
|
125
|
-
readonly resourceGuidOutput:
|
|
120
|
+
readonly idOutput: cdktn.TerraformOutput;
|
|
121
|
+
readonly locationOutput: cdktn.TerraformOutput;
|
|
122
|
+
readonly nameOutput: cdktn.TerraformOutput;
|
|
123
|
+
readonly tagsOutput: cdktn.TerraformOutput;
|
|
124
|
+
readonly provisioningStateOutput: cdktn.TerraformOutput;
|
|
125
|
+
readonly resourceGuidOutput: cdktn.TerraformOutput;
|
|
126
126
|
/**
|
|
127
127
|
* Creates a new Azure DNS Forwarding Ruleset using the AzapiResource framework
|
|
128
128
|
*
|
|
@@ -20,7 +20,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
20
20
|
* - JSII compliance for multi-language support
|
|
21
21
|
* - Conditional DNS forwarding for hybrid scenarios
|
|
22
22
|
*/
|
|
23
|
-
const
|
|
23
|
+
const cdktn = require("cdktn");
|
|
24
24
|
const dns_forwarding_ruleset_schemas_1 = require("./dns-forwarding-ruleset-schemas");
|
|
25
25
|
const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
|
|
26
26
|
/**
|
|
@@ -84,27 +84,27 @@ class DnsForwardingRuleset extends azapi_resource_1.AzapiResource {
|
|
|
84
84
|
this.props = props;
|
|
85
85
|
// Extract properties from the AZAPI resource outputs
|
|
86
86
|
// Create Terraform outputs
|
|
87
|
-
this.idOutput = new
|
|
87
|
+
this.idOutput = new cdktn.TerraformOutput(this, "id", {
|
|
88
88
|
value: this.id,
|
|
89
89
|
description: "The ID of the DNS Forwarding Ruleset",
|
|
90
90
|
});
|
|
91
|
-
this.locationOutput = new
|
|
91
|
+
this.locationOutput = new cdktn.TerraformOutput(this, "location", {
|
|
92
92
|
value: `\${${this.terraformResource.fqn}.location}`,
|
|
93
93
|
description: "The location of the DNS Forwarding Ruleset",
|
|
94
94
|
});
|
|
95
|
-
this.nameOutput = new
|
|
95
|
+
this.nameOutput = new cdktn.TerraformOutput(this, "name", {
|
|
96
96
|
value: `\${${this.terraformResource.fqn}.name}`,
|
|
97
97
|
description: "The name of the DNS Forwarding Ruleset",
|
|
98
98
|
});
|
|
99
|
-
this.tagsOutput = new
|
|
99
|
+
this.tagsOutput = new cdktn.TerraformOutput(this, "tags", {
|
|
100
100
|
value: `\${${this.terraformResource.fqn}.tags}`,
|
|
101
101
|
description: "The tags assigned to the DNS Forwarding Ruleset",
|
|
102
102
|
});
|
|
103
|
-
this.provisioningStateOutput = new
|
|
103
|
+
this.provisioningStateOutput = new cdktn.TerraformOutput(this, "provisioning_state", {
|
|
104
104
|
value: `\${${this.terraformResource.fqn}.output.properties.provisioningState}`,
|
|
105
105
|
description: "The provisioning state of the DNS Forwarding Ruleset resource",
|
|
106
106
|
});
|
|
107
|
-
this.resourceGuidOutput = new
|
|
107
|
+
this.resourceGuidOutput = new cdktn.TerraformOutput(this, "resource_guid", {
|
|
108
108
|
value: `\${${this.terraformResource.fqn}.output.properties.resourceGuid}`,
|
|
109
109
|
description: "The unique identifier for the DNS Forwarding Ruleset resource",
|
|
110
110
|
});
|
|
@@ -207,8 +207,8 @@ class DnsForwardingRuleset extends azapi_resource_1.AzapiResource {
|
|
|
207
207
|
}
|
|
208
208
|
exports.DnsForwardingRuleset = DnsForwardingRuleset;
|
|
209
209
|
_a = JSII_RTTI_SYMBOL_1;
|
|
210
|
-
DnsForwardingRuleset[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsForwardingRuleset", version: "
|
|
210
|
+
DnsForwardingRuleset[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsForwardingRuleset", version: "2.5.0" };
|
|
211
211
|
(() => {
|
|
212
212
|
azapi_resource_1.AzapiResource.registerSchemas(dns_forwarding_ruleset_schemas_1.DNS_FORWARDING_RULESET_TYPE, dns_forwarding_ruleset_schemas_1.ALL_DNS_FORWARDING_RULESET_VERSIONS);
|
|
213
213
|
})();
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLWZvcndhcmRpbmctcnVsZXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1kbnNmb3J3YXJkaW5ncnVsZXNldC9saWIvZG5zLWZvcndhcmRpbmctcnVsZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUgsK0JBQStCO0FBRS9CLHFGQUcwQztBQUMxQyw4RUFHbUQ7QUF3RG5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOENHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSw4QkFBYTtJQWtCckQsb0JBQW9CO0lBRXBCOzs7Ozs7T0FNRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0M7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIscURBQXFEO1FBRXJELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3BELEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNkLFdBQVcsRUFBRSxzQ0FBc0M7U0FDcEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNoRSxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxZQUFZO1lBQ25ELFdBQVcsRUFBRSw0Q0FBNEM7U0FDMUQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUN4RCxLQUFLLEVBQUUsTUFBTSxJ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QyxHQUFXLEVBQUUsS0FBYTtRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBYSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsR0FBVztRQUMxQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELGdGQUFnRjtJQUNoRix5QkFBeUI7SUFDekIsZ0ZBQWdGO0lBRWhGOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUM5QyxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhO2FBQ3pDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQXZMSCxvREF3TEM7OztBQXZMQztJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUMzQiw0REFBMkIsRUFDM0Isb0VBQW1DLENBQ3BDLENBQUM7QUFDSixDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBBenVyZSBETlMgRm9yd2FyZGluZyBSdWxlc2V0IGltcGxlbWVudGF0aW9uIHVzaW5nIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHVuaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIGNyZWF0aW5nIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRzXG4gKiB0aGF0IHdvcmsgd2l0aCBETlMgUmVzb2x2ZXIgT3V0Ym91bmQgRW5kcG9pbnRzIHRvIGVuYWJsZSBjb25kaXRpb25hbCBmb3J3YXJkaW5nIHJ1bGVzLlxuICpcbiAqIFN1cHBvcnRlZCBBUEkgVmVyc2lvbnM6XG4gKiAtIDIwMjItMDctMDEgKEFjdGl2ZSwgTGF0ZXN0KVxuICpcbiAqIEZlYXR1cmVzOlxuICogLSBBdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvbiB3aGVuIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gKiAtIEV4cGxpY2l0IHZlcnNpb24gcGlubmluZyBmb3Igc3RhYmlsaXR5IHJlcXVpcmVtZW50c1xuICogLSBTY2hlbWEtZHJpdmVuIHZhbGlkYXRpb24gYW5kIHRyYW5zZm9ybWF0aW9uXG4gKiAtIEZ1bGwgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIGludGVyZmFjZVxuICogLSBKU0lJIGNvbXBsaWFuY2UgZm9yIG11bHRpLWxhbmd1YWdlIHN1cHBvcnRcbiAqIC0gQ29uZGl0aW9uYWwgRE5TIGZvcndhcmRpbmcgZm9yIGh5YnJpZCBzY2VuYXJpb3NcbiAqL1xuXG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBTExfRE5TX0ZPUldBUkRJTkdfUlVMRVNFVF9WRVJTSU9OUyxcbiAgRE5TX0ZPUldBUkRJTkdfUlVMRVNFVF9UWVBFLFxufSBmcm9tIFwiLi9kbnMtZm9yd2FyZGluZy1ydWxlc2V0LXNjaGVtYXNcIjtcbmltcG9ydCB7XG4gIEF6YXBpUmVzb3VyY2UsXG4gIEF6YXBpUmVzb3VyY2VQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQgeyBBcGlTY2hlbWEgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIHVuaWZpZWQgQXp1cmUgRE5TIEZvcndhcmRpbmcgUnVsZXNldFxuICpcbiAqIEV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHdpdGggRE5TIEZvcndhcmRpbmcgUnVsZXNldCBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG5zRm9yd2FyZGluZ1J1bGVzZXRQcm9wcyBleHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBBcnJheSBvZiByZXNvdXJjZSBJRHMgb2YgRE5TIFJlc29sdmVyIE91dGJvdW5kIEVuZHBvaW50c1xuICAgKiBUaGUgcnVsZXNldCB1c2VzIHRoZXNlIGVuZHBvaW50cyB0byBmb3J3YXJkIEROUyBxdWVyaWVzIGJhc2VkIG9uIHRoZSBydWxlc1xuICAgKiBAZXhhbXBsZSBbXCIvc3Vic2NyaXB0aW9ucy8uLi4vZG5zUmVzb2x2ZXJzL3Jlc29sdmVyMS9vdXRib3VuZEVuZHBvaW50cy9lbmRwb2ludDFcIl1cbiAgICovXG4gIHJlYWRvbmx5IGRuc1Jlc29sdmVyT3V0Ym91bmRFbmRwb2ludElkczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaWZlY3ljbGUgcnVsZXMgdG8gaWdub3JlIGNoYW5nZXNcbiAgICogQGV4YW1wbGUgW1widGFnc1wiXVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlQ2hhbmdlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBncm91cCBJRCB3aGVyZSB0aGUgRE5TIEZvcndhcmRpbmcgUnVsZXNldCB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXBJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgYm9keSBpbnRlcmZhY2UgZm9yIEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXQgQVBJIGNhbGxzXG4gKiBUaGlzIG1hdGNoZXMgdGhlIEF6dXJlIFJFU1QgQVBJIHNjaGVtYVxuICovXG4vKipcbiAqIEROUyBSZXNvbHZlciBPdXRib3VuZCBFbmRwb2ludCByZWZlcmVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEbnNSZXNvbHZlck91dGJvdW5kRW5kcG9pbnRSZWZlcmVuY2Uge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBETlMgRm9yd2FyZGluZyBSdWxlc2V0IGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEbnNGb3J3YXJkaW5nUnVsZXNldFByb3BlcnRpZXMge1xuICByZWFkb25seSBkbnNSZXNvbHZlck91dGJvdW5kRW5kcG9pbnRzOiBEbnNSZXNvbHZlck91dGJvdW5kRW5kcG9pbnRSZWZlcmVuY2VbXTtcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgYm9keSBpbnRlcmZhY2UgZm9yIEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXQgQVBJIGNhbGxzXG4gKiBUaGlzIG1hdGNoZXMgdGhlIEF6dXJlIFJFU1QgQVBJIHNjaGVtYVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERuc0ZvcndhcmRpbmdSdWxlc2V0Qm9keSB7XG4gIHJlYWRvbmx5IGxvY2F0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICByZWFkb25seSBwcm9wZXJ0aWVzOiBEbnNGb3J3YXJkaW5nUnVsZXNldFByb3BlcnRpZXM7XG59XG5cbi8qKlxuICogVW5pZmllZCBBenVyZSBETlMgRm9yd2FyZGluZyBSdWxlc2V0IGltcGxlbWVudGF0aW9uXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHVuaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIGNyZWF0aW5nIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRzXG4gKiB0aGF0IGVuYWJsZSBjb25kaXRpb25hbCBmb3J3YXJkaW5nIG9mIEROUyBxdWVyaWVzLiBSdWxlc2V0cyB3b3JrIHdpdGggRE5TIFJlc29sdmVyXG4gKiBPdXRib3VuZCBFbmRwb2ludHMgdG8gcm91dGUgcXVlcmllcyB0byBzcGVjaWZpYyB0YXJnZXQgRE5TIHNlcnZlcnMgYmFzZWQgb24gZG9tYWluIG5hbWVzLlxuICpcbiAqIEtleSBSZXF1aXJlbWVudHM6XG4gKiAtIFJlcXVpcmVzIGF0IGxlYXN0IG9uZSBETlMgUmVzb2x2ZXIgT3V0Ym91bmQgRW5kcG9pbnRcbiAqIC0gRWFjaCBydWxlc2V0IGNhbiBjb250YWluIHVwIHRvIDEwMDAgZm9yd2FyZGluZyBydWxlc1xuICogLSBSZWdpb25hbCByZXNvdXJjZSAobXVzdCBtYXRjaCBvdXRib3VuZCBlbmRwb2ludCBsb2NhdGlvbilcbiAqIC0gQ2FuIGJlIGxpbmtlZCB0byBtdWx0aXBsZSB2aXJ0dWFsIG5ldHdvcmtzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIEROUyBmb3J3YXJkaW5nIHJ1bGVzZXQgd2l0aCBhdXRvbWF0aWMgdmVyc2lvbiByZXNvbHV0aW9uOlxuICogY29uc3QgcnVsZXNldCA9IG5ldyBEbnNGb3J3YXJkaW5nUnVsZXNldCh0aGlzLCBcInJ1bGVzZXRcIiwge1xuICogICBuYW1lOiBcIm15LXJ1bGVzZXRcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgZG5zUmVzb2x2ZXJPdXRib3VuZEVuZHBvaW50SWRzOiBbb3V0Ym91bmRFbmRwb2ludC5pZF0sXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRE5TIGZvcndhcmRpbmcgcnVsZXNldCB3aXRoIHRhZ3M6XG4gKiBjb25zdCBydWxlc2V0ID0gbmV3IERuc0ZvcndhcmRpbmdSdWxlc2V0KHRoaXMsIFwicnVsZXNldFwiLCB7XG4gKiAgIG5hbWU6IFwibXktcnVsZXNldFwiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICogICBkbnNSZXNvbHZlck91dGJvdW5kRW5kcG9pbnRJZHM6IFtvdXRib3VuZEVuZHBvaW50LmlkXSxcbiAqICAgdGFnczoge1xuICogICAgIGVudmlyb25tZW50OiBcInByb2R1Y3Rpb25cIixcbiAqICAgICBwdXJwb3NlOiBcImh5YnJpZC1kbnNcIlxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRE5TIGZvcndhcmRpbmcgcnVsZXNldCB3aXRoIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZzpcbiAqIGNvbnN0IHJ1bGVzZXQgPSBuZXcgRG5zRm9yd2FyZGluZ1J1bGVzZXQodGhpcywgXCJydWxlc2V0XCIsIHtcbiAqICAgbmFtZTogXCJteS1ydWxlc2V0XCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gKiAgIGRuc1Jlc29sdmVyT3V0Ym91bmRFbmRwb2ludElkczogW291dGJvdW5kRW5kcG9pbnQuaWRdLFxuICogICBhcGlWZXJzaW9uOiBcIjIwMjItMDctMDFcIixcbiAqIH0pO1xuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBEbnNGb3J3YXJkaW5nUnVsZXNldCBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKFxuICAgICAgRE5TX0ZPUldBUkRJTkdfUlVMRVNFVF9UWVBFLFxuICAgICAgQUxMX0ROU19GT1JXQVJESU5HX1JVTEVTRVRfVkVSU0lPTlMsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogRG5zRm9yd2FyZGluZ1J1bGVzZXRQcm9wcztcblxuICAvLyBPdXRwdXQgcHJvcGVydGllcyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nXG4gIHB1YmxpYyByZWFkb25seSBpZE91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYXRpb25PdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHRhZ3NPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZUd1aWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcblxuICAvLyBQdWJsaWMgcHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXQgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEbnNGb3J3YXJkaW5nUnVsZXNldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICAvLyBFeHRyYWN0IHByb3BlcnRpZXMgZnJvbSB0aGUgQVpBUEkgcmVzb3VyY2Ugb3V0cHV0c1xuXG4gICAgLy8gQ3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgRE5TIEZvcndhcmRpbmcgUnVsZXNldFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5sb2NhdGlvbk91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJsb2NhdGlvblwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5sb2NhdGlvbn1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGxvY2F0aW9uIG9mIHRoZSBETlMgRm9yd2FyZGluZyBSdWxlc2V0XCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwibmFtZVwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5uYW1lfWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgRE5TIEZvcndhcmRpbmcgUnVsZXNldFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy50YWdzT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcInRhZ3NcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0udGFnc31gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHRhZ3MgYXNzaWduZWQgdG8gdGhlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRcIixcbiAgICB9KTtcblxuICAgIHRoaXMucHJvdmlzaW9uaW5nU3RhdGVPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwicHJvdmlzaW9uaW5nX3N0YXRlXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByb3Zpc2lvbmluZ1N0YXRlfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgIFwiVGhlIHByb3Zpc2lvbmluZyBzdGF0ZSBvZiB0aGUgRE5TIEZvcndhcmRpbmcgUnVsZXNldCByZXNvdXJjZVwiLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5yZXNvdXJjZUd1aWRPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwicmVzb3VyY2VfZ3VpZFwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5yZXNvdXJjZUd1aWR9YCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXQgcmVzb3VyY2VcIixcbiAgICB9KTtcblxuICAgIC8vIE92ZXJyaWRlIGxvZ2ljYWwgSURzXG4gICAgdGhpcy5pZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImlkXCIpO1xuICAgIHRoaXMubG9jYXRpb25PdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJsb2NhdGlvblwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuICAgIHRoaXMudGFnc091dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInRhZ3NcIik7XG4gICAgdGhpcy5wcm92aXNpb25pbmdTdGF0ZU91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInByb3Zpc2lvbmluZ19zdGF0ZVwiKTtcbiAgICB0aGlzLnJlc291cmNlR3VpZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInJlc291cmNlX2d1aWRcIik7XG5cbiAgICAvLyBBcHBseSBpZ25vcmUgY2hhbmdlcyBpZiBzcGVjaWZpZWRcbiAgICB0aGlzLl9hcHBseUlnbm9yZUNoYW5nZXMoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFJFUVVJUkVEIEFCU1RSQUNUIE1FVEhPRFMgRlJPTSBBemFwaVJlc291cmNlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjItMDctMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBETlMgRm9yd2FyZGluZyBSdWxlc2V0c1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBETlNfRk9SV0FSRElOR19SVUxFU0VUX1RZUEU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQVBJIHNjaGVtYSBmb3IgdGhlIHJlc29sdmVkIHZlcnNpb25cbiAgICovXG4gIHByb3RlY3RlZCBhcGlTY2hlbWEoKTogQXBpU2NoZW1hIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlU2NoZW1hKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgbG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVxdWlyZXNMb2NhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZUJvZHkocHJvcHM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIERuc0ZvcndhcmRpbmdSdWxlc2V0UHJvcHM7XG5cbiAgICBjb25zdCBib2R5OiBEbnNGb3J3YXJkaW5nUnVsZXNldEJvZHkgPSB7XG4gICAgICBsb2NhdGlvbjogdGhpcy5sb2NhdGlvbiEsXG4gICAgICB0YWdzOiB0aGlzLmFsbFRhZ3MoKSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgZG5zUmVzb2x2ZXJPdXRib3VuZEVuZHBvaW50czpcbiAgICAgICAgICB0eXBlZFByb3BzLmRuc1Jlc29sdmVyT3V0Ym91bmRFbmRwb2ludElkcy5tYXAoKGlkKSA9PiAoeyBpZCB9KSksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gYm9keTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBVQkxJQyBNRVRIT0RTIEZPUiBETlMgRk9SV0FSRElORyBSVUxFU0VUIE9QRVJBVElPTlNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcm92aXNpb25pbmcgc3RhdGUgb2YgdGhlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRcbiAgICovXG4gIHB1YmxpYyBnZXQgcHJvdmlzaW9uaW5nU3RhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5wcm92aXNpb25pbmdTdGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBETlMgRm9yd2FyZGluZyBSdWxlc2V0IHJlc291cmNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlR3VpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnJlc291cmNlR3VpZH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHRhZyB0byB0aGUgRE5TIEZvcndhcmRpbmcgUnVsZXNldFxuICAgKi9cbiAgcHVibGljIGFkZFRhZyhrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcm9wcy50YWdzKSB7XG4gICAgICAodGhpcy5wcm9wcyBhcyBhbnkpLnRhZ3MgPSB7fTtcbiAgICB9XG4gICAgdGhpcy5wcm9wcy50YWdzIVtrZXldID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgdGFnIGZyb20gdGhlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVUYWcoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy50YWdzICYmIHRoaXMucHJvcHMudGFnc1trZXldKSB7XG4gICAgICBkZWxldGUgdGhpcy5wcm9wcy50YWdzW2tleV07XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFJJVkFURSBIRUxQRVIgTUVUSE9EU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlcyBpZiBzcGVjaWZpZWQgaW4gcHJvcHNcbiAgICovXG4gIHByaXZhdGUgX2FwcGx5SWdub3JlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzICYmIHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRlcnJhZm9ybVJlc291cmNlLmFkZE92ZXJyaWRlKFwibGlmZWN5Y2xlXCIsIHtcbiAgICAgICAgaWdub3JlX2NoYW5nZXM6IHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLWZvcndhcmRpbmctcnVsZXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1kbnNmb3J3YXJkaW5ncnVsZXNldC9saWIvZG5zLWZvcndhcmRpbmctcnVsZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUgsK0JBQStCO0FBRS9CLHFGQUcwQztBQUMxQyw4RUFHbUQ7QUF3RG5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOENHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSw4QkFBYTtJQWtCckQsb0JBQW9CO0lBRXBCOzs7Ozs7T0FNRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0M7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIscURBQXFEO1FBRXJELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3BELEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNkLFdBQVcsRUFBRSxzQ0FBc0M7U0FDcEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNoRSxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxZQUFZO1lBQ25ELFdBQVcsRUFBRSw0Q0FBNEM7U0FDMUQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUN4RCxLQUFLLEVBQUUsTUFBTSxJ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QyxHQUFXLEVBQUUsS0FBYTtRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBYSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsR0FBVztRQUMxQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELGdGQUFnRjtJQUNoRix5QkFBeUI7SUFDekIsZ0ZBQWdGO0lBRWhGOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUM5QyxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhO2FBQ3pDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQXZMSCxvREF3TEM7OztBQXZMQztJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUMzQiw0REFBMkIsRUFDM0Isb0VBQW1DLENBQ3BDLENBQUM7QUFDSixDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBBenVyZSBETlMgRm9yd2FyZGluZyBSdWxlc2V0IGltcGxlbWVudGF0aW9uIHVzaW5nIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHVuaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIGNyZWF0aW5nIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRzXG4gKiB0aGF0IHdvcmsgd2l0aCBETlMgUmVzb2x2ZXIgT3V0Ym91bmQgRW5kcG9pbnRzIHRvIGVuYWJsZSBjb25kaXRpb25hbCBmb3J3YXJkaW5nIHJ1bGVzLlxuICpcbiAqIFN1cHBvcnRlZCBBUEkgVmVyc2lvbnM6XG4gKiAtIDIwMjItMDctMDEgKEFjdGl2ZSwgTGF0ZXN0KVxuICpcbiAqIEZlYXR1cmVzOlxuICogLSBBdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvbiB3aGVuIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gKiAtIEV4cGxpY2l0IHZlcnNpb24gcGlubmluZyBmb3Igc3RhYmlsaXR5IHJlcXVpcmVtZW50c1xuICogLSBTY2hlbWEtZHJpdmVuIHZhbGlkYXRpb24gYW5kIHRyYW5zZm9ybWF0aW9uXG4gKiAtIEZ1bGwgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIGludGVyZmFjZVxuICogLSBKU0lJIGNvbXBsaWFuY2UgZm9yIG11bHRpLWxhbmd1YWdlIHN1cHBvcnRcbiAqIC0gQ29uZGl0aW9uYWwgRE5TIGZvcndhcmRpbmcgZm9yIGh5YnJpZCBzY2VuYXJpb3NcbiAqL1xuXG5pbXBvcnQgKiBhcyBjZGt0biBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBTExfRE5TX0ZPUldBUkRJTkdfUlVMRVNFVF9WRVJTSU9OUyxcbiAgRE5TX0ZPUldBUkRJTkdfUlVMRVNFVF9UWVBFLFxufSBmcm9tIFwiLi9kbnMtZm9yd2FyZGluZy1ydWxlc2V0LXNjaGVtYXNcIjtcbmltcG9ydCB7XG4gIEF6YXBpUmVzb3VyY2UsXG4gIEF6YXBpUmVzb3VyY2VQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQgeyBBcGlTY2hlbWEgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIHVuaWZpZWQgQXp1cmUgRE5TIEZvcndhcmRpbmcgUnVsZXNldFxuICpcbiAqIEV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHdpdGggRE5TIEZvcndhcmRpbmcgUnVsZXNldCBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG5zRm9yd2FyZGluZ1J1bGVzZXRQcm9wcyBleHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBBcnJheSBvZiByZXNvdXJjZSBJRHMgb2YgRE5TIFJlc29sdmVyIE91dGJvdW5kIEVuZHBvaW50c1xuICAgKiBUaGUgcnVsZXNldCB1c2VzIHRoZXNlIGVuZHBvaW50cyB0byBmb3J3YXJkIEROUyBxdWVyaWVzIGJhc2VkIG9uIHRoZSBydWxlc1xuICAgKiBAZXhhbXBsZSBbXCIvc3Vic2NyaXB0aW9ucy8uLi4vZG5zUmVzb2x2ZXJzL3Jlc29sdmVyMS9vdXRib3VuZEVuZHBvaW50cy9lbmRwb2ludDFcIl1cbiAgICovXG4gIHJlYWRvbmx5IGRuc1Jlc29sdmVyT3V0Ym91bmRFbmRwb2ludElkczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaWZlY3ljbGUgcnVsZXMgdG8gaWdub3JlIGNoYW5nZXNcbiAgICogQGV4YW1wbGUgW1widGFnc1wiXVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlQ2hhbmdlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBncm91cCBJRCB3aGVyZSB0aGUgRE5TIEZvcndhcmRpbmcgUnVsZXNldCB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXBJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgYm9keSBpbnRlcmZhY2UgZm9yIEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXQgQVBJIGNhbGxzXG4gKiBUaGlzIG1hdGNoZXMgdGhlIEF6dXJlIFJFU1QgQVBJIHNjaGVtYVxuICovXG4vKipcbiAqIEROUyBSZXNvbHZlciBPdXRib3VuZCBFbmRwb2ludCByZWZlcmVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEbnNSZXNvbHZlck91dGJvdW5kRW5kcG9pbnRSZWZlcmVuY2Uge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBETlMgRm9yd2FyZGluZyBSdWxlc2V0IGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEbnNGb3J3YXJkaW5nUnVsZXNldFByb3BlcnRpZXMge1xuICByZWFkb25seSBkbnNSZXNvbHZlck91dGJvdW5kRW5kcG9pbnRzOiBEbnNSZXNvbHZlck91dGJvdW5kRW5kcG9pbnRSZWZlcmVuY2VbXTtcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgYm9keSBpbnRlcmZhY2UgZm9yIEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXQgQVBJIGNhbGxzXG4gKiBUaGlzIG1hdGNoZXMgdGhlIEF6dXJlIFJFU1QgQVBJIHNjaGVtYVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERuc0ZvcndhcmRpbmdSdWxlc2V0Qm9keSB7XG4gIHJlYWRvbmx5IGxvY2F0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICByZWFkb25seSBwcm9wZXJ0aWVzOiBEbnNGb3J3YXJkaW5nUnVsZXNldFByb3BlcnRpZXM7XG59XG5cbi8qKlxuICogVW5pZmllZCBBenVyZSBETlMgRm9yd2FyZGluZyBSdWxlc2V0IGltcGxlbWVudGF0aW9uXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHVuaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIGNyZWF0aW5nIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRzXG4gKiB0aGF0IGVuYWJsZSBjb25kaXRpb25hbCBmb3J3YXJkaW5nIG9mIEROUyBxdWVyaWVzLiBSdWxlc2V0cyB3b3JrIHdpdGggRE5TIFJlc29sdmVyXG4gKiBPdXRib3VuZCBFbmRwb2ludHMgdG8gcm91dGUgcXVlcmllcyB0byBzcGVjaWZpYyB0YXJnZXQgRE5TIHNlcnZlcnMgYmFzZWQgb24gZG9tYWluIG5hbWVzLlxuICpcbiAqIEtleSBSZXF1aXJlbWVudHM6XG4gKiAtIFJlcXVpcmVzIGF0IGxlYXN0IG9uZSBETlMgUmVzb2x2ZXIgT3V0Ym91bmQgRW5kcG9pbnRcbiAqIC0gRWFjaCBydWxlc2V0IGNhbiBjb250YWluIHVwIHRvIDEwMDAgZm9yd2FyZGluZyBydWxlc1xuICogLSBSZWdpb25hbCByZXNvdXJjZSAobXVzdCBtYXRjaCBvdXRib3VuZCBlbmRwb2ludCBsb2NhdGlvbilcbiAqIC0gQ2FuIGJlIGxpbmtlZCB0byBtdWx0aXBsZSB2aXJ0dWFsIG5ldHdvcmtzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIEROUyBmb3J3YXJkaW5nIHJ1bGVzZXQgd2l0aCBhdXRvbWF0aWMgdmVyc2lvbiByZXNvbHV0aW9uOlxuICogY29uc3QgcnVsZXNldCA9IG5ldyBEbnNGb3J3YXJkaW5nUnVsZXNldCh0aGlzLCBcInJ1bGVzZXRcIiwge1xuICogICBuYW1lOiBcIm15LXJ1bGVzZXRcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgZG5zUmVzb2x2ZXJPdXRib3VuZEVuZHBvaW50SWRzOiBbb3V0Ym91bmRFbmRwb2ludC5pZF0sXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRE5TIGZvcndhcmRpbmcgcnVsZXNldCB3aXRoIHRhZ3M6XG4gKiBjb25zdCBydWxlc2V0ID0gbmV3IERuc0ZvcndhcmRpbmdSdWxlc2V0KHRoaXMsIFwicnVsZXNldFwiLCB7XG4gKiAgIG5hbWU6IFwibXktcnVsZXNldFwiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICogICBkbnNSZXNvbHZlck91dGJvdW5kRW5kcG9pbnRJZHM6IFtvdXRib3VuZEVuZHBvaW50LmlkXSxcbiAqICAgdGFnczoge1xuICogICAgIGVudmlyb25tZW50OiBcInByb2R1Y3Rpb25cIixcbiAqICAgICBwdXJwb3NlOiBcImh5YnJpZC1kbnNcIlxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRE5TIGZvcndhcmRpbmcgcnVsZXNldCB3aXRoIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZzpcbiAqIGNvbnN0IHJ1bGVzZXQgPSBuZXcgRG5zRm9yd2FyZGluZ1J1bGVzZXQodGhpcywgXCJydWxlc2V0XCIsIHtcbiAqICAgbmFtZTogXCJteS1ydWxlc2V0XCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gKiAgIGRuc1Jlc29sdmVyT3V0Ym91bmRFbmRwb2ludElkczogW291dGJvdW5kRW5kcG9pbnQuaWRdLFxuICogICBhcGlWZXJzaW9uOiBcIjIwMjItMDctMDFcIixcbiAqIH0pO1xuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBEbnNGb3J3YXJkaW5nUnVsZXNldCBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKFxuICAgICAgRE5TX0ZPUldBUkRJTkdfUlVMRVNFVF9UWVBFLFxuICAgICAgQUxMX0ROU19GT1JXQVJESU5HX1JVTEVTRVRfVkVSU0lPTlMsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogRG5zRm9yd2FyZGluZ1J1bGVzZXRQcm9wcztcblxuICAvLyBPdXRwdXQgcHJvcGVydGllcyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nXG4gIHB1YmxpYyByZWFkb25seSBpZE91dHB1dDogY2RrdG4uVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYXRpb25PdXRwdXQ6IGNka3RuLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RuLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHRhZ3NPdXRwdXQ6IGNka3RuLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0OiBjZGt0bi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZUd1aWRPdXRwdXQ6IGNka3RuLlRlcnJhZm9ybU91dHB1dDtcblxuICAvLyBQdWJsaWMgcHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXQgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEbnNGb3J3YXJkaW5nUnVsZXNldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICAvLyBFeHRyYWN0IHByb3BlcnRpZXMgZnJvbSB0aGUgQVpBUEkgcmVzb3VyY2Ugb3V0cHV0c1xuXG4gICAgLy8gQ3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0bi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgRE5TIEZvcndhcmRpbmcgUnVsZXNldFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5sb2NhdGlvbk91dHB1dCA9IG5ldyBjZGt0bi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJsb2NhdGlvblwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5sb2NhdGlvbn1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGxvY2F0aW9uIG9mIHRoZSBETlMgRm9yd2FyZGluZyBSdWxlc2V0XCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVPdXRwdXQgPSBuZXcgY2RrdG4uVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwibmFtZVwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5uYW1lfWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgRE5TIEZvcndhcmRpbmcgUnVsZXNldFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy50YWdzT3V0cHV0ID0gbmV3IGNka3RuLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcInRhZ3NcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0udGFnc31gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHRhZ3MgYXNzaWduZWQgdG8gdGhlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRcIixcbiAgICB9KTtcblxuICAgIHRoaXMucHJvdmlzaW9uaW5nU3RhdGVPdXRwdXQgPSBuZXcgY2RrdG4uVGVycmFmb3JtT3V0cHV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwicHJvdmlzaW9uaW5nX3N0YXRlXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByb3Zpc2lvbmluZ1N0YXRlfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgIFwiVGhlIHByb3Zpc2lvbmluZyBzdGF0ZSBvZiB0aGUgRE5TIEZvcndhcmRpbmcgUnVsZXNldCByZXNvdXJjZVwiLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5yZXNvdXJjZUd1aWRPdXRwdXQgPSBuZXcgY2RrdG4uVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwicmVzb3VyY2VfZ3VpZFwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5yZXNvdXJjZUd1aWR9YCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXQgcmVzb3VyY2VcIixcbiAgICB9KTtcblxuICAgIC8vIE92ZXJyaWRlIGxvZ2ljYWwgSURzXG4gICAgdGhpcy5pZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImlkXCIpO1xuICAgIHRoaXMubG9jYXRpb25PdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJsb2NhdGlvblwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuICAgIHRoaXMudGFnc091dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInRhZ3NcIik7XG4gICAgdGhpcy5wcm92aXNpb25pbmdTdGF0ZU91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInByb3Zpc2lvbmluZ19zdGF0ZVwiKTtcbiAgICB0aGlzLnJlc291cmNlR3VpZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInJlc291cmNlX2d1aWRcIik7XG5cbiAgICAvLyBBcHBseSBpZ25vcmUgY2hhbmdlcyBpZiBzcGVjaWZpZWRcbiAgICB0aGlzLl9hcHBseUlnbm9yZUNoYW5nZXMoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFJFUVVJUkVEIEFCU1RSQUNUIE1FVEhPRFMgRlJPTSBBemFwaVJlc291cmNlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjItMDctMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBETlMgRm9yd2FyZGluZyBSdWxlc2V0c1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBETlNfRk9SV0FSRElOR19SVUxFU0VUX1RZUEU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQVBJIHNjaGVtYSBmb3IgdGhlIHJlc29sdmVkIHZlcnNpb25cbiAgICovXG4gIHByb3RlY3RlZCBhcGlTY2hlbWEoKTogQXBpU2NoZW1hIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlU2NoZW1hKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgbG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVxdWlyZXNMb2NhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZUJvZHkocHJvcHM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIERuc0ZvcndhcmRpbmdSdWxlc2V0UHJvcHM7XG5cbiAgICBjb25zdCBib2R5OiBEbnNGb3J3YXJkaW5nUnVsZXNldEJvZHkgPSB7XG4gICAgICBsb2NhdGlvbjogdGhpcy5sb2NhdGlvbiEsXG4gICAgICB0YWdzOiB0aGlzLmFsbFRhZ3MoKSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgZG5zUmVzb2x2ZXJPdXRib3VuZEVuZHBvaW50czpcbiAgICAgICAgICB0eXBlZFByb3BzLmRuc1Jlc29sdmVyT3V0Ym91bmRFbmRwb2ludElkcy5tYXAoKGlkKSA9PiAoeyBpZCB9KSksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gYm9keTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBVQkxJQyBNRVRIT0RTIEZPUiBETlMgRk9SV0FSRElORyBSVUxFU0VUIE9QRVJBVElPTlNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcm92aXNpb25pbmcgc3RhdGUgb2YgdGhlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRcbiAgICovXG4gIHB1YmxpYyBnZXQgcHJvdmlzaW9uaW5nU3RhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5wcm92aXNpb25pbmdTdGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBETlMgRm9yd2FyZGluZyBSdWxlc2V0IHJlc291cmNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlR3VpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnJlc291cmNlR3VpZH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHRhZyB0byB0aGUgRE5TIEZvcndhcmRpbmcgUnVsZXNldFxuICAgKi9cbiAgcHVibGljIGFkZFRhZyhrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcm9wcy50YWdzKSB7XG4gICAgICAodGhpcy5wcm9wcyBhcyBhbnkpLnRhZ3MgPSB7fTtcbiAgICB9XG4gICAgdGhpcy5wcm9wcy50YWdzIVtrZXldID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgdGFnIGZyb20gdGhlIEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVUYWcoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy50YWdzICYmIHRoaXMucHJvcHMudGFnc1trZXldKSB7XG4gICAgICBkZWxldGUgdGhpcy5wcm9wcy50YWdzW2tleV07XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFJJVkFURSBIRUxQRVIgTUVUSE9EU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlcyBpZiBzcGVjaWZpZWQgaW4gcHJvcHNcbiAgICovXG4gIHByaXZhdGUgX2FwcGx5SWdub3JlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzICYmIHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRlcnJhZm9ybVJlc291cmNlLmFkZE92ZXJyaWRlKFwibGlmZWN5Y2xlXCIsIHtcbiAgICAgICAgaWdub3JlX2NoYW5nZXM6IHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* - JSII compliance for multi-language support
|
|
17
17
|
* - Up to 6 target DNS servers per rule
|
|
18
18
|
*/
|
|
19
|
-
import * as
|
|
19
|
+
import * as cdktn from "cdktn";
|
|
20
20
|
import { Construct } from "constructs";
|
|
21
21
|
import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
|
|
22
22
|
import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
@@ -141,9 +141,9 @@ export declare class ForwardingRule extends AzapiResource {
|
|
|
141
141
|
* The input properties for this Forwarding Rule instance
|
|
142
142
|
*/
|
|
143
143
|
readonly props: ForwardingRuleProps;
|
|
144
|
-
readonly idOutput:
|
|
145
|
-
readonly nameOutput:
|
|
146
|
-
readonly provisioningStateOutput:
|
|
144
|
+
readonly idOutput: cdktn.TerraformOutput;
|
|
145
|
+
readonly nameOutput: cdktn.TerraformOutput;
|
|
146
|
+
readonly provisioningStateOutput: cdktn.TerraformOutput;
|
|
147
147
|
readonly resourceName: string;
|
|
148
148
|
/**
|
|
149
149
|
* Creates a new Azure DNS Forwarding Rule using the AzapiResource framework
|
|
@@ -21,7 +21,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
21
21
|
* - JSII compliance for multi-language support
|
|
22
22
|
* - Up to 6 target DNS servers per rule
|
|
23
23
|
*/
|
|
24
|
-
const
|
|
24
|
+
const cdktn = require("cdktn");
|
|
25
25
|
const forwarding_rule_schemas_1 = require("./forwarding-rule-schemas");
|
|
26
26
|
const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
|
|
27
27
|
/**
|
|
@@ -82,15 +82,15 @@ class ForwardingRule extends azapi_resource_1.AzapiResource {
|
|
|
82
82
|
// Extract properties from the AZAPI resource outputs using Terraform interpolation
|
|
83
83
|
this.resourceName = `\${${this.terraformResource.fqn}.name}`;
|
|
84
84
|
// Create Terraform outputs for easy access and referencing from other resources
|
|
85
|
-
this.idOutput = new
|
|
85
|
+
this.idOutput = new cdktn.TerraformOutput(this, "id", {
|
|
86
86
|
value: this.id,
|
|
87
87
|
description: "The ID of the Forwarding Rule",
|
|
88
88
|
});
|
|
89
|
-
this.nameOutput = new
|
|
89
|
+
this.nameOutput = new cdktn.TerraformOutput(this, "name", {
|
|
90
90
|
value: this.resourceName,
|
|
91
91
|
description: "The name of the Forwarding Rule",
|
|
92
92
|
});
|
|
93
|
-
this.provisioningStateOutput = new
|
|
93
|
+
this.provisioningStateOutput = new cdktn.TerraformOutput(this, "provisioning_state", {
|
|
94
94
|
value: `\${${this.terraformResource.fqn}.output.properties.provisioningState}`,
|
|
95
95
|
description: "The provisioning state of the Forwarding Rule",
|
|
96
96
|
});
|
|
@@ -186,8 +186,8 @@ class ForwardingRule extends azapi_resource_1.AzapiResource {
|
|
|
186
186
|
}
|
|
187
187
|
exports.ForwardingRule = ForwardingRule;
|
|
188
188
|
_a = JSII_RTTI_SYMBOL_1;
|
|
189
|
-
ForwardingRule[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ForwardingRule", version: "
|
|
189
|
+
ForwardingRule[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ForwardingRule", version: "2.5.0" };
|
|
190
190
|
(() => {
|
|
191
191
|
azapi_resource_1.AzapiResource.registerSchemas(forwarding_rule_schemas_1.FORWARDING_RULE_TYPE, forwarding_rule_schemas_1.ALL_FORWARDING_RULE_VERSIONS);
|
|
192
192
|
})();
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yd2FyZGluZy1ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWRuc2ZvcndhcmRpbmdydWxlc2V0L2xpYi9mb3J3YXJkaW5nLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCwrQkFBK0I7QUFFL0IsdUVBR21DO0FBQ25DLDhFQUdtRDtBQWlGbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQ0c7QUFDSCxNQUFhLGNBQWUsU0FBUSw4QkFBYTtJQXFCL0M7Ozs7OztPQU1HO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUU3RCxnRkFBZ0Y7UUFDaEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNwRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDZCxXQUFXLEVBQUUsK0JBQStCO1NBQzdDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDeEQsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3hCLFdBQVcsRUFBRSxpQ0FBaUM7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDdEQsSUFBSSxFQUNKLG9CQUFvQixFQUNwQjtZ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bnQiOlsiLyoqXG4gKiBBenVyZSBETlMgRm9yd2FyZGluZyBSdWxlIGltcGxlbWVudGF0aW9uIHVzaW5nIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHVuaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIGNyZWF0aW5nIGZvcndhcmRpbmcgcnVsZXMgd2l0aGluXG4gKiBETlMgRm9yd2FyZGluZyBSdWxlc2V0cy4gRm9yd2FyZGluZyBydWxlcyBkZWZpbmUgY29uZGl0aW9uYWwgZm9yd2FyZGluZyBiZWhhdmlvclxuICogYmFzZWQgb24gZG9tYWluIG5hbWVzLlxuICpcbiAqIFN1cHBvcnRlZCBBUEkgVmVyc2lvbnM6XG4gKiAtIDIwMjItMDctMDEgKEFjdGl2ZSwgTGF0ZXN0KVxuICpcbiAqIEZlYXR1cmVzOlxuICogLSBBdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvbiB3aGVuIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gKiAtIEV4cGxpY2l0IHZlcnNpb24gcGlubmluZyBmb3Igc3RhYmlsaXR5IHJlcXVpcmVtZW50c1xuICogLSBTY2hlbWEtZHJpdmVuIHZhbGlkYXRpb24gYW5kIHRyYW5zZm9ybWF0aW9uXG4gKiAtIEZ1bGwgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICogLSBKU0lJIGNvbXBsaWFuY2UgZm9yIG11bHRpLWxhbmd1YWdlIHN1cHBvcnRcbiAqIC0gVXAgdG8gNiB0YXJnZXQgRE5TIHNlcnZlcnMgcGVyIHJ1bGVcbiAqL1xuXG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBTExfRk9SV0FSRElOR19SVUxFX1ZFUlNJT05TLFxuICBGT1JXQVJESU5HX1JVTEVfVFlQRSxcbn0gZnJvbSBcIi4vZm9yd2FyZGluZy1ydWxlLXNjaGVtYXNcIjtcbmltcG9ydCB7XG4gIEF6YXBpUmVzb3VyY2UsXG4gIEF6YXBpUmVzb3VyY2VQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQgeyBBcGlTY2hlbWEgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogVGFyZ2V0IEROUyBzZXJ2ZXIgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldERuc1NlcnZlciB7XG4gIC8qKlxuICAgKiBJUCBhZGRyZXNzIG9mIHRoZSB0YXJnZXQgRE5TIHNlcnZlclxuICAgKiBAZXhhbXBsZSBcIjEwLjAuMC40XCJcbiAgICovXG4gIHJlYWRvbmx5IGlwQWRkcmVzczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb3J0IG51bWJlciBmb3IgdGhlIHRhcmdldCBETlMgc2VydmVyXG4gICAqIEBkZWZhdWx0VmFsdWUgNTNcbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGVcbiAqXG4gKiBFeHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB3aXRoIEZvcndhcmRpbmcgUnVsZSBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9yd2FyZGluZ1J1bGVQcm9wcyBleHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBSZXNvdXJjZSBJRCBvZiB0aGUgcGFyZW50IEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRcbiAgICogQGV4YW1wbGUgXCIvc3Vic2NyaXB0aW9ucy8uLi4vcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2Ruc0ZvcndhcmRpbmdSdWxlc2V0cy9ydWxlc2V0MVwiXG4gICAqL1xuICByZWFkb25seSBkbnNGb3J3YXJkaW5nUnVsZXNldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkb21haW4gbmFtZSB0byBmb3J3YXJkIChtdXN0IGVuZCB3aXRoIGEgZG90IGZvciBGUUROKVxuICAgKiBAZXhhbXBsZSBcImNvbnRvc28uY29tLlwiXG4gICAqIEBleGFtcGxlIFwiaW50ZXJuYWwuY29ycC5cIlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiB0YXJnZXQgRE5TIHNlcnZlcnMgdG8gZm9yd2FyZCBxdWVyaWVzIHRvXG4gICAqIE1heGltdW0gb2YgNiBzZXJ2ZXJzIHBlciBydWxlXG4gICAqIEBleGFtcGxlIFt7IGlwQWRkcmVzczogXCIxMC4wLjAuNFwiLCBwb3J0OiA1MyB9LCB7IGlwQWRkcmVzczogXCIxMC4wLjAuNVwiIH1dXG4gICAqL1xuICByZWFkb25seSB0YXJnZXREbnNTZXJ2ZXJzOiBUYXJnZXREbnNTZXJ2ZXJbXTtcblxuICAvKipcbiAgICogVGhlIHN0YXRlIG9mIHRoZSBmb3J3YXJkaW5nIHJ1bGVcbiAgICogQGRlZmF1bHRWYWx1ZSBcIkVuYWJsZWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgZm9yd2FyZGluZ1J1bGVTdGF0ZT86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBNZXRhZGF0YSBhdHRhY2hlZCB0byB0aGUgZm9yd2FyZGluZyBydWxlIGFzIGtleS12YWx1ZSBwYWlyc1xuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgbGlmZWN5Y2xlIHJ1bGVzIHRvIGlnbm9yZSBjaGFuZ2VzXG4gICAqIEBleGFtcGxlIFtcIm1ldGFkYXRhXCJdXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVDaGFuZ2VzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgRm9yd2FyZGluZyBSdWxlIGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3J3YXJkaW5nUnVsZVByb3BlcnRpZXMge1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhcmdldERuc1NlcnZlcnM6IFRhcmdldERuc1NlcnZlcltdO1xuICByZWFkb25seSBmb3J3YXJkaW5nUnVsZVN0YXRlPzogc3RyaW5nO1xuICByZWFkb25seSBtZXRhZGF0YT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogVGhlIHJlc291cmNlIGJvZHkgaW50ZXJmYWNlIGZvciBBenVyZSBGb3J3YXJkaW5nIFJ1bGUgQVBJIGNhbGxzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9yd2FyZGluZ1J1bGVCb2R5IHtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogRm9yd2FyZGluZ1J1bGVQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGUgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBGb3J3YXJkaW5nIHJ1bGVzIGRlZmluZSBjb25kaXRpb25hbCBETlMgZm9yd2FyZGluZyBiZWhhdmlvci4gV2hlbiBhIEROUyBxdWVyeVxuICogbWF0Y2hlcyB0aGUgZG9tYWluIG5hbWUgcGF0dGVybiwgaXQncyBmb3J3YXJkZWQgdG8gdGhlIHNwZWNpZmllZCB0YXJnZXQgRE5TIHNlcnZlcnMuXG4gKiBVcCB0byAxMDAwIHJ1bGVzIGNhbiBiZSBjb25maWd1cmVkIHBlciBydWxlc2V0LCB3aXRoIHVwIHRvIDYgdGFyZ2V0IHNlcnZlcnMgcGVyIHJ1bGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIGZvcndhcmRpbmcgcnVsZTpcbiAqIGNvbnN0IHJ1bGUgPSBuZXcgRm9yd2FyZGluZ1J1bGUodGhpcywgXCJydWxlXCIsIHtcbiAqICAgbmFtZTogXCJjb250b3NvLXJ1bGVcIixcbiAqICAgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDogcnVsZXNldC5pZCxcbiAqICAgZG9tYWluTmFtZTogXCJjb250b3NvLmNvbS5cIixcbiAqICAgdGFyZ2V0RG5zU2VydmVyczogW1xuICogICAgIHsgaXBBZGRyZXNzOiBcIjEwLjAuMC40XCIsIHBvcnQ6IDUzIH0sXG4gKiAgICAgeyBpcEFkZHJlc3M6IFwiMTAuMC4wLjVcIiB9XG4gKiAgIF1cbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3J3YXJkaW5nIHJ1bGUgd2l0aCBtZXRhZGF0YTpcbiAqIGNvbnN0IHJ1bGUgPSBuZXcgRm9yd2FyZGluZ1J1bGUodGhpcywgXCJydWxlXCIsIHtcbiAqICAgbmFtZTogXCJjb250b3NvLXJ1bGVcIixcbiAqICAgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDogcnVsZXNldC5pZCxcbiAqICAgZG9tYWluTmFtZTogXCJjb250b3NvLmNvbS5cIixcbiAqICAgdGFyZ2V0RG5zU2VydmVyczogW3sgaXBBZGRyZXNzOiBcIjEwLjAuMC40XCIgfV0sXG4gKiAgIG1ldGFkYXRhOiB7XG4gKiAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICogICAgIG93bmVyOiBcInBsYXRmb3JtLXRlYW1cIlxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRGlzYWJsZWQgZm9yd2FyZGluZyBydWxlOlxuICogY29uc3QgcnVsZSA9IG5ldyBGb3J3YXJkaW5nUnVsZSh0aGlzLCBcInJ1bGVcIiwge1xuICogICBuYW1lOiBcInRlbXAtcnVsZVwiLFxuICogICBkbnNGb3J3YXJkaW5nUnVsZXNldElkOiBydWxlc2V0LmlkLFxuICogICBkb21haW5OYW1lOiBcInRlbXAubG9jYWwuXCIsXG4gKiAgIHRhcmdldERuc1NlcnZlcnM6IFt7IGlwQWRkcmVzczogXCIxMC4wLjAuNFwiIH1dLFxuICogICBmb3J3YXJkaW5nUnVsZVN0YXRlOiBcIkRpc2FibGVkXCJcbiAqIH0pO1xuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBGb3J3YXJkaW5nUnVsZSBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKFxuICAgICAgRk9SV0FSRElOR19SVUxFX1RZUEUsXG4gICAgICBBTExfRk9SV0FSRElOR19SVUxFX1ZFUlNJT05TLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGlucHV0IHByb3BlcnRpZXMgZm9yIHRoaXMgRm9yd2FyZGluZyBSdWxlIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcHM6IEZvcndhcmRpbmdSdWxlUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLy8gUHVibGljIHByb3BlcnRpZXNcbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGUgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIEZvcndhcmRpbmcgUnVsZVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEZvcndhcmRpbmdSdWxlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIC8vIEV4dHJhY3QgcHJvcGVydGllcyBmcm9tIHRoZSBBWkFQSSByZXNvdXJjZSBvdXRwdXRzIHVzaW5nIFRlcnJhZm9ybSBpbnRlcnBvbGF0aW9uXG4gICAgdGhpcy5yZXNvdXJjZU5hbWUgPSBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm5hbWV9YDtcblxuICAgIC8vIENyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0cyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nIGZyb20gb3RoZXIgcmVzb3VyY2VzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgRm9yd2FyZGluZyBSdWxlXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwibmFtZVwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5yZXNvdXJjZU5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgRm9yd2FyZGluZyBSdWxlXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcInByb3Zpc2lvbmluZ19zdGF0ZVwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5wcm92aXNpb25pbmdTdGF0ZX1gLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgcHJvdmlzaW9uaW5nIHN0YXRlIG9mIHRoZSBGb3J3YXJkaW5nIFJ1bGVcIixcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8vIE92ZXJyaWRlIGxvZ2ljYWwgSURzIHRvIG1hdGNoIG5hbWluZyBjb252ZW50aW9uXG4gICAgdGhpcy5pZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImlkXCIpO1xuICAgIHRoaXMubmFtZU91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcIm5hbWVcIik7XG4gICAgdGhpcy5wcm92aXNpb25pbmdTdGF0ZU91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInByb3Zpc2lvbmluZ19zdGF0ZVwiKTtcblxuICAgIC8vIEFwcGx5IGlnbm9yZSBjaGFuZ2VzIGlmIHNwZWNpZmllZFxuICAgIHRoaXMuX2FwcGx5SWdub3JlQ2hhbmdlcygpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIHBhcmVudCByZXNvdXJjZSBJRCBmb3IgdGhlIEZvcndhcmRpbmcgUnVsZVxuICAgKiBGb3J3YXJkaW5nIFJ1bGVzIGFyZSBjaGlsZCByZXNvdXJjZXMgb2YgRE5TIEZvcndhcmRpbmcgUnVsZXNldHNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlUGFyZW50SWQocHJvcHM6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIEZvcndhcmRpbmdSdWxlUHJvcHM7XG4gICAgcmV0dXJuIHR5cGVkUHJvcHMuZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkZWZhdWx0IEFQSSB2ZXJzaW9uIHRvIHVzZSB3aGVuIG5vIGV4cGxpY2l0IHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdFZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCIyMDIyLTA3LTAxXCI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQXp1cmUgcmVzb3VyY2UgdHlwZSBmb3IgRm9yd2FyZGluZyBSdWxlc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBGT1JXQVJESU5HX1JVTEVfVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgc2NoZW1hIGZvciB0aGUgcmVzb2x2ZWQgdmVyc2lvblxuICAgKi9cbiAgcHJvdGVjdGVkIGFwaVNjaGVtYSgpOiBBcGlTY2hlbWEge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTY2hlbWEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZUJvZHkocHJvcHM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIEZvcndhcmRpbmdSdWxlUHJvcHM7XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzOiBGb3J3YXJkaW5nUnVsZVByb3BlcnRpZXMgPSB7XG4gICAgICBkb21haW5OYW1lOiB0eXBlZFByb3BzLmRvbWFpbk5hbWUsXG4gICAgICB0YXJnZXREbnNTZXJ2ZXJzOiB0eXBlZFByb3BzLnRhcmdldERuc1NlcnZlcnMubWFwKChzZXJ2ZXIpID0+ICh7XG4gICAgICAgIGlwQWRkcmVzczogc2VydmVyLmlwQWRkcmVzcyxcbiAgICAgICAgcG9ydDogc2VydmVyLnBvcnQgPz8gNTMsXG4gICAgICB9KSksXG4gICAgICBmb3J3YXJkaW5nUnVsZVN0YXRlOiB0eXBlZFByb3BzLmZvcndhcmRpbmdSdWxlU3RhdGUsXG4gICAgICBtZXRhZGF0YTogdHlwZWRQcm9wcy5tZXRhZGF0YSxcbiAgICB9O1xuXG4gICAgY29uc3QgYm9keTogRm9yd2FyZGluZ1J1bGVCb2R5ID0ge1xuICAgICAgcHJvcGVydGllcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQVUJMSUMgTUVUSE9EUyBGT1IgRk9SV0FSRElORyBSVUxFIE9QRVJBVElPTlNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcm92aXNpb25pbmcgc3RhdGUgb2YgdGhlIEZvcndhcmRpbmcgUnVsZVxuICAgKi9cbiAgcHVibGljIGdldCBwcm92aXNpb25pbmdTdGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByb3Zpc2lvbmluZ1N0YXRlfWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB0YXJnZXQgRE5TIHNlcnZlcnNcbiAgICovXG4gIHB1YmxpYyBnZXQgdGFyZ2V0RG5zU2VydmVycygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnRhcmdldERuc1NlcnZlcnN9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1ldGFkYXRhXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1ldGFkYXRhKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMubWV0YWRhdGF9YDtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBSSVZBVEUgSEVMUEVSIE1FVEhPRFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQXBwbGllcyBpZ25vcmUgY2hhbmdlcyBsaWZlY3ljbGUgcnVsZXMgaWYgc3BlY2lmaWVkIGluIHByb3BzXG4gICAqL1xuICBwcml2YXRlIF9hcHBseUlnbm9yZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcyAmJiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5hZGRPdmVycmlkZShcImxpZmVjeWNsZVwiLCB7XG4gICAgICAgIGlnbm9yZV9jaGFuZ2VzOiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yd2FyZGluZy1ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWRuc2ZvcndhcmRpbmdydWxlc2V0L2xpYi9mb3J3YXJkaW5nLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCwrQkFBK0I7QUFFL0IsdUVBR21DO0FBQ25DLDhFQUdtRDtBQWlGbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQ0c7QUFDSCxNQUFhLGNBQWUsU0FBUSw4QkFBYTtJQXFCL0M7Ozs7OztPQU1HO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUU3RCxnRkFBZ0Y7UUFDaEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNwRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDZCxXQUFXLEVBQUUsK0JBQStCO1NBQzdDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDeEQsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3hCLFdBQVcsRUFBRSxpQ0FBaUM7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDdEQsSUFBSSxFQUNKLG9CQUFvQixFQUNwQjtZ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bnQiOlsiLyoqXG4gKiBBenVyZSBETlMgRm9yd2FyZGluZyBSdWxlIGltcGxlbWVudGF0aW9uIHVzaW5nIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHVuaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIGNyZWF0aW5nIGZvcndhcmRpbmcgcnVsZXMgd2l0aGluXG4gKiBETlMgRm9yd2FyZGluZyBSdWxlc2V0cy4gRm9yd2FyZGluZyBydWxlcyBkZWZpbmUgY29uZGl0aW9uYWwgZm9yd2FyZGluZyBiZWhhdmlvclxuICogYmFzZWQgb24gZG9tYWluIG5hbWVzLlxuICpcbiAqIFN1cHBvcnRlZCBBUEkgVmVyc2lvbnM6XG4gKiAtIDIwMjItMDctMDEgKEFjdGl2ZSwgTGF0ZXN0KVxuICpcbiAqIEZlYXR1cmVzOlxuICogLSBBdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvbiB3aGVuIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gKiAtIEV4cGxpY2l0IHZlcnNpb24gcGlubmluZyBmb3Igc3RhYmlsaXR5IHJlcXVpcmVtZW50c1xuICogLSBTY2hlbWEtZHJpdmVuIHZhbGlkYXRpb24gYW5kIHRyYW5zZm9ybWF0aW9uXG4gKiAtIEZ1bGwgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICogLSBKU0lJIGNvbXBsaWFuY2UgZm9yIG11bHRpLWxhbmd1YWdlIHN1cHBvcnRcbiAqIC0gVXAgdG8gNiB0YXJnZXQgRE5TIHNlcnZlcnMgcGVyIHJ1bGVcbiAqL1xuXG5pbXBvcnQgKiBhcyBjZGt0biBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBTExfRk9SV0FSRElOR19SVUxFX1ZFUlNJT05TLFxuICBGT1JXQVJESU5HX1JVTEVfVFlQRSxcbn0gZnJvbSBcIi4vZm9yd2FyZGluZy1ydWxlLXNjaGVtYXNcIjtcbmltcG9ydCB7XG4gIEF6YXBpUmVzb3VyY2UsXG4gIEF6YXBpUmVzb3VyY2VQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQgeyBBcGlTY2hlbWEgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogVGFyZ2V0IEROUyBzZXJ2ZXIgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldERuc1NlcnZlciB7XG4gIC8qKlxuICAgKiBJUCBhZGRyZXNzIG9mIHRoZSB0YXJnZXQgRE5TIHNlcnZlclxuICAgKiBAZXhhbXBsZSBcIjEwLjAuMC40XCJcbiAgICovXG4gIHJlYWRvbmx5IGlwQWRkcmVzczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb3J0IG51bWJlciBmb3IgdGhlIHRhcmdldCBETlMgc2VydmVyXG4gICAqIEBkZWZhdWx0VmFsdWUgNTNcbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGVcbiAqXG4gKiBFeHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB3aXRoIEZvcndhcmRpbmcgUnVsZSBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9yd2FyZGluZ1J1bGVQcm9wcyBleHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBSZXNvdXJjZSBJRCBvZiB0aGUgcGFyZW50IEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRcbiAgICogQGV4YW1wbGUgXCIvc3Vic2NyaXB0aW9ucy8uLi4vcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2Ruc0ZvcndhcmRpbmdSdWxlc2V0cy9ydWxlc2V0MVwiXG4gICAqL1xuICByZWFkb25seSBkbnNGb3J3YXJkaW5nUnVsZXNldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkb21haW4gbmFtZSB0byBmb3J3YXJkIChtdXN0IGVuZCB3aXRoIGEgZG90IGZvciBGUUROKVxuICAgKiBAZXhhbXBsZSBcImNvbnRvc28uY29tLlwiXG4gICAqIEBleGFtcGxlIFwiaW50ZXJuYWwuY29ycC5cIlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiB0YXJnZXQgRE5TIHNlcnZlcnMgdG8gZm9yd2FyZCBxdWVyaWVzIHRvXG4gICAqIE1heGltdW0gb2YgNiBzZXJ2ZXJzIHBlciBydWxlXG4gICAqIEBleGFtcGxlIFt7IGlwQWRkcmVzczogXCIxMC4wLjAuNFwiLCBwb3J0OiA1MyB9LCB7IGlwQWRkcmVzczogXCIxMC4wLjAuNVwiIH1dXG4gICAqL1xuICByZWFkb25seSB0YXJnZXREbnNTZXJ2ZXJzOiBUYXJnZXREbnNTZXJ2ZXJbXTtcblxuICAvKipcbiAgICogVGhlIHN0YXRlIG9mIHRoZSBmb3J3YXJkaW5nIHJ1bGVcbiAgICogQGRlZmF1bHRWYWx1ZSBcIkVuYWJsZWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgZm9yd2FyZGluZ1J1bGVTdGF0ZT86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBNZXRhZGF0YSBhdHRhY2hlZCB0byB0aGUgZm9yd2FyZGluZyBydWxlIGFzIGtleS12YWx1ZSBwYWlyc1xuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgbGlmZWN5Y2xlIHJ1bGVzIHRvIGlnbm9yZSBjaGFuZ2VzXG4gICAqIEBleGFtcGxlIFtcIm1ldGFkYXRhXCJdXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVDaGFuZ2VzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgRm9yd2FyZGluZyBSdWxlIGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3J3YXJkaW5nUnVsZVByb3BlcnRpZXMge1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhcmdldERuc1NlcnZlcnM6IFRhcmdldERuc1NlcnZlcltdO1xuICByZWFkb25seSBmb3J3YXJkaW5nUnVsZVN0YXRlPzogc3RyaW5nO1xuICByZWFkb25seSBtZXRhZGF0YT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogVGhlIHJlc291cmNlIGJvZHkgaW50ZXJmYWNlIGZvciBBenVyZSBGb3J3YXJkaW5nIFJ1bGUgQVBJIGNhbGxzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9yd2FyZGluZ1J1bGVCb2R5IHtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogRm9yd2FyZGluZ1J1bGVQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGUgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBGb3J3YXJkaW5nIHJ1bGVzIGRlZmluZSBjb25kaXRpb25hbCBETlMgZm9yd2FyZGluZyBiZWhhdmlvci4gV2hlbiBhIEROUyBxdWVyeVxuICogbWF0Y2hlcyB0aGUgZG9tYWluIG5hbWUgcGF0dGVybiwgaXQncyBmb3J3YXJkZWQgdG8gdGhlIHNwZWNpZmllZCB0YXJnZXQgRE5TIHNlcnZlcnMuXG4gKiBVcCB0byAxMDAwIHJ1bGVzIGNhbiBiZSBjb25maWd1cmVkIHBlciBydWxlc2V0LCB3aXRoIHVwIHRvIDYgdGFyZ2V0IHNlcnZlcnMgcGVyIHJ1bGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIGZvcndhcmRpbmcgcnVsZTpcbiAqIGNvbnN0IHJ1bGUgPSBuZXcgRm9yd2FyZGluZ1J1bGUodGhpcywgXCJydWxlXCIsIHtcbiAqICAgbmFtZTogXCJjb250b3NvLXJ1bGVcIixcbiAqICAgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDogcnVsZXNldC5pZCxcbiAqICAgZG9tYWluTmFtZTogXCJjb250b3NvLmNvbS5cIixcbiAqICAgdGFyZ2V0RG5zU2VydmVyczogW1xuICogICAgIHsgaXBBZGRyZXNzOiBcIjEwLjAuMC40XCIsIHBvcnQ6IDUzIH0sXG4gKiAgICAgeyBpcEFkZHJlc3M6IFwiMTAuMC4wLjVcIiB9XG4gKiAgIF1cbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3J3YXJkaW5nIHJ1bGUgd2l0aCBtZXRhZGF0YTpcbiAqIGNvbnN0IHJ1bGUgPSBuZXcgRm9yd2FyZGluZ1J1bGUodGhpcywgXCJydWxlXCIsIHtcbiAqICAgbmFtZTogXCJjb250b3NvLXJ1bGVcIixcbiAqICAgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDogcnVsZXNldC5pZCxcbiAqICAgZG9tYWluTmFtZTogXCJjb250b3NvLmNvbS5cIixcbiAqICAgdGFyZ2V0RG5zU2VydmVyczogW3sgaXBBZGRyZXNzOiBcIjEwLjAuMC40XCIgfV0sXG4gKiAgIG1ldGFkYXRhOiB7XG4gKiAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICogICAgIG93bmVyOiBcInBsYXRmb3JtLXRlYW1cIlxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRGlzYWJsZWQgZm9yd2FyZGluZyBydWxlOlxuICogY29uc3QgcnVsZSA9IG5ldyBGb3J3YXJkaW5nUnVsZSh0aGlzLCBcInJ1bGVcIiwge1xuICogICBuYW1lOiBcInRlbXAtcnVsZVwiLFxuICogICBkbnNGb3J3YXJkaW5nUnVsZXNldElkOiBydWxlc2V0LmlkLFxuICogICBkb21haW5OYW1lOiBcInRlbXAubG9jYWwuXCIsXG4gKiAgIHRhcmdldERuc1NlcnZlcnM6IFt7IGlwQWRkcmVzczogXCIxMC4wLjAuNFwiIH1dLFxuICogICBmb3J3YXJkaW5nUnVsZVN0YXRlOiBcIkRpc2FibGVkXCJcbiAqIH0pO1xuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBGb3J3YXJkaW5nUnVsZSBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKFxuICAgICAgRk9SV0FSRElOR19SVUxFX1RZUEUsXG4gICAgICBBTExfRk9SV0FSRElOR19SVUxFX1ZFUlNJT05TLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGlucHV0IHByb3BlcnRpZXMgZm9yIHRoaXMgRm9yd2FyZGluZyBSdWxlIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcHM6IEZvcndhcmRpbmdSdWxlUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RuLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RuLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0OiBjZGt0bi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLy8gUHVibGljIHByb3BlcnRpZXNcbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGUgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIEZvcndhcmRpbmcgUnVsZVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEZvcndhcmRpbmdSdWxlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIC8vIEV4dHJhY3QgcHJvcGVydGllcyBmcm9tIHRoZSBBWkFQSSByZXNvdXJjZSBvdXRwdXRzIHVzaW5nIFRlcnJhZm9ybSBpbnRlcnBvbGF0aW9uXG4gICAgdGhpcy5yZXNvdXJjZU5hbWUgPSBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm5hbWV9YDtcblxuICAgIC8vIENyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0cyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nIGZyb20gb3RoZXIgcmVzb3VyY2VzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0bi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgRm9yd2FyZGluZyBSdWxlXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVPdXRwdXQgPSBuZXcgY2RrdG4uVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwibmFtZVwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5yZXNvdXJjZU5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgRm9yd2FyZGluZyBSdWxlXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0ID0gbmV3IGNka3RuLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcInByb3Zpc2lvbmluZ19zdGF0ZVwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5wcm92aXNpb25pbmdTdGF0ZX1gLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgcHJvdmlzaW9uaW5nIHN0YXRlIG9mIHRoZSBGb3J3YXJkaW5nIFJ1bGVcIixcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8vIE92ZXJyaWRlIGxvZ2ljYWwgSURzIHRvIG1hdGNoIG5hbWluZyBjb252ZW50aW9uXG4gICAgdGhpcy5pZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImlkXCIpO1xuICAgIHRoaXMubmFtZU91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcIm5hbWVcIik7XG4gICAgdGhpcy5wcm92aXNpb25pbmdTdGF0ZU91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInByb3Zpc2lvbmluZ19zdGF0ZVwiKTtcblxuICAgIC8vIEFwcGx5IGlnbm9yZSBjaGFuZ2VzIGlmIHNwZWNpZmllZFxuICAgIHRoaXMuX2FwcGx5SWdub3JlQ2hhbmdlcygpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIHBhcmVudCByZXNvdXJjZSBJRCBmb3IgdGhlIEZvcndhcmRpbmcgUnVsZVxuICAgKiBGb3J3YXJkaW5nIFJ1bGVzIGFyZSBjaGlsZCByZXNvdXJjZXMgb2YgRE5TIEZvcndhcmRpbmcgUnVsZXNldHNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlUGFyZW50SWQocHJvcHM6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIEZvcndhcmRpbmdSdWxlUHJvcHM7XG4gICAgcmV0dXJuIHR5cGVkUHJvcHMuZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkZWZhdWx0IEFQSSB2ZXJzaW9uIHRvIHVzZSB3aGVuIG5vIGV4cGxpY2l0IHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdFZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCIyMDIyLTA3LTAxXCI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQXp1cmUgcmVzb3VyY2UgdHlwZSBmb3IgRm9yd2FyZGluZyBSdWxlc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBGT1JXQVJESU5HX1JVTEVfVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgc2NoZW1hIGZvciB0aGUgcmVzb2x2ZWQgdmVyc2lvblxuICAgKi9cbiAgcHJvdGVjdGVkIGFwaVNjaGVtYSgpOiBBcGlTY2hlbWEge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTY2hlbWEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZUJvZHkocHJvcHM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIEZvcndhcmRpbmdSdWxlUHJvcHM7XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzOiBGb3J3YXJkaW5nUnVsZVByb3BlcnRpZXMgPSB7XG4gICAgICBkb21haW5OYW1lOiB0eXBlZFByb3BzLmRvbWFpbk5hbWUsXG4gICAgICB0YXJnZXREbnNTZXJ2ZXJzOiB0eXBlZFByb3BzLnRhcmdldERuc1NlcnZlcnMubWFwKChzZXJ2ZXIpID0+ICh7XG4gICAgICAgIGlwQWRkcmVzczogc2VydmVyLmlwQWRkcmVzcyxcbiAgICAgICAgcG9ydDogc2VydmVyLnBvcnQgPz8gNTMsXG4gICAgICB9KSksXG4gICAgICBmb3J3YXJkaW5nUnVsZVN0YXRlOiB0eXBlZFByb3BzLmZvcndhcmRpbmdSdWxlU3RhdGUsXG4gICAgICBtZXRhZGF0YTogdHlwZWRQcm9wcy5tZXRhZGF0YSxcbiAgICB9O1xuXG4gICAgY29uc3QgYm9keTogRm9yd2FyZGluZ1J1bGVCb2R5ID0ge1xuICAgICAgcHJvcGVydGllcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQVUJMSUMgTUVUSE9EUyBGT1IgRk9SV0FSRElORyBSVUxFIE9QRVJBVElPTlNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcm92aXNpb25pbmcgc3RhdGUgb2YgdGhlIEZvcndhcmRpbmcgUnVsZVxuICAgKi9cbiAgcHVibGljIGdldCBwcm92aXNpb25pbmdTdGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByb3Zpc2lvbmluZ1N0YXRlfWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB0YXJnZXQgRE5TIHNlcnZlcnNcbiAgICovXG4gIHB1YmxpYyBnZXQgdGFyZ2V0RG5zU2VydmVycygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnRhcmdldERuc1NlcnZlcnN9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1ldGFkYXRhXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1ldGFkYXRhKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMubWV0YWRhdGF9YDtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBSSVZBVEUgSEVMUEVSIE1FVEhPRFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQXBwbGllcyBpZ25vcmUgY2hhbmdlcyBsaWZlY3ljbGUgcnVsZXMgaWYgc3BlY2lmaWVkIGluIHByb3BzXG4gICAqL1xuICBwcml2YXRlIF9hcHBseUlnbm9yZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcyAmJiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5hZGRPdmVycmlkZShcImxpZmVjeWNsZVwiLCB7XG4gICAgICAgIGlnbm9yZV9jaGFuZ2VzOiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* - JSII compliance for multi-language support
|
|
16
16
|
* - Metadata support for organizational tagging
|
|
17
17
|
*/
|
|
18
|
-
import * as
|
|
18
|
+
import * as cdktn from "cdktn";
|
|
19
19
|
import { Construct } from "constructs";
|
|
20
20
|
import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
|
|
21
21
|
import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
@@ -112,9 +112,9 @@ export declare class DnsForwardingRulesetVirtualNetworkLink extends AzapiResourc
|
|
|
112
112
|
* The input properties for this Virtual Network Link instance
|
|
113
113
|
*/
|
|
114
114
|
readonly props: DnsForwardingRulesetVirtualNetworkLinkProps;
|
|
115
|
-
readonly idOutput:
|
|
116
|
-
readonly nameOutput:
|
|
117
|
-
readonly provisioningStateOutput:
|
|
115
|
+
readonly idOutput: cdktn.TerraformOutput;
|
|
116
|
+
readonly nameOutput: cdktn.TerraformOutput;
|
|
117
|
+
readonly provisioningStateOutput: cdktn.TerraformOutput;
|
|
118
118
|
readonly resourceName: string;
|
|
119
119
|
/**
|
|
120
120
|
* Creates a new Azure DNS Forwarding Ruleset Virtual Network Link using the AzapiResource framework
|