exports/ProxyCmdletDefinitions.ps1


# ----------------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.10.4, generator: @autorest/powershell@)
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Read the properties and relationships of crossTenantMigrationTask, which shows the details of the migration task for a single user of a crossTenantMigrationJob.
The crossTenantMigrationTask contains the status details of migrations for the workloads specified in the crossTenantMigrationJob.
.Description
Read the properties and relationships of crossTenantMigrationTask, which shows the details of the migration task for a single user of a crossTenantMigrationJob.
The crossTenantMigrationTask contains the status details of migrations for the workloads specified in the crossTenantMigrationJob.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMigrationsIdentity
.Inputs
System.Collections.IDictionary
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationTask
.Notes
COMPLEX PARAMETER PROPERTIES
 
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IMigrationsIdentity>: Identity Parameter
  [CrossTenantMigrationJobId <String>]: The unique identifier of crossTenantMigrationJob
  [CrossTenantMigrationTaskId <String>]: The unique identifier of crossTenantMigrationTask
  [DisplayName <String>]: Alternate key of crossTenantMigrationJob
.Link
https://learn.microsoft.com/powershell/module/microsoft.graph.beta.migrations/get-mgbetacrosstenantmigrationjobuser
.Link
https://learn.microsoft.com/graph/api/crosstenantmigrationtask-get?view=graph-rest-beta
.Link
https://learn.microsoft.com/graph/api/crosstenantmigrationjob-list-users?view=graph-rest-beta
#>

function Get-MgBetaCrossTenantMigrationJobUser {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationTask])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # The unique identifier of crossTenantMigrationJob
    ${CrossTenantMigrationJobId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # The unique identifier of crossTenantMigrationTask
    ${CrossTenantMigrationTaskId},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMigrationsIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

    [Parameter()]
    [Alias('RHV')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Optional Response Headers Variable.
    ${ResponseHeadersVariable},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Collections.IDictionary]
    # Optional headers that will be added to the request.
    ${Headers},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.Beta.Migrations.private\Get-MgBetaCrossTenantMigrationJobUser_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Migrations.private\Get-MgBetaCrossTenantMigrationJobUser_GetViaIdentity';
            List = 'Microsoft.Graph.Beta.Migrations.private\Get-MgBetaCrossTenantMigrationJobUser_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Read the properties and relationships of crossTenantMigrationJob object.
Includes details of the crossTenantMigrationJob , but not details of the individual crossTenantMigrationTasks of the crossTenantMigrationJob.
.Description
Read the properties and relationships of crossTenantMigrationJob object.
Includes details of the crossTenantMigrationJob , but not details of the individual crossTenantMigrationTasks of the crossTenantMigrationJob.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMigrationsIdentity
.Inputs
System.Collections.IDictionary
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationJob
.Notes
COMPLEX PARAMETER PROPERTIES
 
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IMigrationsIdentity>: Identity Parameter
  [CrossTenantMigrationJobId <String>]: The unique identifier of crossTenantMigrationJob
  [CrossTenantMigrationTaskId <String>]: The unique identifier of crossTenantMigrationTask
  [DisplayName <String>]: Alternate key of crossTenantMigrationJob
.Link
https://learn.microsoft.com/powershell/module/microsoft.graph.beta.migrations/get-mgbetacrosstenantmigrationjob
.Link
https://learn.microsoft.com/graph/api/crosstenantmigrationjob-get?view=graph-rest-beta
.Link
https://learn.microsoft.com/graph/api/migrationsroot-list-crosstenantmigrationjobs?view=graph-rest-beta
#>

function Get-MgBetaCrossTenantMigrationJob {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationJob])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # The unique identifier of crossTenantMigrationJob
    ${CrossTenantMigrationJobId},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMigrationsIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('Expand')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String[]]
    # Expand related entities
    ${ExpandProperty},

    [Parameter()]
    [Alias('Select')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String[]]
    # Select properties to be returned
    ${Property},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String]
    # Filter items by property values
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String]
    # Search items by search phrases
    ${Search},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.Int32]
    # Skip the first n items
    ${Skip},

    [Parameter(ParameterSetName='List')]
    [Alias('OrderBy')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.String[]]
    # Order items by property values
    ${Sort},

    [Parameter(ParameterSetName='List')]
    [Alias('Limit')]
    [Microsoft.Graph.Beta.PowerShell.Category('Query')]
    [System.Int32]
    # Show only the first n items
    ${Top},

    [Parameter()]
    [Alias('RHV')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Optional Response Headers Variable.
    ${ResponseHeadersVariable},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Collections.IDictionary]
    # Optional headers that will be added to the request.
    ${Headers},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Int32]
    # Sets the page size of results.
    ${PageSize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # List all pages.
    ${All},

    [Parameter(ParameterSetName='List')]
    [Alias('CV')]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.String]
    # Specifies a count of the total number of items in a collection.
    # By default, this variable will be set in the global scope.
    ${CountVariable}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Get = 'Microsoft.Graph.Beta.Migrations.private\Get-MgBetaCrossTenantMigrationJob_Get';
            GetViaIdentity = 'Microsoft.Graph.Beta.Migrations.private\Get-MgBetaCrossTenantMigrationJob_GetViaIdentity';
            List = 'Microsoft.Graph.Beta.Migrations.private\Get-MgBetaCrossTenantMigrationJob_List';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Create a new crossTenantMigrationJob.
