private/Add-MBSCBBType.ps1
add-type -typedef @"
using System; using System.Security; using System.Net; using System.Collections.Generic; namespace MBS.Agent.Plan { public abstract class BackupPlan { public string Name; public string ID; public string StorageAccount; public MBS.Agent.Plan.BackupPlanCommonOption BackupPlanCommonOption; public MBS.Agent.Plan.Schedule Schedule; } public abstract class NBFBackupPlan { public string Name; public string ID; public MBS.Agent.StorageAccount StorageAccount; public MBS.Agent.Plan.NBFBackupPlanCommonOption BackupPlanCommonOption; public MBS.Agent.Plan.NBFIncrementalSchedule Schedule; public MBS.Agent.Plan.NBFFullSchedule ForceFullSchedule; } public class BackupPlanCommonOption { public bool SyncRepositoryBeforeRun; public bool UseServerSideEncryption; public MBS.Agent.Plan.EncryptionAlgorithm EncryptionAlgorithm; public SecureString EncryptionPassword; public bool UseCompression; public MBS.Agent.Plan.StorageClass StorageClass; public bool SaveBackupPlanConfiguration; public TimeSpan StopIfPlanRunsFor; public bool RunMissedPlanImmediately; public string PreActionCommand; public Nullable<bool> PreActionContinueAnyway; public string PostActionCommand; public Nullable<bool> PostActionRunAnyway; public MBS.Agent.Plan.Notification ResultEmailNotification; public MBS.Agent.Plan.Notification AddEventToWindowsLog; public Nullable<TimeSpan> KeepVersionPeriod; public Nullable<int> KeepNumberOfVersion; public bool KeepLastVersion; public Nullable<TimeSpan> DelayPurgePeriod; } public class NBFBackupPlanCommonOption { public bool SyncRepositoryBeforeRun; public bool UseServerSideEncryption; public MBS.Agent.Plan.EncryptionAlgorithm EncryptionAlgorithm; public SecureString EncryptionPassword; public bool UseCompression; public MBS.Agent.Plan.StorageClass StorageClass; public bool FullConsistencyCheck; public TimeSpan StopIfPlanRunsFor; public bool RunMissedPlanImmediately; public string PreActionCommand; public Nullable<bool> PreActionContinueAnyway; public string PostActionCommand; public Nullable<bool> PostActionRunAnyway; public MBS.Agent.Plan.Notification ResultEmailNotification; public MBS.Agent.Plan.Notification AddEventToWindowsLog; public Nullable<TimeSpan> KeepVersionPeriod; public int GFSKeepWeekly; public int GFSKeepMonthly; public int GFSKeepYearly; public MBS.Agent.Plan.Month GFSMonthOfTheYear; } public class FileLevelBackupPlan : BackupPlan{ public MBS.Agent.Plan.Schedule ForceFullSchedule; public bool UseBlockLevelBackup; public bool UseFastNTFSScan; public bool BackupNTFSPermissions; public bool ForceUsingVSS; public bool UseShareReadWriteModeOnError; public string DeleteLocallyDeletedFilesAfter; public bool BackupEmptyFolders; public string BackupOnlyAfter; public bool ExcludeSystemHiddenFiles; public string SkipFolder; public string IncludeFilesMask; public string ExcludeFilesMask; public bool IgnoreErrorPathNotFound; public bool TrackDeletedFiles; public System.Collections.Generic.List<string> BackupFile; public System.Collections.Generic.List<string> BackupDirectory; public System.Collections.Generic.List<string> ExcludeFile; public System.Collections.Generic.List<string> ExcludeDirectory; public bool GenerateDetailedReport; } public class NBFFileLevelBackupPlan : NBFBackupPlan{ public bool BackupNTFSPermissions; public bool FastNTFSScan; public bool ForceUsingVSS; public bool UseShareReadWriteModeOnError; public bool BackupEmptyFolders; public string BackupOnlyAfter; public bool ExcludeSystemHiddenFiles; public System.Collections.Generic.List<string> SkipFolder; public System.Collections.Generic.List<string> IncludeFilesMask; public System.Collections.Generic.List<string> ExcludeFilesMask; public bool IgnoreErrorPathNotFound; public System.Collections.Generic.List<string> BackupItem; public System.Collections.Generic.List<string> ExcludeItem; public bool GenerateDetailedReport; } public class ImageBasedBackupPlan : BackupPlan { public MBS.Agent.Plan.Schedule ForceFullSchedule; public string BackupVolumes; public string[] Volumes; public bool disableVSS; public bool ignoreBadSectors; public bool useSystemVSS; public bool useSyntheticFull; public int prefetchBlockCount; public string blockSize; public string[] ExcludeItem; public bool KeepBitLocker; public string[] KeepBitLockerEnableForVolume; public string[] KeepBitLockerDisableForVolume; } public class NBFImageBasedBackupPlan : NBFBackupPlan { public MBS.Agent.Plan.BackupVolumeType BackupVolumes; public System.Collections.Generic.List<MBS.Agent.IBBVolume> Volumes; public bool DisableVSS; public bool IgnoreBadSectors; public bool UseSystemVSS; public Nullable<int> PrefetchBlockCount; public MBS.Agent.Plan.BlockSize BlockSize; public System.Collections.Generic.List<string> ExcludeItem; public bool KeepBitLocker; public System.Collections.Generic.List<string> KeepBitLockerEnableForVolume; public System.Collections.Generic.List<string> KeepBitLockerDisableForVolume; public MBS.Agent.Plan.RestoreVerificationMode RestoreVerificationMode; } public class NBFImageBasedBackupPlanCBB : NBFBackupPlan { public MBS.Agent.Plan.BackupVolumeType BackupVolumes; public System.Collections.Generic.List<MBS.Agent.IBBVolumeCBB> Volumes; public bool DisableVSS; public bool IgnoreBadSectors; public bool UseSystemVSS; public Nullable<int> PrefetchBlockCount; public MBS.Agent.Plan.BlockSize BlockSize; public MBS.Agent.Plan.RestoreVerificationMode RestoreVerificationMode; } public class HyperVBackupPlan : BackupPlan { public MBS.Agent.Plan.Schedule ForceFullSchedule; public string BackupVM; public string[] VirtualMachine; } public class MSSQLBackupPlan : BackupPlan { public MBS.Agent.Plan.Schedule DiffSchedule; public MBS.Agent.Plan.Schedule TLogSchedule; public string InstanceName; public bool useSSL; public bool useWinauth; public string UserName; public string Password; public string DBSelectionType; public string[] Databases; public bool CopyOnly; public bool Verify; } public class Schedule { public MBS.Agent.Plan.ScheduleFrequency Frequency; public Nullable<DateTime> At; public int DayOfMonth; public System.DayOfWeek[] DayOfWeek; public Nullable<MBS.Agent.Plan.WeekNumber> WeekNumber; public TimeSpan OccursFrom; public TimeSpan OccursTo; public TimeSpan OccursEvery; public int RepeatInterval; public DateTime RepeatStartDate; } public class NBFIncrementalSchedule { public MBS.Agent.Plan.NBFScheduleFrequency Frequency; public Nullable<DateTime> At; public int DayOfMonth; public System.DayOfWeek[] DayOfWeek; public Nullable<MBS.Agent.Plan.WeekNumber> WeekNumber; public TimeSpan OccursFrom; public TimeSpan OccursTo; public TimeSpan OccursEvery; } public class NBFFullSchedule { public MBS.Agent.Plan.NBFScheduleFrequency Frequency; public int DayOfMonth; public System.DayOfWeek[] DayOfWeek; public Nullable<MBS.Agent.Plan.WeekNumber> WeekNumber; } public class RestorePlanCommonOption { public bool SyncRepositoryBeforeRun; public SecureString EncryptionPassword; public TimeSpan StopIfPlanRunsFor; public string PreActionCommand; public Nullable<bool> PreActionContinueAnyway; public string PostActionCommand; public Nullable<bool> PostActionRunAnyway; public MBS.Agent.Plan.Notification ResultEmailNotification; public MBS.Agent.Plan.Notification AddEventToWindowsLog; } public enum WeekNumber { First, Second, Third, Fourth, Penultimate, Last } public enum RestoreVerificationMode { DoNotRun, RunForFull, RunForIncremental, RunForFullAndIncremental } public enum BlockSize { K1024 = 1024, K512 = 512, K256 = 256, K128 = 128 } public enum Month { NotSet = 0, January = 1, February = 2, March = 3, April = 4, May = 5, June = 6, July = 7, August = 8, September = 9, October = 10, November = 11, December = 12 } public enum DatabaseSelectionType { All, User, SelectedDB } public enum BackupVolumeType { AllVolumes, FixedVolumes, SystemRequired, SelectedVolumes } public enum BackupVMType { All, OnlyRunning, SelectedVM } public enum Period { day, week, month, year } public enum EncryptionAlgorithm { AES128, AES192, AES256 } public enum StorageClass { Standard, IntelligentTiering, StandardIA, OneZoneIA, Glacier, GlacierInstantRetrieval, GlacierDeepArchive } public enum StorageClassCBB { STANDARD, INTELLIGENT_TIERING, STANDARD_IA, ONEZONE_IA, GLACIER, GLACIER_IR, DEEP_ARCHIVE } public enum Notification { off, errorOnly, on } public enum ScheduleFrequency { Once, Daily, Weekly, Monthly, DayofMonth, Realtime } public enum NBFScheduleFrequency { Once, Daily, Weekly, Monthly, DayofMonth } public enum GlacierRestoreType { Expedited, Standard, Bulk } public enum RestoreVolumeType { AllVolumes, SelectedVolume } public enum VirtualDiskType { VHDdynamic, VHDfixed, VHDXdynamic, Raw, Rawsparse, Tar, Tgz, VDIdynamic, VDIfixed, VMDKdynamic, VMDKfixed } } namespace MBS.Agent { public class License { public string User; public string ID; } public class StorageAccount { public string ID; public string Type; public string SGCloudTypeValue; public string BackupPath; public string Bucket; public string BucketID; public string DisplayName; public bool ForceSharing; public bool IsRestoreOnly; public string SGAccountID; public string SGEndPoint; public string SGFolderPath; public string SGHttpsEndPoint; public int SignatureVersion; public string Path; public bool UseSSL; } public class StorageAccountContent { public MBS.Agent.StorageAccountContentType Type; public string Name; public string FullName; public Nullable<DateTime> Date; public long Size; public bool IsCompressed; public bool IsEncrypted; public FileVersions[] Versions; } public class TestStorageAccountResult { public string Name; public string HostName; public int RemotePort; public IPAddress RemoteAddress; public bool TestSucceeded; } public class FileVersions { public DateTime Date; public long Size; public bool IsCompressed; public bool IsEncrypted; } public enum StorageAccountContentType { Folder, File, Disk } public class CLIResult { public string[] Result; public string[] Warnings; public string[] Errors; } public class CLIRawResult { public string stdout; public string stderr; public int ExitCode; } public class IBBBackup { public string Name; public DateTime DateUTC; public string Type; public bool Encrypted; public MBS.Agent.IBBBackupDisk[] Disks; } public class IBBBackupDisk : IBBDisk { public string BackupType; public Nullable<DateTime> Date; } public class IBBDisk { public int Disk; public string Type; public long Capacity; public string Model; public string Id; public System.Collections.Generic.List<MBS.Agent.IBBVolume> Volumes; } public class IBBDiskV6 { public int DiskNumber; public string DriveType; public long Capacity; public string Model; public string DiskId; public System.Collections.Generic.List<MBS.Agent.IBBVolumeV6> Volumes; } public class IBBVolume { public string[] MountPoints; public bool Supported; public bool RequiredBySystem; public string DriveType; public string FileSystemType; public string WindowsVolumeIdentity; public long Length; public long UsedSpace; public string Label; public bool IsBoot; public bool IsActive; public Nullable<bool> IsBitLocker; } public class IBBVolumeCBB : IBBVolume { public MBS.Agent.IBBVolumeBackupOptionsCBB BackupOptions; } public class IBBVolumeBackupOptionsCBB { public bool UseVss; public System.Collections.Generic.List<MBS.Agent.IBBVolumeBackupOptionsExcludeRulesCBB> ExcludeRules; public bool KeepBitLocker; } public class IBBVolumeBackupOptionsExcludeRulesCBB { public string Folder; public string Mask; public bool Recursive; public bool DeleteFolder; } public class IBBVolumeV6 { public string[] MountPoints; public bool Supported; public bool RequiredBySystem; public string DriveType; public string FileSystemType; public string WindowsVolumeIdentity; public long Length; public long UsedSpace; } } namespace MBS.PSModule { public class Settings { public string CBBPath; public string CBBProgramData; public bool SkipCompression; public bool SkipEncryption; public bool SkipStorageClass; public bool SkipSSE; public bool SkipVSS; } } "@ # SIG # Begin signature block # MIInWgYJKoZIhvcNAQcCoIInSzCCJ0cCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA1KNWjdjASUORt # eVZHxqAVFubWqKqezxt+uMD/Z/geT6CCEekwggVvMIIEV6ADAgECAhBI/JO0YFWU # jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI # DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM # EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy # dmljZXMwHhcNMjEwNTI1MDAwMDAwWhcNMjgxMjMxMjM1OTU5WjBWMQswCQYDVQQG # EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS0wKwYDVQQDEyRTZWN0aWdv # IFB1YmxpYyBDb2RlIFNpZ25pbmcgUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEBAQUA # A4ICDwAwggIKAoICAQCN55QSIgQkdC7/FiMCkoq2rjaFrEfUI5ErPtx94jGgUW+s # hJHjUoq14pbe0IdjJImK/+8Skzt9u7aKvb0Ffyeba2XTpQxpsbxJOZrxbW6q5KCD # J9qaDStQ6Utbs7hkNqR+Sj2pcaths3OzPAsM79szV+W+NDfjlxtd/R8SPYIDdub7 # P2bSlDFp+m2zNKzBenjcklDyZMeqLQSrw2rq4C+np9xu1+j/2iGrQL+57g2extme # me/G3h+pDHazJyCh1rr9gOcB0u/rgimVcI3/uxXP/tEPNqIuTzKQdEZrRzUTdwUz # T2MuuC3hv2WnBGsY2HH6zAjybYmZELGt2z4s5KoYsMYHAXVn3m3pY2MeNn9pib6q # RT5uWl+PoVvLnTCGMOgDs0DGDQ84zWeoU4j6uDBl+m/H5x2xg3RpPqzEaDux5mcz # mrYI4IAFSEDu9oJkRqj1c7AGlfJsZZ+/VVscnFcax3hGfHCqlBuCF6yH6bbJDoEc # QNYWFyn8XJwYK+pF9e+91WdPKF4F7pBMeufG9ND8+s0+MkYTIDaKBOq3qgdGnA2T # OglmmVhcKaO5DKYwODzQRjY1fJy67sPV+Qp2+n4FG0DKkjXp1XrRtX8ArqmQqsV/ # AZwQsRb8zG4Y3G9i/qZQp7h7uJ0VP/4gDHXIIloTlRmQAOka1cKG8eOO7F/05QID # AQABo4IBEjCCAQ4wHwYDVR0jBBgwFoAUoBEKIz6W8Qfs4q8p74Klf9AwpLQwHQYD # VR0OBBYEFDLrkpr/NZZILyhAQnAgNpFcF4XmMA4GA1UdDwEB/wQEAwIBhjAPBgNV # HRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUFBwMDMBsGA1UdIAQUMBIwBgYE # VR0gADAIBgZngQwBBAEwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC5jb21v # ZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNAYIKwYBBQUHAQEE # KDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wDQYJKoZI # hvcNAQEMBQADggEBABK/oe+LdJqYRLhpRrWrJAoMpIpnuDqBv0WKfVIHqI0fTiGF # OaNrXi0ghr8QuK55O1PNtPvYRL4G2VxjZ9RAFodEhnIq1jIV9RKDwvnhXRFAZ/ZC # J3LFI+ICOBpMIOLbAffNRk8monxmwFE2tokCVMf8WPtsAO7+mKYulaEMUykfb9gZ # pk+e96wJ6l2CxouvgKe9gUhShDHaMuwV5KZMPWw5c9QLhTkg4IUaaOGnSDip0TYl # d8GNGRbFiExmfS9jzpjoad+sPKhdnckcW67Y8y90z7h+9teDnRGWYpquRRPaf9xH # +9/DUp/mBlXpnYzyOmJRvOwkDynUWICE5EV7WtgwggYaMIIEAqADAgECAhBiHW0M # UgGeO5B5FSCJIRwKMA0GCSqGSIb3DQEBDAUAMFYxCzAJBgNVBAYTAkdCMRgwFgYD # VQQKEw9TZWN0aWdvIExpbWl0ZWQxLTArBgNVBAMTJFNlY3RpZ28gUHVibGljIENv # ZGUgU2lnbmluZyBSb290IFI0NjAeFw0yMTAzMjIwMDAwMDBaFw0zNjAzMjEyMzU5 # NTlaMFQxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxKzAp # BgNVBAMTIlNlY3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYwggGiMA0G # CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCbK51T+jU/jmAGQ2rAz/V/9shTUxjI # ztNsfvxYB5UXeWUzCxEeAEZGbEN4QMgCsJLZUKhWThj/yPqy0iSZhXkZ6Pg2A2NV # DgFigOMYzB2OKhdqfWGVoYW3haT29PSTahYkwmMv0b/83nbeECbiMXhSOtbam+/3 # 6F09fy1tsB8je/RV0mIk8XL/tfCK6cPuYHE215wzrK0h1SWHTxPbPuYkRdkP05Zw # mRmTnAO5/arnY83jeNzhP06ShdnRqtZlV59+8yv+KIhE5ILMqgOZYAENHNX9SJDm # +qxp4VqpB3MV/h53yl41aHU5pledi9lCBbH9JeIkNFICiVHNkRmq4TpxtwfvjsUe # dyz8rNyfQJy/aOs5b4s+ac7IH60B+Ja7TVM+EKv1WuTGwcLmoU3FpOFMbmPj8pz4 # 4MPZ1f9+YEQIQty/NQd/2yGgW+ufflcZ/ZE9o1M7a5Jnqf2i2/uMSWymR8r2oQBM # dlyh2n5HirY4jKnFH/9gRvd+QOfdRrJZb1sCAwEAAaOCAWQwggFgMB8GA1UdIwQY # MBaAFDLrkpr/NZZILyhAQnAgNpFcF4XmMB0GA1UdDgQWBBQPKssghyi47G9IritU # pimqF6TNDDAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADATBgNV # HSUEDDAKBggrBgEFBQcDAzAbBgNVHSAEFDASMAYGBFUdIAAwCAYGZ4EMAQQBMEsG # A1UdHwREMEIwQKA+oDyGOmh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1B1 # YmxpY0NvZGVTaWduaW5nUm9vdFI0Ni5jcmwwewYIKwYBBQUHAQEEbzBtMEYGCCsG # AQUFBzAChjpodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNDb2Rl # U2lnbmluZ1Jvb3RSNDYucDdjMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0 # aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEABv+C4XdjNm57oRUgmxP/BP6YdURh # w1aVcdGRP4Wh60BAscjW4HL9hcpkOTz5jUug2oeunbYAowbFC2AKK+cMcXIBD0Zd # OaWTsyNyBBsMLHqafvIhrCymlaS98+QpoBCyKppP0OcxYEdU0hpsaqBBIZOtBajj # cw5+w/KeFvPYfLF/ldYpmlG+vd0xqlqd099iChnyIMvY5HexjO2AmtsbpVn0OhNc # WbWDRF/3sBp6fWXhz7DcML4iTAWS+MVXeNLj1lJziVKEoroGs9Mlizg0bUMbOalO # hOfCipnx8CaLZeVme5yELg09Jlo8BMe80jO37PU8ejfkP9/uPak7VLwELKxAMcJs # zkyeiaerlphwoKx1uHRzNyE6bxuSKcutisqmKL5OTunAvtONEoteSiabkPVSZ2z7 # 6mKnzAfZxCl/3dq3dUNw4rg3sTCggkHSRqTqlLMS7gjrhTqBmzu1L90Y1KWN/Y5J # KdGvspbOrTfOXyXvmPL6E52z1NZJ6ctuMFBQZH3pwWvqURR8AgQdULUvrxjUYbHH # j95Ejza63zdrEcxWLDX6xWls/GDnVNueKjWUH3fTv1Y8Wdho698YADR7TNx8X8z2 # Bev6SivBBOHY+uqiirZtg0y9ShQoPzmCcn63Syatatvx157YK9hlcPmVoa1oDE5/ # L9Uo2bC5a4CH2RwwggZUMIIEvKADAgECAhBQGj1MeADxcRs/FOU26uyrMA0GCSqG # SIb3DQEBDAUAMFQxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0 # ZWQxKzApBgNVBAMTIlNlY3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYw # HhcNMjExMjAzMDAwMDAwWhcNMjQxMjAyMjM1OTU5WjBYMQswCQYDVQQGEwJVUzEV # MBMGA1UECAwMUGVubnN5bHZhbmlhMRgwFgYDVQQKDA9NU1BCeXRlcywgQ29ycC4x # GDAWBgNVBAMMD01TUEJ5dGVzLCBDb3JwLjCCAiIwDQYJKoZIhvcNAQEBBQADggIP # ADCCAgoCggIBAKNUOYUGihQGjTJdJ6k5Fm3+6QJGhj2wUbubiiqxJeqmW6616o5e # ExwiGSxPOqafJzOJNq0XOigb3OQhtdIR4bG38+JghFt8rZe/DxBmPBZDR9bD1hrk # 9vY714QhqvhIlUDXHnDUc9pnVGFfI945hRgaFHL77GQAEFyMvjNupOvT674/E8rI # gYKMQBwY0cqiuRQwr3FnRMmNhd8/5mqrZGglDT1JizOnpfFVgNJ0x4ev7mPYIF6T # rFGPwHsOOujzydmGgqvtGASEuz74A6arzYrhbjXv8XsEdT2tz6hHIpMwsgWMk6BD # KDCsSIl5oEmVbQNXKrC0k62/XpbWRd+i350k07kl1bdV+nbi1K62TyS+7eVxehC1 # gFp+Knob1aqAJD9sPBLdbN3E4FOB/rvOLP1i2IxAcTGirAyRkkUriD4LUSWO6pju # Qv2V4ZU/+K/3ZLXYCbIflzpDq6z9FmazK5csv99Coslv9s6lm9s1RRxgRBj5sn1q # Xe/5l0VbF7tG/cgBvt8aJBD0u8knujI17lDy1TGA77r/KKj65xSsxC6nm0RA9pTw # 0tz5OQ4ABYrH6TpdUBJz8m8cFgPipvyohN0RdE7InB3Nao11L1UHlnnL0SG1z5qQ # YU7BhvfiSu44pSY9/uTPmAPlNIj3MO5utjfMD+MX9u86d8h/DWwrvQZzAgMBAAGj # ggGcMIIBmDAfBgNVHSMEGDAWgBQPKssghyi47G9IritUpimqF6TNDDAdBgNVHQ4E # FgQU7XGG9N0fpUpnonmgh6+IzR3lGj0wDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB # /wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwEQYJYIZIAYb4QgEBBAQDAgQQMEoG # A1UdIARDMEEwNQYMKwYBBAGyMQECAQMCMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8v # c2VjdGlnby5jb20vQ1BTMAgGBmeBDAEEATBJBgNVHR8EQjBAMD6gPKA6hjhodHRw # Oi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNDb2RlU2lnbmluZ0NBUjM2 # LmNybDB5BggrBgEFBQcBAQRtMGswRAYIKwYBBQUHMAKGOGh0dHA6Ly9jcnQuc2Vj # dGlnby5jb20vU2VjdGlnb1B1YmxpY0NvZGVTaWduaW5nQ0FSMzYuY3J0MCMGCCsG # AQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOC # AYEAhLlUlrWxmB3MSCX9LcaY3p6jCnaeFR4chgRmhjdH+Gy5UyFpEq1/3X/Pv2Ih # GGnX0uVbXsQ90D/CwFk7bXCFUUblu4ldzNqjmnf+lcTtv/WJR9FTS9t79WdiWbuN # /YIEXVDERUGPC7v55aaJvXJbDS+4vYeJPAHl2xsvbARWui1nwBLOSVGTGk6T2Q6s # BnlHFToFc4UFtMhYUMf8L03jypocNGM9z6yamsOANd/dXt582U5DD0g7SVS2pyHD # Ot7UvVq6769TGZNwq9s1tFwQjm3IGz4DIO1ADMwoGLzqqalYQ1xq2JAqUq41hSlN # YHecLTjAOTwA81wv71XbZdARR0DfmpqdzdKkTbVucWhJFWL7clDQ0WzfAx1/ZsjR # t6X9p+XuLnJPMD3V5swX52ZCcB6LY3FyK7kgwNseH+Xqo+Ln7OtAs3Bwa/Cm9lbL # xYs8wkDitxFnpKFstyE7EE+wtEJkyszfLqjkmUCw/hjzX6I40hahbPCxaxdlv8+3 # drczMYIUxzCCFMMCAQEwaDBUMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGln # byBMaW1pdGVkMSswKQYDVQQDEyJTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcg # Q0EgUjM2AhBQGj1MeADxcRs/FOU26uyrMA0GCWCGSAFlAwQCAQUAoHwwEAYKKwYB # BAGCNwIBDDECMAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGC # NwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINezWFeeKfwSbld6 # 6cS3ROAEfz3SUMMF5run0+BNukcOMA0GCSqGSIb3DQEBAQUABIICABzwyNym1vUb # RhH9UT0FKVWHZHb7lL1k7SGzHuBPrG9lQdDCOSa1i0mnbydrR/XV8YlSYAM4hUBU # mX38MK/0kBGIbGlDzNAZe7szEYJUyD4quClindyTPB3UJrK1p6MH8VprxGuXEWXp # RaBs/+GI9ggO0LoV1FQVrN9bZR3OdBgZDOG7KtdO10CCjBWd2unQLHZrkVoqaiMe # s+deWn2RHCofYaBIUMVgPpEw4B9iYWGhztmNBEhc4nnbUY6LKjkdMKhL+dHwy8zw # aJyiwzJt8eCi6d7CNMUnp8iUApSKpawQrRgYIT939+LdzEuGPONZo3cMYlyNx/5n # 5zAx+KVcyKc836YriT7ZpiJSN60e7Xa5CLGZ9o7aOsCnfsLifVkXyTutNiB/diy1 # cIXdiG52zxQBzx03DwMs2ktQJrgDQVEzIwtOdcACFFBqAHfXPtnl5iFnWtGZqM5N # YxcGWkVrf5hz6e3WQ3+dKQLje7TSDzPxiwPi+N42sYV57Er2r91FWB50NiAMbbRq # Ufg3t1tCGF09GIluAS+v2bvj4vRpPnepKBpeNK8bteNqw0SuMnNIvE8OVNlC4Dki # uwf8hcugtWuN2LlwrxBKl7AO5EKw8WBB1mUWky4GN1a2eh8eWKnKebsApXma3c8U # TCpw9k6wjZRR/VZx6FnJEDGn47JwJ1DFoYIRsjCCEa4GCisGAQQBgjcDAwExghGe # MIIRmgYJKoZIhvcNAQcCoIIRizCCEYcCAQMxDzANBglghkgBZQMEAgEFADB3Bgsq # hkiG9w0BCRABBKBoBGYwZAIBAQYJYIZIAYb9bAcBMDEwDQYJYIZIAWUDBAIBBQAE # ILl0LVWTfY6NfFvR+BgF+GLsu/ulKIXEmr35p8G13rMIAhADLfdTUcP3n/bY/6g7 # j3VJGA8yMDIyMDYxMDIwMTEzMFqggg18MIIGxjCCBK6gAwIBAgIQCnpKiJ7JmUKQ # BmM4TYaXnTANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzEXMBUGA1UEChMO # RGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRydXN0ZWQgRzQgUlNB # NDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENBMB4XDTIyMDMyOTAwMDAwMFoXDTMz # MDMxNDIzNTk1OVowTDELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ # bmMuMSQwIgYDVQQDExtEaWdpQ2VydCBUaW1lc3RhbXAgMjAyMiAtIDIwggIiMA0G # CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC5KpYjply8X9ZJ8BWCGPQz7sxcbOPg # JS7SMeQ8QK77q8TjeF1+XDbq9SWNQ6OB6zhj+TyIad480jBRDTEHukZu6aNLSOiJ # QX8Nstb5hPGYPgu/CoQScWyhYiYB087DbP2sO37cKhypvTDGFtjavOuy8YPRn80J # xblBakVCI0Fa+GDTZSw+fl69lqfw/LH09CjPQnkfO8eTB2ho5UQ0Ul8PUN7UWSxE # dMAyRxlb4pguj9DKP//GZ888k5VOhOl2GJiZERTFKwygM9tNJIXogpThLwPuf4UC # yYbh1RgUtwRF8+A4vaK9enGY7BXn/S7s0psAiqwdjTuAaP7QWZgmzuDtrn8oLsKe # 4AtLyAjRMruD+iM82f/SjLv3QyPf58NaBWJ+cCzlK7I9Y+rIroEga0OJyH5fsBrd # Gb2fdEEKr7mOCdN0oS+wVHbBkE+U7IZh/9sRL5IDMM4wt4sPXUSzQx0jUM2R1y+d # +/zNscGnxA7E70A+GToC1DGpaaBJ+XXhm+ho5GoMj+vksSF7hmdYfn8f6CvkFLIW # 1oGhytowkGvub3XAsDYmsgg7/72+f2wTGN/GbaR5Sa2Lf2GHBWj31HDjQpXonrub # S7LitkE956+nGijJrWGwoEEYGU7tR5thle0+C2Fa6j56mJJRzT/JROeAiylCcvd5 # st2E6ifu/n16awIDAQABo4IBizCCAYcwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB # /wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwIAYDVR0gBBkwFzAIBgZngQwB # BAIwCwYJYIZIAYb9bAcBMB8GA1UdIwQYMBaAFLoW2W1NhS9zKXaaL3WMaiCPnshv # MB0GA1UdDgQWBBSNZLeJIf5WWESEYafqbxw2j92vDTBaBgNVHR8EUzBRME+gTaBL # hklodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRSU0E0 # MDk2U0hBMjU2VGltZVN0YW1waW5nQ0EuY3JsMIGQBggrBgEFBQcBAQSBgzCBgDAk # BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMFgGCCsGAQUFBzAC # hkxodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRS # U0E0MDk2U0hBMjU2VGltZVN0YW1waW5nQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4IC # AQANLSN0ptH1+OpLmT8B5PYM5K8WndmzjJeCKZxDbwEtqzi1cBG/hBmLP13lhk++ # kzreKjlaOU7YhFmlvBuYquhs79FIaRk4W8+JOR1wcNlO3yMibNXf9lnLocLqTHbK # odyhK5a4m1WpGmt90fUCCU+C1qVziMSYgN/uSZW3s8zFp+4O4e8eOIqf7xHJMUpY # tt84fMv6XPfkU79uCnx+196Y1SlliQ+inMBl9AEiZcfqXnSmWzWSUHz0F6aHZE8+ # RokWYyBry/J70DXjSnBIqbbnHWC9BCIVJXAGcqlEO2lHEdPu6cegPk8QuTA25POq # aQmoi35komWUEftuMvH1uzitzcCTEdUyeEpLNypM81zctoXAu3AwVXjWmP5UbX9x # qUgaeN1Gdy4besAzivhKKIwSqHPPLfnTI/KeGeANlCig69saUaCVgo4oa6TOnXbe # qXOqSGpZQ65f6vgPBkKd3wZolv4qoHRbY2beayy4eKpNcG3wLPEHFX41tOa1DKKZ # pdcVazUOhdbgLMzgDCS4fFILHpl878jIxYxYaa+rPeHPzH0VrhS/inHfypex2Efq # HIXgRU4SHBQpWMxv03/LvsEOSm8gnK7ZczJZCOctkqEaEf4ymKZdK5fgi9OczG21 # Da5HYzhHF1tvE9pqEG4fSbdEW7QICodaWQR2EaGndwITHDCCBq4wggSWoAMCAQIC # EAc2N7ckVHzYR6z9KGYqXlswDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCVVMx # FTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNv # bTEhMB8GA1UEAxMYRGlnaUNlcnQgVHJ1c3RlZCBSb290IEc0MB4XDTIyMDMyMzAw # MDAwMFoXDTM3MDMyMjIzNTk1OVowYzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRp # Z2lDZXJ0LCBJbmMuMTswOQYDVQQDEzJEaWdpQ2VydCBUcnVzdGVkIEc0IFJTQTQw # OTYgU0hBMjU2IFRpbWVTdGFtcGluZyBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP # ADCCAgoCggIBAMaGNQZJs8E9cklRVcclA8TykTepl1Gh1tKD0Z5Mom2gsMyD+Vr2 # EaFEFUJfpIjzaPp985yJC3+dH54PMx9QEwsmc5Zt+FeoAn39Q7SE2hHxc7Gz7iuA # hIoiGN/r2j3EF3+rGSs+QtxnjupRPfDWVtTnKC3r07G1decfBmWNlCnT2exp39mQ # h0YAe9tEQYncfGpXevA3eZ9drMvohGS0UvJ2R/dhgxndX7RUCyFobjchu0CsX7Le # Sn3O9TkSZ+8OpWNs5KbFHc02DVzV5huowWR0QKfAcsW6Th+xtVhNef7Xj3OTrCw5 # 4qVI1vCwMROpVymWJy71h6aPTnYVVSZwmCZ/oBpHIEPjQ2OAe3VuJyWQmDo4EbP2 # 9p7mO1vsgd4iFNmCKseSv6De4z6ic/rnH1pslPJSlRErWHRAKKtzQ87fSqEcazjF # KfPKqpZzQmiftkaznTqj1QPgv/CiPMpC3BhIfxQ0z9JMq++bPf4OuGQq+nUoJEHt # Qr8FnGZJUlD0UfM2SU2LINIsVzV5K6jzRWC8I41Y99xh3pP+OcD5sjClTNfpmEpY # PtMDiP6zj9NeS3YSUZPJjAw7W4oiqMEmCPkUEBIDfV8ju2TjY+Cm4T72wnSyPx4J # duyrXUZ14mCjWAkBKAAOhFTuzuldyF4wEr1GnrXTdrnSDmuZDNIztM2xAgMBAAGj # ggFdMIIBWTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBS6FtltTYUvcyl2 # mi91jGogj57IbzAfBgNVHSMEGDAWgBTs1+OC0nFdZEzfLmc/57qYrhwPTzAOBgNV # HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwgwdwYIKwYBBQUHAQEEazBp # MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQQYIKwYBBQUH # MAKGNWh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRS # b290RzQuY3J0MEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0 # LmNvbS9EaWdpQ2VydFRydXN0ZWRSb290RzQuY3JsMCAGA1UdIAQZMBcwCAYGZ4EM # AQQCMAsGCWCGSAGG/WwHATANBgkqhkiG9w0BAQsFAAOCAgEAfVmOwJO2b5ipRCIB # fmbW2CFC4bAYLhBNE88wU86/GPvHUF3iSyn7cIoNqilp/GnBzx0H6T5gyNgL5Vxb # 122H+oQgJTQxZ822EpZvxFBMYh0MCIKoFr2pVs8Vc40BIiXOlWk/R3f7cnQU1/+r # T4osequFzUNf7WC2qk+RZp4snuCKrOX9jLxkJodskr2dfNBwCnzvqLx1T7pa96kQ # sl3p/yhUifDVinF2ZdrM8HKjI/rAJ4JErpknG6skHibBt94q6/aesXmZgaNWhqsK # RcnfxI2g55j7+6adcq/Ex8HBanHZxhOACcS2n82HhyS7T6NJuXdmkfFynOlLAlKn # N36TU6w7HQhJD5TNOXrd/yVjmScsPT9rp/Fmw0HNT7ZAmyEhQNC3EyTN3B14OuSe # reU0cZLXJmvkOHOrpgFPvT87eK1MrfvElXvtCl8zOYdBeHo46Zzh3SP9HSjTx/no # 8Zhf+yvYfvJGnXUsHicsJttvFXseGYs2uJPU5vIXmVnKcPA3v5gA3yAWTyf7YGcW # oWa63VXAOimGsJigK+2VQbc61RWYMbRiCQ8KvYHZE/6/pNHzV9m8BPqC3jLfBInw # AM1dwvnQI38AC+R2AibZ8GV2QqYphwlHK+Z/GqSFD/yYlvZVVCsfgPrA8g4r5db7 # qS9EFUrnEw4d2zc4GqEr9u3WfPwxggN2MIIDcgIBATB3MGMxCzAJBgNVBAYTAlVT # MRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1 # c3RlZCBHNCBSU0E0MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0ECEAp6SoieyZlC # kAZjOE2Gl50wDQYJYIZIAWUDBAIBBQCggdEwGgYJKoZIhvcNAQkDMQ0GCyqGSIb3 # DQEJEAEEMBwGCSqGSIb3DQEJBTEPFw0yMjA2MTAyMDExMzBaMCsGCyqGSIb3DQEJ # EAIMMRwwGjAYMBYEFIUI84ZRXLPTB322tLfAfxtKXkHeMC8GCSqGSIb3DQEJBDEi # BCCB+9uSlcgogAaFczsXEcvrlfFO3i9hR2oQhMdUK9seSjA3BgsqhkiG9w0BCRAC # LzEoMCYwJDAiBCCdppAVw0nGwYl4Rbo1gq1wyI+kKTvbar6cK9JTknnmOzANBgkq # hkiG9w0BAQEFAASCAgAfMJYX8X9VhdD1sA40HMNZcMyolu/r7O3ZsvP8L3vqF9au # c6yPFY+/nQ08o/aNISe47FXM8GOHFhXyyl8JDs3YPC+wFs+cShFifkDuAPe8wfnW # Kpa8o4ZA7rAO1+M64E8zjJBWTJOEc7j9hQVkegcsHxBQYlnYpBXTikFDKQ+xo45C # ZosxXSVbWgeuZo6Ap8EJH5m85K/04W48CnzJQLu4EKOpHT1+0hZBOOfFFgVl8cak # F99GMw37JOjhoRmZgt/+Q0DZlYVXjGCbpAjtmFqVOadcPBX6Fej7V4JOr57l0Nea # IjWlo4Lg7EeoOAZ/p7xZSXMzI8D3X1fx94UP1C6EGhvDgPpTKZDqAX6aC45Mb5tr # JkSaz/JWgrRJhLD7x/feArIGdACwfSyQmw5lMDUhjYKUGWWaxrPEc84BWZiWSeZP # Pce1vJr0KDsRfRk9odBe+EelhMZUsNECDEWc0GbcKl3kfJP5/WgplLpzrwfTxFCN # GGxjyC6r9Wo7xNGUSbo+JPbeAIb9aAflWxXdWeiri6Cmaz3M/a7hEZbowah+Dufr # M3+0eoZqasetcZBh/UMDTO7GxER8GyU/VJWJZ0KGZJhVgCVOUVGHGCJMbiW9ImA6 # YXK/Nn40Z5CfTa0yXO+dycr/xf6v5+/wEhW9ed1jCtvlsmcXFvkVUL8YLTRIiQ== # SIG # End signature block |