Model/UserSchemaAttribute.ps1

#
# Okta Management
# Allows customers to easily access the Okta Management APIs
# Version: 3.0.0
# Contact: devex-public@okta.com
# Generated by OpenAPI Generator: https://openapi-generator.tech
#

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
No description available.
 
.PARAMETER Description
No description available.
.PARAMETER Enum
No description available.
.PARAMETER ExternalName
No description available.
.PARAMETER ExternalNamespace
No description available.
.PARAMETER Items
No description available.
.PARAMETER Master
No description available.
.PARAMETER MaxLength
No description available.
.PARAMETER MinLength
No description available.
.PARAMETER Mutability
No description available.
.PARAMETER OneOf
No description available.
.PARAMETER Pattern
No description available.
.PARAMETER Permissions
No description available.
.PARAMETER Required
No description available.
.PARAMETER Scope
No description available.
.PARAMETER Title
No description available.
.PARAMETER Type
No description available.
.PARAMETER Union
No description available.
.PARAMETER Unique
No description available.
.OUTPUTS
 
UserSchemaAttribute<PSCustomObject>
#>


function Initialize-OktaUserSchemaAttribute {
    [CmdletBinding()]
    Param (
        [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Description},
        [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${Enum},
        [Parameter(Position = 2, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${ExternalName},
        [Parameter(Position = 3, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${ExternalNamespace},
        [Parameter(Position = 4, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${Items},
        [Parameter(Position = 5, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${Master},
        [Parameter(Position = 6, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int32]]
        ${MaxLength},
        [Parameter(Position = 7, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int32]]
        ${MinLength},
        [Parameter(Position = 8, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Mutability},
        [Parameter(Position = 9, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${OneOf},
        [Parameter(Position = 10, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Pattern},
        [Parameter(Position = 11, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${Permissions},
        [Parameter(Position = 12, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${Required},
        [Parameter(Position = 13, ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("NONE", "SELF")]
        [PSCustomObject]
        ${Scope},
        [Parameter(Position = 14, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Title},
        [Parameter(Position = 15, ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("array", "boolean", "integer", "number", "string")]
        [PSCustomObject]
        ${Type},
        [Parameter(Position = 16, ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("DISABLE", "ENABLE")]
        [PSCustomObject]
        ${Union},
        [Parameter(Position = 17, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Unique}
    )

    Process {
        'Creating PSCustomObject: Okta.PowerShell => OktaUserSchemaAttribute' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug


        $PSO = [PSCustomObject]@{
            "description" = ${Description}
            "enum" = ${Enum}
            "externalName" = ${ExternalName}
            "externalNamespace" = ${ExternalNamespace}
            "items" = ${Items}
            "master" = ${Master}
            "maxLength" = ${MaxLength}
            "minLength" = ${MinLength}
            "mutability" = ${Mutability}
            "oneOf" = ${OneOf}
            "pattern" = ${Pattern}
            "permissions" = ${Permissions}
            "required" = ${Required}
            "scope" = ${Scope}
            "title" = ${Title}
            "type" = ${Type}
            "union" = ${Union}
            "unique" = ${Unique}
        }


        return $PSO
    }
}

<#
.SYNOPSIS
 
Convert from JSON to UserSchemaAttribute<PSCustomObject>
 
.DESCRIPTION
 
Convert from JSON to UserSchemaAttribute<PSCustomObject>
 
.PARAMETER Json
 
Json object
 
.OUTPUTS
 
UserSchemaAttribute<PSCustomObject>
#>

function ConvertFrom-OktaJsonToUserSchemaAttribute {
    Param(
        [AllowEmptyString()]
        [string]$Json
    )

    Process {
        'Converting JSON to PSCustomObject: Okta.PowerShell => OktaUserSchemaAttribute' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $JsonParameters = ConvertFrom-Json -InputObject $Json

        # check if Json contains properties not defined in OktaUserSchemaAttribute
        $AllProperties = ("description", "enum", "externalName", "externalNamespace", "items", "master", "maxLength", "minLength", "mutability", "oneOf", "pattern", "permissions", "required", "scope", "title", "type", "union", "unique")
        foreach ($name in $JsonParameters.PsObject.Properties.Name) {
            if (!($AllProperties.Contains($name))) {
                throw "Error! JSON key '$name' not found in the properties: $($AllProperties)"
            }
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "description"))) { #optional property not found
            $Description = $null
        } else {
            $Description = $JsonParameters.PSobject.Properties["description"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "enum"))) { #optional property not found
            $Enum = $null
        } else {
            $Enum = $JsonParameters.PSobject.Properties["enum"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "externalName"))) { #optional property not found
            $ExternalName = $null
        } else {
            $ExternalName = $JsonParameters.PSobject.Properties["externalName"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "externalNamespace"))) { #optional property not found
            $ExternalNamespace = $null
        } else {
            $ExternalNamespace = $JsonParameters.PSobject.Properties["externalNamespace"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "items"))) { #optional property not found
            $Items = $null
        } else {
            $Items = $JsonParameters.PSobject.Properties["items"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "master"))) { #optional property not found
            $Master = $null
        } else {
            $Master = $JsonParameters.PSobject.Properties["master"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "maxLength"))) { #optional property not found
            $MaxLength = $null
        } else {
            $MaxLength = $JsonParameters.PSobject.Properties["maxLength"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "minLength"))) { #optional property not found
            $MinLength = $null
        } else {
            $MinLength = $JsonParameters.PSobject.Properties["minLength"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "mutability"))) { #optional property not found
            $Mutability = $null
        } else {
            $Mutability = $JsonParameters.PSobject.Properties["mutability"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "oneOf"))) { #optional property not found
            $OneOf = $null
        } else {
            $OneOf = $JsonParameters.PSobject.Properties["oneOf"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "pattern"))) { #optional property not found
            $Pattern = $null
        } else {
            $Pattern = $JsonParameters.PSobject.Properties["pattern"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "permissions"))) { #optional property not found
            $Permissions = $null
        } else {
            $Permissions = $JsonParameters.PSobject.Properties["permissions"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "required"))) { #optional property not found
            $Required = $null
        } else {
            $Required = $JsonParameters.PSobject.Properties["required"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "scope"))) { #optional property not found
            $Scope = $null
        } else {
            $Scope = $JsonParameters.PSobject.Properties["scope"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "title"))) { #optional property not found
            $Title = $null
        } else {
            $Title = $JsonParameters.PSobject.Properties["title"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "type"))) { #optional property not found
            $Type = $null
        } else {
            $Type = $JsonParameters.PSobject.Properties["type"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "union"))) { #optional property not found
            $Union = $null
        } else {
            $Union = $JsonParameters.PSobject.Properties["union"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "unique"))) { #optional property not found
            $Unique = $null
        } else {
            $Unique = $JsonParameters.PSobject.Properties["unique"].value
        }

        $PSO = [PSCustomObject]@{
            "description" = ${Description}
            "enum" = ${Enum}
            "externalName" = ${ExternalName}
            "externalNamespace" = ${ExternalNamespace}
            "items" = ${Items}
            "master" = ${Master}
            "maxLength" = ${MaxLength}
            "minLength" = ${MinLength}
            "mutability" = ${Mutability}
            "oneOf" = ${OneOf}
            "pattern" = ${Pattern}
            "permissions" = ${Permissions}
            "required" = ${Required}
            "scope" = ${Scope}
            "title" = ${Title}
            "type" = ${Type}
            "union" = ${Union}
            "unique" = ${Unique}
        }

        return $PSO
    }

}


# SIG # Begin signature block
# MIIoHQYJKoZIhvcNAQcCoIIoDjCCKAoCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA6sQzrylZnECiC
# OGr20aaYf2Bo+hyAbNQehB8SfemOeqCCISAwggWNMIIEdaADAgECAhAOmxiO+dAt
# 5+/bUOIIQBhaMA0GCSqGSIb3DQEBDAUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNV
# BAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yMjA4MDEwMDAwMDBa
# Fw0zMTExMDkyMzU5NTlaMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lD
# ZXJ0IFRydXN0ZWQgUm9vdCBHNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
# ggIBAL/mkHNo3rvkXUo8MCIwaTPswqclLskhPfKK2FnC4SmnPVirdprNrnsbhA3E
# MB/zG6Q4FutWxpdtHauyefLKEdLkX9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iTcMKy
# unWZanMylNEQRBAu34LzB4TmdDttceItDBvuINXJIB1jKS3O7F5OyJP4IWGbNOsF
# xl7sWxq868nPzaw0QF+xembud8hIqGZXV59UWI4MK7dPpzDZVu7Ke13jrclPXuU1
# 5zHL2pNe3I6PgNq2kZhAkHnDeMe2scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCrVYJB
# MtfbBHMqbpEBfCFM1LyuGwN1XXhm2ToxRJozQL8I11pJpMLmqaBn3aQnvKFPObUR
# WBf3JFxGj2T3wWmIdph2PVldQnaHiZdpekjw4KISG2aadMreSx7nDmOu5tTvkpI6
# nj3cAORFJYm2mkQZK37AlLTSYW3rM9nF30sEAMx9HJXDj/chsrIRt7t/8tWMcCxB
# YKqxYxhElRp2Yn72gLD76GSmM9GJB+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls5Q5S
# UUd0viastkF13nqsX40/ybzTQRESW+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBRa2+x
# q4aLT8LWRV+dIPyhHsXAj6KxfgommfXkaS+YHS312amyHeUbAgMBAAGjggE6MIIB
# NjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTs1+OC0nFdZEzfLmc/57qYrhwP
# TzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzAOBgNVHQ8BAf8EBAMC
# AYYweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
# Y2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNv
# bS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0
# aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENB
# LmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQEMBQADggEBAHCgv0Nc
# Vec4X6CjdBs9thbX979XB72arKGHLOyFXqkauyL4hxppVCLtpIh3bb0aFPQTSnov
# Lbc47/T/gLn4offyct4kvFIDyE7QKt76LVbP+fT3rDB6mouyXtTP0UNEm0Mh65Zy
# oUi0mcudT6cGAxN3J0TU53/oWajwvy8LpunyNDzs9wPHh6jSTEAZNUZqaVSwuKFW
# juyk1T3osdz9HNj0d1pcVIxv76FQPfx2CWiEn2/K2yCNNWAcAgPLILCsWKAOQGPF
# mCLBsln1VWvPJ6tsds5vIy30fnFqI2si/xK4VC0nftg62fC2h5b9W9FcrBjDTZ9z
# twGpn1eqXijiuZQwggauMIIElqADAgECAhAHNje3JFR82Ees/ShmKl5bMA0GCSqG
# SIb3DQEBCwUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMx
# GTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRy
# dXN0ZWQgUm9vdCBHNDAeFw0yMjAzMjMwMDAwMDBaFw0zNzAzMjIyMzU5NTlaMGMx
# CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMy
# RGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcg
# Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDGhjUGSbPBPXJJUVXH
# JQPE8pE3qZdRodbSg9GeTKJtoLDMg/la9hGhRBVCX6SI82j6ffOciQt/nR+eDzMf
# UBMLJnOWbfhXqAJ9/UO0hNoR8XOxs+4rgISKIhjf69o9xBd/qxkrPkLcZ47qUT3w
# 1lbU5ygt69OxtXXnHwZljZQp09nsad/ZkIdGAHvbREGJ3HxqV3rwN3mfXazL6IRk
# tFLydkf3YYMZ3V+0VAshaG43IbtArF+y3kp9zvU5EmfvDqVjbOSmxR3NNg1c1eYb
# qMFkdECnwHLFuk4fsbVYTXn+149zk6wsOeKlSNbwsDETqVcplicu9Yemj052FVUm
# cJgmf6AaRyBD40NjgHt1biclkJg6OBGz9vae5jtb7IHeIhTZgirHkr+g3uM+onP6
# 5x9abJTyUpURK1h0QCirc0PO30qhHGs4xSnzyqqWc0Jon7ZGs506o9UD4L/wojzK
# QtwYSH8UNM/STKvvmz3+DrhkKvp1KCRB7UK/BZxmSVJQ9FHzNklNiyDSLFc1eSuo
# 80VgvCONWPfcYd6T/jnA+bIwpUzX6ZhKWD7TA4j+s4/TXkt2ElGTyYwMO1uKIqjB
# Jgj5FBASA31fI7tk42PgpuE+9sJ0sj8eCXbsq11GdeJgo1gJASgADoRU7s7pXche
# MBK9Rp6103a50g5rmQzSM7TNsQIDAQABo4IBXTCCAVkwEgYDVR0TAQH/BAgwBgEB
# /wIBADAdBgNVHQ4EFgQUuhbZbU2FL3MpdpovdYxqII+eyG8wHwYDVR0jBBgwFoAU
# 7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQMMAoG
# CCsGAQUFBwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYYaHR0cDovL29j
# c3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2FjZXJ0cy5kaWdp
# Y2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNVHR8EPDA6MDig
# NqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9v
# dEc0LmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEwDQYJKoZI
# hvcNAQELBQADggIBAH1ZjsCTtm+YqUQiAX5m1tghQuGwGC4QTRPPMFPOvxj7x1Bd
# 4ksp+3CKDaopafxpwc8dB+k+YMjYC+VcW9dth/qEICU0MWfNthKWb8RQTGIdDAiC
# qBa9qVbPFXONASIlzpVpP0d3+3J0FNf/q0+KLHqrhc1DX+1gtqpPkWaeLJ7giqzl
# /Yy8ZCaHbJK9nXzQcAp876i8dU+6WvepELJd6f8oVInw1YpxdmXazPByoyP6wCeC
# RK6ZJxurJB4mwbfeKuv2nrF5mYGjVoarCkXJ38SNoOeY+/umnXKvxMfBwWpx2cYT
# gAnEtp/Nh4cku0+jSbl3ZpHxcpzpSwJSpzd+k1OsOx0ISQ+UzTl63f8lY5knLD0/
# a6fxZsNBzU+2QJshIUDQtxMkzdwdeDrknq3lNHGS1yZr5Dhzq6YBT70/O3itTK37
# xJV77QpfMzmHQXh6OOmc4d0j/R0o08f56PGYX/sr2H7yRp11LB4nLCbbbxV7HhmL
# NriT1ObyF5lZynDwN7+YAN8gFk8n+2BnFqFmut1VwDophrCYoCvtlUG3OtUVmDG0
# YgkPCr2B2RP+v6TR81fZvAT6gt4y3wSJ8ADNXcL50CN/AAvkdgIm2fBldkKmKYcJ
# RyvmfxqkhQ/8mJb2VVQrH4D6wPIOK+XW+6kvRBVK5xMOHds3OBqhK/bt1nz8MIIG
# sDCCBJigAwIBAgIQCK1AsmDSnEyfXs2pvZOu2TANBgkqhkiG9w0BAQwFADBiMQsw
# CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
# ZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQw
# HhcNMjEwNDI5MDAwMDAwWhcNMzYwNDI4MjM1OTU5WjBpMQswCQYDVQQGEwJVUzEX
# MBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0
# ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0ExMIICIjAN
# BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1bQvQtAorXi3XdU5WRuxiEL1M4zr
# PYGXcMW7xIUmMJ+kjmjYXPXrNCQH4UtP03hD9BfXHtr50tVnGlJPDqFX/IiZwZHM
# gQM+TXAkZLON4gh9NH1MgFcSa0OamfLFOx/y78tHWhOmTLMBICXzENOLsvsI8Irg
# nQnAZaf6mIBJNYc9URnokCF4RS6hnyzhGMIazMXuk0lwQjKP+8bqHPNlaJGiTUyC
# EUhSaN4QvRRXXegYE2XFf7JPhSxIpFaENdb5LpyqABXRN/4aBpTCfMjqGzLmysL0
# p6MDDnSlrzm2q2AS4+jWufcx4dyt5Big2MEjR0ezoQ9uo6ttmAaDG7dqZy3SvUQa
# khCBj7A7CdfHmzJawv9qYFSLScGT7eG0XOBv6yb5jNWy+TgQ5urOkfW+0/tvk2E0
# XLyTRSiDNipmKF+wc86LJiUGsoPUXPYVGUztYuBeM/Lo6OwKp7ADK5GyNnm+960I
# HnWmZcy740hQ83eRGv7bUKJGyGFYmPV8AhY8gyitOYbs1LcNU9D4R+Z1MI3sMJN2
# FKZbS110YU0/EpF23r9Yy3IQKUHw1cVtJnZoEUETWJrcJisB9IlNWdt4z4FKPkBH
# X8mBUHOFECMhWWCKZFTBzCEa6DgZfGYczXg4RTCZT/9jT0y7qg0IU0F8WD1Hs/q2
# 7IwyCQLMbDwMVhECAwEAAaOCAVkwggFVMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD
# VR0OBBYEFGg34Ou2O/hfEYb7/mF7CIhl9E5CMB8GA1UdIwQYMBaAFOzX44LScV1k
# TN8uZz/nupiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcD
# AzB3BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2lj
# ZXJ0LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29t
# L0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYyaHR0
# cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcmww
# HAYDVR0gBBUwEzAHBgVngQwBAzAIBgZngQwBBAEwDQYJKoZIhvcNAQEMBQADggIB
# ADojRD2NCHbuj7w6mdNW4AIapfhINPMstuZ0ZveUcrEAyq9sMCcTEp6QRJ9L/Z6j
# fCbVN7w6XUhtldU/SfQnuxaBRVD9nL22heB2fjdxyyL3WqqQz/WTauPrINHVUHmI
# moqKwba9oUgYftzYgBoRGRjNYZmBVvbJ43bnxOQbX0P4PpT/djk9ntSZz0rdKOtf
# JqGVWEjVGv7XJz/9kNF2ht0csGBc8w2o7uCJob054ThO2m67Np375SFTWsPK6Wrx
# oj7bQ7gzyE84FJKZ9d3OVG3ZXQIUH0AzfAPilbLCIXVzUstG2MQ0HKKlS43Nb3Y3
# LIU/Gs4m6Ri+kAewQ3+ViCCCcPDMyu/9KTVcH4k4Vfc3iosJocsL6TEa/y4ZXDlx
# 4b6cpwoG1iZnt5LmTl/eeqxJzy6kdJKt2zyknIYf48FWGysj/4+16oh7cGvmoLr9
# Oj9FpsToFpFSi0HASIRLlk2rREDjjfAVKM7t8RhWByovEMQMCGQ8M4+uKIw8y4+I
# Cw2/O/TOHnuO77Xry7fwdxPm5yg/rBKupS8ibEH5glwVZsxsDsrFhsP2JjMMB0ug
# 0wcCampAMEhLNKhRILutG4UI4lkNbcoFUCvqShyepf2gpx8GdOfy1lKQ/a+FSCH5
# Vzu0nAPthkX0tGFuv2jiJmCG6sivqf6UHedjGzqGVnhOMIIGwjCCBKqgAwIBAgIQ
# BUSv85SdCDmmv9s/X+VhFjANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzEX
# MBUGA1UEChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRydXN0
# ZWQgRzQgUlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENBMB4XDTIzMDcxNDAw
# MDAwMFoXDTM0MTAxMzIzNTk1OVowSDELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRp
# Z2lDZXJ0LCBJbmMuMSAwHgYDVQQDExdEaWdpQ2VydCBUaW1lc3RhbXAgMjAyMzCC
# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKNTRYcdg45brD5UsyPgz5/X
# 5dLnXaEOCdwvSKOXejsqnGfcYhVYwamTEafNqrJq3RApih5iY2nTWJw1cb86l+uU
# UI8cIOrHmjsvlmbjaedp/lvD1isgHMGXlLSlUIHyz8sHpjBoyoNC2vx/CSSUpIIa
# 2mq62DvKXd4ZGIX7ReoNYWyd/nFexAaaPPDFLnkPG2ZS48jWPl/aQ9OE9dDH9kgt
# XkV1lnX+3RChG4PBuOZSlbVH13gpOWvgeFmX40QrStWVzu8IF+qCZE3/I+PKhu60
# pCFkcOvV5aDaY7Mu6QXuqvYk9R28mxyyt1/f8O52fTGZZUdVnUokL6wrl76f5P17
# cz4y7lI0+9S769SgLDSb495uZBkHNwGRDxy1Uc2qTGaDiGhiu7xBG3gZbeTZD+BY
# QfvYsSzhUa+0rRUGFOpiCBPTaR58ZE2dD9/O0V6MqqtQFcmzyrzXxDtoRKOlO0L9
# c33u3Qr/eTQQfqZcClhMAD6FaXXHg2TWdc2PEnZWpST618RrIbroHzSYLzrqawGw
# 9/sqhux7UjipmAmhcbJsca8+uG+W1eEQE/5hRwqM/vC2x9XH3mwk8L9CgsqgcT2c
# kpMEtGlwJw1Pt7U20clfCKRwo+wK8REuZODLIivK8SgTIUlRfgZm0zu++uuRONhR
# B8qUt+JQofM604qDy0B7AgMBAAGjggGLMIIBhzAOBgNVHQ8BAf8EBAMCB4AwDAYD
# VR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAgBgNVHSAEGTAXMAgG
# BmeBDAEEAjALBglghkgBhv1sBwEwHwYDVR0jBBgwFoAUuhbZbU2FL3MpdpovdYxq
# II+eyG8wHQYDVR0OBBYEFKW27xPn783QZKHVVqllMaPe1eNJMFoGA1UdHwRTMFEw
# T6BNoEuGSWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRH
# NFJTQTQwOTZTSEEyNTZUaW1lU3RhbXBpbmdDQS5jcmwwgZAGCCsGAQUFBwEBBIGD
# MIGAMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wWAYIKwYB
# BQUHMAKGTGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0
# ZWRHNFJTQTQwOTZTSEEyNTZUaW1lU3RhbXBpbmdDQS5jcnQwDQYJKoZIhvcNAQEL
# BQADggIBAIEa1t6gqbWYF7xwjU+KPGic2CX/yyzkzepdIpLsjCICqbjPgKjZ5+PF
# 7SaCinEvGN1Ott5s1+FgnCvt7T1IjrhrunxdvcJhN2hJd6PrkKoS1yeF844ektrC
# QDifXcigLiV4JZ0qBXqEKZi2V3mP2yZWK7Dzp703DNiYdk9WuVLCtp04qYHnbUFc
# jGnRuSvExnvPnPp44pMadqJpddNQ5EQSviANnqlE0PjlSXcIWiHFtM+YlRpUurm8
# wWkZus8W8oM3NG6wQSbd3lqXTzON1I13fXVFoaVYJmoDRd7ZULVQjK9WvUzF4UbF
# KNOt50MAcN7MmJ4ZiQPq1JE3701S88lgIcRWR+3aEUuMMsOI5ljitts++V+wQtaP
# 4xeR0arAVeOGv6wnLEHQmjNKqDbUuXKWfpd5OEhfysLcPTLfddY2Z1qJ+Panx+VP
# NTwAvb6cKmx5AdzaROY63jg7B145WPR8czFVoIARyxQMfq68/qTreWWqaNYiyjvr
# moI1VygWy2nyMpqy0tg6uLFGhmu6F/3Ed2wVbK6rr3M66ElGt9V/zLY4wNjsHPW2
# obhDLN9OTH0eaHDAdwrUAuBcYLso/zjlUlrWrBciI0707NMX+1Br/wd3H3GXREHJ
# uEbTbDJ8WC9nR2XlG3O2mflrLAZG70Ee8PBf4NvZrZCARK+AEEGKMIIHXzCCBUeg
# AwIBAgIQDqgNBeeiJHzhtzSGhFvtMzANBgkqhkiG9w0BAQsFADBpMQswCQYDVQQG
# EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0
# IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0Ex
# MB4XDTIyMDMxMDAwMDAwMFoXDTI1MDYwNjIzNTk1OVowZDELMAkGA1UEBhMCVVMx
# EzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xEzAR
# BgNVBAoTCk9rdGEsIEluYy4xEzARBgNVBAMTCk9rdGEsIEluYy4wggIiMA0GCSqG
# SIb3DQEBAQUAA4ICDwAwggIKAoICAQC4DJYrxv2fEdmd1f+rsCQdBo2hQ5R2qvbG
# JLLgqgMBcfKbM3mZafhtPhYM0qtPSvc6i5UNiLwwBYwzHcfi5ce1wj6YZsgV4G+y
# wRpITALn05DOyoW1ZJyam8snJkf7FwhWgsyECJT2Y3tE2guCIpFW7gwHZMZuh3cK
# sHRDUSNw67V9DZ0chP5IHlJsl48+6a8nPbil90tmaL7WhxwhZxEoJbbOvWZWkztj
# Sxg8P1JACh6o4ORBPiNudXavKjWg/iBPWwHYstZQhvhIFBvkEf58FHDdZSkm1CEm
# yxBoA96pAs0v5l7f+0BIuU/3EcXDwB4na0obm3q+/p2PzLUrhWONvoMxEMp1qRKk
# KsQtavqD9AX4FTexQQlLPu/KkNklQfZaMOYrmQ3HOWMxLQW/YvuaT+Wp3Vhwmi0O
# L4WlmPZt/eeOW2NM9zK9rn+CycW48AcVwGwfKDmOcx5qe0dHwGllpy1pU049W+Ne
# ZMpAny5ns3RE/nggYYtxlWM23UUC+R1z2oOqnuwdl4JjeMwXBTK1shr22oD2eXk6
# ZH3sJSBOvf9c6arPm+vjkjbltJqaJ+eu3oAAUTXA5uD4QnezT5UMtMRmw8wZX5pP
# Z9SO+fkhoJKq/FGq9bPgnlf7H/XMSP0mehd56Hom8paB86TsinyTu/SC+xJrSnXa
# s7fZXQG0bwIDAQABo4ICBjCCAgIwHwYDVR0jBBgwFoAUaDfg67Y7+F8Rhvv+YXsI
# iGX0TkIwHQYDVR0OBBYEFBxHuEbYWCgQ74B6P4bgvcmuhSvtMA4GA1UdDwEB/wQE
# AwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzCBtQYDVR0fBIGtMIGqMFOgUaBPhk1o
# dHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2ln
# bmluZ1JTQTQwOTZTSEEzODQyMDIxQ0ExLmNybDBToFGgT4ZNaHR0cDovL2NybDQu
# ZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0Q29kZVNpZ25pbmdSU0E0MDk2
# U0hBMzg0MjAyMUNBMS5jcmwwPgYDVR0gBDcwNTAzBgZngQwBBAEwKTAnBggrBgEF
# BQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMIGUBggrBgEFBQcBAQSB
# hzCBhDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMFwGCCsG
# AQUFBzAChlBodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVz
# dGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIxQ0ExLmNydDAMBgNVHRMB
# Af8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQAnXIG8EflhKts6IYViBy/o4p5yEMQJ
# osTJ1nxX8EA/Vvf353BSFN14Vlm71TnQElbUdxMSjOmq8WXnPUeYID+Oac5tHrVX
# sCzeENuzK4YPhPLpSj9w57Fnnzh8LbojJetsCTdDnBgjcWWFq9nJ+c5IwZJLP1v6
# /XPEyRsD2VOc7pS/FTeXrP9a5dcn7b0g5Tyd5DTt1xNx1YVreGoGb44JAPwHBH4l
# 7nWwFIDIUP4llJFYsgkQytb76hVhXQoaGHrhodSMLJzekglGgrGLSN9eN/6KoncP
# IMuTUlAImDv7N3lQFKk6X2Bp3GbpR8lPFHKTIoDcs65d/mRIZorR+tPJj7uMinJ7
# BlNNfDYesfUL3YGgBeEh/HfVhm/OGO1VH+/nZNbkMNQq1O/YwSiAB8hdskV+X3zJ
# szKC6D5TctBefTGjObJZHeMg189EhBDscxa/x4AELVtuOVoBMfJfKIebTDW8xBWw
# zMdu+rOAG3S8/BC+i9Cxp3bikdP+goL7YLKAbZ3nFFrrQekwP2EpAOm1MCAioJ5a
# 5pgh7yZFnyP2Ty3F8//sjxGINKuxnXmAz4fHSrEn6qkkdEJ6o00A/q15NCl8Bt2I
# MzuCE3NVr2M47b/vh0z6ShPHJQusFAJSKVlGqdTmF+ZampU6KS5KfVVtpYhp9D6t
# xn7yJEHSi67F2TGCBlMwggZPAgEBMH0waTELMAkGA1UEBhMCVVMxFzAVBgNVBAoT
# DkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0IENv
# ZGUgU2lnbmluZyBSU0E0MDk2IFNIQTM4NCAyMDIxIENBMQIQDqgNBeeiJHzhtzSG
# hFvtMzANBglghkgBZQMEAgEFAKCBhDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAA
# MBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgor
# BgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCCz21oSH/CY6+Ej9r2RGNOrsnyZMY5k
# vMA19utMxnNPijANBgkqhkiG9w0BAQEFAASCAgCGEHYW6Wdhdfw6XS/dlueywWFK
# 0TLPVOiOgoon7XONKI5bB1JqJU9dOEpNgeNgek6XFeGelZGxsauOUMVdED04P/Tg
# NjemldcjnMBSCx1bpRo0xsFU7Z8ZlPvWhQKJhQ+9mmYVdJVyWLPDJyAg23FiTp/7
# c2IxTa/bSb0vovthkn3fzdtxeV6iI84YEpBZFB+ZLhRhesIR/VRuAaWgki7e28E4
# JGeopBNmaUe8d8OkB3jIQAKT6YLgQCBuLQYmaW/sey5JOWtoDaeeBhbNLk5DfZ8w
# 8B6c/JczaaiPnJe0EKv9G3ELIs2mqBmLMHjYx8iN8n30rHtP7eLAqefBD9CA5SoU
# vrRdKxe6aAq7UPTKThTLgywD4GyQyPAif+mtULwRRxeT6+wiU6ZHiCZ0vn+PXQYQ
# YochMwhUiVY8eMG6xm3Ag5iZsYqHLCzX4L/jzSLnCdKJwWhGvuLpjSW+Pg3osWqr
# df/jYB+xnDWbohtU+8cRhiqDftSRGc7N7k7RhY25q37rHICTvd861l1RDuIwo71p
# 4B/djFAeQ7/O8MIF4JxglprSjof6d7tjmImXH9qoQE0ek3wCmd+xC/4SYClgw2kq
# lMC0BdYpfPq/vrpQzvueK5hOj2VjzdZFLki6xSeiqLuLXisXzeA0iVN+gRDCa8IH
# yjAHNzpWRQR+Wldo16GCAyAwggMcBgkqhkiG9w0BCQYxggMNMIIDCQIBATB3MGMx
# CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMy
# RGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcg
# Q0ECEAVEr/OUnQg5pr/bP1/lYRYwDQYJYIZIAWUDBAIBBQCgaTAYBgkqhkiG9w0B
# CQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNDAzMjcyMTM5MDZaMC8G
# CSqGSIb3DQEJBDEiBCCr5rVFzTj+rCbx2hqfoeyjWg3Y1TLuzkMGf68xDF7tnjAN
# BgkqhkiG9w0BAQEFAASCAgB6r5XbjnbrHIsmcvJYQrrzNoh1R+/zhcyCU8HjvQbb
# AfbZKdJFXEsCHXAqZIGTEKw82a4pEhEjqv3BbRat75JgCTFaxUSA0MCbtNA/mBDi
# 35KWhYOTWQk2cRViO/piqgeVqd9MMh4aaZ9XsoLJ58JaECAc8gu10t2h406+Jf/L
# AVp+qqp27lL6XXwUbK6WRRtK/PRHEllxZDvxgfnwsJozjlQpxkvV804A/FEQzvVi
# JlbHtdhrpuVVLcijMheupPV/RQX78Nh4l19AnmFRXt84XXCz0m+cwSR9x33S6qVt
# 62TqxzFmdVTdTMDZcyuNf9YC7ySPIZSQtYJ+4piVpake9yC+RKQqwklORY+JL2Lg
# eJA7XyXH0rm3asNkhU5yLxQ/3iOc3jcP6i53Nyxx5AjUHJDcMBWY7URRdjVAiiTZ
# hhF+Wm7n5gd1skpEDdwhewYMIqpsqNK/TgfpaP5oy5N13LTp+BjAzv4b/4tlNKiY
# q0RVdZFRi6+wERrdHvsjXZR8yxLeKyv8PhdlsYkcipBQxyUvkja9TOKLhvcsZAFz
# oGTOArXK2jzNxHIUQ9JHlb1vZG9/hJEDNTpgUAiTjshmKqGzhnyJ7gjdnbdMEHlU
# wGJVamGuLpgiWERO6X4nsrDW9ojAJgGxBQZhiMIV6A+yIwlqqER2kqH8Aj9sJPzz
# 3A==
# SIG # End signature block