.Description
Create a new crossTenantMigrationJob.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationJob
.Inputs
System.Collections.IDictionary
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationJob
.Notes
COMPLEX PARAMETER PROPERTIES
 
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BODYPARAMETER <IMicrosoftGraphCrossTenantMigrationJob>: crossTenantMigrationJob
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [CompleteAfterDateTime <DateTime?>]: DateTime after which the migration should be performed
  [CreatedBy <String>]: ID of the user that created the job
  [CreatedDateTime <DateTime?>]: When the job what created
  [DisplayName <String>]: Display name of the job. Must be unique per tenant
  [ExchangeSettings <IMicrosoftGraphExchangeOnlineCrossTenantMigrationSettings>]: exchangeOnlineCrossTenantMigrationSettings
    [(Any) <Object>]: This indicates any property can be added to this object.
    [SourceEndpoint <String>]: Name of the Migration Endpoint in the source tenant
    [TargetDeliveryDomain <String>]: Delivery domain on the target tenant
  [JobType <String>]: crossTenantMigrationJobType
  [LastUpdatedDateTime <DateTime?>]: When this migration job was last updated
  [Message <String>]: Status message of the migration job
  [ResourceType <String>]: Type of resource being migrated. Only Users is currently supported
  [Resources <String[]>]: IDs (GUID) of the resources being migrated with the migration job
  [SourceTenantId <String>]: ID (GUID) of the tenant that content is being migrated from
  [Status <String>]: crossTenantMigrationJobStatus
  [TargetTenantId <String>]: ID of the tenant that content is being migrated to
  [Users <IMicrosoftGraphCrossTenantMigrationTask[]>]: Details and status of the users being migrated in this migration job
    [Id <String>]: The unique identifier for an entity. Read-only.
    [CurrentStatus <IMicrosoftGraphCrossTenantMigrationServiceStatusDetails[]>]: Most recent status of this migration task
      [Errors <IMicrosoftGraphError[]>]: Errors associated with the migration for this service
        [Code <String>]: The error code
        [Message <String>]: The message for the error
      [Message <String>]: Service status message
      [Service <String>]: Service or workload the status details are associated with
      [Status <String>]: crossTenantMigrationServiceStatus
    [LastUpdatedDateTime <DateTime?>]: Time the task was last updated
    [TaskType <String>]: Type of migration task. Only Users are supported at this time.
  [Workloads <String[]>]: Workloads to migrate. Supported workloads are Teams, Exchange, and ODSP (OneDrive/SharePoint)
 
EXCHANGESETTINGS <IMicrosoftGraphExchangeOnlineCrossTenantMigrationSettings>: exchangeOnlineCrossTenantMigrationSettings
  [(Any) <Object>]: This indicates any property can be added to this object.
  [SourceEndpoint <String>]: Name of the Migration Endpoint in the source tenant
  [TargetDeliveryDomain <String>]: Delivery domain on the target tenant
 
USERS <IMicrosoftGraphCrossTenantMigrationTask[]>: Details and status of the users being migrated in this migration job
  [Id <String>]: The unique identifier for an entity. Read-only.
  [CurrentStatus <IMicrosoftGraphCrossTenantMigrationServiceStatusDetails[]>]: Most recent status of this migration task
    [Errors <IMicrosoftGraphError[]>]: Errors associated with the migration for this service
      [Code <String>]: The error code
      [Message <String>]: The message for the error
    [Message <String>]: Service status message
    [Service <String>]: Service or workload the status details are associated with
    [Status <String>]: crossTenantMigrationServiceStatus
  [LastUpdatedDateTime <DateTime?>]: Time the task was last updated
  [TaskType <String>]: Type of migration task. Only Users are supported at this time.
.Link
https://learn.microsoft.com/powershell/module/microsoft.graph.beta.migrations/new-mgbetacrosstenantmigrationjob
.Link
https://learn.microsoft.com/graph/api/migrationsroot-post-crosstenantmigrationjobs?view=graph-rest-beta
#>

function New-MgBetaCrossTenantMigrationJob {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationJob])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationJob]
    # crossTenantMigrationJob
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter()]
    [Alias('RHV')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Optional Response Headers Variable.
    ${ResponseHeadersVariable},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime after which the migration should be performed
    ${CompleteAfterDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # ID of the user that created the job
    ${CreatedBy},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # When the job what created
    ${CreatedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Display name of the job.
    # Must be unique per tenant
    ${DisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphExchangeOnlineCrossTenantMigrationSettings]
    # exchangeOnlineCrossTenantMigrationSettings
    # To construct, see NOTES section for EXCHANGESETTINGS properties and create a hash table.
    ${ExchangeSettings},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The unique identifier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # crossTenantMigrationJobType
    ${JobType},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # When this migration job was last updated
    ${LastUpdatedDateTime},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Status message of the migration job
    ${Message},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Type of resource being migrated.
    # Only Users is currently supported
    ${ResourceType},

    [Parameter(ParameterSetName='CreateExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String[]]
    # IDs (GUID) of the resources being migrated with the migration job
    ${Resources},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # ID (GUID) of the tenant that content is being migrated from
    ${SourceTenantId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # crossTenantMigrationJobStatus
    ${Status},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # ID of the tenant that content is being migrated to
    ${TargetTenantId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationTask[]]
    # Details and status of the users being migrated in this migration job
    # To construct, see NOTES section for USERS properties and create a hash table.
    ${Users},

    [Parameter(ParameterSetName='CreateExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String[]]
    # Workloads to migrate.
    # Supported workloads are Teams, Exchange, and ODSP (OneDrive/SharePoint)
    ${Workloads},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Collections.IDictionary]
    # Optional headers that will be added to the request.
    ${Headers},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Create = 'Microsoft.Graph.Beta.Migrations.private\New-MgBetaCrossTenantMigrationJob_Create';
            CreateExpanded = 'Microsoft.Graph.Beta.Migrations.private\New-MgBetaCrossTenantMigrationJob_CreateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Delete navigation property crossTenantMigrationJobs for solutions
.Description
Delete navigation property crossTenantMigrationJobs for solutions
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMigrationsIdentity
.Inputs
System.Collections.IDictionary
.Outputs
System.Boolean
.Notes
COMPLEX PARAMETER PROPERTIES
 
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IMigrationsIdentity>: Identity Parameter
  [CrossTenantMigrationJobId <String>]: The unique identifier of crossTenantMigrationJob
  [CrossTenantMigrationTaskId <String>]: The unique identifier of crossTenantMigrationTask
  [DisplayName <String>]: Alternate key of crossTenantMigrationJob
.Link
https://learn.microsoft.com/powershell/module/microsoft.graph.beta.migrations/remove-mgbetacrosstenantmigrationjob
#>

function Remove-MgBetaCrossTenantMigrationJob {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # The unique identifier of crossTenantMigrationJob
    ${CrossTenantMigrationJobId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMigrationsIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Header')]
    [System.String]
    # ETag
    ${IfMatch},

    [Parameter()]
    [Alias('RHV')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Optional Response Headers Variable.
    ${ResponseHeadersVariable},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Collections.IDictionary]
    # Optional headers that will be added to the request.
    ${Headers},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Delete = 'Microsoft.Graph.Beta.Migrations.private\Remove-MgBetaCrossTenantMigrationJob_Delete';
            DeleteViaIdentity = 'Microsoft.Graph.Beta.Migrations.private\Remove-MgBetaCrossTenantMigrationJob_DeleteViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Cancel a specific crossTenantMigrationTask for a User within a CrossTenantMigrationJob.
If the User migration can't be canceled or is in a terminal state, a 409 CONFLICT response code is returned, and the migration continues.
.Description
Cancel a specific crossTenantMigrationTask for a User within a CrossTenantMigrationJob.
If the User migration can't be canceled or is in a terminal state, a 409 CONFLICT response code is returned, and the migration continues.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMigrationsIdentity
.Inputs
System.Collections.IDictionary
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationCancelResponse
.Notes
COMPLEX PARAMETER PROPERTIES
 
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IMigrationsIdentity>: Identity Parameter
  [CrossTenantMigrationJobId <String>]: The unique identifier of crossTenantMigrationJob
  [CrossTenantMigrationTaskId <String>]: The unique identifier of crossTenantMigrationTask
  [DisplayName <String>]: Alternate key of crossTenantMigrationJob
.Link
https://learn.microsoft.com/powershell/module/microsoft.graph.beta.migrations/stop-mgbetacrosstenantmigrationjobuser
.Link
https://learn.microsoft.com/graph/api/crosstenantmigrationtask-cancel?view=graph-rest-beta
#>

function Stop-MgBetaCrossTenantMigrationJobUser {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationCancelResponse])]
[CmdletBinding(DefaultParameterSetName='Cancel', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Cancel', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # The unique identifier of crossTenantMigrationJob
    ${CrossTenantMigrationJobId},

    [Parameter(ParameterSetName='Cancel', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # The unique identifier of crossTenantMigrationTask
    ${CrossTenantMigrationTaskId},

    [Parameter(ParameterSetName='CancelViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMigrationsIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('RHV')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Optional Response Headers Variable.
    ${ResponseHeadersVariable},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Collections.IDictionary]
    # Optional headers that will be added to the request.
    ${Headers},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Cancel = 'Microsoft.Graph.Beta.Migrations.private\Stop-MgBetaCrossTenantMigrationJobUser_Cancel';
            CancelViaIdentity = 'Microsoft.Graph.Beta.Migrations.private\Stop-MgBetaCrossTenantMigrationJobUser_CancelViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Cancel a crossTenantMigrationJob.
All tasks within the job that were in a Sync state are canceled.
If the job can't be canceled, a 409 Conflict response is returned and the migrations continue.
This response happens when a migration is already in progress or is in a terminal state.
.Description
Cancel a crossTenantMigrationJob.
All tasks within the job that were in a Sync state are canceled.
If the job can't be canceled, a 409 Conflict response is returned and the migrations continue.
This response happens when a migration is already in progress or is in a terminal state.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMigrationsIdentity
.Inputs
System.Collections.IDictionary
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationCancelResponse
.Notes
COMPLEX PARAMETER PROPERTIES
 
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IMigrationsIdentity>: Identity Parameter
  [CrossTenantMigrationJobId <String>]: The unique identifier of crossTenantMigrationJob
  [CrossTenantMigrationTaskId <String>]: The unique identifier of crossTenantMigrationTask
  [DisplayName <String>]: Alternate key of crossTenantMigrationJob
.Link
https://learn.microsoft.com/powershell/module/microsoft.graph.beta.migrations/stop-mgbetacrosstenantmigrationjob
.Link
https://learn.microsoft.com/graph/api/crosstenantmigrationjob-cancel?view=graph-rest-beta
#>

function Stop-MgBetaCrossTenantMigrationJob {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationCancelResponse])]
[CmdletBinding(DefaultParameterSetName='Cancel', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Cancel', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # The unique identifier of crossTenantMigrationJob
    ${CrossTenantMigrationJobId},

    [Parameter(ParameterSetName='CancelViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMigrationsIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('RHV')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Optional Response Headers Variable.
    ${ResponseHeadersVariable},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Collections.IDictionary]
    # Optional headers that will be added to the request.
    ${Headers},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Cancel = 'Microsoft.Graph.Beta.Migrations.private\Stop-MgBetaCrossTenantMigrationJob_Cancel';
            CancelViaIdentity = 'Microsoft.Graph.Beta.Migrations.private\Stop-MgBetaCrossTenantMigrationJob_CancelViaIdentity';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Validate the configuration of a crossTenantMigrationJob.
This function doesn't migrate any content, but goes through validation for the specified workloads to find any errors or misconfigurations that would affect an actual migration job.
.Description
Validate the configuration of a crossTenantMigrationJob.
This function doesn't migrate any content, but goes through validation for the specified workloads to find any errors or misconfigurations that would affect an actual migration job.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IPathsP4G8KzSolutionsMigrationsCrosstenantmigrationjobsMicrosoftGraphValidatePostRequestbodyContentApplicationJsonSchema
.Inputs
System.Collections.IDictionary
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationJob
.Notes
COMPLEX PARAMETER PROPERTIES
 
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BODYPARAMETER <IPathsP4G8KzSolutionsMigrationsCrosstenantmigrationjobsMicrosoftGraphValidatePostRequestbodyContentApplicationJsonSchema>: .
  [(Any) <Object>]: This indicates any property can be added to this object.
  [CompleteAfterDateTime <String>]:
  [DisplayName <String>]:
  [ExchangeSettings <IMicrosoftGraphExchangeOnlineCrossTenantMigrationSettings>]: exchangeOnlineCrossTenantMigrationSettings
    [(Any) <Object>]: This indicates any property can be added to this object.
    [SourceEndpoint <String>]: Name of the Migration Endpoint in the source tenant
    [TargetDeliveryDomain <String>]: Delivery domain on the target tenant
  [ResourceType <String>]:
  [Resources <String[]>]:
  [SourceTenantId <String>]:
  [Workloads <String[]>]:
 
EXCHANGESETTINGS <IMicrosoftGraphExchangeOnlineCrossTenantMigrationSettings>: exchangeOnlineCrossTenantMigrationSettings
  [(Any) <Object>]: This indicates any property can be added to this object.
  [SourceEndpoint <String>]: Name of the Migration Endpoint in the source tenant
  [TargetDeliveryDomain <String>]: Delivery domain on the target tenant
.Link
https://learn.microsoft.com/powershell/module/microsoft.graph.beta.migrations/test-mgbetacrosstenantmigrationjob
.Link
https://learn.microsoft.com/graph/api/crosstenantmigrationjob-validate?view=graph-rest-beta
#>

function Test-MgBetaCrossTenantMigrationJob {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationJob])]
[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IPathsP4G8KzSolutionsMigrationsCrosstenantmigrationjobsMicrosoftGraphValidatePostRequestbodyContentApplicationJsonSchema]
    # .
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter()]
    [Alias('RHV')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Optional Response Headers Variable.
    ${ResponseHeadersVariable},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${CompleteAfterDateTime},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${DisplayName},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphExchangeOnlineCrossTenantMigrationSettings]
    # exchangeOnlineCrossTenantMigrationSettings
    # To construct, see NOTES section for EXCHANGESETTINGS properties and create a hash table.
    ${ExchangeSettings},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${ResourceType},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String[]]
    # .
    ${Resources},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # .
    ${SourceTenantId},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String[]]
    # .
    ${Workloads},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Collections.IDictionary]
    # Optional headers that will be added to the request.
    ${Headers},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Validate = 'Microsoft.Graph.Beta.Migrations.private\Test-MgBetaCrossTenantMigrationJob_Validate';
            ValidateExpanded = 'Microsoft.Graph.Beta.Migrations.private\Test-MgBetaCrossTenantMigrationJob_ValidateExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

<#
.Synopsis
Update the completeAfterDateTime of a crossTenantMigrationJob object.
Only updates to the completeAfterDateTime are supported.
Use this function to change when the crossTenantMigrationJob starts processing.
If completeAfterDateTime is set to the past, the crossTenantMigrationJob starts processing.
.Description
Update the completeAfterDateTime of a crossTenantMigrationJob object.
Only updates to the completeAfterDateTime are supported.
Use this function to change when the crossTenantMigrationJob starts processing.
If completeAfterDateTime is set to the past, the crossTenantMigrationJob starts processing.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationJob
.Inputs
Microsoft.Graph.Beta.PowerShell.Models.IMigrationsIdentity
.Inputs
System.Collections.IDictionary
.Outputs
Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationJob
.Notes
COMPLEX PARAMETER PROPERTIES
 
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BODYPARAMETER <IMicrosoftGraphCrossTenantMigrationJob>: crossTenantMigrationJob
  [(Any) <Object>]: This indicates any property can be added to this object.
  [Id <String>]: The unique identifier for an entity. Read-only.
  [CompleteAfterDateTime <DateTime?>]: DateTime after which the migration should be performed
  [CreatedBy <String>]: ID of the user that created the job
  [CreatedDateTime <DateTime?>]: When the job what created
  [DisplayName <String>]: Display name of the job. Must be unique per tenant
  [ExchangeSettings <IMicrosoftGraphExchangeOnlineCrossTenantMigrationSettings>]: exchangeOnlineCrossTenantMigrationSettings
    [(Any) <Object>]: This indicates any property can be added to this object.
    [SourceEndpoint <String>]: Name of the Migration Endpoint in the source tenant
    [TargetDeliveryDomain <String>]: Delivery domain on the target tenant
  [JobType <String>]: crossTenantMigrationJobType
  [LastUpdatedDateTime <DateTime?>]: When this migration job was last updated
  [Message <String>]: Status message of the migration job
  [ResourceType <String>]: Type of resource being migrated. Only Users is currently supported
  [Resources <String[]>]: IDs (GUID) of the resources being migrated with the migration job
  [SourceTenantId <String>]: ID (GUID) of the tenant that content is being migrated from
  [Status <String>]: crossTenantMigrationJobStatus
  [TargetTenantId <String>]: ID of the tenant that content is being migrated to
  [Users <IMicrosoftGraphCrossTenantMigrationTask[]>]: Details and status of the users being migrated in this migration job
    [Id <String>]: The unique identifier for an entity. Read-only.
    [CurrentStatus <IMicrosoftGraphCrossTenantMigrationServiceStatusDetails[]>]: Most recent status of this migration task
      [Errors <IMicrosoftGraphError[]>]: Errors associated with the migration for this service
        [Code <String>]: The error code
        [Message <String>]: The message for the error
      [Message <String>]: Service status message
      [Service <String>]: Service or workload the status details are associated with
      [Status <String>]: crossTenantMigrationServiceStatus
    [LastUpdatedDateTime <DateTime?>]: Time the task was last updated
    [TaskType <String>]: Type of migration task. Only Users are supported at this time.
  [Workloads <String[]>]: Workloads to migrate. Supported workloads are Teams, Exchange, and ODSP (OneDrive/SharePoint)
 
EXCHANGESETTINGS <IMicrosoftGraphExchangeOnlineCrossTenantMigrationSettings>: exchangeOnlineCrossTenantMigrationSettings
  [(Any) <Object>]: This indicates any property can be added to this object.
  [SourceEndpoint <String>]: Name of the Migration Endpoint in the source tenant
  [TargetDeliveryDomain <String>]: Delivery domain on the target tenant
 
INPUTOBJECT <IMigrationsIdentity>: Identity Parameter
  [CrossTenantMigrationJobId <String>]: The unique identifier of crossTenantMigrationJob
  [CrossTenantMigrationTaskId <String>]: The unique identifier of crossTenantMigrationTask
  [DisplayName <String>]: Alternate key of crossTenantMigrationJob
 
USERS <IMicrosoftGraphCrossTenantMigrationTask[]>: Details and status of the users being migrated in this migration job
  [Id <String>]: The unique identifier for an entity. Read-only.
  [CurrentStatus <IMicrosoftGraphCrossTenantMigrationServiceStatusDetails[]>]: Most recent status of this migration task
    [Errors <IMicrosoftGraphError[]>]: Errors associated with the migration for this service
      [Code <String>]: The error code
      [Message <String>]: The message for the error
    [Message <String>]: Service status message
    [Service <String>]: Service or workload the status details are associated with
    [Status <String>]: crossTenantMigrationServiceStatus
  [LastUpdatedDateTime <DateTime?>]: Time the task was last updated
  [TaskType <String>]: Type of migration task. Only Users are supported at this time.
.Link
https://learn.microsoft.com/powershell/module/microsoft.graph.beta.migrations/update-mgbetacrosstenantmigrationjob
.Link
https://learn.microsoft.com/graph/api/crosstenantmigrationjob-update?view=graph-rest-beta
#>

function Update-MgBetaCrossTenantMigrationJob {
[OutputType([Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationJob])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [System.String]
    # The unique identifier of crossTenantMigrationJob
    ${CrossTenantMigrationJobId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Path')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMigrationsIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationJob]
    # crossTenantMigrationJob
    # To construct, see NOTES section for BODYPARAMETER properties and create a hash table.
    ${BodyParameter},

    [Parameter()]
    [Alias('RHV')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Optional Response Headers Variable.
    ${ResponseHeadersVariable},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.Collections.Hashtable]
    # Additional Parameters
    ${AdditionalProperties},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # DateTime after which the migration should be performed
    ${CompleteAfterDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # ID of the user that created the job
    ${CreatedBy},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # When the job what created
    ${CreatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Display name of the job.
    # Must be unique per tenant
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphExchangeOnlineCrossTenantMigrationSettings]
    # exchangeOnlineCrossTenantMigrationSettings
    # To construct, see NOTES section for EXCHANGESETTINGS properties and create a hash table.
    ${ExchangeSettings},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # The unique identifier for an entity.
    # Read-only.
    ${Id},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # crossTenantMigrationJobType
    ${JobType},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.DateTime]
    # When this migration job was last updated
    ${LastUpdatedDateTime},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Status message of the migration job
    ${Message},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # Type of resource being migrated.
    # Only Users is currently supported
    ${ResourceType},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String[]]
    # IDs (GUID) of the resources being migrated with the migration job
    ${Resources},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # ID (GUID) of the tenant that content is being migrated from
    ${SourceTenantId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # crossTenantMigrationJobStatus
    ${Status},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String]
    # ID of the tenant that content is being migrated to
    ${TargetTenantId},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [Microsoft.Graph.Beta.PowerShell.Models.IMicrosoftGraphCrossTenantMigrationTask[]]
    # Details and status of the users being migrated in this migration job
    # To construct, see NOTES section for USERS properties and create a hash table.
    ${Users},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [AllowEmptyCollection()]
    [Microsoft.Graph.Beta.PowerShell.Category('Body')]
    [System.String[]]
    # Workloads to migrate.
    # Supported workloads are Teams, Exchange, and ODSP (OneDrive/SharePoint)
    ${Workloads},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(ValueFromPipeline)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Collections.IDictionary]
    # Optional headers that will be added to the request.
    ${Headers},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [Microsoft.Graph.Beta.PowerShell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [Microsoft.Graph.Beta.PowerShell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Update = 'Microsoft.Graph.Beta.Migrations.private\Update-MgBetaCrossTenantMigrationJob_Update';
            UpdateExpanded = 'Microsoft.Graph.Beta.Migrations.private\Update-MgBetaCrossTenantMigrationJob_UpdateExpanded';
            UpdateViaIdentity = 'Microsoft.Graph.Beta.Migrations.private\Update-MgBetaCrossTenantMigrationJob_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Microsoft.Graph.Beta.Migrations.private\Update-MgBetaCrossTenantMigrationJob_UpdateViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Microsoft.Graph.Beta.PowerShell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

# SIG # Begin signature block
# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBmaToHPLs/UqRh
# CVOqm0xpQgobOZGWF5R1mkuBJdEaOqCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z
# 7A5ZL83XAAAAAASFMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM3WhcNMjYwNjE3MTgyMTM3WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQDASkh1cpvuUqfbqxele7LCSHEamVNBfFE4uY1FkGsAdUF/vnjpE1dnAD9vMOqy
# 5ZO49ILhP4jiP/P2Pn9ao+5TDtKmcQ+pZdzbG7t43yRXJC3nXvTGQroodPi9USQi
# 9rI+0gwuXRKBII7L+k3kMkKLmFrsWUjzgXVCLYa6ZH7BCALAcJWZTwWPoiT4HpqQ
# hJcYLB7pfetAVCeBEVZD8itKQ6QA5/LQR+9X6dlSj4Vxta4JnpxvgSrkjXCz+tlJ
# 67ABZ551lw23RWU1uyfgCfEFhBfiyPR2WSjskPl9ap6qrf8fNQ1sGYun2p4JdXxe
# UAKf1hVa/3TQXjvPTiRXCnJPAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUuCZyGiCuLYE0aU7j5TFqY05kko0w
# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW
# MBQGA1UEBRMNMjMwMDEyKzUwNTM1OTAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci
# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG
# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu
# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0
# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBACjmqAp2Ci4sTHZci+qk
# tEAKsFk5HNVGKyWR2rFGXsd7cggZ04H5U4SV0fAL6fOE9dLvt4I7HBHLhpGdE5Uj
# Ly4NxLTG2bDAkeAVmxmd2uKWVGKym1aarDxXfv3GCN4mRX+Pn4c+py3S/6Kkt5eS
# DAIIsrzKw3Kh2SW1hCwXX/k1v4b+NH1Fjl+i/xPJspXCFuZB4aC5FLT5fgbRKqns
# WeAdn8DsrYQhT3QXLt6Nv3/dMzv7G/Cdpbdcoul8FYl+t3dmXM+SIClC3l2ae0wO
# lNrQ42yQEycuPU5OoqLT85jsZ7+4CaScfFINlO7l7Y7r/xauqHbSPQ1r3oIC+e71
# 5s2G3ClZa3y99aYx2lnXYe1srcrIx8NAXTViiypXVn9ZGmEkfNcfDiqGQwkml5z9
# nm3pWiBZ69adaBBbAFEjyJG4y0a76bel/4sDCVvaZzLM3TFbxVO9BQrjZRtbJZbk
# C3XArpLqZSfx53SuYdddxPX8pvcqFuEu8wcUeD05t9xNbJ4TtdAECJlEi0vvBxlm
# M5tzFXy2qZeqPMXHSQYqPgZ9jvScZ6NwznFD0+33kbzyhOSz/WuGbAu4cHZG8gKn
# lQVT4uA2Diex9DMs2WHiokNknYlLoUeWXW1QrJLpqO82TLyKTbBM/oZHAdIc0kzo
# STro9b3+vjn2809D0+SOOCVZMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq
# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x
# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg
# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03
# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr
# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg
# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy
# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9
# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh
# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k
# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB
# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn
# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90
# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w
# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o
# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD
# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa
# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny
# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG
# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV
# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3
# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG
# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl
# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb
# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l
# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6
# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0
# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560
# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam
# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa
# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah
# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA
# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt
# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr
# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw
# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp
# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB
# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO
# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIEz7NW0T1S8M92ocRucbu9/9
# pbXSR+lxoX/t6QXzjrISMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A
# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB
# BQAEggEAGdrumF6/nIyqcdiQJNo3JfdBTLr1GvF/wBGWPZxuy0eL+XGXqa+m4EFN
# bk/S7LEiRESCiSNbqhZHKlw5YaAIiEXm4GwBzQI+4qQnYMebfX1P3Hl1sHzA+lA9
# nGVdRs2EFzZZLYml0yaypTA4z/xH/xdQVePYFgGWrXjagoNZNNLtDFpxQuz0bMMy
# pyN1rqT83VEDk5w3n5JrXSXoCU9+AVStnypuPp+I2QCXUk1GQEMWuO5JK0UILxBj
# yppPiMP47rMId7t+JhTON5bM7xHBKSpO8Kf3wlueHr4IJ8Dq/kKt9H/Ac2eGGiRY
# BBpEmZdOhPEeTF+QM8TjrviUo/4RaaGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC
# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq
# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl
# AwQCAQUABCBI0oxmf4PSRCYHJNFUBH5BgukQXkg+1RbIBD9M+0MwsAIGaWjpFbYL
# GBMyMDI2MDIwNTA1MTAxNi43MzlaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV
# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l
# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0w
# M0UwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg
# ghHqMIIHIDCCBQigAwIBAgITMwAAAgy5ZOM1nOz0rgABAAACDDANBgkqhkiG9w0B
# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD
# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yNTAxMzAxOTQz
# MDBaFw0yNjA0MjIxOTQzMDBaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz
# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv
# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z
# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0wM0UwLUQ5NDcxJTAjBgNV
# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB
# AQUAA4ICDwAwggIKAoICAQDKAVYmPeRtga/U6jzqyqLD0MAool23gcBN58+Z/Xsk
# YwNJsZ+O+wVyQYl8dPTK1/BC2xAic1m+JvckqjVaQ32KmURsEZotirQY4PKVW+eX
# wRt3r6szgLuic6qoHlbXox/l0HJtgURkzDXWMkKmGSL7z8/crqcvmYqv8t/slAF4
# J+mpzb9tMFVmjwKXONVdRwg9Q3WaPZBC7Wvoi7PRIN2jgjSBnHYyAZSlstKNrpYb
# 6+Gu6oSFkQzGpR65+QNDdkP4ufOf4PbOg3fb4uGPjI8EPKlpwMwai1kQyX+fgcgC
# oV9J+o8MYYCZUet3kzhhwRzqh6LMeDjaXLP701SXXiXc2ZHzuDHbS/sZtJ3627cV
# pClXEIUvg2xpr0rPlItHwtjo1PwMCpXYqnYKvX8aJ8nawT9W8FUuuyZPG1852+q4
# jkVleKL7x+7el8ETehbdkwdhAXyXimaEzWetNNSmG/KfHAp9czwsL1vKr4Rgn+pI
# IkZHuomdf5e481K+xIWhLCPdpuV87EqGOK/jbhOnZEqwdvA0AlMaLfsmCemZmupe
# jaYuEk05/6cCUxgF4zCnkJeYdMAP+9Z4kVh7tzRFsw/lZSl2D7EhIA6Knj6RffH2
# k7YtSGSv86CShzfiXaz9y6sTu8SGqF6ObL/eu/DkivyVoCfUXWLjiSJsrS63D0EH
# HQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFHUORSH/sB/rQ/beD0l5VxQ706GIMB8G
# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG
# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy
# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w
# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy
# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG
# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD
# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDZMPr4gVmwwf4GMB5ZfHSr34uhug6yzu4H
# UT+JWMZqz9uhLZBoX5CPjdKJzwAVvYoNuLmS0+9lA5S74rvKqd/u9vp88VGk6U7g
# MceatdqpKlbVRdn2ZfrMcpI4zOc6BtuYrzJV4cEs1YmX95uiAxaED34w02BnfuPZ
# XA0edsDBbd4ixFU8X/1J0DfIUk1YFYPOrmwmI2k16u6TcKO0YpRlwTdCq9vO0eEI
# ER1SLmQNBzX9h2ccCvtgekOaBoIQ3ZRai8Ds1f+wcKCPzD4qDX3xNgvLFiKoA6ZS
# G9S/yOrGaiSGIeDy5N9VQuqTNjryuAzjvf5W8AQp31hV1GbUDOkbUdd+zkJWKX4F
# mzeeN52EEbykoWcJ5V9M4DPGN5xpFqXy9aO0+dR0UUYWuqeLhDyRnVeZcTEu0xgm
# o+pQHauFVASsVORMp8TF8dpesd+tqkkQ8VNvI20oOfnTfL+7ZgUMf7qNV0ll0Wo5
# nlr1CJva1bfk2Hc5BY1M9sd3blBkezyvJPn4j0bfOOrCYTwYsNsjiRl/WW18NOpi
# wqciwFlUNqtWCRMzC9r84YaUMQ82Bywk48d4uBon5ZA8pXXS7jwJTjJj5USeRl9v
# jT98PDZyCFO2eFSOFdDdf6WBo/WZUA2hGZ0q+J7j140fbXCfOUIm0j23HaAV0ckD
# S/nmC/oF1jCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI
# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy
# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC
# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp
# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg
# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF
# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6
# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp
# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu
# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E
# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0
# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q
# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ
# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA
# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw
# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG
# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV
# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj
# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK
# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC
# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX
# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v
# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI
# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j
# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG
# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x
# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC
# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449
# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM
# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS
# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d
# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn
# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs
# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL
# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL
# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN
# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn
# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE5MzUtMDNFMC1EOTQ3MSUwIwYDVQQD
# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQDv
# u8hkhEMt5Z8Ldefls7z1LVU8pqCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w
# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA7S5qpDAiGA8yMDI2MDIwNTAxMDIy
# OFoYDzIwMjYwMjA2MDEwMjI4WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDtLmqk
# AgEAMAcCAQACAgwAMAcCAQACAhOaMAoCBQDtL7wkAgEAMDYGCisGAQQBhFkKBAIx
# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI
# hvcNAQELBQADggEBAD+N1SdNG6OhikBuVaWWqQ/exiYHvENkAy4FTw+PoZYE14AE
# hf5doIDeI1s93rrgpHHjiI/naFLfmk5Z1Uh+V8dHuFQyoYhoOlK7Skga8AyxeJKC
# fHRCJP+n4SKdMo5p3AbJvGkgxSs1QUst7VxMnsk3GMeIjqy0LPt1F4Jhmifb4oeB
# AcMcKkWwmgeBoYLdWm8WRSTKCjdGc4CE6e5eM7JABNI9/AAHeKYv8KgANCX+olVs
# jAebbN0+OFsmmZzDiXZqneLZuBJTdtnybz458YYrMf7dJcYqlIzWY4ei6hy10vhv
# 8RF4rGEPnudA0Ply2Zpn/RAIdbcIafDqjiX5mBExggQNMIIECQIBATCBkzB8MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy
# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAgy5ZOM1nOz0rgABAAACDDAN
# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G
# CSqGSIb3DQEJBDEiBCBlUCsITYSndZe8iG/eAI+lBiQx/X7AoeMAan35bPa4OzCB
# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINUo17cFMZN46MI5NfIAg9Ux5cO5
# xM9inre5riuOZ8ItMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh
# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw
# MTACEzMAAAIMuWTjNZzs9K4AAQAAAgwwIgQgjGF249a7yEp5WwBtli3ChU6DyYm6
# 5UWh4/V5ky6UOFowDQYJKoZIhvcNAQELBQAEggIAYvsojzHMWVSon4D3J9n2F5+Z
# 1MOYGw6I0L0nKKAJaQPObr2kBzQLTTtdtOH6wyqWJDT7K4BMWm7LMasWHXBU23xH
# ZPh5pCOZkpn5KY/YwY2SZggoLsIRNAWqHNGzJMpCdRByPZ+rWqPJHRBIp7Zmb6Zf
# gOdS1qANG0+IuoWayLPBRXWp0RQqt2swP0S9eBnBbey689En20I+4COTER81jAhD
# mpGtdWg7cQv1gRnXFDL7Krt4PEzsGHVTswwylyeKJWx5NJBVUaAN7n2mcTOOkwnu
# SpG4iLeR4TuESgwWS1kSlMC73trRBfXyR/FdveJyPFo7CZwjgzR+VVy1bWzUTNfX
# bUITsb7Qqcvn6JQ1xr4J2SCCoxFKQbnYlTsJOJFT/pD9J6n88oCG2z28NTNVJI/e
# F1QDfqNeKFK1HKyAMYzdnlrqNGsSAIAc0ZQzfsJnhr43w+hvIek2x8eau6jGCkN8
# OSHwIZmO6BF8bozJq1SiCrsOxck7UUxu3oG0nKIO/OO8iD6Hbu7Dr9FuIF8vOG+A
# P8zeuMhLLnLVP1nOtqPfH0pXJnSD887ABOOFvShnH/q538mkIMMBQYbefepPGYgy
# RCmQoRu2DM6N7B66Hiz4FFIRE35sSvtInEOzHQ7R6XOTAfvzIwqLaFe77gQlFZQq
# we/0MA/BGQ9DVo7EVwg=
# SIG # End signature block