From db2dd4265a568438d702c469f0282837310a397d Mon Sep 17 00:00:00 2001 From: wzh425 Date: Wed, 24 Jun 2026 14:45:57 +0800 Subject: [PATCH 01/16] feat: enhance unsubscription management and SMS record handling - Added new DTOs for unsubscription management, including AddChannelUserIdentityToUnsubscriptionBlacklistInputDto and ChannelUserIdentityUnsubscriptionItemDto. - Implemented commands for adding and removing channel user identities from the unsubscription blacklist. - Introduced a new service for handling unsubscription logic, including methods for adding and removing identities from the blacklist. - Enhanced SMS record handling with a new query to retrieve SMS records by mobile number and channel code. - Updated existing services and handlers to integrate new unsubscription features and SMS record queries. - Added localization support for unsubscription reasons in English and Chinese. - Improved error handling and validation in unsubscription processes. --- .gitignore | 4 + .../MessageReceipts/GetSmsInboundInputDto.cs | 7 +- .../Dtos/MessageRecords/SmsRecordDto.cs | 13 ++ ...entityToUnsubscriptionBlacklistInputDto.cs | 15 ++ ...hannelUserIdentityUnsubscriptionItemDto.cs | 17 ++ ...tityFromUnsubscriptionBlacklistInputDto.cs | 15 ++ .../UnsubscriptionReasonConstants.cs | 15 ++ .../Aggregates/Unsubscription.cs | 88 ++++++++++- .../MessageReceiptQueryHandler.cs | 14 +- .../MessageRecordQueryHandler.cs | 114 +++++++++++++- .../Queries/GetSmsRecordsByMobileQuery.cs | 9 ++ ...dentityToUnsubscriptionBlacklistCommand.cs | 6 + .../MessageTemplateLookupItem.cs | 10 ++ ...ChannelUserIdentityUnsubscriptionsQuery.cs | 9 ++ ...ntityFromUnsubscriptionBlacklistCommand.cs | 6 + .../UnsubscriptionCommandHandler.cs | 90 +++++++++++ .../UnsubscriptionQueryHandler.cs | 82 ++++++++++ .../Masa.Mc.Service/Assets/I18n/en-US.json | 4 + .../Masa.Mc.Service/Assets/I18n/zh-CN.json | 4 + .../Services/UnsubscriptionDomainService.cs | 146 +++++++++++++++++- .../Services/MessageRecordService.cs | 13 ++ .../Services/SmsInboundService.cs | 5 +- .../Services/UnsubscriptionService.cs | 29 ++++ src/Services/Masa.Mc.Service/_Imports.cs | 1 + 24 files changed, 700 insertions(+), 16 deletions(-) create mode 100644 src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageRecords/SmsRecordDto.cs create mode 100644 src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/AddChannelUserIdentityToUnsubscriptionBlacklistInputDto.cs create mode 100644 src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/ChannelUserIdentityUnsubscriptionItemDto.cs create mode 100644 src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/RemoveChannelUserIdentityFromUnsubscriptionBlacklistInputDto.cs create mode 100644 src/Domain/Masa.Mc.Domain/Constants/UnsubscriptionReasonConstants.cs create mode 100644 src/Services/Masa.Mc.Service/Application/MessageRecords/Queries/GetSmsRecordsByMobileQuery.cs create mode 100644 src/Services/Masa.Mc.Service/Application/Unsubscriptions/AddChannelUserIdentityToUnsubscriptionBlacklistCommand.cs create mode 100644 src/Services/Masa.Mc.Service/Application/Unsubscriptions/MessageTemplateLookupItem.cs create mode 100644 src/Services/Masa.Mc.Service/Application/Unsubscriptions/Queries/GetChannelUserIdentityUnsubscriptionsQuery.cs create mode 100644 src/Services/Masa.Mc.Service/Application/Unsubscriptions/RemoveChannelUserIdentityFromUnsubscriptionBlacklistCommand.cs create mode 100644 src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionCommandHandler.cs diff --git a/.gitignore b/.gitignore index 345ae10b..500294f9 100644 --- a/.gitignore +++ b/.gitignore @@ -350,3 +350,7 @@ MigrationBackup/ .idea/ .DS_Store + +# Cursor local guidance (do not commit) +.cursor/rules/ +.cursor/skills/ diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageReceipts/GetSmsInboundInputDto.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageReceipts/GetSmsInboundInputDto.cs index 1c69e3e3..ef07dc6c 100644 --- a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageReceipts/GetSmsInboundInputDto.cs +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageReceipts/GetSmsInboundInputDto.cs @@ -5,7 +5,9 @@ namespace Masa.Mc.Contracts.Admin.Dtos.MessageReceipts; public class GetSmsInboundInputDto : PaginatedOptionsDto { - public Guid ChannelId { get; set; } + public Guid? ChannelId { get; set; } + + public string ChannelCode { get; set; } = string.Empty; public string Mobile { get; set; } = string.Empty; @@ -21,10 +23,11 @@ public GetSmsInboundInputDto() { } - public GetSmsInboundInputDto(Guid channelId, string mobile, string addSerial, string smsContent, DateTimeOffset? startTime, DateTimeOffset? endTime, string sorting, int page, int pageSize) + public GetSmsInboundInputDto(Guid? channelId, string channelCode, string mobile, string addSerial, string smsContent, DateTimeOffset? startTime, DateTimeOffset? endTime, string sorting, int page, int pageSize) : base(sorting, page, pageSize) { ChannelId = channelId; + ChannelCode = channelCode; Mobile = mobile; AddSerial = addSerial; SmsContent = smsContent; diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageRecords/SmsRecordDto.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageRecords/SmsRecordDto.cs new file mode 100644 index 00000000..23c42ac4 --- /dev/null +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageRecords/SmsRecordDto.cs @@ -0,0 +1,13 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Contracts.Admin.Dtos.MessageRecords; + +public class SmsRecordDto +{ + public Guid ChannelId { get; set; } + + public string SmsContent { get; set; } = string.Empty; + + public DateTimeOffset? SendTime { get; set; } +} diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/AddChannelUserIdentityToUnsubscriptionBlacklistInputDto.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/AddChannelUserIdentityToUnsubscriptionBlacklistInputDto.cs new file mode 100644 index 00000000..4f2e1a99 --- /dev/null +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/AddChannelUserIdentityToUnsubscriptionBlacklistInputDto.cs @@ -0,0 +1,15 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Contracts.Admin.Dtos.Unsubscriptions; + +public class AddChannelUserIdentityToUnsubscriptionBlacklistInputDto +{ + public string ChannelCode { get; set; } = string.Empty; + + public string ChannelUserIdentity { get; set; } = string.Empty; + + public string TemplateCode { get; set; } = string.Empty; + + public string Reason { get; set; } = string.Empty; +} diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/ChannelUserIdentityUnsubscriptionItemDto.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/ChannelUserIdentityUnsubscriptionItemDto.cs new file mode 100644 index 00000000..c08f26f7 --- /dev/null +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/ChannelUserIdentityUnsubscriptionItemDto.cs @@ -0,0 +1,17 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Contracts.Admin.Dtos.Unsubscriptions; + +public class ChannelUserIdentityUnsubscriptionItemDto +{ + public string ChannelUserIdentity { get; set; } = string.Empty; + + public Guid? TemplateId { get; set; } + + public string TemplateCode { get; set; } = string.Empty; + + public string TemplateName { get; set; } = string.Empty; + + public string TemplateContent { get; set; } = string.Empty; +} diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/RemoveChannelUserIdentityFromUnsubscriptionBlacklistInputDto.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/RemoveChannelUserIdentityFromUnsubscriptionBlacklistInputDto.cs new file mode 100644 index 00000000..186c5684 --- /dev/null +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/RemoveChannelUserIdentityFromUnsubscriptionBlacklistInputDto.cs @@ -0,0 +1,15 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Contracts.Admin.Dtos.Unsubscriptions; + +public class RemoveChannelUserIdentityFromUnsubscriptionBlacklistInputDto +{ + public string ChannelCode { get; set; } = string.Empty; + + public string ChannelUserIdentity { get; set; } = string.Empty; + + public string TemplateCode { get; set; } = string.Empty; + + public string Reason { get; set; } = string.Empty; +} diff --git a/src/Domain/Masa.Mc.Domain/Constants/UnsubscriptionReasonConstants.cs b/src/Domain/Masa.Mc.Domain/Constants/UnsubscriptionReasonConstants.cs new file mode 100644 index 00000000..25775556 --- /dev/null +++ b/src/Domain/Masa.Mc.Domain/Constants/UnsubscriptionReasonConstants.cs @@ -0,0 +1,15 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Domain.Constants; + +public static class UnsubscriptionReasonConstants +{ + public const string INBOUND_UNSUBSCRIBE_REASON = "UnsubscriptionInboundUnsubscribeReason"; + + public const string INBOUND_RESUBSCRIBE_REASON = "UnsubscriptionInboundResubscribeReason"; + + public const string MANUAL_BLACKLIST_REASON = "UnsubscriptionManualBlacklistReason"; + + public const string MANUAL_REMOVE_BLACKLIST_REASON = "UnsubscriptionManualRemoveBlacklistReason"; +} diff --git a/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs b/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs index 7f9344d4..5be2eca0 100644 --- a/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs +++ b/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs @@ -39,6 +39,88 @@ private Unsubscription() { } + public static Unsubscription CreateManualBlacklist( + Guid userId, + string channelUserIdentity, + Guid channelId, + ChannelTypes channelType, + int channelProvider, + UnsubscriptionScopeTypes scopeType, + string scopeRefId, + string reason, + DateTimeOffset occurredAt) + { + var aggregate = new Unsubscription + { + Id = IdGeneratorFactory.SequentialGuidGenerator.NewId(), + UserId = userId, + ChannelUserIdentity = channelUserIdentity?.Trim() ?? string.Empty, + ChannelType = channelType, + ChannelId = channelId, + ChannelProvider = channelProvider, + ScopeType = scopeType, + ScopeRefId = scopeType is UnsubscriptionScopeTypes.Global or UnsubscriptionScopeTypes.Channel + ? string.Empty + : scopeRefId?.Trim() ?? string.Empty, + Source = UnsubscriptionSource.ManualSupport, + Status = UnsubscriptionStatus.Unsubscribed, + Keyword = string.Empty, + Reason = reason?.Trim() ?? string.Empty, + UnsubscribedAt = occurredAt, + LastInboundMessageId = string.Empty + }; + + aggregate.ValidateInvariant(); + aggregate.AppendTimeline( + UnsubscriptionTimelineActions.ManualUnsubscribed, + UnsubscriptionSource.ManualSupport, + occurredAt, + aggregate.Reason); + return aggregate; + } + + public static Unsubscription CreateGlobalManualBlacklist( + Guid userId, + string channelUserIdentity, + Guid channelId, + ChannelTypes channelType, + int channelProvider, + string reason, + DateTimeOffset occurredAt) + { + return CreateManualBlacklist( + userId, + channelUserIdentity, + channelId, + channelType, + channelProvider, + UnsubscriptionScopeTypes.Global, + string.Empty, + reason, + occurredAt); + } + + public static Unsubscription CreateChannelManualBlacklist( + Guid userId, + string channelUserIdentity, + Guid channelId, + ChannelTypes channelType, + int channelProvider, + string reason, + DateTimeOffset occurredAt) + { + return CreateManualBlacklist( + userId, + channelUserIdentity, + channelId, + channelType, + channelProvider, + UnsubscriptionScopeTypes.Channel, + string.Empty, + reason, + occurredAt); + } + public static Unsubscription CreateFromSmsInbound( Guid userId, string channelUserIdentity, @@ -199,8 +281,8 @@ public void Resubscribe( throw new UserFriendlyException(errorCode: UnsubscriptionExceptionCodes.UNSUBSCRIPTION_REASON_REQUIRED); } + var normalizedReason = reason.Trim(); Status = UnsubscriptionStatus.Resubscribed; - Reason = reason.Trim(); ResubscribedAt = occurredAt; var normalizedMessageId = inboundMessageId?.Trim() ?? string.Empty; if (!string.IsNullOrWhiteSpace(keyword)) @@ -217,7 +299,7 @@ public void Resubscribe( action, source, occurredAt, - Reason, + normalizedReason, Keyword, LastInboundMessageId); } @@ -255,7 +337,7 @@ private void ValidateInvariant() throw new UserFriendlyException(errorCode: UnsubscriptionExceptionCodes.CHANNEL_USER_IDENTITY_REQUIRED); } - if (string.IsNullOrWhiteSpace(ScopeRefId) && ScopeType != UnsubscriptionScopeTypes.Global) + if (ScopeType == UnsubscriptionScopeTypes.Template && string.IsNullOrWhiteSpace(ScopeRefId)) { throw new UserFriendlyException(errorCode: UnsubscriptionExceptionCodes.INVALID_UNSUBSCRIPTION_SCOPE_REFERENCE); } diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs index 1937745e..72358d0b 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs @@ -16,6 +16,18 @@ public MessageReceiptQueryHandler(IMcQueryContext context) public async Task GetListSmsInboundAsync(GetListSmsInboundQuery query) { var input = query.Input; + if (!input.ChannelId.HasValue && !string.IsNullOrWhiteSpace(input.ChannelCode)) + { + var channelCode = input.ChannelCode.Trim(); + input.ChannelId = (await _context.ChannelQueryQueries.FirstOrDefaultAsync(x => x.Code == channelCode))?.Id; + } + + if (!input.ChannelId.HasValue) + { + query.Result = new PaginatedListDto(0, 0, new List()); + return; + } + var condition = CreateSmsInboundPredicate(input); var resultList = await _context.SmsInboundQueries.GetPaginatedListAsync(condition, new() { @@ -32,7 +44,7 @@ public async Task GetListSmsInboundAsync(GetListSmsInboundQuery query) private static Expression> CreateSmsInboundPredicate(GetSmsInboundInputDto input) { - Expression> condition = x => x.ChannelId == input.ChannelId; + Expression> condition = x => x.ChannelId == input.ChannelId!.Value; condition = condition.And(!string.IsNullOrWhiteSpace(input.Mobile), x => x.Mobile == input.Mobile); condition = condition.And(!string.IsNullOrWhiteSpace(input.AddSerial), x => x.AddSerial == input.AddSerial); diff --git a/src/Services/Masa.Mc.Service/Application/MessageRecords/MessageRecordQueryHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageRecords/MessageRecordQueryHandler.cs index 5a8c4de5..7b22d5a7 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageRecords/MessageRecordQueryHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageRecords/MessageRecordQueryHandler.cs @@ -9,16 +9,19 @@ public class MessageRecordQueryHandler private readonly IAuthClient _authClient; private readonly II18n _i18n; private readonly IDataFilter _dataFilter; + private readonly ITemplateRenderer _templateRenderer; public MessageRecordQueryHandler(IMcQueryContext context , IAuthClient authClient , II18n i18n - , IDataFilter dataFilter) + , IDataFilter dataFilter + , ITemplateRenderer templateRenderer) { _context = context; _authClient = authClient; _i18n = i18n; _dataFilter = dataFilter; + _templateRenderer = templateRenderer; } [EventHandler] @@ -54,6 +57,100 @@ public async Task GetListAsync(GetListMessageRecordQuery query) query.Result = result; } + [EventHandler] + public async Task GetSmsRecordsByMobileAsync(GetSmsRecordsByMobileQuery query) + { + var mobile = query.Mobile?.Trim(); + if (string.IsNullOrWhiteSpace(mobile)) + { + query.Result = new PaginatedListDto(0, 0, new()); + return; + } + + using var dataFilter = _dataFilter.Disable(); + Guid? channelId = null; + if (!string.IsNullOrWhiteSpace(query.ChannelCode)) + { + var channelCode = query.ChannelCode.Trim(); + channelId = await _context.ChannelQueryQueries + .AsNoTracking() + .Where(x => x.Type == ChannelTypes.Sms && x.Code == channelCode) + .Select(x => (Guid?)x.Id) + .FirstOrDefaultAsync(); + if (!channelId.HasValue) + { + query.Result = new PaginatedListDto(0, 0, new()); + return; + } + } + + var condition = CreateSmsOutboundRecordPredicate(mobile, channelId); + var resultList = await _context.MessageRecordQueries + .AsNoTracking() + .GetPaginatedListAsync(condition, new() + { + Page = query.Page, + PageSize = query.PageSize, + Sorting = new Dictionary + { + [nameof(MessageRecordQueryModel.SendTime)] = true + } + }); + if (!resultList.Result.Any()) + { + query.Result = new PaginatedListDto(0, 0, new()); + return; + } + + var records = resultList.Result + .Select(x => new + { + ChannelId = x.ChannelId!.Value, + x.SendTime, + x.MessageEntityId, + x.Variables, + x.DisplayName + }) + .ToList(); + + var templateIds = records + .Select(x => x.MessageEntityId) + .Distinct() + .ToList(); + var templateContents = templateIds.Any() + ? await _context.MessageTemplateQueries + .AsNoTracking() + .Where(x => templateIds.Contains(x.Id)) + .ToDictionaryAsync(x => x.Id, x => x.Content) + : new Dictionary(); + + var items = records + .Select(x => new SmsRecordDto + { + ChannelId = x.ChannelId, + SmsContent = ResolveSmsContent( + x.MessageEntityId, + x.Variables, + x.DisplayName, + templateContents), + SendTime = x.SendTime + }) + .ToList(); + query.Result = new PaginatedListDto(resultList.Total, resultList.TotalPages, items); + } + + private static Expression> CreateSmsOutboundRecordPredicate( + string mobile, + Guid? channelId) + { + Expression> condition = x => + x.ChannelUserIdentity == mobile && + x.MessageEntityType == MessageEntityTypes.Template && + x.ChannelId.HasValue; + condition = condition.And(channelId.HasValue, x => x.ChannelId == channelId!.Value); + return condition; + } + private async Task>> CreateFilteredPredicate(GetMessageRecordInputDto inputDto) { Expression> condition = x => true; @@ -97,4 +194,19 @@ private async Task FillUserInfo(List dtos) item.User.FillChannelUserIdentity(item.ChannelUserIdentity, item.Channel.Type); } } + + private string ResolveSmsContent( + Guid messageEntityId, + ExtraPropertyDictionary? variables, + string displayName, + IReadOnlyDictionary templateContents) + { + if (templateContents.TryGetValue(messageEntityId, out var templateContent) && + !string.IsNullOrWhiteSpace(templateContent)) + { + return _templateRenderer.Render(templateContent, variables ?? new()); + } + + return displayName; + } } diff --git a/src/Services/Masa.Mc.Service/Application/MessageRecords/Queries/GetSmsRecordsByMobileQuery.cs b/src/Services/Masa.Mc.Service/Application/MessageRecords/Queries/GetSmsRecordsByMobileQuery.cs new file mode 100644 index 00000000..fd40a104 --- /dev/null +++ b/src/Services/Masa.Mc.Service/Application/MessageRecords/Queries/GetSmsRecordsByMobileQuery.cs @@ -0,0 +1,9 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Service.Admin.Application.MessageRecords.Queries; + +public record GetSmsRecordsByMobileQuery(string Mobile, string ChannelCode, int Page, int PageSize) : Query> +{ + public override PaginatedListDto Result { get; set; } = new(); +} diff --git a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/AddChannelUserIdentityToUnsubscriptionBlacklistCommand.cs b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/AddChannelUserIdentityToUnsubscriptionBlacklistCommand.cs new file mode 100644 index 00000000..208b472f --- /dev/null +++ b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/AddChannelUserIdentityToUnsubscriptionBlacklistCommand.cs @@ -0,0 +1,6 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Service.Admin.Application.Unsubscriptions; + +public record AddChannelUserIdentityToUnsubscriptionBlacklistCommand(AddChannelUserIdentityToUnsubscriptionBlacklistInputDto Input) : Command; diff --git a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/MessageTemplateLookupItem.cs b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/MessageTemplateLookupItem.cs new file mode 100644 index 00000000..5e10e1c7 --- /dev/null +++ b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/MessageTemplateLookupItem.cs @@ -0,0 +1,10 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Service.Admin.Application.Unsubscriptions; + +internal sealed record MessageTemplateLookupItem( + Guid Id, + string Code, + string DisplayName, + string Content); diff --git a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/Queries/GetChannelUserIdentityUnsubscriptionsQuery.cs b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/Queries/GetChannelUserIdentityUnsubscriptionsQuery.cs new file mode 100644 index 00000000..7b9ced68 --- /dev/null +++ b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/Queries/GetChannelUserIdentityUnsubscriptionsQuery.cs @@ -0,0 +1,9 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Service.Admin.Application.Unsubscriptions.Queries; + +public record GetChannelUserIdentityUnsubscriptionsQuery(string ChannelCode, string ChannelUserIdentity) : Query> +{ + public override List Result { get; set; } = new(); +} diff --git a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/RemoveChannelUserIdentityFromUnsubscriptionBlacklistCommand.cs b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/RemoveChannelUserIdentityFromUnsubscriptionBlacklistCommand.cs new file mode 100644 index 00000000..605cf205 --- /dev/null +++ b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/RemoveChannelUserIdentityFromUnsubscriptionBlacklistCommand.cs @@ -0,0 +1,6 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Service.Admin.Application.Unsubscriptions; + +public record RemoveChannelUserIdentityFromUnsubscriptionBlacklistCommand(RemoveChannelUserIdentityFromUnsubscriptionBlacklistInputDto Input) : Command; diff --git a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionCommandHandler.cs b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionCommandHandler.cs new file mode 100644 index 00000000..c431f969 --- /dev/null +++ b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionCommandHandler.cs @@ -0,0 +1,90 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Service.Admin.Application.Unsubscriptions; + +public class UnsubscriptionCommandHandler +{ + private readonly UnsubscriptionDomainService _unsubscriptionDomainService; + private readonly IUserContext _userContext; + private readonly IChannelRepository _channelRepository; + private readonly IMessageTemplateRepository _messageTemplateRepository; + + public UnsubscriptionCommandHandler( + UnsubscriptionDomainService unsubscriptionDomainService, + IUserContext userContext, + IChannelRepository channelRepository, + IMessageTemplateRepository messageTemplateRepository) + { + _unsubscriptionDomainService = unsubscriptionDomainService; + _userContext = userContext; + _channelRepository = channelRepository; + _messageTemplateRepository = messageTemplateRepository; + } + + [EventHandler] + public async Task AddChannelUserIdentityToBlacklistAsync(AddChannelUserIdentityToUnsubscriptionBlacklistCommand command) + { + var channel = await ResolveChannelAsync(command.Input.ChannelCode); + var templateId = await ResolveTemplateIdAsync(channel.Id, command.Input.TemplateCode); + + var channelType = (ChannelTypes)Enum.Parse(typeof(ChannelTypes), channel.Type.Id.ToString()); + await _unsubscriptionDomainService.AddChannelUserIdentityToBlacklistAsync( + _userContext.GetUserId(), + channel.Id, + channelType, + channel.Provider, + command.Input.ChannelUserIdentity, + templateId, + command.Input.Reason); + } + + [EventHandler] + public async Task RemoveChannelUserIdentityFromBlacklistAsync(RemoveChannelUserIdentityFromUnsubscriptionBlacklistCommand command) + { + var channel = await ResolveChannelAsync(command.Input.ChannelCode); + var templateId = await ResolveTemplateIdAsync(channel.Id, command.Input.TemplateCode); + + var channelType = (ChannelTypes)Enum.Parse(typeof(ChannelTypes), channel.Type.Id.ToString()); + await _unsubscriptionDomainService.RemoveChannelUserIdentityFromBlacklistAsync( + _userContext.GetUserId(), + channel.Id, + channelType, + channel.Provider, + command.Input.ChannelUserIdentity, + templateId, + command.Input.Reason); + } + + private async Task ResolveChannelAsync(string channelCode) + { + var normalizedChannelCode = channelCode?.Trim(); + if (string.IsNullOrWhiteSpace(normalizedChannelCode)) + { + throw new UserFriendlyException(errorCode: UserFriendlyExceptionCodes.CHANNEL_REQUIRED); + } + + var channel = await _channelRepository.FindAsync(x => x.Code == normalizedChannelCode); + MasaArgumentException.ThrowIfNull(channel, nameof(Channel)); + return channel!; + } + + private async Task ResolveTemplateIdAsync(Guid channelId, string templateCode) + { + var normalizedTemplateCode = templateCode?.Trim(); + if (string.IsNullOrWhiteSpace(normalizedTemplateCode)) + { + return null; + } + + var template = await _messageTemplateRepository.FindAsync(x => + x.ChannelId == channelId && + x.Code == normalizedTemplateCode); + if (template is null) + { + throw new UserFriendlyException(errorCode: UserFriendlyExceptionCodes.MESSAGE_TEMPLATE_NOT_EXIST); + } + + return template.Id; + } +} diff --git a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionQueryHandler.cs b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionQueryHandler.cs index a79aeea2..409732af 100644 --- a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionQueryHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionQueryHandler.cs @@ -57,6 +57,88 @@ public async Task GetAsync(GetUnsubscriptionQuery query) query.Result = dto; } + [EventHandler] + public async Task GetChannelUserIdentityUnsubscriptionsAsync(GetChannelUserIdentityUnsubscriptionsQuery query) + { + var normalizedChannelCode = query.ChannelCode?.Trim(); + var normalizedChannelUserIdentity = query.ChannelUserIdentity?.Trim(); + if (string.IsNullOrWhiteSpace(normalizedChannelCode) || string.IsNullOrWhiteSpace(normalizedChannelUserIdentity)) + { + query.Result = new(); + return; + } + + var channel = await _context.ChannelQueryQueries + .AsNoTracking() + .Where(x => x.Code == normalizedChannelCode) + .Select(x => new + { + x.Id, + x.Type, + x.Provider + }) + .FirstOrDefaultAsync(); + if (channel is null) + { + query.Result = new(); + return; + } + + var activeUnsubscriptions = await _context.UnsubscriptionQueries + .AsNoTracking() + .Where(x => + x.ChannelId == channel.Id && + x.ChannelType == channel.Type && + x.ChannelProvider == channel.Provider && + x.ChannelUserIdentity == normalizedChannelUserIdentity && + x.Status == UnsubscriptionStatus.Unsubscribed) + .OrderByDescending(x => x.UnsubscribedAt) + .ToListAsync(); + if (!activeUnsubscriptions.Any()) + { + query.Result = new(); + return; + } + + var templateIds = activeUnsubscriptions + .Where(x => x.ScopeType == UnsubscriptionScopeTypes.Template) + .Select(x => Guid.TryParse(x.ScopeRefId, out var templateId) ? templateId : Guid.Empty) + .Where(x => x != Guid.Empty) + .Distinct() + .ToList(); + var templateDict = templateIds.Any() + ? await _context.MessageTemplateQueries + .AsNoTracking() + .Where(x => templateIds.Contains(x.Id)) + .Select(x => new MessageTemplateLookupItem(x.Id, x.Code, x.DisplayName, x.Content)) + .ToDictionaryAsync(x => x.Id) + : new Dictionary(); + + query.Result = activeUnsubscriptions + .Select(item => + { + var templateId = item.ScopeType == UnsubscriptionScopeTypes.Template && + Guid.TryParse(item.ScopeRefId, out var parsedTemplateId) + ? parsedTemplateId + : (Guid?)null; + MessageTemplateLookupItem? template = null; + if (templateId.HasValue) + { + templateDict.TryGetValue(templateId.Value, out template); + } + + return new ChannelUserIdentityUnsubscriptionItemDto + { + ChannelUserIdentity = item.ChannelUserIdentity, + TemplateId = templateId, + TemplateCode = template?.Code ?? string.Empty, + TemplateName = template?.DisplayName ?? string.Empty, + TemplateContent = template?.Content ?? string.Empty + }; + }) + .ToList(); + } + private static Expression> CreatePredicate(GetUnsubscriptionInputDto input) { var condition = CreateUnsubscriptionScopePredicate(input); diff --git a/src/Services/Masa.Mc.Service/Assets/I18n/en-US.json b/src/Services/Masa.Mc.Service/Assets/I18n/en-US.json index 606abd3b..dc600984 100644 --- a/src/Services/Masa.Mc.Service/Assets/I18n/en-US.json +++ b/src/Services/Masa.Mc.Service/Assets/I18n/en-US.json @@ -44,6 +44,10 @@ "UnsubscribeCooldownSecondsRequired": "Cooldown seconds must be greater than 0 when debounce is enabled", "VerificationCodeTemplateCannotEnableUnsubscribe": "Verification code templates cannot enable unsubscribe", "MessageBlockedByUnsubscription": "Blocked because the user has unsubscribed", + "UnsubscriptionInboundUnsubscribeReason": "Unsubscribed by inbound keyword", + "UnsubscriptionInboundResubscribeReason": "Resubscribed by inbound keyword", + "UnsubscriptionManualBlacklistReason": "Manually added to unsubscription blacklist", + "UnsubscriptionManualRemoveBlacklistReason": "Manually removed from unsubscription blacklist", "ReceiverGroupNameCannotRepeated": "ReceiverGroup name cannot be repeated", "SyncSmsTemplateErrorMessage": "SMS template synchronization failed. Please check whether the channel information is correct", "ClientIdNotBound": "Client Id not bound", diff --git a/src/Services/Masa.Mc.Service/Assets/I18n/zh-CN.json b/src/Services/Masa.Mc.Service/Assets/I18n/zh-CN.json index 1ceef64b..d423a061 100644 --- a/src/Services/Masa.Mc.Service/Assets/I18n/zh-CN.json +++ b/src/Services/Masa.Mc.Service/Assets/I18n/zh-CN.json @@ -45,6 +45,10 @@ "UnsubscribeCooldownSecondsRequired": "开启防抖后冷却时间必须大于0秒", "VerificationCodeTemplateCannotEnableUnsubscribe": "验证码模板不允许开启退订", "MessageBlockedByUnsubscription": "因用户退订被拦截", + "UnsubscriptionInboundUnsubscribeReason": "用户上行关键字退订", + "UnsubscriptionInboundResubscribeReason": "用户上行关键字恢复退订", + "UnsubscriptionManualBlacklistReason": "后台手动拉入退订黑名单", + "UnsubscriptionManualRemoveBlacklistReason": "后台手动移除退订黑名单", "ReceiverGroupNameCannotRepeated": "消息组名称不能重复", "SyncSmsTemplateErrorMessage": "短信模板同步失败,请检查渠道信息是否正确", "ClientIdNotBound": "设备Id未绑定", diff --git a/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs b/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs index 3e20a678..90e8c813 100644 --- a/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs +++ b/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs @@ -5,16 +5,16 @@ namespace Masa.Mc.Service.Admin.Domain.Unsubscriptions.Services; public class UnsubscriptionDomainService : DomainService { - private const string INBOUND_UNSUBSCRIBE_REASON = "用户上行关键字退订"; - private const string INBOUND_RESUBSCRIBE_REASON = "用户上行关键字恢复退订"; - private readonly IUnsubscriptionRepository _repository; + private readonly II18n _i18n; public UnsubscriptionDomainService( IDomainEventBus eventBus, - IUnsubscriptionRepository repository) : base(eventBus) + IUnsubscriptionRepository repository, + II18n i18n) : base(eventBus) { _repository = repository; + _i18n = i18n; } public async Task HandleSmsInboundKeywordAsync( @@ -104,7 +104,7 @@ private async Task HandleInboundUnsubscribeAsync( UnsubscriptionScopeTypes.Template, scopeRefId, keyword, - INBOUND_UNSUBSCRIBE_REASON, + LocalizeReason(UnsubscriptionReasonConstants.INBOUND_UNSUBSCRIBE_REASON), occurredAt, inboundMessageId, matchedMessageRecordId, @@ -117,7 +117,7 @@ private async Task HandleInboundUnsubscribeAsync( var changed = active.TryUnsubscribeByInboundKeyword( keyword, - INBOUND_UNSUBSCRIBE_REASON, + LocalizeReason(UnsubscriptionReasonConstants.INBOUND_UNSUBSCRIBE_REASON), occurredAt, inboundMessageId, matchedMessageRecordId, @@ -156,7 +156,7 @@ private async Task HandleInboundResubscribeAsync( active.ResubscribeByInboundKeyword( keyword, - INBOUND_RESUBSCRIBE_REASON, + LocalizeReason(UnsubscriptionReasonConstants.INBOUND_RESUBSCRIBE_REASON), occurredAt, inboundMessageId); @@ -184,4 +184,136 @@ public async Task IsSmsTemplateUnsubscribedAsync( return aggregate is not null; } + + public async Task IsChannelUserIdentityUnsubscribedAsync( + string channelUserIdentity, + CancellationToken cancellationToken = default) + { + if (string.IsNullOrWhiteSpace(channelUserIdentity)) + { + return false; + } + + var existing = await _repository.FindAsync( + x => x.ChannelUserIdentity == channelUserIdentity.Trim() && + (x.ScopeType == UnsubscriptionScopeTypes.Channel || x.ScopeType == UnsubscriptionScopeTypes.Global) && + x.Status == UnsubscriptionStatus.Unsubscribed, + cancellationToken); + return existing is not null; + } + + public async Task AddChannelUserIdentityToBlacklistAsync( + Guid operatorId, + Guid channelId, + ChannelTypes channelType, + int channelProvider, + string channelUserIdentity, + Guid? templateId, + string reason, + CancellationToken cancellationToken = default) + { + if (channelId == Guid.Empty) + { + throw new UserFriendlyException(errorCode: UserFriendlyExceptionCodes.CHANNEL_REQUIRED); + } + + if (string.IsNullOrWhiteSpace(channelUserIdentity)) + { + throw new UserFriendlyException(errorCode: UnsubscriptionExceptionCodes.CHANNEL_USER_IDENTITY_REQUIRED); + } + + var normalizedChannelUserIdentity = channelUserIdentity.Trim(); + var hasTemplateScope = templateId.HasValue && templateId.Value != Guid.Empty; + var scopeType = hasTemplateScope ? UnsubscriptionScopeTypes.Template : UnsubscriptionScopeTypes.Channel; + var scopeRefId = hasTemplateScope ? templateId!.Value.ToString("N") : string.Empty; + var active = await _repository.FindAsync( + x => x.ChannelId == channelId && + x.ChannelType == channelType && + x.ChannelProvider == channelProvider && + x.ChannelUserIdentity == normalizedChannelUserIdentity && + (hasTemplateScope + ? x.ScopeType == scopeType && x.ScopeRefId == scopeRefId + : x.ScopeType == UnsubscriptionScopeTypes.Channel || x.ScopeType == UnsubscriptionScopeTypes.Global) && + x.Status == UnsubscriptionStatus.Unsubscribed, + cancellationToken); + if (active is not null) + { + return; + } + + var localizedReason = string.IsNullOrWhiteSpace(reason) + ? LocalizeReason(UnsubscriptionReasonConstants.MANUAL_BLACKLIST_REASON) + : reason; + var aggregate = hasTemplateScope + ? Unsubscription.CreateManualBlacklist( + operatorId, + normalizedChannelUserIdentity, + channelId, + channelType, + channelProvider, + scopeType, + scopeRefId, + localizedReason, + DateTimeOffset.UtcNow) + : Unsubscription.CreateChannelManualBlacklist( + operatorId, + normalizedChannelUserIdentity, + channelId, + channelType, + channelProvider, + localizedReason, + DateTimeOffset.UtcNow); + await _repository.AddAsync(aggregate, cancellationToken); + } + + public async Task RemoveChannelUserIdentityFromBlacklistAsync( + Guid operatorId, + Guid channelId, + ChannelTypes channelType, + int channelProvider, + string channelUserIdentity, + Guid? templateId, + string reason, + CancellationToken cancellationToken = default) + { + if (channelId == Guid.Empty) + { + throw new UserFriendlyException(errorCode: UserFriendlyExceptionCodes.CHANNEL_REQUIRED); + } + + if (string.IsNullOrWhiteSpace(channelUserIdentity)) + { + throw new UserFriendlyException(errorCode: UnsubscriptionExceptionCodes.CHANNEL_USER_IDENTITY_REQUIRED); + } + + var normalizedChannelUserIdentity = channelUserIdentity.Trim(); + var hasTemplateScope = templateId.HasValue && templateId.Value != Guid.Empty; + var scopeType = hasTemplateScope ? UnsubscriptionScopeTypes.Template : UnsubscriptionScopeTypes.Channel; + var scopeRefId = hasTemplateScope ? templateId!.Value.ToString("N") : string.Empty; + var active = await _repository.FindAsync( + x => x.ChannelId == channelId && + x.ChannelType == channelType && + x.ChannelProvider == channelProvider && + x.ChannelUserIdentity == normalizedChannelUserIdentity && + (hasTemplateScope + ? x.ScopeType == scopeType && x.ScopeRefId == scopeRefId + : x.ScopeType == UnsubscriptionScopeTypes.Channel || x.ScopeType == UnsubscriptionScopeTypes.Global) && + x.Status == UnsubscriptionStatus.Unsubscribed, + cancellationToken); + if (active is null) + { + return; + } + + var localizedReason = string.IsNullOrWhiteSpace(reason) + ? LocalizeReason(UnsubscriptionReasonConstants.MANUAL_REMOVE_BLACKLIST_REASON) + : reason; + active.Resubscribe(localizedReason, DateTimeOffset.UtcNow); + await _repository.UpdateAsync(active, cancellationToken); + } + + private string LocalizeReason(string reasonKey) + { + return _i18n.T(reasonKey); + } } diff --git a/src/Services/Masa.Mc.Service/Services/MessageRecordService.cs b/src/Services/Masa.Mc.Service/Services/MessageRecordService.cs index e7b71885..616c44ed 100644 --- a/src/Services/Masa.Mc.Service/Services/MessageRecordService.cs +++ b/src/Services/Masa.Mc.Service/Services/MessageRecordService.cs @@ -35,4 +35,17 @@ public async Task RetryAsync(IEventBus eventBus, RetryMessageRecordInputDto inpu var command = new RetryMessageRecordCommand(inputDto); await eventBus.PublishAsync(command); } + + [RoutePattern("sms-records", StartWithBaseUri = true, HttpMethod = "Get")] + public async Task> GetSmsRecordsAsync( + IEventBus eventBus, + [FromQuery] string mobile, + [FromQuery] string channelCode = "", + [FromQuery] int page = 1, + [FromQuery] int pagesize = 10) + { + var query = new GetSmsRecordsByMobileQuery(mobile, channelCode, page, pagesize); + await eventBus.PublishAsync(query); + return query.Result; + } } diff --git a/src/Services/Masa.Mc.Service/Services/SmsInboundService.cs b/src/Services/Masa.Mc.Service/Services/SmsInboundService.cs index dae0124d..9c3e1f3e 100644 --- a/src/Services/Masa.Mc.Service/Services/SmsInboundService.cs +++ b/src/Services/Masa.Mc.Service/Services/SmsInboundService.cs @@ -14,12 +14,13 @@ public SmsInboundService() : base("api/sms-inbound") } [RoutePattern("", StartWithBaseUri = true, HttpMethod = "Get")] - public async Task> GetListAsync(IEventBus eventBus, [FromQuery] Guid channelId, + public async Task> GetListAsync(IEventBus eventBus, [FromQuery] Guid? channelId, + [FromQuery] string? channelCode, [FromQuery] DateTimeOffset? startTime, [FromQuery] DateTimeOffset? endTime, [FromQuery] string mobile = "", [FromQuery] string addSerial = "", [FromQuery] string smsContent = "", [FromQuery] string sorting = "", [FromQuery] int page = 1, [FromQuery] int pagesize = 10) { - var input = new GetSmsInboundInputDto(channelId, mobile, addSerial, smsContent, startTime, endTime, sorting, page, pagesize); + var input = new GetSmsInboundInputDto(channelId, channelCode ?? string.Empty, mobile, addSerial, smsContent, startTime, endTime, sorting, page, pagesize); var query = new GetListSmsInboundQuery(input); await eventBus.PublishAsync(query); return query.Result; diff --git a/src/Services/Masa.Mc.Service/Services/UnsubscriptionService.cs b/src/Services/Masa.Mc.Service/Services/UnsubscriptionService.cs index 751c9b6f..000d9d29 100644 --- a/src/Services/Masa.Mc.Service/Services/UnsubscriptionService.cs +++ b/src/Services/Masa.Mc.Service/Services/UnsubscriptionService.cs @@ -92,4 +92,33 @@ public async Task GetAsync(IEventBus eventBus, Guid id) await eventBus.PublishAsync(query); return query.Result; } + + [RoutePattern("channel-user-identities", StartWithBaseUri = true, HttpMethod = "Get")] + public async Task> GetChannelUserIdentityUnsubscriptionsAsync( + IEventBus eventBus, + [FromQuery] string channelCode, + [FromQuery] string channelUserIdentity) + { + var query = new GetChannelUserIdentityUnsubscriptionsQuery(channelCode, channelUserIdentity); + await eventBus.PublishAsync(query); + return query.Result; + } + + [RoutePattern("channel-user-identities/unsubscriptions", StartWithBaseUri = true, HttpMethod = "Post")] + public async Task AddChannelUserIdentityToBlacklistAsync( + IEventBus eventBus, + [FromBody] AddChannelUserIdentityToUnsubscriptionBlacklistInputDto input) + { + var command = new AddChannelUserIdentityToUnsubscriptionBlacklistCommand(input); + await eventBus.PublishAsync(command); + } + + [RoutePattern("channel-user-identities/unsubscriptions", StartWithBaseUri = true, HttpMethod = "Delete")] + public async Task RemoveChannelUserIdentityFromBlacklistAsync( + IEventBus eventBus, + [FromBody] RemoveChannelUserIdentityFromUnsubscriptionBlacklistInputDto input) + { + var command = new RemoveChannelUserIdentityFromUnsubscriptionBlacklistCommand(input); + await eventBus.PublishAsync(command); + } } diff --git a/src/Services/Masa.Mc.Service/_Imports.cs b/src/Services/Masa.Mc.Service/_Imports.cs index 5ea690e9..121efcce 100644 --- a/src/Services/Masa.Mc.Service/_Imports.cs +++ b/src/Services/Masa.Mc.Service/_Imports.cs @@ -82,6 +82,7 @@ global using Masa.Mc.Domain.Channels.Aggregates; global using Masa.Mc.Domain.Channels.Events; global using Masa.Mc.Domain.Channels.Repositories; +global using Masa.Mc.Domain.Constants; global using Masa.Mc.Domain.Consts; global using Masa.Mc.Domain.MessageInfos.Aggregates; global using Masa.Mc.Domain.MessageInfos.Repositories; From 22164f1a207ea05cfabb873860ba5f2519467573 Mon Sep 17 00:00:00 2001 From: wzh425 Date: Thu, 25 Jun 2026 14:48:12 +0800 Subject: [PATCH 02/16] feat: enhance SMS inbound processing with provider support - Added a new optional property `Provider` to `GetSmsInboundInputDto` for filtering SMS records by provider. - Updated `MessageReceiptQueryHandler` to include provider filtering in query conditions. - Modified `SmsInboundService` to accept the provider parameter when retrieving SMS records. - Removed unused `_Imports.cs`, `_Imports.razor`, and other related files to clean up the project structure. --- .../MessageReceipts/GetSmsInboundInputDto.cs | 5 +- .../MessageReceiptQueryHandler.cs | 1 + .../Services/SmsInboundService.cs | 3 +- .../Certificates/7348307__lonsid.cn.pfx | Bin 4925 -> 0 bytes src/Web/Masa.Mc.Web.Admin.Server/Dockerfile | 15 - .../Masa.Mc.Web.Admin.Server.csproj | 37 - .../Pages/Error.cshtml | 43 - .../Pages/Error.cshtml.cs | 30 - .../Pages/Login.cshtml | 2 - .../Pages/Login.cshtml.cs | 31 - .../Pages/Logout.cshtml | 2 - .../Pages/Logout.cshtml.cs | 30 - .../Pages/_Host.cshtml | 15 - .../Pages/_Layout.cshtml | 50 - src/Web/Masa.Mc.Web.Admin.Server/Program.cs | 95 - .../Properties/launchSettings.json | 49 - src/Web/Masa.Mc.Web.Admin.Server/_Imports.cs | 35 - .../appsettings.Develop.json | 10 - .../appsettings.Development.json | 9 - .../appsettings.Staging.json | 10 - .../Masa.Mc.Web.Admin.Server/appsettings.json | 9 - src/Web/Masa.Mc.Web.Admin.Server/ssl/tls.crt | 39 - src/Web/Masa.Mc.Web.Admin.Server/ssl/tls.key | 28 - .../wwwroot/css/error.css | 45 - .../wwwroot/favicon.ico | Bin 5430 -> 0 bytes .../wwwroot/img/avatar/1.svg | 33 - .../wwwroot/img/avatar/10.svg | 38 - .../wwwroot/img/avatar/11.svg | 31 - .../wwwroot/img/avatar/12.svg | 39 - .../wwwroot/img/avatar/13.svg | 29 - .../wwwroot/img/avatar/14.svg | 40 - .../wwwroot/img/avatar/2.svg | 34 - .../wwwroot/img/avatar/3.svg | 35 - .../wwwroot/img/avatar/4.svg | 35 - .../wwwroot/img/avatar/7.svg | 30 - .../wwwroot/img/avatar/8.svg | 46 - .../wwwroot/img/avatar/9.svg | 40 - .../wwwroot/nav/nav.json | 58 - .../Masa.Mc.Web.Admin.WebAssembly.csproj | 19 - .../Masa.Mc.Web.Admin.WebAssembly/Program.cs | 25 - .../Properties/launchSettings.json | 30 - .../TestAuthStateProvider.cs | 14 - .../wwwroot/css/app.css | 33 - .../wwwroot/css/spinkit.min.css | 1 - .../wwwroot/decode.min.js | 2605 ----------------- .../wwwroot/favicon.ico | Bin 5430 -> 0 bytes .../wwwroot/i18n/en-US.json | 32 - .../wwwroot/i18n/languageConfig.json | 6 - .../wwwroot/i18n/zh-CN.json | 33 - .../wwwroot/img/analytics/json.png | Bin 976 -> 0 bytes .../wwwroot/img/analytics/left.png | Bin 3335 -> 0 bytes .../wwwroot/img/analytics/right.png | Bin 1814 -> 0 bytes .../wwwroot/img/apps-eCommerce/1.png | Bin 51949 -> 0 bytes .../wwwroot/img/apps-eCommerce/10.png | Bin 49272 -> 0 bytes .../wwwroot/img/apps-eCommerce/11.png | Bin 60619 -> 0 bytes .../wwwroot/img/apps-eCommerce/12.png | Bin 69598 -> 0 bytes .../wwwroot/img/apps-eCommerce/13.png | Bin 55239 -> 0 bytes .../wwwroot/img/apps-eCommerce/14.png | Bin 33069 -> 0 bytes .../wwwroot/img/apps-eCommerce/15.png | Bin 51412 -> 0 bytes .../wwwroot/img/apps-eCommerce/16.png | Bin 52453 -> 0 bytes .../wwwroot/img/apps-eCommerce/17.png | Bin 41880 -> 0 bytes .../wwwroot/img/apps-eCommerce/18.png | Bin 56279 -> 0 bytes .../wwwroot/img/apps-eCommerce/19.png | Bin 27650 -> 0 bytes .../wwwroot/img/apps-eCommerce/2.png | Bin 41158 -> 0 bytes .../wwwroot/img/apps-eCommerce/20.png | Bin 35356 -> 0 bytes .../wwwroot/img/apps-eCommerce/21.png | Bin 68591 -> 0 bytes .../wwwroot/img/apps-eCommerce/22.png | Bin 35919 -> 0 bytes .../wwwroot/img/apps-eCommerce/23.png | Bin 29654 -> 0 bytes .../wwwroot/img/apps-eCommerce/24.png | Bin 57549 -> 0 bytes .../wwwroot/img/apps-eCommerce/25.png | Bin 48035 -> 0 bytes .../wwwroot/img/apps-eCommerce/26.png | Bin 39366 -> 0 bytes .../wwwroot/img/apps-eCommerce/27.png | Bin 62817 -> 0 bytes .../wwwroot/img/apps-eCommerce/3.png | Bin 71606 -> 0 bytes .../wwwroot/img/apps-eCommerce/4.png | Bin 44948 -> 0 bytes .../wwwroot/img/apps-eCommerce/5.png | Bin 52426 -> 0 bytes .../wwwroot/img/apps-eCommerce/6.png | Bin 52168 -> 0 bytes .../wwwroot/img/apps-eCommerce/7.png | Bin 28101 -> 0 bytes .../wwwroot/img/apps-eCommerce/8.png | Bin 103439 -> 0 bytes .../wwwroot/img/apps-eCommerce/9.png | Bin 44085 -> 0 bytes .../img/auth/forgot-password-v2.9faba3c1.svg | 207 -- .../wwwroot/img/auth/register-v2.0a9e487c.svg | 351 --- .../wwwroot/img/avatar/1.svg | 33 - .../wwwroot/img/avatar/10.svg | 38 - .../wwwroot/img/avatar/11.svg | 31 - .../wwwroot/img/avatar/12.svg | 39 - .../wwwroot/img/avatar/13.svg | 29 - .../wwwroot/img/avatar/14.svg | 40 - .../wwwroot/img/avatar/2.svg | 34 - .../wwwroot/img/avatar/3.svg | 35 - .../wwwroot/img/avatar/4.svg | 35 - .../wwwroot/img/avatar/7.svg | 30 - .../wwwroot/img/avatar/8.svg | 46 - .../wwwroot/img/avatar/9.svg | 40 - .../wwwroot/img/eCommerce/rectangle.png | Bin 17020 -> 0 bytes .../wwwroot/img/eCommerce/trophy.png | Bin 69803 -> 0 bytes .../wwwroot/img/login/2873.png | Bin 5628 -> 0 bytes .../wwwroot/img/login/Gxwd.png | Bin 3786 -> 0 bytes .../wwwroot/img/login/left.svg | 53 - .../wwwroot/img/mainLayout/logo-en.svg | 32 - .../wwwroot/img/mainLayout/logo.svg | 7 - .../wwwroot/img/status/401.png | Bin 7469 -> 0 bytes .../wwwroot/img/status/404.png | Bin 13829 -> 0 bytes .../wwwroot/img/status/500.png | Bin 9020 -> 0 bytes .../wwwroot/index.html | 64 - .../wwwroot/nav/nav.json | 203 -- src/Web/Masa.Mc.Web.Admin/App.razor | 28 - .../Components/AutoHeight.razor | 28 - .../ButtonGroup/BooleanButtonGroup.razor | 25 - .../ButtonGroup/BooleanButtonGroup.razor.cs | 29 - .../Components/Chip/ColorTag.razor | 22 - .../Masa.Mc.Web.Admin/Components/Clamp.razor | 23 - .../Components/Default/DefaultIcon.cs | 14 - .../Components/Default/DefaultSheetDialog.cs | 16 - .../Components/Default/DefaultSubTitle.razor | 11 - .../Components/Default/DefaultTitle.razor | 9 - .../Default/DefaultUserAvatar.razor | 13 - .../Components/Editor/DefaultEditor.razor | 3 - .../Components/Editor/DefaultEditor.razor.cs | 48 - .../Components/ExtraProperties.razor | 83 - .../DefaultGenericColumnRender.razor | 34 - .../Components/Group/ColorsGroup.razor | 36 - .../Components/Lists/DateTimeListItem.razor | 12 - .../Components/Markdown/DefaultMarkdown.razor | 3 - .../Markdown/DefaultMarkdown.razor.cs | 63 - .../Components/MenuTooltip.razor | 23 - .../MessageRecordStatusTag.razor | 14 - .../MessageRecordStatusTag.razor.css | 10 - .../MessageTaskHistorySelect.razor | 22 - .../MessageTaskHistorySelect.razor.cs | 43 - .../MessageTaskHistoryStatusIcon.razor | 53 - .../MessageTaskReceiverAutoComplete.razor | 28 - .../MessageTaskReceiverAutoComplete.razor.cs | 56 - .../MessageTasks/MessageTaskStatus.razor | 33 - .../MessageTemplateAuditStatusTag.razor | 18 - .../MessageTemplateSelect.razor | 21 - .../MessageTemplateSelect.razor.cs | 44 - .../MessageTemplateStatusTag.razor | 15 - .../Subjects/ExternalUserCreateModal.razor | 25 - .../Subjects/ExternalUserCreateModal.razor.cs | 71 - .../Subjects/SubjectAutoComplete.razor | 29 - .../Subjects/SubjectAutoComplete.razor.cs | 59 - .../Modules/Subjects/UserAutoComplete.razor | 31 - .../Subjects/UserAutoComplete.razor.cs | 56 - .../Modules/Subjects/UserSelect.razor | 24 - .../Modules/Subjects/UserSelect.razor.cs | 56 - .../Components/RichText/DefaultRichText.razor | 25 - .../RichText/DefaultRichText.razor.css | 15 - .../Components/RichText/RichText.razor | 9 - .../Components/RichText/RichText.razor.css | 12 - .../Components/Selects/BooleanSelect.razor | 15 - .../Components/Selects/BooleanSelect.razor.cs | 36 - .../Components/StyleTypes.cs | 10 - .../Components/TextField/DefaultSearch.razor | 59 - .../Components/Upload/ProgressUpload.razor | 32 - .../Masa.Mc.Web.Admin/Consts/IconConsts.cs | 10 - .../Global/Config/GlobalConfig.cs | 47 - .../Global/Config/PageModes.cs | 11 - .../Global/ServiceCollectionExtensions.cs | 20 - .../Masa.Mc.Web.Admin.csproj | 43 - .../Model/AppMessageOptions.cs | 13 - .../Model/AppTemplateModel.cs | 9 - .../Model/AppTemplateUpsertModel.cs | 9 - .../Model/MessageTaskUpsertModel.cs | 81 - .../MessageTaskUpsertModelValidator.cs | 23 - .../Pages/Channels/ChannelManagement.razor | 33 - .../Pages/Channels/ChannelManagement.razor.cs | 50 - .../Modules/ChannelAppExtraProperties.razor | 56 - .../ChannelAppExtraProperties.razor.cs | 47 - .../Pages/Channels/Modules/ChannelCard.razor | 50 - .../Channels/Modules/ChannelCreateModal.razor | 122 - .../Modules/ChannelCreateModal.razor.cs | 110 - .../Channels/Modules/ChannelEditModal.razor | 56 - .../Modules/ChannelEditModal.razor.cs | 95 - .../Modules/ChannelEmailExtraProperties.razor | 38 - .../ChannelEmailExtraProperties.razor.cs | 36 - .../Modules/ChannelExtraProperties.razor | 22 - .../Modules/ChannelExtraProperties.razor.cs | 93 - .../Channels/Modules/ChannelSelectCard.razor | 39 - .../Modules/ChannelSmsExtraProperties.razor | 19 - .../ChannelSmsExtraProperties.razor.cs | 36 - .../ChannelWeixinWorkExtraProperties.razor | 56 - ...nnelWeixinWorkWebhookExtraProperties.razor | 42 - .../MessageRecordManagement.razor | 104 - .../MessageRecordManagement.razor.cs | 116 - .../Modules/MessageRecordDetailModal.razor | 107 - .../Modules/MessageRecordDetailModal.razor.cs | 81 - .../MessageRecordDetailModal.razor.css | 8 - .../Pages/MessageTasks/MessageTaskList.razor | 132 - .../MessageTasks/MessageTaskList.razor.cs | 148 - .../Modules/ImportReceiversDetailModal.razor | 119 - .../Modules/MessageReceivers.razor | 19 - .../Modules/MessageReceivers.razor.cs | 43 - .../Modules/MessageReceiversImport.razor | 60 - .../Modules/MessageReceiversImport.razor.cs | 132 - .../Modules/MessageReceiversImport.razor.css | 15 - .../Modules/MessageReceiversSelect.razor | 72 - .../Modules/MessageReceiversSelect.razor.cs | 83 - .../Modules/MessageSendingRules.razor | 45 - .../Modules/MessageSendingRules.razor.cs | 92 - .../Modules/MessageSendingRulesInfo.razor | 21 - .../Modules/MessageTaskCard.razor | 153 - .../Modules/MessageTaskDetailModal.razor | 176 -- .../Modules/MessageTaskDetailModal.razor.cs | 152 - .../Modules/MessageTaskDetailModal.razor.css | 32 - .../Modules/MessageVariables.razor | 29 - .../Modules/MessageVariables.razor.cs | 36 - .../Modules/OrdinaryMessageCreateModal.razor | 199 -- .../OrdinaryMessageCreateModal.razor.cs | 160 - .../Modules/OrdinaryMessageEditModal.razor | 187 -- .../Modules/OrdinaryMessageEditModal.razor.cs | 189 -- .../Modules/OrdinaryMessageInfo.razor | 73 - .../Modules/OrdinaryMessageInfo.razor.cs | 24 - .../OrdinaryMessageInfoByMessageRecord.razor | 92 - .../Modules/ReceiverTypeSelect.razor | 81 - .../Modules/SendTestMessageModal.razor | 23 - .../Modules/SendTestMessageModal.razor.cs | 77 - .../MessageTasks/Modules/TemplateInfo.razor | 87 - .../Modules/TemplateMessageCreateModal.razor | 155 - .../TemplateMessageCreateModal.razor.cs | 194 -- .../Modules/TemplateMessageEditModal.razor | 151 - .../Modules/TemplateMessageEditModal.razor.cs | 229 -- .../Modules/TemplateMessageInfo.razor | 101 - .../Modules/TemplateMessageInfo.razor.cs | 56 - .../Modules/TemplateMessageInfo.razor.css | 6 - .../TemplateMessageInfoByMessageRecord.razor | 152 - .../Pages/MessageTasks/SendMessage.razor | 33 - .../Pages/MessageTasks/SendMessage.razor.cs | 22 - .../Pages/MessageTasks/SendMessage.razor.css | 19 - .../MessageTasks/SendMessageManagement.razor | 11 - .../SendMessageManagement.razor.cs | 9 - .../AppTemplateManagement.razor | 89 - .../AppTemplateManagement.razor.cs | 93 - .../EmailTemplateManagement.razor | 90 - .../EmailTemplateManagement.razor.cs | 97 - .../Modules/AppTemplateUpsertModal.razor | 111 - .../Modules/AppTemplateUpsertModal.razor.cs | 116 - .../Modules/EmailTemplateCreateModal.razor | 63 - .../Modules/EmailTemplateCreateModal.razor.cs | 82 - .../Modules/EmailTemplateEditModal.razor | 63 - .../Modules/EmailTemplateEditModal.razor.cs | 100 - .../MessageTemplateItemChangedEventArgs.cs | 17 - .../Modules/MessageTemplateItems.razor | 107 - .../Modules/MessageTemplateItems.razor.cs | 95 - .../Modules/MessageTemplateItems.razor.css | 18 - .../Modules/SmsTemplateCreateModal.razor | 92 - .../Modules/SmsTemplateCreateModal.razor.cs | 125 - .../Modules/SmsTemplateEditModal.razor | 89 - .../Modules/SmsTemplateEditModal.razor.cs | 144 - .../Modules/SmsTemplateInfo.razor | 36 - .../Modules/SmsTemplateInfo.razor.css | 16 - .../WebsiteMessageTemplateCreateModal.razor | 77 - ...WebsiteMessageTemplateCreateModal.razor.cs | 78 - .../WebsiteMessageTemplateEditModal.razor | 69 - .../WebsiteMessageTemplateEditModal.razor.cs | 100 - .../Modules/WeixinWorkUpsertModal.razor | 69 - .../Modules/WeixinWorkUpsertModal.razor.cs | 127 - .../WeixinWorkWebhookUpsertModal.razor | 51 - .../WeixinWorkWebhookUpsertModal.razor.cs | 122 - .../SmsTemplateManagement.razor | 125 - .../SmsTemplateManagement.razor.cs | 98 - .../WebsiteMessageTemplateManagement.razor | 90 - .../WebsiteMessageTemplateManagement.razor.cs | 102 - .../WeixinWorkTemplateManagement.razor | 67 - .../WeixinWorkTemplateManagement.razor.cs | 113 - .../WeixinWorkWebhookTemplateManagement.razor | 67 - ...ixinWorkWebhookTemplateManagement.razor.cs | 114 - .../Modules/ReceiverGroupCreateModal.razor | 28 - .../Modules/ReceiverGroupCreateModal.razor.cs | 65 - .../Modules/ReceiverGroupEditModal.razor | 28 - .../Modules/ReceiverGroupEditModal.razor.cs | 89 - .../Modules/ReceiverSelect.razor | 66 - .../Modules/ReceiverSelect.razor.cs | 74 - .../ReceiverGroupManagement.razor | 42 - .../ReceiverGroupManagement.razor.cs | 83 - .../Registers/MessageTaskRegister.cs | 19 - .../Registers/MessageTemplateRegister.cs | 13 - .../Shared/AdminCompontentBase.cs | 189 -- .../Shared/EmptyLayout.razor | 7 - .../Masa.Mc.Web.Admin/Shared/MLoading.razor | 37 - .../Masa.Mc.Web.Admin/Shared/MainLayout.razor | 58 - .../Shared/MainLayout.razor.css | 3 - src/Web/Masa.Mc.Web.Admin/_Imports.cs | 75 - src/Web/Masa.Mc.Web.Admin/_Imports.razor | 55 - .../wwwroot/css/masa-blazor-pro.css | 575 ---- .../wwwroot/css/mc-admin.css | 470 --- .../Masa.Mc.Web.Admin/wwwroot/i18n/en-US.json | 291 -- .../wwwroot/i18n/supportedCultures.json | 6 - .../Masa.Mc.Web.Admin/wwwroot/i18n/zh-CN.json | 425 --- .../wwwroot/img/analytics/json.png | Bin 976 -> 0 bytes .../wwwroot/img/analytics/left.png | Bin 3335 -> 0 bytes .../wwwroot/img/analytics/right.png | Bin 1814 -> 0 bytes .../img/auth/forgot-password-v2.9faba3c1.svg | 207 -- .../wwwroot/img/auth/register-v2.0a9e487c.svg | 351 --- .../wwwroot/img/avatar/1.svg | 33 - .../wwwroot/img/avatar/10.svg | 38 - .../wwwroot/img/avatar/11.svg | 31 - .../wwwroot/img/avatar/12.svg | 39 - .../wwwroot/img/avatar/13.svg | 29 - .../wwwroot/img/avatar/14.svg | 40 - .../wwwroot/img/avatar/2.svg | 34 - .../wwwroot/img/avatar/3.svg | 35 - .../wwwroot/img/avatar/4.svg | 35 - .../wwwroot/img/avatar/7.svg | 30 - .../wwwroot/img/avatar/8.svg | 46 - .../wwwroot/img/avatar/9.svg | 40 - .../wwwroot/img/eCommerce/rectangle.png | Bin 17020 -> 0 bytes .../wwwroot/img/eCommerce/trophy.png | Bin 69803 -> 0 bytes .../wwwroot/img/login/2873.png | Bin 5628 -> 0 bytes .../wwwroot/img/login/Gxwd.png | Bin 3786 -> 0 bytes .../wwwroot/img/login/left.svg | 53 - .../wwwroot/img/mainLayout/logo-en.png | Bin 9711 -> 0 bytes .../wwwroot/img/mainLayout/logo-en.svg | 6 - .../wwwroot/img/mainLayout/logo.svg | 4 - .../wwwroot/img/messageTask/send.svg | 3 - .../wwwroot/img/messageTask/test.svg | 3 - .../wwwroot/img/status/401.png | Bin 7469 -> 0 bytes .../wwwroot/img/status/404.png | Bin 13829 -> 0 bytes .../wwwroot/img/status/500.png | Bin 9020 -> 0 bytes .../wwwroot/img/upload/upload-active.png | Bin 3051 -> 0 bytes .../wwwroot/img/upload/upload-complete.png | Bin 1317 -> 0 bytes .../wwwroot/img/upload/upload-error.png | Bin 654 -> 0 bytes .../wwwroot/img/upload/upload.png | Bin 3639 -> 0 bytes src/Web/Masa.Mc.Web.Admin/wwwroot/js/clamp.js | 253 -- .../wwwroot/js/quill/quill-helper.js | 19 - src/Web/Masa.Mc.Web.Admin/wwwroot/js/util.js | 12 - .../wwwroot/js/vditor/vditor-helper.js | 24 - 326 files changed, 7 insertions(+), 19409 deletions(-) delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/Certificates/7348307__lonsid.cn.pfx delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/Dockerfile delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/Masa.Mc.Web.Admin.Server.csproj delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/Pages/Error.cshtml delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/Pages/Error.cshtml.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/Pages/Login.cshtml delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/Pages/Login.cshtml.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/Pages/Logout.cshtml delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/Pages/Logout.cshtml.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/Pages/_Host.cshtml delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/Pages/_Layout.cshtml delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/Program.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/Properties/launchSettings.json delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/_Imports.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/appsettings.Develop.json delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/appsettings.Development.json delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/appsettings.Staging.json delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/appsettings.json delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/ssl/tls.crt delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/ssl/tls.key delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/css/error.css delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/favicon.ico delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/1.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/10.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/11.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/12.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/13.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/14.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/2.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/3.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/4.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/7.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/8.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/9.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.Server/wwwroot/nav/nav.json delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/Masa.Mc.Web.Admin.WebAssembly.csproj delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/Program.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/Properties/launchSettings.json delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/TestAuthStateProvider.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/css/app.css delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/css/spinkit.min.css delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/decode.min.js delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/favicon.ico delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/i18n/en-US.json delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/i18n/languageConfig.json delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/i18n/zh-CN.json delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/analytics/json.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/analytics/left.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/analytics/right.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/1.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/10.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/11.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/12.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/13.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/14.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/15.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/16.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/17.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/18.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/19.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/2.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/20.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/21.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/22.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/23.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/24.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/25.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/26.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/27.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/3.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/4.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/5.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/6.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/7.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/8.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/9.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/auth/forgot-password-v2.9faba3c1.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/auth/register-v2.0a9e487c.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/1.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/10.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/11.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/12.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/13.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/14.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/2.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/3.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/4.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/7.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/8.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/9.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/eCommerce/rectangle.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/eCommerce/trophy.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/login/2873.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/login/Gxwd.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/login/left.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/mainLayout/logo-en.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/mainLayout/logo.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/status/401.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/status/404.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/status/500.png delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/index.html delete mode 100644 src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/nav/nav.json delete mode 100644 src/Web/Masa.Mc.Web.Admin/App.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/AutoHeight.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/ButtonGroup/BooleanButtonGroup.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/ButtonGroup/BooleanButtonGroup.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Chip/ColorTag.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Clamp.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultIcon.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultSheetDialog.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultSubTitle.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultTitle.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultUserAvatar.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Editor/DefaultEditor.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Editor/DefaultEditor.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/ExtraProperties.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/GenericColumnRender/DefaultGenericColumnRender.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Group/ColorsGroup.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Lists/DateTimeListItem.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Markdown/DefaultMarkdown.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Markdown/DefaultMarkdown.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/MenuTooltip.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageRecords/MessageRecordStatusTag.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageRecords/MessageRecordStatusTag.razor.css delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskHistorySelect.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskHistorySelect.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskHistoryStatusIcon.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskReceiverAutoComplete.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskReceiverAutoComplete.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskStatus.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateAuditStatusTag.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateSelect.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateSelect.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateStatusTag.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/ExternalUserCreateModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/ExternalUserCreateModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/SubjectAutoComplete.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/SubjectAutoComplete.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserAutoComplete.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserAutoComplete.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserSelect.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserSelect.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/RichText/DefaultRichText.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/RichText/DefaultRichText.razor.css delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/RichText/RichText.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/RichText/RichText.razor.css delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Selects/BooleanSelect.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Selects/BooleanSelect.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/StyleTypes.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/TextField/DefaultSearch.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Components/Upload/ProgressUpload.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Consts/IconConsts.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Global/Config/GlobalConfig.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Global/Config/PageModes.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Global/ServiceCollectionExtensions.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Masa.Mc.Web.Admin.csproj delete mode 100644 src/Web/Masa.Mc.Web.Admin/Model/AppMessageOptions.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Model/AppTemplateModel.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Model/AppTemplateUpsertModel.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Model/MessageTaskUpsertModel.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Model/Validator/MessageTaskUpsertModelValidator.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/ChannelManagement.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/ChannelManagement.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelAppExtraProperties.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelAppExtraProperties.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelCard.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelCreateModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelCreateModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEditModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEditModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEmailExtraProperties.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEmailExtraProperties.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelExtraProperties.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelExtraProperties.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelSelectCard.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelSmsExtraProperties.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelSmsExtraProperties.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelWeixinWorkExtraProperties.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelWeixinWorkWebhookExtraProperties.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/MessageRecordManagement.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/MessageRecordManagement.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/Modules/MessageRecordDetailModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/Modules/MessageRecordDetailModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/Modules/MessageRecordDetailModal.razor.css delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/MessageTaskList.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/MessageTaskList.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/ImportReceiversDetailModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceivers.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceivers.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversImport.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversImport.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversImport.razor.css delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversSelect.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversSelect.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageSendingRules.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageSendingRules.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageSendingRulesInfo.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskCard.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskDetailModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskDetailModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskDetailModal.razor.css delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageVariables.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageVariables.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageCreateModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageCreateModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageEditModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageEditModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageInfo.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageInfo.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageInfoByMessageRecord.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/ReceiverTypeSelect.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/SendTestMessageModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/SendTestMessageModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateInfo.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageCreateModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageCreateModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageEditModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageEditModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfo.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfo.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfo.razor.css delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfoByMessageRecord.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessage.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessage.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessage.razor.css delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessageManagement.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessageManagement.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/AppTemplateManagement.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/AppTemplateManagement.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/EmailTemplateManagement.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/EmailTemplateManagement.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/AppTemplateUpsertModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/AppTemplateUpsertModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateCreateModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateCreateModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateEditModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateEditModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItemChangedEventArgs.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItems.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItems.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItems.razor.css delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateCreateModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateCreateModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateEditModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateEditModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateInfo.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateInfo.razor.css delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateCreateModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateCreateModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateEditModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateEditModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkUpsertModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkUpsertModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkWebhookUpsertModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkWebhookUpsertModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/SmsTemplateManagement.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/SmsTemplateManagement.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WebsiteMessageTemplateManagement.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WebsiteMessageTemplateManagement.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkTemplateManagement.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkTemplateManagement.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkWebhookTemplateManagement.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkWebhookTemplateManagement.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupCreateModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupCreateModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupEditModal.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupEditModal.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverSelect.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverSelect.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/ReceiverGroupManagement.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/ReceiverGroupManagement.razor.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Registers/MessageTaskRegister.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Registers/MessageTemplateRegister.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Shared/AdminCompontentBase.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/Shared/EmptyLayout.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Shared/MLoading.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Shared/MainLayout.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/Shared/MainLayout.razor.css delete mode 100644 src/Web/Masa.Mc.Web.Admin/_Imports.cs delete mode 100644 src/Web/Masa.Mc.Web.Admin/_Imports.razor delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/css/masa-blazor-pro.css delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/css/mc-admin.css delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/i18n/en-US.json delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/i18n/supportedCultures.json delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/i18n/zh-CN.json delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/analytics/json.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/analytics/left.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/analytics/right.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/auth/forgot-password-v2.9faba3c1.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/auth/register-v2.0a9e487c.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/1.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/10.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/11.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/12.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/13.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/14.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/2.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/3.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/4.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/7.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/8.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/9.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/eCommerce/rectangle.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/eCommerce/trophy.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/login/2873.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/login/Gxwd.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/login/left.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/mainLayout/logo-en.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/mainLayout/logo-en.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/mainLayout/logo.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/messageTask/send.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/messageTask/test.svg delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/status/401.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/status/404.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/status/500.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/upload/upload-active.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/upload/upload-complete.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/upload/upload-error.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/img/upload/upload.png delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/js/clamp.js delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/js/quill/quill-helper.js delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/js/util.js delete mode 100644 src/Web/Masa.Mc.Web.Admin/wwwroot/js/vditor/vditor-helper.js diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageReceipts/GetSmsInboundInputDto.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageReceipts/GetSmsInboundInputDto.cs index ef07dc6c..25335bb3 100644 --- a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageReceipts/GetSmsInboundInputDto.cs +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageReceipts/GetSmsInboundInputDto.cs @@ -9,6 +9,8 @@ public class GetSmsInboundInputDto : PaginatedOptionsDto public string ChannelCode { get; set; } = string.Empty; + public SmsInboundProviders? Provider { get; set; } + public string Mobile { get; set; } = string.Empty; public string AddSerial { get; set; } = string.Empty; @@ -23,11 +25,12 @@ public GetSmsInboundInputDto() { } - public GetSmsInboundInputDto(Guid? channelId, string channelCode, string mobile, string addSerial, string smsContent, DateTimeOffset? startTime, DateTimeOffset? endTime, string sorting, int page, int pageSize) + public GetSmsInboundInputDto(Guid? channelId, string channelCode, SmsInboundProviders? provider, string mobile, string addSerial, string smsContent, DateTimeOffset? startTime, DateTimeOffset? endTime, string sorting, int page, int pageSize) : base(sorting, page, pageSize) { ChannelId = channelId; ChannelCode = channelCode; + Provider = provider; Mobile = mobile; AddSerial = addSerial; SmsContent = smsContent; diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs index 72358d0b..9b41ea9d 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs @@ -49,6 +49,7 @@ private static Expression> CreateSmsInboundPred condition = condition.And(!string.IsNullOrWhiteSpace(input.Mobile), x => x.Mobile == input.Mobile); condition = condition.And(!string.IsNullOrWhiteSpace(input.AddSerial), x => x.AddSerial == input.AddSerial); condition = condition.And(!string.IsNullOrWhiteSpace(input.SmsContent), x => x.SmsContent.Contains(input.SmsContent)); + condition = condition.And(input.Provider.HasValue, x => x.Provider == input.Provider!.Value); condition = condition.And(input.StartTime.HasValue, x => x.SendTime >= input.StartTime!.Value); condition = condition.And(input.EndTime.HasValue, x => x.SendTime <= input.EndTime!.Value); diff --git a/src/Services/Masa.Mc.Service/Services/SmsInboundService.cs b/src/Services/Masa.Mc.Service/Services/SmsInboundService.cs index 9c3e1f3e..5d094373 100644 --- a/src/Services/Masa.Mc.Service/Services/SmsInboundService.cs +++ b/src/Services/Masa.Mc.Service/Services/SmsInboundService.cs @@ -16,11 +16,12 @@ public SmsInboundService() : base("api/sms-inbound") [RoutePattern("", StartWithBaseUri = true, HttpMethod = "Get")] public async Task> GetListAsync(IEventBus eventBus, [FromQuery] Guid? channelId, [FromQuery] string? channelCode, + [FromQuery] SmsInboundProviders? provider, [FromQuery] DateTimeOffset? startTime, [FromQuery] DateTimeOffset? endTime, [FromQuery] string mobile = "", [FromQuery] string addSerial = "", [FromQuery] string smsContent = "", [FromQuery] string sorting = "", [FromQuery] int page = 1, [FromQuery] int pagesize = 10) { - var input = new GetSmsInboundInputDto(channelId, channelCode ?? string.Empty, mobile, addSerial, smsContent, startTime, endTime, sorting, page, pagesize); + var input = new GetSmsInboundInputDto(channelId, channelCode ?? string.Empty, provider, mobile, addSerial, smsContent, startTime, endTime, sorting, page, pagesize); var query = new GetListSmsInboundQuery(input); await eventBus.PublishAsync(query); return query.Result; diff --git a/src/Web/Masa.Mc.Web.Admin.Server/Certificates/7348307__lonsid.cn.pfx b/src/Web/Masa.Mc.Web.Admin.Server/Certificates/7348307__lonsid.cn.pfx deleted file mode 100644 index 5a014fef30c0300d2c8a2a7062c64545533d4473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4925 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 diff --git a/src/Web/Masa.Mc.Web.Admin.Server/Dockerfile b/src/Web/Masa.Mc.Web.Admin.Server/Dockerfile deleted file mode 100644 index c6c32f31..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM registry.cn-hangzhou.aliyuncs.com/masa/dotnet_sdk:6.0.100 AS publish -WORKDIR /src -COPY . . -ENV CSPROJ="src/Web/Masa.Mc.Web.Admin.Server/Masa.Mc.Web.Admin.Server.csproj" -RUN dotnet restore $CSPROJ && dotnet publish $CSPROJ -c Release -o /app/publish - - -FROM registry.cn-hangzhou.aliyuncs.com/masa/dotnet_aspnet:6.0.4 -WORKDIR /app -COPY --from=publish /app/publish . -COPY ["src/Web/Masa.Mc.Web.Admin/wwwroot/i18n","wwwroot/i18n"] -ENV ASPNETCORE_URLS=https://0.0.0.0:443 -EXPOSE 80 -EXPOSE 443 -ENTRYPOINT ["dotnet", "Masa.Mc.Web.Admin.Server.dll"] \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin.Server/Masa.Mc.Web.Admin.Server.csproj b/src/Web/Masa.Mc.Web.Admin.Server/Masa.Mc.Web.Admin.Server.csproj deleted file mode 100644 index 041da8ba..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/Masa.Mc.Web.Admin.Server.csproj +++ /dev/null @@ -1,37 +0,0 @@ - - - - net6.0 - enable - enable - ..\..\..\docker-compose.dcproj - d1f0bc4d-1731-474c-8478-296e92befe3d - Linux - ..\..\.. - false - false - - - - - - - - - - - - - - - PreserveNewest - - - - - - PreserveNewest - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/Pages/Error.cshtml b/src/Web/Masa.Mc.Web.Admin.Server/Pages/Error.cshtml deleted file mode 100644 index 7d873c6f..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/Pages/Error.cshtml +++ /dev/null @@ -1,43 +0,0 @@ -@page -@model Masa.Mc.Web.Admin.Pages.ErrorModel - - - - - - - - Error - - - - -
-
-

Error.

-

An error occurred while processing your request.

- - @if (Model.ShowRequestId) - { -

- Request ID: @Model.RequestId -

- } - -

Development Mode

-

- Swapping to the Development environment displays detailed information about the error - that occurred. -

-

- The Development environment shouldn't be enabled for deployed applications. - It can result in displaying sensitive information from exceptions to end users. - For local debugging, enable the Development environment by setting the - ASPNETCORE_ENVIRONMENT environment variable to Development - and restarting the app. -

-
-
- - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/Pages/Error.cshtml.cs b/src/Web/Masa.Mc.Web.Admin.Server/Pages/Error.cshtml.cs deleted file mode 100644 index ae7ece82..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/Pages/Error.cshtml.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; -using System.Diagnostics; - -namespace Masa.Mc.Web.Admin.Pages -{ - [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] - [IgnoreAntiforgeryToken] - public class ErrorModel : PageModel - { - public string? RequestId { get; set; } - - public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); - - private readonly ILogger _logger; - - public ErrorModel(ILogger logger) - { - _logger = logger; - } - - public void OnGet() - { - RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; - } - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin.Server/Pages/Login.cshtml b/src/Web/Masa.Mc.Web.Admin.Server/Pages/Login.cshtml deleted file mode 100644 index bbe89852..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/Pages/Login.cshtml +++ /dev/null @@ -1,2 +0,0 @@ -@page -@model Masa.Mc.Web.Admin.Server.Pages.LoginModel diff --git a/src/Web/Masa.Mc.Web.Admin.Server/Pages/Login.cshtml.cs b/src/Web/Masa.Mc.Web.Admin.Server/Pages/Login.cshtml.cs deleted file mode 100644 index f03bee22..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/Pages/Login.cshtml.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Server.Pages; - -public class LoginModel : PageModel -{ - public async Task OnGetAsync(string redirectUri) - { - // just to remove compiler warning - await Task.CompletedTask; - - if (string.IsNullOrWhiteSpace(redirectUri)) - { - redirectUri = Url.Content("~/"); - } - - // If user is already logged in, we can redirect directly... - if (HttpContext.User.Identity != null && HttpContext.User.Identity.IsAuthenticated) - { - Response.Redirect(redirectUri); - } - - return Challenge( - new AuthenticationProperties - { - RedirectUri = redirectUri - }, - OpenIdConnectDefaults.AuthenticationScheme); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin.Server/Pages/Logout.cshtml b/src/Web/Masa.Mc.Web.Admin.Server/Pages/Logout.cshtml deleted file mode 100644 index f9f74c22..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/Pages/Logout.cshtml +++ /dev/null @@ -1,2 +0,0 @@ -@page -@model Masa.Mc.Web.Admin.Server.Pages.LogoutModel diff --git a/src/Web/Masa.Mc.Web.Admin.Server/Pages/Logout.cshtml.cs b/src/Web/Masa.Mc.Web.Admin.Server/Pages/Logout.cshtml.cs deleted file mode 100644 index 61616ca5..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/Pages/Logout.cshtml.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -using Microsoft.AspNetCore.Authentication; -using Microsoft.AspNetCore.Authentication.Cookies; -using Microsoft.AspNetCore.Authentication.OpenIdConnect; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; - -namespace Masa.Mc.Web.Admin.Server.Pages; - -public class LogoutModel : PageModel -{ - public async Task OnGetAsync() - { - if (User.Identity != null && User.Identity.IsAuthenticated == true) - { - // delete local authentication cookie - await HttpContext.SignOutAsync(); - } - - return SignOut( - new AuthenticationProperties - { - RedirectUri = "/" - }, - OpenIdConnectDefaults.AuthenticationScheme, - CookieAuthenticationDefaults.AuthenticationScheme); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin.Server/Pages/_Host.cshtml b/src/Web/Masa.Mc.Web.Admin.Server/Pages/_Host.cshtml deleted file mode 100644 index d437a902..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/Pages/_Host.cshtml +++ /dev/null @@ -1,15 +0,0 @@ -@page "/" -@namespace Masa.Mc.Web.Admin.Pages -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -@{ - Layout = "_Layout"; - - var tokens = new TokenProvider - { - AccessToken = await HttpContext.GetTokenAsync(OpenIdConnectParameterNames.AccessToken), - RefreshToken = await HttpContext.GetTokenAsync(OpenIdConnectParameterNames.RefreshToken), - IdToken = await HttpContext.GetTokenAsync(OpenIdConnectParameterNames.IdToken) - }; -} - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/Pages/_Layout.cshtml b/src/Web/Masa.Mc.Web.Admin.Server/Pages/_Layout.cshtml deleted file mode 100644 index 507f6603..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/Pages/_Layout.cshtml +++ /dev/null @@ -1,50 +0,0 @@ -@using Microsoft.AspNetCore.Components.Web -@namespace Masa.Mc.Web.Admin.Server.Pages -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers - - - - - - - - Masa.Mc.Web.Admin - - - - - - - - - - - - - - - - - - - @RenderBody() - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/Program.cs b/src/Web/Masa.Mc.Web.Admin.Server/Program.cs deleted file mode 100644 index 7a592dbb..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/Program.cs +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -var builder = WebApplication.CreateBuilder(args); - -ValidatorOptions.Global.LanguageManager = new MasaLanguageManager(); -GlobalValidationOptions.SetDefaultCulture("zh-CN"); - -await builder.Services.AddMasaStackConfigAsync(MasaStackProject.MC, MasaStackApp.WEB); -var masaStackConfig = builder.Services.GetMasaStackConfig(); - -if (!builder.Environment.IsDevelopment()) -{ - builder.WebHost.UseKestrel(option => - { - option.ConfigureHttpsDefaults(options => - { - options.ServerCertificate = X509Certificate2.CreateFromPemFile("./ssl/tls.crt", "./ssl/tls.key"); - options.CheckCertificateRevocation = false; - }); - }); -} - -// Add services to the container. -builder.Services.AddRazorPages(); -builder.Services.AddServerSideBlazor(); -builder.Services.AddBlazorDownloadFile(); - -builder.Services.AddResponseCompression(opts => -{ - opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat( - new[] { "application/octet-stream" }); -}); -var authBaseAddress = masaStackConfig.GetAuthServiceDomain(); -var mcBaseAddress = builder.Services.GetMasaConfiguration().ConfigurationApi.GetDefault().GetValue("AppSettings:McClient:Url"); - -if (string.IsNullOrEmpty(mcBaseAddress)) -{ - mcBaseAddress = masaStackConfig.GetMcServiceDomain(); -} - -await builder.Services.AddMasaStackComponentsAsync(MasaStackProject.MC, "wwwroot/i18n", authBaseAddress); - -builder.Services.AddHttpContextAccessor(); -builder.Services.AddGlobalForServer(); -builder.Services.AddScoped(); -builder.Services.AddSingleton(); -TypeAdapterConfig.GlobalSettings.Scan(Assembly.GetExecutingAssembly(), Assembly.Load("Masa.Mc.Contracts.Admin"), Assembly.Load("Masa.Mc.Web.Admin")); -MasaOpenIdConnectOptions masaOpenIdConnectOptions = new MasaOpenIdConnectOptions -{ - Authority = masaStackConfig.GetSsoDomain(), - ClientId = masaStackConfig.GetWebId(MasaStackProject.MC), - Scopes = new List { "offline_access" } -}; ; - -IdentityModelEventSource.ShowPII = true; -builder.Services.AddMasaOpenIdConnect(masaOpenIdConnectOptions); - -builder.Services.AddMcApiGateways(option => -{ - option.McServiceBaseAddress = mcBaseAddress; - option.AuthorityEndpoint = masaOpenIdConnectOptions.Authority; - option.ClientId = masaOpenIdConnectOptions.ClientId; - option.ClientSecret = masaOpenIdConnectOptions.ClientSecret; -}); - -StaticWebAssetsLoader.UseStaticWebAssets(builder.Environment, builder.Configuration); - -var app = builder.Build(); - -// Configure the HTTP request pipeline. -if (app.Environment.IsDevelopment()) -{ - app.UseDeveloperExceptionPage(); -} -else -{ - app.UseExceptionHandler("/Error"); - // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. - app.UseHsts(); -} - -app.UseHttpsRedirection(); - -app.UseStaticFiles(); - -app.UseRouting(); - -app.UseAuthentication(); -app.UseAuthorization(); - -app.MapControllers(); -app.MapBlazorHub(); -app.MapFallbackToPage("/_Host"); -app.Run(); \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin.Server/Properties/launchSettings.json b/src/Web/Masa.Mc.Web.Admin.Server/Properties/launchSettings.json deleted file mode 100644 index 85c423d3..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/Properties/launchSettings.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:9877", - "sslPort": 44650 - } - }, - "profiles": { - "Masa.Mc.Web.Admin": { - "commandName": "Project", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development", - "MASA_CLUSTER": "Default", - "DCC_SECRET": "masastack.com", - "ADMIN_PWD": "admin123", - "DOMAIN_NAME": "masastack.com", - "MASA_NAMESPACE": "masastack", - "TLS_NAME": "masastack", - "MASA_VERSION": "1.0-Prev", - "IS_DEMO": "false", - "MASA_ENVIRONMENT": "Development", - "OTLP_URL": "http://otel-collector.masastack:9013", - "ELASTIC": "{\"Nodes\": [\"http://es-ydy-new.lonsid.cn:9200\"],\"Index\": \"auth_user_development\"}", - "REDIS": "{\"RedisHost\": \"10.130.0.19\", \"RedisPort\": 2135, \"RedisDb\": 3,\"RedisPassword\": \"Hzss@123\"}", - "CONNECTIONSTRING": "{\"Server\": \"10.130.0.19\", \"Port\": 2415,\"Database\":\"mc-dev\",\"UserId\": \"ss\",\"Password\":\"Hzss@123\"}", - "MASA_STACK": "[{\"id\":\"pm\",\"service\":{\"id\":\"pm-service-dev\",\"domain\":\"http://pm-service-dev.masastack.com\"},\"web\":{\"id\":\"pm-web-dev\",\"domain\":\"https://pm-dev.masastack.com\"}},{\"id\":\"dcc\",\"service\":{\"id\":\"dcc-service-dev\",\"domain\":\"http://dcc-service-dev.masastack.com\"},\"web\":{\"id\":\"dcc-web-dev\",\"domain\":\"https://dcc-dev.masastack.com\"}},{\"id\":\"tsc\",\"service\":{\"id\":\"tsc-service-dev\",\"domain\":\"http://tsc-service-dev.masastack.com\"},\"web\":{\"id\":\"tsc-web-dev\",\"domain\":\"https://tsc-dev.masastack.com\"}},{\"id\":\"alert\",\"service\":{\"id\":\"alert-service-dev\",\"domain\":\"http://alert-service-dev.masastack.com\"},\"web\":{\"id\":\"alert-web-dev\",\"domain\":\"https://alert-dev.masastack.com\"}},{\"id\":\"scheduler\",\"service\":{\"id\":\"scheduler-service-dev\",\"domain\":\"http://scheduler-service-dev.masastack.com\"},\"worker\":{\"id\":\"scheduler-worker-dev\",\"domain\":\"http://scheduler-worker-dev.masastack.com\"},\"web\":{\"id\":\"scheduler-web-dev\",\"domain\":\"https://scheduler-dev.masastack.com\"}},{\"id\":\"mc\",\"service\":{\"id\":\"mc-service-dev\",\"domain\":\"http://mc-service-dev.masastack.com\"},\"web\":{\"id\":\"mc-web-dev\",\"domain\":\"https://mc-dev.masastack.com\"}},{\"id\":\"auth\",\"service\":{\"id\":\"auth-service-dev\",\"domain\":\"http://auth-service-dev.masastack.com\"},\"web\":{\"id\":\"auth-web-dev\",\"domain\":\"https://auth-dev.masastack.com\"},\"sso\":{\"id\":\"auth-sso-dev\",\"domain\":\"https://auth-sso-dev.masastack.com\"}}]" - }, - "applicationUrl": "https://localhost:19500;http://localhost:19510", - "dotnetRunMessages": true - }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "Docker": { - "commandName": "Docker", - "launchBrowser": true, - "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", - "publishAllPorts": true, - "useSSL": true - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin.Server/_Imports.cs b/src/Web/Masa.Mc.Web.Admin.Server/_Imports.cs deleted file mode 100644 index a6375fe3..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/_Imports.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -// System Namespaces -global using System.Reflection; -global using System.Security.Cryptography.X509Certificates; - -// Microsoft Namespaces -global using Microsoft.AspNetCore.Authentication; -global using Microsoft.AspNetCore.Authentication.OpenIdConnect; -global using Microsoft.AspNetCore.Mvc; -global using Microsoft.AspNetCore.Mvc.RazorPages; -global using Microsoft.AspNetCore.ResponseCompression; -global using Microsoft.AspNetCore.Hosting.StaticWebAssets; -global using Microsoft.IdentityModel.Logging; -global using Microsoft.IdentityModel.Protocols.OpenIdConnect; - -// Third-party Libraries -global using BlazorDownloadFile; -global using FluentValidation; -global using FluentValidation.Resources; -global using Mapster; - -// MASA Building Blocks and Contrib Packages -global using Masa.Contrib.StackSdks.Caller; -global using Masa.Contrib.StackSdks.Config; -global using Masa.Contrib.Configuration.ConfigurationApi.Dcc; -global using Masa.Stack.Components.Extensions.OpenIdConnect; - -// MASA MC Contracts, Infrastructure, Domain, Services, and Application -global using Masa.Mc.ApiGateways.Caller; -global using Masa.Mc.Contracts.Admin.Dtos.Channels.Validator; - -// MASA Stack Components -global using Masa.Stack.Components; \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin.Server/appsettings.Develop.json b/src/Web/Masa.Mc.Web.Admin.Server/appsettings.Develop.json deleted file mode 100644 index f362ebef..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/appsettings.Develop.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Error" - } - }, - "AllowedHosts": "*", - "AppId": "mc-develop" -} - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin.Server/appsettings.Development.json b/src/Web/Masa.Mc.Web.Admin.Server/appsettings.Development.json deleted file mode 100644 index 003f4b42..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/appsettings.Development.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Error" - } - }, - "AllowedHosts": "*", - "AppId": "mc-develop" -} diff --git a/src/Web/Masa.Mc.Web.Admin.Server/appsettings.Staging.json b/src/Web/Masa.Mc.Web.Admin.Server/appsettings.Staging.json deleted file mode 100644 index bb6b7d3d..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/appsettings.Staging.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Error" - } - }, - "AllowedHosts": "*", - "AppId": "mc-staging" -} - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin.Server/appsettings.json b/src/Web/Masa.Mc.Web.Admin.Server/appsettings.json deleted file mode 100644 index f2f78acf..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/appsettings.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Error" - } - }, - "AllowedHosts": "*", - "AppId": "mc-ui-demo" -} diff --git a/src/Web/Masa.Mc.Web.Admin.Server/ssl/tls.crt b/src/Web/Masa.Mc.Web.Admin.Server/ssl/tls.crt deleted file mode 100644 index 1198c59b..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/ssl/tls.crt +++ /dev/null @@ -1,39 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIGvzCCBaegAwIBAgIQDst0LJnPKMFkgmyOgbSX+jANBgkqhkiG9w0BAQsFADBf -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMR4wHAYDVQQDExVHZW9UcnVzdCBDTiBSU0EgQ0EgRzEw -HhcNMjIwMzAzMDAwMDAwWhcNMjMwMzE0MjM1OTU5WjCBiTELMAkGA1UEBhMCQ04x -EjAQBgNVBAgMCea1meaxn+ecgTESMBAGA1UEBwwJ5rip5bee5biCMTwwOgYDVQQK -DDPmtZnmsZ/mnJfor5flvrflgaXlurfppa7msLTorr7lpIfogqHku73mnInpmZDl -hazlj7gxFDASBgNVBAMMCyoubG9uc2lkLmNuMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEAtbKBcjdZEBM6LMREx/vWuAa81uJpe6IvwKEajHoZ5NRK1CyM -L+VYBeKYhgRmBzgjJW0M16kk094/fgpAfclGswDryDnWGiuiaX2NXOroiPYFcyWX -UnEWYqsdrowbiUvFgPkXWwUwo8/RsV1nC/BiqNhduxLuQti0QkzOBeeurcunaShu -s9qbEjQeBkUUgmH4rK4U+ABv6RvwDfB1JLFFmruc3Wgndv0udylK67p9x7cXE0Wz -OhLQtI3+W5Vg8K2XXX/2AZOs+8jFkxG2x/EUQs4BKBYOvXqULLheFmut/pPxdxlb -2FNpMBq8qb0/U6oCkj2rO433EVvFzKvyx9nAGwIDAQABo4IDSjCCA0YwHwYDVR0j -BBgwFoAUkZ9eMRWuEJ+tYMH3wcyqSDQvDCYwHQYDVR0OBBYEFK/ICh/pYf/R8k57 -H6EKb+MbzgeiMCEGA1UdEQQaMBiCCyoubG9uc2lkLmNugglsb25zaWQuY24wDgYD -VR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjB1BgNV -HR8EbjBsMDSgMqAwhi5odHRwOi8vY3JsMy5kaWdpY2VydC5jb20vR2VvVHJ1c3RD -TlJTQUNBRzEuY3JsMDSgMqAwhi5odHRwOi8vY3JsNC5kaWdpY2VydC5jb20vR2Vv -VHJ1c3RDTlJTQUNBRzEuY3JsMD4GA1UdIAQ3MDUwMwYGZ4EMAQICMCkwJwYIKwYB -BQUHAgEWG2h0dHA6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzBvBggrBgEFBQcBAQRj -MGEwIQYIKwYBBQUHMAGGFWh0dHA6Ly9vY3NwLmRjb2NzcC5jbjA8BggrBgEFBQcw -AoYwaHR0cDovL2NybC5kaWdpY2VydC1jbi5jb20vR2VvVHJ1c3RDTlJTQUNBRzEu -Y3J0MAkGA1UdEwQCMAAwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkBZwB1AK33vvp8 -/xDIi509nB4+GGq0Zyldz7EMJMqFhjTr3IKKAAABf05aVi0AAAQDAEYwRAIgfqBq -PZpvMHW4aGsR/yucGiC7KeyYu+i7xg7k9gP5wYwCIDw1deL5sim38D6kU6BfkgV2 -YXlXv4TIQ2bLyELEcQ1SAHcANc8ZG7+xbFe/D61MbULLu7YnICZR6j/hKu+oA8M7 -1kwAAAF/TlpWMAAABAMASDBGAiEAwu1ZmZw5+99t+ilr1BryrezjJrolcU+l7a+3 -pK4G44QCIQDaROzJaidunAchCoQdQvkD7sobvJIqrcGi9RwTym2ckQB1ALNzdwfh -hFD4Y4bWBancEQlKeS2xZwwLh9zwAw55NqWaAAABf05aVmUAAAQDAEYwRAIgSM0e -5ypEiVCjJxKsG8zehtL4poEJGWNMnAAdvjhOa48CIACiIljn0KSsANPQgy51yM8y -NF6XS/NoFyAEwNIvf3P8MA0GCSqGSIb3DQEBCwUAA4IBAQCEFau//Q03vuchkVGl -sX+MSYTP0tJK3bXCCKcgrYo2ptoEFE9DJOcPcSF+Drw71G66mfPlT0v9Yvn1WyPg -81KGvBgBv2NHlQFsHy/dyxC1afUmj4E37pd9oI+KJ6yl++G8H1TN+T4PSU+WAneX -JQHmq3+xC3rcEUhqkoojIfT1nnXVKjf9KeHzKBgZwMnz7capvOBQ3pFp5oTDvt+2 -WEHM/pxnwuV+P8D7lJCx3O4DjP5Ww47FPTkq00Q5EzWQ+wy5w3ab3DPjsTmQJyZG -pOTxuh4GDCzfGWLG6uzsdCMOHcF5qxVZuw1MiY/TzJJ0CN9gTBjArE7/SfFi9qrf -HoS9 ------END CERTIFICATE----- \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin.Server/ssl/tls.key b/src/Web/Masa.Mc.Web.Admin.Server/ssl/tls.key deleted file mode 100644 index cee682ee..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/ssl/tls.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC1soFyN1kQEzos -xETH+9a4BrzW4ml7oi/AoRqMehnk1ErULIwv5VgF4piGBGYHOCMlbQzXqSTT3j9+ -CkB9yUazAOvIOdYaK6JpfY1c6uiI9gVzJZdScRZiqx2ujBuJS8WA+RdbBTCjz9Gx -XWcL8GKo2F27Eu5C2LRCTM4F566ty6dpKG6z2psSNB4GRRSCYfisrhT4AG/pG/AN -8HUksUWau5zdaCd2/S53KUrrun3HtxcTRbM6EtC0jf5blWDwrZddf/YBk6z7yMWT -EbbH8RRCzgEoFg69epQsuF4Wa63+k/F3GVvYU2kwGrypvT9TqgKSPas7jfcRW8XM -q/LH2cAbAgMBAAECggEAI8KitHqNNls6Z2YnjV6U93on/3jnPtSAZn6urXg4kW9w -3Mp5utF+HgZnc3T5KbGURUDttqJNI7/JqkJVSAxttDxZq3oql9L/r5hs0p1PL+mP -0AZVfn3QZJH+EQT1RHPbxtL/lEP0u0DjKe/SoKhqmoWfCPskVpa0/5mDMOlU2VJ3 -ARdQcFlaUyq66sfEo+sTa+RYBlbtRUfyCW6HBlLBeowWpGjridULTMS9WQUA2wIw -wSFofg374aB8TdYsv5lsU+innHUQ/PK/5+8j7btUXGpsl8d8bvkym8w6Jsf9RC+P -NyGlG3nit7xakWMO6B+J8PMV5BzX0+lFr8mnfg+RwQKBgQDrshNmVxg0MkT/L6+7 -Eb0S4HfdGLxOtneWsgkPtUjp5Bax6S0uGY9KOpce7Vxw417r6yhDjQxf7Gr/ejme -diawv5hvtYortPHu6WMMRhDPC3d1ycs6b+UhkD6QE/YLU4ceezDolc4eJuhsTDMp -ro4JxzTz6X28Zq0BDni9OVso2wKBgQDFWZNKXHc/KPN5q0Xh6oMSN25v8mtx5xG4 -lrCysZKoHpK2ziwHtaOJPZejMPDxRjXbe7+GxNekV8ESEPPeEiB9ie2v0LZs5zhk -CAFpevRDwKVO4TaXPmXkWyRQSXNNa7Du6k5monPdBSVyZg+wxwyWxIYLep3cRyqf -m4eu/OTJwQKBgQDVO48XiHYKSuxnHiJTEPJIkLGAYq+CWswIltthzbXAfK0XmghY -66DaG/W6ci2up9WphF8x9fqbEc2fgll8hhHs1/m2Hrx5XEOAzL7iTMVKO2qBMuZc -4PygB9rCCH0RtCjLJ9KQqW8HklW2HJ4w+I3iRMogXT5240Fjck9Dig9x/wKBgQCR -FIfua8mSWhWbxWira46N7sg2bh3E750ceVNPGrH4+/jZgPnndQXTV79JTipjBT2E -rBWiCsWI4KZkFKhjAip2f9aHoMTrjJPtHeGD3MsDn/Um5vQN/eZEGSi6CTVFnjzF -duTKGPVab3UXA6bXS42arMDqYWr5zCuuiFUYNHwxQQKBgQC9D+dpMfDaFpjxYyi9 -PK2rnzGeYvkN/I6bx/JqwZEKwiYbdTGmVcdi8HVY09051lB2GTnD6E4WcEuQ0j8N -D6a9v8sraRGEeByfvoZOzkplpnORsRJdN9ZmGhZ8R+fXX4piC+et+Ei8oCxviNJA -F3SNL0UoerZ8xuM5Z+lZaIpzew== ------END PRIVATE KEY----- \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/css/error.css b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/css/error.css deleted file mode 100644 index c65334c7..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/css/error.css +++ /dev/null @@ -1,45 +0,0 @@ -.text-danger { - --bs-text-opacity: 1; - color: rgba(var(--bs-danger-rgb),var(--bs-text-opacity)) !important -} - -.valid.modified:not([type=checkbox]) { - outline: 1px solid #26b050; -} - -.invalid { - outline: 1px solid red; -} - -.validation-message { - color: red; -} - -#blazor-error-ui { - background: lightyellow; - bottom: 0; - box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); - display: none; - left: 0; - padding: 0.6rem 1.25rem 0.7rem 1.25rem; - position: fixed; - width: 100%; - z-index: 1000; -} - - #blazor-error-ui .dismiss { - cursor: pointer; - position: absolute; - right: 0.75rem; - top: 0.5rem; - } - -.blazor-error-boundary { - background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121; - padding: 1rem 1rem 1rem 3.7rem; - color: white; -} - - .blazor-error-boundary::after { - content: "An error has occurred." - } diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/favicon.ico b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/favicon.ico deleted file mode 100644 index 63e859b476eff5055e0e557aaa151ca8223fbeef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5430 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/10.svg b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/10.svg deleted file mode 100644 index 082ab6ea..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/10.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/11.svg b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/11.svg deleted file mode 100644 index ed6e9b2a..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/11.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/12.svg b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/12.svg deleted file mode 100644 index 74fb5900..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/12.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/13.svg b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/13.svg deleted file mode 100644 index 93b28c41..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/13.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/14.svg b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/14.svg deleted file mode 100644 index fd688f93..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/14.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/2.svg b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/2.svg deleted file mode 100644 index f4a8944d..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/2.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/3.svg b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/3.svg deleted file mode 100644 index b2e10605..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/3.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/4.svg b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/4.svg deleted file mode 100644 index 58e0cfe7..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/4.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/7.svg b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/7.svg deleted file mode 100644 index 6cefecfb..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/7.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/8.svg b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/8.svg deleted file mode 100644 index 6f2032cb..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/8.svg +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/9.svg b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/9.svg deleted file mode 100644 index cb45b1e5..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/img/avatar/9.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/nav/nav.json b/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/nav/nav.json deleted file mode 100644 index 852d382c..00000000 --- a/src/Web/Masa.Mc.Web.Admin.Server/wwwroot/nav/nav.json +++ /dev/null @@ -1,58 +0,0 @@ -[ - { - "Id": 1, - "Title": "Permission.ChannelManagement", - "Icon": "mdi-cellphone", - "Href": "channels/channelManagement" - }, - { - "Id": 2, - "Title": "Permission.MessageManagement", - "Icon": "mdi-animation", - "Children": [ - { - "Id": 3, - "Title": "Permission.SendMessage", - "Icon": "mdi-circle", - "Href": "messageTasks/sendMessage" - }, - { - "Id": 4, - "Title": "Permission.MessageRecord", - "Icon": "mdi-circle", - "Href": "messageRecords/messageRecordManagement" - } - ] - }, - { - "Id": 5, - "Title": "Permission.MessageTemplateManagement", - "Icon": "mdi-image-filter-none", - "Children": [ - { - "Id": 6, - "Title": "Sms", - "Icon": "mdi-circle", - "Href": "messageTemplates/smsTemplateManagement" - }, - { - "Id": 7, - "Title": "Email", - "Icon": "mdi-circle", - "Href": "messageTemplates/emailTemplateManagement" - }, - { - "Id": 8, - "Title": "WebsiteMessage", - "Icon": "mdi-circle", - "Href": "messageTemplates/websiteMessageTemplateManagement" - } - ] - }, - { - "Id": 9, - "Title": "Permission.ReceiverGroupManagement", - "Icon": "mdi-account-group", - "Href": "receiverGroups/receiverGroupManagement" - } -] diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/Masa.Mc.Web.Admin.WebAssembly.csproj b/src/Web/Masa.Mc.Web.Admin.WebAssembly/Masa.Mc.Web.Admin.WebAssembly.csproj deleted file mode 100644 index c1b4d78a..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/Masa.Mc.Web.Admin.WebAssembly.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - net6.0 - enable - enable - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/Program.cs b/src/Web/Masa.Mc.Web.Admin.WebAssembly/Program.cs deleted file mode 100644 index 00321f05..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/Program.cs +++ /dev/null @@ -1,25 +0,0 @@ -using Masa.Mc.Web.Admin; -using Masa.Mc.Web.Admin.WebAssembly; -using Microsoft.AspNetCore.Components.Authorization; -using Microsoft.AspNetCore.Components.Web; -using Microsoft.AspNetCore.Components.WebAssembly.Hosting; - -var builder = WebAssemblyHostBuilder.CreateDefault(args); - -builder.Services.AddAuthorizationCore(); -builder.Services.AddScoped(); - -await builder.Services.AddGlobalForWasmAsync(builder.HostEnvironment.BaseAddress); - -builder.RootComponents.Add(typeof(App), "#app"); -builder.RootComponents.Add("head::after"); -builder.Services.AddMasaBlazor(builder => -{ - builder.UseTheme(option => - { - option.Primary = "#4318FF"; - option.Accent = "#4318FF"; - }); -}); - -await builder.Build().RunAsync(); diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/Properties/launchSettings.json b/src/Web/Masa.Mc.Web.Admin.WebAssembly/Properties/launchSettings.json deleted file mode 100644 index cdbf583f..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/Properties/launchSettings.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:9877", - "sslPort": 44650 - } - }, - "profiles": { - "Masa.Mc.Web.Admin": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "applicationUrl": "https://localhost:7362;http://localhost:5362", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/TestAuthStateProvider.cs b/src/Web/Masa.Mc.Web.Admin.WebAssembly/TestAuthStateProvider.cs deleted file mode 100644 index 221b710e..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/TestAuthStateProvider.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Microsoft.AspNetCore.Components.Authorization; -using System.Security.Claims; - -namespace Masa.Mc.Web.Admin.WebAssembly -{ - public class TestAuthStateProvider : AuthenticationStateProvider - { - public async override Task GetAuthenticationStateAsync() - { - var anonymous = new ClaimsIdentity(); - return await Task.FromResult(new AuthenticationState(new ClaimsPrincipal(anonymous))); - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/css/app.css b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/css/app.css deleted file mode 100644 index 18df7679..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/css/app.css +++ /dev/null @@ -1,33 +0,0 @@ -#blazor-error-ui { - background: lightyellow; - bottom: 0; - box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); - display: none; - left: 0; - padding: 0.6rem 1.25rem 0.7rem 1.25rem; - position: fixed; - width: 100%; - z-index: 1000; -} - -#blazor-error-ui .dismiss { - cursor: pointer; - position: absolute; - right: 0.75rem; - top: 0.5rem; -} - -.modal-overlay { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - background-color: #F0F3FA; - z-index: 2000; - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - --sk-color: #4318FF; -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/css/spinkit.min.css b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/css/spinkit.min.css deleted file mode 100644 index 248e1c3e..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/css/spinkit.min.css +++ /dev/null @@ -1 +0,0 @@ -:root{--sk-size:40px;--sk-color:#333}.sk-center{margin:auto}.sk-plane{width:var(--sk-size);height:var(--sk-size);background-color:var(--sk-color);animation:sk-plane 1.2s infinite ease-in-out}@keyframes sk-plane{0%{transform:perspective(120px) rotateX(0) rotateY(0)}50%{transform:perspective(120px) rotateX(-180.1deg) rotateY(0)}100%{transform:perspective(120px) rotateX(-180deg) rotateY(-179.9deg)}}.sk-chase{width:var(--sk-size);height:var(--sk-size);position:relative;animation:sk-chase 2.5s infinite linear both}.sk-chase-dot{width:100%;height:100%;position:absolute;left:0;top:0;animation:sk-chase-dot 2.0s infinite ease-in-out both}.sk-chase-dot:before{content:'';display:block;width:25%;height:25%;background-color:var(--sk-color);border-radius:100%;animation:sk-chase-dot-before 2.0s infinite ease-in-out both}.sk-chase-dot:nth-child(1){animation-delay:-1.1s}.sk-chase-dot:nth-child(2){animation-delay:-1.0s}.sk-chase-dot:nth-child(3){animation-delay:-0.9s}.sk-chase-dot:nth-child(4){animation-delay:-0.8s}.sk-chase-dot:nth-child(5){animation-delay:-0.7s}.sk-chase-dot:nth-child(6){animation-delay:-0.6s}.sk-chase-dot:nth-child(1):before{animation-delay:-1.1s}.sk-chase-dot:nth-child(2):before{animation-delay:-1.0s}.sk-chase-dot:nth-child(3):before{animation-delay:-0.9s}.sk-chase-dot:nth-child(4):before{animation-delay:-0.8s}.sk-chase-dot:nth-child(5):before{animation-delay:-0.7s}.sk-chase-dot:nth-child(6):before{animation-delay:-0.6s}@keyframes sk-chase{100%{transform:rotate(360deg)}}@keyframes sk-chase-dot{80%,100%{transform:rotate(360deg)}}@keyframes sk-chase-dot-before{50%{transform:scale(0.4)}100%,0%{transform:scale(1.0)}}.sk-bounce{width:var(--sk-size);height:var(--sk-size);position:relative}.sk-bounce-dot{width:100%;height:100%;border-radius:50%;background-color:var(--sk-color);opacity:.6;position:absolute;top:0;left:0;animation:sk-bounce 2s infinite cubic-bezier(0.455,0.03,0.515,0.955)}.sk-bounce-dot:nth-child(2){animation-delay:-1.0s}@keyframes sk-bounce{0%,100%{transform:scale(0)}45%,55%{transform:scale(1)}}.sk-wave{width:var(--sk-size);height:var(--sk-size);display:flex;justify-content:space-between}.sk-wave-rect{background-color:var(--sk-color);height:100%;width:15%;animation:sk-wave 1.2s infinite ease-in-out}.sk-wave-rect:nth-child(1){animation-delay:-1.2s}.sk-wave-rect:nth-child(2){animation-delay:-1.1s}.sk-wave-rect:nth-child(3){animation-delay:-1.0s}.sk-wave-rect:nth-child(4){animation-delay:-0.9s}.sk-wave-rect:nth-child(5){animation-delay:-0.8s}@keyframes sk-wave{0%,40%,100%{transform:scaleY(0.4)}20%{transform:scaleY(1)}}.sk-pulse{width:var(--sk-size);height:var(--sk-size);background-color:var(--sk-color);border-radius:100%;animation:sk-pulse 1.2s infinite cubic-bezier(0.455,0.03,0.515,0.955)}@keyframes sk-pulse{0%{transform:scale(0)}100%{transform:scale(1);opacity:0}}.sk-flow{width:calc(var(--sk-size) * 1.3);height:calc(var(--sk-size) * 1.3);display:flex;justify-content:space-between}.sk-flow-dot{width:25%;height:25%;background-color:var(--sk-color);border-radius:50%;animation:sk-flow 1.4s cubic-bezier(0.455,0.03,0.515,0.955) 0s infinite both}.sk-flow-dot:nth-child(1){animation-delay:-0.30s}.sk-flow-dot:nth-child(2){animation-delay:-0.15s}@keyframes sk-flow{0%,80%,100%{transform:scale(0.3)}40%{transform:scale(1)}}.sk-swing{width:var(--sk-size);height:var(--sk-size);position:relative;animation:sk-swing 1.8s infinite linear}.sk-swing-dot{width:45%;height:45%;position:absolute;top:0;left:0;right:0;margin:auto;background-color:var(--sk-color);border-radius:100%;animation:sk-swing-dot 2s infinite ease-in-out}.sk-swing-dot:nth-child(2){top:auto;bottom:0;animation-delay:-1s}@keyframes sk-swing{100%{transform:rotate(360deg)}}@keyframes sk-swing-dot{0%,100%{transform:scale(0.2)}50%{transform:scale(1)}}.sk-circle{width:var(--sk-size);height:var(--sk-size);position:relative}.sk-circle-dot{width:100%;height:100%;position:absolute;left:0;top:0}.sk-circle-dot:before{content:'';display:block;width:15%;height:15%;background-color:var(--sk-color);border-radius:100%;animation:sk-circle 1.2s infinite ease-in-out both}.sk-circle-dot:nth-child(1){transform:rotate(30deg)}.sk-circle-dot:nth-child(2){transform:rotate(60deg)}.sk-circle-dot:nth-child(3){transform:rotate(90deg)}.sk-circle-dot:nth-child(4){transform:rotate(120deg)}.sk-circle-dot:nth-child(5){transform:rotate(150deg)}.sk-circle-dot:nth-child(6){transform:rotate(180deg)}.sk-circle-dot:nth-child(7){transform:rotate(210deg)}.sk-circle-dot:nth-child(8){transform:rotate(240deg)}.sk-circle-dot:nth-child(9){transform:rotate(270deg)}.sk-circle-dot:nth-child(10){transform:rotate(300deg)}.sk-circle-dot:nth-child(11){transform:rotate(330deg)}.sk-circle-dot:nth-child(1):before{animation-delay:-1.1s}.sk-circle-dot:nth-child(2):before{animation-delay:-1s}.sk-circle-dot:nth-child(3):before{animation-delay:-0.9s}.sk-circle-dot:nth-child(4):before{animation-delay:-0.8s}.sk-circle-dot:nth-child(5):before{animation-delay:-0.7s}.sk-circle-dot:nth-child(6):before{animation-delay:-0.6s}.sk-circle-dot:nth-child(7):before{animation-delay:-0.5s}.sk-circle-dot:nth-child(8):before{animation-delay:-0.4s}.sk-circle-dot:nth-child(9):before{animation-delay:-0.3s}.sk-circle-dot:nth-child(10):before{animation-delay:-0.2s}.sk-circle-dot:nth-child(11):before{animation-delay:-0.1s}@keyframes sk-circle{0%,80%,100%{transform:scale(0)}40%{transform:scale(1)}}.sk-circle-fade{width:var(--sk-size);height:var(--sk-size);position:relative}.sk-circle-fade-dot{width:100%;height:100%;position:absolute;left:0;top:0}.sk-circle-fade-dot:before{content:'';display:block;width:15%;height:15%;background-color:var(--sk-color);border-radius:100%;animation:sk-circle-fade 1.2s infinite ease-in-out both}.sk-circle-fade-dot:nth-child(1){transform:rotate(30deg)}.sk-circle-fade-dot:nth-child(2){transform:rotate(60deg)}.sk-circle-fade-dot:nth-child(3){transform:rotate(90deg)}.sk-circle-fade-dot:nth-child(4){transform:rotate(120deg)}.sk-circle-fade-dot:nth-child(5){transform:rotate(150deg)}.sk-circle-fade-dot:nth-child(6){transform:rotate(180deg)}.sk-circle-fade-dot:nth-child(7){transform:rotate(210deg)}.sk-circle-fade-dot:nth-child(8){transform:rotate(240deg)}.sk-circle-fade-dot:nth-child(9){transform:rotate(270deg)}.sk-circle-fade-dot:nth-child(10){transform:rotate(300deg)}.sk-circle-fade-dot:nth-child(11){transform:rotate(330deg)}.sk-circle-fade-dot:nth-child(1):before{animation-delay:-1.1s}.sk-circle-fade-dot:nth-child(2):before{animation-delay:-1.0s}.sk-circle-fade-dot:nth-child(3):before{animation-delay:-0.9s}.sk-circle-fade-dot:nth-child(4):before{animation-delay:-0.8s}.sk-circle-fade-dot:nth-child(5):before{animation-delay:-0.7s}.sk-circle-fade-dot:nth-child(6):before{animation-delay:-0.6s}.sk-circle-fade-dot:nth-child(7):before{animation-delay:-0.5s}.sk-circle-fade-dot:nth-child(8):before{animation-delay:-0.4s}.sk-circle-fade-dot:nth-child(9):before{animation-delay:-0.3s}.sk-circle-fade-dot:nth-child(10):before{animation-delay:-0.2s}.sk-circle-fade-dot:nth-child(11):before{animation-delay:-0.1s}@keyframes sk-circle-fade{0%,39%,100%{opacity:0;transform:scale(0.6)}40%{opacity:1;transform:scale(1)}}.sk-grid{width:var(--sk-size);height:var(--sk-size)}.sk-grid-cube{width:33.33%;height:33.33%;background-color:var(--sk-color);float:left;animation:sk-grid 1.3s infinite ease-in-out}.sk-grid-cube:nth-child(1){animation-delay:.2s}.sk-grid-cube:nth-child(2){animation-delay:.3s}.sk-grid-cube:nth-child(3){animation-delay:.4s}.sk-grid-cube:nth-child(4){animation-delay:.1s}.sk-grid-cube:nth-child(5){animation-delay:.2s}.sk-grid-cube:nth-child(6){animation-delay:.3s}.sk-grid-cube:nth-child(7){animation-delay:0s}.sk-grid-cube:nth-child(8){animation-delay:.1s}.sk-grid-cube:nth-child(9){animation-delay:.2s}@keyframes sk-grid{0%,70%,100%{transform:scale3D(1,1,1)}35%{transform:scale3D(0,0,1)}}.sk-fold{width:var(--sk-size);height:var(--sk-size);position:relative;transform:rotateZ(45deg)}.sk-fold-cube{float:left;width:50%;height:50%;position:relative;transform:scale(1.1)}.sk-fold-cube:before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--sk-color);animation:sk-fold 2.4s infinite linear both;transform-origin:100% 100%}.sk-fold-cube:nth-child(2){transform:scale(1.1) rotateZ(90deg)}.sk-fold-cube:nth-child(4){transform:scale(1.1) rotateZ(180deg)}.sk-fold-cube:nth-child(3){transform:scale(1.1) rotateZ(270deg)}.sk-fold-cube:nth-child(2):before{animation-delay:.3s}.sk-fold-cube:nth-child(4):before{animation-delay:.6s}.sk-fold-cube:nth-child(3):before{animation-delay:.9s}@keyframes sk-fold{0%,10%{transform:perspective(140px) rotateX(-180deg);opacity:0}25%,75%{transform:perspective(140px) rotateX(0);opacity:1}90%,100%{transform:perspective(140px) rotateY(180deg);opacity:0}}.sk-wander{width:var(--sk-size);height:var(--sk-size);position:relative}.sk-wander-cube{background-color:var(--sk-color);width:20%;height:20%;position:absolute;top:0;left:0;--sk-wander-distance:calc(var(--sk-size) * 0.75);animation:sk-wander 2.0s ease-in-out -2.0s infinite both}.sk-wander-cube:nth-child(2){animation-delay:-0.5s}.sk-wander-cube:nth-child(3){animation-delay:-1.0s}@keyframes sk-wander{0%{transform:rotate(0)}25%{transform:translateX(var(--sk-wander-distance)) rotate(-90deg) scale(0.6)}50%{transform:translateX(var(--sk-wander-distance)) translateY(var(--sk-wander-distance)) rotate(-179deg)}50.1%{transform:translateX(var(--sk-wander-distance)) translateY(var(--sk-wander-distance)) rotate(-180deg)}75%{transform:translateX(0) translateY(var(--sk-wander-distance)) rotate(-270deg) scale(0.6)}100%{transform:rotate(-360deg)}} diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/decode.min.js b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/decode.min.js deleted file mode 100644 index faf2e423..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/decode.min.js +++ /dev/null @@ -1,2605 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - brotli/decode.min.js at master · google/brotli - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -
- - - -
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- -
- - - google  /   - brotli  /   - -
- - - - Type # for issues and pull requests, > for commands, and ? for help - - - Type # for issues, pull requests, and projects, > for commands, and ? for help - - - Type # for issues, pull requests, and projects, / for files, and > for commands - - -
- -
-
- We’ve encountered an error and some results aren't available at this time. Type a new search or try again later. -
-
- - No results matched your search - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - Search for issues and pull requests - - # - - - - Search for issues, pull requests, discussions, and projects - - # - - - - Search for organizations, repositories, and users - - @ - - - - Search for projects - - ! - - - - Search for files - - / - - - - Activate command mode - - > - - - - Search your issues, pull requests, and discussions - - # author:@me - - - - Search your issues, pull requests, and discussions - - # author:@me - - - - Filter to pull requests - - # is:pr - - - - Filter to issues - - # is:issue - - - - Filter to discussions - - # is:discussion - - - - Filter to projects - - # is:project - - - - Filter to open issues, pull requests, and discussions - - # is:open - - - - - - - - - - - - - - - - -
-
-
- -
- - - - - - - - - - -
- - - - -
-
-
- - - - - - - - - - - - - - - - -
- -
- -
-

- - - / - - brotli - - - Public -

- -
- -
    - -
  • - -
    - - - - - - - Watch - - - 347 - - - -
    -
    -

    Messages

    - -
    - -
    -
    - - - - - - - - -
    - - -
    - - - - - Get push messages on iOS or Android. - -
    -
    -
    -
    - - -
    -
    -
    - - - -
  • - -
  • -
    -
    - Fork - 1k - - -
    - -

    Fork brotli

    -
    - -
    - - - - - -

    If this dialog fails to load, you can visit the fork page directly.

    -
    -
    - -
    -
    -
    - -
  • - -
  • - -
    -
    - -
    -
    - -
    -
    - - - - - -
    - -
    -
    - - - - - - - -
    - -
    -
    -
    -
    -
    -
  • - -
  • - - -
  • -
- -
- -
-
- - - - -
- - - -
-
- - Open in github.dev - Open in a new github.dev tab - - - - - - - -
- - - - - Permalink - - -
- -
-
- - - master - - - - -
-
-
- Switch branches/tags - -
- - - -
- -
- -
- - -
- -
- - - - - - - - - - - - - - - - -
- - -
-
-
-
- -
- -
- - - - Go to file - - -
- - - - -
-
-
- - - - -
- -
-
-
 
-
- -
-
 
- Cannot retrieve contributors at this time -
-
- - - - - - - - - - - -
- -
- - -
- - 1 lines (1 sloc) - - 146 KB -
- -
- - - - -
- - - - - - - - - - - - - - - -
- -
-
- -
-
- -
- -
-
- - - -
- - -
- - - - - - - - - -
export let BrotliDecode=(()=>{function f(f){this.data=f,this.offset=0}let w=Int32Array.from([256,402,436,468,500,534,566,598,630,662,694,726,758,790,822,854,886,920,952,984,1016,1048,1080]),b=Int32Array.from([1,2,3,4,0,5,17,6,16,7,8,9,10,11,12,13,14,15]),j=Int32Array.from([0,3,2,1,0,0,0,0,0,0,3,3,3,3,3,3]),l=Int32Array.from([0,0,0,0,-1,1,-2,2,-3,3,-1,1,-2,2,-3,3]),m=Int32Array.from([131072,131076,131075,196610,131072,131076,131075,262145,131072,131076,131075,196610,131072,131076,131075,262149]),p=Int32Array.from([1,5,9,13,17,25,33,41,49,65,81,97,113,145,177,209,241,305,369,497,753,1265,2289,4337,8433,16625]),q=Int32Array.from([2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,7,8,9,10,11,12,13,24]),o=Int16Array.from([0,0,0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,7,8,9,10,12,14,24]),n=Int16Array.from([0,0,0,0,0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,7,8,9,10,24]),g=new Int16Array(2816);function k(f){let w=-1,b=16;for(;b>0;)f>>>b!=0&&(w+=b,f>>>=b),b>>=1;return w+f}function s(f,w,b){return 16+w+2*(b<<f)}function v(f,w,b){if(f<b+(2<<w))throw"maxDistance is too small";let j=4+(f-b>>w),l=k(j)-1;return((l-1<<1|j>>l&1)-1<<w)+(1<<w)+b+16}function t(f,w){if(0!=f.j)throw"State MUST be uninitialized";f.l=new Int32Array(3091),f.l[0]=7,f.m=3;let b=v(2147483644,3,120);f.p=new Int8Array(b),f.q=new Int32Array(b),f.input=w,function(f){f.o=new Int8Array(4160),f.g=0,f.k=new Int16Array(2080),f.s=32,f.v=2048,f.t=0,E(f)}(f),f.j=1}function e(f){if(f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),0!=_(f,1)){let w=_(f,3);return 0==w?1:_(f,w)+(1<<w)}return 0}function d(f,w,b){let j=f[w],l=b.g>>>b.s;j+=255&l;let m=f[j]>>16,p=65535&f[j];return m<=8?(b.s+=m,p):(j+=p,j+=(l&(1<<m)-1)>>>8,b.s+=8+(f[j]>>16),65535&f[j])}function H(f,w,b){b.s>=16&&(b.g=b.k[b.v++]<<16|b.g>>>16,b.s-=16);let j=d(f,w,b),l=q[j];return b.s>=16&&(b.g=b.k[b.v++]<<16|b.g>>>16,b.s-=16),p[j]+(l<=16?_(b,l):X(b,l))}function a(f,w){let b=f[w];for(;w>0;w--)f[w]=f[w-1];f[0]=b}function u(f,w,j,l,p){let q=new Int32Array(f),o=new Int32Array(18),n=32,g=0;for(let f=w;f<18&&n>0;f++){let w=b[f];p.s>=16&&(p.g=p.k[p.v++]<<16|p.g>>>16,p.s-=16);let j=p.g>>>p.s&15;p.s+=m[j]>>16;let l=65535&m[j];o[w]=l,0!=l&&(n-=32>>l,g++)}if(0!=n&&1!=g)throw"Corrupted Huffman code histogram";return function(f,w,b,j){let l=0,m=8,p=0,q=0,o=32768,n=new Int32Array(33);for(c(n,n.length-1,5,f,18);l<w&&o>0;){j.v>2030&&C(j),j.s>=16&&(j.g=j.k[j.v++]<<16|j.g>>>16,j.s-=16);let f=j.g>>>j.s&31;j.s+=n[f]>>16;let g=65535&n[f];if(g<16)p=0,b[l++]=g,0!=g&&(m=g,o-=32768>>g);else{let f=g-14,n=0;16==g&&(n=m),q!=n&&(p=0,q=n);let k=p;p>0&&(p-=2,p<<=f),j.s>=16&&(j.g=j.k[j.v++]<<16|j.g>>>16,j.s-=16),p+=_(j,f)+3;let s=p-k;if(l+s>w)throw"symbol + repeatDelta > numSymbols";for(let f=0;f<s;f++)b[l++]=q;0!=q&&(o-=s<<15-q)}}if(0!=o)throw"Unused space";b.fill(0,l,w)}(o,f,q,p),c(j,l,8,q,f)}function z(f,w,b,j,l){l.v>2030&&C(l),l.s>=16&&(l.g=l.k[l.v++]<<16|l.g>>>16,l.s-=16);let m=_(l,2);return 1==m?function(f,w,b,j,l){let m=new Int32Array(w),p=new Int32Array(4),q=1+k(f-1),o=_(l,2)+1;for(let f=0;f<o;f++){l.s>=16&&(l.g=l.k[l.v++]<<16|l.g>>>16,l.s-=16);let b=_(l,q);if(b>=w)throw"Can't readHuffmanCode";p[f]=b}!function(f,w){for(let b=0;b<w-1;++b)for(let j=b+1;j<w;++j)if(f[b]==f[j])throw"Duplicate simple Huffman code symbol"}(p,o);let n=o;switch(4==o&&(n+=_(l,1)),n){case 1:m[p[0]]=1;break;case 2:m[p[0]]=1,m[p[1]]=1;break;case 3:m[p[0]]=1,m[p[1]]=2,m[p[2]]=2;break;case 4:m[p[0]]=2,m[p[1]]=2,m[p[2]]=2,m[p[3]]=2;break;case 5:m[p[0]]=1,m[p[1]]=2,m[p[2]]=3,m[p[3]]=3}return c(b,j,8,m,w)}(f,w,b,j,l):u(w,m,b,j,l)}function h(f,b,j){j.v>2030&&C(j);let l=e(j)+1;if(1==l)return b.fill(0,0,f),l;j.s>=16&&(j.g=j.k[j.v++]<<16|j.g>>>16,j.s-=16);let m=0;0!=_(j,1)&&(m=_(j,4)+1);let p=l+m,q=w[p+31>>5],o=new Int32Array(q+1),n=o.length-1;z(p,p,o,n,j);for(let w=0;w<f;){j.v>2030&&C(j),j.s>=16&&(j.g=j.k[j.v++]<<16|j.g>>>16,j.s-=16);let l=d(o,n,j);if(0==l)b[w]=0,w++;else if(l<=m){j.s>=16&&(j.g=j.k[j.v++]<<16|j.g>>>16,j.s-=16);let m=(1<<l)+_(j,l);for(;0!=m;){if(w>=f)throw"Corrupted context map";b[w]=0,w++,m--}}else b[w]=l-m,w++}return j.s>=16&&(j.g=j.k[j.v++]<<16|j.g>>>16,j.s-=16),1==_(j,1)&&function(f,w){let b=new Int32Array(256);for(let f=0;f<256;f++)b[f]=f;for(let j=0;j<w;j++){let w=255&f[j];f[j]=b[w],0!=w&&a(b,w)}}(b,f),l}function i(f,w,b){let j=f.H,l=4+2*w;f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);let m=d(f.l,2*w,f),p=H(f.l,2*w+1,f);return 1==m?m=j[l+1]+1:0==m?m=j[l]:m-=2,m>=b&&(m-=b),j[l]=j[l+1],j[l+1]=m,p}function r(f){f.u=i(f,0,f.h);let w=f.H[5];f.i=w<<6,f.I=255&f.R[f.i];let b=f.K[w];f.T=b<<9,f.W=f.T+256}function I(f){f.B=i(f,1,f.Y),f.S=f.H[7]}function R(f){f.A=i(f,2,f.V),f.D=f.H[9]<<2}function K(f){if(0!=f.F)return f.P=10,void(f.j=12);f.U=new Int32Array(0),f.C=new Int32Array(0),f.J=new Int32Array(0),f.v>2030&&C(f),function(f){if(f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),f.F=_(f,1),f._=0,f.X=0,f.M=0,0!=f.F&&0!=_(f,1))return;let w=_(f,2)+4;if(7==w){if(f.M=1,0!=_(f,1))throw"Corrupted reserved bit";let w=_(f,2);if(0==w)return;for(let b=0;b<w;b++){f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);let j=_(f,8);if(0==j&&b+1==w&&w>1)throw"Exuberant nibble";f._|=j<<8*b}}else for(let b=0;b<w;b++){f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);let j=_(f,4);if(0==j&&b+1==w&&w>4)throw"Exuberant nibble";f._|=j<<4*b}f._++,0==f.F&&(f.X=_(f,1))}(f),0==f._&&0==f.M||(0!=f.X||0!=f.M?(G(f),f.j=0!=f.M?5:6):f.j=3,0==f.M&&(f.G+=f._,f.G>1<<30&&(f.G=1<<30),f.O<f.Z&&function(f){let w=f.Z;if(w>f.G){let b=f.G;for(;w>>1>b;)w>>=1;0==f.F&&w<16384&&f.Z>=16384&&(w=16384)}if(w<=f.O)return;let b=new Int8Array(w+37);0!=f.L.length&&b.set(f.L.subarray(0,0+f.O),0),f.L=b,f.O=w}(f)))}function T(f,w,b){let j=f.l[2*w];if(b<=1)return f.l[2*w+1]=j,f.l[2*w+2]=j,1<<28;let l=b+2;j+=z(l,l,f.l,2*w,f),f.l[2*w+1]=j;return j+=z(26,26,f.l,2*w+1,f),f.l[2*w+2]=j,H(f.l,2*w+1,f)}function y(f){f.h=e(f)+1,f.u=T(f,0,f.h),f.Y=e(f)+1,f.B=T(f,1,f.Y),f.V=e(f)+1,f.A=T(f,2,f.V),f.v>2030&&C(f),f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),f.N=_(f,2),f.$=_(f,4)<<f.N,f.K=new Int8Array(f.h);for(let w=0;w<f.h;){let b=ff(w+96,f.h);for(;w<b;++w)f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),f.K[w]=_(f,2);f.v>2030&&C(f)}f.R=new Int8Array(f.h<<6);let w=h(f.h<<6,f.R,f);f.ff=1;for(let w=0;w<f.h<<6;w++)if(f.R[w]!=w>>6){f.ff=0;break}f.wf=new Int8Array(f.V<<2);let b=h(f.V<<2,f.wf,f);f.U=Y(256,256,w,f),f.C=Y(704,704,f.Y,f);let j=s(f.N,f.$,24),l=j;1==f.bf&&(j=s(f.N,f.$,62),l=v(2147483644,f.N,f.$)),f.J=Y(j,l,b,f),function(f,w){let b=f.p,j=f.q,l=f.N,m=f.$,p=1<<l,q=1,o=0,n=16;for(let f=0;f<m;++f)b[n]=0,j[n]=f+1,++n;for(;n<w;){let f=m+((2+o<<q)-4<<l)+1;for(let w=0;w<p;++w)b[n]=q,j[n]=f+w,++n;q+=o,o^=1}}(f,l),f.i=0,f.D=0,f.T=512*f.K[0],f.W=f.T+256,f.I=0,f.S=0,f.H[4]=1,f.H[5]=0,f.H[6]=1,f.H[7]=0,f.H[8]=1,f.H[9]=0}function W(f){let w=f.L;if(f._<=0)return M(f),void(f.j=2);let b=ff(f.O-f.jf,f._);if(function(f,w,b,j){if(0!=(7&f.s))throw"Unaligned copyBytes";for(;32!=f.s&&0!=j;)w[b++]=f.g>>>f.s,f.s+=8,j--;if(0==j)return;let l=ff(x(f),j>>1);if(l>0){let m=f.v<<1,p=l<<1;w.set(f.o.subarray(m,m+p),b),b+=p,j-=p,f.v+=l}if(0==j)return;if(x(f)>0){for(f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);0!=j;)w[b++]=f.g>>>f.s,f.s+=8,j--;return void J(f,0)}for(;j>0;){let l=wf(f.input,w,b,j);if(-1==l)throw"Unexpected end of input";b+=l,j-=l}}(f,w,f.jf,b),f._-=b,f.jf+=b,f.jf==f.O)return f.P=6,void(f.j=12);M(f),f.j=2}function B(f){let w=ff(f.lf-f.mf,f.pf-f.qf);return 0!=w&&(f.nf.set(f.L.subarray(f.qf,f.qf+w),f.gf+f.mf),f.mf+=w,f.qf+=w),f.mf<f.lf?1:0}function Y(f,b,j,l){let m=w[b+31>>5],p=new Int32Array(j+j*m),q=j;for(let w=0;w<j;++w)p[w]=q,q+=z(f,b,p,w,l);return p}function S(f){let w=f.O;return 0!=f.kf&&(w=ff(w,f.qf+f.lf-f.mf)),w}function A(f,w){if(f.sf>2147483644)throw"Invalid backward reference";let b=f.sf-f.maxDistance-1-f.vf;if(b<0)!function(f,w,b){-1==f.tf&&function(f){f.ef=new Int8Array(256);let w=8;for(;f.vf-1>>>w!=0;)w++;w-=8,f.tf=w;let b=0,j=0;for(;b<f.vf;){for(;f.df[j+1]<b;)j++;f.ef[b>>>w]=j,b+=1<<w}}(f);let j=f.ef[w>>>f.tf];for(;w>=f.df[j+1];)j++;if(f.vf>w+b)throw"Invalid backward reference";f.m=f.m+1&3,f.H[f.m]=f.sf,f._-=b,f.Hf=j,f.af=w-f.df[j],f.uf=b,f.zf=0}(f,-b-1,f.hf),f.j=14;else{let j=L,l=f.hf;if(l>31)throw"Invalid backward reference";let m=$[l];if(0==m)throw"Invalid backward reference";let p=N[l],q=b>>>m;p+=(b&(1<<m)-1)*l;let o=F;if(q>=o.if)throw"Invalid backward reference";let n=function(f,w,b,j,l,m,p){let q=w,o=m.rf,n=m.If,g=m.Rf,k=3*p,s=o[k],v=o[k+1],t=o[k+2],e=g[s],d=g[s+1],H=g[t],a=g[t+1],u=v-11,z=v-0;(u<1||u>9)&&(u=0);(z<1||z>9)&&(z=0);for(;e!=d;)f[q++]=n[e++];u>l&&(u=l);j+=u,l-=u;let h=l-=z;for(;h>0;)f[q++]=b[j++],h--;if(10==v||11==v){let w=q-l;for(10==v&&(l=1);l>0;){let b=255&f[w];b<192?(b>=97&&b<=122&&(f[w]^=32),w+=1,l-=1):b<224?(f[w+1]^=32,w+=2,l-=2):(f[w+2]^=5,w+=3,l-=3)}}else if(21==v||22==v){let w=q-l,b=m.Kf[p],j=16777216-(32768&b)+(32767&b);for(;l>0;){let b=1,m=255&f[w];if(m<128)j+=m,f[w]=127&j;else if(m<192);else if(m<224)if(l>=2){let l=f[w+1];j+=63&l|(31&m)<<6,f[w]=192|j>>6&31,f[w+1]=192&l|63&j,b=2}else b=l;else if(m<240)if(l>=3){let l=f[w+1],p=f[w+2];j+=63&p|(63&l)<<6|(15&m)<<12,f[w]=224|j>>12&15,f[w+1]=192&l|j>>6&63,f[w+2]=192&p|63&j,b=3}else b=l;else if(m<248)if(l>=4){let l=f[w+1],p=f[w+2],q=f[w+3];j+=63&q|(63&p)<<6|(63&l)<<12|(7&m)<<18,f[w]=240|j>>18&7,f[w+1]=192&l|j>>12&63,f[w+2]=192&p|j>>6&63,f[w+3]=192&q|63&j,b=4}else b=l;w+=b,l-=b,21==v&&(l=0)}}for(;H!=a;)f[q++]=n[H++];return q-w}(f.L,f.jf,j,p,l,o,q);if(f.jf+=n,f._-=n,f.jf>=w)return f.P=4,void(f.j=12);f.j=4}}function V(f,w){let b=f.jf,j=b;for(;f.uf!=f.zf;){let j=w-b,n=f.df[f.Hf+1]-f.df[f.Hf]-f.af,g=f.uf-f.zf;if(g>n&&(g=n),g>j&&(g=j),l=f.L,m=b,p=f.Tf[f.Hf],q=f.af,o=f.af+g,l.set(p.slice(q,o),m),b+=g,f.af+=g,f.zf+=g,g==n&&(f.Hf++,f.af=0),b>=w)break}var l,m,p,q,o;return b-j}function D(f){if(0==f.j)throw"Can't decompress until initialized";if(11==f.j)throw"Can't decompress after close";if(1==f.j){let w=function(f){let w=f.bf;if(f.bf=0,f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),0==_(f,1))return 16;let b=_(f,3);return 0!=b?17+b:(b=_(f,3),0!=b?1==b?0==w?-1:(f.bf=1,1==_(f,1)?-1:(b=_(f,6),b<10||b>30?-1:b)):8+b:17)}(f);if(-1==w)throw"Invalid 'windowBits' code";f.Z=1<<w,f.yf=f.Z-16,f.j=2}let w=S(f),b=f.O-1,m=f.L;for(;10!=f.j;)switch(f.j){case 2:if(f._<0)throw"Invalid metablock length";K(f),w=S(f),b=f.O-1,m=f.L;continue;case 3:y(f),f.j=4;case 4:if(f._<=0){f.j=2;continue}f.v>2030&&C(f),0==f.B&&I(f),f.B--,f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);let p=d(f.C,f.S,f)<<2,q=g[p],o=g[p+1],n=g[p+2];f.Wf=g[p+3],f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);let k=255&q;f.Bf=o+(k<=16?_(f,k):X(f,k)),f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);let s=q>>8;f.hf=n+(s<=16?_(f,s):X(f,s)),f.Yf=0,f.j=7;case 7:if(0!=f.ff){for(;f.Yf<f.Bf;)if(f.v>2030&&C(f),0==f.u&&r(f),f.u--,f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),m[f.jf]=d(f.U,f.I,f),f.jf++,f.Yf++,f.jf>=w){f.P=7,f.j=12;break}}else{let j=255&m[f.jf-1&b],l=255&m[f.jf-2&b];for(;f.Yf<f.Bf;){f.v>2030&&C(f),0==f.u&&r(f);let b=O[f.T+j]|O[f.W+l],p=255&f.R[f.i+b];if(f.u--,l=j,f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),j=d(f.U,p,f),m[f.jf]=j,f.jf++,f.Yf++,f.jf>=w){f.P=7,f.j=12;break}}}if(7!=f.j)continue;if(f._-=f.Bf,f._<=0){f.j=4;continue}let v=f.Wf;if(v<0)f.sf=f.H[f.m];else{f.v>2030&&C(f),0==f.A&&R(f),f.A--,f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);let w=255&f.wf[f.D+v];if(v=d(f.J,w,f),v<16){let w=f.m+j[v]&3;if(f.sf=f.H[w]+l[v],f.sf<0)throw"Negative distance"}else{let w,b=f.p[v];f.s+b<=32?w=_(f,b):(f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),w=b<=16?_(f,b):X(f,b)),f.sf=f.q[v]+(w<<f.N)}}if(f.maxDistance!=f.yf&&f.jf<f.yf?f.maxDistance=f.jf:f.maxDistance=f.yf,f.sf>f.maxDistance){f.j=9;continue}if(v>0&&(f.m=f.m+1&3,f.H[f.m]=f.sf),f.hf>f._)throw"Invalid backward reference";f.Yf=0,f.j=8;case 8:let t=f.jf-f.sf&b,e=f.jf,H=f.hf-f.Yf,a=t+H,u=e+H;if(a<b&&u<b){if(H<12||a>e&&u>t)for(let f=0;f<H;f+=4)m[e++]=m[t++],m[e++]=m[t++],m[e++]=m[t++],m[e++]=m[t++];else m.copyWithin(e,t,a);f.Yf+=H,f._-=H,f.jf+=H}else for(;f.Yf<f.hf;)if(m[f.jf]=m[f.jf-f.sf&b],f._--,f.jf++,f.Yf++,f.jf>=w){f.P=8,f.j=12;break}8==f.j&&(f.j=4);continue;case 9:A(f,w);continue;case 14:if(f.jf+=V(f,w),f.jf>=w)return f.P=14,void(f.j=12);f.j=4;continue;case 5:for(;f._>0;)f.v>2030&&C(f),f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),_(f,8),f._--;f.j=2;continue;case 6:W(f);continue;case 12:f.pf=ff(f.jf,f.O),f.j=13;case 13:if(0==B(f))return;f.jf>=f.yf&&(f.maxDistance=f.yf),f.jf>=f.O&&(f.jf>f.O&&m.copyWithin(0,f.O,f.jf),f.jf&=b,f.qf=0),f.j=f.P;continue;default:throw"Unexpected state "+f.j}if(10==f.j){if(f._<0)throw"Invalid metablock length";G(f),J(f,1)}}!function(f){let w=new Int16Array(24),b=new Int16Array(24);b[0]=2;for(let f=0;f<23;++f)w[f+1]=w[f]+(1<<o[f]),b[f+1]=b[f]+(1<<n[f]);for(let j=0;j<704;++j){let l=j>>>6,m=-4;l>=2&&(l-=2,m=0);let p=(170064>>>2*l&3)<<3|j>>>3&7,q=(156228>>>2*l&3)<<3|7&j,g=b[q],k=m+(g>4?3:g-2),s=4*j;f[s+0]=o[p]|n[q]<<8,f[s+1]=w[p],f[s+2]=b[q],f[s+3]=k}}(g);let F=new function(f,w,b){this.if=0,this.rf=new Int32Array(0),this.If=new Int8Array(0),this.Rf=new Int32Array(0),this.Kf=new Int16Array(0),this.if=f,this.rf=new Int32Array(3*f),this.Kf=new Int16Array(f),this.If=new Int8Array(w),this.Rf=new Int32Array(b+1)}(121,167,50);function Q(f,w){let b=1<<w-1;for(;0!=(f&b);)b>>=1;return(f&b-1)+b}function P(f,w,b,j,l){do{f[w+(j-=b)]=l}while(j>0)}function U(f,w,b){let j=1<<w-b;for(;w<15&&(j-=f[w],!(j<=0));)w++,j<<=1;return w-b}function c(f,w,b,j,l){let m,p,q=f[w],o=new Int32Array(l),n=new Int32Array(16),g=new Int32Array(16);for(p=0;p<l;p++)n[j[p]]++;g[1]=0;for(let f=1;f<15;f++)g[f+1]=g[f]+n[f];for(p=0;p<l;p++)0!=j[p]&&(o[g[j[p]]++]=p);let k=b,s=1<<k,v=s;if(1==g[15]){for(m=0;m<v;m++)f[q+m]=o[0];return v}m=0,p=0;for(let w=1,j=2;w<=b;w++,j<<=1)for(;n[w]>0;n[w]--)P(f,q+m,j,s,w<<16|o[p++]),m=Q(m,w);let t=v-1,e=-1,d=q;for(let w=b+1,j=2;w<=15;w++,j<<=1)for(;n[w]>0;n[w]--)(m&t)!=e&&(d+=s,k=U(n,w,b),s=1<<k,v+=s,e=m&t,f[q+e]=k+b<<16|d-q-e),P(f,d+(m>>b),j,s,w-b<<16|o[p++]),m=Q(m,w);return v}function C(f){if(0!=f.t){if(x(f)>=-2)return;throw"No more input"}let w=f.v<<1,b=4096-w;for(f.o.copyWithin(0,w,4096),f.v=0;b<4096;){let w=4096-b,j=wf(f.input,f.o,b,w);if(j<=0){f.t=1,f.Sf=b,b+=1;break}b+=j}!function(f,w){let b=f.o,j=w>>1,l=f.k;for(let f=0;f<j;++f)l[f]=255&b[2*f]|(255&b[2*f+1])<<8}(f,b)}function J(f,w){if(0==f.t)return;let b=(f.v<<1)+(f.s+7>>3)-4;if(b>f.Sf)throw"Read after end";if(0!=w&&b!=f.Sf)throw"Unused bytes after end"}function _(f,w){let b=f.g>>>f.s&(1<<w)-1;return f.s+=w,b}function X(f,w){let b=_(f,16);return f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16,b|_(f,w-16)<<16}function E(f){f.v>2030&&C(f),J(f,0),f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16,f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16}function M(f){32==f.s&&E(f)}function G(f){let w=32-f.s&7;if(0!=w){if(0!=_(f,w))throw"Corrupted padding bits"}}function x(f){let w=2048;return 0!=f.t&&(w=f.Sf+1>>1),w-f.v}!function(f,w,b,j,l){let m=j.length,p=1,q=0;for(let b=0;b<m;++b){let l=j.charCodeAt(b);35==l?w[p++]=q:f[q++]=l}for(let f=0;f<363;++f)b[f]=l.charCodeAt(f)-32}(F.If,F.Rf,F.rf,'# #s #, #e #.# the #.com/#\xc2\xa0# of # and # in # to #"#">#\n#]# for # a # that #. # with #\'# from # by #. The # on # as # is #ing #\n\t#:#ed #(# at #ly #="# of the #. This #,# not #er #al #=\'#ful #ive #less #est #ize #ous #'," !! ! , *! &! \" ! ) * * - ! # ! #!*! + ,$ ! - % . / # 0 1 . \" 2 3!* 4% ! # / 5 6 7 8 0 1 & $ 9 + : ; < ' != > ?! 4 @ 4 2 & A *# ( B C& ) % ) !*# *-% A +! *. D! %' & E *6 F G% ! *A *% H! D I!+! J!+ K +- *4! A L!*4 M N +6 O!*% +.! K *G P +%( ! G *D +D Q +# *K!*G!+D!+# +G +A +4!+% +K!+4!*D!+K!*K");let O=new Int32Array(2048);function Z(){this.L=new Int8Array(0),this.K=new Int8Array(0),this.R=new Int8Array(0),this.wf=new Int8Array(0),this.p=new Int8Array(0),this.nf=new Int8Array(0),this.o=new Int8Array(0),this.k=new Int16Array(0),this.Af=new Int32Array(0),this.H=new Int32Array(0),this.l=new Int32Array(0),this.U=new Int32Array(0),this.C=new Int32Array(0),this.J=new Int32Array(0),this.q=new Int32Array(0),this.j=0,this.P=0,this.g=0,this.s=0,this.v=0,this.Sf=0,this.t=0,this._=0,this.F=0,this.X=0,this.M=0,this.u=0,this.h=0,this.B=0,this.Y=0,this.A=0,this.V=0,this.jf=0,this.maxDistance=0,this.m=0,this.ff=0,this.I=0,this.S=0,this.Yf=0,this.Bf=0,this.i=0,this.D=0,this.T=0,this.W=0,this.Wf=0,this.$=0,this.N=0,this.sf=0,this.hf=0,this.yf=0,this.Z=0,this.O=0,this.G=0,this.gf=0,this.lf=0,this.mf=0,this.qf=0,this.pf=0,this.kf=0,this.bf=0,this.Vf=0,this.vf=0,this.Hf=0,this.af=0,this.uf=0,this.zf=0,this.Tf=new Array(0),this.df=new Int32Array(0),this.tf=0,this.ef=new Int8Array(0),this.input=null,this.L=new Int8Array(0),this.H=new Int32Array(10),this.H[0]=16,this.H[1]=15,this.H[2]=11,this.H[3]=4}!function(f,w,b){for(let w=0;w<256;++w)f[w]=63&w,f[512+w]=w>>2,f[1792+w]=2+(w>>6);for(let b=0;b<128;++b)f[1024+b]=4*(w.charCodeAt(b)-32);for(let w=0;w<64;++w)f[1152+w]=1&w,f[1216+w]=2+(1&w);let j=1280;for(let w=0;w<19;++w){let l=3&w,m=b.charCodeAt(w)-32;for(let w=0;w<m;++w)f[j++]=l}for(let w=0;w<16;++w)f[1792+w]=1,f[2032+w]=6;f[1792]=0,f[2047]=7;for(let w=0;w<256;++w)f[1536+w]=f[1792+w]<<3}(O," !! ! \"#$##%#$&'##(#)#++++++++++((&*'##,---,---,-----,-----,-----&#'###.///.///./////./////./////&#'# ","A/* ': & : $ \x81 @");let L=null,N=new Int32Array(32),$=new Int32Array(32);{let f=new Int8Array(122784),w=new Int32Array(25);!function(f,w,b,j,l,m){let p=function(f){let w=f.length,b=new Int8Array(w);for(let j=0;j<w;++j)b[j]=f.charCodeAt(j);return b}(w+b);if(p.length!=f.length)throw"Corrupted brotli dictionary";let q=0,o=j.length;for(let f=0;f<o;f+=2){let w=j.charCodeAt(f)-36,b=j.charCodeAt(f+1)-36;for(let f=0;f<w;++f)p[q]^=3,q++;for(let f=0;f<b;++f)p[q]^=236,q++}for(let f=0;f<m.length;++f)l[f]=m.charCodeAt(f)-65;f.set(p)}(f,'wjnfgltmojefofewab`h`lgfgbwbpkltlmozpjwf`jwzlsfmivpwojhfeqfftlqhwf{wzfbqlufqalgzolufelqnallhsobzojufojmfkfosklnfpjgfnlqftlqgolmdwkfnujftejmgsbdfgbzpevookfbgwfqnfb`kbqfbeqlnwqvfnbqhbaofvslmkjdkgbwfobmgmftpfufmmf{w`bpfalwkslpwvpfgnbgfkbmgkfqftkbwmbnfOjmhaoldpjyfabpfkfognbhfnbjmvpfq$*#(klogfmgptjwkMftpqfbgtfqfpjdmwbhfkbufdbnfpffm`boosbwktfoosovpnfmvejonsbqwiljmwkjpojpwdllgmffgtbzptfpwilapnjmgboploldlqj`kvpfpobpwwfbnbqnzellghjmdtjoofbpwtbqgafpwejqfSbdfhmltbtbz-smdnlufwkbmolbgdjufpfoemlwfnv`keffgnbmzql`hj`lmlm`follhkjgfgjfgKlnfqvofklpwbib{jmel`ovaobtpofppkboeplnfpv`kylmf233&lmfp`bqfWjnfqb`faovfelvqtffheb`fklsfdbufkbqgolpwtkfmsbqhhfswsbpppkjsqllnKWNOsobmWzsfglmfpbufhffseobdojmhplogejufwllhqbwfwltmivnswkvpgbqh`bqgejofefbqpwbzhjoowkbweboobvwlfufq-`lnwbohpklsulwfgffsnlgfqfpwwvqmalqmabmgefooqlpfvqo+phjmqlof`lnfb`wpbdfpnffwdlog-isdjwfnubqzefowwkfmpfmggqlsUjft`lsz2-3!?,b=pwlsfopfojfpwlvqsb`h-djesbpw`pp<dqbznfbm%dw8qjgfpklwobwfpbjgqlbgubq#effoilkmqj`hslqwebpw$VB.gfbg?,a=sllqajoowzsfV-P-tllgnvpw1s{8JmelqbmhtjgftbmwtbooofbgX3^8sbvotbufpvqf\'+$ tbjwnbppbqnpdlfpdbjmobmdsbjg"..#ol`hvmjwqllwtbohejqntjef{no!plmdwfpw13s{hjmgqltpwlloelmwnbjopbefpwbqnbsp`lqfqbjmeoltabazpsbmpbzp7s{85s{8bqwpellwqfbotjhjkfbwpwfswqjslqd,obhftfbhwlogElqn`bpwebmpabmhufqzqvmpivozwbph2s{8dlbodqftpoltfgdfjg>!pfwp6s{8-ip<73s{je#+pllmpfbwmlmfwvafyfqlpfmwqffgeb`wjmwldjewkbqn2;s{`bnfkjooalogyllnuljgfbpzqjmdejoosfbhjmjw`lpw0s{8ib`hwbdpajwpqloofgjwhmftmfbq?"..dqltIPLMgvwzMbnfpbofzlv#olwpsbjmibyy`logfzfpejpkttt-qjphwbapsqfu23s{qjpf16s{Aovfgjmd033/abooelqgfbqmtjogal{-ebjqob`hufqpsbjqivmfwf`kje+"sj`hfujo\'+! tbqnolqgglfpsvoo/333jgfbgqbtkvdfpslwevmgavqmkqfe`foohfzpwj`hklvqolppevfo21s{pvjwgfboQPP!bdfgdqfzDFW!fbpfbjnpdjqobjgp;s{8mbuzdqjgwjsp :::tbqpobgz`bqp*8#~sks<kfoowbootklnyk9\t),\x0e\t#233kboo-\t\tB4s{8svpk`kbw3s{8`qft),?,kbpk46s{eobwqbqf#%%#wfoo`bnslmwlobjgnjppphjswfmwejmfnbofdfwpsolw733/\x0e\t\x0e\t`lloeffw-sks?aq=fqj`nlpwdvjgafoogfp`kbjqnbwkbwln,jnd% ;1ov`h`fmw3338wjmzdlmfkwnopfoogqvdEQFFmlgfmj`h<jg>olpfmvooubpwtjmgQPP#tfbqqfozaffmpbnfgvhfmbpb`bsftjpkdvoeW109kjwppolwdbwfhj`haovqwkfz26s{$$*8*8!=npjftjmpajqgplqwafwbpffhW2;9lqgpwqffnboo53s{ebqn\x0elupalzpX3^-$*8!SLPWafbqhjgp*8~~nbqzwfmg+VH*rvbgyk9\n.pjy....sqls$*8\x0eojewW2:9uj`fbmgzgfaw=QPPsllomf`haoltW259gllqfuboW249ofwpebjolqbosloomlub`lopdfmf#\x0elxplewqlnfwjooqlpp?k0=slvqebgfsjmh?wq=njmj*\x7f"+njmfyk9\x04abqpkfbq33*8njoh#..=jqlmeqfggjphtfmwpljosvwp,ip,klozW119JPAMW139bgbnpffp?k1=iplm$/#$`lmwW129#QPPollsbpjbnllm?,s=plvoOJMFelqw`bqwW279?k2=;3s{"..?:s{8W379njhf975Ymj`fjm`kZlqhqj`fyk9\b$**8svqfnbdfsbqbwlmfalmg904Y\\le\\$^*8333/yk9\vwbmhzbqgaltoavpk965YIbub03s{\t\x7f~\t&@0&907YifeeF[SJ`bpkujpbdloepmltyk9\x05rvfq-`pppj`hnfbwnjm-ajmggfookjqfsj`pqfmw905YKWWS.132elwltloeFMG#{al{967YALGZgj`h8\t~\tf{jw906Yubqpafbw$~*8gjfw:::8bmmf~~?,Xj^-Obmdhn.^tjqfwlzpbggppfbobof{8\t\n~f`klmjmf-lqd336*wlmziftppbmgofdpqlle333*#133tjmfdfbqgldpallwdbqz`vwpwzofwfnswjlm-{no`l`hdbmd\'+$-63s{Sk-Gnjp`bobmolbmgfphnjofqzbmvmj{gjp`*8~\tgvpw`ojs*-\t\t43s{.133GUGp4^=?wbsfgfnlj((*tbdffvqlskjolswpklofEBRpbpjm.15WobapsfwpVQO#avoh`llh8~\x0e\tKFBGX3^*baaqivbm+2:;ofpkwtjm?,j=plmzdvzpev`hsjsf\x7f.\t"331*mgltX2^8X^8\tOld#pbow\x0e\t\n\nabmdwqjnabwk*x\x0e\t33s{\t~*8hl9\0effpbg=\x0ep9,,#X^8wloosovd+*x\tx\x0e\t#-ip$133sgvboalbw-ISD*8\t~rvlw*8\t\t$*8\t\x0e\t~\x0e1327132613251324132;132:13131312131113101317131613151314131;131:130313021301130013071306130513041320132113221323133:133;133413351336133713301331133213332:::2::;2::42::52::62::72::02::12::22::32:;:2:;;2:;42:;52:;62:;72:;02:;12:;22:;32:4:2:4;2:442:452:462:472:402:412:422:432:5:2:5;2:542:552:562:572:502:512:522:532:6:2:6;2:642:652:662:672:602:612:622:632333231720:73333::::`lnln/Mpfpwffpwbsfqlwlglkb`f`bgbb/]lajfmg/Abbp/Aujgb`bpllwqlelqlplollwqb`vbogjilpjgldqbmwjslwfnbgfafbodlrv/Efpwlmbgbwqfpsl`l`bpbabilwlgbpjmlbdvbsvfpvmlpbmwfgj`fovjpfoobnbzlylmbbnlqsjpllaqb`oj`foolgjlpklqb`bpj<[<\\<Q<\\<R<P=l<\\=l=o=n<\\<Q<Y<S<R<R=n<T<[<Q<R<X<R=n<R<Z<Y<R<Q<T=i<q<\\<Y<Y<]=g<P=g<~=g=m<R<^=g<^<R<q<R<R<]<s<R<W<T<Q<T<L<H<q<Y<p=g=n=g<r<Q<T<P<X<\\<{<\\<x<\\<q=o<r<]=n<Y<t<[<Y<U<Q=o<P<P<N=g=o<Z5m5f4O5j5i4K5i4U5o5h4O5d4]4C5f4K5m5e5k5d5h5i5h5o4K5d5h5k4D4_4K5h4I5j5k5f4O5f5n4C5k5h4G5i4D5k5h5d5h5f4D5h4K5f4D5o4X5f4K5i4O5i5j4F4D5f5h5j4A4D5k5i5i4X5d4Xejqpwujgflojdkwtlqognfgjbtkjwf`olpfaob`hqjdkwpnbooallhpsob`fnvpj`ejfoglqgfqsljmwubovfofufowbaofalbqgklvpfdqlvstlqhpzfbqppwbwfwlgbztbwfqpwbqwpwzofgfbwksltfqsklmfmjdkwfqqlqjmsvwbalvwwfqnpwjwofwllopfufmwol`bowjnfpobqdftlqgpdbnfppklqwpsb`fel`vp`ofbqnlgfoaol`hdvjgfqbgjlpkbqftlnfmbdbjmnlmfzjnbdfmbnfpzlvmdojmfpobwfq`lolqdqffmeqlmw%bns8tbw`kelq`fsqj`fqvofpafdjmbewfqujpjwjppvfbqfbpafoltjmgf{wlwboklvqpobafosqjmwsqfppavjowojmhppsffgpwvgzwqbgfelvmgpfmpfvmgfqpkltmelqnpqbmdfbggfgpwjoonlufgwbhfmbalufeobpkej{fglewfmlwkfqujftp`kf`hofdboqjufqjwfnprvj`hpkbsfkvnbmf{jpwdljmdnlujfwkjqgabpj`sfb`fpwbdftjgwkoldjmjgfbptqlwfsbdfpvpfqpgqjufpwlqfaqfbhplvwkulj`fpjwfpnlmwktkfqfavjogtkj`kfbqwkelqvnwkqffpslqwsbqwz@oj`holtfqojufp`obppobzfqfmwqzpwlqzvpbdfplvmg`lvqwzlvq#ajqwkslsvswzsfpbssozJnbdfafjmdvssfqmlwfpfufqzpkltpnfbmpf{wqbnbw`kwqb`hhmltmfbqozafdbmpvsfqsbsfqmlqwkofbqmdjufmmbnfgfmgfgWfqnpsbqwpDqlvsaqbmgvpjmdtlnbmebopfqfbgzbvgjlwbhfptkjof-`ln,ojufg`bpfpgbjoz`kjogdqfbwivgdfwklpfvmjwpmfufqaqlbg`lbpw`lufqbssofejofp`z`ofp`fmfsobmp`oj`htqjwfrvffmsjf`ffnbjoeqbnflogfqsklwlojnjw`b`kf`jujop`boffmwfqwkfnfwkfqfwlv`kalvmgqlzbobphfgtklofpjm`fpwl`h#mbnfebjwkkfbqwfnswzleefqp`lsfltmfgnjdkwboavnwkjmhaollgbqqbznbilqwqvpw`bmlmvmjlm`lvmwubojgpwlmfPwzofOldjmkbsszl``vqofew9eqfpkrvjwfejonpdqbgfmffgpvqabmejdkwabpjpklufqbvwl8qlvwf-kwnonj{fgejmboZlvq#pojgfwlsj`aqltmbolmfgqbtmpsojwqfb`kQjdkwgbwfpnbq`krvlwfdllgpOjmhpglvawbpzm`wkvnaboolt`kjfezlvwkmlufo23s{8pfqufvmwjokbmgp@kf`hPsb`frvfqzibnfpfrvbowtj`f3/333Pwbqwsbmfoplmdpqlvmgfjdkwpkjewtlqwkslpwpofbgptffhpbuljgwkfpfnjofpsobmfpnbqwboskbsobmwnbqhpqbwfpsobzp`objnpbofpwf{wppwbqptqlmd?,k0=wkjmd-lqd,nvowjkfbqgSltfqpwbmgwlhfmplojg+wkjpaqjmdpkjsppwbeewqjfg`boopevoozeb`wpbdfmwWkjp#,,..=bgnjmfdzswFufmw26s{8Fnbjowqvf!`qlpppsfmwaoldpal{!=mlwfgofbuf`kjmbpjyfpdvfpw?,k7=qlalwkfbuzwqvf/pfufmdqbmg`qjnfpjdmpbtbqfgbm`fskbpf=?"..fm\\VP% 0:8133s{\\mbnfobwjmfmilzbib{-bwjlmpnjwkV-P-#klogpsfwfqjmgjbmbu!=`kbjmp`lqf`lnfpgljmdsqjlqPkbqf2::3pqlnbmojpwpibsbmeboopwqjboltmfqbdqff?,k1=bavpfbofqwlsfqb!.,,T`bqgpkjoopwfbnpSklwlwqvwk`ofbm-sks<pbjmwnfwboolvjpnfbmwsqlleaqjfeqlt!=dfmqfwqv`hollhpUbovfEqbnf-mfw,..=\t?wqz#x\tubq#nbhfp`lpwpsobjmbgvowrvfpwwqbjmobalqkfosp`bvpfnbdj`nlwlqwkfjq163s{ofbpwpwfsp@lvmw`lvogdobpppjgfpevmgpklwfobtbqgnlvwknlufpsbqjpdjufpgvw`kwf{bpeqvjwmvoo/\x7f\x7fX^8wls!=\t?"..SLPW!l`fbm?aq,=eollqpsfbhgfswk#pjyfabmhp`bw`k`kbqw13s{8bojdmgfboptlvog63s{8vqo>!sbqhpnlvpfNlpw#---?,bnlmdaqbjmalgz#mlmf8abpfg`bqqzgqbewqfefqsbdf\\klnf-nfwfqgfobzgqfbnsqlufiljmw?,wq=gqvdp?"..#bsqjojgfboboofmf{b`welqwk`lgfpoldj`Ujft#pffnpaobmhslqwp#+133pbufg\\ojmhdlbopdqbmwdqffhklnfpqjmdpqbwfg03s{8tklpfsbqpf+*8!#Aol`hojmv{ilmfpsj{fo$*8!=*8je+.ofewgbujgklqpfEl`vpqbjpfal{fpWqb`hfnfmw?,fn=abq!=-pq`>wltfqbow>!`baofkfmqz17s{8pfwvsjwbozpkbqsnjmlqwbpwftbmwpwkjp-qfpfwtkffodjqop,`pp,233&8`ovappwveeajaofulwfp#2333hlqfb~*8\x0e\tabmgprvfvf>#x~8;3s{8`hjmdx\x0e\t\n\nbkfbg`ol`hjqjpkojhf#qbwjlpwbwpElqn!zbkll*X3^8Balvwejmgp?,k2=gfavdwbphpVQO#>`foop~*+*821s{8sqjnfwfoopwvqmp3{533-isd!psbjmafb`kwb{fpnj`qlbmdfo..=?,djewppwfuf.ojmhalgz-~*8\t\nnlvmw#+2::EBR?,qldfqeqbmh@obpp1;s{8effgp?k2=?p`lwwwfpwp11s{8gqjmh*#\x7f\x7f#oftjppkboo 30:8#elq#olufgtbpwf33s{8ib9\x0fnpjnlm?elmwqfsoznffwpvmwfq`kfbswjdkwAqbmg*#">#gqfpp`ojspqllnplmhfznlajonbjm-Mbnf#sobwfevmmzwqffp`ln,!2-isdtnlgfsbqbnPWBQWofew#jggfm/#132*8\t~\telqn-ujqvp`kbjqwqbmptlqpwSbdfpjwjlmsbw`k?"..\tl.`b`ejqnpwlvqp/333#bpjbmj((*xbglaf$*X3^jg>23alwk8nfmv#-1-nj-smd!hfujm`lb`k@kjogaqv`f1-isdVQO*(-isd\x7fpvjwfpoj`fkbqqz213!#ptffwwq=\x0e\tmbnf>gjfdlsbdf#ptjpp..=\t\t eee8!=Old-`ln!wqfbwpkffw*#%%#27s{8poffsmwfmwejofgib9\x0fojg>!`Mbnf!tlqpfpklwp.al{.gfowb\t%ow8afbqp97;Y?gbwb.qvqbo?,b=#psfmgabhfqpklsp>#!!8sks!=`wjlm20s{8aqjbmkfoolpjyf>l>&1E#iljmnbzaf?jnd#jnd!=/#eipjnd!#!*X3^NWlsAWzsf!mftozGbmph`yf`kwqbjohmltp?,k6=ebr!=yk.`m23*8\t.2!*8wzsf>aovfpwqvozgbujp-ip$8=\x0e\t?"pwffo#zlv#k1=\x0e\telqn#ifpvp233&#nfmv-\x0e\t\n\x0e\ttbofpqjphpvnfmwggjmda.ojhwfb`kdje!#ufdbpgbmphffpwjpkrjspvlnjplaqfgfpgffmwqfwlglpsvfgfb/]lpfpw/Mwjfmfkbpwblwqlpsbqwfglmgfmvfulkb`fqelqnbnjpnlnfilqnvmglbrv/Ag/Abpp/_olbzvgbef`kbwlgbpwbmwlnfmlpgbwlplwqbppjwjlnv`klbklqbovdbqnbzlqfpwlpklqbpwfmfqbmwfpelwlpfpwbpsb/Apmvfubpbovgelqlpnfgjlrvjfmnfpfpslgfq`kjofpfq/Muf`fpgf`jqilp/Efpwbqufmwbdqvslkf`klfoolpwfmdlbnjdl`lpbpmjufodfmwfnjpnbbjqfpivojlwfnbpkb`jbebulqivmjlojaqfsvmwlavfmlbvwlqbaqjoavfmbwf{wlnbqylpbafqojpwbovfdl`/_nlfmfqlivfdlsfq/Vkbafqfpwlzmvm`bnvifqubolqevfqbojaqldvpwbjdvboulwlp`bplpdv/Absvfglplnlpbujplvpwfggfafmml`kfavp`bebowbfvqlppfqjfgj`kl`vqpl`obuf`bpbpof/_msobylobqdllaqbpujpwbbslzlivmwlwqbwbujpwl`qfbq`bnslkfnlp`jm`l`bqdlsjplplqgfmkb`fm/Mqfbgjp`lsfgql`fq`bsvfgbsbsfonfmlq/Vwjo`obqlilqdf`boofslmfqwbqgfmbgjfnbq`bpjdvffoobppjdol`l`kfnlwlpnbgqf`obpfqfpwlmj/]lrvfgbsbpbqabm`lkjilpujbifsbaol/Epwfujfmfqfjmlgfibqelmgl`bmbomlqwfofwqb`bvpbwlnbqnbmlpovmfpbvwlpujoobufmglsfpbqwjslpwfmdbnbq`loofubsbgqfvmjglubnlpylmbpbnalpabmgbnbqjbbavplnv`kbpvajqqjlibujujqdqbgl`kj`bboo/Ailufmgj`kbfpwbmwbofppbojqpvfolsfplpejmfpoobnbavp`l/Epwboofdbmfdqlsobybkvnlqsbdbqivmwbglaofjpobpalopbab/]lkbaobov`kb/mqfbgj`fmivdbqmlwbpuboofboo/M`bqdbglolqbabilfpw/Edvpwlnfmwfnbqjlejqnb`lpwlej`kbsobwbkldbqbqwfpofzfpbrvfonvpflabpfpsl`lpnjwbg`jfol`kj`lnjfgldbmbqpbmwlfwbsbgfafpsobzbqfgfppjfwf`lqwf`lqfbgvgbpgfpflujfilgfpfbbdvbp%rvlw8glnbjm`lnnlmpwbwvpfufmwpnbpwfqpzpwfnb`wjlmabmmfqqfnlufp`qloovsgbwfdolabonfgjvnejowfqmvnafq`kbmdfqfpvowsvaoj`p`qffm`kllpfmlqnbowqbufojppvfpplvq`fwbqdfwpsqjmdnlgvofnlajofptjw`ksklwlpalqgfqqfdjlmjwpfoepl`jbob`wjuf`lovnmqf`lqgelooltwjwof=fjwkfqofmdwkebnjozeqjfmgobzlvwbvwklq`qfbwfqfujftpvnnfqpfqufqsobzfgsobzfqf{sbmgsloj`zelqnbwglvaofsljmwppfqjfpsfqplmojujmdgfpjdmnlmwkpelq`fpvmjrvftfjdkwsflsoffmfqdzmbwvqfpfbq`kejdvqfkbujmd`vpwlnleepfwofwwfqtjmgltpvanjwqfmgfqdqlvspvsolbgkfbowknfwklgujgflpp`klloevwvqfpkbgltgfabwfubovfpLaif`wlwkfqpqjdkwpofbdvf`kqlnfpjnsofmlwj`fpkbqfgfmgjmdpfbplmqfslqwlmojmfprvbqfavwwlmjnbdfpfmbaofnlujmdobwfpwtjmwfqEqbm`fsfqjlgpwqlmdqfsfbwOlmglmgfwbjoelqnfggfnbmgpf`vqfsbppfgwlddofsob`fpgfuj`fpwbwj``jwjfppwqfbnzfooltbwwb`hpwqffweojdkwkjggfmjmel!=lsfmfgvpfevouboofz`bvpfpofbgfqpf`qfwpf`lmggbnbdfpslqwpf{`fswqbwjmdpjdmfgwkjmdpfeef`wejfogppwbwfpleej`fujpvbofgjwlqulovnfQfslqwnvpfvnnlujfpsbqfmwb``fppnlpwoznlwkfq!#jg>!nbqhfwdqlvmg`kbm`fpvqufzafelqfpznalonlnfmwpsff`knlwjlmjmpjgfnbwwfq@fmwfqlaif`wf{jpwpnjggofFvqlsfdqltwkofdb`znbmmfqfmlvdk`bqffqbmptfqlqjdjmslqwbo`ojfmwpfof`wqbmgln`olpfgwlsj`p`lnjmdebwkfqlswjlmpjnsozqbjpfgfp`bsf`klpfm`kvq`kgfejmfqfbplm`lqmfqlvwsvwnfnlqzjeqbnfsloj`fnlgfopMvnafqgvqjmdleefqppwzofphjoofgojpwfg`boofgpjoufqnbqdjmgfofwfafwwfqaqltpfojnjwpDolabopjmdoftjgdfw`fmwfqavgdfwmltqbs`qfgjw`objnpfmdjmfpbefwz`klj`fpsjqjw.pwzofpsqfbgnbhjmdmffgfgqvppjbsofbpff{wfmwP`qjswaqlhfmbooltp`kbqdfgjujgfeb`wlqnfnafq.abpfgwkflqz`lmejdbqlvmgtlqhfgkfosfg@kvq`kjnsb`wpklvogbotbzpoldl!#alwwlnojpw!=*xubq#sqfej{lqbmdfKfbgfq-svpk+`lvsofdbqgfmaqjgdfobvm`kQfujftwbhjmdujpjlmojwwofgbwjmdAvwwlmafbvwzwkfnfpelqdlwPfbq`kbm`klqbonlpwolbgfg@kbmdfqfwvqmpwqjmdqfolbgNlajofjm`lnfpvssozPlvq`flqgfqpujftfg%maps8`lvqpfBalvw#jpobmg?kwno#`llhjfmbnf>!bnbylmnlgfqmbguj`fjm?,b=9#Wkf#gjboldklvpfpAFDJM#Nf{j`lpwbqwp`fmwqfkfjdkwbggjmdJpobmgbppfwpFnsjqfP`kllofeelqwgjqf`wmfbqoznbmvboPfof`w-\t\tLmfiljmfgnfmv!=SkjojsbtbqgpkbmgofjnslqwLeej`fqfdbqgphjoopmbwjlmPslqwpgfdqfftffhoz#+f-d-afkjmggl`wlqolddfgvmjwfg?,a=?,afdjmpsobmwpbppjpwbqwjpwjppvfg033s{\x7f`bmbgbbdfm`zp`kfnfqfnbjmAqbyjopbnsofoldl!=afzlmg.p`bofb``fswpfqufgnbqjmfEllwfq`bnfqb?,k2=\t\\elqn!ofbufppwqfpp!#,=\x0e\t-dje!#lmolbgolbgfqL{elqgpjpwfqpvqujuojpwfmefnbofGfpjdmpjyf>!bssfbowf{w!=ofufopwkbmhpkjdkfqelq`fgbmjnbobmzlmfBeqj`bbdqffgqf`fmwSflsof?aq#,=tlmgfqsqj`fpwvqmfg\x7f\x7f#x~8nbjm!=jmojmfpvmgbztqbs!=ebjofg`fmpvpnjmvwfafb`lmrvlwfp263s{\x7ffpwbwfqfnlwffnbjo!ojmhfgqjdkw8pjdmboelqnbo2-kwnopjdmvssqjm`feolbw9-smd!#elqvn-B``fppsbsfqpplvmgpf{wfmgKfjdkwpojgfqVWE.;!%bns8#Afelqf-#TjwkpwvgjlltmfqpnbmbdfsqlejwiRvfqzbmmvbosbqbnpalvdkwebnlvpdlldofolmdfqj((*#xjpqbfopbzjmdgf`jgfklnf!=kfbgfqfmpvqfaqbm`ksjf`fpaol`h8pwbwfgwls!=?qb`jmdqfpjyf..%dw8sb`jwzpf{vboavqfbv-isd!#23/333lawbjmwjwofpbnlvmw/#Jm`-`lnfgznfmv!#ozqj`pwlgbz-jmgffg`lvmwz\\oldl-EbnjozollhfgNbqhfwopf#jeSobzfqwvqhfz*8ubq#elqfpwdjujmdfqqlqpGlnbjm~fopfxjmpfqwAold?,ellwfqoldjm-ebpwfqbdfmwp?algz#23s{#3sqbdnbeqjgbzivmjlqgloobqsob`fg`lufqpsovdjm6/333#sbdf!=alpwlm-wfpw+bubwbqwfpwfg\\`lvmwelqvnpp`kfnbjmgf{/ejoofgpkbqfpqfbgfqbofqw+bssfbqPvanjwojmf!=algz!=\t)#WkfWklvdkpffjmdifqpfzMftp?,ufqjezf{sfqwjmivqztjgwk>@llhjfPWBQW#b`qlpp\\jnbdfwkqfbgmbwjufsl`hfwal{!=\tPzpwfn#Gbujg`bm`fqwbaofpsqlufgBsqjo#qfboozgqjufqjwfn!=nlqf!=albqgp`lolqp`bnsvpejqpw#\x7f\x7f#X^8nfgjb-dvjwbqejmjpktjgwk9pkltfgLwkfq#-sks!#bppvnfobzfqptjoplmpwlqfpqfojfeptfgfm@vpwlnfbpjoz#zlvq#Pwqjmd\t\tTkjowbzolq`ofbq9qfplqweqfm`kwklvdk!*#(#!?algz=avzjmdaqbmgpNfnafqmbnf!=lssjmdpf`wlq6s{8!=upsb`fslpwfqnbilq#`leeffnbqwjmnbwvqfkbssfm?,mbu=hbmpbpojmh!=Jnbdfp>ebopftkjof#kpsb`f3%bns8#\t\tJm##sltfqSlophj.`lolqilqgbmAlwwlnPwbqw#.`lvmw1-kwnomftp!=32-isdLmojmf.qjdkwnjoofqpfmjlqJPAM#33/333#dvjgfpubovf*f`wjlmqfsbjq-{no!##qjdkwp-kwno.aol`hqfdF{s9klufqtjwkjmujqdjmsklmfp?,wq=\x0evpjmd#\t\nubq#=$*8\t\n?,wg=\t?,wq=\tabkbpbaqbpjodbofdlnbdzbqslophjpqsphj4]4C5d\bTA\nzk\vBl\bQ\x7f\vUm\x05Gx\bSM\nmC\bTA\twQ\nd}\bW@\bTl\bTF\ti@\tcT\vBM\v|j\x04BV\tqw\tcC\bWI\npa\tfM\n{Z\x05{X\bTF\bVV\bVK\t\x7fm\x04kF\t[]\bPm\bTv\nsI\vpg\t[I\bQp\x04mx\v_W\n^M\npe\vQ}\vGu\nel\npe\x04Ch\x04BV\bTA\tSo\nzk\vGL\vxD\nd[\x05Jz\x05MY\bQp\x04li\nfl\npC\x05{B\x05Nt\vwT\ti_\bTg\x04QQ\n|p\vXN\bQS\vxD\x04QC\bWZ\tpD\vVS\bTW\x05Nt\x04Yh\nzu\x04Kj\x05N}\twr\tHa\n_D\tj`\vQ}\vWp\nxZ\x04{c\tji\tBU\nbD\x04a|\tTn\tpV\nZd\nmC\vEV\x05{X\tc}\tTo\bWl\bUd\tIQ\tcg\vxs\nXW\twR\vek\tc}\t]y\tJn\nrp\neg\npV\nz\\\x05{W\npl\nz\\\nzU\tPc\t`{\bV@\nc|\bRw\ti_\bVb\nwX\tHv\x04Su\bTF\v_W\vWs\vsI\x05m\x7f\nTT\ndc\tUS\t}f\tiZ\bWz\tc}\x04MD\tBe\tiD\v@@\bTl\bPv\t}t\x04Sw\x04M`\vnU\tkW\ved\nqo\vxY\tA|\bTz\vy`\x04BR\x04BM\tia\x04XU\nyu\x04n^\tfL\tiI\nXW\tfD\bWz\bW@\tyj\t\x7fm\tav\tBN\vb\\\tpD\bTf\nY[\tJn\bQy\t[^\vWc\vyu\x04Dl\x04CJ\vWj\vHR\t`V\vuW\tQy\np@\vGu\x05pl\x04Jm\bW[\nLP\nxC\n`m\twQ\x05ui\x05\x7fR\nbI\twQ\tBZ\tWV\x04BR\npg\tcg\x05ti\x04CW\n_y\tRg\bQa\vQB\vWc\nYb\x05le\ngE\x04Su\nL[\tQ\x7f\tea\tdj\v]W\nb~\x04M`\twL\bTV\bVH\nt\x7f\npl\t|b\x05s_\bU|\bTa\x04oQ\x05lv\x04Sk\x04M`\bTv\vK}\nfl\tcC\x04oQ\x04BR\tHk\t|d\bQp\tHK\tBZ\vHR\bPv\vLx\vEZ\bT\x7f\bTv\tiD\x05oD\x05MU\vwB\x04Su\x05k`\x04St\ntC\tPl\tKg\noi\tjY\vxY\x04h}\nzk\bWZ\t\x7fm\ve`\tTB\tfE\nzk\t`z\x04Yh\nV|\tHK\tAJ\tAJ\bUL\tp\\\tql\nYc\x04Kd\nfy\x04Yh\t[I\vDg\x04Jm\n]n\nlb\bUd\n{Z\tlu\tfs\x04oQ\bTW\x04Jm\vwB\tea\x04Yh\x04BC\tsb\tTn\nzU\n_y\vxY\tQ]\ngw\x04mt\tO\\\ntb\bWW\bQy\tmI\tV[\ny\\\naB\vRb\twQ\n]Q\x04QJ\bWg\vWa\bQj\ntC\bVH\nYm\vxs\bVK\nel\bWI\vxY\x04Cq\ntR\vHV\bTl\bVw\tay\bQa\bVV\t}t\tdj\nr|\tp\\\twR\n{i\nTT\t[I\ti[\tAJ\vxs\v_W\td{\vQ}\tcg\tTz\tA|\tCj\vLm\x05N}\x05m\x7f\nbK\tdZ\tp\\\t`V\tsV\np@\tiD\twQ\vQ}\bTf\x05ka\x04Jm\v@@\bV`\tzp\n@N\x04Sw\tiI\tcg\noi\x04Su\bVw\x04lo\x04Cy\tc}\vb\\\tsU\x04BA\bWI\bTf\nxS\tVp\nd|\bTV\vbC\tNo\x05Ju\nTC\t|`\n{Z\tD]\bU|\tc}\x05lm\bTl\tBv\tPl\tc}\bQp\t\x7fm\nLk\tkj\n@N\x04Sb\x04KO\tj_\tp\\\nzU\bTl\bTg\bWI\tcf\x04XO\bWW\ndz\x04li\tBN\nd[\bWO\x04MD\vKC\tdj\tI_\bVV\ny\\\vLm\x05xl\txB\tkV\vb\\\vJW\vVS\tVx\vxD\td{\x04MD\bTa\t|`\vPz\x04R}\vWs\x04BM\nsI\x04CN\bTa\x04Jm\npe\ti_\npV\nrh\tRd\tHv\n~A\nxR\vWh\vWk\nxS\vAz\vwX\nbI\x04oQ\tfw\nqI\nV|\nun\x05z\x7f\vpg\td\\\voA\x05{D\ti_\x05xB\bT\x7f\t`V\x05qr\tTT\x04g]\x04CA\vuR\tVJ\tT`\npw\vRb\tI_\nCx\x04Ro\vsI\x04Cj\x04Kh\tBv\tWV\x04BB\x05oD\x05{D\nhc\x04Km\v^R\tQE\n{I\np@\nc|\x05Gt\tc}\x04Dl\nzU\x05qN\tsV\x05k}\tHh\v|j\nqo\x05u|\tQ]\vek\x05\x7fZ\x04M`\x04St\npe\tdj\bVG\veE\t\x7fm\vWc\x04|I\n[W\tfL\bT\x7f\tBZ\x04Su\vKa\x04Cq\x05Nt\x04Y[\nqI\bTv\tfM\ti@\t}f\x04B\\\tQy\vBl\bWg\x04XD\x05kc\vx[\bVV\tQ]\t\x7fa\tPy\vxD\nfI\t}f\x05oD\tdj\tSG\x05ls\t~D\x04CN\n{Z\t\\v\n_D\nhc\vx_\x04C[\tAJ\nLM\tVx\x04CI\tbj\tc^\tcF\ntC\x04Sx\twr\x04XA\bU\\\t|a\vK\\\bTV\bVj\nd|\tfs\x04CX\ntb\bRw\tVx\tAE\tA|\bT\x7f\x05Nt\vDg\tVc\bTl\x04d@\npo\t\x7fM\tcF\npe\tiZ\tBo\bSq\nfH\x04l`\bTx\bWf\tHE\vF{\tcO\tfD\nlm\vfZ\nlm\veU\tdG\x04BH\bTV\tSi\x05MW\nwX\nz\\\t\\c\x04CX\nd}\tl}\bQp\bTV\tF~\bQ\x7f\t`i\ng@\x05nO\bUd\bTl\nL[\twQ\tji\ntC\t|J\nLU\naB\vxY\x04Kj\tAJ\x05uN\ti[\npe\x04Sk\vDg\vx]\bVb\bVV\nea\tkV\nqI\bTa\x04Sk\nAO\tpD\ntb\nts\nyi\bVg\ti_\v_W\nLk\x05Nt\tyj\tfM\x04R\x7f\tiI\bTl\vwX\tsV\vMl\nyu\tAJ\bVj\x04KO\tWV\vA}\vW\x7f\nrp\tiD\v|o\x05lv\vsI\x04BM\td~\tCU\bVb\x04eV\npC\vwT\tj`\tc}\vxs\vps\vvh\tWV\vGg\vAe\vVK\v]W\trg\vWc\x05F`\tBr\vb\\\tdZ\bQp\nqI\x04kF\nLk\vAR\bWI\bTg\tbs\tdw\n{L\n_y\tiZ\bTA\tlg\bVV\bTl\tdk\n`k\ta{\ti_\x05{A\x05wj\twN\v@@\bTe\ti_\n_D\twL\nAH\viK\vek\n[]\tp_\tyj\bTv\tUS\t[r\n{I\nps\x05Gt\vVK\npl\x04S}\vWP\t|d\x04MD\vHV\bT\x7f\x04R}\x04M`\bTV\bVH\x05lv\x04Ch\bW[\x04Ke\tR{\v^R\tab\tBZ\tVA\tB`\nd|\nhs\x04Ke\tBe\x04Oi\tR{\td\\\x05nB\bWZ\tdZ\tVJ\x05Os\t\x7fm\x04uQ\vhZ\x04Q@\x04QQ\nfI\bW[\x04B\\\x04li\nzU\nMd\x04M`\nxS\bVV\n\\}\vxD\t\x7fm\bTp\x04IS\nc|\tkV\x05i~\tV{\vhZ\t|b\bWt\n@R\voA\vnU\bWI\tea\tB`\tiD\tc}\tTz\x04BR\vQB\x05Nj\tCP\t[I\bTv\t`W\x05uN\vpg\vpg\vWc\tiT\tbs\twL\tU_\tc\\\t|h\vKa\tNr\tfL\nq|\nzu\nz\\\tNr\bUg\t|b\x04m`\bTv\nyd\nrp\bWf\tUX\x04BV\nzk\nd}\twQ\t}f\x04Ce\ved\bTW\bSB\nxU\tcn\bTb\ne\x7f\ta\\\tSG\bU|\npV\nN\\\x04Kn\vnU\tAt\tpD\v^R\vIr\x04b[\tR{\tdE\vxD\vWK\vWA\bQL\bW@\x04Su\bUd\nDM\tPc\x04CA\x04Dl\x04oQ\tHs\x05wi\x04ub\n\x7fa\bQp\x05Ob\nLP\bTl\x04Y[\vK}\tAJ\bQ\x7f\x04n^\vsA\bSM\nqM\bWZ\n^W\vz{\x04S|\tfD\bVK\bTv\bPv\x04BB\tCP\x04dF\tid\vxs\x04mx\vws\tcC\ntC\tyc\x05M`\vW\x7f\nrh\bQp\vxD\x04\\o\nsI\x04_k\nzu\x04kF\tfD\x04Xs\x04XO\tjp\bTv\x04BS\x05{B\tBr\nzQ\nbI\tc{\x04BD\x04BV\x05nO\bTF\tca\x05Jd\tfL\tPV\tI_\nlK\x04`o\twX\npa\tgu\bP}\x05{^\bWf\n{I\tBN\npa\x04Kl\vpg\tcn\tfL\vvh\x04Cq\bTl\vnU\bSq\x04Cm\twR\bUJ\npe\nyd\nYg\x04Cy\vKW\tfD\nea\x04oQ\tj_\tBv\x04nM\vID\bTa\nzA\x05pl\n]n\bTa\tR{\tfr\n_y\bUg\x05{X\x05kk\vxD\x04|I\x05xl\nfy\x04Ce\vwB\nLk\vd]\noi\n}h\tQ]\npe\bVw\x04Hk\x04OQ\nzk\tAJ\npV\bPv\ny\\\tA{\x04Oi\bSB\x04XA\veE\tjp\nq}\tiD\x05qN\v^R\t\x7fm\tiZ\tBr\bVg\noi\n\\X\tU_\nc|\vHV\bTf\tTn\x04\\N\x04\\N\nuB\x05lv\nyu\tTd\bTf\bPL\v]W\tdG\nA`\nw^\ngI\npe\tdw\nz\\\x05ia\bWZ\tcF\x04Jm\n{Z\bWO\x04_k\x04Df\x04RR\td\\\bVV\vxs\x04BN\x05ti\x04lm\tTd\t]y\vHV\tSo\v|j\x04XX\tA|\vZ^\vGu\bTW\x05M`\x04kF\vhZ\vVK\tdG\vBl\tay\nxU\x05qE\x05nO\bVw\nqI\x04CX\ne\x7f\tPl\bWO\vLm\tdL\x05uH\x04Cm\tdT\x04fn\vwB\x05ka\vnU\n@M\nyT\tHv\t\\}\x04Kh\td~\x04Yh\x05k}\neR\td\\\bWI\t|b\tHK\tiD\bTW\x05MY\npl\bQ_\twr\vAx\tHE\bTg\bSq\x05vp\vb\\\bWO\nOl\nsI\nfy\vID\t\\c\n{Z\n^~\npe\nAO\tTT\vxv\x04k_\bWO\v|j\vwB\tQy\ti@\tPl\tHa\tdZ\x05k}\x04ra\tUT\vJc\ved\np@\tQN\nd|\tkj\tHk\x04M`\noi\twr\td\\\nlq\no_\nlb\nL[\tac\x04BB\x04BH\x04Cm\npl\tIQ\bVK\vxs\n`e\viK\npa\x04Oi\tUS\bTp\tfD\nPG\x05kk\x04XA\nz\\\neg\vWh\twR\x05qN\nqS\tcn\x04lo\nxS\n^W\tBU\nt\x7f\tHE\tp\\\tfF\tfw\bVV\bW@\tak\vVK\x05ls\tVJ\bVV\veE\x04\\o\nyX\nYm\x04M`\x05lL\nd|\nzk\tA{\x05sE\twQ\x04XT\nt\x7f\tPl\t]y\vwT\x05{p\x04MD\vb\\\tQ]\x04Kj\tJn\nAH\vRb\tBU\tHK\t\\c\nfI\x05m\x7f\nqM\n@R\tSo\noi\x04BT\tHv\n_y\x04Kh\tBZ\t]i\bUJ\tV{\x04Sr\nbI\vGg\ta_\bTR\nfI\nfl\t[K\tII\x04S|\vuW\tiI\bWI\nqI\v|j\x04BV\bVg\bWZ\x04kF\vx]\bTA\tab\tfr\ti@\tJd\tJd\vps\nAO\bTa\x05xu\tiD\nzk\t|d\t|`\bW[\tlP\tdG\bVV\vw}\vqO\ti[\bQ\x7f\bTz\vVF\twN\x05ts\tdw\bTv\neS\ngi\tNr\x05yS\npe\bVV\bSq\n`m\tyj\tBZ\vWX\bSB\tc\\\nUR\t[J\tc_\x04nM\bWQ\vAx\nMd\tBr\x05ui\vxY\bSM\vWc\v|j\vxs\t}Q\tBO\bPL\bWW\tfM\nAO\tPc\veU\x04e^\bTg\nqI\tac\bPv\tcF\x04oQ\tQ\x7f\vhZ\x05ka\nz\\\tiK\tBU\n`k\tCP\x04S|\x04M`\n{I\tS{\x04_O\tBZ\x04Zi\x04Sk\tps\tp\\\nYu\n]s\nxC\bWt\nbD\tkV\vGu\x05yS\nqA\t[r\neK\x04M`\tdZ\x05lL\bUg\bTl\nbD\tUS\vb\\\tpV\ncc\x04S\\\tct\t`z\bPL\vWs\nA`\neg\bSq\x05uE\x04CR\vDg\t`W\vz{\vWc\x04Sk\x04Sk\tbW\bUg\tea\nxZ\tiI\tUX\tVJ\nqn\tS{\vRb\bTQ\npl\x05Gt\vuW\x05uj\npF\nqI\tfL\t[I\tia\x04XO\nyu\vDg\ved\tq{\x04VG\bQ\x7f\x05ka\tVj\tkV\txB\nd|\np@\tQN\tPc\tps\x04]j\tkV\toU\bTp\nzU\x05nB\vB]\ta{\bV@\n]n\x04m`\tcz\tR{\x04m`\bQa\vwT\bSM\x05MY\x05qN\tdj\x05~s\vQ}\x05MY\vMB\tBv\twR\bRg\vQ}\tql\vKC\nrm\x05xu\x04CC\vwB\vvh\tBq\x04Xq\npV\ti_\x05Ob\x05uE\nbd\nqo\v{i\nC~\tBL\veE\x05uH\bVj\x04Ey\x04Gz\vzR\v{i\tcf\n{Z\n]n\x04XA\vGu\vnU\thS\vGI\nCc\tHE\bTA\tHB\x04BH\x04Cj\nCc\bTF\tHE\nXI\tA{\bQ\x7f\tc\\\vmO\vWX\nfH\np@\x05MY\bTF\nlK\tBt\nzU\tTT\x04Km\vwT\npV\ndt\vyI\tVx\tQ\x7f\tRg\tTd\nzU\bRS\nLM\twA\x04nM\tTn\ndS\t]g\nLc\vwB\t}t\t[I\tCP\x04kX\vFm\vhZ\x05m\x7f\ti[\np@\vQ}\vW\x7f\t|d\nMO\nMd\tf_\tfD\tcJ\tHz\vRb\tio\tPy\x04Y[\nxU\tct\v@@\tww\bPv\x04BM\x04FF\ntb\x05v|\vKm\tBq\tBq\x04Kh\x04`o\nZd\x04XU\ti]\t|`\tSt\x04B\\\bQ\x7f\v_W\tTJ\nqI\t|a\tA{\vuP\x04MD\tPl\nxR\tfL\vws\tc{\td\\\bV`\neg\tHK\x05kc\nd|\bVV\ny\\\x05kc\ti]\bVG\t`V\tss\tI_\tAE\tbs\tdu\nel\tpD\vW\x7f\nqs\x05lv\bSM\x04Zi\vVK\x05ia\vQB\tQ\x7f\n{Z\bPt\vKl\nlK\nhs\ndS\bVK\x05mf\nd^\tkV\tcO\nc|\bVH\t\\]\bTv\bSq\tmI\vDg\tVJ\tcn\ny\\\bVg\bTv\nyX\bTF\t]]\bTp\noi\nhs\veU\nBf\tdj\x05Mr\n|p\t\\g\t]r\bVb\x05{D\nd[\x04XN\tfM\tO\\\x05s_\tcf\tiZ\x04XN\vWc\tqv\n`m\tU^\x05oD\nd|\vGg\tdE\vwf\x04lo\x04u}\nd|\x05oQ\t`i\x04Oi\vxD\ndZ\nCx\x04Yw\nzk\ntb\ngw\tyj\tB`\nyX\vps\ntC\vpP\vqw\bPu\bPX\tDm\npw\x05Nj\tss\taG\vxs\bPt\noL\x04Gz\tOk\ti@\ti]\x04eC\tIQ\tii\tdj\v@J\t|d\x05uh\bWZ\veU\vnU\bTa\tcC\x04g]\nzk\x04Yh\bVK\nLU\np@\ntb\ntR\tCj\vNP\ti@\bP{\n\\}\n{c\nwX\tfL\bVG\tc{\t|`\tAJ\t|C\tfD\x05ln\t|d\tbs\nqI\x05{B\vAx\np@\nzk\vRb\x05Os\vWS\x04e^\vD_\tBv\vWd\bVb\vxs\veE\bRw\n]n\n|p\vg|\tfw\x05kc\bTI\x05ka\n\\T\x04Sp\tju\vps\npe\x05u|\vGr\bVe\tCU\x04]M\x04XU\vxD\bTa\tIQ\vWq\tCU\tam\tdj\bSo\x04Sw\vnU\x04Ch\tQ]\x05s_\bPt\tfS\bTa\t\\}\n@O\x04Yc\tUZ\bTx\npe\vnU\nzU\t|}\tiD\nz\\\bSM\vxD\x04BR\nzQ\tQN\x04]M\x04Yh\nLP\vFm\vLX\x05vc\vql\x05ka\tHK\bVb\ntC\nCy\bTv\nuV\x04oQ\t`z\t[I\tB`\vRb\tyj\tsb\vWs\bTl\tkV\ved\ne\x7f\x05lL\vxN\t\x7fm\nJn\tjY\vxD\bVb\bSq\vyu\twL\vXL\bTA\tpg\tAt\tnD\x04XX\twR\npl\nhw\x05yS\nps\tcO\bW[\v|j\x04XN\tsV\tp\\\tBe\nb~\nAJ\n]e\x05k`\x05qN\tdw\tWV\tHE\vEV\x05Jz\tid\tB`\tzh\x05E]\tfD\bTg\x05qN\bTa\tja\x04Cv\bSM\nhc\bUe\x05t_\tie\x04g]\twQ\nPn\bVB\tjw\bVg\vbE\tBZ\vRH\bP{\tjp\n\\}\ta_\tcC\t|a\vD]\tBZ\ti[\tfD\vxW\no_\td\\\n_D\ntb\t\\c\tAJ\nlK\x04oQ\x04lo\vLx\vM@\bWZ\x04Kn\vpg\nTi\nIv\n|r\v@}\x05Jz\x05Lm\x05Wh\x05k}\x05ln\vxD\n]s\x04gc\vps\tBr\bTW\vBM\x05tZ\nBY\x04DW\tjf\vSW\x04C}\nqo\tdE\tmv\tIQ\bPP\bUb\x05lv\x04BC\nzQ\t[I\vgl\nig\bUs\x04BT\vbC\bSq\tsU\tiW\nJn\tSY\tHK\trg\npV\vID\v|j\x04KO\t`S\t|a`vbmglfmujbqnbgqjgavp`bqjmj`jlwjfnslslqrvf`vfmwbfpwbglsvfgfmivfdlp`lmwqbfpw/Mmmlnaqfwjfmfmsfqejonbmfqbbnjdlp`jvgbg`fmwqlbvmrvfsvfgfpgfmwqlsqjnfqsqf`jlpfd/Vmavfmlpuloufqsvmwlppfnbmbkba/Abbdlpwlmvfulpvmjglp`bqolpfrvjslmj/]lpnv`klpbodvmb`lqqfljnbdfmsbqwjqbqqjabnbq/Abklnaqffnsoflufqgbg`bnajlnv`kbpevfqlmsbpbglo/Amfbsbqf`fmvfubp`vqplpfpwbabrvjfqlojaqlp`vbmwlb``fplnjdvfoubqjlp`vbwqlwjfmfpdqvslppfq/Mmfvqlsbnfgjlpeqfmwfb`fq`bgfn/Mplefqwb`l`kfpnlgfoljwbojbofwqbpbod/Vm`lnsqb`vbofpf{jpwf`vfqslpjfmglsqfmpboofdbqujbifpgjmfqlnvq`jbslgq/Msvfpwlgjbqjlsvfaolrvjfqfnbmvfosqlsjl`qjpjp`jfqwlpfdvqlnvfqwfevfmwf`fqqbqdqbmgffef`wlsbqwfpnfgjgbsqlsjbleqf`fwjfqqbf.nbjoubqjbpelqnbpevwvqllaifwlpfdvjqqjfpdlmlqnbpnjpnlp/Vmj`l`bnjmlpjwjlpqby/_mgfajglsqvfabwlofglwfm/Abifp/Vpfpsfql`l`jmblqjdfmwjfmgb`jfmwl`/Mgjykbaobqpfq/Abobwjmbevfqybfpwjoldvfqqbfmwqbq/E{jwlo/_sfybdfmgbu/Agflfujwbqsbdjmbnfwqlpibujfqsbgqfpe/M`jo`bafyb/Mqfbppbojgbfmu/Alibs/_mbavplpajfmfpwf{wlpoofubqsvfgbmevfqwf`ln/Vm`obpfpkvnbmlwfmjglajoablvmjgbgfpw/Mpfgjwbq`qfbgl<X<W=c=k=n<R<V<\\<V<T<W<T=a=n<R<^=m<Y<Y<_<R<S=l<T=n<\\<V<Y=e<Y=o<Z<Y<v<\\<V<]<Y<[<]=g<W<R<Q<T<~=m<Y<S<R<X<A=n<R=n<R<P=k<Y<P<Q<Y=n<W<Y=n=l<\\<[<R<Q<\\<_<X<Y<P<Q<Y<x<W=c<s=l<T<Q<\\=m<Q<T=i=n<Y<P<V=n<R<_<R<X<^<R=n=n<\\<P<M<D<|<P<\\=c<K=n<R<^<\\=m<^<\\<P<Y<P=o<N<\\<V<X<^<\\<Q<\\<P=a=n<T=a=n=o<~<\\<P=n<Y=i<S=l<R=n=o=n<Q<\\<X<X<Q=c<~<R=n=n=l<T<Q<Y<U<~<\\=m<Q<T<P=m<\\<P=n<R=n=l=o<]<r<Q<T<P<T=l<Q<Y<Y<r<r<r<W<T=j=a=n<\\<r<Q<\\<Q<Y<P<X<R<P<P<R<U<X<^<Y<R<Q<R=m=o<X\fHy\fIk\fHU\fId\fHy\fIl\fHT\fIk\fHy\fHR\fHy\fIg\fHx\fH\\\fHF\fH\\\fHD\fIk\fHc\fHy\fHy\fHS\fHA\fIl\fHk\fHT\fHy\fH\\\fHH\fIg\fHU\fIg\fHj\fHF\fHU\fIl\fHC\fHU\fHC\fHR\fHH\fHy\fHI\fHRibdqbm\fHj\fHp\fHp\fIg\fHi\fH@\fHJ\fIg\fH{\fHd\fHp\fHR\fH{\fHc\fHU\fHB\fHk\fHD\fHY\fHU\fHC\fIk\fHI\fIk\fHI\fIl\fHt\fH\\\fHp\fH@\fHJ\fIl\fHy\fHd\fHp\fIl\fHY\fIk\fHD\fHd\fHD\fHc\fHU\fH\\\fHe\fHT\fHB\fIk\fHy\fHB\fHY\fIg\fH^\fIk\fHT\fH@\fHB\fHd\fHJ\fIk\fH\x7f\fH\\\fHj\fHB\fH@\fHT\fHA\fH\\\fH@\fHD\fHv\fH^\fHB\fHD\fHj\fH{\fHT\fIl\fH^\fIl4U5h5e4I5h5e5k4\\4K4N4B4]4U4C4C4K5h5e5k4\\5k4Y5d4]4V5f4]5o4K5j5d5h4K4D5f5j4U4]4Z4\\5h5o5k5j4K5f5d5i5n4K5h4U5h5f4K5j4K5h5o5j4A4F5e5n4D5h5d4A4E4K4B4]5m5n4[4U4D4C4]5o5j4I4\\4K5o5i4K4K4A4C4I5h4K5m5f5k4D4U4Z5o5f5m4D4A4G5d5i5j5d5k5d4O5j4K4@4C4K5h5k4K4_5h5i4U5j4C5h5f4_4U4D4]4Y5h5e5i5j4\\4D5k4K4O5j5k5i4G5h5o5j4F4K5h4K4A5f4G5i4Y4]4X4]4A4A5d5h5d5m5f4K4\\4K5h5o5h5i4]4E4K5j4F4K5h5m4O4D5d4B4K4Y4O5j4F4K5j5k4K5h5f4U4Z5d5d5n4C4K4D5j4B5f4]4D5j4F5h5o5i4X4K4M5d5k5f4K4D5d5n4Y4Y5d5i4K4]5n5i4O4A4C5j4A5j4U4C5i4]4O5f4K4A4E5o4F4D4C5d5j5f4@4D5i5j5k4F4A4F4@5k4E4_5j4E5f4F5i5o4]4E4V4^4E5j5m4_4D5f4F5h5h5k5h5j4K4F5h5o5n5h4D5h5i4K4U5j5k4O5d5h4X5f4M5j5d4]4O5i4K5m5f5o4D5o5h4\\4K4F4]4F4D4D4O5j5k5i4_4K5j5o4D5f4U5m5n4C4A4_5j5h5k5i4X4U4]4O5k5h4X5k4]5n4[4]4[5h4Dsqlejofpfquj`fgfebvowkjnpfoegfwbjop`lmwfmwpvsslqwpwbqwfgnfppbdfpv``fppebpkjlm?wjwof=`lvmwqzb``lvmw`qfbwfgpwlqjfpqfpvowpqvmmjmdsql`fpptqjwjmdlaif`wpujpjaoftfo`lnfbqwj`ofvmhmltmmfwtlqh`lnsbmzgzmbnj`aqltpfqsqjub`zsqlaofnPfquj`fqfpsf`wgjpsobzqfrvfpwqfpfquftfapjwfkjpwlqzeqjfmgplswjlmptlqhjmdufqpjlmnjoojlm`kbmmfotjmglt-bggqfppujpjwfgtfbwkfq`lqqf`wsqlgv`wfgjqf`welqtbqgzlv#`bmqfnlufgpvaif`w`lmwqlobq`kjuf`vqqfmwqfbgjmdojaqbqzojnjwfgnbmbdfqevqwkfqpvnnbqznb`kjmfnjmvwfpsqjubwf`lmwf{wsqldqbnpl`jfwzmvnafqptqjwwfmfmbaofgwqjddfqplvq`fpolbgjmdfofnfmwsbqwmfqejmboozsfqef`wnfbmjmdpzpwfnphffsjmd`vowvqf%rvlw8/ilvqmbosqlif`wpvqeb`fp%rvlw8f{sjqfpqfujftpabobm`fFmdojpk@lmwfmwwkqlvdkSofbpf#lsjmjlm`lmwb`wbufqbdfsqjnbqzujoobdfPsbmjpkdboofqzgf`ojmfnffwjmdnjppjlmslsvobqrvbojwznfbpvqfdfmfqbopsf`jfppfppjlmpf`wjlmtqjwfqp`lvmwfqjmjwjboqfslqwpejdvqfpnfnafqpklogjmdgjpsvwffbqojfqf{sqfppgjdjwbosj`wvqfBmlwkfqnbqqjfgwqbeej`ofbgjmd`kbmdfg`fmwqbouj`wlqzjnbdfp,qfbplmppwvgjfpefbwvqfojpwjmdnvpw#afp`kllopUfqpjlmvpvboozfsjplgfsobzjmddqltjmdlaujlvplufqobzsqfpfmwb`wjlmp?,vo=\x0e\ttqbssfqboqfbgz`fqwbjmqfbojwzpwlqbdfbmlwkfqgfphwlsleefqfgsbwwfqmvmvpvboGjdjwbo`bsjwboTfapjwfebjovqf`lmmf`wqfgv`fgBmgqljggf`bgfpqfdvobq#%bns8#bmjnbopqfofbpfBvwlnbwdfwwjmdnfwklgpmlwkjmdSlsvobq`bswjlmofwwfqp`bswvqfp`jfm`foj`fmpf`kbmdfpFmdobmg>2%bns8Kjpwlqz#>#mft#@fmwqbovsgbwfgPsf`jboMfwtlqhqfrvjqf`lnnfmwtbqmjmd@loofdfwlloabqqfnbjmpaf`bvpffof`wfgGfvwp`kejmbm`ftlqhfqprvj`hozafwtffmf{b`wozpfwwjmdgjpfbpfPl`jfwztfbslmpf{kjajw%ow8"..@lmwqlo`obppfp`lufqfglvwojmfbwwb`hpgfuj`fp+tjmgltsvqslpfwjwof>!Nlajof#hjoojmdpkltjmdJwbojbmgqlssfgkfbujozfeef`wp.2$^*8\t`lmejqn@vqqfmwbgubm`fpkbqjmdlsfmjmdgqbtjmdajoojlmlqgfqfgDfqnbmzqfobwfg?,elqn=jm`ovgftkfwkfqgfejmfgP`jfm`f`bwboldBqwj`ofavwwlmpobqdfpwvmjelqnilvqmfzpjgfabq@kj`bdlklojgbzDfmfqbosbppbdf/%rvlw8bmjnbwfeffojmdbqqjufgsbppjmdmbwvqboqlvdkoz-\t\tWkf#avw#mlwgfmpjwzAqjwbjm@kjmfpfob`h#lewqjavwfJqfobmg!#gbwb.eb`wlqpqf`fjufwkbw#jpOjaqbqzkvpabmgjm#eb`wbeebjqp@kbqofpqbgj`boaqlvdkwejmgjmdobmgjmd9obmd>!qfwvqm#ofbgfqpsobmmfgsqfnjvnsb`hbdfBnfqj`bFgjwjlm^%rvlw8Nfppbdfmffg#wlubovf>!`lnsof{ollhjmdpwbwjlmafojfufpnboofq.nlajofqf`lqgptbmw#wlhjmg#leEjqfel{zlv#bqfpjnjobqpwvgjfgnb{jnvnkfbgjmdqbsjgoz`ojnbwfhjmdglnfnfqdfgbnlvmwpelvmgfgsjlmffqelqnvobgzmbpwzklt#wl#Pvsslqwqfufmvff`lmlnzQfpvowpaqlwkfqplogjfqobqdfoz`boojmd-%rvlw8B``lvmwFgtbqg#pfdnfmwQlafqw#feelqwpSb`jej`ofbqmfgvs#tjwkkfjdkw9tf#kbufBmdfofpmbwjlmp\\pfbq`kbssojfgb`rvjqfnbppjufdqbmwfg9#ebopfwqfbwfgajddfpwafmfejwgqjujmdPwvgjfpnjmjnvnsfqkbspnlqmjmdpfoojmdjp#vpfgqfufqpfubqjbmw#qlof>!njppjmdb`kjfufsqlnlwfpwvgfmwplnflmff{wqfnfqfpwlqfalwwln9fuloufgboo#wkfpjwfnbsfmdojpktbz#wl##Bvdvpwpznalop@lnsbmznbwwfqpnvpj`bobdbjmpwpfqujmd~*+*8\x0e\tsbznfmwwqlvaof`lm`fsw`lnsbqfsbqfmwpsobzfqpqfdjlmpnlmjwlq#$$Wkf#tjmmjmdf{solqfbgbswfgDboofqzsqlgv`fbajojwzfmkbm`f`bqffqp*-#Wkf#`loof`wPfbq`k#bm`jfmwf{jpwfgellwfq#kbmgofqsqjmwfg`lmplofFbpwfqmf{slqwptjmgltp@kbmmfojoofdbomfvwqbopvddfpw\\kfbgfqpjdmjmd-kwno!=pfwwofgtfpwfqm`bvpjmd.tfahjw`objnfgIvpwj`f`kbswfquj`wjnpWklnbp#nlyjoobsqlnjpfsbqwjfpfgjwjlmlvwpjgf9ebopf/kvmgqfgLoznsj`\\avwwlmbvwklqpqfb`kfg`kqlmj`gfnbmgppf`lmgpsqlwf`wbglswfgsqfsbqfmfjwkfqdqfbwozdqfbwfqlufqboojnsqluf`lnnbmgpsf`jbopfbq`k-tlqpkjsevmgjmdwklvdkwkjdkfpwjmpwfbgvwjojwzrvbqwfq@vowvqfwfpwjmd`ofbqozf{slpfgAqltpfqojafqbo~#`bw`kSqlif`wf{bnsofkjgf+*8EolqjgbbmptfqpbooltfgFnsfqlqgfefmpfpfqjlvpeqffglnPfufqbo.avwwlmEvqwkfqlvw#le#">#mvoowqbjmfgGfmnbqhuljg+3*,boo-ipsqfufmwQfrvfpwPwfskfm\t\tTkfm#lapfquf?,k1=\x0e\tNlgfqm#sqlujgf!#bow>!alqgfqp-\t\tElq#\t\tNbmz#bqwjpwpsltfqfgsfqelqnej`wjlmwzsf#lenfgj`bowj`hfwplsslpfg@lvm`jotjwmfppivpwj`fDflqdf#Afodjvn---?,b=wtjwwfqmlwbaoztbjwjmdtbqebqf#Lwkfq#qbmhjmdskqbpfpnfmwjlmpvqujufp`klobq?,s=\x0e\t#@lvmwqzjdmlqfgolpp#leivpw#bpDflqdjbpwqbmdf?kfbg=?pwlssfg2$^*8\x0e\tjpobmgpmlwbaofalqgfq9ojpw#le`bqqjfg233/333?,k0=\t#pfufqboaf`lnfppfof`w#tfggjmd33-kwnonlmbq`klee#wkfwfb`kfqkjdkoz#ajloldzojef#lelq#fufmqjpf#le%qbrvl8sovplmfkvmwjmd+wklvdkGlvdobpiljmjmd`jq`ofpElq#wkfBm`jfmwUjfwmbnufkj`ofpv`k#bp`qzpwboubovf#>Tjmgltpfmilzfgb#pnboobppvnfg?b#jg>!elqfjdm#Boo#qjklt#wkfGjpsobzqfwjqfgkltfufqkjggfm8abwwofppffhjmd`bajmfwtbp#mlwollh#bw`lmgv`wdfw#wkfIbmvbqzkbssfmpwvqmjmdb9klufqLmojmf#Eqfm`k#ob`hjmdwzsj`bof{wqb`wfmfnjfpfufm#jedfmfqbwgf`jgfgbqf#mlw,pfbq`kafojfep.jnbdf9ol`bwfgpwbwj`-oldjm!=`lmufqwujlofmwfmwfqfgejqpw!=`jq`vjwEjmobmg`kfnjpwpkf#tbp23s{8!=bp#pv`kgjujgfg?,psbm=tjoo#afojmf#leb#dqfbwnzpwfqz,jmgf{-eboojmdgvf#wl#qbjotbz`loofdfnlmpwfqgfp`fmwjw#tjwkmv`ofbqIftjpk#sqlwfpwAqjwjpkeoltfqpsqfgj`wqfelqnpavwwlm#tkl#tbpof`wvqfjmpwbmwpvj`jgfdfmfqj`sfqjlgpnbqhfwpPl`jbo#ejpkjmd`lnajmfdqbskj`tjmmfqp?aq#,=?az#wkf#MbwvqboSqjub`z`llhjfplvw`lnfqfploufPtfgjpkaqjfeozSfqpjbmpl#nv`k@fmwvqzgfsj`wp`lovnmpklvpjmdp`qjswpmf{w#wlafbqjmdnbssjmdqfujpfgiRvfqz+.tjgwk9wjwof!=wllowjsPf`wjlmgfpjdmpWvqhjpkzlvmdfq-nbw`k+~*+*8\t\tavqmjmdlsfqbwfgfdqffpplvq`f>Qj`kbqg`olpfozsobpwj`fmwqjfp?,wq=\x0e\t`lolq9 vo#jg>!slppfppqloojmdskzpj`pebjojmdf{f`vwf`lmwfpwojmh#wlGfebvow?aq#,=\t9#wqvf/`kbqwfqwlvqjpn`obppj`sql`ffgf{sobjm?,k2=\x0e\tlmojmf-<{no#ufkfosjmdgjbnlmgvpf#wkfbjqojmffmg#..=*-bwwq+qfbgfqpklpwjmd eeeeeeqfbojyfUjm`fmwpjdmbop#pq`>!,Sqlgv`wgfpsjwfgjufqpfwfoojmdSvaoj`#kfog#jmIlpfsk#wkfbwqfbeef`wp?pwzof=b#obqdfglfpm$wobwfq/#Fofnfmwebuj`lm`qfbwlqKvmdbqzBjqslqwpff#wkfpl#wkbwNj`kbfoPzpwfnpSqldqbnp/#bmg##tjgwk>f%rvlw8wqbgjmdofew!=\tsfqplmpDlogfm#Beebjqpdqbnnbqelqnjmdgfpwqlzjgfb#le`bpf#lelogfpw#wkjp#jp-pq`#>#`bqwllmqfdjpwq@lnnlmpNvpojnpTkbw#jpjm#nbmznbqhjmdqfufbopJmgffg/frvbooz,pklt\\blvwgllqfp`bsf+Bvpwqjbdfmfwj`pzpwfn/Jm#wkf#pjwwjmdKf#boplJpobmgpB`bgfnz\t\n\n?"..Gbmjfo#ajmgjmdaol`h!=jnslpfgvwjojyfBaqbkbn+f{`fswxtjgwk9svwwjmd*-kwno+\x7f\x7f#X^8\tGBWBX#)hjw`kfmnlvmwfgb`wvbo#gjbof`wnbjmoz#\\aobmh$jmpwboof{sfqwpje+wzsfJw#bopl%`lsz8#!=Wfqnpalqm#jmLswjlmpfbpwfqmwbohjmd`lm`fqmdbjmfg#lmdljmdivpwjez`qjwj`peb`wlqzjwp#ltmbppbvowjmujwfgobpwjmdkjp#ltmkqfe>!,!#qfo>!gfufols`lm`fqwgjbdqbngloobqp`ovpwfqsks<jg>bo`lklo*8~*+*8vpjmd#b=?psbm=ufppfopqfujuboBggqfppbnbwfvqbmgqljgboofdfgjoomfpptbohjmd`fmwfqprvbojeznbw`kfpvmjejfgf{wjm`wGfefmpfgjfg#jm\t\n?"..#`vpwlnpojmhjmdOjwwof#Allh#lefufmjmdnjm-ip<bqf#wkfhlmwbhwwlgbz$p-kwno!#wbqdfw>tfbqjmdBoo#Qjd8\t~*+*8qbjpjmd#Bopl/#`qv`jbobalvw!=gf`obqf..=\t?p`ejqfel{bp#nv`kbssojfpjmgf{/#p/#avw#wzsf#>#\t\x0e\t?"..wltbqgpQf`lqgpSqjubwfElqfjdmSqfnjfq`klj`fpUjqwvboqfwvqmp@lnnfmwSltfqfgjmojmf8slufqwz`kbnafqOjujmd#ulovnfpBmwklmzoldjm!#QfobwfgF`lmlnzqfb`kfp`vwwjmddqbujwzojef#jm@kbswfq.pkbgltMlwbaof?,wg=\x0e\t#qfwvqmpwbgjvntjgdfwpubqzjmdwqbufopkfog#aztkl#bqftlqh#jmeb`vowzbmdvobqtkl#kbgbjqslqwwltm#le\t\tPlnf#$`oj`h$`kbqdfphfztlqgjw#tjoo`jwz#le+wkjp*8Bmgqft#vmjrvf#`kf`hfglq#nlqf033s{8#qfwvqm8qpjlm>!sovdjmptjwkjm#kfqpfoePwbwjlmEfgfqboufmwvqfsvaojpkpfmw#wlwfmpjlmb`wqfpp`lnf#wlejmdfqpGvhf#lesflsof/f{soljwtkbw#jpkbqnlmzb#nbilq!9!kwwsjm#kjp#nfmv!=\tnlmwkozleej`fq`lvm`jodbjmjmdfufm#jmPvnnbqzgbwf#leolzbowzejwmfppbmg#tbpfnsfqlqpvsqfnfPf`lmg#kfbqjmdQvppjbmolmdfpwBoafqwbobwfqbopfw#le#pnboo!=-bssfmggl#tjwkefgfqboabmh#leafmfbwkGfpsjwf@bsjwbodqlvmgp*/#bmg#sfq`fmwjw#eqln`olpjmd`lmwbjmJmpwfbgejewffmbp#tfoo-zbkll-qfpslmgejdkwfqlap`vqfqfeof`wlqdbmj`>#Nbwk-fgjwjmdlmojmf#sbggjmdb#tkloflmfqqlqzfbq#lefmg#le#abqqjfqtkfm#jwkfbgfq#klnf#leqfpvnfgqfmbnfgpwqlmd=kfbwjmdqfwbjmp`olvgeqtbz#le#Nbq`k#2hmltjmdjm#sbqwAfwtffmofpplmp`olpfpwujqwvboojmhp!=`qlppfgFMG#..=ebnlvp#btbqgfgOj`fmpfKfbowk#ebjqoz#tfbowkznjmjnboBeqj`bm`lnsfwfobafo!=pjmdjmdebqnfqpAqbpjo*gjp`vppqfsob`fDqfdlqzelmw#`lsvqpvfgbssfbqpnbhf#vsqlvmgfgalwk#leaol`hfgpbt#wkfleej`fp`lolvqpje+gl`vtkfm#kffmelq`fsvpk+evBvdvpw#VWE.;!=Ebmwbpzjm#nlpwjmivqfgVpvboozebqnjmd`olpvqflaif`w#gfefm`fvpf#le#Nfgj`bo?algz=\tfujgfmwaf#vpfghfz@lgfpj{wffmJpobnj` 333333fmwjqf#tjgfoz#b`wjuf#+wzsflelmf#`bm`lolq#>psfbhfqf{wfmgpSkzpj`pwfqqbjm?walgz=evmfqboujftjmdnjggof#`qj`hfwsqlskfwpkjewfggl`wlqpQvppfoo#wbqdfw`lnsb`wbodfaqbpl`jbo.avoh#lenbm#bmg?,wg=\t#kf#ofew*-ubo+*ebopf*8oldj`boabmhjmdklnf#wlmbnjmd#Bqjylmb`qfgjwp*8\t~*8\telvmgfqjm#wvqm@loojmpafelqf#Avw#wkf`kbqdfgWjwof!=@bswbjmpsfoofgdlggfppWbd#..=Bggjmd9avw#tbpQf`fmw#sbwjfmwab`h#jm>ebopf%Ojm`lomtf#hmlt@lvmwfqIvgbjpnp`qjsw#bowfqfg$^*8\t##kbp#wkfvm`ofbqFufmw$/alwk#jmmlw#boo\t\t?"..#sob`jmdkbqg#wl#`fmwfqplqw#le`ojfmwppwqffwpAfqmbqgbppfqwpwfmg#wlebmwbpzgltm#jmkbqalvqEqffglniftfoqz,balvw--pfbq`kofdfmgpjp#nbgfnlgfqm#lmoz#lmlmoz#wljnbdf!#ojmfbq#sbjmwfqbmg#mlwqbqfoz#b`qlmzngfojufqpklqwfq33%bns8bp#nbmztjgwk>!,)#?"X@wjwof#>le#wkf#oltfpw#sj`hfg#fp`bsfgvpfp#lesflsofp#Svaoj`Nbwwkftwb`wj`pgbnbdfgtbz#elqobtp#lefbpz#wl#tjmgltpwqlmd##pjnsof~`bw`k+pfufmwkjmelal{tfmw#wlsbjmwfg`jwjyfmJ#glm$wqfwqfbw-#Plnf#tt-!*8\talnajmdnbjowl9nbgf#jm-#Nbmz#`bqqjfp\x7f\x7fx~8tjtlqh#lepzmlmzngfefbwpebulqfglswj`bosbdfWqbvmofpp#pfmgjmdofew!=?`lnP`lqBoo#wkfiRvfqz-wlvqjpw@obppj`ebopf!#Tjokfonpvavqapdfmvjmfajpklsp-psojw+dolabo#elooltpalgz#lemlnjmbo@lmwb`wpf`vobqofew#wl`kjfeoz.kjggfm.abmmfq?,oj=\t\t-#Tkfm#jm#alwkgjpnjppF{solqfbotbzp#ujb#wkfpsb/]lotfoebqfqvojmd#bqqbmdf`bswbjmkjp#plmqvof#lekf#wllhjwpfoe/>3%bns8+`boofgpbnsofpwl#nbhf`ln,sbdNbqwjm#Hfmmfgzb``fswpevoo#lekbmgofgAfpjgfp,,..=?,baof#wlwbqdfwpfppfm`fkjn#wl#jwp#az#`lnnlm-njmfqbowl#wbhftbzp#wlp-lqd,obgujpfgsfmbowzpjnsof9je#wkfzOfwwfqpb#pklqwKfqafqwpwqjhfp#dqlvsp-ofmdwkeojdkwplufqobspoltoz#ofppfq#pl`jbo#?,s=\t\n\njw#jmwlqbmhfg#qbwf#levo=\x0e\t##bwwfnswsbjq#lenbhf#jwHlmwbhwBmwlmjlkbujmd#qbwjmdp#b`wjufpwqfbnpwqbssfg!*-`pp+klpwjofofbg#wlojwwof#dqlvsp/Sj`wvqf..=\x0e\t\x0e\t#qltp>!#laif`wjmufqpf?ellwfq@vpwlnU=?_,p`qploujmd@kbnafqpobufqztlvmgfgtkfqfbp">#$vmgelq#boosbqwoz#.qjdkw9Bqbajbmab`hfg#`fmwvqzvmjw#lenlajof.Fvqlsf/jp#klnfqjph#legfpjqfg@ojmwlm`lpw#lebdf#le#af`lnf#mlmf#les%rvlw8Njggof#fbg$*X3@qjwj`ppwvgjlp=%`lsz8dqlvs!=bppfnaonbhjmd#sqfppfgtjgdfw-sp9!#<#qfavjowaz#plnfElqnfq#fgjwlqpgfobzfg@bmlmj`kbg#wkfsvpkjmd`obpp>!avw#bqfsbqwjboAbazolmalwwln#`bqqjfq@lnnbmgjwp#vpfBp#tjwk`lvqpfpb#wkjqggfmlwfpbopl#jmKlvpwlm13s{8!=b``vpfgglvaof#dlbo#leEbnlvp#*-ajmg+sqjfpwp#Lmojmfjm#Ivozpw#(#!d`lmpvowgf`jnbokfosevoqfujufgjp#ufqzq$($jswolpjmd#efnbofpjp#boplpwqjmdpgbzp#lebqqjuboevwvqf#?laif`welq`jmdPwqjmd+!#,=\t\n\nkfqf#jpfm`lgfg-##Wkf#aboollmglmf#az,`lnnlmad`lolqobt#le#Jmgjbmbbuljgfgavw#wkf1s{#0s{irvfqz-bewfq#bsloj`z-nfm#bmgellwfq.>#wqvf8elq#vpfp`qffm-Jmgjbm#jnbdf#>ebnjoz/kwws9,,#%maps8gqjufqpfwfqmbopbnf#bpmlwj`fgujftfqp~*+*8\t#jp#nlqfpfbplmpelqnfq#wkf#mftjp#ivpw`lmpfmw#Pfbq`ktbp#wkftkz#wkfpkjssfgaq=?aq=tjgwk9#kfjdkw>nbgf#le`vjpjmfjp#wkbwb#ufqz#Bgnjqbo#ej{fg8mlqnbo#NjppjlmSqfpp/#lmwbqjl`kbqpfwwqz#wl#jmubgfg>!wqvf!psb`jmdjp#nlpwb#nlqf#wlwboozeboo#le~*8\x0e\t##jnnfmpfwjnf#jmpfw#lvwpbwjpezwl#ejmggltm#wlolw#le#Sobzfqpjm#Ivmfrvbmwvnmlw#wkfwjnf#wlgjpwbmwEjmmjpkpq`#>#+pjmdof#kfos#leDfqnbm#obt#bmgobafofgelqfpwp`llhjmdpsb`f!=kfbgfq.tfoo#bpPwbmofzaqjgdfp,dolabo@qlbwjb#Balvw#X3^8\t##jw/#bmgdqlvsfgafjmd#b*xwkqltkf#nbgfojdkwfqfwkj`boEEEEEE!alwwln!ojhf#b#fnsolzpojuf#jmbp#pffmsqjmwfqnlpw#leva.ojmhqfif`wpbmg#vpfjnbdf!=pv``ffgeffgjmdMv`ofbqjmelqnbwl#kfosTlnfm$pMfjwkfqNf{j`bmsqlwfjm?wbaof#az#nbmzkfbowkzobtpvjwgfujpfg-svpk+xpfoofqppjnsoz#Wkqlvdk-`llhjf#Jnbdf+logfq!=vp-ip!=#Pjm`f#vmjufqpobqdfq#lsfm#wl"..#fmgojfp#jm$^*8\x0e\t##nbqhfwtkl#jp#+!GLN@lnbmbdfglmf#elqwzsfle#Hjmdglnsqlejwpsqlslpfwl#pklt`fmwfq8nbgf#jwgqfppfgtfqf#jmnj{wvqfsqf`jpfbqjpjmdpq`#>#$nbhf#b#pf`vqfgAbswjpwulwjmd#\t\n\nubq#Nbq`k#1dqft#vs@ojnbwf-qfnlufphjoofgtbz#wkf?,kfbg=eb`f#leb`wjmd#qjdkw!=wl#tlqhqfgv`fpkbp#kbgfqf`wfgpklt+*8b`wjlm>allh#lebm#bqfb>>#!kww?kfbgfq\t?kwno=`lmelqneb`jmd#`llhjf-qfoz#lmklpwfg#-`vpwlnkf#tfmwavw#elqpsqfbg#Ebnjoz#b#nfbmplvw#wkfelqvnp-ellwbdf!=Nlajo@ofnfmwp!#jg>!bp#kjdkjmwfmpf..=?"..efnbof#jp#pffmjnsojfgpfw#wkfb#pwbwfbmg#kjpebpwfpwafpjgfpavwwlm\\alvmgfg!=?jnd#Jmelal{fufmwp/b#zlvmdbmg#bqfMbwjuf#`kfbsfqWjnflvwbmg#kbpfmdjmfptlm#wkf+nlpwozqjdkw9#ejmg#b#.alwwlnSqjm`f#bqfb#lenlqf#lepfbq`k\\mbwvqf/ofdboozsfqjlg/obmg#lelq#tjwkjmgv`fgsqlujmdnjppjofol`boozBdbjmpwwkf#tbzh%rvlw8s{8!=\x0e\tsvpkfg#babmglmmvnfqbo@fqwbjmJm#wkjpnlqf#jmlq#plnfmbnf#jpbmg/#jm`qltmfgJPAM#3.`qfbwfpL`wlafqnbz#mlw`fmwfq#obwf#jmGfefm`ffmb`wfgtjpk#wlaqlbgoz`llojmdlmolbg>jw-#Wkfqf`lufqNfnafqpkfjdkw#bppvnfp?kwno=\tsflsof-jm#lmf#>tjmgltellwfq\\b#dllg#qfhobnblwkfqp/wl#wkjp\\`llhjfsbmfo!=Olmglm/gfejmfp`qvpkfgabswjpn`lbpwbopwbwvp#wjwof!#nluf#wlolpw#jmafwwfq#jnsojfpqjuboqzpfqufqp#PzpwfnSfqkbspfp#bmg#`lmwfmgeoltjmdobpwfg#qjpf#jmDfmfpjpujft#leqjpjmd#pffn#wlavw#jm#ab`hjmdkf#tjoodjufm#bdjujmd#`jwjfp-eolt#le#Obwfq#boo#avwKjdktbzlmoz#azpjdm#lekf#glfpgjeefqpabwwfqz%bns8obpjmdofpwkqfbwpjmwfdfqwbhf#lmqfevpfg`boofg#>VP%bnsPff#wkfmbwjufpaz#wkjppzpwfn-kfbg#le9klufq/ofpajbmpvqmbnfbmg#boo`lnnlm,kfbgfq\\\\sbqbnpKbqubqg,sj{fo-qfnlubopl#olmdqlof#leiljmwozphzp`qbVmj`lgfaq#,=\x0e\tBwobmwbmv`ofvp@lvmwz/svqfoz#`lvmw!=fbpjoz#avjog#blm`oj`hb#djufmsljmwfqk%rvlw8fufmwp#fopf#x\tgjwjlmpmlt#wkf/#tjwk#nbm#tkllqd,Tfalmf#bmg`buboqzKf#gjfgpfbwwof33/333#xtjmgltkbuf#wlje+tjmgbmg#jwpplofoz#n%rvlw8qfmftfgGfwqljwbnlmdpwfjwkfq#wkfn#jmPfmbwlqVp?,b=?Hjmd#leEqbm`jp.sqlgv`kf#vpfgbqw#bmgkjn#bmgvpfg#azp`lqjmdbw#klnfwl#kbufqfobwfpjajojwzeb`wjlmAveebolojmh!=?tkbw#kfeqff#wl@jwz#le`lnf#jmpf`wlqp`lvmwfglmf#gbzmfqulvpprvbqf#~8je+dljm#tkbwjnd!#bojp#lmozpfbq`k,wvfpgbzollpfozPlolnlmpf{vbo#.#?b#kqnfgjvn!GL#MLW#Eqbm`f/tjwk#b#tbq#bmgpf`lmg#wbhf#b#=\x0e\t\x0e\t\x0e\tnbqhfw-kjdktbzglmf#jm`wjujwz!obpw!=laojdfgqjpf#wl!vmgfejnbgf#wl#Fbqoz#sqbjpfgjm#jwp#elq#kjpbwkofwfIvsjwfqZbkll"#wfqnfg#pl#nbmzqfbooz#p-#Wkf#b#tlnbm<ubovf>gjqf`w#qjdkw!#aj`z`ofb`jmd>!gbz#bmgpwbwjmdQbwkfq/kjdkfq#Leej`f#bqf#mltwjnfp/#tkfm#b#sbz#elqlm#wkjp.ojmh!=8alqgfqbqlvmg#bmmvbo#wkf#Mftsvw#wkf-`ln!#wbhjm#wlb#aqjfe+jm#wkfdqlvsp-8#tjgwkfmyznfppjnsof#jm#obwfxqfwvqmwkfqbszb#sljmwabmmjmdjmhp!=\t+*8!#qfb#sob`f_v330@bbalvw#bwq=\x0e\t\n\n``lvmw#djufp#b?P@QJSWQbjotbzwkfnfp,wlloal{AzJg+!{kvnbmp/tbw`kfpjm#plnf#je#+tj`lnjmd#elqnbwp#Vmgfq#avw#kbpkbmgfg#nbgf#azwkbm#jmefbq#legfmlwfg,jeqbnfofew#jmulowbdfjm#fb`kb%rvlw8abpf#leJm#nbmzvmgfqdlqfdjnfpb`wjlm#?,s=\x0e\t?vpwlnUb8%dw8?,jnslqwplq#wkbwnlpwoz#%bns8qf#pjyf>!?,b=?,kb#`obppsbppjufKlpw#>#TkfwkfqefqwjofUbqjlvp>X^8+ev`bnfqbp,=?,wg=b`wp#bpJm#plnf=\x0e\t\x0e\t?"lqdbmjp#?aq#,=Afjijmd`bwbo/Lgfvwp`kfvqlsfvfvphbqbdbfjodfpufmphbfpsb/]bnfmpbifvpvbqjlwqbabiln/E{j`ls/Mdjmbpjfnsqfpjpwfnbl`wvaqfgvqbmwfb/]bgjqfnsqfpbnlnfmwlmvfpwqlsqjnfqbwqbu/Epdqb`jbpmvfpwqbsql`fplfpwbglp`bojgbgsfqplmbm/Vnfqlb`vfqgln/Vpj`bnjfnaqllefqwbpbodvmlpsb/Apfpfifnsolgfqf`klbgfn/Mpsqjubglbdqfdbqfmob`fpslpjaofklwfofppfujoobsqjnfql/Vowjnlfufmwlpbq`kjul`vowvqbnvifqfpfmwqbgbbmvm`jlfnabqdlnfq`bgldqbmgfpfpwvgjlnfilqfpefaqfqlgjpf/]lwvqjpnl`/_gjdlslqwbgbfpsb`jlebnjojbbmwlmjlsfqnjwfdvbqgbqbodvmbpsqf`jlpbodvjfmpfmwjglujpjwbpw/Awvol`lml`fqpfdvmgl`lmpfileqbm`jbnjmvwlppfdvmgbwfmfnlpfef`wlpn/Mobdbpfpj/_mqfujpwbdqbmbgb`lnsqbqjmdqfpldbq`/Abb``j/_mf`vbglqrvjfmfpjm`ovplgfafq/Mnbwfqjbklnaqfpnvfpwqbslgq/Abnb/]bmb/Vowjnbfpwbnlplej`jbowbnajfmmjmd/Vmpbovglpslgfnlpnfilqbqslpjwjlmavpjmfppklnfsbdfpf`vqjwzobmdvbdfpwbmgbqg`bnsbjdmefbwvqfp`bwfdlqzf{wfqmbo`kjogqfmqfpfqufgqfpfbq`kf{`kbmdfebulqjwfwfnsobwfnjojwbqzjmgvpwqzpfquj`fpnbwfqjbosqlgv`wpy.jmgf{9`lnnfmwpplewtbqf`lnsofwf`bofmgbqsobwelqnbqwj`ofpqfrvjqfgnlufnfmwrvfpwjlmavjogjmdslojwj`pslppjaofqfojdjlmskzpj`boeffgab`hqfdjpwfqsj`wvqfpgjpbaofgsqlwl`lobvgjfm`fpfwwjmdpb`wjujwzfofnfmwpofbqmjmdbmzwkjmdbapwqb`wsqldqfpplufqujftnbdbyjmff`lmlnj`wqbjmjmdsqfppvqfubqjlvp#?pwqlmd=sqlsfqwzpklssjmdwldfwkfqbgubm`fgafkbujlqgltmolbgefbwvqfgellwaboopfof`wfgObmdvbdfgjpwbm`fqfnfnafqwqb`hjmdsbpptlqgnlgjejfgpwvgfmwpgjqf`wozejdkwjmdmlqwkfqmgbwbabpfefpwjuboaqfbhjmdol`bwjlmjmwfqmfwgqlsgltmsqb`wj`ffujgfm`fevm`wjlmnbqqjbdfqfpslmpfsqlaofnpmfdbwjufsqldqbnpbmbozpjpqfofbpfgabmmfq!=svq`kbpfsloj`jfpqfdjlmbo`qfbwjufbqdvnfmwallhnbqhqfefqqfq`kfnj`bogjujpjlm`booab`hpfsbqbwfsqlif`wp`lmeoj`wkbqgtbqfjmwfqfpwgfojufqznlvmwbjmlawbjmfg>#ebopf8elq+ubq#b``fswfg`bsb`jwz`lnsvwfqjgfmwjwzbjq`qbewfnsolzfgsqlslpfgglnfpwj`jm`ovgfpsqlujgfgklpsjwboufqwj`bo`loobspfbssqlb`ksbqwmfqpoldl!=?bgbvdkwfqbvwklq!#`vowvqboebnjojfp,jnbdfp,bppfnaozsltfqevowfb`kjmdejmjpkfggjpwqj`w`qjwj`bo`dj.ajm,svqslpfpqfrvjqfpfof`wjlmaf`lnjmdsqlujgfpb`bgfnj`f{fq`jpfb`wvbooznfgj`jmf`lmpwbmwb``jgfmwNbdbyjmfgl`vnfmwpwbqwjmdalwwln!=lapfqufg9#%rvlw8f{wfmgfgsqfujlvpPlewtbqf`vpwlnfqgf`jpjlmpwqfmdwkgfwbjofgpojdkwozsobmmjmdwf{wbqfb`vqqfm`zfufqzlmfpwqbjdkwwqbmpefqslpjwjufsqlgv`fgkfqjwbdfpkjssjmdbaplovwfqf`fjufgqfofubmwavwwlm!#ujlofm`fbmztkfqfafmfejwpobvm`kfgqf`fmwozboojbm`felooltfgnvowjsofavoofwjmjm`ovgfgl``vqqfgjmwfqmbo\'+wkjp*-qfsvaoj`=?wq=?wg`lmdqfppqf`lqgfgvowjnbwfplovwjlm?vo#jg>!gjp`lufqKlnf?,b=tfapjwfpmfwtlqhpbowklvdkfmwjqfoznfnlqjbonfppbdfp`lmwjmvfb`wjuf!=plnftkbwuj`wlqjbTfpwfqm##wjwof>!Ol`bwjlm`lmwqb`wujpjwlqpGltmolbgtjwklvw#qjdkw!=\tnfbpvqfptjgwk#>#ubqjbaofjmuloufgujqdjmjbmlqnboozkbssfmfgb``lvmwppwbmgjmdmbwjlmboQfdjpwfqsqfsbqfg`lmwqlopb``vqbwfajqwkgbzpwqbwfdzleej`jbodqbskj`p`qjnjmboslppjaoz`lmpvnfqSfqplmbopsfbhjmdubojgbwfb`kjfufg-isd!#,=nb`kjmfp?,k1=\t##hfztlqgpeqjfmgozaqlwkfqp`lnajmfglqjdjmbo`lnslpfgf{sf`wfgbgfrvbwfsbhjpwbmeloolt!#ubovbaof?,obafo=qfobwjufaqjmdjmdjm`qfbpfdlufqmlqsovdjmp,Ojpw#le#Kfbgfq!=!#mbnf>!#+%rvlw8dqbgvbwf?,kfbg=\t`lnnfq`fnbobzpjbgjqf`wlqnbjmwbjm8kfjdkw9p`kfgvof`kbmdjmdab`h#wl#`bwkloj`sbwwfqmp`lolq9# dqfbwfpwpvssojfpqfojbaof?,vo=\t\n\n?pfof`w#`jwjyfmp`olwkjmdtbw`kjmd?oj#jg>!psf`jej``bqqzjmdpfmwfm`f?`fmwfq=`lmwqbpwwkjmhjmd`bw`k+f*plvwkfqmNj`kbfo#nfq`kbmw`bqlvpfosbggjmd9jmwfqjlq-psojw+!ojybwjlmL`wlafq#*xqfwvqmjnsqlufg..%dw8\t\t`lufqbdf`kbjqnbm-smd!#,=pvaif`wpQj`kbqg#tkbwfufqsqlabaozqf`lufqzabpfabooivgdnfmw`lmmf`w--`pp!#,=#tfapjwfqfslqwfggfebvow!,=?,b=\x0e\tfof`wqj`p`lwobmg`qfbwjlmrvbmwjwz-#JPAM#3gjg#mlw#jmpwbm`f.pfbq`k.!#obmd>!psfbhfqp@lnsvwfq`lmwbjmpbq`kjufpnjmjpwfqqfb`wjlmgjp`lvmwJwbojbml`qjwfqjbpwqlmdoz9#$kwws9$p`qjsw$`lufqjmdleefqjmdbssfbqfgAqjwjpk#jgfmwjezEb`fallhmvnfqlvpufkj`ofp`lm`fqmpBnfqj`bmkbmgojmdgju#jg>!Tjoojbn#sqlujgfq\\`lmwfmwb``vqb`zpf`wjlm#bmgfqplmeof{jaof@bwfdlqzobtqfm`f?p`qjsw=obzlvw>!bssqlufg#nb{jnvnkfbgfq!=?,wbaof=Pfquj`fpkbnjowlm`vqqfmw#`bmbgjbm`kbmmfop,wkfnfp,,bqwj`oflswjlmboslqwvdboubovf>!!jmwfqubotjqfofppfmwjwofgbdfm`jfpPfbq`k!#nfbpvqfgwklvpbmgpsfmgjmd%kfoojs8mft#Gbwf!#pjyf>!sbdfMbnfnjggof!#!#,=?,b=kjggfm!=pfrvfm`fsfqplmbolufqeoltlsjmjlmpjoojmljpojmhp!=\t\n?wjwof=ufqpjlmppbwvqgbzwfqnjmbojwfnsqlsfmdjmffqpf`wjlmpgfpjdmfqsqlslpbo>!ebopf!Fpsb/]loqfofbpfppvanjw!#fq%rvlw8bggjwjlmpznswlnplqjfmwfgqfplvq`fqjdkw!=?sofbpvqfpwbwjlmpkjpwlqz-ofbujmd##alqgfq>`lmwfmwp`fmwfq!=-\t\tPlnf#gjqf`wfgpvjwbaofavodbqjb-pklt+*8gfpjdmfgDfmfqbo#`lm`fswpF{bnsofptjoojbnpLqjdjmbo!=?psbm=pfbq`k!=lsfqbwlqqfrvfpwpb#%rvlw8booltjmdGl`vnfmwqfujpjlm-#\t\tWkf#zlvqpfoe@lmwb`w#nj`kjdbmFmdojpk#`lovnajbsqjlqjwzsqjmwjmdgqjmhjmdeb`jojwzqfwvqmfg@lmwfmw#leej`fqpQvppjbm#dfmfqbwf.;;6:.2!jmgj`bwfebnjojbq#rvbojwznbqdjm93#`lmwfmwujftslqw`lmwb`wp.wjwof!=slqwbaof-ofmdwk#fojdjaofjmuloufpbwobmwj`lmolbg>!gfebvow-pvssojfgsbznfmwpdolppbqz\t\tBewfq#dvjgbm`f?,wg=?wgfm`lgjmdnjggof!=`bnf#wl#gjpsobzpp`lwwjpkilmbwkbmnbilqjwztjgdfwp-`ojmj`bowkbjobmgwfb`kfqp?kfbg=\t\nbeef`wfgpvsslqwpsljmwfq8wlPwqjmd?,pnboo=lhobklnbtjoo#af#jmufpwlq3!#bow>!klojgbzpQfplvq`foj`fmpfg#+tkj`k#-#Bewfq#`lmpjgfqujpjwjmdf{solqfqsqjnbqz#pfbq`k!#bmgqljg!rvj`hoz#nffwjmdpfpwjnbwf8qfwvqm#8`lolq9 #kfjdkw>bssqlubo/#%rvlw8#`kf`hfg-njm-ip!nbdmfwj`=?,b=?,kelqf`bpw-#Tkjof#wkvqpgbzgufqwjpf%fb`vwf8kbp@obppfubovbwflqgfqjmdf{jpwjmdsbwjfmwp#Lmojmf#`lolqbglLswjlmp!`bnsafoo?"..#fmg?,psbm=??aq#,=\x0e\t\\slsvsp\x7fp`jfm`fp/%rvlw8#rvbojwz#Tjmgltp#bppjdmfgkfjdkw9#?a#`obppof%rvlw8#ubovf>!#@lnsbmzf{bnsofp?jeqbnf#afojfufpsqfpfmwpnbqpkboosbqw#le#sqlsfqoz*-\t\tWkf#wb{lmlnznv`k#le#?,psbm=\t!#gbwb.pqwvdv/Fpp`qlooWl#sqlif`w?kfbg=\x0e\tbwwlqmfzfnskbpjppslmplqpebm`zal{tlqog$p#tjogojef`kf`hfg>pfppjlmpsqldqbnns{8elmw.#Sqlif`wilvqmbopafojfufgub`bwjlmwklnsplmojdkwjmdbmg#wkf#psf`jbo#alqgfq>3`kf`hjmd?,walgz=?avwwlm#@lnsofwf`ofbqej{\t?kfbg=\tbqwj`of#?pf`wjlmejmgjmdpqlof#jm#slsvobq##L`wlafqtfapjwf#f{slpvqfvpfg#wl##`kbmdfplsfqbwfg`oj`hjmdfmwfqjmd`lnnbmgpjmelqnfg#mvnafqp##?,gju=`qfbwjmdlmPvanjwnbqzobmg`loofdfpbmbozwj`ojpwjmdp`lmwb`w-olddfgJmbgujplqzpjaojmdp`lmwfmw!p%rvlw8*p-#Wkjp#sb`hbdfp`kf`hal{pvddfpwpsqfdmbmwwlnlqqltpsb`jmd>j`lm-smdibsbmfpf`lgfabpfavwwlm!=dbnaojmdpv`k#bp#/#tkjof#?,psbm=#njpplvqjpslqwjmdwls92s{#-?,psbm=wfmpjlmptjgwk>!1obyzolbgmlufnafqvpfg#jm#kfjdkw>!`qjsw!=\t%maps8?,?wq=?wg#kfjdkw91,sqlgv`w`lvmwqz#jm`ovgf#ellwfq!#%ow8"..#wjwof!=?,irvfqz-?,elqn=\t+\vBl\bQ\x7f*+\vUm\x05Gx*kqubwphjjwbojbmlqln/Nm(ow/Pqh/Kf4K4]4C5dwbnaj/Emmlwj`jbpnfmpbifpsfqplmbpgfqf`klpmb`jlmbopfquj`jl`lmwb`wlvpvbqjlpsqldqbnbdlajfqmlfnsqfpbpbmvm`jlpubofm`jb`lolnajbgfpsv/Epgfslqwfpsqlzf`wlsqlgv`wls/Vaoj`lmlplwqlpkjpwlqjbsqfpfmwfnjoolmfpnfgjbmwfsqfdvmwbbmwfqjlqqf`vqplpsqlaofnbpbmwjbdlmvfpwqlplsjmj/_mjnsqjnjqnjfmwqbpbn/Eqj`bufmgfglqpl`jfgbgqfpsf`wlqfbojybqqfdjpwqlsbobaqbpjmwfq/Epfmwlm`fpfpsf`jbonjfnaqlpqfbojgbg`/_qglabybqbdlybs/Mdjmbppl`jbofpaolrvfbqdfpwj/_mborvjofqpjpwfnbp`jfm`jbp`lnsofwlufqpj/_m`lnsofwbfpwvgjlps/Vaoj`blaifwjulboj`bmwfavp`bglq`bmwjgbgfmwqbgbpb``jlmfpbq`kjulppvsfqjlqnbzlq/Abbofnbmjbevm`j/_m/Vowjnlpkb`jfmglbrvfoolpfgj`j/_mefqmbmglbnajfmwfeb`fallhmvfpwqbp`ojfmwfpsql`fplpabpwbmwfsqfpfmwbqfslqwbq`lmdqfplsvaoj`bq`lnfq`jl`lmwqbwli/_ufmfpgjpwqjwlw/E`mj`b`lmivmwlfmfqd/Abwqbabibqbpwvqjbpqf`jfmwfvwjojybqalofw/Ampboubglq`lqqf`wbwqbabilpsqjnfqlpmfdl`jlpojafqwbggfwboofpsbmwboobsq/_{jnlbonfq/Abbmjnbofprvj/Emfp`lqby/_mpf``j/_mavp`bmglls`jlmfpf{wfqjlq`lm`fswlwlgbu/Abdbofq/Abfp`qjajqnfgj`jmboj`fm`jb`lmpvowbbpsf`wlp`q/Awj`bg/_obqfpivpwj`jbgfafq/Mmsfq/Alglmf`fpjwbnbmwfmfqsfrvf/]lqf`jajgbwqjavmbowfmfqjef`bm`j/_m`bmbqjbpgfp`bqdbgjufqplpnboolq`bqfrvjfqfw/E`mj`lgfafq/Abujujfmgbejmbmybpbgfobmwfevm`jlmb`lmpfilpgje/A`jo`jvgbgfpbmwjdvbpbubmybgbw/Eqnjmlvmjgbgfpp/Mm`kfy`bnsb/]bplewlmj`qfujpwbp`lmwjfmfpf`wlqfpnlnfmwlpeb`vowbg`q/Egjwlgjufqpbppvsvfpwleb`wlqfppfdvmglpsfrvf/]b<_<R<X<\\<Y=m<W<T<Y=m=n=`<]=g<W<R<]=g=n=`=a=n<R<P<y=m<W<T=n<R<_<R<P<Y<Q=c<^=m<Y=i=a=n<R<U<X<\\<Z<Y<]=g<W<T<_<R<X=o<X<Y<Q=`=a=n<R=n<]=g<W<\\=m<Y<]=c<R<X<T<Q=m<Y<]<Y<Q<\\<X<R=m<\\<U=n=h<R=n<R<Q<Y<_<R=m<^<R<T=m<^<R<U<T<_=l=g=n<R<Z<Y<^=m<Y<P=m<^<R=b<W<T=d=`=a=n<T=i<S<R<V<\\<X<Q<Y<U<X<R<P<\\<P<T=l<\\<W<T<]<R=n<Y<P=o=i<R=n=c<X<^=o=i=m<Y=n<T<W=b<X<T<X<Y<W<R<P<T=l<Y=n<Y<]=c=m<^<R<Y<^<T<X<Y=k<Y<_<R=a=n<T<P=m=k<Y=n=n<Y<P=g=j<Y<Q=g=m=n<\\<W<^<Y<X=`=n<Y<P<Y<^<R<X=g=n<Y<]<Y<^=g=d<Y<Q<\\<P<T=n<T<S<\\=n<R<P=o<S=l<\\<^<W<T=j<\\<R<X<Q<\\<_<R<X=g<[<Q<\\=b<P<R<_=o<X=l=o<_<^=m<Y<U<T<X<Y=n<V<T<Q<R<R<X<Q<R<X<Y<W<\\<X<Y<W<Y=m=l<R<V<T=b<Q=c<^<Y=m=`<y=m=n=`=l<\\<[<\\<Q<\\=d<T4K5h5h5k4K5h4F5f4@5i5f4U4B4K4Y4E4K5h4\\5f4U5h5f5k4@4C5f4C4K5h4N5j4K5h4]4C4F4A5o5i4Y5m4A4E5o4K5j4F4K5h5h5f5f5o5d5j4X4D5o4E5m5f5k4K4D5j4K4F4A5d4K4M4O5o4G4]4B5h4K5h4K5h4A4D4C5h5f5h4C4]5d4_4K4Z4V4[4F5o5d5j5k5j4K5o4_4K4A4E5j4K4C5f4K5h4[4D4U5h5f5o4X5o4]4K5f5i5o5j5i5j5k4K4X4]5o4E4]4J5f4_5j4X5f4[5i4K4\\4K4K5h5m5j4X4D4K4D4F4U4D4]4]4A5i4E5o4K5m4E5f5n5d5h5i4]5o4^5o5h5i4E4O4A5i4C5n5h4D5f5f4U5j5f4Y5d4]4E4[4]5f5n4X4K4]5o4@5d4K5h4O4B4]5e5i4U5j4K4K4D4A4G4U4]5d4Z4D4X5o5h5i4_4@5h4D5j4K5j4B4K5h4C5o4F4K4D5o5h5f4E4D4C5d5j4O5f4Z4K5f5d4@4C5m4]5f5n5o4F4D4F4O5m4Z5h5i4[4D4B4K5o4G4]4D4K4]5o4K5m4Z5h4K4A5h5e5j5m4_5k4O5f4K5i4]4C5d4C4O5j5k4K4C5f5j4K4K5h4K5j5i4U4]4Z4F4U5h5i4C4K4B5h5i5i5o5j\x03\x03\x03\x03\x03\x03\x03\x03\x02\x03\x02\x03\x02\x03\x02\x03\x01\x03\x01\x03\x01\x03\x01\x03\x07\x03\x07\x03\x07\x03\x07\x03\x03\x02\x01\0\x07\x06\x05\x04\x04\x05\x06\x07\0\x01\x02\x03\v\n\t\b\x0f\x0e\r\f\f\r\x0e\x0f\b\t\n\v\x13\x12\x11\x10\x17\x16\x15\x14\x14\x15\x16\x17\x10\x11\x12\x13\x1b\x1a\x19\x18\x1f\x1e\x1d\x1c\x1c\x1d\x1e\x1f\x18\x19\x1a\x1b\x13\x13\x13\x13\x03\x03\x03\x03\x03\x03\x03\x03\x13\x13\x13\x13\x02\x03\x03\x03\x01\x03\x03\x03\x01\x03\x03\x03\x02\x03\x03\x03\x02\x03\x03\x03\0\x03\x03\x03\x13\x13\x03\x02\x03\x03\x03\x02\x03\x03\x13\x13\x03\x02\x03\x03\x03\v\x03\v\x03\v\x03\v\x03\x03\x03\x02\x03\x01\x03\0\x03\x07\x03\x06\x03\x05\x03\x04qfplvq`fp`lvmwqjfprvfpwjlmpfrvjsnfmw`lnnvmjwzbubjobaofkjdkojdkwGWG,{kwnonbqhfwjmdhmltofgdfplnfwkjmd`lmwbjmfqgjqf`wjlmpvap`qjafbgufqwjpf`kbqb`wfq!#ubovf>!?,pfof`w=Bvpwqbojb!#`obpp>!pjwvbwjlmbvwklqjwzelooltjmdsqjnbqjozlsfqbwjlm`kboofmdfgfufolsfgbmlmznlvpevm`wjlm#evm`wjlmp`lnsbmjfppwqv`wvqfbdqffnfmw!#wjwof>!slwfmwjbofgv`bwjlmbqdvnfmwppf`lmgbqz`lszqjdkwobmdvbdfpf{`ovpjuf`lmgjwjlm?,elqn=\x0e\tpwbwfnfmwbwwfmwjlmAjldqbskz~#fopf#x\tplovwjlmptkfm#wkf#Bmbozwj`pwfnsobwfpgbmdfqlvppbwfoojwfgl`vnfmwpsvaojpkfqjnslqwbmwsqlwlwzsfjmeovfm`f%qbrvl8?,feef`wjufdfmfqboozwqbmpelqnafbvwjevowqbmpslqwlqdbmjyfgsvaojpkfgsqlnjmfmwvmwjo#wkfwkvnambjoMbwjlmbo#-el`vp+*8lufq#wkf#njdqbwjlmbmmlvm`fgellwfq!=\tf{`fswjlmofpp#wkbmf{sfmpjufelqnbwjlmeqbnftlqhwfqqjwlqzmgj`bwjlm`vqqfmwoz`obppMbnf`qjwj`jpnwqbgjwjlmfopftkfqfBof{bmgfqbssljmwfgnbwfqjbopaqlbg`bpwnfmwjlmfgbeejojbwf?,lswjlm=wqfbwnfmwgjeefqfmw,gfebvow-Sqfpjgfmwlm`oj`h>!ajldqbskzlwkfqtjpfsfqnbmfmwEqbm/KbjpKlooztllgf{sbmpjlmpwbmgbqgp?,pwzof=\tqfgv`wjlmGf`fnafq#sqfefqqfg@bnaqjgdflsslmfmwpAvpjmfpp#`lmevpjlm=\t?wjwof=sqfpfmwfgf{sobjmfgglfp#mlw#tlqogtjgfjmwfqeb`fslpjwjlmpmftpsbsfq?,wbaof=\tnlvmwbjmpojhf#wkf#fppfmwjboejmbm`jbopfof`wjlmb`wjlm>!,babmglmfgFgv`bwjlmsbqpfJmw+pwbajojwzvmbaof#wl?,wjwof=\tqfobwjlmpMlwf#wkbwfeej`jfmwsfqelqnfgwtl#zfbqpPjm`f#wkfwkfqfelqftqbssfq!=bowfqmbwfjm`qfbpfgAbwwof#lesfq`fjufgwqzjmd#wlmf`fppbqzslqwqbzfgfof`wjlmpFojybafwk?,jeqbnf=gjp`lufqzjmpvqbm`fp-ofmdwk8ofdfmgbqzDfldqbskz`bmgjgbwf`lqslqbwfplnfwjnfppfquj`fp-jmkfqjwfg?,pwqlmd=@lnnvmjwzqfojdjlvpol`bwjlmp@lnnjwwffavjogjmdpwkf#tlqogml#olmdfqafdjmmjmdqfefqfm`f`bmmlw#afeqfrvfm`zwzsj`boozjmwl#wkf#qfobwjuf8qf`lqgjmdsqfpjgfmwjmjwjboozwf`kmjrvfwkf#lwkfqjw#`bm#aff{jpwfm`fvmgfqojmfwkjp#wjnfwfofsklmfjwfnp`lsfsqb`wj`fpbgubmwbdf*8qfwvqm#Elq#lwkfqsqlujgjmdgfnl`qb`zalwk#wkf#f{wfmpjufpveefqjmdpvsslqwfg`lnsvwfqp#evm`wjlmsqb`wj`bopbjg#wkbwjw#nbz#afFmdojpk?,eqln#wkf#p`kfgvofggltmolbgp?,obafo=\tpvpsf`wfgnbqdjm9#3psjqjwvbo?,kfbg=\t\tnj`qlplewdqbgvboozgjp`vppfgkf#af`bnff{f`vwjufirvfqz-ipklvpfklog`lmejqnfgsvq`kbpfgojwfqboozgfpwqlzfgvs#wl#wkfubqjbwjlmqfnbjmjmdjw#jp#mlw`fmwvqjfpIbsbmfpf#bnlmd#wkf`lnsofwfgbodlqjwknjmwfqfpwpqfafoojlmvmgfejmfgfm`lvqbdfqfpjybaofjmuloujmdpfmpjwjufvmjufqpbosqlujpjlm+bowklvdkefbwvqjmd`lmgv`wfg*/#tkj`k#`lmwjmvfg.kfbgfq!=Efaqvbqz#mvnfqlvp#lufqeolt9`lnslmfmweqbdnfmwpf{`foofmw`lopsbm>!wf`kmj`bomfbq#wkf#Bgubm`fg#plvq`f#lef{sqfppfgKlmd#Hlmd#Eb`fallhnvowjsof#nf`kbmjpnfofubwjlmleefmpjuf?,elqn=\t\npslmplqfggl`vnfmw-lq#%rvlw8wkfqf#bqfwklpf#tklnlufnfmwpsql`fppfpgjeej`vowpvanjwwfgqf`lnnfmg`lmujm`fgsqlnlwjmd!#tjgwk>!-qfsob`f+`obppj`bo`lbojwjlmkjp#ejqpwgf`jpjlmpbppjpwbmwjmgj`bwfgfulovwjlm.tqbssfq!fmlvdk#wlbolmd#wkfgfojufqfg..=\x0e\t?"..Bnfqj`bm#sqlwf`wfgMlufnafq#?,pwzof=?evqmjwvqfJmwfqmfw##lmaovq>!pvpsfmgfgqf`jsjfmwabpfg#lm#Nlqflufq/balojpkfg`loof`wfgtfqf#nbgffnlwjlmbofnfqdfm`zmbqqbwjufbgul`bwfps{8alqgfq`lnnjwwfggjq>!owq!fnsolzffpqfpfbq`k-#pfof`wfgpv``fpplq`vpwlnfqpgjpsobzfgPfswfnafqbgg@obpp+Eb`fallh#pvddfpwfgbmg#obwfqlsfqbwjmdfobalqbwfPlnfwjnfpJmpwjwvwf`fqwbjmozjmpwboofgelooltfqpIfqvpbofnwkfz#kbuf`lnsvwjmddfmfqbwfgsqlujm`fpdvbqbmwffbqajwqbqzqf`ldmjyftbmwfg#wls{8tjgwk9wkflqz#leafkbujlvqTkjof#wkffpwjnbwfgafdbm#wl#jw#af`bnfnbdmjwvgfnvpw#kbufnlqf#wkbmGjqf`wlqzf{wfmpjlmpf`qfwbqzmbwvqboozl``vqqjmdubqjbaofpdjufm#wkfsobwelqn-?,obafo=?ebjofg#wl`lnslvmgphjmgp#le#pl`jfwjfpbolmdpjgf#..%dw8\t\tplvwktfpwwkf#qjdkwqbgjbwjlmnbz#kbuf#vmfp`bsf+pslhfm#jm!#kqfe>!,sqldqbnnflmoz#wkf#`lnf#eqlngjqf`wlqzavqjfg#jmb#pjnjobqwkfz#tfqf?,elmw=?,Mlqtfdjbmpsf`jejfgsqlgv`jmdsbppfmdfq+mft#Gbwfwfnslqbqzej`wjlmboBewfq#wkffrvbwjlmpgltmolbg-qfdvobqozgfufolsfqbaluf#wkfojmhfg#wlskfmlnfmbsfqjlg#lewllowjs!=pvapwbm`fbvwlnbwj`bpsf`w#leBnlmd#wkf`lmmf`wfgfpwjnbwfpBjq#Elq`fpzpwfn#lelaif`wjufjnnfgjbwfnbhjmd#jwsbjmwjmdp`lmrvfqfgbqf#pwjoosql`fgvqfdqltwk#lekfbgfg#azFvqlsfbm#gjujpjlmpnlof`vofpeqbm`kjpfjmwfmwjlmbwwqb`wfg`kjogkllgbopl#vpfggfgj`bwfgpjmdbslqfgfdqff#leebwkfq#le`lmeoj`wp?,b=?,s=\t`bnf#eqlntfqf#vpfgmlwf#wkbwqf`fjujmdF{f`vwjuffufm#nlqfb``fpp#wl`lnnbmgfqSlojwj`bonvpj`jbmpgfoj`jlvpsqjplmfqpbgufmw#leVWE.;!#,=?"X@GBWBX!=@lmwb`wPlvwkfqm#ad`lolq>!pfqjfp#le-#Jw#tbp#jm#Fvqlsfsfqnjwwfgubojgbwf-bssfbqjmdleej`jboppfqjlvpoz.obmdvbdfjmjwjbwfgf{wfmgjmdolmd.wfqnjmeobwjlmpv`k#wkbwdfw@llhjfnbqhfg#az?,avwwlm=jnsofnfmwavw#jw#jpjm`qfbpfpgltm#wkf#qfrvjqjmdgfsfmgfmw..=\t?"..#jmwfqujftTjwk#wkf#`lsjfp#le`lmpfmpvptbp#avjowUfmfyvfob+elqnfqozwkf#pwbwfsfqplmmfopwqbwfdj`ebulvq#lejmufmwjlmTjhjsfgjb`lmwjmfmwujqwvbooztkj`k#tbpsqjm`jsof@lnsofwf#jgfmwj`bopklt#wkbwsqjnjwjufbtbz#eqlnnlof`vobqsqf`jpfozgjpploufgVmgfq#wkfufqpjlm>!=%maps8?,Jw#jp#wkf#Wkjp#jp#tjoo#kbuflqdbmjpnpplnf#wjnfEqjfgqj`ktbp#ejqpwwkf#lmoz#eb`w#wkbwelqn#jg>!sqf`fgjmdWf`kmj`boskzpj`jpwl``vqp#jmmbujdbwlqpf`wjlm!=psbm#jg>!plvdkw#wlafolt#wkfpvqujujmd~?,pwzof=kjp#gfbwkbp#jm#wkf`bvpfg#azsbqwjboozf{jpwjmd#vpjmd#wkftbp#djufmb#ojpw#leofufop#lemlwjlm#leLeej`jbo#gjpnjppfgp`jfmwjpwqfpfnaofpgvsoj`bwff{solpjufqf`lufqfgboo#lwkfqdboofqjfpxsbggjmd9sflsof#leqfdjlm#lebggqfppfpbppl`jbwfjnd#bow>!jm#nlgfqmpklvog#afnfwklg#leqfslqwjmdwjnfpwbnsmffgfg#wlwkf#Dqfbwqfdbqgjmdpffnfg#wlujftfg#bpjnsb`w#lmjgfb#wkbwwkf#Tlqogkfjdkw#lef{sbmgjmdWkfpf#bqf`vqqfmw!=`bqfevooznbjmwbjmp`kbqdf#le@obppj`bobggqfppfgsqfgj`wfgltmfqpkjs?gju#jg>!qjdkw!=\x0e\tqfpjgfm`fofbuf#wkf`lmwfmw!=bqf#lewfm##~*+*8\x0e\tsqlabaoz#Sqlefpplq.avwwlm!#qfpslmgfgpbzp#wkbwkbg#wl#afsob`fg#jmKvmdbqjbmpwbwvp#lepfqufp#bpVmjufqpbof{f`vwjlmbddqfdbwfelq#tkj`kjmef`wjlmbdqffg#wlkltfufq/#slsvobq!=sob`fg#lm`lmpwqv`wfof`wlqbopznalo#lejm`ovgjmdqfwvqm#wlbq`kjwf`w@kqjpwjbmsqfujlvp#ojujmd#jmfbpjfq#wlsqlefpplq\t%ow8"..#feef`w#lebmbozwj`ptbp#wbhfmtkfqf#wkfwllh#lufqafojfe#jmBeqjhbbmpbp#ebq#bpsqfufmwfgtlqh#tjwkb#psf`jbo?ejfogpfw@kqjpwnbpQfwqjfufg\t\tJm#wkf#ab`h#jmwlmlqwkfbpwnbdbyjmfp=?pwqlmd=`lnnjwwffdlufqmjmddqlvsp#lepwlqfg#jmfpwbaojpkb#dfmfqbojwp#ejqpwwkfjq#ltmslsvobwfgbm#laif`w@bqjaafbmboolt#wkfgjpwqj`wptjp`lmpjmol`bwjlm-8#tjgwk9#jmkbajwfgPl`jbojpwIbmvbqz#2?,ellwfq=pjnjobqoz`klj`f#lewkf#pbnf#psf`jej`#avpjmfpp#Wkf#ejqpw-ofmdwk8#gfpjqf#wlgfbo#tjwkpjm`f#wkfvpfqBdfmw`lm`fjufgjmgf{-sksbp#%rvlw8fmdbdf#jmqf`fmwoz/eft#zfbqptfqf#bopl\t?kfbg=\t?fgjwfg#azbqf#hmltm`jwjfp#jmb``fpphfz`lmgfnmfgbopl#kbufpfquj`fp/ebnjoz#leP`kllo#le`lmufqwfgmbwvqf#le#obmdvbdfnjmjpwfqp?,laif`w=wkfqf#jp#b#slsvobqpfrvfm`fpbgul`bwfgWkfz#tfqfbmz#lwkfqol`bwjlm>fmwfq#wkfnv`k#nlqfqfeof`wfgtbp#mbnfglqjdjmbo#b#wzsj`botkfm#wkfzfmdjmffqp`lvog#mlwqfpjgfmwptfgmfpgbzwkf#wkjqg#sqlgv`wpIbmvbqz#1tkbw#wkfzb#`fqwbjmqfb`wjlmpsql`fpplqbewfq#kjpwkf#obpw#`lmwbjmfg!=?,gju=\t?,b=?,wg=gfsfmg#lmpfbq`k!=\tsjf`fp#le`lnsfwjmdQfefqfm`fwfmmfppfftkj`k#kbp#ufqpjlm>?,psbm=#??,kfbgfq=djufp#wkfkjpwlqjbmubovf>!!=sbggjmd93ujft#wkbwwldfwkfq/wkf#nlpw#tbp#elvmgpvapfw#lebwwb`h#lm`kjogqfm/sljmwp#lesfqplmbo#slpjwjlm9boofdfgoz@ofufobmgtbp#obwfqbmg#bewfqbqf#djufmtbp#pwjoop`qloojmdgfpjdm#lenbhfp#wkfnv`k#ofppBnfqj`bmp-\t\tBewfq#/#avw#wkfNvpfvn#leolvjpjbmb+eqln#wkfnjmmfplwbsbqwj`ofpb#sql`fppGlnjmj`bmulovnf#leqfwvqmjmdgfefmpjuf33s{\x7fqjdknbgf#eqlnnlvpflufq!#pwzof>!pwbwfp#le+tkj`k#jp`lmwjmvfpEqbm`jp`lavjogjmd#tjwklvw#btjwk#plnftkl#tlvogb#elqn#leb#sbqw#leafelqf#jwhmltm#bp##Pfquj`fpol`bwjlm#bmg#lewfmnfbpvqjmdbmg#jw#jpsbsfqab`hubovfp#le\x0e\t?wjwof=>#tjmglt-gfwfqnjmffq%rvlw8#sobzfg#azbmg#fbqoz?,`fmwfq=eqln#wkjpwkf#wkqffsltfq#bmgle#%rvlw8jmmfqKWNO?b#kqfe>!z9jmojmf8@kvq`k#lewkf#fufmwufqz#kjdkleej`jbo#.kfjdkw9#`lmwfmw>!,`dj.ajm,wl#`qfbwfbeqjhbbmpfpsfqbmwleqbm/Kbjpobwujf)Mvojfwvuj)_(`f)Mwjmb(af)Mwjmb\fUh\fT{\fTN\n{I\np@\x04Fr\vBl\bQ\x7f\tA{\vUm\x05Gx\tA{\x01yp\x06YA\0zX\bTV\bWl\bUd\x04BM\vB{\npV\v@x\x04B\\\np@\x04Db\x04Gz\tal\npa\tfM\tuD\bV~\x04mx\vQ}\ndS\tp\\\bVK\bS]\bU|\x05oD\tkV\ved\vHR\nb~\x04M`\nJp\x05oD\x04|Q\nLP\x04Sw\bTl\nAI\nxC\bWt\tBq\x05F`\x04Cm\vLm\tKx\t}t\bPv\ny\\\naB\tV\x7f\nZd\x04XU\x04li\tfr\ti@\tBH\x04BD\x04BV\t`V\n[]\tp_\tTn\n~A\nxR\tuD\t`{\bV@\tTn\tHK\tAJ\vxs\x04Zf\nqI\x04Zf\vBM\v|j\t}t\bSM\nmC\vQ}pfquj`jlpbqw/A`volbqdfmwjmbabq`folmb`vborvjfqsvaoj`bglsqlgv`wlpslo/Awj`bqfpsvfpwbtjhjsfgjbpjdvjfmwfa/Vprvfgb`lnvmjgbgpfdvqjgbgsqjm`jsbosqfdvmwbp`lmwfmjglqfpslmgfqufmfyvfobsqlaofnbpgj`jfnaqfqfob`j/_mmlujfnaqfpjnjobqfpsqlzf`wlpsqldqbnbpjmpwjwvwlb`wjujgbgfm`vfmwqbf`lmln/Abjn/Mdfmfp`lmwb`wbqgfp`bqdbqmf`fpbqjlbwfm`j/_mwfo/Eelml`lnjpj/_m`bm`jlmfp`bsb`jgbgfm`lmwqbqbm/Mojpjpebulqjwlpw/Eqnjmlpsqlujm`jbfwjrvfwbpfofnfmwlpevm`jlmfpqfpvowbgl`bq/M`wfqsqlsjfgbgsqjm`jsjlmf`fpjgbgnvmj`jsbo`qfb`j/_mgfp`bqdbpsqfpfm`jb`lnfq`jbolsjmjlmfpfifq`j`jlfgjwlqjbopbobnbm`bdlmy/Mofygl`vnfmwlsfo/A`vobqf`jfmwfpdfmfqbofpwbqqbdlmbsq/M`wj`bmlufgbgfpsqlsvfpwbsb`jfmwfpw/E`mj`bplaifwjulp`lmwb`wlp\fHB\fIk\fHn\fH^\fHS\fHc\fHU\fId\fHn\fH{\fHC\fHR\fHT\fHR\fHI\fHc\fHY\fHn\fH\\\fHU\fIk\fHy\fIg\fHd\fHy\fIm\fHw\fH\\\fHU\fHR\fH@\fHR\fHJ\fHy\fHU\fHR\fHT\fHA\fIl\fHU\fIm\fHc\fH\\\fHU\fIl\fHB\fId\fHn\fHJ\fHS\fHD\fH@\fHR\fHHgjsolgl`p\fHT\fHB\fHC\fH\\\fIn\fHF\fHD\fHR\fHB\fHF\fHH\fHR\fHG\fHS\fH\\\fHx\fHT\fHH\fHH\fH\\\fHU\fH^\fIg\fH{\fHU\fIm\fHj\fH@\fHR\fH\\\fHJ\fIk\fHZ\fHU\fIm\fHd\fHz\fIk\fH^\fHC\fHJ\fHS\fHy\fHR\fHB\fHY\fIk\fH@\fHH\fIl\fHD\fH@\fIl\fHv\fHB\fI`\fHH\fHT\fHR\fH^\fH^\fIk\fHz\fHp\fIe\fH@\fHB\fHJ\fHJ\fHH\fHI\fHR\fHD\fHU\fIl\fHZ\fHU\fH\\\fHi\fH^\fH{\fHy\fHA\fIl\fHD\fH{\fH\\\fHF\fHR\fHT\fH\\\fHR\fHH\fHy\fHS\fHc\fHe\fHT\fIk\fH{\fHC\fIl\fHU\fIn\fHm\fHj\fH{\fIk\fHs\fIl\fHB\fHz\fIg\fHp\fHy\fHR\fH\\\fHi\fHA\fIl\fH{\fHC\fIk\fHH\fIm\fHB\fHY\fIg\fHs\fHJ\fIk\fHn\fHi\fH{\fH\\\fH|\fHT\fIk\fHB\fIk\fH^\fH^\fH{\fHR\fHU\fHR\fH^\fHf\fHF\fH\\\fHv\fHR\fH\\\fH|\fHT\fHR\fHJ\fIk\fH\\\fHp\fHS\fHT\fHJ\fHS\fH^\fH@\fHn\fHJ\fH@\fHD\fHR\fHU\fIn\fHn\fH^\fHR\fHz\fHp\fIl\fHH\fH@\fHs\fHD\fHB\fHS\fH^\fHk\fHT\fIk\fHj\fHD\fIk\fHD\fHC\fHR\fHy\fIm\fH^\fH^\fIe\fH{\fHA\fHR\fH{\fH\\\fIk\fH^\fHp\fH{\fHU\fH\\\fHR\fHB\fH^\fH{\fIk\fHF\fIk\fHp\fHU\fHR\fHI\fHk\fHT\fIl\fHT\fHU\fIl\fHy\fH^\fHR\fHL\fIl\fHy\fHU\fHR\fHm\fHJ\fIn\fH\\\fHH\fHU\fHH\fHT\fHR\fHH\fHC\fHR\fHJ\fHj\fHC\fHR\fHF\fHR\fHy\fHy\fI`\fHD\fHZ\fHR\fHB\fHJ\fIk\fHz\fHC\fHU\fIl\fH\\\fHR\fHC\fHz\fIm\fHJ\fH^\fH{\fIl`bwfdlqjfpf{sfqjfm`f?,wjwof=\x0e\t@lszqjdkw#ibubp`qjsw`lmgjwjlmpfufqzwkjmd?s#`obpp>!wf`kmloldzab`hdqlvmg?b#`obpp>!nbmbdfnfmw%`lsz8#132ibubP`qjsw`kbqb`wfqpaqfbg`qvnawkfnpfoufpklqjylmwbodlufqmnfmw@bojelqmjbb`wjujwjfpgjp`lufqfgMbujdbwjlmwqbmpjwjlm`lmmf`wjlmmbujdbwjlmbssfbqbm`f?,wjwof=?n`kf`hal{!#wf`kmjrvfpsqlwf`wjlmbssbqfmwozbp#tfoo#bpvmw$/#$VB.qfplovwjlmlsfqbwjlmpwfofujpjlmwqbmpobwfgTbpkjmdwlmmbujdbwlq-#>#tjmglt-jnsqfppjlm%ow8aq%dw8ojwfqbwvqfslsvobwjlmad`lolq>! fpsf`jbooz#`lmwfmw>!sqlgv`wjlmmftpofwwfqsqlsfqwjfpgfejmjwjlmofbgfqpkjsWf`kmloldzSbqojbnfmw`lnsbqjplmvo#`obpp>!-jmgf{Le+!`lm`ovpjlmgjp`vppjlm`lnslmfmwpajloldj`boQfulovwjlm\\`lmwbjmfqvmgfqpwllgmlp`qjsw=?sfqnjppjlmfb`k#lwkfqbwnlpskfqf#lmel`vp>!?elqn#jg>!sql`fppjmdwkjp-ubovfdfmfqbwjlm@lmefqfm`fpvapfrvfmwtfoo.hmltmubqjbwjlmpqfsvwbwjlmskfmlnfmlmgjp`jsojmfoldl-smd!#+gl`vnfmw/alvmgbqjfpf{sqfppjlmpfwwofnfmwAb`hdqlvmglvw#le#wkffmwfqsqjpf+!kwwsp9!#vmfp`bsf+!sbpptlqg!#gfnl`qbwj`?b#kqfe>!,tqbssfq!=\tnfnafqpkjsojmdvjpwj`s{8sbggjmdskjolplskzbppjpwbm`fvmjufqpjwzeb`jojwjfpqf`ldmjyfgsqfefqfm`fje#+wzsflenbjmwbjmfgul`bavobqzkzslwkfpjp-pvanjw+*8%bns8maps8bmmlwbwjlmafkjmg#wkfElvmgbwjlmsvaojpkfq!bppvnswjlmjmwqlgv`fg`lqqvswjlmp`jfmwjpwpf{soj`jwozjmpwfbg#legjnfmpjlmp#lm@oj`h>!`lmpjgfqfggfsbqwnfmwl``vsbwjlmpllm#bewfqjmufpwnfmwsqlmlvm`fgjgfmwjejfgf{sfqjnfmwNbmbdfnfmwdfldqbskj`!#kfjdkw>!ojmh#qfo>!-qfsob`f+,gfsqfppjlm`lmefqfm`fsvmjpknfmwfojnjmbwfgqfpjpwbm`fbgbswbwjlmlsslpjwjlmtfoo#hmltmpvssofnfmwgfwfqnjmfgk2#`obpp>!3s{8nbqdjmnf`kbmj`bopwbwjpwj`p`fofaqbwfgDlufqmnfmw\t\tGvqjmd#wgfufolsfqpbqwjej`jbofrvjubofmwlqjdjmbwfg@lnnjppjlmbwwb`knfmw?psbm#jg>!wkfqf#tfqfMfgfqobmgpafzlmg#wkfqfdjpwfqfgilvqmbojpweqfrvfmwozboo#le#wkfobmd>!fm!#?,pwzof=\x0e\tbaplovwf8#pvsslqwjmdf{wqfnfoz#nbjmpwqfbn?,pwqlmd=#slsvobqjwzfnsolznfmw?,wbaof=\x0e\t#`lopsbm>!?,elqn=\t##`lmufqpjlmbalvw#wkf#?,s=?,gju=jmwfdqbwfg!#obmd>!fmSlqwvdvfpfpvapwjwvwfjmgjujgvbojnslppjaofnvowjnfgjbbonlpw#boos{#plojg# bsbqw#eqlnpvaif`w#wljm#Fmdojpk`qjwj`jyfgf{`fsw#elqdvjgfojmfplqjdjmboozqfnbqhbaofwkf#pf`lmgk1#`obpp>!?b#wjwof>!+jm`ovgjmdsbqbnfwfqpsqlkjajwfg>#!kwws9,,gj`wjlmbqzsfq`fswjlmqfulovwjlmelvmgbwjlms{8kfjdkw9pv``fppevopvsslqwfqpnjoofmmjvnkjp#ebwkfqwkf#%rvlw8ml.qfsfbw8`lnnfq`jbojmgvpwqjbofm`lvqbdfgbnlvmw#le#vmleej`jbofeej`jfm`zQfefqfm`fp`llqgjmbwfgjp`objnfqf{sfgjwjlmgfufolsjmd`bo`vobwfgpjnsojejfgofdjwjnbwfpvapwqjmd+3!#`obpp>!`lnsofwfozjoovpwqbwfejuf#zfbqpjmpwqvnfmwSvaojpkjmd2!#`obpp>!spz`kloldz`lmejgfm`fmvnafq#le#bapfm`f#leel`vpfg#lmiljmfg#wkfpwqv`wvqfpsqfujlvpoz=?,jeqbnf=lm`f#bdbjmavw#qbwkfqjnnjdqbmwple#`lvqpf/b#dqlvs#leOjwfqbwvqfVmojhf#wkf?,b=%maps8\tevm`wjlm#jw#tbp#wkf@lmufmwjlmbvwlnlajofSqlwfpwbmwbddqfppjufbewfq#wkf#Pjnjobqoz/!#,=?,gju=`loof`wjlm\x0e\tevm`wjlmujpjajojwzwkf#vpf#leulovmwffqpbwwqb`wjlmvmgfq#wkf#wkqfbwfmfg)?"X@GBWBXjnslqwbm`fjm#dfmfqbowkf#obwwfq?,elqn=\t?,-jmgf{Le+$j#>#38#j#?gjeefqfm`fgfulwfg#wlwqbgjwjlmppfbq`k#elqvowjnbwfozwlvqmbnfmwbwwqjavwfppl.`boofg#~\t?,pwzof=fubovbwjlmfnskbpjyfgb``fppjaof?,pf`wjlm=pv``fppjlmbolmd#tjwkNfbmtkjof/jmgvpwqjfp?,b=?aq#,=kbp#af`lnfbpsf`wp#leWfofujpjlmpveej`jfmwabphfwabooalwk#pjgfp`lmwjmvjmdbm#bqwj`of?jnd#bow>!bgufmwvqfpkjp#nlwkfqnbm`kfpwfqsqjm`jsofpsbqwj`vobq`lnnfmwbqzfeef`wp#legf`jgfg#wl!=?pwqlmd=svaojpkfqpIlvqmbo#legjeej`vowzeb`jojwbwfb``fswbaofpwzof-`pp!\nevm`wjlm#jmmlubwjlm=@lszqjdkwpjwvbwjlmptlvog#kbufavpjmfppfpGj`wjlmbqzpwbwfnfmwplewfm#vpfgsfqpjpwfmwjm#Ibmvbqz`lnsqjpjmd?,wjwof=\t\ngjsolnbwj``lmwbjmjmdsfqelqnjmdf{wfmpjlmpnbz#mlw#af`lm`fsw#le#lm`oj`h>!Jw#jp#boplejmbm`jbo#nbhjmd#wkfOv{fnalvqdbggjwjlmbobqf#`boofgfmdbdfg#jm!p`qjsw!*8avw#jw#tbpfof`wqlmj`lmpvanjw>!\t?"..#Fmg#fof`wqj`boleej`jboozpvddfpwjlmwls#le#wkfvmojhf#wkfBvpwqbojbmLqjdjmboozqfefqfm`fp\t?,kfbg=\x0e\tqf`ldmjpfgjmjwjbojyfojnjwfg#wlBof{bmgqjbqfwjqfnfmwBgufmwvqfpelvq#zfbqp\t\t%ow8"..#jm`qfbpjmdgf`lqbwjlmk0#`obpp>!lqjdjmp#lelaojdbwjlmqfdvobwjlm`obppjejfg+evm`wjlm+bgubmwbdfpafjmd#wkf#kjpwlqjbmp?abpf#kqfeqfsfbwfgoztjoojmd#wl`lnsbqbaofgfpjdmbwfgmlnjmbwjlmevm`wjlmbojmpjgf#wkfqfufobwjlmfmg#le#wkfp#elq#wkf#bvwklqjyfgqfevpfg#wlwbhf#sob`fbvwlmlnlvp`lnsqlnjpfslojwj`bo#qfpwbvqbmwwtl#le#wkfEfaqvbqz#1rvbojwz#leptelaif`w-vmgfqpwbmgmfbqoz#bootqjwwfm#azjmwfqujftp!#tjgwk>!2tjwkgqbtboeolbw9ofewjp#vpvbooz`bmgjgbwfpmftpsbsfqpnzpwfqjlvpGfsbqwnfmwafpw#hmltmsbqojbnfmwpvssqfppfg`lmufmjfmwqfnfnafqfggjeefqfmw#pzpwfnbwj`kbp#ofg#wlsqlsbdbmgb`lmwqloofgjmeovfm`fp`fqfnlmjbosql`objnfgSqlwf`wjlmoj#`obpp>!P`jfmwjej``obpp>!ml.wqbgfnbqhpnlqf#wkbm#tjgfpsqfbgOjafqbwjlmwllh#sob`fgbz#le#wkfbp#olmd#bpjnsqjplmfgBggjwjlmbo\t?kfbg=\t?nObalqbwlqzMlufnafq#1f{`fswjlmpJmgvpwqjboubqjfwz#leeolbw9#ofeGvqjmd#wkfbppfppnfmwkbuf#affm#gfbop#tjwkPwbwjpwj`pl``vqqfm`f,vo=?,gju=`ofbqej{!=wkf#svaoj`nbmz#zfbqptkj`k#tfqflufq#wjnf/pzmlmznlvp`lmwfmw!=\tsqfpvnbaozkjp#ebnjozvpfqBdfmw-vmf{sf`wfgjm`ovgjmd#`kboofmdfgb#njmlqjwzvmgfejmfg!afolmdp#wlwbhfm#eqlnjm#L`wlafqslpjwjlm9#pbjg#wl#afqfojdjlvp#Efgfqbwjlm#qltpsbm>!lmoz#b#eftnfbmw#wkbwofg#wl#wkf..=\x0e\t?gju#?ejfogpfw=Bq`kajpkls#`obpp>!mlafjmd#vpfgbssqlb`kfpsqjujofdfpmlp`qjsw=\tqfpvowp#jmnbz#af#wkfFbpwfq#fddnf`kbmjpnpqfbplmbaofSlsvobwjlm@loof`wjlmpfof`wfg!=mlp`qjsw=\x0e,jmgf{-sksbqqjubo#le.ippgh$**8nbmbdfg#wljm`lnsofwf`bpvbowjfp`lnsofwjlm@kqjpwjbmpPfswfnafq#bqjwknfwj`sql`fgvqfpnjdkw#kbufSqlgv`wjlmjw#bssfbqpSkjolplskzeqjfmgpkjsofbgjmd#wldjujmd#wkfwltbqg#wkfdvbqbmwffggl`vnfmwfg`lolq9 333ujgfl#dbnf`lnnjppjlmqfeof`wjmd`kbmdf#wkfbppl`jbwfgpbmp.pfqjelmhfzsqfpp8#sbggjmd9Kf#tbp#wkfvmgfqozjmdwzsj`booz#/#bmg#wkf#pq`Fofnfmwpv``fppjufpjm`f#wkf#pklvog#af#mfwtlqhjmdb``lvmwjmdvpf#le#wkfoltfq#wkbmpkltp#wkbw?,psbm=\t\n\n`lnsobjmwp`lmwjmvlvprvbmwjwjfpbpwqlmlnfqkf#gjg#mlwgvf#wl#jwpbssojfg#wlbm#bufqbdffeelqwp#wlwkf#evwvqfbwwfnsw#wlWkfqfelqf/`bsbajojwzQfsvaoj`bmtbp#elqnfgFof`wqlmj`hjolnfwfqp`kboofmdfpsvaojpkjmdwkf#elqnfqjmgjdfmlvpgjqf`wjlmppvapjgjbqz`lmpsjqb`zgfwbjop#lebmg#jm#wkfbeelqgbaofpvapwbm`fpqfbplm#elq`lmufmwjlmjwfnwzsf>!baplovwfozpvsslpfgozqfnbjmfg#bbwwqb`wjufwqbufoojmdpfsbqbwfozel`vpfp#lmfofnfmwbqzbssoj`baofelvmg#wkbwpwzofpkffwnbmvp`qjswpwbmgp#elq#ml.qfsfbw+plnfwjnfp@lnnfq`jbojm#Bnfqj`bvmgfqwbhfmrvbqwfq#lebm#f{bnsofsfqplmboozjmgf{-sks<?,avwwlm=\tsfq`fmwbdfafpw.hmltm`qfbwjmd#b!#gjq>!owqOjfvwfmbmw\t?gju#jg>!wkfz#tlvogbajojwz#lenbgf#vs#lemlwfg#wkbw`ofbq#wkbwbqdvf#wkbwwl#bmlwkfq`kjogqfm$psvqslpf#leelqnvobwfgabpfg#vslmwkf#qfdjlmpvaif`w#lesbppfmdfqpslppfppjlm-\t\tJm#wkf#Afelqf#wkfbewfqtbqgp`vqqfmwoz#b`qlpp#wkfp`jfmwjej``lnnvmjwz-`bsjwbojpnjm#Dfqnbmzqjdkw.tjmdwkf#pzpwfnPl`jfwz#leslojwj`jbmgjqf`wjlm9tfmw#lm#wlqfnlubo#le#Mft#Zlqh#bsbqwnfmwpjmgj`bwjlmgvqjmd#wkfvmofpp#wkfkjpwlqj`bokbg#affm#bgfejmjwjufjmdqfgjfmwbwwfmgbm`f@fmwfq#elqsqlnjmfm`fqfbgzPwbwfpwqbwfdjfpavw#jm#wkfbp#sbqw#le`lmpwjwvwf`objn#wkbwobalqbwlqz`lnsbwjaofebjovqf#le/#pv`k#bp#afdbm#tjwkvpjmd#wkf#wl#sqlujgfefbwvqf#leeqln#tkj`k,!#`obpp>!dfloldj`bopfufqbo#legfojafqbwfjnslqwbmw#klogp#wkbwjmd%rvlw8#ubojdm>wlswkf#Dfqnbmlvwpjgf#lemfdlwjbwfgkjp#`bqffqpfsbqbwjlmjg>!pfbq`ktbp#`boofgwkf#elvqwkqf`qfbwjlmlwkfq#wkbmsqfufmwjlmtkjof#wkf#fgv`bwjlm/`lmmf`wjmdb``vqbwfoztfqf#avjowtbp#hjoofgbdqffnfmwpnv`k#nlqf#Gvf#wl#wkftjgwk9#233plnf#lwkfqHjmdgln#lewkf#fmwjqfebnlvp#elqwl#`lmmf`wlaif`wjufpwkf#Eqfm`ksflsof#bmgefbwvqfg!=jp#pbjg#wlpwqv`wvqboqfefqfmgvnnlpw#lewfmb#pfsbqbwf.=\t?gju#jg#Leej`jbo#tlqogtjgf-bqjb.obafowkf#sobmfwbmg#jw#tbpg!#ubovf>!ollhjmd#bwafmfej`jbobqf#jm#wkfnlmjwlqjmdqfslqwfgozwkf#nlgfqmtlqhjmd#lmbooltfg#wltkfqf#wkf#jmmlubwjuf?,b=?,gju=plvmgwqb`hpfbq`kElqnwfmg#wl#afjmsvw#jg>!lsfmjmd#leqfpwqj`wfgbglswfg#azbggqfppjmdwkfloldjbmnfwklgp#leubqjbmw#le@kqjpwjbm#ufqz#obqdfbvwlnlwjufaz#ebq#wkfqbmdf#eqlnsvqpvjw#leeloolt#wkfaqlvdkw#wljm#Fmdobmgbdqff#wkbwb``vpfg#le`lnfp#eqlnsqfufmwjmdgju#pwzof>kjp#lq#kfqwqfnfmglvpeqffgln#le`lm`fqmjmd3#2fn#2fn8Abphfwaboo,pwzof-`ppbm#fbqojfqfufm#bewfq,!#wjwof>!-`ln,jmgf{wbhjmd#wkfsjwwpavqdk`lmwfmw!=\x0e?p`qjsw=+ewvqmfg#lvwkbujmd#wkf?,psbm=\x0e\t#l``bpjlmboaf`bvpf#jwpwbqwfg#wlskzpj`booz=?,gju=\t##`qfbwfg#az@vqqfmwoz/#ad`lolq>!wbajmgf{>!gjpbpwqlvpBmbozwj`p#bopl#kbp#b=?gju#jg>!?,pwzof=\t?`boofg#elqpjmdfq#bmg-pq`#>#!,,ujlobwjlmpwkjp#sljmw`lmpwbmwozjp#ol`bwfgqf`lqgjmdpg#eqln#wkfmfgfqobmgpslqwvdv/Fp;N;};D;u;F5m4K4]4_7`gfpbqqlool`lnfmwbqjlfgv`b`j/_mpfswjfnaqfqfdjpwqbglgjqf``j/_mvaj`b`j/_msvaoj`jgbgqfpsvfpwbpqfpvowbglpjnslqwbmwfqfpfqubglpbqw/A`volpgjefqfmwfppjdvjfmwfpqfs/Vaoj`bpjwvb`j/_mnjmjpwfqjlsqjub`jgbggjqf`wlqjlelqnb`j/_mslaob`j/_msqfpjgfmwf`lmw','fmjglpb``fplqjlpwf`kmlqbwjsfqplmbofp`bwfdlq/Abfpsf`jbofpgjpslmjaofb`wvbojgbgqfefqfm`jbuboobglojgajaojlwf`bqfob`jlmfp`bofmgbqjlslo/Awj`bpbmwfqjlqfpgl`vnfmwlpmbwvqbofybnbwfqjbofpgjefqfm`jbf`lm/_nj`bwqbmpslqwfqlgq/Advfysbqwj`jsbqfm`vfmwqbmgjp`vpj/_mfpwqv`wvqbevmgb`j/_meqf`vfmwfpsfqnbmfmwfwlwbonfmwf<P<R<Z<Q<R<]=o<X<Y=n<P<R<Z<Y=n<^=l<Y<P=c=n<\\<V<Z<Y=k=n<R<]=g<]<R<W<Y<Y<R=k<Y<Q=`=a=n<R<_<R<V<R<_<X<\\<S<R=m<W<Y<^=m<Y<_<R=m<\\<U=n<Y=k<Y=l<Y<[<P<R<_=o=n=m<\\<U=n<\\<Z<T<[<Q<T<P<Y<Z<X=o<]=o<X=o=n<s<R<T=m<V<[<X<Y=m=`<^<T<X<Y<R=m<^=c<[<T<Q=o<Z<Q<R=m<^<R<Y<U<W=b<X<Y<U<S<R=l<Q<R<P<Q<R<_<R<X<Y=n<Y<U=m<^<R<T=i<S=l<\\<^<\\=n<\\<V<R<U<P<Y=m=n<R<T<P<Y<Y=n<Z<T<[<Q=`<R<X<Q<R<U<W=o=k=d<Y<S<Y=l<Y<X=k<\\=m=n<T=k<\\=m=n=`=l<\\<]<R=n<Q<R<^=g=i<S=l<\\<^<R=m<R<]<R<U<S<R=n<R<P<P<Y<Q<Y<Y=k<T=m<W<Y<Q<R<^=g<Y=o=m<W=o<_<R<V<R<W<R<Q<\\<[<\\<X=n<\\<V<R<Y=n<R<_<X<\\<S<R=k=n<T<s<R=m<W<Y=n<\\<V<T<Y<Q<R<^=g<U=m=n<R<T=n=n<\\<V<T=i=m=l<\\<[=o<M<\\<Q<V=n=h<R=l=o<P<v<R<_<X<\\<V<Q<T<_<T=m<W<R<^<\\<Q<\\=d<Y<U<Q<\\<U=n<T=m<^<R<T<P=m<^=c<[=`<W=b<]<R<U=k<\\=m=n<R=m=l<Y<X<T<v=l<R<P<Y<H<R=l=o<P=l=g<Q<V<Y=m=n<\\<W<T<S<R<T=m<V=n=g=m=c=k<P<Y=m=c=j=j<Y<Q=n=l=n=l=o<X<\\=m<\\<P=g=i=l=g<Q<V<\\<q<R<^=g<U=k<\\=m<R<^<P<Y=m=n<\\=h<T<W=`<P<P<\\=l=n<\\=m=n=l<\\<Q<P<Y=m=n<Y=n<Y<V=m=n<Q<\\=d<T=i<P<T<Q=o=n<T<P<Y<Q<T<T<P<Y=b=n<Q<R<P<Y=l<_<R=l<R<X=m<\\<P<R<P=a=n<R<P=o<V<R<Q=j<Y=m<^<R<Y<P<V<\\<V<R<U<|=l=i<T<^5i5j4F4C5e4I4]4_4K5h4]4_4K5h4E4K5h4U4K5i5o4F4D5k4K4D4]4K5i4@4K5h5f5d5i4K5h4Y5d4]4@4C5f4C4E4K5h4U4Z5d4I4Z4K5m4E4K5h5n4_5i4K5h4U4K4D4F4A5i5f5h5i5h5m4K4F5i5h4F5n5e4F4U4C5f5h4K5h4X4U4]4O4B4D4K4]4F4[5d5f4]4U5h5f5o5i4I4]5m4K5n4[5h4D4K4F4K5h5h4V4E4F4]4F5f4D4K5h5j4K4_4K5h4X5f4B5i5j4F4C5f4K5h4U4]4D4K5h5n4Y4Y4K5m5h4K5i4U5h5f5k4K4F4A4C5f4G4K5h5h5k5i4K5h4U5i5h5i5o4F4D4E5f5i5o5j5o4K5h4[5m5h5m5f4C5f5d4I4C4K4]4E4F4K4]5f4B4K5h4Y4A4E4F4_4@5f5h4K5h5d5n4F4U5j4C5i4K5i4C5f5j4E4F4Y5i5f5i4O4]4X5f5m4K5h4\\5f5j4U4]4D5f4E4D5d4K4D4E4O5h4U4K4D4K5h4_5m4]5i4X4K5o5h4F4U4K5h5e4K5h4O5d5h4K5h4_5j4E4@4K5i4U4E4K5h4Y4A5m4K5h4C5f5j5o5h5i4K4F4K5h4B4K4Y4K5h5i5h5m4O4U4Z4K4M5o4F4K4D4E4K5h4B5f4]4]4_4K4J5h4K5h5n5h4D4K5h4O4C4D5i5n4K4[4U5i4]4K4_5h5i5j4[5n4E4K5h5o4F4D4K5h4]4@5h4K4X4F4]5o4K5h5n4C5i5f4U4[5f5opAzWbdMbnf+-isd!#bow>!2s{#plojg# -dje!#bow>!wqbmpsbqfmwjmelqnbwjlmbssoj`bwjlm!#lm`oj`h>!fpwbaojpkfgbgufqwjpjmd-smd!#bow>!fmujqlmnfmwsfqelqnbm`fbssqlsqjbwf%bns8ngbpk8jnnfgjbwfoz?,pwqlmd=?,qbwkfq#wkbmwfnsfqbwvqfgfufolsnfmw`lnsfwjwjlmsob`fklogfqujpjajojwz9`lszqjdkw!=3!#kfjdkw>!fufm#wklvdkqfsob`fnfmwgfpwjmbwjlm@lqslqbwjlm?vo#`obpp>!Bppl`jbwjlmjmgjujgvbopsfqpsf`wjufpfwWjnflvw+vqo+kwws9,,nbwkfnbwj`pnbqdjm.wls9fufmwvbooz#gfp`qjswjlm*#ml.qfsfbw`loof`wjlmp-ISD\x7fwkvna\x7fsbqwj`jsbwf,kfbg=?algzeolbw9ofew8?oj#`obpp>!kvmgqfgp#le\t\tKltfufq/#`lnslpjwjlm`ofbq9alwk8`llsfqbwjlmtjwkjm#wkf#obafo#elq>!alqgfq.wls9Mft#Yfbobmgqf`lnnfmgfgsklwldqbskzjmwfqfpwjmd%ow8pvs%dw8`lmwqlufqpzMfwkfqobmgpbowfqmbwjufnb{ofmdwk>!ptjwyfqobmgGfufolsnfmwfppfmwjbooz\t\tBowklvdk#?,wf{wbqfb=wkvmgfqajqgqfsqfpfmwfg%bns8mgbpk8psf`vobwjlm`lnnvmjwjfpofdjpobwjlmfof`wqlmj`p\t\n?gju#jg>!joovpwqbwfgfmdjmffqjmdwfqqjwlqjfpbvwklqjwjfpgjpwqjavwfg5!#kfjdkw>!pbmp.pfqje8`bsbaof#le#gjpbssfbqfgjmwfqb`wjufollhjmd#elqjw#tlvog#afBedkbmjpwbmtbp#`qfbwfgNbwk-eollq+pvqqlvmgjmd`bm#bopl#aflapfqubwjlmnbjmwfmbm`ffm`lvmwfqfg?k1#`obpp>!nlqf#qf`fmwjw#kbp#affmjmubpjlm#le*-dfwWjnf+*evmgbnfmwboGfpsjwf#wkf!=?gju#jg>!jmpsjqbwjlmf{bnjmbwjlmsqfsbqbwjlmf{sobmbwjlm?jmsvw#jg>!?,b=?,psbm=ufqpjlmp#lejmpwqvnfmwpafelqf#wkf##>#$kwws9,,Gfp`qjswjlmqfobwjufoz#-pvapwqjmd+fb`k#le#wkff{sfqjnfmwpjmeovfmwjbojmwfdqbwjlmnbmz#sflsofgvf#wl#wkf#`lnajmbwjlmgl#mlw#kbufNjggof#Fbpw?mlp`qjsw=?`lszqjdkw!#sfqkbsp#wkfjmpwjwvwjlmjm#Gf`fnafqbqqbmdfnfmwnlpw#ebnlvpsfqplmbojwz`qfbwjlm#leojnjwbwjlmpf{`ovpjufozplufqfjdmwz.`lmwfmw!=\t?wg#`obpp>!vmgfqdqlvmgsbqboofo#wlgl`wqjmf#lel``vsjfg#azwfqnjmloldzQfmbjppbm`fb#mvnafq#lepvsslqw#elqf{solqbwjlmqf`ldmjwjlmsqfgf`fpplq?jnd#pq`>!,?k2#`obpp>!svaoj`bwjlmnbz#bopl#afpsf`jbojyfg?,ejfogpfw=sqldqfppjufnjoojlmp#lepwbwfp#wkbwfmelq`fnfmwbqlvmg#wkf#lmf#bmlwkfq-sbqfmwMlgfbdqj`vowvqfBowfqmbwjufqfpfbq`kfqpwltbqgp#wkfNlpw#le#wkfnbmz#lwkfq#+fpsf`jbooz?wg#tjgwk>!8tjgwk9233&jmgfsfmgfmw?k0#`obpp>!#lm`kbmdf>!*-bgg@obpp+jmwfqb`wjlmLmf#le#wkf#gbvdkwfq#leb``fpplqjfpaqbm`kfp#le\x0e\t?gju#jg>!wkf#obqdfpwgf`obqbwjlmqfdvobwjlmpJmelqnbwjlmwqbmpobwjlmgl`vnfmwbqzjm#lqgfq#wl!=\t?kfbg=\t?!#kfjdkw>!2b`qlpp#wkf#lqjfmwbwjlm*8?,p`qjsw=jnsofnfmwfg`bm#af#pffmwkfqf#tbp#bgfnlmpwqbwf`lmwbjmfq!=`lmmf`wjlmpwkf#Aqjwjpktbp#tqjwwfm"jnslqwbmw8s{8#nbqdjm.elooltfg#azbajojwz#wl#`lnsoj`bwfggvqjmd#wkf#jnnjdqbwjlmbopl#`boofg?k7#`obpp>!gjpwjm`wjlmqfsob`fg#azdlufqmnfmwpol`bwjlm#lejm#Mlufnafqtkfwkfq#wkf?,s=\t?,gju=b`rvjpjwjlm`boofg#wkf#sfqpf`vwjlmgfpjdmbwjlmxelmw.pjyf9bssfbqfg#jmjmufpwjdbwff{sfqjfm`fgnlpw#ojhfoztjgfoz#vpfggjp`vppjlmpsqfpfm`f#le#+gl`vnfmw-f{wfmpjufozJw#kbp#affmjw#glfp#mlw`lmwqbqz#wljmkbajwbmwpjnsqlufnfmwp`klobqpkjs`lmpvnswjlmjmpwqv`wjlmelq#f{bnsoflmf#lq#nlqfs{8#sbggjmdwkf#`vqqfmwb#pfqjfp#lebqf#vpvboozqlof#jm#wkfsqfujlvpoz#gfqjubwjufpfujgfm`f#lef{sfqjfm`fp`lolqp`kfnfpwbwfg#wkbw`fqwjej`bwf?,b=?,gju=\t#pfof`wfg>!kjdk#p`klloqfpslmpf#wl`lnelqwbaofbglswjlm#lewkqff#zfbqpwkf#`lvmwqzjm#Efaqvbqzpl#wkbw#wkfsflsof#tkl#sqlujgfg#az?sbqbn#mbnfbeef`wfg#azjm#wfqnp#lebssljmwnfmwJPL.;;6:.2!tbp#alqm#jmkjpwlqj`bo#qfdbqgfg#bpnfbpvqfnfmwjp#abpfg#lm#bmg#lwkfq#9#evm`wjlm+pjdmjej`bmw`fofaqbwjlmwqbmpnjwwfg,ip,irvfqz-jp#hmltm#bpwkflqfwj`bo#wbajmgf{>!jw#`lvog#af?mlp`qjsw=\tkbujmd#affm\x0e\t?kfbg=\x0e\t?#%rvlw8Wkf#`lnsjobwjlmkf#kbg#affmsqlgv`fg#azskjolplskfq`lmpwqv`wfgjmwfmgfg#wlbnlmd#lwkfq`lnsbqfg#wlwl#pbz#wkbwFmdjmffqjmdb#gjeefqfmwqfefqqfg#wlgjeefqfm`fpafojfe#wkbwsklwldqbskpjgfmwjezjmdKjpwlqz#le#Qfsvaoj`#lemf`fppbqjozsqlabajojwzwf`kmj`boozofbujmd#wkfpsf`wb`vobqeqb`wjlm#lefof`wqj`jwzkfbg#le#wkfqfpwbvqbmwpsbqwmfqpkjsfnskbpjp#lmnlpw#qf`fmwpkbqf#tjwk#pbzjmd#wkbwejoofg#tjwkgfpjdmfg#wljw#jp#lewfm!=?,jeqbnf=bp#elooltp9nfqdfg#tjwkwkqlvdk#wkf`lnnfq`jbo#sljmwfg#lvwlsslqwvmjwzujft#le#wkfqfrvjqfnfmwgjujpjlm#lesqldqbnnjmdkf#qf`fjufgpfwJmwfqubo!=?,psbm=?,jm#Mft#Zlqhbggjwjlmbo#`lnsqfppjlm\t\t?gju#jg>!jm`lqslqbwf8?,p`qjsw=?bwwb`kFufmwaf`bnf#wkf#!#wbqdfw>!\\`bqqjfg#lvwPlnf#le#wkfp`jfm`f#bmgwkf#wjnf#le@lmwbjmfq!=nbjmwbjmjmd@kqjpwlskfqNv`k#le#wkftqjwjmdp#le!#kfjdkw>!1pjyf#le#wkfufqpjlm#le#nj{wvqf#le#afwtffm#wkfF{bnsofp#lefgv`bwjlmbo`lnsfwjwjuf#lmpvanjw>!gjqf`wlq#legjpwjm`wjuf,GWG#[KWNO#qfobwjmd#wlwfmgfm`z#wlsqlujm`f#letkj`k#tlvoggfpsjwf#wkfp`jfmwjej`#ofdjpobwvqf-jmmfqKWNO#boofdbwjlmpBdqj`vowvqftbp#vpfg#jmbssqlb`k#wljmwfoojdfmwzfbqp#obwfq/pbmp.pfqjegfwfqnjmjmdSfqelqnbm`fbssfbqbm`fp/#tkj`k#jp#elvmgbwjlmpbaaqfujbwfgkjdkfq#wkbmp#eqln#wkf#jmgjujgvbo#`lnslpfg#lepvsslpfg#wl`objnp#wkbwbwwqjavwjlmelmw.pjyf92fofnfmwp#leKjpwlqj`bo#kjp#aqlwkfqbw#wkf#wjnfbmmjufqpbqzdlufqmfg#azqfobwfg#wl#vowjnbwfoz#jmmlubwjlmpjw#jp#pwjoo`bm#lmoz#afgfejmjwjlmpwlDNWPwqjmdB#mvnafq#lejnd#`obpp>!Fufmwvbooz/tbp#`kbmdfgl``vqqfg#jmmfjdkalqjmdgjpwjmdvjpktkfm#kf#tbpjmwqlgv`jmdwfqqfpwqjboNbmz#le#wkfbqdvfp#wkbwbm#Bnfqj`bm`lmrvfpw#letjgfpsqfbg#tfqf#hjoofgp`qffm#bmg#Jm#lqgfq#wlf{sf`wfg#wlgfp`fmgbmwpbqf#ol`bwfgofdjpobwjufdfmfqbwjlmp#ab`hdqlvmgnlpw#sflsofzfbqp#bewfqwkfqf#jp#mlwkf#kjdkfpweqfrvfmwoz#wkfz#gl#mlwbqdvfg#wkbwpkltfg#wkbwsqfglnjmbmwwkfloldj`boaz#wkf#wjnf`lmpjgfqjmdpklqw.ojufg?,psbm=?,b=`bm#af#vpfgufqz#ojwwoflmf#le#wkf#kbg#boqfbgzjmwfqsqfwfg`lnnvmj`bwfefbwvqfp#ledlufqmnfmw/?,mlp`qjsw=fmwfqfg#wkf!#kfjdkw>!0Jmgfsfmgfmwslsvobwjlmpobqdf.p`bof-#Bowklvdk#vpfg#jm#wkfgfpwqv`wjlmslppjajojwzpwbqwjmd#jmwtl#lq#nlqff{sqfppjlmppvalqgjmbwfobqdfq#wkbmkjpwlqz#bmg?,lswjlm=\x0e\t@lmwjmfmwbofojnjmbwjmdtjoo#mlw#afsqb`wj`f#lejm#eqlmw#lepjwf#le#wkffmpvqf#wkbwwl#`qfbwf#bnjppjppjssjslwfmwjboozlvwpwbmgjmdafwwfq#wkbmtkbw#jp#mltpjwvbwfg#jmnfwb#mbnf>!WqbgjwjlmbopvddfpwjlmpWqbmpobwjlmwkf#elqn#lebwnlpskfqj`jgfloldj`bofmwfqsqjpfp`bo`vobwjmdfbpw#le#wkfqfnmbmwp#lesovdjmpsbdf,jmgf{-sks<qfnbjmfg#jmwqbmpelqnfgKf#tbp#bopltbp#boqfbgzpwbwjpwj`bojm#ebulq#leNjmjpwqz#lenlufnfmw#leelqnvobwjlmjp#qfrvjqfg?ojmh#qfo>!Wkjp#jp#wkf#?b#kqfe>!,slsvobqjyfgjmuloufg#jmbqf#vpfg#wlbmg#pfufqbonbgf#az#wkfpffnp#wl#afojhfoz#wkbwSbofpwjmjbmmbnfg#bewfqjw#kbg#affmnlpw#`lnnlmwl#qfefq#wlavw#wkjp#jp`lmpf`vwjufwfnslqbqjozJm#dfmfqbo/`lmufmwjlmpwbhfp#sob`fpvagjujpjlmwfqqjwlqjbolsfqbwjlmbosfqnbmfmwoztbp#obqdfozlvwaqfbh#lejm#wkf#sbpwelooltjmd#b#{nomp9ld>!=?b#`obpp>!`obpp>!wf{w@lmufqpjlm#nbz#af#vpfgnbmveb`wvqfbewfq#afjmd`ofbqej{!=\trvfpwjlm#letbp#fof`wfgwl#af`lnf#baf`bvpf#le#plnf#sflsofjmpsjqfg#azpv``fppevo#b#wjnf#tkfmnlqf#`lnnlmbnlmdpw#wkfbm#leej`jbotjgwk9233&8wf`kmloldz/tbp#bglswfgwl#hffs#wkfpfwwofnfmwpojuf#ajqwkpjmgf{-kwno!@lmmf`wj`vwbppjdmfg#wl%bns8wjnfp8b``lvmw#elqbojdm>qjdkwwkf#`lnsbmzbotbzp#affmqfwvqmfg#wljmuloufnfmwAf`bvpf#wkfwkjp#sfqjlg!#mbnf>!r!#`lmejmfg#wlb#qfpvow#leubovf>!!#,=jp#b`wvboozFmujqlmnfmw\x0e\t?,kfbg=\x0e\t@lmufqpfoz/=\t?gju#jg>!3!#tjgwk>!2jp#sqlabaozkbuf#af`lnf`lmwqloojmdwkf#sqlaofn`jwjyfmp#leslojwj`jbmpqfb`kfg#wkfbp#fbqoz#bp9mlmf8#lufq?wbaof#`fooubojgjwz#legjqf`woz#wllmnlvpfgltmtkfqf#jw#jptkfm#jw#tbpnfnafqp#le#qfobwjlm#wlb``lnnlgbwfbolmd#tjwk#Jm#wkf#obwfwkf#Fmdojpkgfoj`jlvp!=wkjp#jp#mlwwkf#sqfpfmwje#wkfz#bqfbmg#ejmboozb#nbwwfq#le\x0e\t\n?,gju=\x0e\t\x0e\t?,p`qjsw=ebpwfq#wkbmnbilqjwz#lebewfq#tkj`k`lnsbqbwjufwl#nbjmwbjmjnsqluf#wkfbtbqgfg#wkffq!#`obpp>!eqbnfalqgfqqfpwlqbwjlmjm#wkf#pbnfbmbozpjp#lewkfjq#ejqpwGvqjmd#wkf#`lmwjmfmwbopfrvfm`f#leevm`wjlm+*xelmw.pjyf9#tlqh#lm#wkf?,p`qjsw=\t?afdjmp#tjwkibubp`qjsw9`lmpwjwvfmwtbp#elvmgfgfrvjojaqjvnbppvnf#wkbwjp#djufm#azmffgp#wl#af`llqgjmbwfpwkf#ubqjlvpbqf#sbqw#lelmoz#jm#wkfpf`wjlmp#lejp#b#`lnnlmwkflqjfp#legjp`lufqjfpbppl`jbwjlmfgdf#le#wkfpwqfmdwk#leslpjwjlm#jmsqfpfmw.gbzvmjufqpboozwl#elqn#wkfavw#jmpwfbg`lqslqbwjlmbwwb`kfg#wljp#`lnnlmozqfbplmp#elq#%rvlw8wkf#`bm#af#nbgftbp#baof#wltkj`k#nfbmpavw#gjg#mlwlmNlvpfLufqbp#slppjaoflsfqbwfg#az`lnjmd#eqlnwkf#sqjnbqzbggjwjlm#leelq#pfufqbowqbmpefqqfgb#sfqjlg#lebqf#baof#wlkltfufq/#jwpklvog#kbufnv`k#obqdfq\t\n?,p`qjsw=bglswfg#wkfsqlsfqwz#legjqf`wfg#azfeef`wjufoztbp#aqlvdkw`kjogqfm#leSqldqbnnjmdolmdfq#wkbmnbmvp`qjswptbq#bdbjmpwaz#nfbmp#lebmg#nlpw#lepjnjobq#wl#sqlsqjfwbqzlqjdjmbwjmdsqfpwjdjlvpdqbnnbwj`bof{sfqjfm`f-wl#nbhf#wkfJw#tbp#bopljp#elvmg#jm`lnsfwjwlqpjm#wkf#V-P-qfsob`f#wkfaqlvdkw#wkf`bo`vobwjlmeboo#le#wkfwkf#dfmfqbosqb`wj`boozjm#klmlq#leqfofbpfg#jmqfpjgfmwjbobmg#plnf#lehjmd#le#wkfqfb`wjlm#wl2pw#Fbqo#le`vowvqf#bmgsqjm`jsbooz?,wjwof=\t##wkfz#`bm#afab`h#wl#wkfplnf#le#kjpf{slpvqf#wlbqf#pjnjobqelqn#le#wkfbggEbulqjwf`jwjyfmpkjssbqw#jm#wkfsflsof#tjwkjm#sqb`wj`fwl#`lmwjmvf%bns8njmvp8bssqlufg#az#wkf#ejqpw#booltfg#wkfbmg#elq#wkfevm`wjlmjmdsobzjmd#wkfplovwjlm#wlkfjdkw>!3!#jm#kjp#allhnlqf#wkbm#belooltp#wkf`qfbwfg#wkfsqfpfm`f#jm%maps8?,wg=mbwjlmbojpwwkf#jgfb#leb#`kbqb`wfqtfqf#elq`fg#`obpp>!awmgbzp#le#wkfefbwvqfg#jmpkltjmd#wkfjmwfqfpw#jmjm#sob`f#lewvqm#le#wkfwkf#kfbg#leOlqg#le#wkfslojwj`boozkbp#jwp#ltmFgv`bwjlmbobssqlubo#leplnf#le#wkffb`k#lwkfq/afkbujlq#lebmg#af`bvpfbmg#bmlwkfqbssfbqfg#lmqf`lqgfg#jmaob`h%rvlw8nbz#jm`ovgfwkf#tlqog$p`bm#ofbg#wlqfefqp#wl#balqgfq>!3!#dlufqmnfmw#tjmmjmd#wkfqfpvowfg#jm#tkjof#wkf#Tbpkjmdwlm/wkf#pvaif`w`jwz#jm#wkf=?,gju=\x0e\t\n\nqfeof`w#wkfwl#`lnsofwfaf`bnf#nlqfqbgjlb`wjufqfif`wfg#aztjwklvw#bmzkjp#ebwkfq/tkj`k#`lvog`lsz#le#wkfwl#jmgj`bwfb#slojwj`bob``lvmwp#le`lmpwjwvwfptlqhfg#tjwkfq?,b=?,oj=le#kjp#ojefb``lnsbmjfg`ojfmwTjgwksqfufmw#wkfOfdjpobwjufgjeefqfmwozwldfwkfq#jmkbp#pfufqboelq#bmlwkfqwf{w#le#wkfelvmgfg#wkff#tjwk#wkf#jp#vpfg#elq`kbmdfg#wkfvpvbooz#wkfsob`f#tkfqftkfqfbp#wkf=#?b#kqfe>!!=?b#kqfe>!wkfnpfoufp/bowklvdk#kfwkbw#`bm#afwqbgjwjlmboqlof#le#wkfbp#b#qfpvowqfnluf@kjoggfpjdmfg#aztfpw#le#wkfPlnf#sflsofsqlgv`wjlm/pjgf#le#wkfmftpofwwfqpvpfg#az#wkfgltm#wl#wkfb``fswfg#azojuf#jm#wkfbwwfnswp#wllvwpjgf#wkfeqfrvfm`jfpKltfufq/#jmsqldqbnnfqpbw#ofbpw#jmbssql{jnbwfbowklvdk#jwtbp#sbqw#lebmg#ubqjlvpDlufqmlq#lewkf#bqwj`ofwvqmfg#jmwl=?b#kqfe>!,wkf#f`lmlnzjp#wkf#nlpwnlpw#tjgfoztlvog#obwfqbmg#sfqkbspqjpf#wl#wkfl``vqp#tkfmvmgfq#tkj`k`lmgjwjlmp-wkf#tfpwfqmwkflqz#wkbwjp#sqlgv`fgwkf#`jwz#lejm#tkj`k#kfpffm#jm#wkfwkf#`fmwqboavjogjmd#lenbmz#le#kjpbqfb#le#wkfjp#wkf#lmoznlpw#le#wkfnbmz#le#wkfwkf#TfpwfqmWkfqf#jp#mlf{wfmgfg#wlPwbwjpwj`bo`lopsbm>1#\x7fpklqw#pwlqzslppjaof#wlwlsloldj`bo`qjwj`bo#leqfslqwfg#wlb#@kqjpwjbmgf`jpjlm#wljp#frvbo#wlsqlaofnp#leWkjp#`bm#afnfq`kbmgjpfelq#nlpw#leml#fujgfm`ffgjwjlmp#lefofnfmwp#jm%rvlw8-#Wkf`ln,jnbdfp,tkj`k#nbhfpwkf#sql`fppqfnbjmp#wkfojwfqbwvqf/jp#b#nfnafqwkf#slsvobqwkf#bm`jfmwsqlaofnp#jmwjnf#le#wkfgfefbwfg#azalgz#le#wkfb#eft#zfbqpnv`k#le#wkfwkf#tlqh#le@bojelqmjb/pfqufg#bp#bdlufqmnfmw-`lm`fswp#lenlufnfmw#jm\n\n?gju#jg>!jw!#ubovf>!obmdvbdf#lebp#wkfz#bqfsqlgv`fg#jmjp#wkbw#wkff{sobjm#wkfgju=?,gju=\tKltfufq#wkfofbg#wl#wkf\n?b#kqfe>!,tbp#dqbmwfgsflsof#kbuf`lmwjmvbooztbp#pffm#bpbmg#qfobwfgwkf#qlof#lesqlslpfg#azle#wkf#afpwfb`k#lwkfq-@lmpwbmwjmfsflsof#eqlngjbof`wp#lewl#qfujpjlmtbp#qfmbnfgb#plvq`f#lewkf#jmjwjboobvm`kfg#jmsqlujgf#wkfwl#wkf#tfpwtkfqf#wkfqfbmg#pjnjobqafwtffm#wtljp#bopl#wkfFmdojpk#bmg`lmgjwjlmp/wkbw#jw#tbpfmwjwofg#wlwkfnpfoufp-rvbmwjwz#leqbmpsbqfm`zwkf#pbnf#bpwl#iljm#wkf`lvmwqz#bmgwkjp#jp#wkfWkjp#ofg#wlb#pwbwfnfmw`lmwqbpw#wlobpwJmgf{Lewkqlvdk#kjpjp#gfpjdmfgwkf#wfqn#jpjp#sqlujgfgsqlwf`w#wkfmd?,b=?,oj=Wkf#`vqqfmwwkf#pjwf#lepvapwbmwjbof{sfqjfm`f/jm#wkf#Tfpwwkfz#pklvogpolufm(ajmb`lnfmwbqjlpvmjufqpjgbg`lmgj`jlmfpb`wjujgbgfpf{sfqjfm`jbwf`mlold/Absqlgv``j/_msvmwvb`j/_mbsoj`b`j/_m`lmwqbpf/]b`bwfdlq/Abpqfdjpwqbqpfsqlefpjlmbowqbwbnjfmwlqfd/Apwqbwfpf`qfwbq/Absqjm`jsbofpsqlwf``j/_mjnslqwbmwfpjnslqwbm`jbslpjajojgbgjmwfqfpbmwf`qf`jnjfmwlmf`fpjgbgfppvp`qjajqpfbpl`jb`j/_mgjpslmjaofpfubovb`j/_mfpwvgjbmwfpqfpslmpbaofqfplov`j/_mdvbgbobibqbqfdjpwqbglplslqwvmjgbg`lnfq`jbofpelwldqbe/Abbvwlqjgbgfpjmdfmjfq/Abwfofujpj/_m`lnsfwfm`jblsfqb`jlmfpfpwbaof`jglpjnsofnfmwfb`wvbonfmwfmbufdb`j/_m`lmelqnjgbgojmf.kfjdkw9elmw.ebnjoz9!#9#!kwws9,,bssoj`bwjlmpojmh!#kqfe>!psf`jej`booz,,?"X@GBWBX\tLqdbmjybwjlmgjpwqjavwjlm3s{8#kfjdkw9qfobwjlmpkjsgfuj`f.tjgwk?gju#`obpp>!?obafo#elq>!qfdjpwqbwjlm?,mlp`qjsw=\t,jmgf{-kwno!tjmglt-lsfm+#"jnslqwbmw8bssoj`bwjlm,jmgfsfmgfm`f,,ttt-dlldoflqdbmjybwjlmbvwl`lnsofwfqfrvjqfnfmwp`lmpfqubwjuf?elqn#mbnf>!jmwfoof`wvbonbqdjm.ofew92;wk#`fmwvqzbm#jnslqwbmwjmpwjwvwjlmpbaaqfujbwjlm?jnd#`obpp>!lqdbmjpbwjlm`jujojybwjlm2:wk#`fmwvqzbq`kjwf`wvqfjm`lqslqbwfg13wk#`fmwvqz.`lmwbjmfq!=nlpw#mlwbaoz,=?,b=?,gju=mlwjej`bwjlm$vmgfejmfg$*Evqwkfqnlqf/afojfuf#wkbwjmmfqKWNO#>#sqjlq#wl#wkfgqbnbwj`boozqfefqqjmd#wlmfdlwjbwjlmpkfbgrvbqwfqpPlvwk#Beqj`bvmpv``fppevoSfmmpzoubmjbBp#b#qfpvow/?kwno#obmd>!%ow8,pvs%dw8gfbojmd#tjwkskjobgfoskjbkjpwlqj`booz*8?,p`qjsw=\tsbggjmd.wls9f{sfqjnfmwbodfwBwwqjavwfjmpwqv`wjlmpwf`kmloldjfpsbqw#le#wkf#>evm`wjlm+*xpvap`qjswjlmo-gwg!=\x0e\t?kwdfldqbskj`bo@lmpwjwvwjlm$/#evm`wjlm+pvsslqwfg#azbdqj`vowvqbo`lmpwqv`wjlmsvaoj`bwjlmpelmw.pjyf9#2b#ubqjfwz#le?gju#pwzof>!Fm`z`olsfgjbjeqbnf#pq`>!gfnlmpwqbwfgb``lnsojpkfgvmjufqpjwjfpGfnldqbskj`p*8?,p`qjsw=?gfgj`bwfg#wlhmltofgdf#lepbwjpeb`wjlmsbqwj`vobqoz?,gju=?,gju=Fmdojpk#+VP*bssfmg@kjog+wqbmpnjppjlmp-#Kltfufq/#jmwfoojdfm`f!#wbajmgf{>!eolbw9qjdkw8@lnnlmtfbowkqbmdjmd#eqlnjm#tkj`k#wkfbw#ofbpw#lmfqfsqlgv`wjlmfm`z`olsfgjb8elmw.pjyf92ivqjpgj`wjlmbw#wkbw#wjnf!=?b#`obpp>!Jm#bggjwjlm/gfp`qjswjlm(`lmufqpbwjlm`lmwb`w#tjwkjp#dfmfqboozq!#`lmwfmw>!qfsqfpfmwjmd%ow8nbwk%dw8sqfpfmwbwjlml``bpjlmbooz?jnd#tjgwk>!mbujdbwjlm!=`lnsfmpbwjlm`kbnsjlmpkjsnfgjb>!boo!#ujlobwjlm#leqfefqfm`f#wlqfwvqm#wqvf8Pwqj`w,,FM!#wqbmpb`wjlmpjmwfqufmwjlmufqjej`bwjlmJmelqnbwjlm#gjeej`vowjfp@kbnsjlmpkjs`bsbajojwjfp?"Xfmgje^..=~\t?,p`qjsw=\t@kqjpwjbmjwzelq#f{bnsof/Sqlefppjlmboqfpwqj`wjlmppvddfpw#wkbwtbp#qfofbpfg+pv`k#bp#wkfqfnluf@obpp+vmfnsolznfmwwkf#Bnfqj`bmpwqv`wvqf#le,jmgf{-kwno#svaojpkfg#jmpsbm#`obpp>!!=?b#kqfe>!,jmwqlgv`wjlmafolmdjmd#wl`objnfg#wkbw`lmpfrvfm`fp?nfwb#mbnf>!Dvjgf#wl#wkflufqtkfonjmdbdbjmpw#wkf#`lm`fmwqbwfg/\t-mlmwlv`k#lapfqubwjlmp?,b=\t?,gju=\te#+gl`vnfmw-alqgfq9#2s{#xelmw.pjyf92wqfbwnfmw#le3!#kfjdkw>!2nlgjej`bwjlmJmgfsfmgfm`fgjujgfg#jmwldqfbwfq#wkbmb`kjfufnfmwpfpwbaojpkjmdIbubP`qjsw!#mfufqwkfofpppjdmjej`bm`fAqlbg`bpwjmd=%maps8?,wg=`lmwbjmfq!=\tpv`k#bp#wkf#jmeovfm`f#leb#sbqwj`vobqpq`>$kwws9,,mbujdbwjlm!#kboe#le#wkf#pvapwbmwjbo#%maps8?,gju=bgubmwbdf#legjp`lufqz#leevmgbnfmwbo#nfwqlslojwbmwkf#lsslpjwf!#{no9obmd>!gfojafqbwfozbojdm>`fmwfqfulovwjlm#lesqfpfqubwjlmjnsqlufnfmwpafdjmmjmd#jmIfpvp#@kqjpwSvaoj`bwjlmpgjpbdqffnfmwwf{w.bojdm9q/#evm`wjlm+*pjnjobqjwjfpalgz=?,kwno=jp#`vqqfmwozboskbafwj`bojp#plnfwjnfpwzsf>!jnbdf,nbmz#le#wkf#eolt9kjggfm8bubjobaof#jmgfp`qjaf#wkff{jpwfm`f#leboo#lufq#wkfwkf#Jmwfqmfw\n?vo#`obpp>!jmpwboobwjlmmfjdkalqkllgbqnfg#elq`fpqfgv`jmd#wkf`lmwjmvfp#wlMlmfwkfofpp/wfnsfqbwvqfp\t\n\n?b#kqfe>!`olpf#wl#wkff{bnsofp#le#jp#balvw#wkf+pff#afolt*-!#jg>!pfbq`ksqlefppjlmbojp#bubjobaofwkf#leej`jbo\n\n?,p`qjsw=\t\t\n\n?gju#jg>!b``fofqbwjlmwkqlvdk#wkf#Kboo#le#Ebnfgfp`qjswjlmpwqbmpobwjlmpjmwfqefqfm`f#wzsf>$wf{w,qf`fmw#zfbqpjm#wkf#tlqogufqz#slsvobqxab`hdqlvmg9wqbgjwjlmbo#plnf#le#wkf#`lmmf`wfg#wlf{soljwbwjlmfnfqdfm`f#le`lmpwjwvwjlmB#Kjpwlqz#lepjdmjej`bmw#nbmveb`wvqfgf{sf`wbwjlmp=?mlp`qjsw=?`bm#af#elvmgaf`bvpf#wkf#kbp#mlw#affmmfjdkalvqjmdtjwklvw#wkf#bggfg#wl#wkf\n?oj#`obpp>!jmpwqvnfmwboPlujfw#Vmjlmb`hmltofgdfgtkj`k#`bm#afmbnf#elq#wkfbwwfmwjlm#wlbwwfnswp#wl#gfufolsnfmwpJm#eb`w/#wkf?oj#`obpp>!bjnsoj`bwjlmppvjwbaof#elqnv`k#le#wkf#`lolmjybwjlmsqfpjgfmwjbo`bm`foAvaaof#Jmelqnbwjlmnlpw#le#wkf#jp#gfp`qjafgqfpw#le#wkf#nlqf#lq#ofppjm#PfswfnafqJmwfoojdfm`fpq`>!kwws9,,s{8#kfjdkw9#bubjobaof#wlnbmveb`wvqfqkvnbm#qjdkwpojmh#kqfe>!,bubjobajojwzsqlslqwjlmbolvwpjgf#wkf#bpwqlmlnj`bokvnbm#afjmdpmbnf#le#wkf#bqf#elvmg#jmbqf#abpfg#lmpnboofq#wkbmb#sfqplm#tklf{sbmpjlm#lebqdvjmd#wkbwmlt#hmltm#bpJm#wkf#fbqozjmwfqnfgjbwfgfqjufg#eqlnP`bmgjmbujbm?,b=?,gju=\x0e\t`lmpjgfq#wkfbm#fpwjnbwfgwkf#Mbwjlmbo?gju#jg>!sbdqfpvowjmd#jm`lnnjppjlmfgbmboldlvp#wlbqf#qfrvjqfg,vo=\t?,gju=\ttbp#abpfg#lmbmg#af`bnf#b%maps8%maps8w!#ubovf>!!#tbp#`bswvqfgml#nlqf#wkbmqfpsf`wjufoz`lmwjmvf#wl#=\x0e\t?kfbg=\x0e\t?tfqf#`qfbwfgnlqf#dfmfqbojmelqnbwjlm#vpfg#elq#wkfjmgfsfmgfmw#wkf#Jnsfqjbo`lnslmfmw#lewl#wkf#mlqwkjm`ovgf#wkf#@lmpwqv`wjlmpjgf#le#wkf#tlvog#mlw#afelq#jmpwbm`fjmufmwjlm#lenlqf#`lnsof{`loof`wjufozab`hdqlvmg9#wf{w.bojdm9#jwp#lqjdjmbojmwl#b``lvmwwkjp#sql`fppbm#f{wfmpjufkltfufq/#wkfwkfz#bqf#mlwqfif`wfg#wkf`qjwj`jpn#legvqjmd#tkj`ksqlabaoz#wkfwkjp#bqwj`of+evm`wjlm+*xJw#pklvog#afbm#bdqffnfmwb``jgfmwboozgjeefqp#eqlnBq`kjwf`wvqfafwwfq#hmltmbqqbmdfnfmwpjmeovfm`f#lmbwwfmgfg#wkfjgfmwj`bo#wlplvwk#le#wkfsbpp#wkqlvdk{no!#wjwof>!tfjdkw9alog8`qfbwjmd#wkfgjpsobz9mlmfqfsob`fg#wkf?jnd#pq`>!,jkwwsp9,,ttt-Tlqog#Tbq#JJwfpwjnlmjbopelvmg#jm#wkfqfrvjqfg#wl#bmg#wkbw#wkfafwtffm#wkf#tbp#gfpjdmfg`lmpjpwp#le#`lmpjgfqbaozsvaojpkfg#azwkf#obmdvbdf@lmpfqubwjlm`lmpjpwfg#leqfefq#wl#wkfab`h#wl#wkf#`pp!#nfgjb>!Sflsof#eqln#bubjobaof#lmsqlufg#wl#afpvddfpwjlmp!tbp#hmltm#bpubqjfwjfp#leojhfoz#wl#af`lnsqjpfg#lepvsslqw#wkf#kbmgp#le#wkf`lvsofg#tjwk`lmmf`w#bmg#alqgfq9mlmf8sfqelqnbm`fpafelqf#afjmdobwfq#af`bnf`bo`vobwjlmplewfm#`boofgqfpjgfmwp#lenfbmjmd#wkbw=?oj#`obpp>!fujgfm`f#elqf{sobmbwjlmpfmujqlmnfmwp!=?,b=?,gju=tkj`k#booltpJmwqlgv`wjlmgfufolsfg#azb#tjgf#qbmdflm#afkboe#leubojdm>!wls!sqjm`jsof#lebw#wkf#wjnf/?,mlp`qjsw=\x0epbjg#wl#kbufjm#wkf#ejqpwtkjof#lwkfqpkzslwkfwj`boskjolplskfqpsltfq#le#wkf`lmwbjmfg#jmsfqelqnfg#azjmbajojwz#wltfqf#tqjwwfmpsbm#pwzof>!jmsvw#mbnf>!wkf#rvfpwjlmjmwfmgfg#elqqfif`wjlm#lejnsojfp#wkbwjmufmwfg#wkfwkf#pwbmgbqgtbp#sqlabaozojmh#afwtffmsqlefpplq#lejmwfqb`wjlmp`kbmdjmd#wkfJmgjbm#L`fbm#`obpp>!obpwtlqhjmd#tjwk$kwws9,,ttt-zfbqp#afelqfWkjp#tbp#wkfqf`qfbwjlmbofmwfqjmd#wkfnfbpvqfnfmwpbm#f{wqfnfozubovf#le#wkfpwbqw#le#wkf\t?,p`qjsw=\t\tbm#feelqw#wljm`qfbpf#wkfwl#wkf#plvwkpsb`jmd>!3!=pveej`jfmwozwkf#Fvqlsfbm`lmufqwfg#wl`ofbqWjnflvwgjg#mlw#kbuf`lmpfrvfmwozelq#wkf#mf{wf{wfmpjlm#lef`lmlnj`#bmgbowklvdk#wkfbqf#sqlgv`fgbmg#tjwk#wkfjmpveej`jfmwdjufm#az#wkfpwbwjmd#wkbwf{sfmgjwvqfp?,psbm=?,b=\twklvdkw#wkbwlm#wkf#abpjp`foosbggjmd>jnbdf#le#wkfqfwvqmjmd#wljmelqnbwjlm/pfsbqbwfg#azbppbppjmbwfgp!#`lmwfmw>!bvwklqjwz#lemlqwktfpwfqm?,gju=\t?gju#!=?,gju=\x0e\t##`lmpvowbwjlm`lnnvmjwz#lewkf#mbwjlmbojw#pklvog#afsbqwj`jsbmwp#bojdm>!ofewwkf#dqfbwfpwpfof`wjlm#lepvsfqmbwvqbogfsfmgfmw#lmjp#nfmwjlmfgbooltjmd#wkftbp#jmufmwfgb``lnsbmzjmdkjp#sfqplmbobubjobaof#bwpwvgz#le#wkflm#wkf#lwkfqf{f`vwjlm#leKvnbm#Qjdkwpwfqnp#le#wkfbppl`jbwjlmpqfpfbq`k#bmgpv``ffgfg#azgfefbwfg#wkfbmg#eqln#wkfavw#wkfz#bqf`lnnbmgfq#lepwbwf#le#wkfzfbqp#le#bdfwkf#pwvgz#le?vo#`obpp>!psob`f#jm#wkftkfqf#kf#tbp?oj#`obpp>!ewkfqf#bqf#mltkj`k#af`bnfkf#svaojpkfgf{sqfppfg#jmwl#tkj`k#wkf`lnnjppjlmfqelmw.tfjdkw9wfqqjwlqz#lef{wfmpjlmp!=Qlnbm#Fnsjqffrvbo#wl#wkfJm#`lmwqbpw/kltfufq/#bmgjp#wzsj`boozbmg#kjp#tjef+bopl#`boofg=?vo#`obpp>!feef`wjufoz#fuloufg#jmwlpffn#wl#kbuftkj`k#jp#wkfwkfqf#tbp#mlbm#f{`foofmwboo#le#wkfpfgfp`qjafg#azJm#sqb`wj`f/aqlbg`bpwjmd`kbqdfg#tjwkqfeof`wfg#jmpvaif`wfg#wlnjojwbqz#bmgwl#wkf#sljmwf`lmlnj`boozpfwWbqdfwjmdbqf#b`wvboozuj`wlqz#lufq+*8?,p`qjsw=`lmwjmvlvpozqfrvjqfg#elqfulovwjlmbqzbm#feef`wjufmlqwk#le#wkf/#tkj`k#tbp#eqlmw#le#wkflq#lwkfqtjpfplnf#elqn#lekbg#mlw#affmdfmfqbwfg#azjmelqnbwjlm-sfqnjwwfg#wljm`ovgfp#wkfgfufolsnfmw/fmwfqfg#jmwlwkf#sqfujlvp`lmpjpwfmwozbqf#hmltm#bpwkf#ejfog#lewkjp#wzsf#ledjufm#wl#wkfwkf#wjwof#le`lmwbjmp#wkfjmpwbm`fp#lejm#wkf#mlqwkgvf#wl#wkfjqbqf#gfpjdmfg`lqslqbwjlmptbp#wkbw#wkflmf#le#wkfpfnlqf#slsvobqpv``ffgfg#jmpvsslqw#eqlnjm#gjeefqfmwglnjmbwfg#azgfpjdmfg#elqltmfqpkjs#lebmg#slppjaozpwbmgbqgjyfgqfpslmpfWf{wtbp#jmwfmgfgqf`fjufg#wkfbppvnfg#wkbwbqfbp#le#wkfsqjnbqjoz#jmwkf#abpjp#lejm#wkf#pfmpfb``lvmwp#elqgfpwqlzfg#azbw#ofbpw#wtltbp#gf`obqfg`lvog#mlw#afPf`qfwbqz#lebssfbq#wl#afnbqdjm.wls92,]_p(\x7f_p(\',df*xwkqlt#f~8wkf#pwbqw#lewtl#pfsbqbwfobmdvbdf#bmgtkl#kbg#affmlsfqbwjlm#legfbwk#le#wkfqfbo#mvnafqp\n?ojmh#qfo>!sqlujgfg#wkfwkf#pwlqz#le`lnsfwjwjlmpfmdojpk#+VH*fmdojpk#+VP*<p<R<Q<_<R<W<M=l<S=m<V<T=m=l<S=m<V<T=m=l<S=m<V<R5h4U4]4D5f4E\nAO\x05Gx\bTA\nzk\vBl\bQ\x7f\bTA\nzk\vUm\bQ\x7f\bTA\nzk\npe\x05u|\ti@\tcT\bVV\n\\}\nxS\tVp\x05tS\x05k`\t[X\t[X\vHR\bPv\bTW\bUe\n\x7fa\bQp\v_W\vWs\nxS\vAz\n_y\x04Khjmelqnb`j/_mkfqqbnjfmwbpfof`wq/_mj`lgfp`qjs`j/_m`obpjej`bglp`lml`jnjfmwlsvaoj`b`j/_mqfob`jlmbgbpjmelqn/Mwj`bqfob`jlmbglpgfsbqwbnfmwlwqbabibglqfpgjqf`wbnfmwfbzvmwbnjfmwlnfq`bglOjaqf`lmw/M`wfmlpkbajwb`jlmfp`vnsojnjfmwlqfpwbvqbmwfpgjpslpj`j/_m`lmpf`vfm`jbfof`wq/_mj`bbsoj`b`jlmfpgfp`lmf`wbgljmpwbob`j/_mqfbojyb`j/_mvwjojyb`j/_mfm`j`olsfgjbfmefqnfgbgfpjmpwqvnfmwlpf{sfqjfm`jbpjmpwjwv`j/_msbqwj`vobqfppva`bwfdlqjb=n<R<W=`<V<R<L<R=m=m<T<T=l<\\<]<R=n=g<]<R<W=`=d<Y<S=l<R=m=n<R<P<R<Z<Y=n<Y<X=l=o<_<T=i=m<W=o=k<\\<Y=m<Y<U=k<\\=m<^=m<Y<_<X<\\<L<R=m=m<T=c<p<R=m<V<^<Y<X=l=o<_<T<Y<_<R=l<R<X<\\<^<R<S=l<R=m<X<\\<Q<Q=g=i<X<R<W<Z<Q=g<T<P<Y<Q<Q<R<p<R=m<V<^=g=l=o<]<W<Y<U<p<R=m<V<^<\\=m=n=l<\\<Q=g<Q<T=k<Y<_<R=l<\\<]<R=n<Y<X<R<W<Z<Y<Q=o=m<W=o<_<T=n<Y<S<Y=l=`<r<X<Q<\\<V<R<S<R=n<R<P=o=l<\\<]<R=n=o<\\<S=l<Y<W=c<^<R<R<]=e<Y<R<X<Q<R<_<R=m<^<R<Y<_<R=m=n<\\=n=`<T<X=l=o<_<R<U=h<R=l=o<P<Y=i<R=l<R=d<R<S=l<R=n<T<^=m=m=g<W<V<\\<V<\\<Z<X=g<U<^<W<\\=m=n<T<_=l=o<S<S=g<^<P<Y=m=n<Y=l<\\<]<R=n<\\=m<V<\\<[<\\<W<S<Y=l<^=g<U<X<Y<W<\\=n=`<X<Y<Q=`<_<T<S<Y=l<T<R<X<]<T<[<Q<Y=m<R=m<Q<R<^<Y<P<R<P<Y<Q=n<V=o<S<T=n=`<X<R<W<Z<Q<\\=l<\\<P<V<\\=i<Q<\\=k<\\<W<R<L<\\<]<R=n<\\<N<R<W=`<V<R=m<R<^=m<Y<P<^=n<R=l<R<U<Q<\\=k<\\<W<\\=m<S<T=m<R<V=m<W=o<Z<]=g=m<T=m=n<Y<P<S<Y=k<\\=n<T<Q<R<^<R<_<R<S<R<P<R=e<T=m<\\<U=n<R<^<S<R=k<Y<P=o<S<R<P<R=e=`<X<R<W<Z<Q<R=m=m=g<W<V<T<]=g=m=n=l<R<X<\\<Q<Q=g<Y<P<Q<R<_<T<Y<S=l<R<Y<V=n<M<Y<U=k<\\=m<P<R<X<Y<W<T=n<\\<V<R<_<R<R<Q<W<\\<U<Q<_<R=l<R<X<Y<^<Y=l=m<T=c=m=n=l<\\<Q<Y=h<T<W=`<P=g=o=l<R<^<Q=c=l<\\<[<Q=g=i<T=m<V<\\=n=`<Q<Y<X<Y<W=b=c<Q<^<\\=l=c<P<Y<Q=`=d<Y<P<Q<R<_<T=i<X<\\<Q<Q<R<U<[<Q<\\=k<T=n<Q<Y<W=`<[=c=h<R=l=o<P<\\<N<Y<S<Y=l=`<P<Y=m=c=j<\\<[<\\=e<T=n=g<w=o=k=d<T<Y\fHD\fHU\fIl\fHn\fHy\fH\\\fHD\fIk\fHi\fHF\fHD\fIk\fHy\fHS\fHC\fHR\fHy\fH\\\fIk\fHn\fHi\fHD\fIa\fHC\fHy\fIa\fHC\fHR\fH{\fHR\fHk\fHM\fH@\fHR\fH\\\fIk\fHy\fHS\fHT\fIl\fHJ\fHS\fHC\fHR\fHF\fHU\fH^\fIk\fHT\fHS\fHn\fHU\fHA\fHR\fH\\\fHH\fHi\fHF\fHD\fIl\fHY\fHR\fH^\fIk\fHT\fIk\fHY\fHR\fHy\fH\\\fHH\fIk\fHB\fIk\fH\\\fIk\fHU\fIg\fHD\fIk\fHT\fHy\fHH\fIk\fH@\fHU\fIm\fHH\fHT\fHR\fHk\fHs\fHU\fIg\fH{\fHR\fHp\fHR\fHD\fIk\fHB\fHS\fHD\fHs\fHy\fH\\\fHH\fHR\fHy\fH\\\fHD\fHR\fHe\fHD\fHy\fIk\fHC\fHU\fHR\fHm\fHT\fH@\fHT\fIk\fHA\fHR\fH[\fHR\fHj\fHF\fHy\fIk\fH^\fHS\fHC\fIk\fHZ\fIm\fH\\\fIn\fHk\fHT\fHy\fIk\fHt\fHn\fHs\fIk\fHB\fIk\fH\\\fIl\fHT\fHy\fHH\fHR\fHB\fIk\fH\\\fHR\fH^\fIk\fHy\fH\\\fHi\fHK\fHS\fHy\fHi\fHF\fHD\fHR\fHT\fHB\fHR\fHp\fHB\fIm\fHq\fIk\fHy\fHR\fH\\\fHO\fHU\fIg\fHH\fHR\fHy\fHM\fHP\fIl\fHC\fHU\fHR\fHn\fHU\fIg\fHs\fH^\fHZ\fH@\fIa\fHJ\fH^\fHS\fHC\fHR\fHp\fIl\fHY\fHD\fHp\fHR\fHH\fHR\fHy\fId\fHT\fIk\fHj\fHF\fHy\fHR\fHY\fHR\fH^\fIl\fHJ\fIk\fHD\fIk\fHF\fIn\fH\\\fIl\fHF\fHR\fHD\fIl\fHe\fHT\fHy\fIk\fHU\fIg\fH{\fIl\fH@\fId\fHL\fHy\fHj\fHF\fHy\fIl\fHY\fH\\\fIa\fH[\fH{\fHR\fHn\fHY\fHj\fHF\fHy\fIg\fHp\fHS\fH^\fHR\fHp\fHR\fHD\fHR\fHT\fHU\fHB\fHH\fHU\fHB\fIk\fHn\fHe\fHD\fHy\fIl\fHC\fHR\fHU\fIn\fHJ\fH\\\fIa\fHp\fHT\fIn\fHv\fIl\fHF\fHT\fHn\fHJ\fHT\fHY\fHR\fH^\fHU\fIg\fHD\fHR\fHU\fIg\fHH\fIl\fHp\fId\fHT\fIk\fHY\fHR\fHF\fHT\fHp\fHD\fHH\fHR\fHD\fIk\fHH\fHR\fHp\fHR\fH\\\fIl\fHt\fHR\fHC\fH^\fHp\fHS\fH^\fIk\fHD\fIl\fHv\fIk\fHp\fHR\fHn\fHv\fHF\fHH\fIa\fH\\\fH{\fIn\fH{\fH^\fHp\fHR\fHH\fIk\fH@\fHR\fHU\fH\\\fHj\fHF\fHD\fIk\fHY\fHR\fHU\fHD\fHk\fHT\fHy\fHR\fHT\fIm\fH@\fHU\fH\\\fHU\fHD\fIk\fHk\fHT\fHT\fIk\fHT\fHU\fHS\fHH\fH@\fHM\fHP\fIk\fHt\fHs\fHD\fHR\fHH\fH^\fHR\fHZ\fHF\fHR\fHn\fHv\fHZ\fIa\fH\\\fIl\fH@\fHM\fHP\fIl\fHU\fIg\fHH\fIk\fHT\fHR\fHd\fHs\fHZ\fHR\fHC\fHJ\fHT\fHy\fHH\fIl\fHp\fHR\fHH\fIl\fHY\fHR\fH^\fHR\fHU\fHp\fHR\fH\\\fHF\fHs\fHD\fHR\fH\\\fHz\fHD\fIk\fHT\fHM\fHP\fHy\fHB\fHS\fH^\fHR\fHe\fHT\fHy\fIl\fHy\fIk\fHY\fH^\fH^\fH{\fHH\fHR\fHz\fHR\fHD\fHR\fHi\fH\\\fIa\fHI\fHp\fHU\fHR\fHn\fHJ\fIk\fHz\fHR\fHF\fHU\fH^\fIl\fHD\fHS\fHC\fHB\fH@\fHS\fHD\fHR\fH@\fId\fHn\fHy\fHy\fHU\fIl\fHn\fHy\fHU\fHD\fHR\fHJ\fIk\fHH\fHR\fHU\fHB\fH^\fIk\fHy\fHR\fHG\fIl\fHp\fH@\fHy\fHS\fHH\fIm\fH\\\fHH\fHB\fHR\fHn\fH{\fHY\fHU\fIl\fHn\fH\\\fIg\fHp\fHP\fHB\fHS\fH^\fIl\fHj\fH\\\fIg\fHF\fHT\fIk\fHD\fHR\fHC\fHR\fHJ\fHY\fH^\fIk\fHD\fIk\fHz\fHR\fHH\fHR\fHy\fH\\\fIl\fH@\fHe\fHD\fHy\fHR\fHp\fHY\fHR\fH@\fHF\fIn\fH\\\fHR\fH@\fHM\fHP\fHR\fHT\fI`\fHJ\fHR\fHZ\fIk\fHC\fH\\\fHy\fHS\fHC\fIk\fHy\fHU\fHR\fHn\fHi\fHy\fHT\fH\\\fH@\fHD\fHR\fHc\fHY\fHU\fHR\fHn\fHT\fIa\fHI\fH^\fHB\fHS\fH^\fIk\fH^\fIk\fHz\fHy\fHY\fHS\fH[\fHC\fHy\fIa\fH\\\fHn\fHT\fHB\fIn\fHU\fHI\fHR\fHD\fHR4F4_4F4[5f4U5i4X4K4]5o4E4D5d4K4_4[4E4K5h4Y5m4A4E5i5d4K4Z5f4U4K5h4B4K4Y4E4K5h5i4^5f4C4K5h4U4K5i4E4K5h5o4K4F4D4K5h4]4C5d4C4D4]5j4K5i4@4K5h4C5d5h4E4K5h4U4K5h5i4K5h5i5d5n4U4K5h4U4]4D5f4K5h4_4]5f4U4K5h4@5d4K5h4K5h4\\5k4K4D4K5h4A5f4K4E4K5h4A5n5d5n4K5h5o4]5f5i4K5h4U4]4K5n5i4A5m5d4T4E4K5h4G4K5j5f5i4X4K5k4C4E4K5h5i4]4O4E4K5h5n4]4N5j4K5h4X4D4K4D4K5h4A5d4K4]4K5h4@4C5f4C4K5h4O4_4]4E4K5h4U5h5d5i5i4@5i5d4U4E4K5h4]4A5i5j4K5h5j5n4K4[5m5h4_4[5f5j4K5h5o5d5f4F4K5h4C5j5f4K4D4]5o4K4F5k4K5h4]5f4K4Z4F4A5f4K4F5f4D4F5d5n5f4F4K5h4O5d5h5e4K5h4D4]5f4C4K5h5o5h4K5i4K5h4]4K4D4[4K5h4X4B4Y5f4_5f4K4]4K4F4K5h4G4K5h4G4K5h4Y5h4K4E4K5h4A4C5f4G4K5h4^5d4K4]4K5h4B5h5f4@4K5h4@5i5f4U4K5h4U4K5i5k4K5h4@5i4K5h4K5h4_4K4U4E5i4X4K5k4C5k4K5h4]4J5f4_4K5h4C4B5d5h4K5h5m5j5f4E4K5h5o4F4K4D4K5h4C5d4]5f4K5h4C4]5d4_4K4_4F4V4]5n4F4Y4K5i5f5i4K5h4D5j4K4F4K5h4U4T5f5ifmwfqwbjmnfmwvmgfqpwbmgjmd#>#evm`wjlm+*-isd!#tjgwk>!`lmejdvqbwjlm-smd!#tjgwk>!?algz#`obpp>!Nbwk-qbmgln+*`lmwfnslqbqz#Vmjwfg#Pwbwfp`jq`vnpwbm`fp-bssfmg@kjog+lqdbmjybwjlmp?psbm#`obpp>!!=?jnd#pq`>!,gjpwjmdvjpkfgwklvpbmgp#le#`lnnvmj`bwjlm`ofbq!=?,gju=jmufpwjdbwjlmebuj`lm-j`l!#nbqdjm.qjdkw9abpfg#lm#wkf#Nbppb`kvpfwwpwbaof#alqgfq>jmwfqmbwjlmbobopl#hmltm#bpsqlmvm`jbwjlmab`hdqlvmg9 esbggjmd.ofew9Elq#f{bnsof/#njp`foobmflvp%ow8,nbwk%dw8spz`kloldj`bojm#sbqwj`vobqfbq`k!#wzsf>!elqn#nfwklg>!bp#lsslpfg#wlPvsqfnf#@lvqwl``bpjlmbooz#Bggjwjlmbooz/Mlqwk#Bnfqj`bs{8ab`hdqlvmglsslqwvmjwjfpFmwfqwbjmnfmw-wlOltfq@bpf+nbmveb`wvqjmdsqlefppjlmbo#`lnajmfg#tjwkElq#jmpwbm`f/`lmpjpwjmd#le!#nb{ofmdwk>!qfwvqm#ebopf8`lmp`jlvpmfppNfgjwfqqbmfbmf{wqblqgjmbqzbppbppjmbwjlmpvapfrvfmwoz#avwwlm#wzsf>!wkf#mvnafq#lewkf#lqjdjmbo#`lnsqfkfmpjufqfefqp#wl#wkf?,vo=\t?,gju=\tskjolplskj`bool`bwjlm-kqfetbp#svaojpkfgPbm#Eqbm`jp`l+evm`wjlm+*x\t?gju#jg>!nbjmplskjpwj`bwfgnbwkfnbwj`bo#,kfbg=\x0e\t?algzpvddfpwp#wkbwgl`vnfmwbwjlm`lm`fmwqbwjlmqfobwjlmpkjspnbz#kbuf#affm+elq#f{bnsof/Wkjp#bqwj`of#jm#plnf#`bpfpsbqwp#le#wkf#gfejmjwjlm#leDqfbw#Aqjwbjm#`foosbggjmd>frvjubofmw#wlsob`fklogfq>!8#elmw.pjyf9#ivpwjej`bwjlmafojfufg#wkbwpveefqfg#eqlnbwwfnswfg#wl#ofbgfq#le#wkf`qjsw!#pq`>!,+evm`wjlm+*#xbqf#bubjobaof\t\n?ojmh#qfo>!#pq`>$kwws9,,jmwfqfpwfg#jm`lmufmwjlmbo#!#bow>!!#,=?,bqf#dfmfqboozkbp#bopl#affmnlpw#slsvobq#`lqqfpslmgjmd`qfgjwfg#tjwkwzof>!alqgfq9?,b=?,psbm=?,-dje!#tjgwk>!?jeqbnf#pq`>!wbaof#`obpp>!jmojmf.aol`h8b``lqgjmd#wl#wldfwkfq#tjwkbssql{jnbwfozsbqojbnfmwbqznlqf#bmg#nlqfgjpsobz9mlmf8wqbgjwjlmboozsqfglnjmbmwoz%maps8\x7f%maps8%maps8?,psbm=#`foopsb`jmd>?jmsvw#mbnf>!lq!#`lmwfmw>!`lmwqlufqpjbosqlsfqwz>!ld9,{.pkl`htbuf.gfnlmpwqbwjlmpvqqlvmgfg#azMfufqwkfofpp/tbp#wkf#ejqpw`lmpjgfqbaof#Bowklvdk#wkf#`loobalqbwjlmpklvog#mlw#afsqlslqwjlm#le?psbm#pwzof>!hmltm#bp#wkf#pklqwoz#bewfqelq#jmpwbm`f/gfp`qjafg#bp#,kfbg=\t?algz#pwbqwjmd#tjwkjm`qfbpjmdoz#wkf#eb`w#wkbwgjp`vppjlm#lenjggof#le#wkfbm#jmgjujgvbogjeej`vow#wl#sljmw#le#ujftklnlpf{vbojwzb``fswbm`f#le?,psbm=?,gju=nbmveb`wvqfqplqjdjm#le#wkf`lnnlmoz#vpfgjnslqwbm`f#legfmlnjmbwjlmpab`hdqlvmg9# ofmdwk#le#wkfgfwfqnjmbwjlmb#pjdmjej`bmw!#alqgfq>!3!=qfulovwjlmbqzsqjm`jsofp#lejp#`lmpjgfqfgtbp#gfufolsfgJmgl.Fvqlsfbmuvomfqbaof#wlsqlslmfmwp#lebqf#plnfwjnfp`olpfq#wl#wkfMft#Zlqh#@jwz#mbnf>!pfbq`kbwwqjavwfg#wl`lvqpf#le#wkfnbwkfnbwj`jbmaz#wkf#fmg#lebw#wkf#fmg#le!#alqgfq>!3!#wf`kmloldj`bo-qfnluf@obpp+aqbm`k#le#wkffujgfm`f#wkbw"Xfmgje^..=\x0e\tJmpwjwvwf#le#jmwl#b#pjmdofqfpsf`wjufoz-bmg#wkfqfelqfsqlsfqwjfp#lejp#ol`bwfg#jmplnf#le#tkj`kWkfqf#jp#bopl`lmwjmvfg#wl#bssfbqbm`f#le#%bns8mgbpk8#gfp`qjafp#wkf`lmpjgfqbwjlmbvwklq#le#wkfjmgfsfmgfmwozfrvjssfg#tjwkglfp#mlw#kbuf?,b=?b#kqfe>!`lmevpfg#tjwk?ojmh#kqfe>!,bw#wkf#bdf#lebssfbq#jm#wkfWkfpf#jm`ovgfqfdbqgofpp#le`lvog#af#vpfg#pwzof>%rvlw8pfufqbo#wjnfpqfsqfpfmw#wkfalgz=\t?,kwno=wklvdkw#wl#afslsvobwjlm#leslppjajojwjfpsfq`fmwbdf#leb``fpp#wl#wkfbm#bwwfnsw#wlsqlgv`wjlm#leirvfqz,irvfqzwtl#gjeefqfmwafolmd#wl#wkffpwbaojpknfmwqfsob`jmd#wkfgfp`qjswjlm!#gfwfqnjmf#wkfbubjobaof#elqB``lqgjmd#wl#tjgf#qbmdf#le\n?gju#`obpp>!nlqf#`lnnlmozlqdbmjpbwjlmpevm`wjlmbojwztbp#`lnsofwfg#%bns8ngbpk8#sbqwj`jsbwjlmwkf#`kbqb`wfqbm#bggjwjlmbobssfbqp#wl#afeb`w#wkbw#wkfbm#f{bnsof#lepjdmjej`bmwozlmnlvpflufq>!af`bvpf#wkfz#bpzm`#>#wqvf8sqlaofnp#tjwkpffnp#wl#kbufwkf#qfpvow#le#pq`>!kwws9,,ebnjojbq#tjwkslppfppjlm#leevm`wjlm#+*#xwllh#sob`f#jmbmg#plnfwjnfppvapwbmwjbooz?psbm=?,psbm=jp#lewfm#vpfgjm#bm#bwwfnswdqfbw#gfbo#leFmujqlmnfmwbopv``fppevooz#ujqwvbooz#boo13wk#`fmwvqz/sqlefppjlmbopmf`fppbqz#wl#gfwfqnjmfg#az`lnsbwjajojwzaf`bvpf#jw#jpGj`wjlmbqz#lenlgjej`bwjlmpWkf#elooltjmdnbz#qfefq#wl9@lmpfrvfmwoz/Jmwfqmbwjlmbobowklvdk#plnfwkbw#tlvog#aftlqog$p#ejqpw`obppjejfg#bpalwwln#le#wkf+sbqwj`vobqozbojdm>!ofew!#nlpw#`lnnlmozabpjp#elq#wkfelvmgbwjlm#le`lmwqjavwjlmpslsvobqjwz#le`fmwfq#le#wkfwl#qfgv`f#wkfivqjpgj`wjlmpbssql{jnbwjlm#lmnlvpflvw>!Mft#Wfpwbnfmw`loof`wjlm#le?,psbm=?,b=?,jm#wkf#Vmjwfgejon#gjqf`wlq.pwqj`w-gwg!=kbp#affm#vpfgqfwvqm#wl#wkfbowklvdk#wkjp`kbmdf#jm#wkfpfufqbo#lwkfqavw#wkfqf#bqfvmsqf`fgfmwfgjp#pjnjobq#wlfpsf`jbooz#jmtfjdkw9#alog8jp#`boofg#wkf`lnsvwbwjlmbojmgj`bwf#wkbwqfpwqj`wfg#wl\n?nfwb#mbnf>!bqf#wzsj`booz`lmeoj`w#tjwkKltfufq/#wkf#Bm#f{bnsof#le`lnsbqfg#tjwkrvbmwjwjfp#leqbwkfq#wkbm#b`lmpwfoobwjlmmf`fppbqz#elqqfslqwfg#wkbwpsf`jej`bwjlmslojwj`bo#bmg%maps8%maps8?qfefqfm`fp#wlwkf#pbnf#zfbqDlufqmnfmw#ledfmfqbwjlm#lekbuf#mlw#affmpfufqbo#zfbqp`lnnjwnfmw#wl\n\n?vo#`obpp>!ujpvbojybwjlm2:wk#`fmwvqz/sqb`wjwjlmfqpwkbw#kf#tlvogbmg#`lmwjmvfgl``vsbwjlm#lejp#gfejmfg#bp`fmwqf#le#wkfwkf#bnlvmw#le=?gju#pwzof>!frvjubofmw#legjeefqfmwjbwfaqlvdkw#balvwnbqdjm.ofew9#bvwlnbwj`boozwklvdkw#le#bpPlnf#le#wkfpf\t?gju#`obpp>!jmsvw#`obpp>!qfsob`fg#tjwkjp#lmf#le#wkffgv`bwjlm#bmgjmeovfm`fg#azqfsvwbwjlm#bp\t?nfwb#mbnf>!b``lnnlgbwjlm?,gju=\t?,gju=obqdf#sbqw#leJmpwjwvwf#elqwkf#pl.`boofg#bdbjmpw#wkf#Jm#wkjp#`bpf/tbp#bssljmwfg`objnfg#wl#afKltfufq/#wkjpGfsbqwnfmw#lewkf#qfnbjmjmdfeef`w#lm#wkfsbqwj`vobqoz#gfbo#tjwk#wkf\t?gju#pwzof>!bonlpw#botbzpbqf#`vqqfmwozf{sqfppjlm#leskjolplskz#leelq#nlqf#wkbm`jujojybwjlmplm#wkf#jpobmgpfof`wfgJmgf{`bm#qfpvow#jm!#ubovf>!!#,=wkf#pwqv`wvqf#,=?,b=?,gju=Nbmz#le#wkfpf`bvpfg#az#wkfle#wkf#Vmjwfgpsbm#`obpp>!n`bm#af#wqb`fgjp#qfobwfg#wlaf`bnf#lmf#lejp#eqfrvfmwozojujmd#jm#wkfwkflqfwj`boozElooltjmd#wkfQfulovwjlmbqzdlufqmnfmw#jmjp#gfwfqnjmfgwkf#slojwj`bojmwqlgv`fg#jmpveej`jfmw#wlgfp`qjswjlm!=pklqw#pwlqjfppfsbqbwjlm#lebp#wl#tkfwkfqhmltm#elq#jwptbp#jmjwjboozgjpsobz9aol`hjp#bm#f{bnsofwkf#sqjm`jsbo`lmpjpwp#le#bqf`ldmjyfg#bp,algz=?,kwno=b#pvapwbmwjboqf`lmpwqv`wfgkfbg#le#pwbwfqfpjpwbm`f#wlvmgfqdqbgvbwfWkfqf#bqf#wtldqbujwbwjlmbobqf#gfp`qjafgjmwfmwjlmboozpfqufg#bp#wkf`obpp>!kfbgfqlsslpjwjlm#wlevmgbnfmwboozglnjmbwfg#wkfbmg#wkf#lwkfqboojbm`f#tjwktbp#elq`fg#wlqfpsf`wjufoz/bmg#slojwj`bojm#pvsslqw#lesflsof#jm#wkf13wk#`fmwvqz-bmg#svaojpkfgolbg@kbqwafbwwl#vmgfqpwbmgnfnafq#pwbwfpfmujqlmnfmwboejqpw#kboe#le`lvmwqjfp#bmgbq`kjwf`wvqboaf#`lmpjgfqfg`kbqb`wfqjyfg`ofbqJmwfqubobvwklqjwbwjufEfgfqbwjlm#letbp#pv``ffgfgbmg#wkfqf#bqfb#`lmpfrvfm`fwkf#Sqfpjgfmwbopl#jm`ovgfgeqff#plewtbqfpv``fppjlm#legfufolsfg#wkftbp#gfpwqlzfgbtbz#eqln#wkf8\t?,p`qjsw=\t?bowklvdk#wkfzelooltfg#az#bnlqf#sltfqevoqfpvowfg#jm#bVmjufqpjwz#leKltfufq/#nbmzwkf#sqfpjgfmwKltfufq/#plnfjp#wklvdkw#wlvmwjo#wkf#fmgtbp#bmmlvm`fgbqf#jnslqwbmwbopl#jm`ovgfp=?jmsvw#wzsf>wkf#`fmwfq#le#GL#MLW#BOWFQvpfg#wl#qfefqwkfnfp,<plqw>wkbw#kbg#affmwkf#abpjp#elqkbp#gfufolsfgjm#wkf#pvnnfq`lnsbqbwjufozgfp`qjafg#wkfpv`k#bp#wklpfwkf#qfpvowjmdjp#jnslppjaofubqjlvp#lwkfqPlvwk#Beqj`bmkbuf#wkf#pbnffeef`wjufmfppjm#tkj`k#`bpf8#wf{w.bojdm9pwqv`wvqf#bmg8#ab`hdqlvmg9qfdbqgjmd#wkfpvsslqwfg#wkfjp#bopl#hmltmpwzof>!nbqdjmjm`ovgjmd#wkfabkbpb#Nfobzvmlqph#alhn/Iomlqph#mzmlqphpolufm)M(ajmbjmwfqmb`jlmbo`bojej`b`j/_m`lnvmj`b`j/_m`lmpwqv``j/_m!=?gju#`obpp>!gjpbnajdvbwjlmGlnbjmMbnf$/#$bgnjmjpwqbwjlmpjnvowbmflvpozwqbmpslqwbwjlmJmwfqmbwjlmbo#nbqdjm.alwwln9qfpslmpjajojwz?"Xfmgje^..=\t?,=?nfwb#mbnf>!jnsofnfmwbwjlmjmeqbpwqv`wvqfqfsqfpfmwbwjlmalqgfq.alwwln9?,kfbg=\t?algz=>kwws&0B&1E&1E?elqn#nfwklg>!nfwklg>!slpw!#,ebuj`lm-j`l!#~*8\t?,p`qjsw=\t-pfwBwwqjavwf+Bgnjmjpwqbwjlm>#mft#Bqqbz+*8?"Xfmgje^..=\x0e\tgjpsobz9aol`h8Vmelqwvmbwfoz/!=%maps8?,gju=,ebuj`lm-j`l!=>$pwzofpkffw$#jgfmwjej`bwjlm/#elq#f{bnsof/?oj=?b#kqfe>!,bm#bowfqmbwjufbp#b#qfpvow#lesw!=?,p`qjsw=\twzsf>!pvanjw!#\t+evm`wjlm+*#xqf`lnnfmgbwjlmelqn#b`wjlm>!,wqbmpelqnbwjlmqf`lmpwqv`wjlm-pwzof-gjpsobz#B``lqgjmd#wl#kjggfm!#mbnf>!bolmd#tjwk#wkfgl`vnfmw-algz-bssql{jnbwfoz#@lnnvmj`bwjlmpslpw!#b`wjlm>!nfbmjmd#%rvlw8..?"Xfmgje^..=Sqjnf#Njmjpwfq`kbqb`wfqjpwj`?,b=#?b#`obpp>wkf#kjpwlqz#le#lmnlvpflufq>!wkf#dlufqmnfmwkqfe>!kwwsp9,,tbp#lqjdjmbooztbp#jmwqlgv`fg`obppjej`bwjlmqfsqfpfmwbwjufbqf#`lmpjgfqfg?"Xfmgje^..=\t\tgfsfmgp#lm#wkfVmjufqpjwz#le#jm#`lmwqbpw#wl#sob`fklogfq>!jm#wkf#`bpf#lejmwfqmbwjlmbo#`lmpwjwvwjlmbopwzof>!alqgfq.9#evm`wjlm+*#xAf`bvpf#le#wkf.pwqj`w-gwg!=\t?wbaof#`obpp>!b``lnsbmjfg#azb``lvmw#le#wkf?p`qjsw#pq`>!,mbwvqf#le#wkf#wkf#sflsof#jm#jm#bggjwjlm#wlp*8#ip-jg#>#jg!#tjgwk>!233&!qfdbqgjmd#wkf#Qlnbm#@bwkloj`bm#jmgfsfmgfmwelooltjmd#wkf#-dje!#tjgwk>!2wkf#elooltjmd#gjp`qjnjmbwjlmbq`kbfloldj`bosqjnf#njmjpwfq-ip!=?,p`qjsw=`lnajmbwjlm#le#nbqdjmtjgwk>!`qfbwfFofnfmw+t-bwwb`kFufmw+?,b=?,wg=?,wq=pq`>!kwwsp9,,bJm#sbqwj`vobq/#bojdm>!ofew!#@yf`k#Qfsvaoj`Vmjwfg#Hjmdgln`lqqfpslmgfm`f`lm`ovgfg#wkbw-kwno!#wjwof>!+evm`wjlm#+*#x`lnfp#eqln#wkfbssoj`bwjlm#le?psbm#`obpp>!pafojfufg#wl#affnfmw+$p`qjsw$?,b=\t?,oj=\t?ojufqz#gjeefqfmw=?psbm#`obpp>!lswjlm#ubovf>!+bopl#hmltm#bp\n?oj=?b#kqfe>!=?jmsvw#mbnf>!pfsbqbwfg#eqlnqfefqqfg#wl#bp#ubojdm>!wls!=elvmgfq#le#wkfbwwfnswjmd#wl#`bqalm#gjl{jgf\t\t?gju#`obpp>!`obpp>!pfbq`k.,algz=\t?,kwno=lsslqwvmjwz#wl`lnnvmj`bwjlmp?,kfbg=\x0e\t?algz#pwzof>!tjgwk9Wj\rVSmd#Uj\rWkw`kbmdfp#jm#wkfalqgfq.`lolq9 3!#alqgfq>!3!#?,psbm=?,gju=?tbp#gjp`lufqfg!#wzsf>!wf{w!#*8\t?,p`qjsw=\t\tGfsbqwnfmw#le#f``ofpjbpwj`bowkfqf#kbp#affmqfpvowjmd#eqln?,algz=?,kwno=kbp#mfufq#affmwkf#ejqpw#wjnfjm#qfpslmpf#wlbvwlnbwj`booz#?,gju=\t\t?gju#jtbp#`lmpjgfqfgsfq`fmw#le#wkf!#,=?,b=?,gju=`loof`wjlm#le#gfp`fmgfg#eqlnpf`wjlm#le#wkfb``fsw.`kbqpfwwl#af#`lmevpfgnfnafq#le#wkf#sbggjmd.qjdkw9wqbmpobwjlm#lejmwfqsqfwbwjlm#kqfe>$kwws9,,tkfwkfq#lq#mlwWkfqf#bqf#boplwkfqf#bqf#nbmzb#pnboo#mvnafqlwkfq#sbqwp#lejnslppjaof#wl##`obpp>!avwwlmol`bwfg#jm#wkf-#Kltfufq/#wkfbmg#fufmwvboozBw#wkf#fmg#le#af`bvpf#le#jwpqfsqfpfmwp#wkf?elqn#b`wjlm>!#nfwklg>!slpw!jw#jp#slppjaofnlqf#ojhfoz#wlbm#jm`qfbpf#jmkbuf#bopl#affm`lqqfpslmgp#wlbmmlvm`fg#wkbwbojdm>!qjdkw!=nbmz#`lvmwqjfpelq#nbmz#zfbqpfbqojfpw#hmltmaf`bvpf#jw#tbpsw!=?,p`qjsw=\x0e#ubojdm>!wls!#jmkbajwbmwp#leelooltjmd#zfbq\x0e\t?gju#`obpp>!njoojlm#sflsof`lmwqlufqpjbo#`lm`fqmjmd#wkfbqdvf#wkbw#wkfdlufqmnfmw#bmgb#qfefqfm`f#wlwqbmpefqqfg#wlgfp`qjajmd#wkf#pwzof>!`lolq9bowklvdk#wkfqfafpw#hmltm#elqpvanjw!#mbnf>!nvowjsoj`bwjlmnlqf#wkbm#lmf#qf`ldmjwjlm#le@lvm`jo#le#wkffgjwjlm#le#wkf##?nfwb#mbnf>!Fmwfqwbjmnfmw#btbz#eqln#wkf#8nbqdjm.qjdkw9bw#wkf#wjnf#lejmufpwjdbwjlmp`lmmf`wfg#tjwkbmg#nbmz#lwkfqbowklvdk#jw#jpafdjmmjmd#tjwk#?psbm#`obpp>!gfp`fmgbmwp#le?psbm#`obpp>!j#bojdm>!qjdkw!?,kfbg=\t?algz#bpsf`wp#le#wkfkbp#pjm`f#affmFvqlsfbm#Vmjlmqfnjmjp`fmw#lenlqf#gjeej`vowUj`f#Sqfpjgfmw`lnslpjwjlm#lesbppfg#wkqlvdknlqf#jnslqwbmwelmw.pjyf922s{f{sobmbwjlm#lewkf#`lm`fsw#letqjwwfm#jm#wkf\n?psbm#`obpp>!jp#lmf#le#wkf#qfpfnaobm`f#wllm#wkf#dqlvmgptkj`k#`lmwbjmpjm`ovgjmd#wkf#gfejmfg#az#wkfsvaoj`bwjlm#lenfbmp#wkbw#wkflvwpjgf#le#wkfpvsslqw#le#wkf?jmsvw#`obpp>!?psbm#`obpp>!w+Nbwk-qbmgln+*nlpw#sqlnjmfmwgfp`qjswjlm#le@lmpwbmwjmlsoftfqf#svaojpkfg?gju#`obpp>!pfbssfbqp#jm#wkf2!#kfjdkw>!2!#nlpw#jnslqwbmwtkj`k#jm`ovgfptkj`k#kbg#affmgfpwqv`wjlm#lewkf#slsvobwjlm\t\n?gju#`obpp>!slppjajojwz#leplnfwjnfp#vpfgbssfbq#wl#kbufpv``fpp#le#wkfjmwfmgfg#wl#afsqfpfmw#jm#wkfpwzof>!`ofbq9a\x0e\t?,p`qjsw=\x0e\t?tbp#elvmgfg#jmjmwfqujft#tjwk\\jg!#`lmwfmw>!`bsjwbo#le#wkf\x0e\t?ojmh#qfo>!pqfofbpf#le#wkfsljmw#lvw#wkbw{NOKwwsQfrvfpwbmg#pvapfrvfmwpf`lmg#obqdfpwufqz#jnslqwbmwpsf`jej`bwjlmppvqeb`f#le#wkfbssojfg#wl#wkfelqfjdm#sloj`z\\pfwGlnbjmMbnffpwbaojpkfg#jmjp#afojfufg#wlJm#bggjwjlm#wlnfbmjmd#le#wkfjp#mbnfg#bewfqwl#sqlwf`w#wkfjp#qfsqfpfmwfgGf`obqbwjlm#lenlqf#feej`jfmw@obppjej`bwjlmlwkfq#elqnp#lekf#qfwvqmfg#wl?psbm#`obpp>!`sfqelqnbm`f#le+evm`wjlm+*#x\x0eje#bmg#lmoz#jeqfdjlmp#le#wkfofbgjmd#wl#wkfqfobwjlmp#tjwkVmjwfg#Mbwjlmppwzof>!kfjdkw9lwkfq#wkbm#wkfzsf!#`lmwfmw>!Bppl`jbwjlm#le\t?,kfbg=\t?algzol`bwfg#lm#wkfjp#qfefqqfg#wl+jm`ovgjmd#wkf`lm`fmwqbwjlmpwkf#jmgjujgvbobnlmd#wkf#nlpwwkbm#bmz#lwkfq,=\t?ojmh#qfo>!#qfwvqm#ebopf8wkf#svqslpf#lewkf#bajojwz#wl8`lolq9 eee~\t-\t?psbm#`obpp>!wkf#pvaif`w#legfejmjwjlmp#le=\x0e\t?ojmh#qfo>!`objn#wkbw#wkfkbuf#gfufolsfg?wbaof#tjgwk>!`fofaqbwjlm#leElooltjmd#wkf#wl#gjpwjmdvjpk?psbm#`obpp>!awbhfp#sob`f#jmvmgfq#wkf#mbnfmlwfg#wkbw#wkf=?"Xfmgje^..=\tpwzof>!nbqdjm.jmpwfbg#le#wkfjmwqlgv`fg#wkfwkf#sql`fpp#lejm`qfbpjmd#wkfgjeefqfm`fp#jmfpwjnbwfg#wkbwfpsf`jbooz#wkf,gju=?gju#jg>!tbp#fufmwvboozwkqlvdklvw#kjpwkf#gjeefqfm`fplnfwkjmd#wkbwpsbm=?,psbm=?,pjdmjej`bmwoz#=?,p`qjsw=\x0e\t\x0e\tfmujqlmnfmwbo#wl#sqfufmw#wkfkbuf#affm#vpfgfpsf`jbooz#elqvmgfqpwbmg#wkfjp#fppfmwjbooztfqf#wkf#ejqpwjp#wkf#obqdfpwkbuf#affm#nbgf!#pq`>!kwws9,,jmwfqsqfwfg#bppf`lmg#kboe#le`qloojmd>!ml!#jp#`lnslpfg#leJJ/#Kloz#Qlnbmjp#f{sf`wfg#wlkbuf#wkfjq#ltmgfejmfg#bp#wkfwqbgjwjlmbooz#kbuf#gjeefqfmwbqf#lewfm#vpfgwl#fmpvqf#wkbwbdqffnfmw#tjwk`lmwbjmjmd#wkfbqf#eqfrvfmwozjmelqnbwjlm#lmf{bnsof#jp#wkfqfpvowjmd#jm#b?,b=?,oj=?,vo=#`obpp>!ellwfqbmg#fpsf`jboozwzsf>!avwwlm!#?,psbm=?,psbm=tkj`k#jm`ovgfg=\t?nfwb#mbnf>!`lmpjgfqfg#wkf`bqqjfg#lvw#azKltfufq/#jw#jpaf`bnf#sbqw#lejm#qfobwjlm#wlslsvobq#jm#wkfwkf#`bsjwbo#letbp#leej`jbooztkj`k#kbp#affmwkf#Kjpwlqz#lebowfqmbwjuf#wlgjeefqfmw#eqlnwl#pvsslqw#wkfpvddfpwfg#wkbwjm#wkf#sql`fpp##?gju#`obpp>!wkf#elvmgbwjlmaf`bvpf#le#kjp`lm`fqmfg#tjwkwkf#vmjufqpjwzlsslpfg#wl#wkfwkf#`lmwf{w#le?psbm#`obpp>!swf{w!#mbnf>!r!\n\n?gju#`obpp>!wkf#p`jfmwjej`qfsqfpfmwfg#aznbwkfnbwj`jbmpfof`wfg#az#wkfwkbw#kbuf#affm=?gju#`obpp>!`gju#jg>!kfbgfqjm#sbqwj`vobq/`lmufqwfg#jmwl*8\t?,p`qjsw=\t?skjolplskj`bo#pqsphlkqubwphjwj\rVSmd#Uj\rWkw<L=o=m=m<V<T<U=l=o=m=m<V<T<Ujmufpwjdb`j/_msbqwj`jsb`j/_m<V<R=n<R=l=g<Y<R<]<W<\\=m=n<T<V<R=n<R=l=g<U=k<Y<W<R<^<Y<V=m<T=m=n<Y<P=g<q<R<^<R=m=n<T<V<R=n<R=l=g=i<R<]<W<\\=m=n=`<^=l<Y<P<Y<Q<T<V<R=n<R=l<\\=c=m<Y<_<R<X<Q=c=m<V<\\=k<\\=n=`<Q<R<^<R=m=n<T<O<V=l<\\<T<Q=g<^<R<S=l<R=m=g<V<R=n<R=l<R<U=m<X<Y<W<\\=n=`<S<R<P<R=e=`=b=m=l<Y<X=m=n<^<R<]=l<\\<[<R<P=m=n<R=l<R<Q=g=o=k<\\=m=n<T<Y=n<Y=k<Y<Q<T<Y<\x7f<W<\\<^<Q<\\=c<T=m=n<R=l<T<T=m<T=m=n<Y<P<\\=l<Y=d<Y<Q<T=c<M<V<\\=k<\\=n=`<S<R=a=n<R<P=o=m<W<Y<X=o<Y=n=m<V<\\<[<\\=n=`=n<R<^<\\=l<R<^<V<R<Q<Y=k<Q<R=l<Y=d<Y<Q<T<Y<V<R=n<R=l<R<Y<R=l<_<\\<Q<R<^<V<R=n<R=l<R<P<L<Y<V<W<\\<P<\\4K5h5i5j4F4C5e5i5j4F4C5f4K4F4K5h5i5d4Z5d4U4K5h4D4]4K5i4@4K5h5i5d4K5n4U4K5h4]4_4K4J5h5i4X4K4]5o4K4F4K5h4O4U4Z4K4M4K5h4]5f4K4Z4E4K5h4F4Y5i5f5i4K5h4K4U4Z4K4M4K5h5j4F4K4J4@4K5h4O5h4U4K4D4K5h4F4_4@5f5h4K5h4O5n4_4K5i4K5h4Z4V4[4K4F4K5h5m5f4C5f5d4K5h4F4]4A5f4D4K5h4@4C5f4C4E4K5h4F4U5h5f5i4K5h4O4B4D4K4]4K5h4K5m5h4K5i4K5h4O5m5h4K5i4K5h4F4K4]5f4B4K5h4F5n5j5f4E4K5h4K5h4U4K4D4K5h4B5d4K4[4]4K5h5i4@4F5i4U4K5h4C5f5o5d4]4K5h4_5f4K4A4E4U4D4C4K5h5h5k4K5h4F4]4D5f4E4K5h4]5d4K4D4[4K5h4O4C4D5f4E4K5h4K4B4D4K4]4K5h5i4F4A4C4E4K5h4K4V4K5j5f`vqplq9sljmwfq8?,wjwof=\t?nfwb#!#kqfe>!kwws9,,!=?psbm#`obpp>!nfnafqp#le#wkf#tjmglt-ol`bwjlmufqwj`bo.bojdm9,b=#\x7f#?b#kqfe>!?"gl`wzsf#kwno=nfgjb>!p`qffm!#?lswjlm#ubovf>!ebuj`lm-j`l!#,=\t\n\n?gju#`obpp>!`kbqb`wfqjpwj`p!#nfwklg>!dfw!#,algz=\t?,kwno=\tpklqw`vw#j`lm!#gl`vnfmw-tqjwf+sbggjmd.alwwln9qfsqfpfmwbwjufppvanjw!#ubovf>!bojdm>!`fmwfq!#wkqlvdklvw#wkf#p`jfm`f#ej`wjlm\t##?gju#`obpp>!pvanjw!#`obpp>!lmf#le#wkf#nlpw#ubojdm>!wls!=?tbp#fpwbaojpkfg*8\x0e\t?,p`qjsw=\x0e\tqfwvqm#ebopf8!=*-pwzof-gjpsobzaf`bvpf#le#wkf#gl`vnfmw-`llhjf?elqn#b`wjlm>!,~algzxnbqdjm938Fm`z`olsfgjb#leufqpjlm#le#wkf#-`qfbwfFofnfmw+mbnf!#`lmwfmw>!?,gju=\t?,gju=\t\tbgnjmjpwqbwjuf#?,algz=\t?,kwno=kjpwlqz#le#wkf#!=?jmsvw#wzsf>!slqwjlm#le#wkf#bp#sbqw#le#wkf#%maps8?b#kqfe>!lwkfq#`lvmwqjfp!=\t?gju#`obpp>!?,psbm=?,psbm=?Jm#lwkfq#tlqgp/gjpsobz9#aol`h8`lmwqlo#le#wkf#jmwqlgv`wjlm#le,=\t?nfwb#mbnf>!bp#tfoo#bp#wkf#jm#qf`fmw#zfbqp\x0e\t\n?gju#`obpp>!?,gju=\t\n?,gju=\tjmpsjqfg#az#wkfwkf#fmg#le#wkf#`lnsbwjaof#tjwkaf`bnf#hmltm#bp#pwzof>!nbqdjm9-ip!=?,p`qjsw=?#Jmwfqmbwjlmbo#wkfqf#kbuf#affmDfqnbm#obmdvbdf#pwzof>!`lolq9 @lnnvmjpw#Sbqwz`lmpjpwfmw#tjwkalqgfq>!3!#`foo#nbqdjmkfjdkw>!wkf#nbilqjwz#le!#bojdm>!`fmwfqqfobwfg#wl#wkf#nbmz#gjeefqfmw#Lqwklgl{#@kvq`kpjnjobq#wl#wkf#,=\t?ojmh#qfo>!ptbp#lmf#le#wkf#vmwjo#kjp#gfbwk~*+*8\t?,p`qjsw=lwkfq#obmdvbdfp`lnsbqfg#wl#wkfslqwjlmp#le#wkfwkf#Mfwkfqobmgpwkf#nlpw#`lnnlmab`hdqlvmg9vqo+bqdvfg#wkbw#wkfp`qloojmd>!ml!#jm`ovgfg#jm#wkfMlqwk#Bnfqj`bm#wkf#mbnf#le#wkfjmwfqsqfwbwjlmpwkf#wqbgjwjlmbogfufolsnfmw#le#eqfrvfmwoz#vpfgb#`loof`wjlm#leufqz#pjnjobq#wlpvqqlvmgjmd#wkff{bnsof#le#wkjpbojdm>!`fmwfq!=tlvog#kbuf#affmjnbdf\\`bswjlm#>bwwb`kfg#wl#wkfpvddfpwjmd#wkbwjm#wkf#elqn#le#jmuloufg#jm#wkfjp#gfqjufg#eqlnmbnfg#bewfq#wkfJmwqlgv`wjlm#wlqfpwqj`wjlmp#lm#pwzof>!tjgwk9#`bm#af#vpfg#wl#wkf#`qfbwjlm#lenlpw#jnslqwbmw#jmelqnbwjlm#bmgqfpvowfg#jm#wkf`loobspf#le#wkfWkjp#nfbmp#wkbwfofnfmwp#le#wkftbp#qfsob`fg#azbmbozpjp#le#wkfjmpsjqbwjlm#elqqfdbqgfg#bp#wkfnlpw#pv``fppevohmltm#bp#%rvlw8b#`lnsqfkfmpjufKjpwlqz#le#wkf#tfqf#`lmpjgfqfgqfwvqmfg#wl#wkfbqf#qfefqqfg#wlVmplvq`fg#jnbdf=\t\n?gju#`obpp>!`lmpjpwp#le#wkfpwlsSqlsbdbwjlmjmwfqfpw#jm#wkfbubjobajojwz#lebssfbqp#wl#kbuffof`wqlnbdmfwj`fmbaofPfquj`fp+evm`wjlm#le#wkfJw#jp#jnslqwbmw?,p`qjsw=?,gju=evm`wjlm+*xubq#qfobwjuf#wl#wkfbp#b#qfpvow#le#wkf#slpjwjlm#leElq#f{bnsof/#jm#nfwklg>!slpw!#tbp#elooltfg#az%bns8ngbpk8#wkfwkf#bssoj`bwjlmip!=?,p`qjsw=\x0e\tvo=?,gju=?,gju=bewfq#wkf#gfbwktjwk#qfpsf`w#wlpwzof>!sbggjmd9jp#sbqwj`vobqozgjpsobz9jmojmf8#wzsf>!pvanjw!#jp#gjujgfg#jmwl\bTA\nzk#+\vBl\bQ\x7f*qfpslmpbajojgbgbgnjmjpwqb`j/_mjmwfqmb`jlmbofp`lqqfpslmgjfmwf\fHe\fHF\fHC\fIg\fH{\fHF\fIn\fH\\\fIa\fHY\fHU\fHB\fHR\fH\\\fIk\fH^\fIg\fH{\fIg\fHn\fHv\fIm\fHD\fHR\fHY\fH^\fIk\fHy\fHS\fHD\fHT\fH\\\fHy\fHR\fH\\\fHF\fIm\fH^\fHS\fHT\fHz\fIg\fHp\fIk\fHn\fHv\fHR\fHU\fHS\fHc\fHA\fIk\fHp\fIk\fHn\fHZ\fHR\fHB\fHS\fH^\fHU\fHB\fHR\fH\\\fIl\fHp\fHR\fH{\fH\\\fHO\fH@\fHD\fHR\fHD\fIk\fHy\fIm\fHB\fHR\fH\\\fH@\fIa\fH^\fIe\fH{\fHB\fHR\fH^\fHS\fHy\fHB\fHU\fHS\fH^\fHR\fHF\fIo\fH[\fIa\fHL\fH@\fHN\fHP\fHH\fIk\fHA\fHR\fHp\fHF\fHR\fHy\fIa\fH^\fHS\fHy\fHs\fIa\fH\\\fIk\fHD\fHz\fHS\fH^\fHR\fHG\fHJ\fI`\fH\\\fHR\fHD\fHB\fHR\fHB\fH^\fIk\fHB\fHH\fHJ\fHR\fHD\fH@\fHR\fHp\fHR\fH\\\fHY\fHS\fHy\fHR\fHT\fHy\fIa\fHC\fIg\fHn\fHv\fHR\fHU\fHH\fIk\fHF\fHU\fIm\fHm\fHv\fH@\fHH\fHR\fHC\fHR\fHT\fHn\fHY\fHR\fHJ\fHJ\fIk\fHz\fHD\fIk\fHF\fHS\fHw\fH^\fIk\fHY\fHS\fHZ\fIk\fH[\fH\\\fHR\fHp\fIa\fHC\fHe\fHH\fIa\fHH\fH\\\fHB\fIm\fHn\fH@\fHd\fHJ\fIg\fHD\fIg\fHn\fHe\fHF\fHy\fH\\\fHO\fHF\fHN\fHP\fIk\fHn\fHT\fIa\fHI\fHS\fHH\fHG\fHS\fH^\fIa\fHB\fHB\fIm\fHz\fIa\fHC\fHi\fHv\fIa\fHw\fHR\fHw\fIn\fHs\fHH\fIl\fHT\fHn\fH{\fIl\fHH\fHp\fHR\fHc\fH{\fHR\fHY\fHS\fHA\fHR\fH{\fHt\fHO\fIa\fHs\fIk\fHJ\fIn\fHT\fH\\\fIk\fHJ\fHS\fHD\fIg\fHn\fHU\fHH\fIa\fHC\fHR\fHT\fIk\fHy\fIa\fHT\fH{\fHR\fHn\fHK\fIl\fHY\fHS\fHZ\fIa\fHY\fH\\\fHR\fHH\fIk\fHn\fHJ\fId\fHs\fIa\fHT\fHD\fHy\fIa\fHZ\fHR\fHT\fHR\fHB\fHD\fIk\fHi\fHJ\fHR\fH^\fHH\fH@\fHS\fHp\fH^\fIl\fHF\fIm\fH\\\fIn\fH[\fHU\fHS\fHn\fHJ\fIl\fHB\fHS\fHH\fIa\fH\\\fHy\fHY\fHS\fHH\fHR\fH\\\fIm\fHF\fHC\fIk\fHT\fIa\fHI\fHR\fHD\fHy\fH\\\fIg\fHM\fHP\fHB\fIm\fHy\fIa\fHH\fHC\fIg\fHp\fHD\fHR\fHy\fIo\fHF\fHC\fHR\fHF\fIg\fHT\fIa\fHs\fHt\fH\\\fIk\fH^\fIn\fHy\fHR\fH\\\fIa\fHC\fHY\fHS\fHv\fHR\fH\\\fHT\fIn\fHv\fHD\fHR\fHB\fIn\fH^\fIa\fHC\fHJ\fIk\fHz\fIk\fHn\fHU\fHB\fIk\fHZ\fHR\fHT\fIa\fHy\fIn\fH^\fHB\fId\fHn\fHD\fIk\fHH\fId\fHC\fHR\fH\\\fHp\fHS\fHT\fHy\fIkqpp({no!#wjwof>!.wzsf!#`lmwfmw>!wjwof!#`lmwfmw>!bw#wkf#pbnf#wjnf-ip!=?,p`qjsw=\t?!#nfwklg>!slpw!#?,psbm=?,b=?,oj=ufqwj`bo.bojdm9w,irvfqz-njm-ip!=-`oj`h+evm`wjlm+#pwzof>!sbggjmd.~*+*8\t?,p`qjsw=\t?,psbm=?b#kqfe>!?b#kqfe>!kwws9,,*8#qfwvqm#ebopf8wf{w.gf`lqbwjlm9#p`qloojmd>!ml!#alqgfq.`loobspf9bppl`jbwfg#tjwk#Abkbpb#JmglmfpjbFmdojpk#obmdvbdf?wf{w#{no9psb`f>-dje!#alqgfq>!3!?,algz=\t?,kwno=\tlufqeolt9kjggfm8jnd#pq`>!kwws9,,bggFufmwOjpwfmfqqfpslmpjaof#elq#p-ip!=?,p`qjsw=\t,ebuj`lm-j`l!#,=lsfqbwjmd#pzpwfn!#pwzof>!tjgwk92wbqdfw>!\\aobmh!=Pwbwf#Vmjufqpjwzwf{w.bojdm9ofew8\tgl`vnfmw-tqjwf+/#jm`ovgjmd#wkf#bqlvmg#wkf#tlqog*8\x0e\t?,p`qjsw=\x0e\t?!#pwzof>!kfjdkw98lufqeolt9kjggfmnlqf#jmelqnbwjlmbm#jmwfqmbwjlmbob#nfnafq#le#wkf#lmf#le#wkf#ejqpw`bm#af#elvmg#jm#?,gju=\t\n\n?,gju=\tgjpsobz9#mlmf8!=!#,=\t?ojmh#qfo>!\t##+evm`wjlm+*#xwkf#26wk#`fmwvqz-sqfufmwGfebvow+obqdf#mvnafq#le#Azybmwjmf#Fnsjqf-isd\x7fwkvna\x7fofew\x7fubpw#nbilqjwz#lenbilqjwz#le#wkf##bojdm>!`fmwfq!=Vmjufqpjwz#Sqfppglnjmbwfg#az#wkfPf`lmg#Tlqog#Tbqgjpwqjavwjlm#le#pwzof>!slpjwjlm9wkf#qfpw#le#wkf#`kbqb`wfqjyfg#az#qfo>!mleloolt!=gfqjufp#eqln#wkfqbwkfq#wkbm#wkf#b#`lnajmbwjlm#lepwzof>!tjgwk9233Fmdojpk.psfbhjmd`lnsvwfq#p`jfm`falqgfq>!3!#bow>!wkf#f{jpwfm`f#leGfnl`qbwj`#Sbqwz!#pwzof>!nbqdjm.Elq#wkjp#qfbplm/-ip!=?,p`qjsw=\t\npAzWbdMbnf+p*X3^ip!=?,p`qjsw=\x0e\t?-ip!=?,p`qjsw=\x0e\tojmh#qfo>!j`lm!#$#bow>$$#`obpp>$elqnbwjlm#le#wkfufqpjlmp#le#wkf#?,b=?,gju=?,gju=,sbdf=\t##?sbdf=\t?gju#`obpp>!`lmwaf`bnf#wkf#ejqpwabkbpb#Jmglmfpjbfmdojpk#+pjnsof*"y"W"W"["Q"U"V"@=i=l<^<\\=n=m<V<T<V<R<P<S<\\<Q<T<T=c<^<W=c<Y=n=m=c<x<R<]<\\<^<T=n=`=k<Y<W<R<^<Y<V<\\=l<\\<[<^<T=n<T=c<t<Q=n<Y=l<Q<Y=n<r=n<^<Y=n<T=n=`<Q<\\<S=l<T<P<Y=l<T<Q=n<Y=l<Q<Y=n<V<R=n<R=l<R<_<R=m=n=l<\\<Q<T=j=g<V<\\=k<Y=m=n<^<Y=o=m<W<R<^<T=c=i<S=l<R<]<W<Y<P=g<S<R<W=o=k<T=n=`=c<^<W=c=b=n=m=c<Q<\\<T<]<R<W<Y<Y<V<R<P<S<\\<Q<T=c<^<Q<T<P<\\<Q<T<Y=m=l<Y<X=m=n<^<\\4K5h5i5d4K4Z5f4U4K5h4]4J5f4_5f4E4K5h4K5j4F5n4K5h5i4X4K4]5o4K4F5o4K5h4_5f4K4]4K4F4K5h5i5o4F5d4D4E4K5h4_4U5d4C5f4E4K4A4Y4K4J5f4K4F4K5h4U4K5h5i5f4E4K5h4Y5d4F5f4K4F4K5h4K5j4F4]5j4F4K5h4F4Y4K5i5f5i4K5h4I4_5h4K5i5f4K5h5i4X4K4]5o4E4K5h5i4]4J5f4K4Fqlalwp!#`lmwfmw>!?gju#jg>!ellwfq!=wkf#Vmjwfg#Pwbwfp?jnd#pq`>!kwws9,,-isd\x7fqjdkw\x7fwkvna\x7f-ip!=?,p`qjsw=\x0e\t?ol`bwjlm-sqlwl`loeqbnfalqgfq>!3!#p!#,=\t?nfwb#mbnf>!?,b=?,gju=?,gju=?elmw.tfjdkw9alog8%rvlw8#bmg#%rvlw8gfsfmgjmd#lm#wkf#nbqdjm938sbggjmd9!#qfo>!mleloolt!#Sqfpjgfmw#le#wkf#wtfmwjfwk#`fmwvqzfujpjlm=\t##?,sbdfJmwfqmfw#F{solqfqb-bpzm`#>#wqvf8\x0e\tjmelqnbwjlm#balvw?gju#jg>!kfbgfq!=!#b`wjlm>!kwws9,,?b#kqfe>!kwwsp9,,?gju#jg>!`lmwfmw!?,gju=\x0e\t?,gju=\x0e\t?gfqjufg#eqln#wkf#?jnd#pq`>$kwws9,,b``lqgjmd#wl#wkf#\t?,algz=\t?,kwno=\tpwzof>!elmw.pjyf9p`qjsw#obmdvbdf>!Bqjbo/#Kfoufwj`b/?,b=?psbm#`obpp>!?,p`qjsw=?p`qjsw#slojwj`bo#sbqwjfpwg=?,wq=?,wbaof=?kqfe>!kwws9,,ttt-jmwfqsqfwbwjlm#leqfo>!pwzofpkffw!#gl`vnfmw-tqjwf+$?`kbqpfw>!vwe.;!=\tafdjmmjmd#le#wkf#qfufbofg#wkbw#wkfwfofujpjlm#pfqjfp!#qfo>!mleloolt!=#wbqdfw>!\\aobmh!=`objnjmd#wkbw#wkfkwws&0B&1E&1Ettt-nbmjefpwbwjlmp#leSqjnf#Njmjpwfq#lejmeovfm`fg#az#wkf`obpp>!`ofbqej{!=,gju=\x0e\t?,gju=\x0e\t\x0e\twkqff.gjnfmpjlmbo@kvq`k#le#Fmdobmgle#Mlqwk#@bqlojmbprvbqf#hjolnfwqfp-bggFufmwOjpwfmfqgjpwjm`w#eqln#wkf`lnnlmoz#hmltm#bpSklmfwj`#Boskbafwgf`obqfg#wkbw#wkf`lmwqloofg#az#wkfAfmibnjm#Eqbmhojmqlof.sobzjmd#dbnfwkf#Vmjufqpjwz#lejm#Tfpwfqm#Fvqlsfsfqplmbo#`lnsvwfqSqlif`w#Dvwfmafqdqfdbqgofpp#le#wkfkbp#affm#sqlslpfgwldfwkfq#tjwk#wkf=?,oj=?oj#`obpp>!jm#plnf#`lvmwqjfpnjm-ip!=?,p`qjsw=le#wkf#slsvobwjlmleej`jbo#obmdvbdf?jnd#pq`>!jnbdfp,jgfmwjejfg#az#wkfmbwvqbo#qfplvq`fp`obppjej`bwjlm#le`bm#af#`lmpjgfqfgrvbmwvn#nf`kbmj`pMfufqwkfofpp/#wkfnjoojlm#zfbqp#bdl?,algz=\x0e\t?,kwno=\x0e"y"W"W"["Q"U"V"@\twbhf#bgubmwbdf#lebmg/#b``lqgjmd#wlbwwqjavwfg#wl#wkfNj`qlplew#Tjmgltpwkf#ejqpw#`fmwvqzvmgfq#wkf#`lmwqlogju#`obpp>!kfbgfqpklqwoz#bewfq#wkfmlwbaof#f{`fswjlmwfmp#le#wklvpbmgppfufqbo#gjeefqfmwbqlvmg#wkf#tlqog-qfb`kjmd#njojwbqzjplobwfg#eqln#wkflsslpjwjlm#wl#wkfwkf#Log#WfpwbnfmwBeqj`bm#Bnfqj`bmpjmpfqwfg#jmwl#wkfpfsbqbwf#eqln#wkfnfwqlslojwbm#bqfbnbhfp#jw#slppjaofb`hmltofgdfg#wkbwbqdvbaoz#wkf#nlpwwzsf>!wf{w,`pp!=\twkf#JmwfqmbwjlmboB``lqgjmd#wl#wkf#sf>!wf{w,`pp!#,=\t`ljm`jgf#tjwk#wkfwtl.wkjqgp#le#wkfGvqjmd#wkjp#wjnf/gvqjmd#wkf#sfqjlgbmmlvm`fg#wkbw#kfwkf#jmwfqmbwjlmbobmg#nlqf#qf`fmwozafojfufg#wkbw#wkf`lmp`jlvpmfpp#bmgelqnfqoz#hmltm#bppvqqlvmgfg#az#wkfejqpw#bssfbqfg#jml``bpjlmbooz#vpfgslpjwjlm9baplovwf8!#wbqdfw>!\\aobmh!#slpjwjlm9qfobwjuf8wf{w.bojdm9`fmwfq8ib{,ojap,irvfqz,2-ab`hdqlvmg.`lolq9 wzsf>!bssoj`bwjlm,bmdvbdf!#`lmwfmw>!?nfwb#kwws.frvju>!Sqjub`z#Sloj`z?,b=f+!&0@p`qjsw#pq`>$!#wbqdfw>!\\aobmh!=Lm#wkf#lwkfq#kbmg/-isd\x7fwkvna\x7fqjdkw\x7f1?,gju=?gju#`obpp>!?gju#pwzof>!eolbw9mjmfwffmwk#`fmwvqz?,algz=\x0e\t?,kwno=\x0e\t?jnd#pq`>!kwws9,,p8wf{w.bojdm9`fmwfqelmw.tfjdkw9#alog8#B``lqgjmd#wl#wkf#gjeefqfm`f#afwtffm!#eqbnfalqgfq>!3!#!#pwzof>!slpjwjlm9ojmh#kqfe>!kwws9,,kwno7,ollpf-gwg!=\tgvqjmd#wkjp#sfqjlg?,wg=?,wq=?,wbaof=`olpfoz#qfobwfg#wlelq#wkf#ejqpw#wjnf8elmw.tfjdkw9alog8jmsvw#wzsf>!wf{w!#?psbm#pwzof>!elmw.lmqfbgzpwbwf`kbmdf\n?gju#`obpp>!`ofbqgl`vnfmw-ol`bwjlm-#Elq#f{bnsof/#wkf#b#tjgf#ubqjfwz#le#?"GL@WZSF#kwno=\x0e\t?%maps8%maps8%maps8!=?b#kqfe>!kwws9,,pwzof>!eolbw9ofew8`lm`fqmfg#tjwk#wkf>kwws&0B&1E&1Ettt-jm#slsvobq#`vowvqfwzsf>!wf{w,`pp!#,=jw#jp#slppjaof#wl#Kbqubqg#Vmjufqpjwzwzofpkffw!#kqfe>!,wkf#nbjm#`kbqb`wfqL{elqg#Vmjufqpjwz##mbnf>!hfztlqgp!#`pwzof>!wf{w.bojdm9wkf#Vmjwfg#Hjmdglnefgfqbo#dlufqmnfmw?gju#pwzof>!nbqdjm#gfsfmgjmd#lm#wkf#gfp`qjswjlm#le#wkf?gju#`obpp>!kfbgfq-njm-ip!=?,p`qjsw=gfpwqv`wjlm#le#wkfpojdkwoz#gjeefqfmwjm#b``lqgbm`f#tjwkwfof`lnnvmj`bwjlmpjmgj`bwfp#wkbw#wkfpklqwoz#wkfqfbewfqfpsf`jbooz#jm#wkf#Fvqlsfbm#`lvmwqjfpKltfufq/#wkfqf#bqfpq`>!kwws9,,pwbwj`pvddfpwfg#wkbw#wkf!#pq`>!kwws9,,ttt-b#obqdf#mvnafq#le#Wfof`lnnvmj`bwjlmp!#qfo>!mleloolt!#wKloz#Qlnbm#Fnsfqlqbonlpw#f{`ovpjufoz!#alqgfq>!3!#bow>!Pf`qfwbqz#le#Pwbwf`vonjmbwjmd#jm#wkf@JB#Tlqog#Eb`wallhwkf#nlpw#jnslqwbmwbmmjufqpbqz#le#wkfpwzof>!ab`hdqlvmg.?oj=?fn=?b#kqfe>!,wkf#Bwobmwj`#L`fbmpwqj`woz#psfbhjmd/pklqwoz#afelqf#wkfgjeefqfmw#wzsfp#lewkf#Lwwlnbm#Fnsjqf=?jnd#pq`>!kwws9,,Bm#Jmwqlgv`wjlm#wl`lmpfrvfm`f#le#wkfgfsbqwvqf#eqln#wkf@lmefgfqbwf#Pwbwfpjmgjdfmlvp#sflsofpSql`ffgjmdp#le#wkfjmelqnbwjlm#lm#wkfwkflqjfp#kbuf#affmjmuloufnfmw#jm#wkfgjujgfg#jmwl#wkqffbgib`fmw#`lvmwqjfpjp#qfpslmpjaof#elqgjpplovwjlm#le#wkf`loobalqbwjlm#tjwktjgfoz#qfdbqgfg#bpkjp#`lmwfnslqbqjfpelvmgjmd#nfnafq#leGlnjmj`bm#Qfsvaoj`dfmfqbooz#b``fswfgwkf#slppjajojwz#lebqf#bopl#bubjobaofvmgfq#`lmpwqv`wjlmqfpwlqbwjlm#le#wkfwkf#dfmfqbo#svaoj`jp#bonlpw#fmwjqfozsbppfp#wkqlvdk#wkfkbp#affm#pvddfpwfg`lnsvwfq#bmg#ujgflDfqnbmj`#obmdvbdfp#b``lqgjmd#wl#wkf#gjeefqfmw#eqln#wkfpklqwoz#bewfqtbqgpkqfe>!kwwsp9,,ttt-qf`fmw#gfufolsnfmwAlbqg#le#Gjqf`wlqp?gju#`obpp>!pfbq`k\x7f#?b#kqfe>!kwws9,,Jm#sbqwj`vobq/#wkfNvowjsof#ellwmlwfplq#lwkfq#pvapwbm`fwklvpbmgp#le#zfbqpwqbmpobwjlm#le#wkf?,gju=\x0e\t?,gju=\x0e\t\x0e\t?b#kqfe>!jmgf{-skstbp#fpwbaojpkfg#jmnjm-ip!=?,p`qjsw=\tsbqwj`jsbwf#jm#wkfb#pwqlmd#jmeovfm`fpwzof>!nbqdjm.wls9qfsqfpfmwfg#az#wkfdqbgvbwfg#eqln#wkfWqbgjwjlmbooz/#wkfFofnfmw+!p`qjsw!*8Kltfufq/#pjm`f#wkf,gju=\t?,gju=\t?gju#ofew8#nbqdjm.ofew9sqlwf`wjlm#bdbjmpw38#ufqwj`bo.bojdm9Vmelqwvmbwfoz/#wkfwzsf>!jnbdf,{.j`lm,gju=\t?gju#`obpp>!#`obpp>!`ofbqej{!=?gju#`obpp>!ellwfq\n\n?,gju=\t\n\n?,gju=\twkf#nlwjlm#sj`wvqf<}=f<W<_<\\=l=m<V<T<]=f<W<_<\\=l=m<V<T<H<Y<X<Y=l<\\=j<T<T<Q<Y=m<V<R<W=`<V<R=m<R<R<]=e<Y<Q<T<Y=m<R<R<]=e<Y<Q<T=c<S=l<R<_=l<\\<P<P=g<r=n<S=l<\\<^<T=n=`<]<Y=m<S<W<\\=n<Q<R<P<\\=n<Y=l<T<\\<W=g<S<R<[<^<R<W=c<Y=n<S<R=m<W<Y<X<Q<T<Y=l<\\<[<W<T=k<Q=g=i<S=l<R<X=o<V=j<T<T<S=l<R<_=l<\\<P<P<\\<S<R<W<Q<R=m=n=`=b<Q<\\=i<R<X<T=n=m=c<T<[<]=l<\\<Q<Q<R<Y<Q<\\=m<Y<W<Y<Q<T=c<T<[<P<Y<Q<Y<Q<T=c<V<\\=n<Y<_<R=l<T<T<|<W<Y<V=m<\\<Q<X=l\fHJ\fIa\fHY\fHR\fH\\\fHR\fHB\fId\fHD\fIm\fHi\fH^\fHF\fIa\fH\\\fHJ\fHR\fHD\fHA\fHR\fH\\\fHH\fIl\fHC\fHi\fHD\fIm\fHJ\fIk\fHZ\fHU\fHS\fHD\fIa\fHJ\fIl\fHk\fHn\fHM\fHS\fHC\fHR\fHJ\fHS\fH^\fIa\fH^\fIl\fHi\fHK\fHS\fHy\fHR\fH\\\fHY\fIl\fHM\fHS\fHC\fIg\fHv\fHS\fHs\fIa\fHL\fIk\fHT\fHB\fHR\fHv\fHR\fH\\\fHp\fHn\fHy\fIa\fHZ\fHD\fHJ\fIm\fHD\fHS\fHC\fHR\fHF\fIa\fH\\\fHC\fIg\fH{\fHi\fHD\fIm\fHT\fHR\fH\\\fH}\fHD\fH^\fHR\fHk\fHD\fHF\fHR\fH\\\fIa\fHs\fIl\fHZ\fH\\\fIa\fHH\fIg\fHn\fH^\fIg\fHy\fHT\fHA\fHR\fHG\fHP\fIa\fH^\fId\fHZ\fHZ\fH\\\fIa\fHH\fIk\fHn\fHF\fIa\fH\\\fHJ\fIk\fHZ\fHF\fIa\fH^\fIk\fHC\fH\\\fHy\fIk\fHn\fHJ\fIa\fH\\\fHT\fIa\fHI\fHS\fHH\fHS\fHe\fHH\fIa\fHF\fHR\fHJ\fHe\fHD\fIa\fHU\fIk\fHn\fHv\fHS\fHs\fIa\fHL\fHR\fHC\fHR\fHH\fIa\fH\\\fHR\fHp\fIa\fHC\fHR\fHJ\fHR\fHF\fIm\fH\\\fHR\fHD\fIk\fHp\fIg\fHM\fHP\fIk\fHn\fHi\fHD\fIm\fHY\fHR\fHJ\fHZ\fIa\fH\\\fIk\fHO\fIl\fHZ\fHS\fHy\fIa\fH[\fHR\fHT\fH\\\fHy\fHR\fH\\\fIl\fHT\fHn\fH{\fIa\fH\\\fHU\fHF\fH\\\fHS\fHO\fHR\fHB\fH@\fIa\fH\\\fHR\fHn\fHM\fH@\fHv\fIa\fHv\fIg\fHn\fHe\fHF\fH^\fH@\fIa\fHK\fHB\fHn\fHH\fIa\fH\\\fIl\fHT\fHn\fHF\fH\\\fIa\fHy\fHe\fHB\fIa\fHB\fIl\fHJ\fHB\fHR\fHK\fIa\fHC\fHB\fHT\fHU\fHR\fHC\fHH\fHR\fHZ\fH@\fIa\fHJ\fIg\fHn\fHB\fIl\fHM\fHS\fHC\fHR\fHj\fHd\fHF\fIl\fHc\fH^\fHB\fIg\fH@\fHR\fHk\fH^\fHT\fHn\fHz\fIa\fHC\fHR\fHj\fHF\fH\\\fIk\fHZ\fHD\fHi\fHD\fIm\fH@\fHn\fHK\fH@\fHR\fHp\fHP\fHR\fH\\\fHD\fHY\fIl\fHD\fHH\fHB\fHF\fIa\fH\\\fHB\fIm\fHz\fHF\fIa\fH\\\fHZ\fIa\fHD\fHF\fH\\\fHS\fHY\fHR\fH\\\fHD\fIm\fHy\fHT\fHR\fHD\fHT\fHB\fH\\\fIa\fHI\fHD\fHj\fHC\fIg\fHp\fHS\fHH\fHT\fIg\fHB\fHY\fHR\fH\\4K5h5i4X4K4]5o4K4F4K5h5i5j4F4C5f4K4F4K5h5o5i4D5f5d4F4]4K5h5i4X4K5k4C4K4F4U4C4C4K5h4^5d4K4]4U4C4C4K5h4]4C5d4C4K5h4I4_5h4K5i5f4E4K5h5m5d4F5d4X5d4D4K5h5i4_4K4D5n4K4F4K5h5i4U5h5d5i4K4F4K5h5i4_5h4_5h4K4F4K5h4@4]4K5m5f5o4_4K5h4K4_5h4K5i5f4E4K5h4K4F4Y4K5h4K4Fhfztlqgp!#`lmwfmw>!t0-lqd,2:::,{kwno!=?b#wbqdfw>!\\aobmh!#wf{w,kwno8#`kbqpfw>!#wbqdfw>!\\aobmh!=?wbaof#`foosbggjmd>!bvwl`lnsofwf>!lee!#wf{w.bojdm9#`fmwfq8wl#obpw#ufqpjlm#az#ab`hdqlvmg.`lolq9# !#kqfe>!kwws9,,ttt-,gju=?,gju=?gju#jg>?b#kqfe>! !#`obpp>!!=?jnd#pq`>!kwws9,,`qjsw!#pq`>!kwws9,,\t?p`qjsw#obmdvbdf>!,,FM!#!kwws9,,ttt-tfm`lgfVQJ@lnslmfmw+!#kqfe>!ibubp`qjsw9?gju#`obpp>!`lmwfmwgl`vnfmw-tqjwf+$?p`slpjwjlm9#baplovwf8p`qjsw#pq`>!kwws9,,#pwzof>!nbqdjm.wls9-njm-ip!=?,p`qjsw=\t?,gju=\t?gju#`obpp>!t0-lqd,2:::,{kwno!#\t\x0e\t?,algz=\x0e\t?,kwno=gjpwjm`wjlm#afwtffm,!#wbqdfw>!\\aobmh!=?ojmh#kqfe>!kwws9,,fm`lgjmd>!vwe.;!<=\tt-bggFufmwOjpwfmfq<b`wjlm>!kwws9,,ttt-j`lm!#kqfe>!kwws9,,#pwzof>!ab`hdqlvmg9wzsf>!wf{w,`pp!#,=\tnfwb#sqlsfqwz>!ld9w?jmsvw#wzsf>!wf{w!##pwzof>!wf{w.bojdm9wkf#gfufolsnfmw#le#wzofpkffw!#wzsf>!wfkwno8#`kbqpfw>vwe.;jp#`lmpjgfqfg#wl#afwbaof#tjgwk>!233&!#Jm#bggjwjlm#wl#wkf#`lmwqjavwfg#wl#wkf#gjeefqfm`fp#afwtffmgfufolsnfmw#le#wkf#Jw#jp#jnslqwbmw#wl#?,p`qjsw=\t\t?p`qjsw##pwzof>!elmw.pjyf92=?,psbm=?psbm#jg>daOjaqbqz#le#@lmdqfpp?jnd#pq`>!kwws9,,jnFmdojpk#wqbmpobwjlmB`bgfnz#le#P`jfm`fpgju#pwzof>!gjpsobz9`lmpwqv`wjlm#le#wkf-dfwFofnfmwAzJg+jg*jm#`lmivm`wjlm#tjwkFofnfmw+$p`qjsw$*8#?nfwb#sqlsfqwz>!ld9<}=f<W<_<\\=l=m<V<T\t#wzsf>!wf{w!#mbnf>!=Sqjub`z#Sloj`z?,b=bgnjmjpwfqfg#az#wkffmbaofPjmdofQfrvfpwpwzof>%rvlw8nbqdjm9?,gju=?,gju=?,gju=?=?jnd#pq`>!kwws9,,j#pwzof>%rvlw8eolbw9qfefqqfg#wl#bp#wkf#wlwbo#slsvobwjlm#lejm#Tbpkjmdwlm/#G-@-#pwzof>!ab`hdqlvmg.bnlmd#lwkfq#wkjmdp/lqdbmjybwjlm#le#wkfsbqwj`jsbwfg#jm#wkfwkf#jmwqlgv`wjlm#lejgfmwjejfg#tjwk#wkfej`wjlmbo#`kbqb`wfq#L{elqg#Vmjufqpjwz#njpvmgfqpwbmgjmd#leWkfqf#bqf/#kltfufq/pwzofpkffw!#kqfe>!,@lovnajb#Vmjufqpjwzf{sbmgfg#wl#jm`ovgfvpvbooz#qfefqqfg#wljmgj`bwjmd#wkbw#wkfkbuf#pvddfpwfg#wkbwbeejojbwfg#tjwk#wkf`lqqfobwjlm#afwtffmmvnafq#le#gjeefqfmw=?,wg=?,wq=?,wbaof=Qfsvaoj`#le#Jqfobmg\t?,p`qjsw=\t?p`qjsw#vmgfq#wkf#jmeovfm`f`lmwqjavwjlm#wl#wkfLeej`jbo#tfapjwf#lekfbgrvbqwfqp#le#wkf`fmwfqfg#bqlvmg#wkfjnsoj`bwjlmp#le#wkfkbuf#affm#gfufolsfgEfgfqbo#Qfsvaoj`#leaf`bnf#jm`qfbpjmdoz`lmwjmvbwjlm#le#wkfMlwf/#kltfufq/#wkbwpjnjobq#wl#wkbw#le#`bsbajojwjfp#le#wkfb``lqgbm`f#tjwk#wkfsbqwj`jsbmwp#jm#wkfevqwkfq#gfufolsnfmwvmgfq#wkf#gjqf`wjlmjp#lewfm#`lmpjgfqfgkjp#zlvmdfq#aqlwkfq?,wg=?,wq=?,wbaof=?b#kwws.frvju>![.VB.skzpj`bo#sqlsfqwjfple#Aqjwjpk#@lovnajbkbp#affm#`qjwj`jyfg+tjwk#wkf#f{`fswjlmrvfpwjlmp#balvw#wkfsbppjmd#wkqlvdk#wkf3!#`foosbggjmd>!3!#wklvpbmgp#le#sflsofqfgjqf`wp#kfqf-#Elqkbuf#`kjogqfm#vmgfq&0F&0@,p`qjsw&0F!**8?b#kqfe>!kwws9,,ttt-?oj=?b#kqfe>!kwws9,,pjwf\\mbnf!#`lmwfmw>!wf{w.gf`lqbwjlm9mlmfpwzof>!gjpsobz9#mlmf?nfwb#kwws.frvju>![.mft#Gbwf+*-dfwWjnf+*#wzsf>!jnbdf,{.j`lm!?,psbm=?psbm#`obpp>!obmdvbdf>!ibubp`qjswtjmglt-ol`bwjlm-kqfe?b#kqfe>!ibubp`qjsw9..=\x0e\t?p`qjsw#wzsf>!w?b#kqfe>$kwws9,,ttt-klqw`vw#j`lm!#kqfe>!?,gju=\x0e\t?gju#`obpp>!?p`qjsw#pq`>!kwws9,,!#qfo>!pwzofpkffw!#w?,gju=\t?p`qjsw#wzsf>,b=#?b#kqfe>!kwws9,,#booltWqbmpsbqfm`z>![.VB.@lnsbwjaof!#`lmqfobwjlmpkjs#afwtffm\t?,p`qjsw=\x0e\t?p`qjsw#?,b=?,oj=?,vo=?,gju=bppl`jbwfg#tjwk#wkf#sqldqbnnjmd#obmdvbdf?,b=?b#kqfe>!kwws9,,?,b=?,oj=?oj#`obpp>!elqn#b`wjlm>!kwws9,,?gju#pwzof>!gjpsobz9wzsf>!wf{w!#mbnf>!r!?wbaof#tjgwk>!233&!#ab`hdqlvmg.slpjwjlm9!#alqgfq>!3!#tjgwk>!qfo>!pklqw`vw#j`lm!#k5=?vo=?oj=?b#kqfe>!##?nfwb#kwws.frvju>!`pp!#nfgjb>!p`qffm!#qfpslmpjaof#elq#wkf#!#wzsf>!bssoj`bwjlm,!#pwzof>!ab`hdqlvmg.kwno8#`kbqpfw>vwe.;!#booltwqbmpsbqfm`z>!pwzofpkffw!#wzsf>!wf\x0e\t?nfwb#kwws.frvju>!=?,psbm=?psbm#`obpp>!3!#`foopsb`jmd>!3!=8\t?,p`qjsw=\t?p`qjsw#plnfwjnfp#`boofg#wkfglfp#mlw#mf`fppbqjozElq#nlqf#jmelqnbwjlmbw#wkf#afdjmmjmd#le#?"GL@WZSF#kwno=?kwnosbqwj`vobqoz#jm#wkf#wzsf>!kjggfm!#mbnf>!ibubp`qjsw9uljg+3*8!feef`wjufmfpp#le#wkf#bvwl`lnsofwf>!lee!#dfmfqbooz#`lmpjgfqfg=?jmsvw#wzsf>!wf{w!#!=?,p`qjsw=\x0e\t?p`qjswwkqlvdklvw#wkf#tlqog`lnnlm#njp`lm`fswjlmbppl`jbwjlm#tjwk#wkf?,gju=\t?,gju=\t?gju#`gvqjmd#kjp#ojefwjnf/`lqqfpslmgjmd#wl#wkfwzsf>!jnbdf,{.j`lm!#bm#jm`qfbpjmd#mvnafqgjsolnbwj`#qfobwjlmpbqf#lewfm#`lmpjgfqfgnfwb#`kbqpfw>!vwe.;!#?jmsvw#wzsf>!wf{w!#f{bnsofp#jm`ovgf#wkf!=?jnd#pq`>!kwws9,,jsbqwj`jsbwjlm#jm#wkfwkf#fpwbaojpknfmw#le\t?,gju=\t?gju#`obpp>!%bns8maps8%bns8maps8wl#gfwfqnjmf#tkfwkfqrvjwf#gjeefqfmw#eqlnnbqhfg#wkf#afdjmmjmdgjpwbm`f#afwtffm#wkf`lmwqjavwjlmp#wl#wkf`lmeoj`w#afwtffm#wkftjgfoz#`lmpjgfqfg#wltbp#lmf#le#wkf#ejqpwtjwk#ubqzjmd#gfdqffpkbuf#psf`vobwfg#wkbw+gl`vnfmw-dfwFofnfmwsbqwj`jsbwjmd#jm#wkflqjdjmbooz#gfufolsfgfwb#`kbqpfw>!vwe.;!=#wzsf>!wf{w,`pp!#,=\tjmwfq`kbmdfbaoz#tjwknlqf#`olpfoz#qfobwfgpl`jbo#bmg#slojwj`bowkbw#tlvog#lwkfqtjpfsfqsfmgj`vobq#wl#wkfpwzof#wzsf>!wf{w,`ppwzsf>!pvanjw!#mbnf>!ebnjojfp#qfpjgjmd#jmgfufolsjmd#`lvmwqjfp`lnsvwfq#sqldqbnnjmdf`lmlnj`#gfufolsnfmwgfwfqnjmbwjlm#le#wkfelq#nlqf#jmelqnbwjlmlm#pfufqbo#l``bpjlmpslqwvdv/Fp#+Fvqlsfv*<O<V=l<\\={<Q=m=`<V<\\=o<V=l<\\={<Q=m=`<V<\\<L<R=m=m<T<U=m<V<R<U<P<\\=n<Y=l<T<\\<W<R<^<T<Q=h<R=l<P<\\=j<T<T=o<S=l<\\<^<W<Y<Q<T=c<Q<Y<R<]=i<R<X<T<P<R<T<Q=h<R=l<P<\\=j<T=c<t<Q=h<R=l<P<\\=j<T=c<L<Y=m<S=o<]<W<T<V<T<V<R<W<T=k<Y=m=n<^<R<T<Q=h<R=l<P<\\=j<T=b=n<Y=l=l<T=n<R=l<T<T<X<R=m=n<\\=n<R=k<Q<R4K5h5i4F5d4K4@4C5d5j4K5h4K4X4F4]4K5o4K4F4K5h4K5n4F4]4K4A4K4Fkwno8#`kbqpfw>VWE.;!#pfwWjnflvw+evm`wjlm+*gjpsobz9jmojmf.aol`h8?jmsvw#wzsf>!pvanjw!#wzsf#>#$wf{w,ibubp`qj?jnd#pq`>!kwws9,,ttt-!#!kwws9,,ttt-t0-lqd,pklqw`vw#j`lm!#kqfe>!!#bvwl`lnsofwf>!lee!#?,b=?,gju=?gju#`obpp>?,b=?,oj=\t?oj#`obpp>!`pp!#wzsf>!wf{w,`pp!#?elqn#b`wjlm>!kwws9,,{w,`pp!#kqfe>!kwws9,,ojmh#qfo>!bowfqmbwf!#\x0e\t?p`qjsw#wzsf>!wf{w,#lm`oj`h>!ibubp`qjsw9+mft#Gbwf*-dfwWjnf+*~kfjdkw>!2!#tjgwk>!2!#Sflsof$p#Qfsvaoj`#le##?b#kqfe>!kwws9,,ttt-wf{w.gf`lqbwjlm9vmgfqwkf#afdjmmjmd#le#wkf#?,gju=\t?,gju=\t?,gju=\tfpwbaojpknfmw#le#wkf#?,gju=?,gju=?,gju=?,g ujftslqwxnjm.kfjdkw9\t?p`qjsw#pq`>!kwws9,,lswjlm=?lswjlm#ubovf>lewfm#qfefqqfg#wl#bp#,lswjlm=\t?lswjlm#ubov?"GL@WZSF#kwno=\t?"..XJmwfqmbwjlmbo#Bjqslqw=\t?b#kqfe>!kwws9,,ttt?,b=?b#kqfe>!kwws9,,t\fTL\fT^\fTE\fT^\fUh\fT{\fTN\roI\ro|\roL\ro{\roO\rov\rot\nAO\x05Gx\bTA\nzk#+\vUm\x05Gx*\fHD\fHS\fH\\\fIa\fHJ\fIk\fHZ\fHM\fHR\fHe\fHD\fH^\fIg\fHM\fHy\fIa\fH[\fIk\fHH\fIa\fH\\\fHp\fHR\fHD\fHy\fHR\fH\\\fIl\fHT\fHn\fH@\fHn\fHK\fHS\fHH\fHT\fIa\fHI\fHR\fHF\fHD\fHR\fHT\fIa\fHY\fIl\fHy\fHR\fH\\\fHT\fHn\fHT\fIa\fHy\fH\\\fHO\fHT\fHR\fHB\fH{\fIa\fH\\\fIl\fHv\fHS\fHs\fIa\fHL\fIg\fHn\fHY\fHS\fHp\fIa\fHr\fHR\fHD\fHi\fHB\fIk\fH\\\fHS\fHy\fHR\fHY\fHS\fHA\fHS\fHD\fIa\fHD\fH{\fHR\fHM\fHS\fHC\fHR\fHm\fHy\fIa\fHC\fIg\fHn\fHy\fHS\fHT\fIm\fH\\\fHy\fIa\fH[\fHR\fHF\fHU\fIm\fHm\fHv\fHH\fIl\fHF\fIa\fH\\\fH@\fHn\fHK\fHD\fHs\fHS\fHF\fIa\fHF\fHO\fIl\fHy\fIa\fH\\\fHS\fHy\fIk\fHs\fHF\fIa\fH\\\fHR\fH\\\fHn\fHA\fHF\fIa\fH\\\fHR\fHF\fIa\fHH\fHB\fHR\fH^\fHS\fHy\fIg\fHn\fH\\\fHG\fHP\fIa\fHH\fHR\fH\\\fHD\fHS\fH\\\fIa\fHB\fHR\fHO\fH^\fHS\fHB\fHS\fHs\fIk\fHMgfp`qjswjlm!#`lmwfmw>!gl`vnfmw-ol`bwjlm-sqlw-dfwFofnfmwpAzWbdMbnf+?"GL@WZSF#kwno=\t?kwno#?nfwb#`kbqpfw>!vwe.;!=9vqo!#`lmwfmw>!kwws9,,-`pp!#qfo>!pwzofpkffw!pwzof#wzsf>!wf{w,`pp!=wzsf>!wf{w,`pp!#kqfe>!t0-lqd,2:::,{kwno!#{nowzsf>!wf{w,ibubp`qjsw!#nfwklg>!dfw!#b`wjlm>!ojmh#qfo>!pwzofpkffw!##>#gl`vnfmw-dfwFofnfmwwzsf>!jnbdf,{.j`lm!#,=`foosbggjmd>!3!#`foops-`pp!#wzsf>!wf{w,`pp!#?,b=?,oj=?oj=?b#kqfe>!!#tjgwk>!2!#kfjdkw>!2!!=?b#kqfe>!kwws9,,ttt-pwzof>!gjpsobz9mlmf8!=bowfqmbwf!#wzsf>!bssoj.,,T0@,,GWG#[KWNO#2-3#foopsb`jmd>!3!#`foosbg#wzsf>!kjggfm!#ubovf>!,b=%maps8?psbm#qlof>!p\t?jmsvw#wzsf>!kjggfm!#obmdvbdf>!IbubP`qjsw!##gl`vnfmw-dfwFofnfmwpAd>!3!#`foopsb`jmd>!3!#zsf>!wf{w,`pp!#nfgjb>!wzsf>$wf{w,ibubp`qjsw$tjwk#wkf#f{`fswjlm#le#zsf>!wf{w,`pp!#qfo>!pw#kfjdkw>!2!#tjgwk>!2!#>$(fm`lgfVQJ@lnslmfmw+?ojmh#qfo>!bowfqmbwf!#\talgz/#wq/#jmsvw/#wf{wnfwb#mbnf>!qlalwp!#`lmnfwklg>!slpw!#b`wjlm>!=\t?b#kqfe>!kwws9,,ttt-`pp!#qfo>!pwzofpkffw!#?,gju=?,gju=?gju#`obppobmdvbdf>!ibubp`qjsw!=bqjb.kjggfm>!wqvf!=.[?qjsw!#wzsf>!wf{w,ibubpo>38~*+*8\t+evm`wjlm+*xab`hdqlvmg.jnbdf9#vqo+,b=?,oj=?oj=?b#kqfe>!k\n\n?oj=?b#kqfe>!kwws9,,bwlq!#bqjb.kjggfm>!wqv=#?b#kqfe>!kwws9,,ttt-obmdvbdf>!ibubp`qjsw!#,lswjlm=\t?lswjlm#ubovf,gju=?,gju=?gju#`obpp>qbwlq!#bqjb.kjggfm>!wqf>+mft#Gbwf*-dfwWjnf+*slqwvdv/Fp#+gl#Aqbpjo*<R=l<_<\\<Q<T<[<\\=j<T<T<^<R<[<P<R<Z<Q<R=m=n=`<R<]=l<\\<[<R<^<\\<Q<T=c=l<Y<_<T=m=n=l<\\=j<T<T<^<R<[<P<R<Z<Q<R=m=n<T<R<]=c<[<\\=n<Y<W=`<Q<\\?"GL@WZSF#kwno#SVAOJ@#!mw.Wzsf!#`lmwfmw>!wf{w,?nfwb#kwws.frvju>!@lmwfqbmpjwjlmbo,,FM!#!kwws9?kwno#{nomp>!kwws9,,ttt.,,T0@,,GWG#[KWNO#2-3#WGWG,{kwno2.wqbmpjwjlmbo,,ttt-t0-lqd,WQ,{kwno2,sf#>#$wf{w,ibubp`qjsw$8?nfwb#mbnf>!gfp`qjswjlmsbqfmwMlgf-jmpfqwAfelqf?jmsvw#wzsf>!kjggfm!#mbip!#wzsf>!wf{w,ibubp`qj+gl`vnfmw*-qfbgz+evm`wjp`qjsw#wzsf>!wf{w,ibubpjnbdf!#`lmwfmw>!kwws9,,VB.@lnsbwjaof!#`lmwfmw>wno8#`kbqpfw>vwe.;!#,=\tojmh#qfo>!pklqw`vw#j`lm?ojmh#qfo>!pwzofpkffw!#?,p`qjsw=\t?p`qjsw#wzsf>>#gl`vnfmw-`qfbwfFofnfm?b#wbqdfw>!\\aobmh!#kqfe>#gl`vnfmw-dfwFofnfmwpAjmsvw#wzsf>!wf{w!#mbnf>b-wzsf#>#$wf{w,ibubp`qjmsvw#wzsf>!kjggfm!#mbnfkwno8#`kbqpfw>vwe.;!#,=gwg!=\t?kwno#{nomp>!kwws.,,T0@,,GWG#KWNO#7-32#WfmwpAzWbdMbnf+$p`qjsw$*jmsvw#wzsf>!kjggfm!#mbn?p`qjsw#wzsf>!wf{w,ibubp!#pwzof>!gjpsobz9mlmf8!=gl`vnfmw-dfwFofnfmwAzJg+>gl`vnfmw-`qfbwfFofnfmw+$#wzsf>$wf{w,ibubp`qjsw$jmsvw#wzsf>!wf{w!#mbnf>!g-dfwFofnfmwpAzWbdMbnf+pmj`bo!#kqfe>!kwws9,,ttt-@,,GWG#KWNO#7-32#Wqbmpjw?pwzof#wzsf>!wf{w,`pp!=\t\t?pwzof#wzsf>!wf{w,`pp!=jlmbo-gwg!=\t?kwno#{nomp>kwws.frvju>!@lmwfmw.Wzsfgjmd>!3!#`foopsb`jmd>!3!kwno8#`kbqpfw>vwe.;!#,=\t#pwzof>!gjpsobz9mlmf8!=??oj=?b#kqfe>!kwws9,,ttt-#wzsf>$wf{w,ibubp`qjsw$=<X<Y=c=n<Y<W=`<Q<R=m=n<T=m<R<R=n<^<Y=n=m=n<^<T<T<S=l<R<T<[<^<R<X=m=n<^<\\<]<Y<[<R<S<\\=m<Q<R=m=n<T\fHF\fIm\fHT\fIa\fHH\fHS\fHy\fHR\fHy\fHR\fHn\fH{\fIa\fH\\\fIk\fHT\fHe\fHD\fIa\fHU\fIg\fHn\fHD\fIk\fHY\fHS\fHK\fHR\fHD\fHT\fHA\fHR\fHG\fHS\fHy\fIa\fHT\fHS\fHn\fH{\fHT\fIm\fH\\\fHy\fIa\fH[\fHS\fHH\fHy\fIe\fHF\fIl\fH\\\fHR\fHk\fHs\fHY\fHS\fHp\fIa\fHr\fHR\fHF\fHD\fHy\fHR\fH\\\fIa\fH\\\fHY\fHR\fHd\fHT\fHy\fIa\fH\\\fHS\fHC\fHH\fHR',"\u06f7%\u018c'T%\x85'W%\xd7%O%g%\xa6&\u0193%\u01e5&>&*&'&^&\x88\u0178\u0c3e&\u01ad&\u0192&)&^&%&'&\x82&P&1&\xb1&3&]&m&u&E&t&C&\xcf&V&V&/&>&6&\u0f76\u177co&p&@&E&M&P&x&@&F&e&\xcc&7&:&(&D&0&C&)&.&F&-&1&(&L&F&1\u025e*\u03ea\u21f3&\u1372&K&;&)&E&H&P&0&?&9&V&\x81&-&v&a&,&E&)&?&=&'&'&B&\u0d2e&\u0503&\u0316*&*8&%&%&&&%,)&\x9a&>&\x86&7&]&F&2&>&J&6&n&2&%&?&\x8e&2&6&J&g&-&0&,&*&J&*&O&)&6&(&<&B&N&.&P&@&2&.&W&M&%\u053c\x84(,(<&,&\u03da&\u18c7&-&,(%&(&%&(\u013b0&X&D&\x81&j&'&J&(&.&B&3&Z&R&h&3&E&E&<\xc6-\u0360\u1ef3&%8?&@&,&Z&@&0&J&,&^&x&_&6&C&6&C\u072c\u2a25&f&-&-&-&-&,&J&2&8&z&8&C&Y&8&-&d&\u1e78\xcc-&7&1&F&7&t&W&7&I&.&.&^&=\u0f9c\u19d3&8(>&/&/&\u077b')'\u1065')'%@/&0&%\u043e\u09c0*&*@&C\u053d\u05d4\u0274\u05eb4\u0dd7\u071a\u04d16\u0d84&/\u0178\u0303Z&*%\u0246\u03ff&\u0134&1\xa8\u04b4\u0174",w,"AAAAKKLLKKKKKJJIHHIHHGGFF"),function(f,w){if(w.length>31)throw"sizeBits length must be at most 31";for(let f=0;f<4;++f)if(0!=w[f])throw"first 4 must be 0";let b=N,j=$;j.set(w.subarray(0,0+w.length),0);let l=0,m=f.length;for(let f=0;f<w.length;++f){b[f]=l;let w=j[f];if(0!=w){if(w>=31)throw"newSizeBits values must be less than 31";if(l+=f<<w,l<=0||l>m)throw"newSizeBits is inconsistent: overflow"}}for(let f=w.length;f<32;++f)b[f]=l;if(l!=m)throw"newSizeBits is inconsistent: underflow";L=f}(f,w)}function ff(f,w){return f<=w?f:w}function wf(f,w,b,j){if(null==f)return-1;let l=ff(f.offset+j,f.data.length),m=l-f.offset;return w.set(f.data.subarray(f.offset,l),b),f.offset+=m,m}return function(w,b){let j=new Z;if(t(j,new f(w)),b){let f=b.customDictionary;f&&function(f,w){if(1!=f.j)throw"State MUST be freshly initialized";if(0==f.Vf&&(f.Tf=new Array(16),f.df=new Int32Array(16),f.tf=-1),15==f.Vf)throw"Too many dictionary chunks";f.Tf[f.Vf]=w,f.Vf++,f.vf+=w.length,f.df[f.Vf]=f.vf}(j,f)}let l=0,m=[];for(;;){let f=new Int8Array(16384);if(m.push(f),j.nf=f,j.gf=0,j.lf=16384,j.mf=0,D(j),l+=j.mf,j.mf<16384)break}!function(f){if(0==f.j)throw"State MUST be initialized";11!=f.j&&(f.j=11,null!=f.input&&(f.input,f.input=null))}(j);let p=new Int8Array(l),q=0;for(let f=0;f<m.length;++f){let w=m[f],b=ff(l,q+16384)-q;b<16384?p.set(w.subarray(0,b),q):p.set(w,q),q+=b}return p}})();
-
- - - -
- -
- - - - -
- - -
- - -
-
- - - - -
- - - -
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/favicon.ico b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/favicon.ico deleted file mode 100644 index 63e859b476eff5055e0e557aaa151ca8223fbeef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5430 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 diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/analytics/left.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/analytics/left.png deleted file mode 100644 index ee5e3b2b46e3d738de9f13e3f3ef1b55d2fb0551..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3335 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 diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/analytics/right.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/analytics/right.png deleted file mode 100644 index 30bb2ccbf06ae9da5eb0204cdc04795e68426be4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1814 zcmcgsX*3(?8V+TeDn?={L7Joqf*DomAQc^vPNJHq&{!t5-BN^Fs#Qa;qFP%Ujiq9n zRz++@+=&v@QU829{`Y%J%7&mjIBLE;DYDchfzA-L-6W}ubqo({+9u9L$lqy2hqP_UzeSzZV zCMG+3u^bFgb*A@Lmh0f`MjNwmV!D}qNdK1TtlVQFfn(TyUr*wrG+i=uv_TW!S5o!` zitjBk3Z&Wk3o(ll5bcL3HO1Q*WRDUKEG@`A;y51Y+f57^24S@X3!w+SGvN0LkZBei zx*1{1Ose*VA3VL|Z1H{$ZM}ZQ zA3rh{P*yWz2vb}tyN|TyT{xrVmw71}i9R7*@Bi{*EKRLtVY2r`hn~!B^f2DDO$Jwk zITuV&*t-mRZ%JrZLsi^KhJ)B|hFBqllui$S+8t76dr;c(tb%_UcWTsVp_{f!e?bvl z!VR_+3Ya{tl!44iH$fB~+ESmO7SvMeOU|{23C=HxF;+ieB4H+B46Ay+yMuL|xKtGJYeKV4e9(vqN4+T{x#i=(H=^%8^ooiD zqls{kP1(QE^;Rzel`|l_xuYMj9Z#MeiP!7?0Lq@7oXNMSis*R>?O2YDv?Z4!(_4#j zdcJ!`XPYHyXcr>4OA9=d%pDyxc8pLhq$jP?-4bH{Y&?1VTEV|69)5SgD4IaEq`YO_ z%@4PC`^|sql*~~TCX_#(Zc1I740xh)O`#^jhnDxr{lUVz7p-X|yMO8`9&wNx5SuVG zQp|rV%2eK3JWziS84P9|Qm$7{ZHUL1TJ~?%-DFvW9r=EQc|nla^p6y%Qn@8K8UJH+ zaka-4gCHSgxoNM2l@y3>J)gC@J04M{175Q6$KV!Mz15Y;>VxK1CRaEUvU4ParMAQ> zOn5En4CMmCsm%~O1h2-!>|>O~f$^w$a*YuL?4U}G9+;o^`|Pf#N1>w%>GVHE{pC1r zkSb90RN7Ys-heZw#3KwY{J5mswD z9>FvQd#*On%>6C|IJo-44d|CH5FWb@era$|O?Go;$#R#1#8zA{vBf&GW zLif7Rj&J(~`&pfH&hGZFjvdX>TdOwouluDM38p=d?BY}8AaD41OvHl=x6UE<&*6OJVla?eKVoSbgZ*dQbk|H^0lYB20Ka RBC~2{W-XMsT{@ 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%0AYy$#`)U0;efxA2;D44 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 P3TQGCisBWb27dn!FRLv( diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/10.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/10.png deleted file mode 100644 index cbe272a3806b6860a112adc2ab55674165e4d890..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49272 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%0A<(pM+>ajW{h1p|XW z(jC?gYM}*K^|3ehreyD z!-@p!HZ0)9LTgC?Vw4!UO{&2(3PA3!$1DV?^2XZARfJ5DOe|6i)FvvCz-wM)kM)qn zw6y#>R(<%FQ!P*4_)R=c6#4SGy8yhQK#!9wZ%KDi6EGH3dfc&h;gd-}c+V?8uTpb>EdBmdQ9YVrYHyO9<7#c4G)lR+9&4k{ zwg1`t`-G^*Tu4MQ@p(;YsX`}*xS;Hw6u3lQK67@wn2d}-u%x{L!Q=^S&Jn19~SS0K3>5vcJW^0NH}u=AZwVk%zbzV$KG zo_=y`W?kBePk$lb8{W+P)~7B*3( z2L?bU7Jgq48Uq>~lGn*xw^B2Nit09|@Ifdda-I~Qf*;HgwfaE%jywp5$@O01PNtM> z5S&^LLkZtCr0PT~yh-ev(Ad7dwJ~*tWw2~K|BP{Sg_)yP5)QTnXC;hurTt77iPOKPm=>}3wa%0*_PVwl*DID7 z!L8K)BB!ZhN<|c?-HAWNro`WfIvi>#2(B?-;xSt^$m%!5s6PnFfH_VJLgu>Tf#m8- zMBZWi9Z|BN*qpu7ehE`u6$a9}y+yL1zXWGPH!sN*Zv&gCZ$ttMoTv+tKtWnXzOkgd zE)(|ZLOMUHoo+`~JxnVkCi37^>!xKeA3m?r9m)yQvwdk>j2ek=1sMmo;j#hdnNXQq z3Eoy0X%6#>9q>#i ztqc;(b&B}xyim9rNm2P_$Dq83Wnl~lVR?;b_!Dfa1TjX0#BP}`{rOE$q+G09{5v8) z(2n#0>6;;?F`twE%MrB~v6?Do5;og$bc#Vr=fhG3yHxKhag{1+gHh+-It-fL4f#s1 zHN-84TRZDc(y#j4e-+BOy1gprENa3~ z>7ctBy1(Rs>oC9Wg&_&EHYJ-}fDK6Eg!V;}4Kexu*7I?6Vq%|(c$5$my74tGu?Y7c zF?I$&qHsRt_te*>b2KMT<7z~NB^*_dxYBo5Sp*YH7DX@K1i8KcZvFJEo%!Ssu3@@j zR=t#2Y`k3e=kR|O*o@fN*eLj|`~$8^jqQjK_#N z6KLq!h!jGvV%Qpu+NB_%KQ)=su>yTkc{r7g!tr7~A7ex4o#P+wtc3&$=j+ip;5a(` z53LwtudTALNQ)iXmq^_P2naB|V6l&83~B+HnP6ryf9Y4Ig3L8E&>8muYpY6b;Y~il zLTI$EUr+%?yIfo$ zKu(Zbc?Tf52F>4ne}50v?K~3K3*8OumTq&K1ks2ECMM5)%6=njcE*jhQe;@sLg4*N9}h zk?W%8`0ih)tF(5tOxU(Ayw95ciGNV;XI$u{B}R7{+B|k2WV+gMvv@_ zt0|Uv7%HJy#BIUG0d^`*rOT!(NuG_LaLhYoTQ2Vbr8R3tSpyVX6g;YHH(Wzgz~%6s zMb!y~KxTY!Q4A+INo*8M3(PW4X!E+8b__Q!l{`2m;BhWO-_3y7a};R%RsOmADMl>- zjnUO9r$t7=!p!iuiHQhYN3rYCZmvu$GA5A$EB|i9$INi@MZ7R$5gtbW;8ptc6gnTK zUa<&W^q8PV2d^gafY{HqnCPz*E@42#4~^ZvFW&6Sb`%A+hF_-ZlzZ^%VU$wZxtd?- zsUha}I)X7n>N4)cHBn@`Ea6VvDKwSdee$@^epUSVSsUN7Y}y$yf_!-*)bn4=0z=5+ z3q{G$gYySZp;D{1)m!&R^e7tSDsDOig{b;WDD)ov%>bhahh4V(0CGdf&!M+04t(Yr zy$34it0PEJb~;F(8h(jDR$3)3g+*LIEL(7K(MZ)_bR8wi=qyu6O+h1oQrIidt_~N0 z5A{`6Vk4LL==mdR*ux65i3`)SHv1VzGv;(LQH$hZ~c94RKFL!)UV@*UCQ zIrZX74eoh*)_#omPAMCT=v+wD%}R%dXwXZv^XLl%h7a>4G-i1vc5BWJ+Rx* z{vV77KS)I$>)8BQRcfW@m7Azm=HN`xMKNN_penFs?_aMyu=O0Q|LZp1w?GWWs5`iH zuwc(~|3;rWH6ye{wuA5jhh_m`t3it*j8e65C~t^?oR^ve@!J`Ob97(03PK)#B4V=ruc%(ZXg!A(AlS=~nee131EQsNhqZ}#!&Ap?> z*HY93Js%SmabqUXXSPcxkU3dAk-cT5^+vo0*?*n)c?3>OPl%>MOBuLQ-HJmB(+~eEhtjwJ5`>N)DUhze>2zCvYY7p-`KGj8~xYN82!{US&E{ z6rMeIY>iTC^j$Za%W0qd-K@CvS$$(b&2F*@#4c|iIpNa7>|1_`I+l}7oRW{QRpDJD zbW29mO{SmuQHOCP%2zm$#F;NM3Z{p;9(tj30F_i~eDR~TRb0V6%V%>n@JZt7QRN%H z*V!t9P5!I7&#S>E^ztt=b|aKiK(*OolWeo1Hm+hOcPe=x5IA$yWjHEUn4$5hjaH;n zYzEpug-bTFQY_Xw#KvxXigxV(V4|wnzFk&uWbH*!iTt^+H++`C&>|;}=@GJck6y$G zU~6a<$|DG6tZ!}K$`bHvxCsW&LGrtzIVrSJ%rAV@Fo;fFxXf$hcYN9^sU_;&Y>+GE&iueNIW+S^Kg=Af_$89sdiB6%2A6 zk5%6s1Gk6{(gv@#WEPr7KW$IjsIb&CierJWn3*eFHYxled*SEKm9>lo5&H$(Fdm0T zv~ypWEsDqjPxmhA-BcKnqFFN4&G>Vi;WE zK`y(V-l4la7|LUKz{&$1DGjOCA?Ja;->5d!6Y>ikiqm}hbFjdsrSIH{VBbxL6Vq$>Ld80kt^>qOjVN*=vUAJ%;Fm{!< z@zc%51_v=7QKGIl{}F9T9LRIk39<&5+IRvTycg}qL!S$OJ{p%aQq`Xoxp8RtuxP|3 zhoSVW>6yT<5tNeZF({Bx;$(QS2s0$Hc|zumNC}g3QYUXSl<+>&`g}q@mR8` zHH_sADYUJI&ba(N%xlk5sP=v`4ypf8_)%}E$DP3cDU>ASW83WMIN_W4D9@(%gxgxR z!JqNMNi#xO>MT?9OUol2Q}u!oL!(u3v=~=Ma}4`gw7lOqyL;FgiruvEy2ZRtd_4}E1* z&B@Y-=&jXN0XSqLepv;#TXP~Y4Bqmf1GKrNxljOUN=mM%<#xFL)gIkXEXtrUSblke z?GN2z#^VC~C-SItxh?~GE%CK);!3(uT+ybHD8s=8*JUh>{2ipyG!HqQ$TPO@(MfI# ziwhy*A8{*3q3#D0bj5d#GkuRLXSuNHhHq|uyP)&G6J+UoY>lV$eE)`VAlL>vZuLei zs#c?W-X?aXaz0MSv`Vk?Qfy|Z==ijr^R})D)e6ADnaG^E%eXB|n9|2RBvPfgvK0_? zA*?e|Yo0N9HTkew*(_0$UhfqD8ZsX~d(Ka26p~Q;qPwP#*``Eu3bx+ZEj0$vDCTl& z`7QferD%plsMUE8At1V-ZY{8x-V;do6vF<&q$>E@b!}U|5OOGPM8XSKHuG0;mQjX! zlJb(V*lhHC_u8em*;bD4evx9O9Q{OJU3ECFn^*qg<~iq>{QPvN?Cc92@2M@tl)ivZ zFE?DJOtd!C3%`fAH_B9=P#Du* zW5?7Z5)x8=EdkuV)kvwZAk|>Op{KjD!xQa1evysd_tSkfF6w>TVqQ+p5-^3(Xo)yEE$~1B zPO7;9$6d%RsHCrsBL43sWSx5I6vVVYBkL11(5XUEBBGP@I*Wg$p`EVL<`_B>Voz6_j_)- z3;qEDnUAu$LxXx-Ye)a{SNagOsf7C}WFYdEgwnGQ>PFc1&ev-`@W8svVmF@?Kmr9` z*BhRS*ejLmn8==yw4n*!#1Ptp7z#3Tk@5V(niKK;z3x%5vHZrINFf zVWu$gZC|A!S@Z^}$KyJ#LTFTkMSyO6H}@19L_UUR{S#=FB@7VtmJW-WbZAOpy%f`h za4LNz}73hj61vnev8vyVzk>}hdK_K>5}J5{8bRd!p&dpD(v zn~N7;I6>Lo2WjT?$m6+JZWF(Ao6YBDfeZgfBkzwLA{C)~&S$KW3JEZ6S3WNNzS?CN zH%&3LsA3Eok6lebK%-&*?)DV@-}7N3d0#Tr*Rmt>KRiPBl5cm=RH(NN5gYzF4}Hm_CIV zI6cB;3_I$_*0N7GRuK9lvah$*PzP5-)r zKKt)uwHol2$;v6vMs5hzt&eaoYhp^ZeN7yd@u?nSEt-b(kR@TNSu?lxl?Bwg@mpc% zGZN_lzr@J|^vM*};jCMaJ*P5KPX{>qw5VAs@N$*S`1Vnz??)W8X$U7T7%)AR)y=O% zbIJma2q%6ZSU_aNxsnq|%T4eEHO%}2RNq(WJ>aVMJp`V2ISW1SS&?)f=4~4Hc%Evz zoroLsw@34OT6b87?Ba8{FI$O+z%grBojTV$kQ2-w_%0N9{5g!sEa9G(hbm*=5$`on zSQ}7Ocuuw(uM-noVPMwX@awt0ysz-cn4$qdTxP*Z$`^B@E_B+NmQ1be6tLjyGj__| zV{qyYj6w2dh)!6umnlRT45!Op2o$|qK*dx-93|$Qha2QMn{a4amA+i z$ZTTARwzHm|9Ge^XO_qod0@*~D-3&QMyz;DUq4hs`Hi z1ExGiqQaYw@|2gwS{W%d(U2-?I(NvC>&o1f(t3r}bPJ;h#1=SmNlU}Ya65}mj(-Q~ zFA(%Fm#yx#XBiiir5ejQGL%w7=2x{G;Bko@?sG$sGndaSBaS;YUehrD zSY0t6;8~mq0jx1-Ky{;ht(yUe&n_3eow2>_t!=hptKzfUmmzQmARNdxf zHVn_MUu;4c`YXjItXjQaWdoi0U9XeheQJ4XR!Ms&Te41$GYf=6 zzyIt2ZR8>p`BMp1w$2NCqbc`%~sPKZG<0|EHFSOhx!Pq=yJ`r$1$Uv z{p(VWh{t7O8Feopsbm%e490s9hTHF$=06zYmP#I#v21Gv6zmXfig8+_=<0K%j5rde zZk3LS57UE>+H`Px(8Kr~n&6>8r@?-Q2JQv3o-nadj$!hjZbto%7M3zwJGg+~?xUpC zxlUT7Ak)qyvm%2v*=P?=GE5~?C`UJbe$BfaDv`~TBU&ZQb4OuE0s%qR3MofHs*JH@ zi{~6gc6s_jY8eI?k5C#+#@0~@g1w_DjjqPy9v?QY!UWu{g?wI>l9wePes^(BkiCiK zd=6X20IgGVBFmO@YMJHS(L^SPg5Tp=c;kew%llP;M)`eZsyGK>UB&Nz!kxW7mR^YE zF)in>3i}}nf8MiIzTJpyZ+^UQ8h?E~|Iur6-b`S9sPO#!9{GZm5eJ>62w`SIqd=&E zTM%zdIG3brZ^kF0Q}l2#gf_up>WGPe)l<2kp{tq53N{5*$_|brxdLnpx>FKINO2q? zOGdz#Pef&9s~V*8oB$KP>0ApL_K|-o3qT^M(vVPcSHksBb2|{Ae$hHSe(4MW;+qT+ zS!9mPh%o=!1qt1tEQipYoA%htr!={ z3T~<*vdK4?#g?`||A9o~o<$FYiYd+c=;5U%1LUm2L(QIca#&B$DrZcezQ5u0A_|hX z&%c(kIEM4NALwtj_W2QNpzh@&5Qe{5Iyjusu<-BRK`Er?-Cg9byTWXgFg%PMyo8}($8S7EcC{a+g#e6;3@zVRZdth(oXeADnJX7WccUWpCq-rvc;;ga5K?VORufRs4`-Qgi&4;l++z>iHd++B|9}W%KzZ<-PX9j zB_-+KAnJh4l|TO48ALF%wUxX}u7)&$@zViaNS%J^f?t&>a=(i0-5TFl=_qZ0IHco? z^(Ohp=jTLO+>ZKorltj4DWeZo936TV#TEgXhSp8`+-)exD4^zECp8}Pl+IuC{R+HT zEEio)O}e$6XSiiTdPEwHkkah?YOdmgOL(2;aLmm+=%($aL4s7IhK^D>4X5)|36|wn z8{A(a9XM2i#?Xk}e(JEekXgQYe4i*$1e-GFP6A@Q#MH36=qnpvG;O;waOSWLxSpz_} z_6XZ*phN&ptk~7dD7PZwU)cm%s&E^@qGsC)3&AYD5Mqs)ci7g5^03`Gg|wXZgI_S0 z_4fHKPU{>EeveKk>qElm8fA*V&JCtp`(6(@Fn!K+c>XTB9{cS?)BKLXV%VB4lwjp& zFLU}n^F1a^17tm*)GyH=-TQL7NIgHfpiYaqvT#~%Gt|VCFJota0gTU}g=gU)k~yE2=h)@g|M)Y}S5-?WOnk8>$7(}6 z#AH6dNNpBqWuFB#jiu#O@~9_Dpc&8Sr|2hDqT!erRjN79Pl!oN2z-eC$ev2Cfbm3X z3P(glCL)I~tNj`JM&&P}j2U!bVxP?6mAZT5oS6YHbuU)gNFtvnFG0l3wF3vELru$L z&4Q9+SfN(F9dZ4&F2q8JRpiRExYz>TQs#^5P=L9)o2d(G0uIVnX5Pic>B{OVH>k}M ztE89jcy^{jHuv&ZD2#-)kgc#YsAMQ&pbt?@;BWe%w{8mM-|&N>&E=Ol;u`^kr!^?Z znK@aU&v$+*;0k#TxFOhyAWUZEG?nIgkJhY@T-BPrNBw0 zM{`4|>fsXOk=M0qIpTEL48+wpIHci$I1w|D_>H@43LV+dEBe3Hq}OJoGx=ZcDj8s< z7F>T=``10>qu0ji&xZw*#=iwD5aK8=fy@TN{I4@li2c*Z@3%2~#S z2(8bkVt=J{H4P8L1u2TC5?P#qT_s79E%tm%JGMm+{5t4dFRtlSI9ywkJ&RLO0~?xl z0Qv8cKWxTr>bWkwS5zA0kZw>wreo!*ym6~0)d`%!pT+WJ!mxL?6@M1&v+@^Gy+_t> zEVo~^=J-PIJGgv9vXgFltzZBUrU0BviSQWnmP{mp9;gWEYsl-_QAzc#EwxrNC^suE zGeo5Rw)0h5`9GM=iMV*kw&mhITb22bIzpH33~4OiOi$+RESkV+j4|f3OLw8G65lsRKpeAE)?V9dx^&Br&JE=sPbod0r{+ zkBEo}><9=6ZMDX4vG=l){*G8SV_^AsULcsGJp~rHNvP0?*%TLfur1?1F`+41P-;n`sDGnvlv&(Ma9#H z3VCEPWP?$gWu;;$N1zA1O;qoC=BokjKJSwBElx`*u z4>AF-&y9#@0_`Lq)V*TwuHSTYosBpOol4^8daE}~956naGEM-gSw~iE(aOdg_=*A5 z`6=}E=6m_(;|B_M!?EqTt_Qk@_~jlyhd)SQxpGZYCU`{6f-Q89%b9?r_%)|C2=5o< zXKh+15aLi9%EuLpt6bA^ZEbcoPOgs|Y9cpNv5YHwl;Ux%%y==*w3hgML?aGz!pIr)m~mFSr4O+LTcCb#YOx4YP=TzQv)8h?GeVSLaT`BXCr&SD<*T zFThh zsbvqhcuAAL6xdr+v?-R{(AwewS;n)b9%;0j0mG89VOw+7XHTKfw;w1QAezjQPu$d^ zTTLbJvb7}!6$hou`iAFi)om-s%g$bv zHmx^%XpT->oc8=rpPQcZiGHUSRe6a1>`$geyQgZsm^yV>R<&7f*=)hVk?Efgal8!h zOIh$@s{&#*@s(>bcTvxz-q9PUTxw<0F90SAPYkhAsaskUR;eJq-tt4cw5Ur+we)z! z*vs1$Fwu)LA*IX01*61xs2Q9O1a*n{3|*!B6$D>TO7;8dZA&ls;tFZ3(oEXfZ_VXa zw7wS~RLykp5<6>y`GY-NtQObJ!5)dnv^xPVIfT`dkUqZH2leuQo&8Rd@3Rx_M-p(R zw&zp$^JlJL@$tgR({u=i*y1Ar4Y8wwH$u198(t`tS4&IF*{$iVfh31AonVi2U*|4}%o2zdTwYT706D@k1fGTz7Hq}=PbyPp z4#dnxG7yEBGzkzP*+iG+keem_R3fxy`v2vsGuiF;?uL3sC3 zp&bi(xb*&|GHBwc;en7lnAZ0cWG6QK%cJO-7^;2K&}~*Ofzi0d$KySs)r09v{XvFs z8#PoXZFWj-G>A`WA4ydBaPnq4S*3@pqp4}2ww0vwc|ik^kXpiB1_2Nj?tl~pZZS|h zMM-0_pv+xs`cFUt#J(ITF+8{6-h8usHX+W;LzEK!Y*=R`H9e|Mwx~&)W)2XDmT%qB zWLUseLp^G(0g{y$-NAc0MbTZwOQb-UGTx@Ghctp}hfG9CubM_fU!L~kz79azbxfSr>mQ@v+Cj-cnk0x zHWQSAy7u+p`XRE9QM!=hpaz-Ne&h-R^hKe9var6X|+rnNB&f6!hX}F z#qx{?S-mKJuuzKJ*Cu(C;x$0L@3dni7-pP33G$XX+R5E^M_n;+UgEZsz72VB&43*3 zap&5Di#RrQp;rMwr7B0A5`J)S5PIw}&d)U?SQYfZcJKZJLf;c#FP~xeU?LB}{cs|3 z1McU5koTikrR?`@@leEE|! zO%`|~R?V`Nnh1mDR3^-6T9yXtq9SEmOyxn|6RzDwFj|hSWnD z3!FXeB12TUNeM(~5z!xsZeZDK?o3wZ>~``&rG;LX@lq|xYKRKMW#QAN$v0{$*qhth zk{Z*e?!d3Dx3vLrXHieQVJMuT9s)BR$cZisWr!Jpz&OoDv=j(q6Y%)q?!D*SbJkn`x7L5Xtd-=KJ$v@-HhcE$nY`9izeh#ROb!45s8sGN zJq7^q3~|p#q{O(-wIPwGxGyq?`_G&K01DcRHy$7z#oh4B+T$gkuanBcE5iZV46r_y|m%_z>oVse7 zoQeo1b54k`xDXs92H}LlghAq9F&IpcQxpi25CKYvfWSf^aY-?tq^Kz8pD!-lXijDp zl8=?{{y7%zmkgH`66qi*BI4@mD(ngtMmSlDfM76~2vAf+R8$CuA>{04k2FCE**o9- z8wDkEXSkEK1JW8{&v`-7#1!!oDZ_>1^bZm29MshQB5d#cr=oBw6G53ch=7EFB6fBc za$RCOBb8lno&RLxpJF>}yE&MPJT`YmymW$_E4!H6BX9n_`(yLJOYt9c$D#k#*$n>I zzz#2+Y%irZgNvBkn%m*VaK^C;`ioBoD+ChZY=v<6tIK~G?62la`ToWo&bI#?{cno+ z8zR!$;$KK{(ehttnxm}$1?ol1U#K`6NGc)VFE1ofQTm%#nIYiTW|Ds~D+w2eN|>2R zK!wb~W)LAWGcgGvQ&X^+5Evv51VJQ3O~pmw7d&22Q?YkOn%Kk5FR0-l!qzxSa1)3G zMAXb&NDOQS6cQ5yiV2yR!azb|AaipwF`$`*nW)L%`fE5@<0giQ?LTs*3;{#H3U@$2 zMJ2_%5XC!UFfkAWsHg~)P?8W67rVp7X$F_HKsec%;C#f|&cxDO#KGQ@i}UXiC?aeT zPHG4n7Hij(_K6r3$^e(@&|^e0fu#LmIi+*#AyNz)o-j^hxg(93~z zFXo=@%Rfj!MS-}N2!s`7w{}J%oZSA5 zfLi8`e?Hk-b6&@Cf4ONZj<9zzcS8PMDhCrM6P$D4)Goti;e@c`{9{_Za4@&zL?Sp% z92{(|;g_Bv;$m<1XYl@OzWwWg%*>sv|3P{GILu!>aQ>eh@ZZ|X%*;Xz0u~n+G7$&D zaUltACM01BwGa|Bu>e6~a3CBG#CiDtMYj6462V|#s2M~QCL|6Kmk`25TL>;(OPC9R z%*5a(=HgHo2==eM?|(+G|2w?z-}u{wOa49X|4T3b&zDOkYzmbS z7ZNqc`L+be0_WS}CZeL^<`AHm_@!@OP(%E`NhL0v=dU>SS8k+$%V;hZ2j@Qn=p7Tw zze1@j45+9KRT5KD7KZ?pp<;I>l$GuRfr?^a5EQ5YQ5KcHRHd!;KlFeqNC2VAATUrA zqyUl-Q-Iz9ONfdqODHLbD~XB1{$~#bvAcJncfofg#DRCk#l%E`VlZVzFc3!ob{C=q zQvRPk{@5V=_f!rdCJu&xAfiGNxJ`i&%v{Vu$P|Rj%y6VY7CBFQj&66G>8b-4f4aW*-HkEPWj#|Koap1JCyI!0~^G;hI{{VA~H zsl-*^u|(W6>z1VRN^c^8;RV=v<-Y*IBz6A)Oo7e6#9{ugz+SwfOZtCcT3$h=;%NS_ zK<{QxT*n4oTna(emL^ zQE}F=O!P23!0+KrzSZ?)eM&m%y|qAGXPzDzf0|uRjw-Fpm>1Rb(#{^C+o%8}*%6oP zDAUryM`xa)1y~fOv%qh1roHY9R=b7B> zy-rqV%8H7rM-TN$AW-PeX(y^zO>LOt%z>p~uDF@iMz-(Q8nE+zqQ|e{!9mWA+4?Yb z*z)zs1}~BsFO1B}F`w1ubWOQ&GrlwXObo<1<3)c_MMV%XNr;t|19amTI=3}aBE_^s zVnfUa0V-OPwz9L!))r9y@ZrN=w}$t-H&UAtlDoZN>-JE(m_7^ZNST8SyQ#{=-*z8t z;c>k@gI=z4Y8KLu5k?$rUhBJ9-PYFD6>Q1mwCL&=>;fcRE2Aqu#cba5FM1 zIETI`Vd=-N+u8IqtPD3P=e;%oi0SZ!T69h0{wdn$d_dfG+~I+T$1yF(*;Y0~s(a5Z zsK?4nJlz_G1gmPglMcM@dOeO}~A|@QMg#eeTSwF^;si$*fN6oX_Ki z^?~$r1Wc;FEur?_nlr?P#;3oOnuSV>n#@A`#{7P_27&>0yjo?4wFHJFbyrYqTW6^N zL<=PiKm$p0YR6Y)+4S*_(a}!4$Wf0@!_iAvq%R+pd~tm}94mu%!#s?XS^2167SU%R zdS%;EUqK)>nt7iX$Ey?-QTEf}P%&4t#pWCfV z9fafcwT(+u2vn<`1*b@-d4uIv&fr=;Ykc=W^2bwBFShoXfgA3l8EWIksFHfy$~ zH2W`IS`ufC^N^-wZ1RkL%3L3GuKc{6q48ARneCac@HjbR7r@XtoAQgX!MrP~{&AE? zlz22T?P@C8ef6`^&bu=2K$UYjyrL^YRPe6Ayl+@+;9usQ!$XK3R*^yGzqo9!Yn=RU zG<0})UU>FlIFHh!di4HV`qvOtH7TFAfVp=ccr{UsHmBP_UpO92`*Gup<7A7ZQ_uid z1e6q4(SUk8q%S(od1^%QvGS&Gr!YzL^5$Il@`dR!=T}ha8%NknA1uYeAK8<9rKr7T#2zr!A1g5O^=V zjj50+;2E9{iA%Pgc=UU}RvInZXlaFO-Gs~JZjy&tTC&GOk)G>bfc0Nmnk){d2^sxM ze>$!66;$n)FCT9ugPM+ea$Jyn0hXSKtW~HQpp(%uJvU^DaH_ zF9quOx;6n28m@ehqz%vgXRjdh*S(LYeq&IlhegM5EoV5mPCrGz*%!gZ1ool+==wAr zR>i%%6TLG1Rl3-*p|7tmrrQkVwBQPOuKL#WhQ^kIqs&V7x8qq%!%Yq8?KTo1lOquT z;cKI>|5s3vb@hXq@Y2fesxtHb+}kVn>4%9lnzXk@rUa@02IvT`(h}1G=^qaIABLeG zM{0zNb}|Gof1yNCFV<>lMYF!MvazA#Bu16-rHUFlrMY`p&bUvQr^_xEw_dqzvcbs0 zV!5RpoBWrEWGJ7*uSVZg_|orJ&3Q`^po16;y9kaEEK3`}^jn&|sg;8MmhS^4jH!=U z=CB?5vWMLop6312ZWfD-k(Dv=So`eWF^I>3bk3WI$VgG6D$_0U%-6gGo*8c zQ{E{^%=1Ugkgf8=987Jhd#*~&xotOxuqJqHHIqzbDjqlE!ZbVJ_c%(8a%F;eR-K@3 znd_Zy!2lyCV9>ttv@%VnVW*A`BnSEmUP8LNzoSL9nDOr@wR2x{5c-D8=&VpyF(d;1 z)pi!|jZN+58Y18=?>s+0cwGj&(i8OgNuE16-T)hUjva`v+v;U7X!N=#mmUB>q@azO z1iCk2^ftEctSIN$D&|`HcB|l~}Cc05zc-#2*)B zQJ!A1v$boq>DV^VJyypy7gohKmro}FK8oaJ*~@Ewu9LoM!g9(tqle3F2fXrZWshT) zhK-%z`O{^$bWq#qN=olUfp#UtLkt@8+q$+&WZ6rc>7j;p@9Wr}VeL=XZ#@;*f=K-l z@HEDkB8z;UMn?KciAjtcreW$V3-Dqpb*C*g$4lTLW=qlC-8yNmvz;1J8|CNHJ6#{} z1Mzy6Lr0lWD}Juc{%*(#^Z2MkVadI>1SqNVF+l+}wZ6Tw^wag~FcI%5wfg#ckmuZW z-V%-V34GtJw1(LUF=^4Rum`+wVynU?<3#oBzVFflB{PppR7+6d@LEz8&Px5ln3^99 zfbidKHZ#x5u*`i~b*J+I)Mphn)Kc#5?wctPo9}T`_O%gw6D>g$O#EqAP|h_f%uH-q zv5_(_#{*&%yxf*8b;>;U;AVu3C z5@KQ$kd6|ySvw#LZCL9=cz1U5rPn!q&u1r|i;4n)QOS(JG?n?&y<9o9du%Vo`jV#@ zuEdDCa96!6(M8tsZBrcw5}~Btvt$3 zC1ssVCFLa^7uSLJueVhi3{z+q8x%A_v{UdcqMxRsi)G_IaJ<%2Md|9A8aJz<_sZ1t zJ3$($hb>^l3}WuoKfgvUp-F?J?gLy=Ix5X|-SK(?S;_-wf>6j-XxJfs`(xScXkyR1 zI~+$R6|SCwa?iGszF2DMSE_bY@raDxm!Y~fY5DYb1j$~x!MB91rz|nIVrY1~#U5*Y z8Ny|6xHTWV5vPwv;had;MCarrl-kgvuOgm|=aZ@$vFg>&gxJl=im)6iUx(bFj4#LU z!)Eu;9A|^sb9;3t?{BKUg@x+u)dSpH-YdiDnTpg>;TC9xYe?-my?uC8BEh!Zg z4F{tlUY}jROUp)@S|>5YndaS5UfRZ0CRyfF5%h^O28nUdvC!_B5q@0#frG|d!Cx@h zj>}52iN;?3ClQ7S-EF}F6Q<;Bs#se#^%F?KWVTQ>cADAPzWA~-qNQ;%F!chbgnO|ywH}9^KH7% z1HXLVw9B}6O3ixpy&QY)dbh{d4)Rus67`u8z{prjLVV~)2NT!Ls*gu|j2+LNH;1L4 zpG31;+4pERXnF_B%nl6R2x09BAfcTX$=u_jtY6vQPt8qp+6h%^NiR5};BlsUvXmWn z`^lT-{#2>R`mZHJj=z5Yt_ZpYQcuWyg&%bFe!~q|a4|s(RsN`rH_1HFPp*Th;bFzE z@#ww2h%nF}{+_=q!D`Urh{%^p5H)=-x{%%WyZvUQv9z7~Gjkg*sNqhbBmD%@3JU^A!>-OYT9#{>3+(B$Gpi? zO5gTpMtXD}w?j6U_+k-TZDrQcEMbf|@DaL+=gs+zi#PGBXMRx z3aoRY%)>1TyTrkf@upu~uf}OP+HdTnsM(-Z8|Jnx<%1k$K-8ig!6x7x`MwfbVl(|- z*zuEe|Lcz|ZD=bX;+oSZ<&c~_Fx?>D?vXd_bLN`)=&Eskrfq-TKnkC?gG)`GBYCd` z@=z%26wW1#26k=js@C{p06_&xuMq^ z?A-@=(8u4X8_wqtie3Kg4&itxN3Spj3LE@bo0hLa!K;*mO0V$3Xzl>E-stP=CDH-O zt^l=WC9S&OWlMJ__sTG{vE2+bI+(N(N#pcD*Qc<1qk^_=ldWftI{OMU(wW1dp|49F zmv|4#uYTP`&pnY|3J1>~C+Re9hP}G!iY(u%uSYi=|Mso2wKox%YAY|Uu1SkY&$`WF z==$5z$9dJU85srdsa75&?;vbjAu^7E)LxT&lzn#>lk=UjLL9pD@<5!MF}>2=R?V7yK?8dHWR8H z5)V6WmjBZGR2tMPQ`sS^`^~~(6^qA39R4Z4aC7sX?9KwUk$cyT5Cf_x7GGw=bDUdt z0)D1=Y{Do#&yy`b6f6!%p{M5xP(RP2K{se}mHEwkQsfvZyu6%ye~kB~$?%r2bBqzb z6^`BY^d`O827i141l?knlO-rR^d+FqD$uXowE^tx{~p`*N`fMU3k)mXF^7lLxNIyD z8&rYl)O0ziq?yKKO48_s4134iJK0>h0(WDneXuvtdgTuG)}~JHHfvTRM<#fhj_cr& zxmO9qXS^t?>tIaSa+@!nJt5xC!w?@&hcXyb z5Q5$F=g6VP23K2KPqR5M40y_B;jHCzz9lbVF97T8%RsO}SA>EMH)Ks@F+3eQ)tL3H zG04(K)U0(u>(}11(7r|~=G^FeU09m<;~_n|xs#QheIY0-H#eCNzs_r|>M4*UPqQC| zQS0j)nHXwc4M_N0Ov8(vbdaML*0q%$kLY#xC8_g1rIp50=)N6Cp*nL%kTFcNw|B4d zz(rOrPz<+e&DBzu4Vt8+nf5s+Kz@HF;x-y)wAaEh=Qj47a%7jG|3gThne+m7br@09 z7-zWU&oHdiP>q@YX@6e0u=7%9y2?e}?bCg&AaXk1-0sddK|LpR4^}#%RoxBg zyXR(k3!*cvW=kKs0R>ia*ORAN78-4cuMTk2Nu0%3W+&a%bY{oY3uG^ zR6CBTiRwZd`0Y-s9*Uf9q3x>|;J3<_gL8FD%)ETHd=qIj`LDA_^5xYRq|SxlbrIpM z_^m|To0y!eT)-vAhh66J&s~&_jEod+J$W=;uu~#asDAA1#~|--chuH~BGuayJ48v} zRsEEoSS@#g^ZB!jpzJhI)FEn7d|Yz9FS)TR1s#(p#t#Nd#-R^J6R=X2U?#eIX7`QUYxuPbw5yf!DYgVWO|L!2Mitq=(PnESkv>^`1-e%)qHCEIOdnEie6 zIm}?_uwFd-_*)5V^@taB{)ZvINAJyO7iq*y-lTKJh$eUcWNJzk9@g$&mtDNII};rv z3YO4e&edoPfuQnzk<8zx*_j12Ubo-LgndXFn8xHFG5DxY*s5f#VC_e3QB%ezvObRR$iBR9WrSMr8yruKXw zZC%Id!4&!kSDUG4XqYdLu5>b}(0k~fX+~c+*57|{PPgSxRct-XdmzS;EadK06*7OT zX>18ifHFK=;z)Dp=0P7mwRd;2ch%siNODe3U}X?UfZ0!nf$Ih5$wju+Ba*wKS+2&}d>v@Wk)woD#RwX?()U~* zmn(E~vPDuHRyVaZc3Y zwAzOU-p!~+g=TF*I}?FD-6TSNcn><~HcR&0d%s~GaecnM>PH`zf2!K8 zVtw1~4#t%AmmM)B$o{hM_@)h&{(OGF*YLWdylsWouDqewteeiXGkQj(HRE1B&GvJV zkJ}I1Jz_UxiDjAyOy_TYfK#&eAc!0)s;Urf1GRIfmGKSh*^SmVcA}kJ2l$T)f-t8% zO<_VZg!Tus9*6_q#A}v!mwP*doktW3>%V!QEODfs9E8oepUxg{{O;__>REM?c8Kcg zVJvO~++FNxjjJmd736ySns~rakryjaYR{`-A!UMT6q9@j5qJkB%1FICOhpiWsdo(l()V#@TAf zyK^vQHC5Fjfu%cPv+|c97sE#Sm}hY zyZ_7;soV0`NJTBaULw6Z?a)evWqaxBdZye&u>$aAnEkP}^;S(UTXD<0NYd!XhU`y6 zkOfZ+=wp1!ng1~R_EL$ejXnzmQl)7FW+Wt9s?Y$^#KU4}R@G@qIp#9}gu1dK%p?Fq z?e*B(Jm8X$8d7sBs|0xL{1HA-SDr6!9&_{iFB8X)PqE(a>*r70L^B;s3-M;_BRa!8 zMrTI*^tW+q;kG|MgMn%B6GKK<7L6|jpQFD>eUT`XLMJR)_m^}IzaXeq{18ptn`?!s zR7gq_7=G(^CC~G9BQ3?({X&~+YZ$ujkLnCRy2rLp2|#@Jw0IjP^EPJa zsbzwyCOwO|@vD`@#9(e>tJd4NY@wr*-3xo)!jSNZEL8jb{(fH$Js=M@XYG9UN{2wc zGuk|E#2TC{#4X^D;5*_Y!7ASFFK4>-vG}az4OQpC9kh`j%N6J!{>Xgd`iEsVWsqYC;Zv%oWSC`abRuA%+~GUjCAZ`h{d#5$>NV<275L*l@DYaZtZUmmI_jUCox`n!1>-g;~N z8ypWCJ|q|vO!SzrsypZiCT^fkdUdHu7JgrK%}9-y)H)#$9} zw@B^!hjVIX;%>9M#Npcw#WTbUvrBejj;@Bp@K0NSd*gWbr7d`wC^J|b=ydU}m!9d= zEly)_<&>*(vfn9F-n_BcJt`xpyV(jSMv=G`Q&Vjm$estCAN9C4oX$Wo`!BT=;j|&N z4_2mW()*WpMr?^!)@LU?H@cOQ2BeI7w`(5WP-=>1dabMqv5$%&2fonQD$YMo?TcOG7+sZSl9X{ceN2q zd9>l$s91BRHZn1#SdvGs#w&pA`7FX+g-+LJSX9!V5=?>-7-Ef)47^u_oKC3G)+n3i4jp9Dei87_z0fJ zJJ+C=>oPlCp`f7&?taje&D)}9Tu5p55pvsoV3HOOEe|5mXW<5sMQzMq3 zkNFC5T@D40fQ95*9ko}Cp8n+8>&~a&*mS(pSNQr?O;sk%Hx+)byCJ{*o>d~+%@2Lm z9{))!G5P)WiI`eayB*5Gb?rnkF14yUd%NdxyL13Z%WO}W2fhM=uo;y>Dm-xFc!2HFQosAA#7Pd^k;!k#K~kq z)wI)in9<4msnUty>pF-hW|E}|Vd#ki>Bpn(+xLwOJI7n*@hVCXv%pev|-zyqpGs9WK0SO++)BKsa&=zh{*a@PhOW$UgR<3Hg~$F;qBsWsS}1b zY@d{rvQkjH%wAS?C6bQQ*MYq9h?Io0*O!aJ7no#vCmCvK7&&z}g?aVvd)3>ggqi|3 z2$U2-`OPfaK{+JA703f=rMfFy&4eAW4xUw?(1(i zH@yO`-C<*g{-iY3z^hB+`<7ss^3J=izjj&uD{+^8pK}J&^>P(wBN>kF?+M#0aO6hC zm{Y0a;f~kEI)8dhFdG#$WVw$;S^XX>LLW~I6k?SHqOcv!A#4Z9v~Q&Bk!DIt-RJxM zKBo(qhVyg7AVHsARlzw`C(^dIYqFhz&B}ewC-ETNQp{+R#ktmWEQ3#HpnL*8;P$L> ztduyb$GW4Af#-HRTK30V#Y!%P3gc#jqmkS*&-r#jFYH1{VrUOE?GwEiF%3wH z_fcM?{Y;DzGqxaevt0Dy0+Got|+$-~+)Uhm=COdRe0!s*>pxste0 zHj1?;=||K_cM>a~O}|@V<*l;Iz2}2v(-Y5)b>%XgKy4F$d?ShR-0`r`8Zv-S)P-y|h5c%IMBkzI=`kt0EY63@3nPM3v*Ud^n)0p5^Mr3 zh>l7Z^k^80w&GPx$lereL?IU*p&9rBJ!q@cq+!|t62*AT(=1&oh0l)(c`pda0H7|_I8VIP%;&YYEc)xa0bSqiq<;Q{Ux8xQ zx|^gna3`f`If5d;-}M6ebh__Myz~^51dcvySWC)Uj}e~QsMQLx<~gWKn5 zIK5%>(`WC)wdUqCaSPhwPHfNHsh{m^aa#7c}S>N2seOLE$8nvWG>F!G)-MN{@4qk9g2tsRK9P6CB`MF{? zX9ljh^@8=M2~W>lq3gRF2+xhk8Uxu>sNuDr+FN>%H)L-W=S13Mw|zmHLkD+TC`)K! zbQ5^uj0b2p+_|k8;0Q)zoxBIvr~}vnu0&I^1Bvm^-n@S8lRKRELPG;BGJCQDHJX{2 zcv->J2477(CRg`d7^lfpz#}4#`$aV8*vZDqjvAsE$Z`bVU`NgSoi?6D6nULBldwzR zQPv2AC6Z(zpG4H&jW%QcK!nX;R+}I-X0^JbDtkMKrds&poBh3BlO_d5BAFqq$EU~a z`T4|WvU{Ie)tiGk<|9aq1+SB*3{Jx%vpbIMLLM`r@spCX2x}&MAGS#*jM zQ=5QM{48c@NSV~L9LCvJDePFXJA@R`U)9$gLbob?^7 z<>k$d$bG)J3bc93@LSu!`!I4XBjAcDO;d&c3*3DyobSqPEoRC|{cyRJgq`*|>141! znu$PQ`pj;{2vDlmtfj=>6`XW>HpD2OO~=3k1W+)RjD-hACo1vF(iG_u$6LBJZ+Q}Y z+VlB)| z{EE1l@2e1I6B5HK8~K``*!qP%T!y%dsT2h@ZHWC88(p6Ly+Oz3UZ8)hZg{<+>REw4 zl-BfDLITB#h^Yq0w*Aj@|0CiO#^QTGzabdh49V~W{v@g1m?^fmExFN(%uU=H`m9%L zPBvt4f}uWQv+hjbXw&@sZo%5#kK0D4U!aDlW@Wk0F`w7lmpt(5c@Bt=f1sk0ekJ(@;J68lVoG@KZ9xV6F}`m9I1V#i-wh{)tV9wvOL z-Wa00De_j<`VEnU_e$n*(9sp6xAgN$zt&uC#E0%3I7| z6NCCajUL{E3O%n*Sj>}9W61fKV4EFpgta)rwlmPEQNBe00#5|koSIA!*rsE-z4O6B zvX=D>^dGl%Ft==-kUyWngo*cXCFj$#$+is?3yaF5nx+ zli%x^wOi46GY=VwKzIk$ovW|WZ^>)$JJp!hQ8q@yFEr;h0qqr59|?c@!2w9B>ZvwP zPyzt>IFB%Zd^1G5CHt8lB?YbbKxyzw9W!%MLTN`@5mkw?U-N!^1OwF`VKUxWic0P? zx+|UIHO?di#PXz+p(`s-34CYPmE%KsGC$)*)X9GlCb5X(U*?ayuT{gz2GYD{>p~jS zZDA##lclP4Q^sM;4wp*tH#^1C00mZzb|=T4@5DhH_ir1gaGLE7r=PX`c}`c5;ISfO zsM*r1WZQr(K#y0u?@t~e6@%;f2lJ6O26^Kg_L!=?G zB_JjXYYwm_r&oWrunw0 zg?<>Gpmj>X)UN!n>AF!c9vHHEVc_>k3u*U;-4R=94(9Zs9cm>CCa}|40T64c$%iPdkxO@>3m7z@da^I3ycw? z8CIEu=@U?ND(efb5@W&nRtzL@_5QofS*lLggjAd@2aXkO^pDk@PwrtREYnHCtLj=# z*8Ruo%)g3D?z~bA*I`q-7Uf?`8c|*$esQ1RIFhO^SzLA)DH?gZqTwi890W46+a6Uqi71;kl z7%R$0bN>O4+xz+E+ghB(FP{I}zV_@YyFQpl{@&HdG5Q;%C*M@BA_iV;^%Ks1{7Bue z(8Az!Jq3PhDsSRRKNe|9nL<*h5UBOT;1i`SifW!IQlA~DN4TJe&s_|(*6TfmWQ5tb z5oa}S1&IuH^QCspIil+^Lkx{r9`_$n_qf+h0IUWJjC?%iOhXRT{XtTkH|_1u`ie|V zMCHu+JBhx*0vU+-KbYjwU>L1DzIdRj{K=tn(Jl1TbD=Uh^?a?ks}C3shbBBZ*h&K2 zr+8r2Lucs6^*sfkUcyUL>0Q1wl)t*nzL`1qr#O`#m)c}dEv@iQadyvEOkW`ZCy_CY(84u{Wi}mc3%_nmarKKE6q}p^`->~% z595VvcZ|-K^WzuGj%20}x&YjIed%s1YnK~vI02%YvdMCAB3tQ;pZ8Wh!so29;UwD? z=`ygaB0zLi#oN~$^<+gu_1c?GCntXTjyu_+pL-ry7~f#zU+kxS;l( zI>op;^T5s$cRvf!qHnz^AR?IV#cPNhVOeQG6T!PCaFN5EM|EzfkdMNxX1*#Dj>ge0 zv6>0Fk8gqGokUBu-&PkNy5{Lxw1a&`%3Z^P$T!Lcy!T4u8^R5}4<1s@i%}G-GK>?P z_2J5Zr6Ltm5u^uG}-iOpf{FXJ^Nvsp;teBE0)dmUT^+ zmvL?9h2lRAaBe=eb{MOih&R~j?}XY;N2!_XjhBruesq5iU~q7OEup(}R($ep&r)yx{(JY_XZ)%d=r&7SvY_q#ZKrqjd^ zrU1FR=RdixD|@7(W3By)bq$J}()_ZA%iZi0u9CAC9mkl=`LDrcUw>+l%ZkIeaO&acZo zqot^m>c~9qmoJgSo6iX>@HacZw3V&)<|v8U%bWR5>P=N&+vRiepy9TVvhMIS?SNu=88^y z=1w;whx2&%f=VFe!d-2 z+9X${isU!wHW)9H5EXo%FqA!j!O3X>FGPR;!Dwh)JmdN{b0OXKK(H-Am5YepgLwC# zM_W(MirRu@gqu6?2kq<3Vy=I9GO!|)tficAnI4 zf2Nc@0LW8k!#GHg!r@TToT~z`K?j@1vYTKGB_HB@)f)XTW@Pa)9M-%KbabQ$fO>LX`=5=nFaBXM z|1zg{wM$qQLjNEUUI{@os2&>3qQ3DB3llJs&aKy?8_HkoKiGWX2PD=afVm_utwwYU zk3G#Kpq74B^zwyhXAc6W{)5`&vS0br?|B`D58N8|a@NN}WVocYd4&lk( zPJW9Z>(>muV7zXg9p%xFXL%2h^HyeThV;T1qOC+ClhLkn$;kHJ4c8Cf1f%Weck^-Q zS*PQ7JKb#hv&ZJoOoz6Wf7Uh4BAD2-@#brYt9K~hCLq7Y34It=mkCPq`SyBm{6pkW zi!z0E03P8hywfvGqovz@$iZgrBfEHu)KItGmC~xlm2C)X=Zx#zDI+(fRcXA8v{+jh zy)OsFTS3`u2NHmBik#1lmq_GJg&7O;8m^KBTDtQf>vXLiGka{=*JsB8JK1Wjx;WiE zJOiLgBrX#IYP`DP4ynV>Znf(*Zphyot_>NM{r>5gzNAr!1`n3gc@Mb^T~UHZOp`;6 z!yS4uZ&FRKHN%G`-fvkDp{_#NST`+2uFfEHsjLzbm43Uv(OR8AWO`{x1}rvTr?P#f zG3D(;L^ZQ5wG&a5x~*xqqW@hUV#}H*pa08bvHc0kSm0E(9wx+p-yz$eRGlRL>$?C^ z54)bbAA@H-A*wX=58vO4S_~D=v~r|)nQTkII8Q=WA6U@U3c|BmcGxCsQU5wgeE;(= z?agZx+D{V+Uk93BZ#zuLu*wEoH@GIWy-iAya>avWB{RO_ObJ*FB{-OicfCQX*qb!^ zP`}bPliG7D;DqT)cZO2pr+f}Sm3FVmMgG8_83j|7TbK`iywa8c+QmL9V(!P?NK_$e zmM7;U)4(WTEdQBvuj!zr@B3H?mqX#rn*sS5!83RbQy;J$&i$~}_ha=3b#n`|3Z!f? zZAvY!7k5t39H>VPhhusI^n>%8&t=l9*XN+v*TKQKOi;Oe*mrSjo}bO*WY>B)M-7Sg z!j$NUiHdX0aNoz44Xwi-1l>UB_G%2bVfi7IE{tf9CGmq$cB8T=<|{JE2W}h6BSSxi zjL)wyyYI12o(!Lhvu^|2PYGY^7H(6rh=Qw2=_q_b!UIGOU9LJe*Zq8}wz%XC$(q&O zs($4KwA1L?J>O2YyL!K-r}K)fc%feGRzNWkxhlo)_4WDEsp4@iqjEa)Z{KkzInSav z%cYrf$eEbW;oMone(a(u>^naOAOLc7tav#&JA!+73KR_G>Sa> z6RYXR>xXFz?n@=yAuK=6D9~<5q{PTvQ)8y9t^DrT++jb|$p5(7X3RbbY$^Pk?Zax) zWwah?x-CiW_yxD|YSb&?ODnv3r%$+^@r9ZByNHArMnjzM6ZLhL6ooTi3 zJ&bt`)x2fG3nFs4^Khcj*RJ%+yy9lzzWo02=!jOdnO+M$Q%pfZ1cQ4QK*zVbBPW}6 zBA#4?`=f++@{ci=2usr9JL7?hEW}nz`JhMSt&Cgi<@tI+&U>DVj<0Viq7^7K7N2sn zrze*3)W2eLwyorrC$S^me&AvCwNlN(e=|e%lb;2K39$Kd;VpF-MpgY=N{#bj?d)N{ zYpL!L?vEHh3u}Q)I*-2z3h2^g+_+&k^3YQzqd4zg1bQJ<=2epiB$a%7_BN|cQE`g_ z!EY*87ng}ZcuF%#rxt?UhgriDiz~;S;I=BW$4BO059+QqQJ|TE=y7LF;CQ9WU6?Cb z-4cAshbOr?m+yO_%sws0>Cd9Oop-@olcCGLbQJ=X>*ZCoA@o89UChP9?bhztsC%du zlPQtw`Mwak2gLG&GS#=Hn#ewCOTz&s;om9atQ#rjG>%z)xYbw&tfp;k#-5+kP9D^L z?tU11E1)=N8}(=;I~<@&xi@`>RRUMaTbh49!pxdP#Mzz=8I>q_ttZOFbG>@c(RQ+V@Ar1RJun4*+-2Xh@eqJ z3VqV5dF2suDFP}=io27X4%|XAYBulR&<0s_yb)wADOS=8<&hTNlphC>DX3d@C^3?j zSVxtIZ@Xsow)n16_ao91w-!@162}M(x4suX|2kJ|yx>2DF{nIgq+*;gmR@ITFam`= z@b_a#U;4dF)O?XUHxkTeHy$8+og03|H%cEJ%VCE)UDnrqWU*DRw%ciMEi~h|h4NTj z^TiM9FMqY$JVpEIF(}Jp0drr^ypLWo{dP&n-Z(8w-f9pcYsu(k1Jiw;UvnUJ{mn10 z+0VOIyP;D*P@)|@<{u3n7Vnw75mCVdJuuQL6ar8?K3VPx)p<%q!D;)BuTE*>fHN$p zGn0}n{K=G7!S&2A9wB`NYb3zXiiX1cb}MK09W+)wuCq<%!7CIs1z=)acrUPoR#RbD z50xb#MX@Wx#C>o-$=ZUMSId_i(0z zfCz9?%#WMd%9I8uci`6fZNmpkFyl6s%GyEtwH_jk|H7c=#Rp-C3yBYh7UpqXlXVr9 zI`SQZ;c-h)7#2cTq%)ba`UECeVzT5;mK$?B4i?P>G~5z7n6Nw?Tj@(JvtDRvw_dtR zEg6X`KhM!^ZL%|-eU^<3DK(jqoGf>vkX%pmnt7??W7c}K@6jnV#O@THg8cOTf%@pN zw!qVNmj{f=jC^ACtZZz#cfp)EV``LS-y1AJoI{hq2>OVm4fFxu(;@iWDRt6pX>iqO z!;|q+eXXyCTZ)l%sXR(CGToqQE2bj)yIq0mL9?b}f;Se$qa1?nneY=7`5na>7lE0` ze*w4!Dv{N-waI=@qhCGBMDFXh(#sw|gcMfVk`E09@4w1?af3)+zsJ#L!@Ic4&%|$$ z(7+N7r-eW($KPLn2EhGo88MqK#*X=zxL#{LcoMGhhO{qY(ZF|T7(8WrHSnc>_3so| znY9B3z+?K2PDyF)vxx}-0V4Y;_lHbcqVHAhzfc1+RgH#cM&rkh(@cNdG5^y#Oce!~eT9RF4WXp^#gvf}uG16~Kb z&r#sry6vxTcFD2Kgm6gLZ&=rG!}Y&?)y+5E{I1E#iDfL@Z9TuJPHqisge!_lwvMh& zesGv@!y`j9o}5dEzw;Bc$07SsaeAEkx9+4>KmR)IyyYrNXA%@gcLw84s>jOl&Pp+? zN=sSKQ#{td@@<1KwyW9%8fK{RW`!%OZPhhF#K7p)zn7&GacobO#U$Yds+H2G)HB5Q zVbJ5+F|k+|!L|d^a065Az>~GzC=i-}#G`U*ac!7rkj>QOB#w>i2P*)_=00o9t&#Rf z(GJDpkqWQYr-`XC2H44|N%p)G@g&Wjvw+(KAyhLkFkmKqgYkA7>OfHnPReyL@{l@b zf2t9Y90grnP$XpIGqVE!22h9>Kh0nXfSa6}V47QNb5r=-bn()JXJ_Xu{=FFokG}Gi z=YHUnlTW=C_orYhgD^f2zH-3pfcLqTT-*N4$U^#-lbcBTtRJv?^{VFIUU%JZ9(!!% zaTrAE6=9$&?MlG}Wu_R&$jXWGG<6$<{ zG%Ok8017CJgQ*z45>rO>Uwbx%x=8(`SNapx9u4J-^4NCAcx zkU*S%{=7xPg1{Iv_y6dlkNMUsUh#?#^!4=(Bdj9NDPsVp*#WNu-hV9M_3YLTbgEK0 zZw5dc2GX1to%zDMM@PoyEMLACPjYmX;KY$9F<2>J$Qv*#aP}R8FmJZX>o#nn*xpCe zY480A&6z)!TZ8XhwSw;X`lqP4?QzPswNS!rhm+7{u)TK_+_TwC9a};AoRw^+hgA5z z0+g0FTq=g)hNwQTXyTG(EeK;k^>SI2(lRGN6;nA#ObiTc?WiG4gLL@43d|ul*jBC~ z=AAF(L+=`8yF=!FLHTCy$OYohODfUCoHrtmqoDm~`NdaDVRlI-c} z=3{}A3&6wog9?UoKoQA~{!Kh7A!y&--9xkc=5q29lQ0NsyO(OU8ZHnTQjiksT3e#1 zUa^K-bioC+4j%93O`EB!yNiKt^XAR0UE%vxdT7OiQsJjDZ@;z>a=R$Az|5PwIIQ%; zpNR9C<2-WIQAb^R;)y3-jq_T(WHEQC#{F=>>wxz;VcWMoGhK#l;s`meAfKCTxZr{d zuDB$yIRv6R?yY#ZL~l|7#;FV=FFZgV83$*SGvtH zfUrwu&z?)IEgjOK+A6B)#K%1{;P49rX74-TzymfcT0GxePr+O-V$#Ginhtm!@cthH z?=z&;V4SY@j#lFtm0}lO@cN%#dF8KOioRX|KoLkO@L*lAa2ciI0S%6f&{VEOO$}*E zvJ2c~w$=T#ey~9MzTpx&{;adfuT0a9fvvRa+AHbtpM0BQRpXs;^-_WX6`a_FrH0}7 zl0{F1-j`&_HU3+*QjHXLiU3%!Y-CW2|Eg!EErb$Q?Mz=ITl%Z7$1N~oFk`T@t}K__ zdbVsf$%EELKoC|CW=54K zqgK=*Zp)Q&ew?NZsAv+9lV3@x7DHuP&Un8gqeEO_h=mc)PN;KcfiQoUFh(3Oj`toaD{i-iEHZ@OROrX*Z3kMc82fPk= z|4(ek_GhNqB__nIS#5OrPk!{$i!Xl5FR*O|Q62+GOK0J|bS_#>2OfJOO>Emr>D(wy zmL?70j!<)J2d!ASg}RP=C7tose>L7)%y_#c+VIfbbl=xLOy&OVOdVtKa5LxuN@ZJ( zra%JF@~qZ@$~y}1R>BDkAjM?U#E=wncverK!rO5M^@ud0fMSWgJyF_9hKZ`G72p9N zvbTvgN2QWw3J_0joCofKE*8A~XNp4Y{^6YPeMn~M)?HZwTE>iPm8!eIQnuthSUg%= z+u6Bjm;pU_u}H|tu&eUn9gzBf{TrGx0RCD7Pq$bq#9sQcv+h~Fa^)cbC!GW+bTYD#cQr=c zdmTWtm+nu+;UUToZKD=53I6!#Lp0sJoKAfI$7#Pk=F-&I7;QD+eD~MCK*M)mOMZh0 zs_3?}!ezikn>F{DcNz^9Nc;Gl?c6H@GDw^y!-kj?f~%;LQJ86$E)Zmsa-L1n1vXrv zI==!e@G|j(*rEapdcSE%K|=!y;3^2Oe@YLwQl#B|nZHX5OH@WO+JZ>qrZ_Gt0s&Ac z)`(f%VWsJzVJ0pC#}wL`T$3c{q$z1RC^2xLbU4PvcrC6$?DryTJP^Si?iJM3dGIOFuYAP$7m>t+KO zh5R%N5jo&>!235blz=`Hh6YBOOr>li z&ENlU>T2tyUAuPDhLJKIebJlfzyp_2tWc#bW-vZ*nX?0d)pa2ip3m%ALdhm83dCCOvgFS%Q5mwC1iZapTxx#NRDzFce8*6UX|O&PmE79 zr3(o-RwFa_D__V*C}t(AS4?&B--c|O%H|rkZ{No8T&R=bUL!u<-qAtHc$##oL_-L; zRtT-nG9I^7xcRoragjOQT4|`oFrfgF4KG=CN8#YZ4!z>kQ%||Nuwq^6iXXH3|n4kOH=RW(RAOGkQZcb^%Pt@apajC5F8bO4gHh<3< zU~BE_qgl(3q(x`Gg7!M;1WM+nY1htSdhCz4(%oPAB+=L~CCnskjDt1Nz|<;bDkv8f zny>0XVw(?I5lWXi7F#G<7JvX8wx$3AfS|;0$?|_IVNwSFZfa_*{&t%-}F0zf8knW~s$pC$c8%x`HZcijc zW=?|P^AA1rpqZRQtkclh)l1!7v#iH1p1ZOtRHR5N*jPH!TqCX(uR(u7 zmTqN5KGF;IA=Eo970N80Q{fn)y;D_1tMQMeLaxBxql7!OTCFkLEZrjP7Cc(4 zpdP#aF2(KE6AV0>q^m}R>9q?;I-Ov!lk<*+^gBsHR&6KXGKT{C`eqXnrvO2K{h$Gk z{{9^X)G93Fi5_hD6R}tc&matyXIV%Y3)Q+s#j`|e)_dT^x*C>}>w>3Y1e^~*0|hq- zvj8OVCl(o;Ptsg##wIeO++wYY3kxwy6_%<@B;(_U9(wS%4>{zZPa6;#oIh{A0nJuk zXuvUc!0UkbS+O;1*8Y`OB%IveUU%)8pZ~A_ygC|_Q%S>V>&*ZxR0a_bU)Tj^OKm1v zJ~u^$=^{1vEux-9i)rIScT$|N1#O~q+yGq+Y}N`7egKFzg_NXKh5=H*R^pQCZNg&< zz{j40KZQ6@;-}iJwZsOykq4(ID~JMA#!uJnaH|P!e~J*R>a_+7|R$-m8m5 z)Pu%(PO>mfnL!^v4Cavz84?37hvm+^@MIdp`=FIz(aN!CVou|m$`{sHEu&1I|_MXVr#ege3xs8oEw^ae$;2Xla<#%KShp`dz!XvoJf7RIRNY-2bhqsf|Ij zTrRMrCWC0js{>x&QujC{5YgADRUOLb0Ia>ey?h;*;1I_t7As+VojWj9vISR}#+DCyOGF!Q*% zsg@CY5e~32H*^8QbpW*RUC=g`K6ex{FNTJszuOecR5pjlls~Js>QC;G@5%QM4D^c@ za5Byd#@xB{)*pJ zg_2Wvx&TIPWzJ&fB!V%~N;wgeN!D$Vk?2yE1h(z?K2bpvCV^-+h!BnTW|M&)Natm9 zoX)OJNgNeQVPChXz>WgEur>U!X=lO~3ZP*nCOIaxa$}i3hvZ;f5_*|TiYIb{J0V-q zcV8G0U0q!acC0Dv$CxfyvT@Xw)@Ig+z;{nhjnlU6n`z6IO*CZyxUr#;x_f%5t+g|x z?x`dv5_t*h-IFc1h>Gn*1$Cgui|3~L4pImsT}2R*Q2`(DgP|aY&tnm5Zf*(-Jah+A zD#|$8uwflq`H9!fA(0YOFJ|PHfcaTN7r2U8wb1& zc>g*>+2~&pWndY?uYKtYZ}`F&zxbVm6=_j{ZuKxU8;ysOh>K7+ycU22yhs2KZ}GXq zu)Z(OG$Ehcv-`aD2N)~3VDeylj4dv{Pg<0F47}=Tt7v$e8H9E5JxlRY8kczKB^w%u zwj&C7azNx8-yH{-R*T%v%nL&kHKj33{2E_1QCGitX|SP%1bZ4f(D5)d1cA&tK&e(u7URSVCOy-PIB7&o z{O1@QfCHYanV_w$ZDGX~wz08<7s>~QoK0J7fNdeS($Riy=Deb@W{EfFL(dX%T|Ta* zmPtY_!Gj-O?&QR@$W2y?Ay{b=E80b3W@~l@#iRiRp2$sBLoXbl z3&7J*LapedM$gg?7%+`%#;sH(;>XN)HjCT9z+gy&(-4c4RcGor(0G25j0@PaN3n$G zB^YS2K*_e>XI2M*6hiCRxnLrzvKrIA(1O0Lg>w06<5@mo0P6|P}~T%c=6H)o0_tpdFxv*{^jV{cm>brMK63Yjf{*t;B~++$&VIC;(jub#b$`FR3Z2_*~0}K*X z+EO5cJ}pXLvAxwwF6DEg{vNSOO=tnM#XA%a5a*)cB$@LdEd9lHRYMK{yM~4)rY3Q6 z$hLT|TCccTt%ld6Nh}?pQLSC}QVn2@kB;zXB>pP;57YVDxry*g!It{giXq@_Q{dGB ztCqy-HEU8$Usw8+uo{vKq(j4lHs&n%6rWdC0}jn?f*6!M>#@iAr>DEefX*HUB#R6V z)u0r<$Mms?bcAQ@dtuvnUg)brA=KC~i?0_;VW~B)9SdMFKSi51ZQyuxUth0X zyhTK5Vq%iR6WA%}_yTYv)U?MQ%kJ50`9A-(?|%FK@+B|+mnyt{Jek$2RyyEy!29Rh z{rBJh7k?ImdENSThkp2jAGi-&et5h!jRUFm$D|jH1S@A)p^&nKhlBx!37=s}$a2JM z6K?|ICi(?Y#Fe7{yXsj8UhF0}C$ zn!^r3g}3Sn{_Zq`FSld23r0<^mu#^{nSoka6F9&8bk0`NNz#m4{dk&jr;zK4dxqTr zw#Q9P%?wbY4^a-c;xnmZay?ZGpfT$)SFJcuMZ|6jxsd%3ZD%CkE4vi@iD!dniSGo1 z!1v--R9+IPIB#?a1_0#Dt_BkmRdYCRoRdCFfEa*_yt45MhwXVx@Gb-kCyF-U@gjEK z)78si1Jx#0TAnTr0EtPAlT0>zrW$gAq$LD~z=ekR`;?_9s`rZPK&K7g?np3B@O$V- zL(>@Ng5GT+Gbxgw7<1xLQ@F69Ku9`QOJUHQIdgA6`J|J-|DqSat!XC-zzeg)i5N1?iHv=Lna=8r=Gd+r#-7XkqSlR z)#JtWv7T_Y$qLtaVKNKhmvV`t)3!(>!Cv`-`3tzR5cdcmf?I-SnVYw)V_=ZDY?-fH zS|fQpiNU2s{1*TZKu5L;;FW?C(IA9T6%hVb{>D?Nnc;M zV8Qna`TW+S3JL02&8~y*nzWM_0~r9TT?gPrVDO+ZqHtBy?8(6Ez=Xo&K?ece-rG(W z03lRN0RsV2`GV5JQVdkW)s=1hwDI_~sKfUq)35X{^`7t=^kHlCrE*yM%84*b>PM^; zg#jpW(yb{PGXg;IBh4PG9J560^Re-0VpV44e!z8Y7q$l2T4Md1LOHAe_P}Ipwaj@8DH z>nMjZp!hfLi^Sjq>kT){^WvUzDt^zJ9fSMsyWdqOo^ZnVk39OQI~FWjVs=Pq?pgKB z{X+Lwy64_|%?@$B16~KbM5`Wo_|JcHAk-$w9((X!(wAQPp&M5`^6=4_h~k&reBy2S z$ndCy0IWip#wc}*j(=kUVbZj>3pZ1a?f%oXkXIFeMyPD3n9+!RK(^NO-}6#N-CJVdsJ{1wb~Jo2qs0 zuvLrro)kCCEHaqsq99=#GN9SXF<0DkjIT;nnx$gIq0HRVZqeACB!z`AF*d<5KNo_$w{VefE^`r!o^Xo~v3G znn=P{H`~}0zE$NC&M>UV}dC~UpxzGaR0zl1r&fIg4>YiEIJSTI^jZ2p< z{rQ<^ocXhZ4m|Lotp-#9YyeaTy#MTUvQ1n5Jm7^#gh6Sxg3V^T1+cvT-h1}E=%NcA znaWKkJbO=y`6ljzkeK6wHUL*_tCXGCn>`lhYGaL4ko?06fd|K&BkmjftuW zFr6eE-{rnwt*nqGYF>e*d{rr+TCX!vc%v}xtBak+%%{xvW3f{uE`A0HVJKh$z;lp< zrz~a?Hu3m5G;nKpc?Q}pDXMRa3ESS@7KV%R`J&bA)eat@ehIfa7MJcF@mQ^p1m`HB zm0Z{f1iOtOkakckZo{qI1Fk~DA^>2-^T+q#8RHnccMq_5dy@e_Fc@&}5%$3%ip~;< z2X}RKgo5?DFkzekNKk6bg7oG)(X~SprFb@~A)>n*h|&X;wUtw6M;GrNc(J#$J>aHgj!7n*cQ9sjzIX&Hvh_jbc z<`y;pdU$(nZCUDI<*784(6!fW9YKkLCsnBwnBvr824uznFecCNhB*m01Rj#_*S)xK^gz~UKqyEEiErP z6{)z>?K>C?m=L*qj&~K>ZVAq*>P=|;6&|AiQ9P`I!^8yu#;n(iaE*eaHrb5EbopFR z5Mq9h&xyBKrFH8br?K%-tD_-|4}>i=2CNM}am)!@)+?OfBA>S;IFrogkggnoE$E2b zuESIOeaIb1=a4EVSaB=>7HDBAau3s;%8ng7xYQY9>l|}tc1wlF5y$>BB76^!1t=F7 z%u5`afLE*ha>V=#Ia$0o^p%^UW^=C4r_eBtc1Z@+4c8Ea!ax44V(@6!S=emdGa3>Zz$x#0D$UAtq)&P-L@qVRpXt(I72 z*@}9{c|vn5clLB@#RAgNx7HdQgM4gsj3*BO8xt^PB?Bd9Ic~S13F$<^>;{==V`F)0 zYDpty!l0Q|j%}mn zJPQms_zomxFxd(Qq^73~I0pqY5mG#v;rZ>@zJ&pwuQB0s(E-j=y?!q4sEQgEUt`Q? z?@kkENbrDW=W$Q5`krO_cg@fXZ&oV40Mgo8N8_642rS&)WEfvnFIy!lbpgP+H=7C5 zg!bvxAOu_Ap1;z&K-0qHRxui(w3XQ#$8*74$1VT>${j8^*)`4Q0S1IJ6tu{snRS(` zAs4!)ls3gX4y~e7bu|DP$GB~L8}G~K3Vg0j%~?L4#*tNY9%Brj2PLk|bg)#o_^^su zJjqGCo&7uco`ZFP>jS`QQI0Cnu~T3?a4e7rHQ`O&n@U-w6 zCS$Z{LxD}(-{?J4#s)x<7nSB#j=d^y3*g4WXD;1)YYj8;x&aCHWO-7V)(ES2ibcoyN z_|OF(AS#qJ>EMC;j^k(n1-^6lt^w*X;OTM9w-jn?IZhoi}gZs>2UI{KiF#mi)>b=RWh3 z2k_#jy}gq|d=7a331htGyt8I7eBTU|eZCY7_TImiV)6I zVL}RCgLq?OJV3P#cwj>jTF}5e%yG$zx7v7~fU$Ip(1e*(I*FjUbP>)H^1{Ny6Bz9m?I@KU3cIW3-0PaN-^J-g2= z9A&G-77rUq0yITr-V3`tAReh6IKnHn?hqxGe8hsGErRfj@O;<{gqAXgciKYWj(XmR zeIuq0Q*8~59Xx+!z1RhxIgQ!b4_BRrO?z;96YY<76%pY#JYC#ts*#%wE~m-F4G``|Wqbp@$y&$Hj}64j`mq95)BxDdZJX(uYp$io);vyk|M8DJIfVQ# zgHORj0YE(=BtZZg7~ookq|_!&N@>-VX3gOtM%#o#j<90CPlS2QR{#lL9G;7yC_HF zq`p-m!=%Tvz~bnc`-f6sgf>)f!V{Ip5MVgOFe%AaS%gbA1|7E{r1tQdv`aCLjqebz zwa8wl>Ifq?%VouWoY^EuGR8U* z^XAVD%at_=Co-Z*?!Js`#Cd{VHas-SI|O{!_{5mK_LNPyPI34G3lrWC@YBjn^~%*D z(FHYHGA~mt#^Vs7q!<^{v-loX zz~jP;iK#)FHiI8}5ug3?>*(zB7SYi7b~DM)5@wR5?Us1D%&edqM^(#qWz0%(1bcX> z8Y6g@3Dj;`kJxHQ7!S2n3}|GaNbA@1)1xbP(CWu_(G!pFpml3^n*onfR-$ZEny<6TO{$SXjKI?4s&%>v02BFL!h&%i42tO-AB(jU%0*6s zCE3d@v)%!cmfG`<3wCTs0A8nRGfPM%5iXz-LMnwK@LDd8w(QtR!0T6r3*OrgZ?8o( z8~`*LPX%}j5P2MK;DV9~2_FbhH_)`XFO5xE26>!|HZa9~P$e|=x^X?lLYYHKI5+$o z2|rxZyt#9QrDK^G7_%C8R?#4gZG0BbN|-;>{9a~#fW;C|)HUqX@8#S8L3*>b)Y9Dg zM{`bh9enV?cN#E$@SuYa+JbPzjvYIxy`wz@asV$9k5Eth*vCHRfcH7qb8YL+r+wXc zuwJp4|CJdGFAgOR!x*f`*?MHR6LCkr3=j+%@9*5# zoj@P|&y#6%ax+z`W+DaC@Zs2#WNKDW{Sym};*}T1Gr7GOY0NV&-UuZHn1dL{ZK3rG zhDRdSNR?8W#>a}ZaorHDS+$i`KC<2X^wZYOgA5+fy-gO-Q(!p_PEjdP50vuK@ z-wj0Pn0d1-+U4G=Z{Hao+_2FovW-XRS;f3$lo^53`4gF~(jtyjM$^L!ylP)uGr2VG~PX#1BFh zNYWy%i%^Mn-~gDzd&PKwfD*R*IEJ2=?$k8qtMZcg!5E$bOUI69rK{<96P;kcPDg`< z^(3ojgdDKW)B$+$>hB3<$62n?3ukz4zJsq1Lw6HThh=jPnN|16;rHjc?Ei zC!FAb_qk-7HgA7gZ`Ta+cNtIdbMc52Vzi(^{%yI77KEWokg;|D#x0~lGteJj`#5dh zvY9rmdxBQ4SxswJujab?ZQFNHs#!`nwUYoQ`;_qvV&?PMvJ361V#QaIwfzwWnI3*{D~Bhh zxl+z-RU2B2htg~AnVGERoblc#%%V|}us~$p39-6qk=0h3O4zNkOU?@Vy;?DqA_lGlb~rK zRMBk!iQ~3jO<)M&4RCW&0HOss3gkE@UI&oj+9we@vGH>b8DKAzOoWL*(9!UI92Z`v zhAp&mGphNE>y;gz(Dd+kr6JZNKP!@x2qY0Kyzn5b>Xas?Wu{f8GpVB4^{nac?p`r# zR?j_M-Q5q(o;~M@#~yoZ==sloKAm>jDfH;0EBXE{S+dC7lbzJm+{%@Xn5qtV|Aw~i zX+jNV0JNEjyUKWVvovlO)tZeaOFX+*=YM4}xQ=Fg9N6G$yhE?le5p zCRX>-mi8Q~DHcU!2mo6sa%>TvXe?&WGeCT=T?#;Q(>65W*&>i;?%2S)4BJ5ini6sQ zY^5_qIczPYNgrwSnc*ZFC{#GM#E&J0Ea8F*XWTLIWKj?=7wm^x^_(i5Rl`zU>0(?o zTlNX=m)6Q1N+jE#PNhR#2u;o+hKjI)PH;E`n$W{}Xi`g6=kV{Y?jH8=5!Nc(gxC1Q zD4zo=+@e~?a({E2^uuBTFvNEw>4q@J^kj~&L6d3l8u1>0EZ(OcJTW=_u0E+@|tyhg~n+23eT9}h%4q(tAmIc}u;&XAkrAKv|8E6=s0AEb(k=?rq zoJR005yL|wVf*&&?3sW*#_`QciQ-9f48KhC7xvN*fBjl&XhRXhBzv}%V44St0EvVe z7+@uaU_%dq1yLPYHQ+_UO(5C}y@1 z7>iLR-pFiHMTi4!bFe@_l!j?nFeZ9S_duGkLcgf--64(#TwCp&FveCjX2D$bcEtlG3)b>_n*WS>Nogi&JorScfzM@PtW3MM zkJE;AL$rR~7Fx4%2d#K;8x8K7ps|U9RUz}3DFG18W;3KJTOlQ_?1z(EE7cSrHJpHn zG|6q+#UqUtZbTb>0$_4Ta$4}jKbb~x3-jL?rJ#*J7lQRmuewMEHoQxC1cp& zJf#g%z~HK!aBYsNCD1kf42f$i4;jbwtyY7ECu*YcJ}Z)8*Q5zB^)_)%U_fAZf#L`p zM`Nx^hXl=RcHbNkrngJ5#(&YZnS0`y^TWO9>h1`Y(WL7~lDn_q-+FEub7!ei6t8fx zOE#3n#QOl)zF+$u3FnCVnkv7EFjdZ0c~rTJ?-ANZTG>A;?lZl8t-nxVUFL z+wgPN^Ot}75unC%L&@GbDTDB-c9Qs-%YC? z+eS|quXyvuT{K|87?sk<*Q7JPNEV_PA?0&7U}zvC4h~Nn--8eX;^R{KDj=fOb{L+R zpwiJHW-G-eLveIzi9=x=RTtzkYidl}7`=FCT=0@^;P+^u2wsDC31FRIhCwAPpb%C; zU}<5oP~2UC6|V!70c2nsApXzYlWn{fBKQy}O4vdYfPj=Q2O&pS$D71bgHTNkVE|qH zqYXn*ZVZoAXpebbAj_y;GyfsMhHFEC2d;$^!PdJ(=mfh4fIPq+VICB#07!M$s4NW3 zCy1v*uphFMSh%$C1yzoTxD=mYry#N7vIXBDl-rc5%~Hr15fS(rU~4F)Vq0T@+gvGE zLMKTp{>(L$X3v@XSZ`n7FAqNWkgEiv2=AGD3@$Ow9pMNEyw5Q3TBWR$%|QPh z5;6+1y5&^)!Kl}#8S1c+U?frVBv20O0e+^}Tu(EQI3pK5u;(0?Zm>4FhmZ#OB`e+? zXR4UbNwOF-8p^bTij_es6sHXs8xW?gG+o?6h4P?zeTw`z_`F31SqVq@%ulVIe=LHp zUdXeoUHg;0URf)=8D4P>wgrH_h?u%>6L+Al`TYM?Cd3+mG@h`}d}3T{%G~#iE$~RP z*Okv9aaW*qYx|8yyptY%Xe+H=xs7&g8!{jWZ_P}WmLvliVy*DHghw4?;6)4^8FQtn z;h2epur}cNNflWx^!~ImOZnN@7ONMn-HA0Jq%Dy&9<5t?6+4n-T|7*h>ULg%QVUFU zOO9ub^p8Nj$=%7BvCT=uB*E%EEK|VAt{O$PdLBMj!xFk00=>rl6%#GGUy3o0q+CIayfIkY^iC@ zw(z9HjGksoY2#+CZ7pG0xF(h%9?zxwW-$>4M2w%a07ey zl~|n)*1yKR5N+w=(xppoKIp&$ujrdI_lDD6@Ph65J}@H=IN$*K;g2qN!23)AuXNze z-)f%6aoP(kTGSwQ{Po_gC)&IMgpuFR1RwT*sa}g9>K%vgv3ds4&jkv;5g?B-U{}RU z1@H!O7Q6v?>Z$OtK*#X_vSv_vkbK-tQ^id*o?lD3(ncy*hpFrhnRCiZcV9oSo?xs# zyfPypr{L=;@P=_>8?|^+0x#nAMqUJcoj;?Zgk%R?T7monPS6v7!C?Yi}`U(C0yBPTJu(aESrAjEhi2Y%Zvw)upYcoBovjw!%0oEkc^Cu@OMC$ z0dZBl2Q)CxdZHV%(jDQt8H))}j6O-~Z0#%a>naj(gj|ha9|R#fnFbQ&6R&4nLgI*(L|P{~O!9 zd28Lj%>y{aJb)YGR@P4g{oP_8eRvW#^WAm^NEZHLE{E^$BZ{TO4Ee_ z1H{Hlu5L4b-$A8d%p4oZpS*a+gsgHo1WF{;JTDS9(UT1H`h%LMjPLh@h}Rqoi#Ft4 zQm}!=CB|3dbJzi~=&ENcn#h&~Biw=W_kvoyxQaVtysuaTmpn`IEJ-Y2CwNHg9qZHIFE`gJYeuNpfF*(NGBuGj+&@zHy)TU zKKxLt0(TtXr43cJ)svJ$*Gr3v7DbuQ8`schz_@Bz0-&m;Elmy~2PD9>1X`$a32tMA zq%YnNZxGib&Wf~fk|GxrSj^)Pf$RnZ)B%n-PlP#?N{5&?l=e{Afd!zuyN8pjI4-^) z@6)a&@YuympQ7%bE@|{xEQTGVwFDdIrJiqNvw(g{%>Aq{(vb}ygyLZ;zFFx}{tGat>dZaPiGr8Y>Il8p7Ho@ zH52H0Vb@-cN5$$AXZ&}o3!tD`2eMv0s75_k&X9WI+XdC2PAx0?{<<>Cr->m)*%bm} z<(da=TYguAkf3X0)Y2YDVzA42 zA;v=vhN$9=a>xQPV)f7^{9)t7QExcVFhhg^VF6SY0sl$WbaiYC@*?HUwE~aYBA5&- z?gacLv52Xj7_-K(ue-a6Zw_}?t z;Rfs&Jip4vL%j!t=raw%XpnG`Z?@&LSQ}Zl!Xi0YgOzHPF9SQ{D zc<_9oLw#pPXNeD`K!b7Y$hBD>`1IAfO`dKPW8?ShGfi|umrnRd# z(#nU|(~5^S8LxPZMo035R&T9s&Bj|yiv*`1V?fsMgTyl1!t!5bCvZ4`Je#Z%K_h%7 zZ`IsbC_OHE7NEd!nK(ijHle57apmQvEzoKqMl_bIou(0vz-#bewPaUV9Z5bX?J}WE z44g~f>^^2`Xz>pNnECsN+2UuL8hATi6XVZv6HxKm3pf$8 zuWY;WkC?%*uO!dBNTph$*7d;`Em@|8DGOmnjJ9g!5Vedn>hXr17Xsn@M&%E~crM8{ zO^+?Y;1r3AdQW0S)cTWIFWi&TO5UnR&P~9YFPOnd+VaF$AAvc?fiN1tG3M=mP;1@J zd{zTmd@eEKL>|~(Tm&r zUGvJ-Tdp_1j?$)@4E+2e_d?b|`8;=}2_$$SCym`of<0jre8ee331(2Fx!Nun&rncG z7_YNH+cuBUs>im|%Ez|RgAcBy%^P;oK>wt<2ObwUsE`f5Pm@qOIkBxqtT$(w4yur* zaZN2y5cWZVCMKtBp#>Q)s-bSt)ux-Cg`U<;dcD zw4^z0LmAv#Ehio!KoQ>Eo#j(pLEEQsClK5N1b26LcXxN!!5xAJXK;6S89YF6clY3K zL9+9_wOh6O<@p14zD!kD*Qq|$HP!c=bN{Z30yjXX$K298F0qi$u`SqJvMUUsfm%!% zb9BVp{tndy?nd2}{M`@|t)6xPB1n5y!<2>yHx^+Kw)IK9=q2hJsu}9m3Kf$k1rjcX zunzhpY~>-VHA`s-ndcj-^p6KizLGcEQuLrvKNmwfUky57t}@$D<2!6@#{7@9+Z@kj z-TL0$`1*fIRJ&kdwQQm{y|SA7cV-Ug%WMLAb(W>|51Y*XWqU!|Xq+}L>zgWg=_9nr zM*ZZ=UaK_vq!_}z+hq)`3;bp)QHssIwa`cz9x>2*Ry!eA_JgN1i4IAlZx3tt2Rn&w z>u*T}8UgfRY?EZ3wp4;Be*_-J3XB9_mjgPgNPwHVtu8m4AF8cmO(bR*ahg*K47 zVURywvREE>bF;n~c>ml>7aWsF*WVmPWhw5SNpLjxxOTKZ9nasE^4@Nne=5H35Vff_ z^yfRQaC-#88fyNVH;jR503^sVeP*`pK_}GfF>61#M`QY9FRx&G@-uRYysPWsyee3W z^FZ%b??FFiHHz$JuJ)R1mt^%&o<}zeROavUQ0Z$FEZ?D>&%UqB>P6`6krjI8eF|; zWazKr5PlC;jMQ)YYtz0yIwI1n&zZ+=TedNibf7P)VE@UK8jz-O%pK)V(w^Sg`U?u zc*LRawkdi+Kur)9f&C{64Jg%H(kn{7J%^T zH4*IWteiH=#j%D>ApJ;xq2)|KXdmu+2SeU3*Ci9QJFtjaw1>fdRh=frx z$R7h6>GFzG@f%337C z#KZg*XmTK3zT(0aL)BXnlw5S1belKN&fcJVW?4s#w9Fm^v$F*4LCqeI7(Z5N=l(rg z$@5Nx-u_qUHdWJB&tbHNHYNU~NorxGMsI-=?mB8?8eu&^Q-Q`WLQOij5Raqr$6`?~ z8#uhiEsk>Ixf3(9B<` zU70i1phxOKnWo?h@Gprc`Wv!-{)=@uwPo=_RN%+JFgVC41N zLjrzHEv|D!1wN*1{F#pp62%8}_P%Z>&&+%u*4Iojm7q))BAogueQE$#QO4Oq7_m%4@9tze9-bte;KkDp*=vRXYH@yDAuFJOQIYZY(6x0`hw6v0 zD5MO7(vW_0Iw%?oVrdKg)^HoJJ8QPn-?sU?ys!KILGHZOGY5S>f-5MY&U7}kGgWAM z`Nsk26dU#+J8awAat8kjpF9%pjrdSUtoJ-D-%Qm=B3K(pK}c2wJ_RK$v3t8hq}xU3oEQ(r%W}*0=2)4rP%a#OOe>oe1~(sIe!3r79L2PvkYH5`h`lU=QwR*z`K^I&CBZqc&C}0y9I~>}pEYDu!(bA30}buEsdh5?hG4QPf;bcG><%CBDC}Hv z9eAt6G#2SS886P5Rx>DDdCCG;6$}B9jAy0y+p|%}aEHf9#CD_0ehzNbs+KC;EsE&YVg_Bz`J>s0vQ7hG(Sak-|fIn9E*h4HXJ<4&A_*64lo+o|g;GgO1hC z-<+v7r}LK2L2rG10Ts~O<&E)#+~2IGPn}E*1K<(rr(Vr%FmALKxc}x2t$c|V} z5=AvtG{y@1sS?F;m&=aKTBLxa_(x*Em|v|znmC@_e1ayIr0T0>RY%%p^=b?WbBUD? z9lk6%`S-u|v(5^Hld0Yj>QbBK$#NpDqtw*{%i+Yk+Q-5NinNIxEjkc7*;*$3$~0I z4e{=G>3#R$gS7^X>NI5OvTP%Z3;*@0$R}$Fb3a7tmkH|7Yq!<)7mHbY(J+ktegV;6 zqubyzHzeHg4klgi1`zn|M?cPRqy3ROZW}RsWJ@Fy=E@Sm+}$ggLU9R9_O5JH(U&Kb z&_Pk%)ku_1L7vkB6I};Y6Rsy+BCH0^J-#_G(|@4Ex={ysy?E^I!C*GVp)ftk9P#UxY?S_ zj%W*a2|Q3u^HPIyM%N8~QAX~vyjSNS(WwkoLUrxBUWVH8bc9w+w4?>%DAOk~sI{#D z{24XJy^bnNn-wm%u;nbLuA3q41%6?YES&AjD$4<(Q%49AQx1A$tW2}FrKaNVPwRG^ zi{y9iU)CW@II9YC*ut$fkT4<VSY62@q+mXH&DM7S<7#U zi>#|_eK|@(S31RNN-0YmE9bN1_^Py6ub@XVpenSEY!gLWsG$nJ6BRzgK;45bXJW%C zMRM@T)@lIzIuLF?8$uPl9uB*??%X!|mF2{#kZpP>#l-9!SYb0_j$d3|1f-X;X^vw- zH@k1F63<|rF9YDU=V|>7+W6yGyAS-T-xisMi^%!20~U&-Dux-`PC~VE=x_Q#qsn6t zm2rE*9{Q~YG%7VrdMWx^!s#!>ZZaLMaOViC!4myL0Mho~k2%KK$yxE#e-k^3ODYdJ zeX-}b5`7$4@8T0haePHCTBm|(@&R;xz$ZE z@|xG~%JpdRl{d~Tzryb;6rfp!+(s@4S?Z6cI!>sn$4WC^TFP-{IySsES55##fWf%1 zSD?M(T4id>ci7ZB{XfOmuZ)8JZxEFJNY%4Ni);?ftfrRIs^_=qyMu@`PXV!OE<;$* z$-i{79sl(-rR8I}NXm!}-$NSQxKZAwSO%*oGfi`d?u7aQTQRY8G=V5kw|Mjrmaw_B z`n-{|kaV35!E`U3m?-En2M0}_X}N2)F=@+7Qpm_qgxfQEwgeYu3`8b^y;@;h z2?beg6b}Z`%~pe^?%<9~4mArj?6Kb^wFp=tIc74L@@^USiJadX=xNgBp0>yKgH@os zsA}kQ#&6E&(U@`A=vB1he^Cu0m{?nMjydF+?|@i<_sn=M($@IFOi294)4=XiR9vH$ z8Ay0ymLu@CJAnIfX1K%lM*s?d_7J7oKg{E~uJ z{Mz(b$QsR0!$bOzVVTI@Bk&em{m=40dtW;@kzOb|FSN~jO#vYf{&c2*LJeBgUJC*G zs}h9=a5K5b+Y&ZiTsv?DnL!Y-ONS2=nJ}6hCAgL;OLYHsWUhA%LYq8^RexRznog50 zb!1X8r$pk7g|jtLWyZi`kaOGCJ~UYuT42DzZknkK{)%qidgqO>>M)ioq++|==B)~s zegm1Llvnu$^^KOw=nIo3S((&6T?_4E?Tgrw8g9NI(#eP zgE>p9%7e^n)W{j*Ww9B$=P=^h4s&etEzQc&M8lpzG=*h!Q9;w@h&MMKMNSWGQGkcQ zxxy5JpTW2uvghebnEp~|H1ccBv;KfCDx^pz4=Lk!OFMgEoL0|7;q=-5dlrfP)9e zVWrfRw~P9k<901#N&_BN^Ou!}l*M{zbFkmn3jtQJ25F%URj4UE1blNH78+qDR+NSu zy(sls^~OD~T`QO5P+#n(pi=>soSg|;k3pGo+g8nZq&PW^e|t48$=Pr02%p_re{pn} zjR69Wz8-hg8PAEee-@=tc@fT{jsPk5+$BjwWZ0IP9wqjbbWzk~(-rX1SiZ|rJA4P? z+ULEkQnXF0!+E%C6b0HjOsM-gNAq>_SF{#qWM%pNLH_3j{_XBiX-OU^#y&c57FINR z|B`roMKCYKx^vKEk-i495K5#Pf@+T&5Fq-)?L)M2a8z`3rA_G-?q22RB2t+SdJi%Q znhzs0+V+*w#&ilspwhLHY-Qwe{ZJ|Y@D8!Vk=ka8rbOJ_L0%AaFAryL=tuDVZu}Wm zLmbU{4WXVcZ$u$b9t$9&-5dB;Lc{y?1TNOq(i zOC3X0mBgjodlE$=oF}er-3|GoB_x!Gf5=QdIepOc?d1m9*nc^;&b9xI1N`i;tEDsP zKaSZ1E=`n*UY3FTgQTY&uud}1Lc@`P!0ksm3i3~1(;`V7n1Pi2R!b)S^tx)-KCOYW zy$G9E=f#CQ`~;PTxV$JT1dm<2_m!>}vVzJ6d5%}^W&zy^<*{^}m0sxwTy&!f&Bdfr ze#&8Sb50iMKOr3562BpXQ&~1%r@kAPPZjTQlCGMF&@&RCag9+KwK5mzLq5VIk{)bf zOLd0b-_&tzy{9-4tidJ1>c5c>_fWwNc}RH>KIkIt34f3HW}0Ra!FEdFE?tQ}%oTzL4XxD3k66-RdD1czM%jcQR# z%2GxZTK_hraF$w*1)|{jc@0U09)l%@S@a04%G1Hh+S6MfP@c6BIP!{^pg;E8;t%IJ zZ~uhmwVpn$?Aoox@2}|zGiiD}p|%#ZBqspWiPS_ zkY4m43MXL$%DS=#2CMjRUWmky)i`-9>A5IDp{@D)l8u?ZG59>_-20gv2}3K2H8#uR zu`*H`XMlu})v%H08t_4B^*FtLbDQ|@Ezs|}uO6B69gTHc>flzu$;m7qE6%47f;VEj z#F+Y>5se?Gm;3D1)`3S4Qu_qBzS^L~@@Q6UL=&vt*$L>QVk{CNxI80>f0i=uRV~oy zPmq-Pi&RAhk)Z`nql1uL-tAG zK=xkG4qC9|G=Rg%e-@BAbsRjeWW=xU68p{RQTjrgFdhNBtP4pp2okK{%|EyNKHS9mxWb(>j0ks>qM)zqJq1Byio04+&)_g2)I zS;8Bb)ryL7EI7;FFF`^`Xwpj~&^J(M+MI@M#P~$+1`f@vj_Y{zVi*#t|SAgE79xTXAw*0&s2YSERI$js5ju5ldW+ofgg?MvBto z!mgBUfzp16fLH=Wz`P~;T-*Jls*?5YU@B*pjnMfXve}Z8#F_FpYf7Qc?>Ub^Tx@q) z--l@qL9cU$szZXQ^U?-RerP(J9KiTpl(`nN_RFlQP&0&coVhm!^rU+QWJ)6hNjWUR z;DHO(|p&QV(^UzZ(xcii$`g13a?FD_wf_ z4nbya0`E$2V`jR^hUw8{e6Wzr0$C<;ZYgQW5w4_+=hdbeR>a8b;z}dPjox*`RBT>! zgNNmV7W=~_`@%6EAGURDi_1Gt2em~r2NnESkL;MQfQSgbqS>dA}##>*Wd zM)u4&qqMu;sq}O!mm!Au#j0o+hSZ*MVh)WF6Dhj6+}01M=^$L&ujGHp_LXuC8J3RZ zP7VKp4K;mS%hXwuw;RI9sNo$z^RqaQ+Hd0PU($X}{TywFq~VrZ8PP4UgzoSX1o-`` zk|e(lq1X@=&6?F<$aF)}|v>*k(T+hVSS z)I!n5KmU=oq2iZ$4UoQcay}Po!%NjlJ{*x1R(HqEu6Pgq%j+tMr>`MV9@{gU>40`O zPSly-Qx?Y;!`j~h2PZ#Zhke1#Z&l0fOKQ$MbV8-Pi8RFOhkRiO5pxF(P-S!;40>5v zl~aJOMvJUAhb=Mvb|`$?+mNKp~&96tA3cbH6-_(AcHC+%WHK-+rM8eek9TfSQ@j;IsuVB;}5y4GUDTV zh;4G}Wt3m4{fsWZ0fm&{%6B$krPOA$N~sDfA}=Cc1_7}GqSN9}a}7m=W5Wn8ZIh0T zHjE($XXEgO3ZdFw1oDO_G#jE;T{0WyXWlIR1AuVG3JRq$W9a*g%EM7!J`OAJ%WqA^XFhU$1lx^p3%3395XW29a*^ zU?$M7(5-cPdzsOmhu+wT>FB2xb7icV0RiUQuHh8y{s-$g+5AzsI^a+cLJy1aO1=4? z#VA<&&cvUmm~2^g{S&p>4ZpKogP~9^zM%WAfgH=%SnJEukEOD@eDI0-v>;^z0U+r8s^xczpOc!Ekp(+qR#3lC0 zt_t4t@xW@WL><2{*S_|unVthP*IR)rqkmt0JvQ2bT3Sp%Njj(A4Q6EAj;zDzwqb}X zbM96Z-i+O{Obn_d$0{bIrX?(?FpO7xys0r7VVqkd&^OlZ%z#Llc^1tHhXKN=>w&#V z!g|IuTLkl0oq|p=hWQAI?4mpS-7&Z1WwajS<=Y>xg;0hAICy`Wk*lDbOl5}Dnli~F zb7Pobo-zsae$sJ4Hib^@v+G0K*|a?nx$Yo&o7^x?(KFE*cL6duL1YgMTZk3j6_O-! zim4m+y4>uGPa1D9qjR9Jz$mVt!$foAyi?qh3QFg1_GH}oLtI&Vb=VOV~Y8((kI4R~dv z7K^dJvP@++74`N1$=j|y{3eY*p$E-pjCvcpOx4%>UYpzJ>oi#{;JCLT@?EAb*q$~G zx7f^yo&CA6Xr=zei5ZxxuBXm`>B;b>Ub!lfg6n2j8cL6F@4f%=E1F!kBjz#ve7{SS zb1)-qCiaIsgT^CyFP)x>myDWdm2h4e5_V1feJ_uT8^t3_Jc)GJurX1U*z?sfUCgamgXSB z%Wd0W8rnwh^t;%%#l=+-v`sS+D;E-2OK4Kw7No4>7;c1RmqOUK zfg9e;pb0H5N6m48@dC{+(8Oz(&N2TErw6fpzSwrxt}tORY}o`R&O%3}F_=r_mu_Ao zMbWMLhT%UKyIPs779WArLGHF(to-CXj?<`6mu?2_t2# z^2tj_gO(tZ8VJ0&FTS!Hw+%Y3c#g-|q{J~3V-huq7KWlq|9Ov;io7B!;{O(4I3sEP z-W8@E0EbVHG~bHns(7dICwOmPJ)I(V=JrXfLj{|0!qm!DmBU-L@$Ya}?2qrAL>W-% z6xS}oDF|VvWNf2S#=I2`#NfOxzp%$C{6BjWkNvw|pL_2^GB`7P%?*NFhQkHu>l;!< zY)kvi&7UQX*<5-5x_1npw}`vpZCq@^y&SL0ll-HPr}LGmbN$&agZf1m*XERHp)p=V zJ@}472xSl*G&?(bV{-jGr&vAb5}=aayX_urWMRszTY?jPf6Zwc?++R2)QCbZo!(B@ z)Me}P6h08rqQyrfr(nq4IG*2RJ`QRSGzobTDI&?8f7|ED^~I~&D1h4Pnpz=GB~?M3 z)CsS%0OA@YeRkXtK5S(7Y3Q`w91@cFzodWqvl=Uw>hn>#o4fb84H+eFac|B4)Ugm+ z5b3NeV!WzYwl!g)(Xii3Woi7Q`cmUzU9?Zfw>Hd| zE6<{cE^&7kNJ5A>y_H;Z7>N|N%XM;1+#9gPG33J;t>q}U3rfX5*&A)0{& z=x-U%)H7d2Z|sMOv>!s~WVfrd!Qi&&Ky|vAutFidp0fCla<-kwTiNzGzhH zOK8|CaQ?855K5cfSjtUoV&^C)HE+T2{WbVgCR|p!a77j#?ees&z|j0sWAK)A+nJIL zeoC-$x4wmk;^1ZUD#j&$sx1LCB%9lL-w(m$3dnw)f!p`!$ehjYEQC!4#Zk?lvlD%y z<#fr51Uibr2JFdYOm;2V8wD;rt_0b7SakT1bBkhjVvH_~bXv+{UiMrEwp@!wEs)6L zs7lLYmZHj}P9ho8WYh?Wn-Hr0eaDnQ`i73SaH;2!jhU8^qwCMwe5t~ygsq8K+%?`> zp%vz|RJ2WN+=VyGy$^0>hOagdG7kkSx-Trx*fQqIWY zTR#TI&bZ`YdNfm8mQ^?XSR6jq^dH4xpVWv&K9vX*FkmTJ)HW+oNE+%(qD`cBAg{C2 z#o9ML=vlwj;y|AFJmFH$iEi(11Z<_}dD>=|JOkT8R}^}{Efw7wB5I6KmmC9TJEELe zXo*j92UKZT$ko$21Z-bV-Vm7c4<<(XRhN0_%{m!M)ak-GxJy;&3>A3WUwXK97Ke@Y z&tB10iVs-zl$Zt2l1<+YNArb{Wfjubx-&K<74tOcA1N5f(^5=Zvr(HZ)uL~JXU~87 ze5f6S&;+B1`Mu^@M@ig$?CsBY>kPY_uYGpjm~0*G301e!0etw=LnY>%?=$`U(Mt;> zeLS5eS~Hqxf*u!!-dndzxnUn~>9N?;>-&%jN=G&x4vP+)q}my!rG6KpQQv$}i2Z+u zEV5SpoBN*?IWU4mb~`X%>|P0A7;HBFY3NV0c4 z##m#Ggg&ka{0_4tPGe|by~>J=z&+Di{M+?rY9=NK1h()(w&=}4QHPRWy8b#yQGq3J zH1gS^jystHJ%(xrJ@t>SY;k)`P3;tPU-!hXe|)d#3wpB#XV3w%>WeJa6qwoogFq-lm>E2*aaGh}s$ z2f=;xrnm&PEzk(!8@v|v1*?z=5zNCVV)50H&$^ESF9vi)r)1AkIPsOIr}#Bwh({73 znYf4-3H^LcBuxF^_z3WZkS=^{`J^e56bkWr)b`Dc6iMatOVy@#kBVa1xVc$I`96Q0 z^j%9b`;LL%d#|~_8WD|)P+R1ke{BF;V*4PB97%QPQf=KFaz;j_tv~kCvxOV)8b^)H z+bm>JF8mv@oK(x)7B(+E=7Yf)Mc~uAyEET0SS*w0cQy97VMWGCGQcsaPhW^tU^iyR z%z4`ZP;nDz(mEY{4*XDUt_1ITxZ170Q zcOK{Mzwa}e^R%}&NBmHG9T2lDfN*t=epDVqjfNWk(ce+f+@yGEC6$Ei zH@F>jg5E=6k+q2ef2m$O+d1{t7Z>NIGwF}q>jkfDe&2z-HiiLZF;r_f(z~(qaMc(| z5^_88nQcWr=Iet!gQ^t*Vkosm5!hTz=@V&j)B;nDiYiJ^8~-5qZu$dG`=OtX;J*_S zR~Z~>nAYk<^V?c!@7r@av-xJ6nN+8EH2PN1BCHA~ zCUkH2Sq$AjxWRh2){UL}=^18cI|pKTnt+4qodQB< z>`06rfge`z*W-whp)}w?Hxj?Ad9OvSPsqKwsr_AlRR?50#;t_RHw)*jK&69w)el2c zp0O8U-_G^bAFhAMBDwY`f1M` z(L#qRJVvhZrN`?jxsrg5lV|TRx(-1=kcEQI^7Kz3ESYJg03tM0ePV^q?QJwNM@c6Tcsr|@N=|Ea0$ zo`X1=BuQ4Fqj);$TW3k%T&|YPZa&&28J`X_)Gc`@iW}OMFqUL45us9KD;0jQBrdAUs;S;$d;al|V(cGz4CdVxNq}DMIF5;k@k=(GI`ilv=z9L`2q{!X zjvVZ~)jb&+nDQGno_?_@b}cR|!9>Y>vh*t>gJTY6d2A#78_!4`H2go(rP0 zByWX`bZ{C~Y@u(NMUHH^G?&d%y4a}qna^M$}7Y4yWxGOGO%EJV99fthj0m% zTuK2;14Ttche%Cye^U1>nz_b=<2!tkiLF(oUVa&ijX-9qgQeUW@1M;L{ZU8_E_z~I zy$bi8sM{OUV0YcSz`Of_Lv*cclafVKVz3`*6z|av3eAJ1BPwJ6*9%2gp>1v z?kZdUiAK%F_jTWLUI$!L?l?O*ph9|DMSHZcM;T3|NF=t1H+q1OsU7h2$fDVowReUG zt%()gq?R^|wnW8L$%GMlEPi2oJM4@(E@m)psEhH1U}gUH0!wfdkL!aT z<)Jh0ZR?Nx7FPfKPX6}!=Z$*P{kn&lm;|4H4M5e4ahJ4LADOa+eDnb!@iM1ll5!hk zJ#}U}{|Kfy=xn%uf_zM?os}eX2;xQ}R3$mM1Vo(u&WBr^4y=3!fXrphpGOW^8{Dy3 z+3cVmm_$uvp(2zh8!_v$R12`;A(bSc-YaZrW(G@dw}nD1a&e!Bf;iLzI7rEkPsyOp1AheW6D^4^+T+$E_-X5r*$!Zw2e>4O@=)g z6$JHqUKlIbq&A^dsk>L4dDEu5K+eRLF5}ie!O~p)v{DwL{GSm_BC)!s$?k^g1^W^V zEk*O1!jn`AJKeh>w<*C5-^cxg=4P!B;Lsh>x_93PZLZ_)@+@ZY5CUTRzbpW(kARg|Lad8yh=!_if7ibeP&qoCGp>th3tvztQx+(RWfHVX@ zUFqk&dVT?O;NApQRHSWJw9#jb_B{QJAM6xxYbqMg0~jBXX2zK)EttTEYBFKIxFdZ; zWT{X4EK`Ez=tnO9IU1}*NlSbINMs^xklPf0)?xlIwc%&On1%ddNElMc$I!R3-|ZS@0deTI;gf&33CbA~ORHTAw%FXDU0iyDB6q z<=Jih=VqfvL}dky&Ick|sNsfqjG=uVFSB{L9EOmH#D4saM53$@geO}X7^LdgfwHup zzUbuYC8|z~(7x2#RNJ-Nc$AaLC4alX%MsLlISAaOx@N$G#RxhY=hZJ5$fXmANd;;K3F29*eRCa)cL8m3`3&@Rd*~`#_sWcuUsa-eNU1l zSf1FP$A*8dISMdKoiGiR#h@T@wr$O3p*9flZx>w9(SZZ0P;jUENi{u6nvJf+bhE5! z?eL?F4!+tT0{VHP? zakj5hoHQA$t1x=nJ=71QR9Y)BXQ03%{GLUeIVO zDk*LH{XH#53%YX8udXxbj9H(&txno@9o$1Dx)H(+$$-GvJsP2L`13sF9GC*m28;EB zJi$%|P-ckFu-YDr`@>20cOpm7ZqMXU{CN+A@O>o`t(_}}DH4p<5KcW9@v3Ih_A_&F zSWTDbx0TA51f^L~cw&X}9A7%ic~pkWC)tM9(5O&X- ze&4s;p9QIb3q7*!s1RL4UwlXy^;+V*QC~<5R+hB?9skL)#i?y4Fdqy zFw^qI$}#^*h~If5>_X!Te=+xOS54t`aAx8#g*t0NR_2b}%MO2|FZJ7*B=K#RylTOw z1nfC2{-L7%r5Ic&zrhj6+iW&GRINVjznHnX#EVt}lD}b!;!%E?kYfIb^Gya~%sWxy z;67HNaAUU6Y56m)sXVE~h}nU3N~I~yZhw^7Gg1*ZVts;R(#eaMAzGD{$j6G8Z>c^)VN+Tm#d9~#s znyChB;Y2-sq_oK|xsm@Lc z5*yDXK|`|3N@aBKC>oEYm5X9OW$^2L4V|4!&01Zbzsuy^PJDZN6Sm8Vw>4GJ z?-gL-xk-y6@o(@voi8n(MCG~%yU?dNtP`NOg9vsbw5@_O65*A9E9J!bl=)>x1=K)R zoB-e4e*m%Ei;U`joXa?~IOKy1#a-@75=nHSXinQ&L*VPnCGZj=ikE-j^04Vg}k>BoyLTE)PUjP=^XQvJU~C+YQ$d zp|W~E(3?#oY>0#h1rj`reeR$%zZKn{x5%8Ct$5bfQ?v)emK7H-L>5S(>0OsL*p=a< zFQptAYDOSa#vFh2c+n}I0O zpu4>R`P?U*pIzZ$;t$xpE!Sr6^q6lf$HqpOnX_&E-iyd0GD>R?HT@bH4{1jxioRy| z*R^mhyb$f~?CiDGqN7*0%vjs+n_{x91M5Q#d78@}gyJe)oyIpk%?6i&*m%>Ou zKwxmY`ofHk-K=%qQx|4~GS0+HxO*yapZZwm-`3pPS{Pwkai;PpksnH}ZgXVdzivXJ8@}BDyWOQv4ZU-;zwwG<1s{VX>M5A; zS!2yRzg}M2lcN{uTE308VI5`ru&Yp)m#1H|ZPciB-Z3jG#_29qsSRsfFEwZ%!=~#iD8vsUq|$Zvr%%9f3I^4hsXxEUR+1{y)gLl2 zAS}g5qd!k@4Nryp%tavMFnoGdj1lm8|BP{H483kO53}v4=IL6=Egba40Gt`4ojVZ_RJgVMLcg zL6gB)MM_IeimeSA31349?BD=&&^)D9N&gDuxiRS?jsv$(+Z^>fp_$HE+@Y!_%^l{F zOF_+uXS%IP;oB)a+vRGL+4y&vh~sms!Yyc-#}O`a77VTz+!eE{FEn+2t)0$0xp_IC zt^!w&2lu(TxfTLO&EM^cPW|i3RcL&zycZJzEGSb{dwBmr=)d7Y)_a9${#A;}#*$k* zS!UD+xV5!#u|MPX+lv5Wv=}VS%VnN^9Iz-HaVAAVJ+BCF;@(qH>#r|;gpxmpq=#Wnr|P2_oGxw z)^XTn8i2WH=TNjC2Q5hpY7Y=$Mv3zlH;(veX%=gYNjP96DL?+CdbC(L>Zf?LfU47?5z3L#v$Epqq|6cHfc z39GuU!gc4j>cs4WZB*1RW2@}X2}iVyBFHmbLFGQj#`$@9UGs5sn~R4W6SYzy+$pvt z{*C=87?a;G+b;e?AZAAb6-4hfXI^YfrQ^s}1N-%9upMzjq5Mpa-A8mEo;mQm8g8AA zGlRIYb~v*J5}(QyZvi!P{>IQ=-YO&P>NJ8}d|6!mKkb~Im8sRo!huh&$`bA$F7vRD zk_c+Fm%7Y|vSp$81^m1zi8_~)ju(^ZvX6|3?<`-3qB)eXsLrUEw3mU9fwKef-;y1F z3#qJ-E@J$dyM=UJ0#1qVwF*70Rvms%6mZMAwR>hUva%P-uxHGWv-!DX)!PjFJnD~R z`&{#?)B^mSwL?91jd@I6))79=fHT61MuLgA7b@3@r-i+2R-3-!FoMdnrf?q9k}}E; z7VBBf5gZ*yHtJQCyGAfXl|u~akt_b&LFQL-*zDK_Y-8d8TKi=CW1+^Yz>i3k6Jq_a z{TycOtim5gWd_28Q#8L`HseZ|jcAlh7G@J-bri78Fg-0C^YBl)asz{e>^?yQ1_!7n zSG$3Oy#FKOy@mnY3y}I`M@8GgeMwE%_#u^oGmqC;K>8JpPLtGNFh_mU-+2(_Z|ZFk zyA`^a+zv=ESC&%!m>S5MXEx%m9mZ?5yz3J7DzXf!CnI@o{$BhYXvqJUz1eDNyrr$J zEI!IScuPLp{y=!DPc&-xS}bn*og^qR+x;fBA@OZ)XUDm1Pn;vDSL5dNaFo}YFuTu+ zYFgjQR|iRFwT)T7Z8XJb=)?aoN&0jz>f2sI%j`5uENX^FbtoRLzXsiLq7IVqF<**K z!DJ^F*@gM%WY+a>C1qvni6glb-XkjZkZcqc4txuHwwYznsIy24f;%Is&0qU34p)WN zSJL`)xpI_~H-nyGN_fiU>bGre(>f~gTC;0X#`RqvcaXZoQk&&t`hlXO^XvV5YTh7V`BmYve)|p3G74fxs>R4iz0gsy7bBZTsDC z{T(H{4=ppF?Ebb9TS<_B)R6elvGosHaX~@BbzTS( zb`?%5P;NM{7gG8$Q*tWXPCna?xkz0y)Wi@#M)zRNs;r!vuql2G4jOcPPS|7>y2tZ8 zd6xTOznKptsfA+J!SuUmJPd*{YUY{cv3uk_RH;5?-XKS;?TU>Vx7WDVz4PS!#BxJ7!EK9oHx*JYHg)lT3txwmGnR)|66$y8oKtqQ$`a6-|=)z3jo8$NhCLr8a zvYs<;tePqDt8&gv7zlNbSW0M4rezC**ZcH)(Eo5cu2uICurf zZaob?KHZNef$aa!U=CPs`hN|Aw+KA*zYbb|0px=TEIX1KYM2Op5M%#*?Y%dMM(z#?$f(hu3W*Fla*Av za^SAXMv4T2Mn?TJiZG{1tntA}WrKvDLn^%!j(M|$tVJYhdhpM|N zX+YepAYfB~s0g)?ivW&+4b;(?+Qr7&)+%mJXjByqG728dkOX$~IB9TG zGXXV8=|5%RJ_!RX93AZhI5-dp1UrJ89R@e&0D{3_4o)r(E-p441)GDbt)sCEo2>)w zKR8H29UyQ^J4Z{HE%gOQV-uK@qc8xc=^sO|u~St1i?OZ4pA&_fG7cAGI}RW_Cx?yA z#kel19UP^cah?BE<6lxcXt>%zIn~~I33ajjA4o6W{6&hhfq*0o;&d?*Imv&Z$`l5%G!^(uSphzf8ORi3 z%FkwO3<0xo^6{9l8H2ca*-TALAW%*|urb6Ke4*n7H#u7eM`K$E^nx3%h20Xz$(WZ5 z3PZikF+0TTC3t zDIqB#%_||!1Lgtpa!N>m_$B#y_;|zt)TR&tGZ@^)7>5x{8)I`Qhn=lCfcl>!kbqgk z;EFI)s4#&0@9lCD5-M<*nWZ)E#ia%U5^$)oBUBRiD-7V`i2A-Pp#?8tR||g{xS)Kye!4CiGH} z&V}z;JN>}|#KnpG;Q(Iz{qw!pJ3pj`Z%{AO&XeB7ou)SDTzflc^K z*v!Cud>{za*q8^1Q|S+;2n*=Nl>ZZIT$}w@czr+{%1j^P`KsaChzZJ{?dW^|D?cwYb#SzGag=UK0Y>MK28W5 z4-jI?#%}^LW8*P41A@R1P6&h(hw%T4Z1rzP1mT17@Ij&cY^Go{+=zIMdDy`GU`{rE zE+{V_KaUxR*Z6-z-~S%H{_jBFzrouDB>x%r|3{Sn=ivK4Bk$i@>OWf;|0VYRf43CJ zMbh?15ajsp@$rw(l7INJ^hJ1ZaKxod0{~3xNSa%mpN~_TkB5hglLss%!Oe+d0G8&J z1WNtyJ^m;V{(CCN%frXb3*_Zu
RY+xuZl`{dFLfLSvfM%TBATX~9@IU2c%w@vI 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 dYzmKvDJdW!E!`j`C-6vXluqTc%QEO&tDMkrD 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 diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/19.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/19.png deleted file mode 100644 index aa78730300ff4ee0e8314041cb52ecd6b46f38b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27650 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 I*&^V70D~f}SpWb4 diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/20.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/20.png deleted file mode 100644 index e96eae407616534d9d1f011590b3aa4bf5fda9f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35356 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�n 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

L8M036hSa=}xouCR^BR$hLBV6Wo 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

iu!Ot?Bwj!Qu327RTHZNv75*hu=*z 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 diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/23.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/23.png deleted file mode 100644 index 869f6c7b88fb85920a66fb94274cd984b6f32148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29654 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

BXb_!ID5QzbsV{AT3C*u`7+b% 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

fG>B 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≥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 z

-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≻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

$az4u@WAp7FSuGJS7#HFvBnnKE@EJ->?X7Sp- z{RN(88kNd{Yt6?dN3n6Wk%qOdjcrKj0};XH+gv!SK&LA^#`;A z5Pvc2*FzGSy?Oy7WWDPfDI;os_4`;)RAwl`J-3&uuRDG^l_9wNJqQ&9;9AYyp66d${~FU;zO3 zZ<_)PuR0VkI^+N2^S@62@%gXQe|-My^nd&O|32tHKL3vg@m)M4df_3!5%Z3y5df2y LR(Vq;Wg7B715?@o diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/26.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/26.png deleted file mode 100644 index 185e595563bf55700441cf701d58a66961be1bcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39366 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 >tg~VJw(aEKMdpio1PH!$Zbd;&eBkyM z0RbOwf1fvk6i)MxmI`LbA1;Qp&0o75qIi0jJyL;P$yX)no3`VlUw04#r(d z?AE97E^yvdu_FQ9rGjn_z+(U$-G+Xj5aPgloQx{2jtB`v@=Da8{O^Tw(SO(NcLFxW z?da$tK^jad$K-zM49sqvt+h}i7BVq4VKWIyKBO8N4J*0~d9-+Qzx$(L0`xNPo*fmx&bofiNicy7xKRMLd(thra;T=C= zH{!C(U-$x;92{w_UBQHDXvlt@mPqbo{$^WEFPJWs@!<6* z9!?*kk;5xUdt3oiZVtWGFPtPj;@MlcnHvV{wD=kp{*NcMrWy1>B&$Xg6b8v@oHlR6qz%ao{~} z)auBx8Yt~d(l?ZAl{fw2_kU!JYo2l#J3BjxrKT9G-OE^Q|FV8!F*DQCq;6j*f>D!v`O-I`&bGo&=2Dc-_rdSsxCStF?9oTJ z!8zxi3s+tB5}2HshS41dz7q|#Y?DJ_Dt%pIcu|@nx@iIdxskru#FGRuHn#g}=^qzn zN-q(bxEm-9O*dg=WE3vEou6(kaI$fdJv zBFiv0I}Mdm5q9o;67t0Yy*JPp+~(4QLXfCYA(kqlz3Q63hJXCWf217QU3>PzWtUzC zFMQ#Z#8^hyq%#;e*Ji8#;#2)!5M|$AEaJ$QO!=KM4Gj3&ZvOB^%PX8@*O*j#EuTR(k zgQYqLdtDLDw0CLi?COVyEK+uW6@-Q#*nLbVg8|Ri{ydR11#Y?J575`!4_Ra&CO)-Ms@V$-gi8d`q~>Y@H9(cCJ;*u7v< zeZF|#iq#SXOy3U^@%W#zwdx5oN5m6tQa4NY@jfI;hCs}J_Ecu(@`oOHklwe9G24yn z*Hik9A({}90=qjP{;EAs?wmu=^|SW{k5D2JZ@gMh{d((L{~q4+p7)a50$a5sAYc%U z(s$A+Ff9fQdG*5qEBFP$|I`G>PgLfMonIAGf&PyE2Tw|@y7;jz55MheU;2+H=Tr0W zkMDaAyyb0ghxO~%k^dL39r}9RK`vywSZa*d)bX1l8=jq=rPm{!G`+2c{;*VS4}g z2irS3N{rv56bE})O&@^(b{Z~%#(*5fU=aM5dSH2ZTO?U+55<3D)YkV~304v^CN9UrMuiwzH!c?EY6v<@x zgvlm55!K10!`v_c8GW+>>(lo!&_zKIbUU1X{(0<136#R4lxxrz=)O8CME0^l{Z96_ z=Lv#%M36`V-*rjHYu|q@yz*7Arp~`OIGt4=nStHjhp~aI@^QZ|e^&5IVCgzM7foS{ z6iO1F)PB-8=W{dP{Phh#d&Awg-0=?=U4F^g&ws%caNb21z$A*t@7qsJ3=uf6`VDh{ zoeT)44UDs`MOKNRQDMIq*{%fzVw~^ z0Pu+E)PYE}wU%$a^^cUf@o)e3Md}e&V664P_MMNKW#emY1AUY`ekgqMvxP)O8C1(@ zgnEb<*IUK6N0Q&0DQEtM8tQoz?fe49BQ)55-~gO@>Z!D->FnOv85<&XJ$C%*xS%LXx+zj7EdSB#hpv+X3!WXVGCj{90;*pmcoJec-f%~C~y-fK{y^f zW9#ttD;}xmOuq01FM<^VD`5MRPf(3_PqgD>%Q}|rO-;@~*dMvKSgk$Ja{1Moj_Z0C zUBwBWYg>mZ^i0seV{S(3M43B>%Z-R4l@-iR71I zWq8H+1zq_5Z9o0ZdAel1dSLCU=MS!4aq5}po(ZR)wHZ=#DaOiD)X4*zKw_uemX;)A zXm)#YRO$+cV+6KT>_R!Dc59|$0R`+`^^yy|Zc^Dg=VxW5qTa2sl)vx{+T>kvaAyde})X1cY|3`DzHx^5rJP41{_>PBxdg;>|;-MQll zc*&J7f{ykc7@ruagQ?Z!W$rU%Fo#?Qk;9i zf%kYZUf&^3*%D~5nzH%PEq}U~-4q3u^$o%$mtFz~7(k*gEh>ff4Xzpd6iVV1XEV?e zPTo3OOMlEf1gCJG({vRQ$s~O4v)41munG1thIWujKHKu3fVG)b|K1P&ZFV!2Z`GPr;=sxQs8tl0pPOfo zIVhEKl)Bf#?m?8XVLLyTfkTk7HSBmSFR&z4QSHvUrb-<}@L`M73-lB3eRW;w{T9hd5W8zEIYEVjA(u6tl=Y7#bWIt@N?-F0yChK(?v zO_S^Cu{-bm+gKz%6bJ_nTQK5h3luW;R5k~gc8H6H58Y&z+2~+$Fzv7)7L3BOeBYP$ z&J2Cq8)9?*Jvli}t{QZ|jgAkKPR$1-f#oY)vT7Pf+a~^BQmn#V0fU2REDjy5-H))X_ak%r zCO$X0b7-|C30Jf)>$#}2zwe^Xj?QHr-JPUYTw?&5&lRX6GrDvl;V22s*lo~7x>o_l zh?B_#fvb}(fm>AsKRY6C>l9Q`i@A`7SxDExRRY;BP)Rku4;hsWtN}U}$ud$~bO{u& zr47+PJvufHlM~}q3AujVMtJ+%-v+OK^=k;6ODJQ?KL0z{|Ho$vGnwz5e8$-{Mh*o| z(MW{A<*`S%Q!os3feiz%nFccXo11G`P^S~kfSy?U4~OSQzl=dPOov-E;TbDb)Ec?R zPCjK5Rk7iB=;&*|QFMH~c&**wO|A&R z4y2o=Hl8k}sQQ!x@9}aqEUD#cYcg0qiMH2Y)yS$za?5h#cC_F7N+0^w6$Q)vR5VXic2c z*4gpGKuhF;j?OlSB_q(%(h7w_5hlmSK-Y9~DWLphJepu&9(5^&Nd(O8?VU84kxdG9 zI*8qxoh>bavs$CAwpRbWQeli4TN@eKMx#@wGc{H_;^c2_X@~R9IUmkB=Uh1Zth4E} zQ3}%(QP{?UAN|MI|LyU6ANt6~GfqEjFe%O!p|Qy^c;fM$q?_!pcwIMPK9_=MAOs<{ z0MIVV?Hh%;pA7ROX-hdxxAw(?F9euSYsnYYz&K#Ote5Ild8K+7HcIe z#c~f-Np?6lgtt3%vrgUU7V_71Qt&y)$LoF_Ro|hEq@vD60*MhnHVm)?4!qAe<7M|O z5)F$JxyjdW-?ojOI{WN%?8>3KB6&O*`4R>|urHdS=+GK!h1OUbFwp&ZRw-U1_=HB< z4YD!^bT7X6Qux;oeT2Yzc5arAiQOt>r^rUADI1AP0-it0-WoQ_%D!Gm}mC%_N=N^N>PCVEgDo*c5e$Nq_Y_| zfg=!RV2nAdSTz?4+5xu(_klwsKBvIN@apAw1gQAe%y9rU7cwAIoZ}5mbLbO9f22v$x9hm!HuU$DIz_}C-~ zM8eeU5z94KcMSeyraJ%rs$M$_w{kd$Yitrn*vfm&HLr#@{J+0p3?>aX|LH!`9$33} z4cnS^Qa~rhCSR>mVNADtm1KxFfnTI*8VZr{(qG15@u)TV8!Z{uzUBDq)mcZBulvj z+~@3-i#!_NulIe9{}^2gst`m?0LFAkP>lT-^atUT*0nF% zn;ZUe&8WSI4SY72qyFXLIWsZ!yNDH{?z8RP9X|KDo-McR+xFylw{Cghr!5_= z(7CLa@@AWDx$!vYH{N?-FFgG4BaA%w32-&5a^&T=R=q8iWI?G?f=aDSKH|1mE1a=% zVcDOF`9t5cP??L}ER9W)L`$48s1O+JcvZ6oLD8Q+xns>6 zCbARB>B?O6vQy6URcFiR-~9cbovv8g3rxTN)c%1!n46!6^Dj9cf@~6Qz2m;G^>_BY z&({^#Q5OlDXmYCi4Elx*ha6Xj$m9FDPFjEJrS^dYykw?mSEI6?tC z%rEu_Z5AAsgJ3G^cy?}n=lJm0mh9y8uM4T{jxb}=@mBj$nJ6`7jTkFHpxF839=QL} z`$&*!pl3BuxbZ10-gbGhK#Uw4kmf5nwm4~5$Ko+jE#?VuE!!gp0v04NK-;^2H>Fp0 zu-)6t%+#W^v8UobaJvGURiimT?qn_C4#Fvpani=zjM}Za>zo%>jG~V^5D1ZLL6D?E zk}VjDabg9rPrNR}x_Quu!=RdCDt~?FJ$KVnYfoAW>(;M>1N%qFFV-4}e@2r08Vv^Q z^ouTnRyLWEamdWf11kUHiV38JBIMXha`-t$RUhe%cl<~c#B14zK4)m(flJ4xMhCBX z?>|o-cx1*5G(`za=V$(QrZD$j)znYw?(Ko75r#^sOzD(@eIoQeOozl2 zt(7ZR!p@yfKt7)%2JUUEez-KSLn)5A0kqLAg3U=}xlSIgJENgl$+7*r*Ttl7GP!J|kV=sH`vB&7CGtW31;?WpXl`>^4L00#j(T&7BPKlxz&=O5PXqD9m{S3Q@7)!wgHqq8XK1goQ zelWJ`xv%J|poJ2 zG6u6^3_QoDrlF^28Td0k2t=X~jmMgThTFA(9YA*P*$WRo_z(qn(H&;go|?c6j#VsW zjszk!52mtHZ6Xnv+sS;e!P)J5#}@Ae2ubo@>OH}M z_ju#3|qs-56Qe*U_itCNyNW#3Abz!r0jG1z6%!-hMZac2z|Tv0e; z!6TA~WS{fMBimrlo_&-{oM2$L6i^?Q;R+&z{9$$+1;%DaubRrtytk;8pBG|;A`wkc zmIQtmT{B4Xv|K5X1gcXejaz&ya~~cah6^q@AJ(s550g_9l%Cg21J_&9>jmC}TtF^{ z>$n!2a&C9Ov}VU{?pqe>MMx$sfLPpu{SOndmic9!%b}(z9C(kbtHC9qX9*T1gqO9- z6+3s^?b7@ER>11jt02p^O|s}ip#C-vc*_HlsQ46#M<5hsgSVz~1mbqwOs2&;0{iz* zQ5iA%cP&tl9&jxia3c(GYm8)!rAA*hott@2)le@CMuO1S)eixGkf7NlH-}}Xq51se zn@*=Q1X`F@hCdN_Q6a8euE4ntG@^KZQBKy!)pQe({ej@?hQ;~ zi!kOnG%^8UGe{XZ=x(qJJC2Uy`WbkJ7^otF7)wvQb}~Qx9>r46iLPt!~)i^lfu2zmj3fbH}|>cX;X*Dh*Fv}{=)+bNz5qa$N%3tw&sxVzbC zv*4MN{^fwIJ1~a7JF0PuT?W>Y4=->x{Py+MTn=-_3=Lh?N7;^c9s`pnT2%Xl1734c z&oyjh>67>GJ8(fZJx9-Aw+Gx(Vfm)0OFs+90TLN$GBYS8sBgt`*#G!0US-DZm;tUI zOO4rMZaxF!(-|mM*cLxnBXGoS2}j44W$=qKl&ZzpRBq-S`C8!(s$iZRPb8r)*+xE7 z8}zV~isss?o3t&j*A4;ppTy{YsaPQrg69&C24P}y0v>(zVK#5pL2pkVtXj2}^r=^^ z9wZ;E^PSwT1FycWm$5p&UG(KTl8#Og&3l|?!0Yw%x-%ruMS<0c_|jszly8Z4lJcF! z8Sn8m-PIu%t9CTeJbm|pymKXB7#OQxHUye}&ag(9H3U4XUc_CbE@2+1?7X zQ_~=aWsV%&o-*KKjYK3Iq>|&AnRytQn5JZxFm}&aqH3)B2U8-7Qs znt7`fkoywtNk~LnNC$#q5B1K(&3&y7^R>ZCG_XWC0hLOPdJD>oeRp?v!+rPN2UlMC zVgk}LH*bdF;USosnu4C5ZgN933wk+v!ww5|z}GEogFoGF1-Bca+3()=LGDyC=X3Bg z6WFzykt@AgeL@SAp{AX9r0K+SHMkm2;^3?5XV`&J!}|D zr^6^U6(aFCboBPX*nwdVyxg7&Ad0mLobSLkfF*viOm%HE-UXX>g!H)GSLQ$ek#sW8@Xi$8>Aof4IHHh)N@u{*GS z6?FD>L$zGxpu%lQGcj<*#tVtBGu&zGUIv;Rf(m20s%8?fVL%Pp@8JN&$-xczLxAca z`C9QsPtNT4)vmdHk3&R$TSs?KWX19okW3^glcCXR*|ZA?OaedM1yGCkh0W5yY&l62 z_Uze1fA8t(A$I@@v!i|Uo8N4R#IN755iY&-Qfg_15|X43OrUx&=puN#3nCo0>Zrqc z{kLA9v14A11~1!ndcEOsOQn((3`O?nC{Qm5jRyzb<2CrT8a+e{CHr!{6SEU1oI$c+86X-n%o)|#Ghr@K6iKaITqPYWROG!t%-5L&{ zV_F=Ntb8W7N3@LDTD1&{QfWN6tKoS0cvX9qm)U>$a^}pL`6! z-9AIinRUVI!%ePQsRVrkeYRwv!Lu8lt40kv!35Q)QSk&-UenK2d$b4QaPv45k= zmsu@RhJt8GM=Z{QItr-ITdWqlr;D?HQ!=V=R|I1fW+-$;6T}$tP^Muv*@g>^&c#Qx zU^IA@<$BnEi$p?@&1T@PyYGanUivafw#2E$(!js~+R)i`#T0K%`#3%d6W~5@!ASS0{DFan9rn7MbR3x{^bLs_ z0E)R146IoNr<{2P6qP*Jxp@u&EhSymHER(_eT*r#Cc43r{Gc;d8i=<;AlgEJOF)3G z2GoK$iqDbRu|jeXs@3wUJu|z%z9+MPZ!K(IpXhE|HLz?D+7fMm(v2hlW0>Fsgzbmf z_<3|(9boBZRu=hkbGaNvj1jLT z*Tc#cYao-#!N~Afok7bD7+DCux!LMsF!lz`npLfN3nws0=e!<)w@@sAZ22C*{)*H! z#{J-o_xPA<+7}nY8o6p=qp8^gvX>1QN?k$qGF`aat_nUf_DbcOtu1iM=1uUMEx!U@ z2>ciBK%guDodK;QWYihAiSW>5&V#X2Aq2-$%#3l;#j0h100iS_d}DX4WcMFKW(Ei5sMxAeAPdPheG z^(+BXL7~*>FjfO@t5yo2Stq7eitogm zG&LGDx>zA_a(2y-}XB2Y45;S`Rt&zXzuVits1XQB?6V~K68 zs?cjng)&_h)Z@j}F$CPUwsyGvjyquMV_V_Ei!Oo-&c6Wq`}<*bc81i|&OCE7%rh_^ z85x0GHb=l549S#%fqq~`!OqVLeV%141k9ZLU$1MSnR^0%VotP9U8GeioIv5Kx$)_J ztCGEsN^F-9JVEtRPB`GjL5&QB-J0HPA-e&e8ys9ggCp*ml?+qZ=-X z@P@a&1$KStS~mFRAs$O`v^sHlt?f!+la|H{8w#;t3m85hwD+%oUIw~81`;hn+-BP; zOUP_dqX5fgkM5IfKnwaqAhXY!ugss3RrCK)7HWSh1${y?+{&1*+-M>xfDN`{L)3q< zIE=UF+0%2UkY;K9Gwd>A+{&W_BC{tU$Icya`|Y>Ez`!7Mb$5d$TF{}j zLa|hWpZxSk41{lk^UgaD&fI(^1>~?nCJOPaU3(Jgo{Ue7LN=Fy*;0zGJ2o0X0eSpv zRW*pUdkZO=^>_2K_Hw!00O^ezH^S8HGzf-pd(a;RLon$)Iq*IMhN~QI(+bu6x~bVI zQgmFtte-l|YAKa{A>Un+-^Xsq(KFUsrAFNd-u3o(!~J(}q18VYiEs=%!Q2Q0H5dg) z_dzTQWu*$LUxrm{PG{?~2G|HE!~j=gj7(<_)GiR8#tsK_aM4FRIXim(L}C12Dn8|E ze>eaLxT0mJN!8REWfY*Q7SuZ_G{A6C=LT_6n%L7vUMG=QAa@CZEsEtN5^;FZl`mn0 zr48=8|2~))AE$zf9lLi^M~qGVgZ~q(X!leMimsoq@t70O)qs&^A1dtUH>5Kea2T(q8?;4~4D((=^w|UMDX@bq z8A24Sx6QUqd%r-MKxxffj+w&{XRDD`GbT26U}meNgjBAV-2Alm)108a08$ z1Y87U9g82HM!^gv@-q@3TQc@rJ7w?8o)1(6<@MOhuPxL;*)g?>LVjFq7leyAo?A;x zvMwnt90aCWVI@6*suXExZnZ;$(wHe4STKz@pzQl0fD7L zObz~%zXJar@CCqEtlrS(Z#_F0^uM7NR^D9Es-Zi#+z$6YbT6!4wH8j^cnb9N^pabl z#^z%TTP8&Yq0E>vvSI|!5_Z5K(qxMSVP%`mb`?55!;?uQ%K_>#f#-|g?*GR@;_gjO&WA1N%=s zWu-Cpw)y!K^fNHWfr8s8yz$(gWq^xSQJ9T@wfyY&XiFy)G0C27aVvrZ!8ijr?EZ|; zIV|`X_yg^34-$j}VNk2J&{%%-!&CbFheNRlB!aDgZrKV|c?l%{h>Q)JbZ$QDOc*|J zfJA9pTieO~u^7nR!29%)jqJ)bv++w!(I7RKq8agm7rqcSopuU!zu3CjOCD$=QRwRAlMDd8crV0R9e1kvJ%o z0%LkM$QtaPVH(%53zFIkIr?!yGhr?_`_|dw?1xMl23y+Oh)LHNzz7WVBax^LLJat) zr>7w156y2_zUIGs<<>vkpV0>93We{66R~i=^)b}C@z*!P%=8TPlGE8rkDGMY+dmWvgDgAl!}lr;*D#k=nA&hg7!qm zuq;dO&XqHt4a=cxLW#(0s)lmW(AY3cur<6Ldu&u*MmXhuH#D zQ!50*cwX-B?R*xx6)Ln-u*j9s)6++;jPa=n2!j8y_DK5;x?p!zK9TLj3$BSiFmzp- z%gk@a-E{V3|Jm|?u8dZfwA9xyY@nBvXvv?p8;}FSq@d` z3Br^&P3Crl=7kX$acc_K6Z#j;twG{m;&80^&; z@Z;XTy}bhx$vAbUC>0A(o3HF|7h>N?TCs1Zr&8GvJMVP^8}BXceS9Tjf1gaolCF#e z>nUC#J8jI)92gzOI3GR%@%5;=i)A~N7d-_3UHyTSi*(A815~`mj$*D_7vw=~8Q_tQE zbJMeIYr}OMo*ADlx)2Nk5cJinfLZ_%P_fq*ChMc147wMvOcz1tc8J@;|z@@~aGjK%ln`|~ugybbJekrA4J@DWIq(T;p zg~1<;FfdDjUo{`u(7OC>U2V&@R<$a9mm`@QC`yAF1%7s2qEhT(wOV~RX!t%H4f!v! zB=d3x!Y|BcQs>OfPLTL}kO65p7^bcl0d@~jZ=nG|?B710ZxQpg3oSG#6cs2{%TUbb zvTbJUvP398qZ+C$5X6D^nKhklPsV1(*U#1~*7}z9(yDLi){JNhk72ioV>1^mP^t>_ z53GRx6)RwD{{f!cdmPR7!y>cvvu#Zjs%&UlIs+tMkZp%;_W>0&U<%eVAX;ycP=0`f zZ0534mrv%#zNkw2rU=_I3zl8wg^X-q`2ckFc0($Yg5k&ZrR0kB`QB*9|FpEU6>;aK zVAT~HlYX|vpP0_WY$^@$NVF0xN54|4R6Y_5)}=_TI_njd)?hdo0-*ugSZ0icK-e`H zxAAA4c{ZGV_BoVa`}^Pjjv51C217|HLNT3!-eB7omv{AC8)AT1Rx0*_cNF8BQuVNn zkEJpYHtarxny^K(#4TOXu8(Jh%*i!N-CWbv^A$roJ)4?eEeKKzDcRTuV;?p<2&l-tp|OKrAl*%e_r12_$PfiZS#psE#a zJ?nZ2Pkkf))C~cNO@3i`Zts_8OEd2Y$6}1-#@QCWN&(*9-agVcP#H7ZwQ~n3^X30- z_qTkctEXeOW~#Iub^=DIT2?NzEpw&-!7yWZK?&L-9bcKK4E?JWHnIOTEace=Md3z@ntW2A#`1vOxf#+wzunsF)&-2JH55FwWnIGEUT)u zF7{kZuP9M=6?_)vsjK8pM-X~r2TLQe|$#R)?cU(f&8_odWAwUs`NVax@9j&*wS2OOcsj_Fm0=^cYsQNMM;3$Z@--~2(Z^0_)M73 zOhZT$Z(7&A=8diKwoIAL8DyTvV;4uABCsSIftZ~Oc503V+2-|mT zg|3!m(7$XDGT9VWrlBiBt<_*^d>jT6Jy2$g7j{QRp>xcX=D_>s^zpKpS*Vn$)lXMf zCj;L&v0ziPwyIbcE*|^In9rABaP3Ku>}ZGa@x68pIh(Y*uzfk#;ORANPva9 zPge2^&>m|47k_D+F0S~5&x*$B!8yN;$)U@F>L zyI5IhV!9Z6J-x@Wj^l{szH7u+e<7Gdt|Z2LSe%m=k@WDq*HN{1=v=av78!ymh1=Bhl~e5 z)DDb=#4s^6D$%x=(m(&AgaJFY7}WGqXlQ!(7t*!#KLjEnc8?Xk4( zGYwOFN4F-;@H>`u4LpSU59Jz`wF*tyqd?lV24j~Pj0!fKCU^}x+PV+S6lcGe&86Si z)!qe~syETutv}S*^&Ehr-}L4y$rxyZt}8;?ASLUD6NXeTPeA} zR@2x$4#DbG0}zS_VaF4XgORFzxi{ST{ul!{#Z*b1OZNMh-l1WO^H7i)UYagHC5}_< zKC!WX{rm3UfB!2>kzySw^Ot!IaV<{dK z$yP*Vd4HbgJm-D?>i_rm=l9&_I@fjX>%Pyq@9X|uAG8vKMI@#8a}JCZTi$}16K~JG z?>K}iI3@GI=z~M%iH#xm+zTH4b#{1;x1#<8P0+yin+{$bP=knaX_xbqf}$L(r|z?$ zOZ4vRZ({>s*|R(@4xlsK>}@^`k-A3`*3AoCp+%y5Za1`O41|NR{)RMtCzaa=7uUJ$ z_+^ZgV|gU)nBoAkyz2o~e_{vz6ARc$tEmRq;)s;e8 zHkrfN3;g!?Tj^4X-)Zu`7Pbg9a!Bb~CCw|=`p31Rr%7a|gCJUNCvdHTuYGIKIMN@PuE(}?4fTX{gpsP6Ri^qLAy z%$|gFvbgUB9yv7xKtzS;ER7mu(o6TqlCl^Mp{gZa7gYSf4yorogkK-gJqZmGPdbyGP_`D{g3i#;QJP`f=oN4*Wi*Bc%F3`%y!HEVi5 zbiebARCpq#MU+^hbgLEb!H=$0>g*EZR^ocY^uqX;>K%KCc_z)t`M>J{($Qqdmz71- z8{b~TcgaJfNZN{(QFgPCm3|6l^++%4e1GZASJo`XZrtwm%)GIZXeBYfGZgz%WFFW& z*Qo18Xp(9h&u#6wZH<9~Yv?q?8#Q{@?H=M`S8m!zL$eh~BR~WU8e?KMfha<|cG-^mm5ED9<_aaJcmLeK*y(yWdkIplg z`y^hyPvww7{&h4d<+y$S+gwmd@@W?HE6(qqPWWejIGmdt?P9ICmWqk!aU-`pd4L>d zqlS|iS>^2P>^hdan-)v)+&ur+2 z+uPa%*f}MmWDAQg5}NdwarZ+{oqUeofpD68${-lB9q3y6Fku|rKGUIb96wh^_Zl6? zws&GYqc3{BkYN3x)$TYED#@xtw1|n3aOE?qZoq6dfV>~4E6DU(iW6%+t53JJvEi7@ zD*x(A7iU*BmMup%r}Tchr1(q93Sml#OI%mcL3YTLC1=_d%1_=QXJqEO%D1KJ*F`;5 z-B{rwMR?xYC=X}iG(GNmPDkmaI%ZD#HuhyiYzBt1Sy*ydyeHf>N7O9mkoG}ny z8_tGX9Wx#sg9i(x^Ba9nK3|S~E|b?5+Eia)9xsP#1ug*KeLe}-C`V6$S1&CkYT9o4 z{TVb}RzuR<+p(YSotUkPM-i~zyBG}@2GSjs_*>iC2A5x4xD3joL~lk9G1*K>34IMZ zXL6*>WO{kcf7ON0Dd++oV3^&rp#(7=%JM*?31!;Gb-~N-0dbW~$pK#7iyAHE-(LEk z>r!_3DR2K0$-`9nTRIsOoActVRjNU2WN<_vK0uyJWGEwt+n{FyMp*(o++xlVc-!g5 zb;;E~;i9uuaZ+In)?TelcnC(&ZA`C^WRqy1EwJZCrzr_^_AGuozoEG3Id`RVSdPs! z57Du82bU8>D5?zg#VXchrW{*z|28{|7Y9G(`4ZF5ern+BMB){GGQ9OP5`sy?A0sh%?v1ZSM zJcp~%SA;}@fTH{5jsRk!Zk~V5Ue>~)HT|Z9cSAlw-A27AzD-#0#PxxjgPm*IMM!|d zM*TYZS*FHYoIU0&H%BLPNC1OU6nG*@pMk{6(~EV-`t7m_oUGGyx;I|fI{!wN`zlw( zmy~7Q_$M!e=P-=2-rQ-(P0`Ft`hETwwK$%z5`(8re+q?^6+HTtmZX88 za}l48fh!P3WF3D8fuvl;IlNKCsz)C_SNWaeCrOt0XNnE&XK$cZ_u*I&eOh?;c;+1W zm?CRFhflEm0Wl|edR2nmk<|B2WRNqvb;<~VdakH^Wupfocu|t&l-Vn%?n$i&79FFi z%4sl2p$8uMXni+&A6J!U%*Q4e+OPQ9x5q33Xlp&nL5KqBX2#5Cu+s~yO7FG@i-xR) z!;d^}era*E`qJ2TBi$@PM51%}gPDQt7tdFv*SjbK{J-$C@ZH*N^}(?uH{Z*FGdc?g zZ0eT0AhN*p-lV2Mb+B=c1UD1nlqp+e-jZE*f8uOTI%&s&j8?-Wd<%xfN4Hf^E1%{A z>albspZ3d$xOmCjcVd*`yA_eb0I(GXo~U8=jDi@mbJ?|>@^0WIrQB61PN2?OZt5*Q zD1AbCT#RKjQsZWmE%{lXta3J)Sx4JL39bNAGo%fJ>b`6U-igPfJ+sRcCEUaJf&sqZ z3zp?y2kP?quz|EQX(}KZ&cWaTWRb-$CU$oxLaCh(sx-+O9XVC`TPlu*Kgz$`2Tzxr z5zcz`sxP=iXt%;2aT6wY3O0t4W}M*__nZO1#QFjuQMbg`6Q46lq{*8|@uK$E>QN;U zWPyNiNyGh)8i!^D-bB0-BTeQrlcrmC*48O&%yb|_eU{)1!TWAF;pwxYs_)kuCeH#F z-#{6jQ+-AuwnNU{6{oywM4#_Hl6?MMR&Osi3pwZTW+Aar3XySeY0RF<>yeqM36C|o z`n8*%pJMfgp}3n}OCy6k=fj&cW)3T#=BW=lx2kT5AOf)w3vL_(CWGb}=RV588tip@ z^Fcm$l4bVD1U-abgCAX3j};t9nk|g`1eP4PTAP5zQfphqne7*xDmI^{3r3;knGoo| zM4PtO?@&4TwX#&m4>c|YQfApE`5;8(-aHqUp37*P88|JzX%sPHg1`%u2pKbz{2Eq2 zvQ6d%NJDLJ5xp;~pi;bq#6->#7ZgZajkVD6H1U1dk+zaWGw^0eXBmAAe}tMIEviNw z`T^a=B9>QI&jir+cFW%D$Ei&Is?VrS@*Vw&ePEXII5mEPo^%@2IzBvQg&}{dH?W}$ zfaT$!Mu5K;$G~e`C9k!at9^nA5eQIPm6yE0<8_$T+izAY^>bb|r72X~Ah7G4w(>M9 z?R|x*o!xe|q}LER?wmvG5``F=nJKC*Iz62P(mKarVg7uBHKbWn5Nc$m+u%`;KTgV6 z^;7c}L*K;@zA~m)CYqKH*OgG`gNG@tdx0>yCTZgRDJnY=`c;dU#k8i7podFHdrv+Y~$%D&$GTTCEBIQ9paOKW^FqezmzRV0yY+DenA z8FCO|ytGo}B=}W_a$1qWB<6_eMed@zmN{J0G%B)_q3v&iD}BtYS8S|hF6AS`^EJ`% z%!H_s&$0e0JDv3zTkx@zo`xGBn*n&a^Gh?F=AC@2%@K(Fp2LuAl!FualWE*>OqQq% zLLNc0c$AyS9l?*t2?#IduJf3xHKj13J4=tN%1%>^5Gqv!b>2dpQQJ0dD8*HqCFuj} z9mxLzEg=Q;k&m~U$r4DsOM`B2U;=Wlk!HMH+Wgr$z5^#5*i&|op=V)Uu#%#hL@0#XtV!_eIwQqmwG(jp)tEg&6|0@4j4Al)qu z-yiS$+~s#;lt(UcCnAvgtuf6wgUp?XKs&WLlRJbT8C zleidzh=&kBz!vEOXYjDKv2zyk5M}yJR|xog+YDx6_&vnMT9irR_JIt#D(VbU_D)C! z0WLuhf`?y#0RrRV5#-~C!8jRsxp|;qZYY?C55yxV#Lq3n%ggZR9~1C2CsQ*a4Qbgw zp9OpqWwLN_aS#H7-QC@}-1)fdoy@^JFc=KX%?sw`1py;K&YpHIa1W53GxI+vNF$vQ zPL>WXmiBfGw-n(f_O33XOaP~UEWy@6MddHTcFuop6tHDr54Z!Ehl?9*YkRw{-=m#f zWZZzsf3oo}M>}hIIv~LsNN0OjCj?T)4Qc1X{Lkqc$bYWlKbQ^-|7)@-;;#ogxH{SV zUcD&-jI=@80?%*;SmpVPPX`No7kg(5dxyWK{FjIQ)%|;Y|KJWd+kZX$9~<$Hfi9M2 z|HCS7d;SYeq=)7IF!Z+Puc5#h2ua%`TyIyRApH+inc5>PO@;nqR*27p7s=L)3kZS0*?>`jrP zOniTDSCEoYcd|FLv;jJPb08$;goL{wrGb|y6E8O}H;5Ys;^EcefeG=#g!uV5xCMmx zxc?Xm(6co2{M%3-UJy4#iw7bkz%9fB{Vzj-OKJ*tf&WK?f3slkq-Ae!^N;JS{tsL+ zNJ-sZUl;?M3LIf+cMCRlCWhPN7gD%gxQ?Z%i-jl?usr~i|7=!9+L`}u=j9gsv;8+o zKzKM=A{6XgkWLOx0FSq~6>|CNGEkm4qK@y|~-mJGk;j}RR3$KssfZb(z6KN~Io1>m7(NM0y6)C^=Q$Y%=TN1DL_zzdpy z%wU3o5Cjqq=jQ=f`h%#u1@d;w{|Pl-06aWGynjLMk73UCW-jhKq0g=Sd zgD}07OMsYyoAE$k2yO&|8$kH~MQ8PIR|JCz!Vvr>aF7W?kO#zX0z-mea5y&zE+D`U z=jDe8nwrA@#ftv5^!mR8eg6h;w~+j&-2Wd@{-1;I|IG9L?MeM-it)c;@Bf#R0^b^K ze+WVF|0*B<_%8j&U6#ES56&)t$t3izWZ{2`#@qRT;qh-w5fcQDi75oo$tDn}Acz;q zF93q_m>~f>7S78nh!o)F7yK<*Z>ib;zcD3l!Sk0K`^z?x04$nY<>36M0F{KB|0PPr zAcBBd!p8%H@XAUG^2+e>%L?#tO8^=eCdeZp%MTU#y_GhW|C|BimXd);^GnMJ3UJFn z_+_Co(z4v#Qv86C1x%FT{TDMJ5>Rf43=bbSFOLKdlwSfO$p_^Xlz~c12ukzw!v6aV z34U2wh%BEZRFGR%ke{EIn;#}4#m5a0fXNC-^T_=78GpDG|EuvQz%R%rz$3s5f&y*? z2!`Z01DWucB0&Ht9y4w}2u#3)=Rc(d=QR=J=7I2lpl}2a2mzRrAQ()555xzBB4B0+ zK7La^zWkj9|1Bkg99AG;XHyoCIT=XezX6SmKl^A zVFHE2e=iCIh4Di{z;r;fARquZA$&+)IQ(z4eq-YgID!B7xchBnNm{zxnqGexVSfVZ z@0N<#zd+l+Y5My`|Ci7BJ>YNd9PrrRO@NPh`|&U56!`L&dyBLK3=Sv2d3~nxsRIRN z`9?unLd#=%tI<83MaOgHMs!tc_Iqu9J*#M*SQ-h=2cxN=-15;NDi-rNedjwe0qQWTKs8T> zfm8XEEAOVZoReAEZ0^V9TJNVn4*wFx{q&gGV)%#(`>ie;dPEg7^Qlp!Y);4~baduv zWxUOs$#0o$v3zj@IRrLyuFQVwj~6~IS4KlUqlf4esVjf6Jyq0wp!f)b5H!$sIBj9; zKog$CpkBnTgB=B*D*QQv$?`ON?!IYWx#TkpQan#5D1X%ZVgcmS#}<1o8P`5BZ}Ut0LmQ92v~v6sI$6{F9>%I##SmpJHREWPQuZY-rTP0VN%+nb|pXOg6zpEY=<$!OUEPtG|tjp67=ff|mK~ z%k@@sSd;UdIWI$Z0Hlx}8GcGJZc=;)uQdRNUmt^V+a#nzf77a1u5wtaWYaEgch;Hb$xT+z%)Svf+s{R@fF2wh!IJZPqVf@OT?9<;t{5A+Bn?M%pIp{eF zIR;u(heZ$$zihidCwJ!~>+Q0R60#TYpq+`5`vXrS((=CAClZpSICu39XRvABzo&5w zJEK9uP|$)C6LWD<$MmCk0;JhP1Tcdi;|7k;vr$l^Hf)j;!$@xYD(#;?*OK>a+P$!s zeipS#k2f9N)zQ;qXq0p9y6t&_mD%aYrw#he90i*-C?=szS1wcc&Dp>e2Xk_%q4=n{ zh!C6dOvTvrr=el0$ST=2@^ReFSMC|6MV1sTJvz6{rQ~L+bSzW%~^%O7a=klAiA8jJ{*uJPNb(}T$70dXW+wM4YPn{=* zZcd~bs%RtYpB_DrNLs< z!f3gha_$o(fu=40{U^g2F2ygRlG;Ig$c=N3{>}A4Ype0u_Vg;+Kw5RDY;JhpwWsN= zfD=#E(0Jm2w?L#{M`=BwJRqjkliUTy*`m~R9;xZQqIr{w+zmw7%+>^EJcE=WHpz20 zD=HfTb}fTZs9(nU#i1cMHR{;NUa*q*;jjnLXkZ89ON>7!xtq9wVvU{4!|g6+R!o2@ ziZ=a0O%6LygRpaL&047pS8iESy*ik-EDkDZQv8K7k{Gk_3!6g8q*}?OzuwK)LFDnq zcdV6sv+D){@xy$-`l>G6WK!#l-!l6+HkUXtC_WyYyQ2M&AfAWbWkf|+JrZe6L#3n*Mk&QW&)JmgkwV;tfr@};i%0?S{yR}r#B-}hYS%H{XR!t zYbk*)ds+K{l(bY_06{!xNsa=;DKurSB zaSV^MuNogFOfAK=*2N3CqPMKj%b{LH}VOKnk#?tr3ejGHENQV@?sJC8I9 zhbhME2c(ku9I=yHGpOH>R-rLLJeb7-Oz$3}FVSdz3 z6%@zFYAbb@ibML;k)wS2rzL#>>EdQJx$H#Lb@lM`g_RIQ*R}6e`{mrm;{;TPTb)hj z<~EEv@N;JV=`?2Z_(9rgbt8FF6RsUs*I|}BsNQYc#LFv{0sHRWuzpTe=ZUY+-0IhO z=F9H`jWIe6Ka(!^!o-)lMPmZ$GRzv=yE>SN59-FsfV798fCf;g%~(o zPaWx?y-p?{lq^BhMM0?Ouu|RB5@#zi(nN$W-6$4tS!GM{4Bjc>DZcC8DM9SgLWd`a zq5WT8nQ%xy0PG^cCAtI<2(52L#bW> zXE$N&cf!kFcon*>M>HQvaBPpoECxJ%4qxn4p%M2>xA!|t!;lDA_2f_M;~I<(+*upS zG4S55GH@MB`tH;#9tU2kT^i{T-smu>;8+i zy$;Fecd+GHf<*6$#}Kes2_AbmQqcMrpSr$OLzfH?Of{R)U@KXOGB@;G{CZwqNMC!g zW1InV`k9ktz_{sG(GzfT1JY*9C7U+#Zm^`f;UWG4hTg%F6T*or(yItvU$=by`n9gU zzRAt?Rl0LOOu^kU>dT356pvQnQ?BMqr;?^~tETg@QeGHLp>VAA#P|IC9D4HIx%Rq_ z8oHY9Tyt_Ux4PrK!>UuD{>)OdSa@_(Nm)(B@yEhp?ON;MRE-~Ng>x5<3w2=7mj?s& zQmnyN!Tk9g$QsUt3qP~~oX68OGi2cr*_-=O5^|@YT;)dr8qD*WRBgY%-4&V{6MhAvR|thVL& z=EJ0pL4vbWc3AK(`g|Q%v~1AX*_r9W{1+^G)9vZ1qmz@0PoK~pi)D2kiiC!R={5U_ z&RwoRU>E1iFBDC4!@?%_lt$?&36;9S_nTi zjGFeG)Y|$*1Yr^Gr5Bc%t=`|{e&5malUEVOnD^Wjio*Q*m8*`|Tk;?{_BTd)>IDnV z;5C<`_Ff96?7Md#s}7MkhRyn-zkIBXT_g}MDfPf>-hr46C47!Nkt4^zb+*vheLkGt z=z9BE)2VjYCGC2QXkiiW{FM$$MfO$?6KeD9JEKDK^YNvde7;xSs~*`z3O@YgIA7@i z)TX4QEG^a=#JJV>U7gGgR81HuWvjm(vnuz$@dFP1&6_uG^^0E(td@^!6pp}-iHq65u5qbjYiv^LbaUo^SYXItrV??+gRmL(=?AF^Wv3!hareg1nS*8)t(sC&9< z^Nn$Om$h~7D_t8&+F)u6%YeK>Jc1-#T=pC!fdUg_#dv6gV{S|t$-LrF{D(Udaq4*c z2sii1p~1dR20Fz7j0LnX7K3Q*m>|@s@yQmZjJv`E&0ZCbxYgoE8PDeG8@O*+5$KEe zkK+KR>91K7#)bS_A%x7B!@B)M_A+1n*rl>b1EiH1k&Xtpk3)l{mhTQ`JJk-04>XOejD(XGF zK?Fb6ZL29=7VRL{=kT!EKG-uveG-Y{L+kEI_4{xe>PpiSSaP|U&l7n;MR*>Obr|i#rh>) zU7S?7ZR_942R*%PUCy5uVkMgg1!}$#)y-GiD9S1Wd##&BEjzRM&YO^?FOVir>IAv` z{Y$}PvRG#Q!wxXm@$|H!W@T!?#Kk8)qywgmqERD%NBXk#RfdF)G6mbZG)IRa8}&5- z>O;53n|iFO9(!7=G|pe+9T-us_6}ug%s7QEFA2d7lP-LtvR?-ki3Ybz`(|9+W#8PWHcx;*Lzky)icjh!rZMF zU54AdK4_z$1*c?rWN|OfnRZ+?s@(a4D~4XU|BDosUcDPAP0-e4yRJ&tI)S-*5n4H8 zo2Y?LK;YO5s@|L3^-C@<=W*Mb{L(>T{H-GE%BJbK*xqrz1@-*mB7re|v(BRUJ{8r^ zUo-Zrt$1KlJG<8@DfiuW#nLJUM6*WRGgOPky0*3?;$FBFs@9L0xxN1qn6IYJnLO3t ziWie(QKc_Wc772`oB#5t<}N#J85+BmRR(m!NJbu2mt6;}Bt1_>I3pxdDj(d=`_oot z32#CAExlXMv~-Yni+A43^k~m0&B7iaoC@ud12&ZbCV5**)?$) zD6#Jj&P~Lszw&DAbgELU<(K9lhT4(PT14bA9ea@t5IN9dAwbI-I4q2VVs{|)SHgTZ zkA6tm`*!v60q)sJK9&aynk|~hT*K##gqyfcYCX-zZ-a?iW!M8Z(X@Y7-RWGHs=ypr zf(g3fH`jh8OU~#b(-95xYW&jVdjWNrN2xWSW5mc@&8~W{^{CwQ&2Kf9-M17J5mDPax>m5_uoblV(K&A+9=(E#LC*fv z=?E*0Q?cC$Pj*v1k659rbrw3qBDMLHy*+>(vB5;u#Nt!)D!e|W{C)2|)|H-nBblcU zm~ynA1^e2c!r&8`&Pp~jt}E@MN98)S!j(6>N_oRh<#DL?m<_;f9!0Z%OQ36k}nV$$T8qT6feKPv$L~izmxi` zN2jTEY3V_SNxXJpN2-8z+4xUSx-P&CH!(p&;2U2bBr_M64S23*4BVkGXfH9$U#Oy@ z$?(CI18G`wE}n69<*xuvJro_C*=DAWuCQ$(LyJ&S!Nuy-OzMjAYaHRr*Q0SULIn>v zx7-lRLDGszgSfm0XCb2u18%Ru!FSoRi9ZC#IB3}iHV8Y z`~5o&ueR+tl2e|N&`QcHin+MluYy(s~YtL9~3AS$8Q6-M+5 zPLb`9l_&ouo!WL$O>HTAfy(GVq7wAU@X%vvr+P#P3*U$lrLx<~EpS7!?&&zSB;zp|U)5!%*FgNDm> zEte@JoPx46^0KytxxTF7y8rNm%rza7_d^lPH)rC$0V-+L4ySvJF*LB$H~pMou=9kW zJ5bWny|>2=ne*Z6GfNooS>ZEq>>#t5txGC?R(;R`_9H>yx3#sAM#`wBL*oO=H|tOu zHlCK63}lLa_rJN?nyLtk{cv6J$l)44)R!_bzVDx@ zShsv?Hki$6b7@cpjfwcQj%zdR2l)3_C&r~ByNI?NgqtUl9sLKs2jBcvGKP^Y25ez) zd^;KZW*lOpTEekJsu4`}l#wMS=amYV91NcS{=sxGO@59O_JVY(wz^%-+cFKq>|sdf z8AbEUjyv6};wP4w9+yTxj^0D|LbLqu36;?ZyG1Q8FPkz{+0Tgqn6l><7a!<@%qhXaZy=Cg-1XjWcQ-sav5yy;1CB`p<(w} zRR?VZYY%!jV1AdB!tOiswF8ZqbB6^w6kiL-t5$e3S9yh-zcn?g4H@qsR%43g*)1yd zvsZLpN}G(M%4tLrKcKaf#9>Q0h2@GenCylfwSdmv#KYZfYDLfZy{3o?7~9C|;K(!MotyVhtI50x8hT0f<3AatZ?nf|J=BDE-A+ z7~2Y{`I_E8gQKJ&q9f$a`}}+o$@vShZ8zb>?5deD>(WL+|D(w#biPMVxSCE)Xu1|Q zjcLi?AlSW6c9tQ2i;&YFCrw>PNBkorBL*%*GPjp_ zYDzCL$D?iY$Jb2OtfenlyU2_FCk^Ac#~nzYfrF){9DXV>VK>|C=4Q#9A?3#<-o+CS zgR0|tqbWGwLW-F%*MD@q6kc|So_ww%uOeUYYA>A9RH}zjUpU4x{EeEd%Qt_frb*rC zO(747wD@=s^p5+5`_B1Ag^kipaRNAQ;24OEk124>_+L6UmPwkRiO=2L27f--sQ${4 zh@n&PvYtSAw*8cvWIy5ENJ#jev(RJGY6Q6wB{n;8jUsomL-5qbU9fK-`0!Qo6{i1r zIQTGq)gXpxzEu3g^Li8Oh66Bg34!~DPe|z0@43n=$nP|FZ_ayOCfUfNTXU{%(XHty z54_(>(G-_v-;{E8=1J#w3jb_3+p{xUzb_KI>vvKQjcE(N$NDBMZIQx%p8{1^S9gB? zOOVzhvS8w(`-W{9b7z8cb;p9Qb*Pl-M817?m2tC8@aR)`oos$Ko-wzonRRxTRrOmr zyiLgIjC)XniP=t2IpZZF*yM3ic?BiymF@0^<98nFktdKhiF_&YXF~1G$wSY<bHU-{ANXWr7&? zEIje}O1L51>cw1qLZ8DU!T#)6L<4(W{+ALf=7jrA#+P?WYJcgAfS(`i!850;W0&=9 zulD8#ho9;gu73md+uu}(U+~%0EMNk<6zZ}@42V9!%lgsi?MM@5JM+2RtdGjf%&g|> z*No@Q#oR!3(=mvgoP4s$R~We2HgioGL0CiwfXyAtEEn@OQL19f%*`%lAzo}e`gp|V z+lU3fp6(HB?+6|d!UQB{x}FejYtt5RO4iZd7_ujfEtr;(&wlthwj@1~_H{%{k(CBG zn5`Da~ zpO*Ilze@Dvi)6M2(IvyC$8E5n3$+1GUYc8SWlTtO2KlT@*;~sMqXq3zk)*xH1)*AE zlgrMU%P~DRMq~FL|6QdV8ShKvC@GY@h=0N`L(NT+PGB*Cs_I z+73XlX6coZgJE((0sF7*nXtrHz-Bp|Ehjs7vn1~&mHLF3Rdg#EpKH8em_IJ{7uD3% z3{T{6!%NFDMp>^wZlZj}?5)5n;>TALJ?1}7dMNB>Xa3wJAjyhWZspwsljTAE10+*6 zgUzQ0@h+drUr0!&E?|F^UYexS#94UDrS%G%?D_{)WQ1=h^Xf0t!IXaFy;+i!yJTh@ z&pPVDRcNxjUZiF;k8*oy7MeME%Key~n6UpiwhZJ2fL)Zk)6n{&h5Xs;=1(E5VAvfB zc2KPWm&?{W=A~qfKzx62623tFBasb#5^qeGEyAP?8@H~vG|guT?*74ejB&!x1*($n zU}BCtj*XSVJ!|`R{r1plU^U6cXGz8jsn*6VKYuc*iCja)FBgbBmxknq^qo&;-7CCL z?E1wnY+~p{BX%!nL_FdEn7vChF*OY~;F8N3nh$5qd_MAC0ZGEpzplDo^X;=o? zF96{zL-Z12&NgP>Vr_Fvc*wD}93>U+x4yo?11DwGKF6(gn#~D&(~%XNjXttUGPVVV z#o{WcI^RYxD0^Q8noeqgP#CxBYt_J+Y}fbX zf<37RP}Yg8nI33)q!Pq??*1q4w}Bs<9}Ou$aH&T?yVXdvksl;_6&DKW?s#SGFn! zRtB@BXrK-Opl6@eImv5Jes~Y*^NEOj+h6QTNl(w!FXjd8<=3ERleNyQ&pzA0eSB^s zjbVVF>$ev~|6oADg$1`1^SLz$FR~Y#Gfj{X(V(aO`uzt%nqOPuft4=|>pv$rv-Ej! zl-rXIX+JY(fw~ArPN7)KwBkO1|ZFo-iVBf zRRe++mzc&k=OBJ6S0GZw)9G+^JOR{qysUaXqADB>_!zl~7!r>Q$4nd@;{l!haqQ7; zY%&mwPF{J+TcyqWrdZFKyHkTL5oWtePM)j{buuM^_+#cZ^`-mo+Zmm0Y<6>WTpEDh z5pqsb21ldTAUGBHUnWYrEH~*%d`iq7;W;W;(A(O_%aDoGrB3(rUEF1k_>SM_T!f?I zZqg(tSwGgEGn02vp{h;`>Tnn_#`tzU#|6ZzX1yslP@H0W$O{*hkv{`hZhIoi1 zs@lb+wL|)4zi(D|z=KT>e}3B1Pq-6LDqS{JY+0H&j*hn+=x>pNb09F=}jdy_nC|Gr_|5lhoXj3&q6E(?S&Jp zvre49`*pdW&SUw9jJVk?ite7>!3+!iFk#hj+5uj%wfCmhF>t&y;PL6!KpJvn39G|v-ERYU@n1Wa7?n@*OMM>!UQg1M}9mBjYlC5mt3oG7Jo_^^25&^ z(%*2_*>cEim`}keZBAC@{7Gd6fE;CL=yS0ggS#$f@+Qa)uf;tQpt`Pb6PG)lPN_AaVeTy z(C5UH$8{BohoQW~|FGgUdKfuyvG1i-M^!Y8ZrQw%p(!He&89LbwmtV& z(Jo!ToYPOxkj(uVjA5umK}%$;?b^6+ZI!cie)`~f4r96#?X+J~csxj%Rybg2?~*&v0C}`qp+<$8CrPIRJALPw)4$rRTz-(Q0p!rq zU-l+_7^N1#lwe1iC~}z`rcF{aRCQ9hhpg`i_~93;)Myc}t1Tu5*CZsdb3wO{l2$xN z43L*+8uB8|9g4Ogcwj%e)eLX4tn-T4eMr^?#z5Vg-j;|jmS$J}zOOi{PM4#q*RoSB zM)2aQn3$Mqxvr_1*+bN=)7o}Ol#iHNt%2&d@2FN|kEX-=(jbf8tRKb*%W6!a9u}{U zsmCjPyJWSsH*^^#aB?-m^@QTPRZSmZN=M$?FZ=ceBhlOT;fSorg1RO=I{Y#^hYU&b zk>%$p!~G0>$s{TKHJq6kCsNzyj+Pdo4cFMkE;?55G$$A2KGkgKYBhV(0Yp!1Cc~=k5nE?|dJS_>q~f(s<>JAsaDA;kzu}e|$`^eCSCtG_;6&-_4K*n#b4t z6Y^;hnr+1YBT6yQ`f?>Uu!e7Gef;D-r1)o-TH1?zzOJ8L3PENJV0@mZ)fEw7^;_Nfy zJEIE=4ZRJso0z=F&SvcF>RR93HTU$qkHGKK4$?2~e6KP?{7%93%#wTsjZmbqb!`%* z-p%&i(B9BAlWC$VqlWgYA?uIDDwX}6sUK#N6i&@-sK6TGl$OlDR988;&5j2LEvTuB zT-jAjimS@WmsdVK)tRhZaCvVYGh{~qwp>^vwJ)0@4Y4w zFYVqsz=mz!l7_k~PU7)}a{Hs=bz%SGWtB4%lI(*TMV3xM$F5Y&*;9gz&R;PFN}Y~N zJ$lQ0#6 zIrM*4Kfm>63SbTwv0b@Rh&B=ZX1j_fFHjt>wPR2Aizjuk0?|k33Yo% zpuvuN#*0NHBHNDx6?A>GUv9h5*QSr#ftzV-{Irlu=kU?ZRX^{|fZZyvOE>Vk_yQ_b zqteD}_cDDx9pkg5!Piyx&-etR%FyI$*}B$W*&WNi%=a`@a)*Sf%+PiouudJDg{lWp zbI_Jqk>ykSUw03C*9XzbxS*FCYDs+^5ena6{H%pP2pC);d5da?Sj{(f5ohGa=dE+j zziKHQfQWe|q36`3jiGh)?gh^C&oj3A#pGjFWY!>H!{AO%uOzcuE-yvGi0A>=>*3iY zpfztpEBDkyz8q$rh-7;F#G&)v;sH9bU!VjOKl}VvC9=Dl{W&W-b^j_$sTU)-VP&f5 z+n5FaOn{15Gsm^z5r51J(-DF-Hu+!-obi|K4Qzc0UEqGyE(Fl?S8MQIr_x0Cz8dmSC1LSvrIffq@f4|PYNbB0gKjgA%xkEn+mTxKK0v zsLpc0I7j8vQwntZSF_~L^z<#N_3>kEms-Ab0Z}12)~xsT&(qVNwNE}A4_K^Qis+zN zJT%SI^%F@Rkn8UKX};rir~)y24482RWBym}H zCs2|QeH)g0I;E$;l2X}Asy=*NWBFX!-Vg^T#=w_!=lpVM@lm+euKK+JWtrUi!#9N` z)v2TUs9@jqG-Ap9&71wJ$~2CKt>w~oSHtOTH;Uyr%%9iSeyM#An-7JX+uGYPCXD?> z`^@g;kpfZSUaopTDGUJKuhgwW=C<>_8`6BHB6gTEPzI#b0EPP|HT7qzbqU*x}8eO=i zSR$`VUeFI~V(g5hVW-tQP`b~~QOVOTW>unbD)g4OEGF;lP7J+oz`HbauLWohVrK73 z^;ssEl)JS_(W*&<^R+5vj{n0ssoUVNch7Nctlul&L+>U|+_W&vFhL%E-FLc=9zI{L zvl|AvLOc33f*l_8I0_Yh5dBf+Xr{aMEhUCxH=tNKR9K@^><+D`W-9fLqM7`<&d7ID zFNaZK&qWDVVivgt z1v}-$4oI5zLcnpo%eNU=>xq(%6JM^nH73Bp?-$-(0=(4Qcxp5?#0f~PJuhDFX3a7M z!nskgv5OaC2n0}iRhNX0MW_zsd-z2{Lwoo)Sj#@QYO3{VvMtrDy{q`}lv=m#BV%6G zEGy}|r&~)&WtIuYOV^YinVGICR9tI2rkKNqNxx$X_Ggj zSNKH2=}CP*og`d@^8iCWP$P9th4#755J97L zv*UR%@h5BS#P_s9M}gsD`QD2grUouvk4I%R8RAtdr-iHAV=@MQrmi-piroQ z7e`DTk}-$iNtMR&R?5hTj2UU{5KAhcYCb<^LcOR^wU|7gre`>Hwx;g%*UNfHr^|9f zI4KfdEQ1rcTD`VQ|4uI~Z`oHliop4F@BuYsJ6GRc2Jime@OJj4i^8!G+L9;64zn~8 z^9W`0oSpnDugyMiU%=A+M|_h0q577exs3VB2^rr*c|C(u)~T9)b*~;Qv`T-UQVe&> zD7!!{iugQ~+b%12H5mlik(7GWqHvcio$grb+a34f5AV}^hG*@lJcR2E)AnBce4zTB z^^jq$k6p=|m~GwRXb^sobnJ7)cM`Wb)7eiuQ@i}S6bNEs8bBuUjE(g47AE|*Cu)Gu zJ5VjXa(%J8YHfU>|4O$g@h6aJd#h3KHt{Fm)+#`Upe#94HlOTfg$yQ^BaJVafO?WN zySi{Za6?>%u=`%7`wg%4M9jM@`r!|>OW>OW?VYP@=At?NP$wCWL(S}2#2TE&elO&p zA`b24C`(MM$-69bkKwZHS%Xiq=}mCgArTjHZj%T`RlM~}WrVwcLbkd|UTq6()u6vM z%A_l1WU3rNFw&LD1de#lDKXedl*(4Xb9T8&PQ_7r=u5( z>o*=kkwJlhCsJh}8ko)Z;Yc`&kl^n72cfedN2)-4zG=iDLF`8~)(%jpzIsZX(7mG) zRYA92MWQunY|_?L^dD^rpw=b>HK`!?YQovzg8hxN;vtywC`Grn`dt&@Pv7W^_=`1Ck7(0xFi3lq~z zug4`_G!s3OPBI_YaaA(Yl_DZW1JF0NU7b+A`k} zs8l+f8t{AV)!08gd>4?WGK$?mZCi`Xb)5udoo~|adLc0%+~3R8zZwd=KFx6Ea85J6`Un}c zQa&8?oy!$*!C`pwhElrbIZhxqKUl}Gt;7RLF3aZfeuLFpvvWLNaOcBa*WfkjX=2(y zl@s;iYQ9a(h?nMqgR%=Ra_>iFt#4SniB_eCr1}?dMH6jqeU9XF&fv_N8 zGl}Z|V2ItF9jM@%?%QiYsnSPh#l;rT2J(GJnS@Jxx_S=-Y$TiKPDf2#PU{r2CF@=| zB&bM>Z}z``)_x<)9~v&gG@U8e#2qm4%j2?q#$)H{fSIRfpuWIcy=u0u$I|z4*vn%k z2R}d>oJyRMS)v$lQ(CirY_7N?@kj@>rqDY0Mkn`9ua>s%fW6l_JePZod#sI|(Lr2` z>E?~`&iz!TUHt--%=@C~Z@3t?FeL(c;9b)KEfFnc30553Pn1jI_pO3Ab?2|yXA-VN+V^Y;?p7IpdTDg{F@oIsOVHw*{GImb<2+%VKFXZq+^U;rq zGG}M;x%2VuBID+GsW3vu0H5rZ(^Dv9*5zK-`Di}n{rg`IMJmU`@0gv-k~(*s`OvYm z0J)KTb+!j?sXX*Qc*5O*F=m#Qss5*7&-Pz{;)Eml`los>=5AyY7YD5{0$#orm;S^* zR8KkNJF;`ZKA!8bBlZN^&U51cLB2?X9$};5=dTs`-YE)hsVju$qj)31xK8Ge0<;fzwtuEf$E71l;lV* z5emy+i<1h!zTc3>iv5DNwJl2rGI*PsHL`||-C){8M1)HPyd))gGH8Y|J)YX00}029 z5PdL=xs~lrRGW@B9LIrQzIn9jbb}uI)(RW&)<0M;F)?WE?hrZ8sw zPLIi~pB#neT&&(Wsz$P#EY#TK6su>KtJkmQ&Wh(&uEYGkX8HacVE@SY-GC6XTISa# zG~Fi{D44-Wn31h*@pTwgfaU4C-O=D6x^=c-+}Vm?g0oraWa_K@#CF-w&+Z1s&-MgA zSP9iyir#PtS&!jzn`!+heMM{%e9zYq-DNznE$0b8!`(+4^Y57J5irLkN-2bt&)TB# zYEZM^y;Va8RG>75!ec+u_{-7~36R!X-`reera!~p^;s1Lyn01bMAI&i!UHtbw}AmZ z0f7#{D@8{~zm=~ZnO%c}>N?5ODhUBjq>)O!_&^=1^#pn5_X{@lJR@r+E!1`Sm(fGT z7+R|s@za<`KHw--Io7i<|5NUsGZq&KN6(V1Dr?LSkV5uU zMgxvWSv?Hn9!)7Ew1VeTVvNTzwF*G}-94=qG{?5|Fm7o?i6#EcGJ=^X6G zUNSlc4Q_L2jE05y?)41MdK zWv65}x1%PaIH#!zQ(QfltGhexo% zkjDBzg$5CGw3Z9=#QSJTjfp<-_3DsPt@L4^8T+fkvbb-d)_SOW`{Jh~wojYAiZ_E> zT_^f@#Kb!5=Z=kb>Ng4LeC8wH3XWK?$zm!+MIGH+E9)z7l@6*JmDMwSMb`*UxDzUk zPDL72&hhD9p8RX{)&VsXw4tP224;q;@nCqoq?>D!Wm8=; zQFPc7@_Vj}Kuwe-WST!Ul%i>A)j}}s@_N@dpvC&&6JRM=ztt`sva0$pX2nkxZCcAj z_qwBiypwWzTd>1~WZ)3+O%(%vnLZQ+ezI{P7Fep6n(==7PQz;QHC8eZPREPvYJ2IX z@qVSC@};gN12*KBS3%g`iCfbB;cg*gM&=W~I+fv(9mo9_kvtC@c=T1;_!4`iwmg@( zoML2POrwV@8Ym$IW?8+?@}Hzhu4NwB7C3BGBvdjt~%my6pbk zLhH1$s-jX8t4*G zX*WFb?h&fGz7_8Nx^G>eQu&dlg908G6FK*x!m-T~_{|_m7~zlZ&SPP2uMkPQ7cH+J zTa;lU-f7*PHS4f$s7frnT(Cec!3XTk?I(*CuO^=OABQ&^=oW#msiWO!mw}q1Hbhop zR7~lD=&rZ8c+Kw2_meAdxm}y*mT=9t$HtlA8EJOR~#2E{QTT*E|os#*S@h%gM)Q*;e8=Q*7ik;di+b&qv@5Nv5yeKEP zb$zEY?$^@#QzTjR0&{$KvOCOw7yWWRv)*GQ?FSG!2BN|&>*R|iRfW#c*Snr{os=|P z>z`7i*uyG8d2ylIBdb#b-YmOUL^nybwU#eF%XJa);`dcuRn% zO=-%A)w%O%`5=oY9uj=Tez6PM_0Yq703gzeC7vV1V8{Duvzx8R&|LkAf~>48B^4bi zq{ z4`LP(s-bI3r($r#$)iyhVa~`;5)%#O#!*V{Q4}OZt0KFL63D9taHC(#F;cQ2wPKDfnuTknG@Q!wf1FF;j+lYangm|zH1y$<8AG_&d4GA z%L5AS7w1*7A@*DYho19+Sd=t0xdx9+qUQa5&v#EV=B{He`;7fx$Ghq{cDZMdCmJ}6 zW8!*B^jgc!7`wQpGnVNEt3S_Se&F@AEAdTo* zv>9|iVQ2Lax~~lYqKfB9nQwXPXnb}8EF|hI%76*0DmSohK57JTrd)py`a$0QhW*Y? zj&4dI=z$>*Qb$dgtb#D+1I09KA4^K##-X6Hz*B#k04eEJ*oMdaRUF;qp6G#B&r;l( zj~BuOam*jbg<-(<_C#{EjDodIdJ?(&?HUt&m45lWs85wz9So1lrlbI6B`P20HTAfT zI`1z(F)qzL^REViTa}E7od5DJMBO1Q#-+dMkTBK)2tJ)J>lachS^=92K3m`)*_HfU zH$(o9FGqtI$Q!1Xm2=IHJM2f*dq26YAp&H7ckXZ(B&n{3MsVe|_R$g^Q=ngS9OW=n zQJv@Y?m9p83vOh<2WqVwpj5RGXb}dmpsxr ze{X0d|6}3g+BowjND$l5gKP8U9eKIsh69k_ufC29OW?c57CP!da~}f56Iu*71Oy}# zM&J`iPe&u%&00dOJ>EEMw~sOJEN%Bq%XUk+Wlet$2JwX+rF@-}brz4NFmtl?Mra+( z*z2E}e=Ef@_1U~|_K2#!J;gv~nFa4<`DReNmSyqwT!(|Z(J$u;CmNySl9B&PBZpPE z$g}2*P$5ccmASxsLl3`*s0rn86$F;h&>>7teNv&MV%HS7%2(D>;&bpky@~X|kdLCy3FAK34JP0GYj93N5WfiONz& z=C&E!-~r^GgaDV%o1NFU+r(C^{_) zk+?e(AQG6kH3EM+HfVxcl}s5HhL860RT8A7X6|%af3JA?OLh3zGw{kQF$!8u9uJqG z{AE<*IdY5Y?BP_f<;nD_l;pRZ{>eOL%S5)0lGT?RCC9Xn^|NV}c*gHL+Gpdx%Hzpj zx%Bw=pA$dct)@bYbt;eY9aKi+V&jb&T3ADOhvL9lI54R8a(pM2^y~|LPG6^gFxb%5ymI?uKz=EaD7~FWMf;@M|BKJ zoZu;bQ$$|iqaR!!BeLp_-FMcP9c0CM5mFKgBgYIw-iTYQGJOTx-=j&D?!y;XNR*&P zHqF~_TBI?(D90Fkac!r$R(D*#%~>=PxkgC#z41s%5t!DlgG#d`F(7%$+*$diEm}CafDO%{R zOA=$4VxJhn3jH%_C_`XOzXHH~4&Na=b7A`xdB+@gr(gNuK3ll0j{`rM>U zI_+&0wr^z|sxW*_)78u0ury-eX%V6;W@|AC@F^A}&85x-qOpf6Y6)Ys_20!>Bsxyi zb<2LZFo?Oco!WB1pmXWGvrr|ClfneXtEtfGrLnZmR+a|*2A`qYc5FDl94ZpP@#0;3 zyqanEb1?cQCWsS-r1QupLfX8W>Hnuw`W((brG*TiTR&14rx#5P9jx;L)lz)cVf*=@ zr_vOknI&sY`^>PQ^QGI+Oyq}Cd#Of?4-zSfbd{3bxl5=-7oN*h=60PC;L^IsiEn%69> zoFce>T-_lJnB?dQg?%xWuCn{?u(~~Ji;;W|jb$eg*j?E81$?)l0>*)8+PW&~YP`?Q z%ziq8GIpnD59ajwP&x$Snh=r#7%ckdIBvwtCb178Xb$;O_@!R8=V!lmRG&Et~ruh78J6{8PuBW&g z5dBUNK|nC!q-fqAQmZ>TFu!+eD6R=>V>^jjWrxQ=CCCl381MGs4sdgj1#eLRquaUx z1|-rpe*nqsg=&%G$<%d!+BN*~K1$uP(*yf6(zR+*QKi? zWwTmA%)mR;>04=Q)ll$tV~_zlICzywd7jDiHbH_zP1c8=qTx2MIL|jqu^q- z$UdoK1JSBGMt{lc6OU?)W#Y~TWzMEi-(VdMj&@(~t1ZvpO6A#$CMPpk+efXcQ!prH zXdsd8?7QCt4VUadN875AQa8%8k(>UU+x5YUAQW&})972U@=I`Wv=c~~B1sUQy~t#- zP?F?Qr;e#sY5Ao;j`Dxtmq6KL%=HR(FtIMixzpos)Ti|&V#;QZ}T9x~dyNVRaGXW83wKA^rnXdK#WNl5y z>dkxehaDEw9U6oGG;jC@W|8gksp~1TYoZVN74|OVG%cqq_GWVR&p|^FM62TJ1FMwO zH=aCj!oiU=%Nx0(SqcdVIjZ9AnEFb-FU&HSOdMJYpIJVGv$5@n78Fa-1Rb`kQaT5MtYh!(sBqQ(Kb#A_9s%>DMb1MNYo+Ls!3&@F0&33N<= z2vE&G>BgIyMwFz$_rWp+2N|J{+Z@H=XQQAABcKQ5EBXzR3GvDVEHv8WQ!HFSiTVUZ z60S)|TvQy`dh@Oucu(5%X2vLi^L@F~jv7tIA>Ir@+aw8h^fEt&A@9RyA%j?1x*c-8 zehi2k=4Igc)kR+68-c0sHQnk zvQ^-+-0qb2?wqbs9?QC|GO87IC63oK&TFiRd+}1rQNqRN6*>YItM_^K(YbuaLWO;bx4=6McAOj%6 zdZY91jI&hsO-6-99g#E~5L8O-hLr|Mh?SrZNIkv=9__MyDl|Cf?ASvQrZz1whmkK( zM^dIFTx_|#`0;o^6*Qf*7=odn^nQc#Q?g$+j5?>?*|O;rA==Ku!z?Sk#R}|K1Fp^n zT+1uVf|o497m?)X9O_njiNZp_L9AtNL>*V~-1$E^y zm10m6E{x?@=}}8=`&F=7u~tCA^$ACPNW8TNPceUPa%+p~wL8k5i4M0Bx4f3D+j>sK z>WDZVjW*lA_O$ZCOY(oy_Pi}uo8KlHu<}A54Z@i?p-gb0IDGBF~;x%v(t5mSWUkJ z7=5#Cm-*y+Tx&&#KVTv7f_|Xw)A($XBqJ6Y+rkVkgrYma+;!-zPQcM`8!VxfJ2!;FvZ_V00M4dh{H zWn1cf%`3c+&Bd7FYuy7CDO3ND)`>t=0Fl+=D5M%-_x!5T&rHhbFL`oWy*rInEIm6Z znk5>xnmXg0i0FbQ#6MoWd@|;Y%`^q=C^(ZO*^nu$_#OLD+WLN=4r~A}iDOQLfVk^%w&l3Rwc#-`VBtKmyb8Ej z>wh;tIFhfyR^4p3f#xG%{Oc`B%0-;E;+UfKT|B~c{r=s{dzdp+Zg{7oH@~;w@Jcy^ zEGV~%UsN2mrzdJy8y(N213mIh*JrMQYY(??*Y6OqI_dATFONhNn0WBv8%a2&1stJ- zx|al~0vq-6M_O-@r;;5YVanVV$(G_d)Jf_&SQ;;NjL)+^qehTxw~j@(nGk{}Hx{`L zSX~O@=C1Jf|4!R`3f^c-;7{X}{iABjk?R+|@o9M^H2O+5=<#5{dPM6&%24Oi^ve^~ zG_7Dpra z8SDLhG<&fP&pIXi zydkr4*5g92he_JEcCqd#-qoXg#Uig7)I~;Rq^;wsdhEa6nxW=&zi9#PfRYemX9o$9 z#CjWR{;U=X#O+;7O}$6_@h-GeauipnT4!9s_8A0McR_scW)!ATjTWg@y{-ku*Yh~% zkb;rfGvkOnx|CzMD+q3>rr_K7Q&KTt4eGGq?{yuGhKXjh$Gy7xWbJ^}}^?(Ck z+_3_YQ14y>c@_}pgIIBV?VolWt?uojFD_cQ2fomu>uWYK7(mM(*NBQ@?hMWarYxH2 z1KlRS3{z;LqH&%v#(+~1LqpoE<`=$WKk=<2g>!yw!?Fm!IaW6TXt7wWOf4}?E`@v^ z(yV8jLi8BxEJ~_^XighOouxe zG%o|Og;JsYE){b;j>Z_6)?*MYmAL!8Dl{YjKjew#jg<6f(WMsTC4bnbmA-RBxPM z@d6~Up$UTyd&5CDht%SjdGDB+Hbg6hosyI(aDWIx#oBnR0(WJa^~ZhNjN{XlEX8xH z6{ADN!qHof#O>SQmzbE((lMM``Hp6>& zlFEgaaOD-tfI*4!Y2h*;BjEk@{~o_{W#Lqb{UT=gBslZPmKpMwIKjKvRr{{&yHoDV zUz#01LY^SuAX7U#*&fzkzbf#&t_?O%?0YsTo?PzayZGp>K;CnF=^`Q$8`6l)yr zz%%bFI{4u)Q8oGQ&JqYWLvJoi)D??9Vq8lWoo?w0`_#!rpysL51xtKha3P58;ajL8 z3lDW(AG+nhwo>G|jOehLhC=nkhp0_i#37)VnUNI4K@D)2gB%<75y-Ad0Mmy1i)IvO z6$Xry&g0Pk!1)w z)h{7I+KBF1Powz`^xXY8z>=2oWDP%1TwKD^c%5j}{y-qyKd}D(hOJl~Kqjyf_KrW@ zXh3rH**}P7Ll^@-#5B~=>VVp_W48l$KK|1M?Si4-j?3g$D@N7M{r*cFGk40Qu03P! z``PM6_k*v&$1^ur%D2LvRz!5*U`IZ8nqjBwK4U$fmYaLV6Zi=rR|Pc!l_=|Zl?*On zVIT^BV9xA~IoWl;y!O#oeZ42{KiMlrbcQ?)*G;Ph*CK|4T@`e>6o)7X?*(A;S4ckb zqUD|8*&ol-b`JJuYnJNP>rh*NC%L9W*#^<=MJ6Jt8<}~4L7`A@8}EKlqtO?NA7^om zsIEz@Iyhky%>qV?h}UBZ!lBv*td5Psf!Q*wf8jM(8{enaZD_7EaNoevFh3OPx{)=k^t^o?63_Wv zgTfi{O*LyCd2<*v1WQ;0Nse~Zy$SnfKH_L$O*#0c^c&+x76XYgNWD4=50^dPT62{T zp%ND^q^e!kP@^zDm?*^Pib71o{6y;3`(0fC0|0LSlT>I^36_K!EXD#ftWG9j!P!TI z1PAz}ICPKl-`1zM>aqW2B9;CB&TiA4udKSOov629~lQ#5aoj-|bMCy+m zOGCP59T`iv<{)ZwvgtReGCaPWFz+@qHCR+ul2H2P>4IRMkww|{dap2tT3TO(b|(uU zE!I{y{@bgTY%1X?P6Fo>6^SMTyZ;V}%gs>t*Cml%o*#%d%BAa#veav^{RpC~+&ae^ zQ|HY0o1{r_>|h~5C`@AS9@Uwfsjff;Cdb70-ZWS72WrkS8X8Q0He&S^RC*#gFZI72 z)bM3xkp^q59iYq$A4ii1rV#d(&lJ6Mdk?C1P#Pv1!b|K( zH{c6I#tl?d@<$3Y*6=9Qq$WON)U`SUA^~ zx47wdFbZH}92^_~-)`>%_`%^}jhN#)y#1bQwJ&F#x_9$oTdwiF#CJ>^t)EQ!U%Exg z;@UH*rwoQwrB)2l-Gk5yobXmM9N`&PWY|%MGNSLvt&$=Z{AWp0e^Qc7aI0!tB2qoS z5`9;44-Qn?^Ia>WlKmr?Y2@U-#!n$%y*W57$-4E+GN?*(b#--q2=%VRp9rrsj5}V% zw*H-K@JJ%PXRsNr_5 zHP-Rqm(ZuYuGqmTS7=EX^Vhdv#z?vY}BQi?OZ5^DD&^W(z>9Sk+ zJGTBe?4!2)*2^}l-~f75jU-}ElZDozylGL}I7j^53awkf>qrXsk%5+s|9TNV*E;Ql zm895130{Oo>x~cS^Iiu$o<32#YTh@5ezBSpZ$Vrb_w}@+EU|DUG%0ab!*AcbkjJ8^ zMfSzO$)xMt*3;|Xcn)O3BKpbn$QM^g80Q2oe!CT};GI?bRO=lN*>ICTi@z>aakmTp zLy#!fzQ69~O3GdNcSLg{+}`ctJgt}Qml-mB9Tk(6ET1RKovf>=>0a!-=cJ;d`p54{ zgt*K83zElE+G2}y!qIjmjmrjCERSn z9~=*BPwsz+tI=3`|I7$*!O&ogV!%m8U!m`dqXff3lGeC0kek-XXxJ7eud0~mDUX_F zB&KbG0`x`~H6?6%`DWJd1MQwm>Q0V65a=7J3-LAFtBk4B-6Z9SFVMZn?A8kTzbNA5 zSfQVRF2+d^3qb1_3coW5q)Cf8+plCvRi%K_8yROBg>w-*MAFN%wzkgJ(zLXb9yB2Y z1eMWxXr0p+NSoF8?{1dxzZyitu|mX%$Zs3QpVvm^T#s{{^J_*i&!zSMe``V62Z?h2 zA?VPXCZZ&k52Phb&`@Y;? zO^G8LR~D<4P1!f0kEjlD#TUKA6k7n?H$b>5DJjAEOMEcy&>Df=xrIjLzeBuqGt9_P zg`jFDi*;C1D>b{gsLW(2@xq!HyrO#sX(=qCg-?ebh`~uB){RL0QgO{1PB^52*t!FX zO#DPq-cZv)V1WnnZt9#FWbgP9B?jRpZHg-&qa!TFwGSY=GXXG z9K&;57w~NfASTGAq&5<{DVRPln~d` zh5UxW8v%d?dFh+$)|L&X{``~3du{NxZ*)|SOuX&&_o4I6_=VVr`T6s`VV%zoL=LWn zlYP$q3Y%QZm*;0yxgAf%Xl#<`BNcFJ-rk{g!xg1k_cTlgpMmagWYmnf>BYIxpN}Ai z4JPWj>7AKQySG{P#Vo zS1SANsjK$(e!Q`1>_QR&#T&(oFuUc>mM?Tb*rJm-Lsgy@0F?m`)Oq`j(s|d1AMju` zKcAGh0IVoLk_QgWvBbhk#cDmS`Z|>wi!O5RzH+ocT?43j1Ao)d&`1+tgYDgKsP+YS z@K~2$YCA+C@;=f?!56QuH2L-nQ7M(^+#*t}CP4yAcF6A4&Dgy6a6OE!EDj=U0P@4!VFr;p$=sr5~i3}`q!yPK1(YQ z_Uqdop;@4NiAeuw?1z!5IT@VtR0@slOP5(_Oaz&dqN<^ws4zX$3UK$m{xyIbU>g+S z|H;1*MdK(?{vYp1SOhbKwJF7A<31o~K2mq1F)oGcoZSSSfd|1!mP}vl>qs?EMbC zdEV+(?c44qwFTT@3LDkR8QIxgVT>t&p3I)J(ori`a8Htz(Fvh5rM@xUgn+@t*;%0S z!oa=r;xX9dZ5};h0ky8@`S+5ul^^mPbqW3S8?Eq(baS$<%^lnUNQ(4))}b=a7KM^% z^6f|Q1!^@3)2%&HdS0&rv+H)(t;N{F;T1xx`RwT=4d;aE@FDrmFw!K+eLHK3Fhgid z1b*J>oaCptcpJDIMk^@O&oj}dwCvow3t*?1j}vYS)Gv7M<)qf^`m3J zK^g$>@9gI0BtSe97Z?B66!^Qu3UvMC%Bm)K*Aq(GdH@;W&)mNxu!0g%iGc$E)a(4w z)VV)DmwJEGap9A*VuD)A(sO01{%2A#acuvX7)OLJlH`(n!>!?!4hn%V{q#2Q?}&o+ z40nWq68F2o40m$9=cBbFM>*f>MqE0;>3YWl0Jdd_Ga2TyiA7l@%xIciiPxBoPKWfZ zobCGdmQ$zWt9KbSd@f99nYPDicmu0}0NaC7&nEcmV}NuEn~3Q?&)qWz`d-$Bn7dc!y@@T0@l6FxDs2JtWcvDc(2h=I#kjt;j?}g3@7eTKHDv1BLZD8j< zmRnp}dmPBa1T=vT-+rg=;Kqy^Ff$=?7h%=Hf`bHED$q9)EWe? z?2DYRDOXs@>t_oP6cuaZOS}BRNFmP}Q-A0DwG9{;Isq-V!sU5GnH?($`p%utFAgRz zus;ME^EnIpM8{f_x;?--Ae8m*o1v0c4jSjqz&?mP>!v-)stIQ%CjUHJ({)ynaB%`t=|xcXHnVN2FVdu$%_ z3Z!uL@>#=GEn->*sjymQvRFUov#84bo_4zPWDTli*N?T)|JJ%g58+n}9KzRGCiJP? zYJv(b>o#A^zZ1MI5MPqiVAJ|(F=KcCm2^Ab&K&B1@>5mEy$)S696dcfz<&G35H&DR z(ukfFS>=z8+_${*$_@#E1j5sRhVQFD#5)RK-In0qwacl+K4jOluH=$0>*Saf(n705 zkV|!mxUZIOQag3U9sVfm{R4?LpG2WaI>0k@emBv|)7x{siV3(8rs&hM6jvhb842VH zi0#Nraby-Go3)AMUI4_sI3%(JY{?;mU{kAWx$Kfm(ZsVklq(vDKiygDJHHYHiaZQ2 z@g1X5O%%p;DJhsj;Ne~rNS2Y0j!XlHhJnxIedJ#oTXy2qnLHqo^k%g^KU$inQ=1J48WMS%W@?8Z-Ez#Wm&z=N0-!A1rQ zY~X-r3@yOl7lbSr3`?+aSM}gHUZ=cUEA4PtMtyIxe%EZDQ?@&lmYpri8|Yk&Jme}y z3{98?a=ceqw`b1FsgVDxh}B4 zK~QE1?vtKP7ZIeArfK4?_Lwv)W<=5;gKAOGj)R!V;e%23B-OsXRrIiL*Wr z`defkOYj&e#P;vC5$u*WF%r^|J@I^SiBAX%P}5R5NYa*Udj6WR;vM?_LAQTWU*v;k zhh@5=->B6Q9sYa)UdtTow|VN1=Uhzhg4$cmmrN~QeMAj|9hrz9N}q{pi5-A~JTY^! zoPv^)^J!%hV1+^b!*78BTjcP*Gq8{Wb1mAXV$j#tRR#ZSo+}S4;{fn57VGPeT@IzXCChpQ&xY>(Y8 zwsK*w1dN$YxCx|@IP23Kv+;P9J9I0$mOc3E`-WZpM*I+xR#cS|-|HHQz&W+kbpoqr zRt>4d^@o`+-;_dWUy|F;CP9v>n=r zyOjyx>3!N=D*FqZg?9jCkDlj#^52b)%;e-`2nFl{#73>#x8N z>v4NEl$Nf)Gl<=lmfH2mmN8%2{LtCP>ioSYzzIteD=kAvv~Ic}o>_$^MI*pQhiGAJ ze$cK+*0my=CkLaZ-^X^vjWszVK+&5YgvMNi!73yL7kX)Wd`RPE%QBm{dYX=}ez)?N zeSU)r8Yk4OT>_(qI+@3iuSTO(T9)yz&L8*T(2IK1E9d_vWM%3}=(INabuJ}!c#IDH zbkK^+cSST?&J*#?H}h)cOvRK)&}f)&j7DG%1t;bZx|s}`>&qTZ*)Zn17`c{b@#5u2 zdm6E&);`M6ubh*+l%_5=@E;a5SG#(+ui91IosYgBuh`g*N#d3HO_QEs_sWw(Jv(BF z+X=>cL!{w5%?%4c^PngR_yq*zi`8I@F@TD^bITt9=z#YRmHv+d`tJwOrT`WhQ1uud zhDjdIqdrJ5EzIV?Cg_R)WM(;9U{NF|Cl`2Fp4{GvnmAb9Y>WDM-~0#^Pm~nVekFo~dNhkYOW;)3rq5*$k!z zqzfZ6Pg5r$aPq%X*1Xp)4q{CqL(aiGljh?6+9lKpf~RFkW6%-%%=*h$Il34U6QvYh z!p&r`H+Uqnf~f5zh(k`m@i%^pt3S<6DiqBT&A>S_7_5?H#<{#dnG$$BL#V5VskD$T zIJD>JbSN5q_Nk5;7()IW*cf-e`q&zA*z{A=h6knyAwIUpi9ziVMjDOdRT^qJocQVY}F@vt!la5DdmA{N=MSao%EIHth64?qimm{5VSep-t; zYrptYGdMzEo(+1%v}Fz8V0M?)=g|?|c!8#x)v$^!hvrTve4) zyiXa7vIieBtf?U#M4joF!}WQ2Vkbm#Z31m0IkrLsCc#4{T&8-eLt*+j$BtT)dY*Un zD_VVhopuJcl0)pkcYOCIm?+{$n&suj(+w|nSVALpZMQU!^x&_hQ3g%*9EN7q~w%wyKb(+zu z&%SuPj+Em3-BjpIE1dtOUJ1}MGHCYWCtLKVPs^PLNVdh>P~*OWbJ0pZ82z%S|A}uz|DQ=^AR~}WuFiOJto2l@wRxJr1H)p0?a=4%; zKS;q6kC>TrDe;kzn)}CG6jo3N@neMh%~~&85N024Tce|i8!8CDNu_5b2Gx?d*o=BS z(9tLy0^cf0a1ve_lZ@j!q1hO%VK?uqW0j@@$8*;8dOpDtnKG%{nIgBvuh9Plm}mAT z(u&tZLsiFusT!UOL5@bJzRb)@ZJ$YTO13(C=FmMvR6=dn+d;;EP?o12WWRsF5g-l7 z#P9ak2te6vJ^=j3mSuAvVUpZQ%9%2Q8bxsL*IJEo$&Ll1>tSOeZxdu)Zrj5r&Fle3 z!ze-T`|0b*=nCzyh7655(ZYppyr@k0WP*;e&Ikzx#JrTm)*piEffpk_KHl>vR{m=g zaf}0eIHpq?9jMR-Zd|Ks1Wo`+2A+!6ph>eB)ute3ep;?p@y`t7 zEl$VkUP&^-f)@h|q!D3i@-qTF<=H2BFZBKTu^RmZgHZL zo%EV=hStmMn^gMw6}I|VFc}I3Bebf_>_HK10Y97G)ZLPBy7mYSD%)&EP+PFTE{M~&BOl^)CMO$CP|#8zY?JteEp>) zkia>)gc=5t{Qjk}uJ#+E8jZxCAt|UUwQvbnQtwAoQuE)W*f#@W;kQ&Sx4xgmsQGq- z!{QA2Db?@e3r;Pt{5R!B_C(U*FBcZ|zl&UU2O+CFOpveN{CwWE)RlxF($N*D z4nY$5Oo-xPr?53`&Ha;!xv)q|MtElj*rhD`M z@Fm5E9jDUI9#}L7H^A`4Y%Az~b5$F$pWhMZm#fy9+wB%eu}f~X!cO|`S~%UUBM;nN z;kqtS+UEP>R@L?H1>CZ7-qtm=wkFVdK@E=syx269tSeNtC&#AlUe`p-O27>!@sTF^ z-NmT}!{_X7ms8}>k3DZu!@Wq)QdE|W2dJHK@o*?WA)@LuwB+=+Ze#KS)=;*u^WMc( zh+>YRSr1K!!guZsz0N1$b(wJ&1awl4*qgPoB)_v zbA(B8G>J$V&y@)EFs9TA2)Sh@)8UwjsY4>cPkjgs#a{pv#I7Hg3FfqSM<3!NSqw&#;8O!J@`&sow@P$|8p_3!mn+_@+6UJXxrX#3=9obd=EQO zObSx_q2O@5r_+#-_y8ML! z)OA+Ni-NO#j#o$IDcs2&R%HsMVO5?T`w!-U`^c-&^1nKvM+~2WgYwX+OVYChq{=4E zJ(@$N>O95?#QSvPV}sCAvNFYa=_2RPG;sQ(BCyk}SL@_F+}0H$781chuKDSv-|lW_E#nqoEDPiZ)ySqHVr z8x%2>vM*CQH@CCUKNs;3;t<$5UDGt$A~2X@zUAl{Bg*a9lmslC{nV}d-dljqp1N_y zfu8Q%Bsks!9`;is69GX^!ZE4)W;k_0^_-ZJ#Wg8@Z=KA30=BK~sD-|))iMl(o#mL9 zQZ;!@2sJoKsU%`xo}?5;9@{p}vO{gq$|BpY^mkJPVy=RH4q2i01-R6031 z!nh|rTD@=h>tg?D))jH@lU+{du|ufzcSynav|PL0WA7!L+JOm9)(iCoOcNRZ|1;9|;tFKHjJ>}n(0fO_-hQ#mu1hjq(sq~O&eJYzIvqQ)i z+A|ZAhE4-6+F8D6q%M2TEletrqAYgNiEe!8VgMc&o$fQhkKsYuTmO8QV&t|_I**2N zT`031O0_xKlTav=30@b-MGuoN=H5%h>W{rd;qwg!DN6opO3JBLtyo(tu`z?MuWlJa zT%IdFB}A-RbCrBEiGcxm^g^8dYmf7FyY!!2{&Tp=h`8sywZ(!8a>H1gN+Sg8m)Os$l;duD2OBy)A zh$^3TDy5F*@qHcG_-L2S2u3{jf36Z)^{Vq?`liw zZ%a(5E7Av%%EGl5S1wWuxt@dRr4HuzOGF%yMTIH_b!?fS;4))X2HL2n^~axQt-KZU zkDb`p0V_Q=cL`%Lq{+RO#AOg_mOggz);N?eFjF2SNDIxIVq?~x8X3^BiQi`_Lli1Et(g zr1w4a4}41LNOxjg#4i%?NQ5a$3QFVEuF66TvkFwwj0i9I zu2w$Gy2((plti!l>SNMM7LhlkM)wu4aAb4b?>ztVopAstLRt*Sg#%u%qEHY>k-@+n0U=n?sd-n1#Q}Ox|H785%+Htmydnu$o@|V&h6k95S z_=d8!SLK-4OyBczy~*cIp3ew=)jcPyyU&$?V387FO#TX40vmGGPg0XrlUzIY%E1n( z6@>{&vj1t=@HG@Vvso#MM5{=He|Tm`yi}};i{1AZzudRDH^O4EocsvI=7G<2hbnZ*|4O`SwAA`vZDFd( z-uceI?`A483!;KsRCt9GZqA%U$8tl+x@E-tz6vfX?1TZ4A+xInN>s0AT)fD>s(A#l zN9d5kywY#a$Okz1SVv5rWox+xMdW10LS<2;&{s z;pvle(9@?7uRTBj;tIwK9go~^tAg%~?N2}tKrR` zwU$Mz%`7B6CB6rhXE9@_ROz^yCj%uBJ^$x0|F+S?Eoom|n`x@N>LtV6Ou@#QCF}O1 z9r~*LuYw9~8bcEL_A7WS?;R+C0G}XZVedv(bFJ-)qNv{nT4q{gUsq5!V+7yZ2c=q^ulQVT-As3F z8|NOtX)p8>ZS!5hcp2MHxJ;~?0B&pLo(JUT%=%vWmU0jMZKTP-Ggzp z%$?SSN@9h_?-mUeNDT{?FNZNXsmb&G8(C3j3fyW;k*AuqpJpXMkZIg-UxZ49oP%QgKcSMyGguZiz zx@Jxks^FHa|0*aFX+=_!5XOO(ibqJ^LE<|9rc6gK|D@NSM^gZ}4u&|ulks>i#)l<@ z*Q`zW3x{ktmT+N4s4XItZyLJ&Q$}we;!)#d``&wk^%~5M$p!PD+i&D*Vf23TN-WU1I+@zaH}a zbel|9e-a~|lf!p^P&eTt6!d0?g@v4-1&7jU1s@{T^h#Gi&gUF{YNN;g=bRXA(a5g8&N~3)V-mY=?z&(d0xTMo%d; zyB)?nSWSW(g(85f8BSp^Dp zlNJ02AnQ~Ly+Y^0Q;G=Zk1b}js|#?{fo^BGtcT9^EoQBWhio8V4Y_!E(<@+y>cuYt zMPCnY1(1iFXfWUsnj8dGrEt)%L$;^nNJ7MEbNgz;<$MZ`_78TMh8!7B@O?XUWy*k5GVHZmnIBc=~N%3KnIJWstwiDylhr$0d5gxZ-3 zxZ5%_Cp@CBTC^@Cw23g!^V~D%5{FD<3Z#4*=?i%c(k(pw`QR_j2c8zSZYJdO&umq; z>XlG`h3mygsrxG1Vg5)aq0Zr|;9c{kTH8UIzJ~L}qt2tb-+!hRFZ7>$n6T%@^DnBL z&bioz6f)SlIXCpNfudM;Ji{==(R`I)CXn~c>y4-DJk1YtU{@wCueBfB-*Zke=>+Qr z>}0@O7_p4vU-eizXk~ix5t98Ko{TJ4Mv+WLBmuapj;i9kk1K`y_}Awo;%`WH4#My^ z$_1aHqsN@R1ANNj8f=*J*8KT|kUH&1S@g?Bs9l7kx~holt)7HNk4?>u13unDkR4yR z{Za$raPT+3tI+-JP6n>CB-5nZO1YL%j2bhD+Kt%N?8$!}F-E-+=U z)uV@z;ol7h9TE&RpkK9-;eE$VWc$ud9pR*0!^)Q*oP$iNY26mc2K4?m*7yjIs_xEW z8JM15k0!;KVFMbNLVk>OzRkYArFQj94THtf8L4J<7XEpZh-h>eE+#LuJ?bk@0v76a zj$~$4+6T#%oukkxz~|T16x(Vo4C(CDjESi-_wa~LI2xrp^-yjRy3X%9F<5c z<=Nl&va798$?dWpJCLV+z&)AY)jF+F1MW;UB}BO98c_>^PPZ3Z zC?t6d}8qEgHw#Q(XruvHg4FB*PcRQP$C4QQmNEQWQhLpyROU9(h@5xD+~+_ zB$AY?s_gb|6Jzh zmmu&l7WN;h;RP*JYDkxSFP3n9+*%wJy1~`!HIxkV;Vd>eUBtspC0&|cbAxU*znW9- zi9q`pqq+GP-jo4J2E3+-Mu$gf)DN&` zXc*}hl1abgI9(l@5Q1{KOrcN+HJ_1xLvQfq$qdNjBf1~>AQVF8P|BsRT)^|DSzeyO zbwz}f{u4XqU-JP9=4HkA$A!v(FR**n=IY& zM!aq0Nf5h&r9l#G(n*6!y57#su0t&d5q8Z&N~|DU-HoMMSR5gfp=I}4cxrBG>EgB1 z6pxf)rWyv6>oB`e1#ga*zx)Ok78VHtL%Cl@L$(!MS79;8NR}7-Pgom=k80dPo_4c^ z_C2K2F?jFtP!*6{tZ++M6G9bw~-czfbQvX7i#8EKOH}+Lit9^UV zo_h&`Au9bF@NIxnl6<~^>*jdssi&w`tCUKm#M2@Ebx8Yf6bc1K zM@Ohs%Hh&LU>F!!Lw`TaFWkq%{9#p1)QRIzC>AIcOXM7vLiA^@Z=D2>=0C>}6|e!=0_@%Z+7fpQhVA&TV(R4U5Iw5-D|5SqXHK)GPoYB`V5+t7&sqK3q4ex{>-?*ib3U zgby^a+9apKN~uiAO`UilZixT6F`!h`$8cXys!C1MBdR}}-RSx1bm09FUb2mGLzVTU zn0amvSDzX@E+R1=V+}%vk1L&W;l<0`dea>5`sQz8eRBiQw6l~;7q&PUj?miSoCq&~ zl(jKXcx)2m97+e<$kAvJp9=_C30=bT)ly@;UBvP!CDV(gbNttTxtVyI#``ksU;g}W z#AV7K#RbMWQrWtG(BFIG$c^qgapGPwWhu=jNt!Ym4LR5!aQgJAnj$uf`PN688=CLz z->LB5iXVJq9MG&vE+ji>=DTh3Vw;1*ZPKJmuf0N9mQ0F0<~pm)&!3?*j?rinFbJu? zYU7<<3`!}Y47OxxyNfOJvf8q9Ts2*ftw1GUMy5FDxG z(Wsy)mK$8byz|(|XqZN~ztj|HR#YKwz>ufR1z9)RaJq2yjUYU~$_7%@SnwjG6DQ>+rcn4%zc7%ph zDcLG-frjE1~9+4$OBJ2#e)w$#CzZOUF>Y_Q`&-)=Q{Lya|oXxM8Ed; zohlq-ne_zxEHd|HvQ1 zLFjf@8BTur(uGHV=+v>>Nz>byjK55pEphYBw=kJZFvgIkX+0@b;)&Vma(0@nqT;Jb zxteZgkIhw6JbIJ{fn!n_+N~}(oy=Ij{sQa$Lyn)m72lHNc0gh!iwifCri-kvKg4*r zO_sC~(tk~{MYRx{j3?}ieHIrMII*_GGmn3OyjbUb-~Cf8uinJr{ti+Xl(|7_6%rE! z_=&_##^~znmnB4uyC{m#fThCwIGsuXs5l{dj41<)BEBZ!L3yN%O13C;kvGKCPqE;T zITxsPCN_MD5USpaNm(`S892etEdN|IPOp}6QcRMH$yzh175Mx!Ik zqS>_JuLTcOd{M1LIQo0o*;!{e(i}g1FG*{eViK$+wVuOy$M)7E?CqS7)Ub4#st{8r zX3bct#o+w>0_}E-R+@4!-r~f$xAVU5_yD=CW-#n-ZeP*iNZ z04{n(h$DiIFf~Vi+|tyX-r3i^HuI^b+yK8ulN)hlIVz%fWJ(kC;53Ja*Z9b9|4-a| z_iK6fxfc<_@bDv7`K=FMAnl}BXRyZLO&Ma3yup|}{@a4Gm|$EE-mt&7&0x4sA~ZUc zNa;{gBUQq9)TdSOJ#$I>gI|93!%ZXk8r85GzSdDdt5?9KkqYM8-AjH_{KES6$C((5 z*SE5>xyO8W4yC6ykwOU4G$qTjTFF)|&MJv;yWOs7XcZ-`a{ZdcgKzYbsGYY&IO6Z` z_vsG~5X!J}Y=xy2&-H5$G1yGPdAS;Y5H zh@&D2f5U48;H|^OETgh4r*3!AGq`e9vrd9eINUkl)1P^eZf`OC9Rnv%bU3!!r7S9e zhpa=0vgUOFvzWgLN-|=S3gXh2uK}v+zXidEYbIu(RPpq!4zC=UmGODiuq*1AbI~1cHrk#556mW2 zRG6{%Q~DWFpk}CQ-uszcwD?)k)JBLKFmmT=uZCGfUewTo#Ti3y^&G$as~_dZe&l;t zU0G&xV~fRwjI+0P*m!tCsxq7{vBF`cz&nMO0^VX5uTj77FMbQH^ef;>P)d`jba$`6|E*-n&8JV@jUwT~ z<}`~VMasazef;sq+1}pf^y$;}(YcZk&n|~2o0LkvE)9?8^RvNpxRFq^F4T~w&mu|T$_ zn^|WVvvCWJo|c0?JL9gp5^w|Q?&O-CgkbOjfe}osZHcGygqtLIDDO$In&r@ z6l|3vTX?N1sk99EtDn&A9^<(up61qD)_C9h-o=HB8z^s4GUxo20%KHY(%!~IVh}L} zBM405jU)Ot2n0&UC7$y^;w=@{fh$ULX65+L{l&lXLk*7EOuR3zhNIyt>x~i$H*tS& zc(D5|>(`#-j@#eL)%Axs*xP1qZjqu0OSOK#&&tXQQihPpJkO8Nx6(9yX^7HB82Aj$unHvxW=`spXc=Hx1f_bCdCMBftH$M z$KHexE%p!2qoqTu&eVtojzA8h(U5k#g>#TA~dE* zNAqIpUQkW16*aEH(PvK#-iz87qMA!p#a4(-H>j#B|BT>~ix1DoNgtDuXBiGr-6mzd zJQWoMFh(1JqO=2aw#Fwu@i2e>$Nm&rfhjC2^KDiZG#4%n$XXd1i*X^$)C9;mT8x(Q z#-orj#aN40DeV@RA`c-%E@a2GI=y49R(Ant7Hkd1`!bILN%9K1G$K(f^%g(j^T{)# z;T}#&PM`ipo__iX(oCXtQa|=ir&CY4v-t0YDv{#f+F`22_7XDMe8f zjK|}d3EGD!9P2rC@+_@%#HGt$01T~G3rUE{nOIm}eLZWduSE!lDJMuD?HG>mTc@-* z?>)9GnV2F>a>Xv!p8pv6F#by0dngkfCHP!r-eY*s2@I(Fh?wBPosv70#if*R8>kTSs1c z^3pTT9V25Yy#-+-n>IlwQwW-rhdbbdjd%&prjrn)wuwZxnDksj}jgZH=a_Iu?PMf(-hnvrxqt$BF8Euu7;%vjMmTI#G z_nVZGdDNK@#Dv7wOY|#OdV;?Q>=43S(jzW+R9CIJC>_gKZiF4t=qN2 zD)$3=^Eb1&_C^ZfaAp+4E2#wwH#RTlT(n7a3AbbRP7k1Rd~IqMJzKO3DE>>HskF`6RzNfxCoO{)=ZPoyyOkBPp*D` zrF9I)hJ%BgV&q7aWWK9eTWPVj+Ged649-U;rzYD9fsAtFS?I@Fd&D?s%EgXmJBep} zSn#`_eUKBUPGCw)Q5cRLOIcm+;7x&$F1Wr)iI&w3NXCze7)%-#g~2ab)~OR7iDfJR>*=q7zTRw@kSGjie%bYp$ z4wUX#cZ2&?hhV{-u{NDbb2tn?T(oopp(nn=@lUv|y+dau0W zi4-U)o*GQXUmWF=Z`#}1xuCl!LHukokq%03mTH?K;GU1wSz7;>YGzBRc`+H-~o$GTjc$hMMGo9`{ zgMN;X0&Byv%=$>bijOJFvLMkF;TT>N6Ra;$iNbr0@gAi?#4I-N1zvy_I(Q+>%Bw52 zptHzm`G}TB5<&t(pg|@K1`}{Ociy_jTi$SzmE{%&$KJt&i|gy`Z%r7C9ivA1WJNNP~dPPur`EOGw(S_rSaCHREl!~=Oj`Ya%UKuoO7pc?>1ee zX}m8V<88eXB|TS}-w=H@*D_c=!wdj9YG>&}nspam@_=mn2EO zP`fc1cr+Rv;rv#|`fAFppoJTkapHy}?d zcqPgHV2m&&-}r_TyzR{=$T|s^uMhaleOFk&nzOTiKw&M?r>I0xm=QuqN&_GI_(i_= zd++6@n~t%$xy@X=g-1@qGo?H_fmgETnfEJrU^)aPv~T9)pL~+P@RuOT6y->>*zK^o zcF6flHcYn8BD_ZiB14E-@)DhBTw&_iA*F%`g+Ni37AZW4f-I9wzI)SnzYe4!ZgF36 zZ&;Gx$K%fp_cn2MLXjVG>g;QI`k^~{_<;xb*7v-R&COAb=gx9=XB#5~QN`uUmpOUz zBnt}*tgf!s&9Z9N_0lF%qh|BVYE{)t_~z_Xd~k4pl(IH%Ke2X(E7vcuyYnO~t8e0P zxD5opXlX|%(PnA+9`^R1r7Zh&(mAYEbp#JkFWd4wXEGU+r5XLcVe|3^x7@M9=6DO# zak93+k>C*&NdY#Fv66V_(-Wf`%==aC` ziEq4#-Q5vid2x@OJ;%<~A#b>MiI4uyR^)DrnWW=s?ppo6REYZ#rCfkQ){d?5k&k_m zkALC|+;i7!c<{l85khfdMRDb-#{y1)A^}{jRt)|X5~UKnHvx`w3RyL3AxV@X5rTvM z?y%`1P2+vpW%F02@+L109j`uJj7NvVaXvq{AQ&8O@eObPvwZf`Kg-o?FS0OyoTA8U zh@e`SRgL#XA%T0p>!PaM06Yu8?& z(>_M0eS*R=il6EM6JI03>}%R-Pc!Aps=Q3RqD z&I;yQEv}!xIBL4c?*SV&FTvNkCCOLhLG&})fw9+y!YhZuBU^p7` z+B>@Z>F>P@X$|L2Epzs!c?xeie|XVi@ZS~GplTK&arUp z44?k=!>n)baqiq%ieiG!EGx?vZ9R%=Vd{^#v{h1)BuOI6!N>TY>V&0{O0m4Wc+fPF zX5xL>HO})_>|+zoBdq(#c+mfTYf7@#Jo|e)+asi@f>uw{qKSmT-Q=&i;U<#T9P9WtkT*yg+}Pu)Zx5u;3U*OGe?y;C!w#S-I zw?!cnoatjjun2^pc_+lc+We zi-N)oID2-5<)w8t_H(v2hunMDDrqWlaWNQhUK{K!ec;+w&`@OtUu_2EY!ZnQEUwvivDH`yD%-qC5g zMCpvh#p7)5U8UPSOP0y5labzt`QD)>tjx!b?-O9WUaD=r6N*k1GN`rSX8b{%T ziSAv&=eCkbJ8wY3;Q=hPO8)lW`YwjK+iXX4}bV$v=YhEf?<0vBe*Y{ z+5(d(SH?%GgP%^-m9V7MYIAV7ef^=wA8wjRgYkYHQ>9E^v6n)!IJc0i(td6*JPdfQ zl4vRD4@TVkwjW??Z^Gv06*`?RMUnHm*S(IjXU|TX_Y4Fu8+cjaca^$rR@qkJpF#)@ z4-XlS#|R-vl7zXrxg+YV*}wbJ=Bx15(Q2o3GR^+(3n(4t03}uUXDKC?lH8UEeVlgp z7DmO8!C*J!`C7|lGO2Oi@p#O5Jg$x5cSi&Ex36(#tzb0XM<*#tIa*n(R`w-HQa{Ja zlc2&Y11~l%+LQ*u;|kngKlN1bg2MwtJN5jXpZPwv4@-XfAAFQ@0;|hez;T6R(9anh z3=lZV@tE!PO-`KX^7gl%VtjCjNHgw#>INQKX-QOeF;V_rVdvt3yWOeyhhnwrQKR#G#N5= z%Ml0}B4rYFoNhK@JYGj@MW@rFC<-Q%$q_G#>YD3ydH%vx?p>JUmg6^ZZGD2&Ep%$= zbUK*4z}R3gZjFsMngmsblwGYAxWH-%HzQpi={*AB1YUTGiAU!pfBkQ~pRJ7n|L=eF zL3FFb{DQ_h%WzmyOmc3&WsPro+nuZ&&lvVS{lf_>$2$lan%hGUp6B0x=vh{mmRUZ& zK%N&o{OD!wecdVM=Q|)BMJX8$CiLc0oSVW$2!W_zASI)aL&nKGy#6Y>wmEO><)IL8 z{P+nz{K<#-OMh{TyY9N3M;>~BObC{`lEYydQa8LqDupvPo`7U94vHp2M3IJ48evBu z-2J_Um8OX_jrZl3aj$GgJ1Z<&=r5V^fFd8!ZY`jUCee!Roh#gV_j|Z@>2aQZ=0Wbc z`>h-t_K#q=VG%QR%9>T3Rnp)zP08buu`Ema{XTh~lOze#I z{eM9T#au^nc<>@iD~m{(f-kW)h!G?XYbRheTAn3M9K+E%f)MvU8jb4jG3!eqm88{b zbN;!@-2K`fJDFqX6shyrQj@jXltmdRQcA?2Oh=NoFxKHLIOR}Up{&GOfmR9Dhg1q7 z1-_I__6Gdbzx>TCEJ=Rqr+yoibntG-?z%^)l-qAzvPmfKr}fkn)8uJ;D$F@V9Z_7d=VpSez@^NKy*#NWyqu`+QX2 zFDTX`tuFGLB_*j;pC3&cHd)hnzmCe(D|_OVQj$CW#QxT`9b-o;j$Sx|djX}zxRlqw z^-uBH&-@e4oVkT8n`bf^*L1SkCRo`RR*e}T&vQ05HkhBEM=3?G*Q=XxWwf5>`4O06 zwy9Q4_s0L9ZPLy;jCXW<%WQ01XE@wuZtgVW$s}NwKAeC<(t@Q#kz}W_e!yfhK**3R zQL!>+6?jrgw9@oPioKmpZd%NEYV(jRTcRi&tyYK8WP~>YsWnO&q?JgaNpuTqJW5-X zwLtYj0YpW`CD({b#FMsKln!Vhd=cn$qUnbI&QRZVvgv7q5_HEu^r_&CT(Z=l8*vbXz@gXE_+; zEFD`QOLS)a?K+^#l+$&bkmEV(o^E7#8?ET#>vw+@oT^S5x((lw{hacF?M#g zNLmwmnPzj4p_A|?RFt&YWDTVx771SAr6be4xFFik=txm)s%gA0t0t5375^B8Q>GZ@ zUpVOZzo$39TF3Z!Z#g*J=J>IDx#{G4c=WMHdFMC1n>?2YJjR)tmpY5bR!ulb5)KXy zxN_wRx7~Id-ENmor*kAgvueV#-oDd>+UeALqfKHpF-?UU1}R#!+8svuI&Ki7q0AZ@9jNK&nvDSI?^P=lsWBo z3u8(O>k(;+i>_*_<}OEkIuOZX3WKCHC3#V@y4vQ4e(()^;Mc#%r5E?mi(U424tdL) z-a&UEWzcu*AM7%o449aVPk-?|&pdI7<@t<1`Q7)Dbp`9!4$0ajWF0oHj!BdbsT?BE zxdPil0ts4M#v=m)(o8drkdGW&A&`V7>|IDN7EyT@jN)(1(+l0Xy^!+4GY35Q$n(7G zop0h}zjJ}KEy!AZlEV((nBbdXsf~Gp1ts97UrTAt_+b3VR&n5)*3vZIud9~ld$0J% zm`KT$?X8a>Re4q{k4G33IJEioB$pMAtPDCVnGLV1f7)C4zibN`v#T6;!Xcmf%!_>cx1Zx+d&pdOj-7)M|Hm(UnhP&%gZ12U?l_%RhxrA?!w+1c z-yiV)|KcoGcnYAcWF65iWteJl7No>DNF}sd3FC2?Vyj+S8>u^oP%5|xM@UD`SXa(E z%t;|IwxHcR#)DschIhU5UeYw7m=wT1sh+2_37&H1eRng-$}TDoGbl&6{=w%br3KMg zH8hR)>!_Xm-BF~@m&yc1mYinyYQ=rr795K6@%|ol`XH_$<+{0$E+~2Puw^}WdB#nP&Npy>L zIwUW)>Gp2N6#2|lHk)7O@J^7VXK>b%m)ju24J4QO5u^5YyUj3bk!Bg2JC^x{Io9SC z&uuH(*)ql*l4UK5WI|q)Br3rrQwOxfXSgKTJ}RYSBCtX!O_E6V4@UgQ58cm?{@^!r z{{t7<+RH)1voBuZz1%^&H9)6|-}>MaTzGb!rQ@pz0fVCC7k}|V{^a{_=k4Eg8^8Ih z53;j)$eEkwc<%fGUf3G1t#I5RlJJoM9PryJK$GZ-R=@TY-X353`hBoAHfJ&QbMPQ3 zSvt1FXTR_y-}>-9+>yNhbR{C}aNP!u$%> z*`|s7UQl845`3*!CV9nQ4n>-^pPr2Ji-X~?{$U75eGj(9;oc#4-1)8OxtnSp1FG)?JrIyKfD zAP&b|E5(@&Tron4bn3VzXN}gwX1*|>(>1(O6y=0`G9k}%@;tBE4x`bC(P+qUIK(=~ z=GHE~^pKTwh)^0L-kqi?Ng5V%wM04|;kA~inD`v1XCkm4lwxJE&4UkKXJ>cF_x!1Q z$@}~C7BZfEe3Qo>-(=Xc!D^ zu3Wjo+S(fD&Yi0lU)7{lHO5(&vPw!kYkocpB~(pUDaG#YE`z~S)A&bgEJ6lTai!)-vYRMI>lAj3D5!lEszqDH za!AvZ10h-18?w~dXLPtnlFngWN!DpGE+*K*M_#hV+JO1i(2AB|MBuC1K!r=wjI=e! zFa7)b_^W^UTY1ghr+DGQ4&F)r?XP^ETW~;CJci+NCKYEEY>5wEUdLsys9_2hrCOBcyN+Fd)>)U@^UiO%%-X^{SFRl*^)Og>nohvEV+>Sv zBNQ^oy=^gOd;8*trS}x2X&Ok=c)z~d-rwd`(0P$ait+x(_xG-S|LM~=$Kz-Gq4EYV zG?T%Al@sT<^{#K_%Mbo0-}znNLlPHb%gf93`~7;;T`kanBaL`ACa8iBZiE~vD%z~C z!&IPfbTXdx^d(}GLMXB{qqO^YQQ(~pDZj!5+LWILVk&8aOP4-|Q)5cAfs%?+XjGwU z6S%%V*t?dJjolqoV3#ZyB6~1ShrA+c1ZynlulEh)GMHXeaY1q)rtto4N28UpA zIpf(U_IUh(i~QgZzL~%GKYWDV!W>(BBmUX{@@anZZ@ruMe%oC<{mf2eX9QDrgr>JN z&*M+8^X>0_9ZM@6?z`^=-t(S2$V+(SiM_zpl``VIVM0|(<7|kTS4tvf#K9|ICPEEK zl7#eRIfa92;~WT{!9t=E8Ps$*+MPMBT@~E_(Br)2o;UFPrOODFqtqeBb-;)aN?P4) zW$@!wbh&=*S+=h~`|I;_$FN@oT576+8vfH3SE+pEUx_4bDLP5|TZacbWo{-=aW&;M zDOe!c-M-45uX_)@g}Zs=k^AX&+T?l8xpU{Z_uhM7!oRI?~j#Z0i7HI6iGVeJU-CL~Ep%r%b=U@|@i0X}-dI%p*;2(K}= zAdgD63T_yW$BafJhQlG_(S-i+kje0XOl(t_L$p?Cm4txMNJFchr;@Thx@(=FlN7C! zdXff*K+;?8@$3KLVb0vN!gqe>8|ZIt(_8Cs{=zOl{XhH;JAKQUTh^G2^QbirP*9dC z#(BZUl^t$9dxEb#w@IECyy4!{(XP^=Vu-0gpk+cU%aA%m@<^qSqJl=`G)ph0DpyPf z2$qer><<~e9KsFS;)TcgF`dpbPd>3n?n_jbAgsl?Eu1UxLdD4YD1tGD(psD>nCxEp z!rA##kDQ!eSQr%rIhWUMi$sk100Evz!*49wiG0qzDe8OAa z{sUaO+~@k0=jhFKu~CJVrs?N$x8^5UILCNE(*%vOaR zI&Y9FOlsr)E?NhFgDT_E`59^&9w|J=PY}9CmYl?tCDxj+g7b#PI~tA1^OD{DF)eXG zOYEXlD|j%-@O%=T)KJBgnkG>)MUsYJg{;gX5u|kITI}`(zw&SIr36BHoXeT-cG%jmTwTA$;zFBA;lUmt z{Q*|WVA0@$U8Hmtt>@U?Tc_Ob|MJqp$>8*+TO_*GG?Aw9ejTTH=Ux?;caCjeB!C;SecZIv}{XXu0^aUIxX_8Rn`4I-gY_qL?fM;0>m3U%r zZ?C4GNhz71pJ!=l>1!_AzS_imBNGB7Nvas2B)SXjcTLrE7-vcCay#!%P7?W zU*bJXCe!9S+ki)-5yR1h@nnb_UZj`|P@N8m)?`^0CSa{+8nB!SGIS7W_;{+w(gd9( z;9+&8$EQC20{1_0ng903--9YV#YE7XPnqkal%)yrIa0b3fZzk0uC z5`$$b7>op8dFnc?EW=obH#ySpA#K2fy$di5Qqf5gcCSBM=Htn~?@x02!x8=Akp8e) zt~HJK>nLmNtKxFTh9%Hw@|$~`8+dQSr0b>U~6cd*IrcfXt7;%m9@zRxl@ z*TV~08^u%&xSF7<>2DUZ&9aRB{e3Q7x>PTpk|beiY3WF#zLEVfJK&nG_e6wki!B)8mrJN<)x%~h?SgevHAHu|S( zqLme7rCzI85JgcON!YEL_Kp4xl}B(zYnz>Xy%2TofsDU*K6*(oUGRj@u?Pg#fYM6{ zwTm%(BwCVBa&&B-m2Yp7gef)Eedf|0&Rs*4w~%HnN>iY-6gwFsQ;oK+ro;t#Y)Bz? zUZd)y4TTgQFBEfKPk)&3Pk;Us{Pf@XZhqj0-^Q>0(ic$6k~9%vawT|BRJd#_vmjDF z@`>lT{kBDJIOG<}fx&=8 zY7vq?ybXNl@X^4xwFL-|@B-xpooBD%d}2cGdGtpIzOV-PDv7RWXU-T$ApuEK*#sbd%#JYurX#y;*lZq zO@+zbIZqhKOC)WsT^iE6GsT$_VGYi2L%NDF4xMCdZ$HCu=kiByUAgVclhWczn#R#U z4S%rm&c3QHr4`zkf4h6-x-W_W&P~90ymi4n)q7lNFlC97E%pzuvvTY%?tIPn^5DY{ z;JiVn5$ltx=I}oF;Dc;!ZP9AAj<}C?IvrZA7DdcEoBiRRwVSNd5F#t0wkcF9NP1hX z7%OjZLZXFWGU$`F7tuNkNAq~osG4o{t97oH%X;T9uB4?G(JWw!F+}f$S)6w`9L8(H zUVi{~g3r$f{|eC|OIjqU4%4HOkSJslo3@VGY$8FBAf*n{Sfzq5ZIm>uom$}h3w{3a z|L1r3{vUc1-~C^_iNV&GaWPeXO`k__`I_&|^UU*mq={ubn&5rGtv4@{PdrLUjD^*u zHl_9K9FEB{Su5 zh42DbZsN@t;{~bKTzc+7RB8XA6Ngq`(3KduA72a!QNp1v5BH7))${XJJeeCUB;>-8{F7JHjdnt-TaE?y9!-WeM z*xA|PmRoLlNy@Ob_DG7w?6fs2w3z+-HGUp{pJf@&ImY8)A*fZtV7Q0#8LP)`Wjvgq zgb2J)Pe_YkIzh|mJs<#Q9a3AMO*=i#V6=}h1zMy>GTN%7iY(0->V!mVY;h6YS*O)L zNs$jpv?fVYgb))$c|lnige}?Fzs}p=`J)u$MIL|b5tbKM<0KaF&0eoZ zx7)4Zh8vj)vzYDdlsmhOv(~b{zD~d2ubXxF^9qiXBs#^EW3~={x4f05`Pq@d39`f7<5a>h(1D7q57kQC(r zIU9jKLuspgDZCdbX()Y3uXhJYl2MixV@;T}BX%pQ$7^jArG#ZwWisxJ#o6H0g$SW+ z9!I;|=E{X#zVPK2_?GwF#dm$@o4I&lgNrZhlBSw=s*zem)t+YmprG5+yzzA>xW2Q` zmFo^Ol-zMgkM4rtnWqoPTJ6{*gQCraKs69DxRU7*WA7thIHXU^#y3?sb4U!9soj`1@4b3dry^tk_?d@I0BhPDJ z`#zH77~5Ox!R|0XqTy?az(MsDMoP87lktucmrUMbT|t(tP^fjR8=zbWvMkGzqA2QE z_zDXhqp;-*4E8Rta^g)$F(gr%T!vgRr4_yqb^cfg4)rLh&`M&hoH2xVGdGsdd>4<; zb8tB1@Bj4g@Mr$aoA`;Jcn_cZa`bNd=c+`oj6>5uPW+YM6+&%q9{kKZ(N~0cZxgjeh)&-v$wkuHtsRU ztCFqFQraqSULnPe_Z^g!@mGa224nZp3cOcGj@~sVSjxbM^@g!2SXg;2Qc6mjW6F@g zjCa!r9Z!7&a6aPJPDEBf^sn$PuGy*^5M-_J{T{jhJlC%5@%DF}L_6}{#+y?m7iPxH zC@fLq&C%HznR&GL#9_U{7=>_~WSLhICw4mLb(wDTESiu3zBf z>2G8*+U1EyKgDbBeOp|_n3~V)y+>=!)vH(Q@XM;1mt|T1dDY}*VToWa?vc*3yLX-3 z!p*n6i(|*`=5T+=!QmE4Pcyx|5Fv5~aU^P9Np(a%Jd5|na2iTCL1!zJb_-)iXqnbN zyA?OLk}^Bzk?oAh;5?(z4omaL7)|yA>|hFn6o^FOokDw!aGuhXNRh+@Uw|U=pgj_Y z69M-%CJ)cWO4_NSeSC?>pIYbH^LxDWTW;eWZ@q=Ly!jL_JiE)&&unvf{Sc`Wu3jy; zdUb=|oZ{|V7rAhyU?P*?!|Q`Nx`>#rsBz{B;|)tk7fp^lAQBapkTdV4P&zaK;Sj=y zXd+kfwm}I?nszxDJ9IW=|FBO!u;t12$-m;TQ^rYCP2>H~RjGV6|D!5d=`NVf%a?!T zxo5xdp*!#XHVj>|q=h1-EIm@jbb|nn;tBSF8(UX7bLaP+ePvKwP0(&aAh^2+ch>-c z;OycM7Izj{BzTbEu=wJ#xI=IWgoNN4Ah^2)3GOa;^VYppx9+d6?)lfJ=G4qNr>A@7 zneL}Gh%85>o{5^4{7Gd7or$s`ZMrokC~Jr;6e0Wk$-lL=weKsY#p=DzPo>z9yVvOo zPhUpcm;SiF5XZL&Ld50ud{)dTNoHmQD&fbpS1@a+Hfy78R@nTUR`lBectn5T(k3Fb zvfyK0A}TMT%nRc^4erOq#KFxmbKGiGN>8xHv7d~8wC1pvhv^EJ&r{80vz zPLjUneKt?$)+&sod%riM3_K2DWhh@_mojH#T2Y;UjUb>d$PHSUd#3|%ykxaI&%(<| z2S@Rng54~WT0^i&5}~>2xrQqvsRXzR$Zras z?LCSR#-{Xc!Thbe`(9Ptd{@w{(lqv`7||?358jgG`q(ht1^%2EfYHFTGH(5+vrJni z>MX8tv0~2dKX6;v={T?I>yV5N_gW%JL8oG*9?gM_MlG`a7eQ$l;qOJ`rcgNSsTqUS z{jVf)n~x=IK4$E|JhT7woC=F%C;pn{E;J<1eVmZjpkR{ER=`&y!XJsRABn6OBWK%S zrGbrQf8AB`)W^l;iesZ_%Dpjbh;rSv*|*4c88-L2J9yBQjkEqzTdz zKt_06@sNTqI-%C*7+w05c{vof^cldk>NPa)6j6r3riEP5$Ij;kBH%m>wAUSRn><|Y zyp!*}>J#9s%IO0HiR3T>5VaI?_Le12jpKt9^wXZ2=RZ!B*D=L__OW5)L{xh``LqRJ%gc3Cu`^HkOFlZJI9*7~3(I#h_C=m(#|2d4tV`@OVev>d?^b*oCSsOx zikEk+b}n#vc&He7SQufzs(+ty8fdco(|{I#b#Y_~M|bI3;yy+FT@~2#aw`2Nz<@~~ zDZ@F2yH(mgQph|i8E77bPe~a|*wm71oL%RANCyI`(}(sLbVm~Qlf#%_5}++L*tQ^f zb+4P{`tn=ndnOv1oa2aLHpRygr`6O5kRKMNbYQ@mz+}JWdfX#nLu?Y71^XLBRNz{E zRTp8okzeF+I+bR=sxH)D^8AYQv+zG@fJxqUgkct-D9=>a9xT9V6^ z^kXS_W#!`P8aO8E#IT*#yDe`0IH-fjfwHDbe9^FEy_%M5jyxUpZE6x+cNkK0Rb#0*=VT+ zS47h5uIHgDz>rx(P(c*oTx8#sKl4FaM)VD;VrFywHW_xBa&N!wnB4raaY%PNTB3aa zEASqrfoCi>t7{(bj5V|)#j@JuN8etZXa0mvwec;{*1ETEmdtrU9-K(2%67EMWi;J0 z{xWtQ0m<1{AAjVhxdt>Aq!cGB1UG3?qo74b4>irdSL|w`Y=ts?84MJ!#k2c8tIEY- z<409qHm05DjwwfJ&w`e)(OS74HvgI`BV~I7TKePm4zrS~9Xn}9NheT%mAnTP$mX7C zrmU^l8Xl>YCwF6@7VKWVO)IYA(9y|O9c7A}{Otuka?4VXu15BY&=>ApVQ{}3A2J6pBh!yZzsC_P!Qug9X-3ADrdPjFG{5EsF9^#zD?gf7`_tBta{r z`4ENM8Z=1PuRLK11c!de=@{(qC~$z)89!l#6#hmZTj)ESNkoT=0#awf%ktT%^-2E< zhi1#`{>C(CD7Bg>p>_Pjq*tcTTX@a&pKoT3pC3G1omV};k59PdnQrGlns{dk^O(&9 z#*orQTZBYwHa<~>dOB2^%9W8|MthEb^yDphK~-{caCBT-_d^y^onKs%4JHD|dI&FI zt2M0=KdN8^=@LK~OePR(bt3oIy~Td6}m`x zM5YgEiT=(z3jEy6%FJB{#>6QM9wZjS8P(71o**DJd7S}5$DU(Ua3jL4DtqHxTbPVY z31mZl9hZi&g)(A@k*n<$q((Z|e1=E4X!^!wPdBYTCEy56%^4MfPNap)iP&BJET=4{ZgvhFOyj)DP{=92T-%mumi09! zPLP-ff(Ul#G0m+3BqcJ65DU&9FUkraF+?r~SO-`|F)|pYh2L}7MYO{56!x7{ctWyN zmp!~R3qFK-QezeJwiZ|uh|$Z#*3tt*mSN{HXVmVAi928~>W$#1G zI(eD%^zaEr^b#!d_{N?epiTL=f{pm{uw(wsQzjkaVTS#(+(9gxzHz>jTEUTjOE=mty3Y%i)+b5U6yDFOqDN2iv<|#hp!q*5iAzOVs7V+?3J!JS_ahkY#(TGTZ~~dfMK66 z5=6;p5PV{6m0u@Ig_RaQ=aDstu)bn ztsgq^P(wVTKHA529uc;jJUB5_l2@1Xug>msZ_59IpKoj-0DnR!ZIKTjF=w{be0@CU z0(M5Ol4wP|+uW~y8|oYBcSi>^CWz*)`EhK2M`_WtrzQ-LP3+VRS1|od?9AB1F9;rR zK-K^=u_b72w)UbE2iVGfG(v-8iB<~<3zox2_6t?M<%Dc%E-mc2L@s<$Ko5#XhuG)1 z))JF(jLfQ8dQ2*qVPIT~NWiMR3yF^m$=f?LCojK5p#jD9i?;|eTjF@3F{_GUb7yz4Z#pRPP#_cX174f( zQ^zlxkrvt_BXlPR#_jJVCEqhnCR=K9Ed(;EZd}vXQaCG`VMMx#bhnqv?M}@{V0cNFLhOkjmMrnvuQQ=DhXQ zNc8zl;d)?87H@hC8%A`K^j|CG5FxN0(OdCX(%)@A%09RhgEV@LpDy5^k>j$2_4GTj zT+T98MM(H^vb;obBb)h}jmm6sy{DR91}l>jwA8XrE0kj?>)Yh&oD2v~@w;QwF?F{p z!`JD6C6kuE7XS@0?qj^V&JnW23W$Z9R}L}rp*^Ou&O1+X??!x(3vypLQ30rftr+k@ zCb5VwLvgA$Bo-#D@(?VCs1+gSm*mFEgr{X*yQYjBrDmT4gN1wFjN_UO`hhOGq%zb$ zKLgRCFJ43MUm2?k!J5ie3$ao;A#tN4*^kxV2A)qx`ea+2*M|;{9W5~8xPT6CJ1Ik& z!sW0KjfpM zY|C@Kfopz(TK>e{z(c#WZG(EqzXO1@c{C7}PZL20N5+4g?kxsd`%M!cjFOqKcyWzB>d!ZtDZARr|rU0hM^L53LJsMV|2;)O%bxB6w z;?%J=Qk+KOmer+G_OH~ZrK=gs+jAcOoGO?y(QO34gm)m?S&-$1pUmEQ#4@Ievb^d? zLw=co<^Dj;M>&oAwi!K#M$V`tGjJ1G?54<<8tVsljxSxa-y*czDk@p_%L>y|jZZS> z#|Gw64E0lktivn<0&{HC$*?$9;5F!=-jyh zG3!rw_7X`Fxae&-Mt^I;v7RL#^@vjqMTFL08IXyW#bKf7b2R!6GUn?9r3pht|w#zx%*v>naoXpe!Gpsn^?I(@>+qPSEVKcZvZxY_9a{Qg3Wyy80joq7r!*Ve=g%o zyLf}wJ~;wPnsOo8I9d=IzY9wVujiWa5efZtKNsJzXF{;qm2h-J$*J(ABJ@5rxnbf* zDX3>qe8=xr%E`em{d`BN|7b=`-h?;(V&Gg8PuMHEiD`wb5*w3)7JH}__uv&BQ!$rp zL0X;~c6G@rL%OXC`-RMUXw<$O zs=RHmufFSZcQBVy=>0t!H>4dT*kU+6vO~^u;jyowcCV zYvWVE_(<#>iael~enOqY{(kG`6lQDtkfwz;-B_^QYcbKpEDlC`9~Kq9RmfzSRhtg7 z8W-pLLU5BXORi3v>glqxrIK&g$jmv_k!j&{Mqxq6Fb0`*-D2~)7;TGBN_B2yjB~IS zovY$-s1B$SO=`#k#J}-XAi5uomg+I5ysr;zr4m6d+U=t>A#cRDhM9X~dOOI_KD?nt z3cj>Ce?0xkM3%vZKqFLJ6W37H|6&`ro+xv0u4X1bsvjM_L&PYz_l#_VRZRHF$?pnf znS04hDV%Y5MKd>zgFKm#LI`O7O5XupYQ`xfnR@m!yXTn8y2c4P^`Og}b!xzPEH? zA^UR^32|;`77=`wSwf=rCnIY{kzc{Xi^Yk%{FKu)vDZra-6)OPX=Z)Dws#YZqRQ?t zkN5xT;W2NlH4tZdKS*lXCEF=JcA{IBITcIYt&9!5e7V ztoLHS6`x9_sEECxC$pjBx~>;tlXGe0;X&Wvkfu02Pc?XEUS+}&+S}~YRhbbM2@0jVd_$HSjy>_AxEITB z2=iIT&$=}R34<_^gE4sG{_f^bW*0|B)SyZ}EX1qL%}@3+m9N#UH}|%(tG*dXiD%>`LCRL?UDf5bO>x&( z4oajUb$pX`?!JH-^E%V_$gO>VFwQ@wXj9+BAP8`#nVGiAgs2s;iohdEOjN;8rlk2K z*JR(ttfPm}q+9i42Pp}u15*q0b#5Qb()TIJ#nQ}N9~yu$Es?wX?_nu4kq&WQ6&^af z1sxROiVVp}HVGr4%!cc|DIY|{;85$mt}fNG1vgLxqr~g9@Lh)GzWbK##~E)+{s`Ji zH_?|s%)!prNt(1jndJXGUqw-HSre)`Bzi=O*yOR#0$Wxnv9)nW9T`t;7i3W;flic>+za5<$YPvLqabJ z$kXxBS5!KKJjpO^>~z^PSk_83LRYp0}>FlShn?#-3Nyv^Tq?eB8%6kFLp|HkMm+ zSuqC_e6K-jiRbgIbmh$~Unu(UowWt8AehuQi(S?ihabM`b!>0CJV-z89n`IJ&tXO2 zI-G^cC#w~tg{c9!4Pz`tW^*D*?Sa%4D7dRCW$PJ0RN(>dH zp+i=iyJ{^t;qADH}e)M|(v@l-!CZOM0)Y^Ur!!x2XRb*6aC<_-II|T{b zH|7hjwa7teZKM-Y$}UvpOuK@w+xI;dx+Ek_bQ@w@RSQTIz+$vb?S&wn-@ zDy7t$O7#s43R$s?6CR?t5}y||V&zhWp5JF8mXowjH=UcIihw$Eg{#t**=JvG|E-#x zt_RQX!t)pfQYD<6(&?Y+D+u!lK($eAa3o52MMar*Q%)_(+Ua{z=`k{sT=%!mbn3^) zsrKL)^W-joV60$vf09K7G&lE0WY1hydG}}3pOm^T%!(MlR3otK$MKXff<#DSFa@ee zJ4GhDpP%FEA*|RT^8uWsY%T}X4@gz`~%a;zoRV2y*QUwBp5AQT8qPvJz1&G^rPEP z+hf>I9QN05=ltW>*O`2(GU1t0fKqW<$sw^foW)t98AbM0@^aH4Jp&yaQ-QKBURhmC zR|DMdV*ZLR$n~Np*y7iIX$ruaGJG6kTyYOD=2qLftb7CAw4c}Kci&`nQ$|;{MBz8; z$DdETI$3`uJ0Z4mXai)#Gfop1uC&U7-7dCwT)20-CUbYvStR>zciKWb>gyX~R0v|4 z++*%=Eh?Wg)GnCvtscn`!MaY`&nym|YNFc{N7|6|N2o9Vt*Ly*({z#c(~l*GuWsK5 zR`QgaJ_oCPlPUe22>Oh3jNSJFf3)&XKfOhvc5e6!F0Rr%O=c zV}-;i(TcG4N5r<&4x_S3bX^I22i6>ErY5A9r<_n+3b2Of(&BJ4J@?uf^y5!q|R3l=#l?myQzSCEu6%R1hC9QH`!8cM9^tSd$^#6>O{lVVS2 zWA<(7Fxn97l{GLcFa93pN^}<-#GY@vLEhJ;0o!ltKv&7Z(Z2$i?s7BQL2%bqV@8>J7j>H}H)<D9*Hrr7lv24Tatw=?_Y(Gm)xJbDl6dKwIrdg$`^eu=1PGy#W(|fOAhY%) z`wFF1Q`Sw4cjCFJtO4V=B&zW=2%c60xlsC$uaHfGumEif-`?97rMfS^LnOyobv?~! zW8IC`w|l0vW^;%Ns{#RR!d0^$|BYMf{i|3$ zVIT)VnIsR!{cWnekQ{m30BiGI7H!ZjnG=Qcm(Ny$7mjzjnp|93AG=e3|6PPV%yy>z*-7JJKYyb*Z;R6I2* zY08q$6eP3@egSs;YS^V48R-YdHbJr^?U?(RXh)-YMHK~=LF_13YI8+8TP@LKtp)?f zqJ!7>io}VMStw2q+UNt}DdX*;Y2Rr7Hi#d<{W!7TRU)>CLYIm{*wJ`dWzaUK{OKPx z@R&JDnk6p&OYY)n@xE^lgpdl4%qbd(vQ~B=DVes#@=I`?`Z_@iZaSDCk~CGV2^%zP z(kXPI8Aot|wa!qsxyX)XVl`g{@6+_m=2Gvgv-7h4rEP*!?$U>* zKQTuT@I2e`R)z}`5Tcc0mL+YI0L5$H79@pH_~W4&0DvWFNS~-w?UAML>?`SX(2FrK zn?Mt;-Z`eHHymJn|ADlluVqR{;w}$!mu+MkL`<*VcA(dnV@~7kNPZe&X{&k)<;(sf>{~n)Cv+(1+)RZ|i>lOHX`?O{0W*>JDcSTEmKQ1uTT8v34zNiL(k>&|dmw2$J z=*xCEBHX;{BcEM|2Lnl zDLldxdwvRpusH5ioq5s4o1jAovy-zc-;EV5&f-=d;SSNI+dAbMh+ZCSJ9jh9ql-0n zuiwOfU{T_--yg6pcPwWgf3UPIFGI}rXD18cE`wX}0KuIB26qMz?ry=|-CaU(g1bY4YtRr}9?9Nk-*aD` zTlZh@RlTY=RWsAy>fh2{y}IY?Z^D(|OQRwYAwfVupvuZfet>|0G_Bf!0W9!|4r zynZ1%$Y?u5Kp9)GgJtz*>q5026y#7NDuUF^I+8*5MTm0U;>j?f^8g z27xJzLFSfrLX>A6UnnUoO@$~mxfR(I9V9>&mNK4BAXU%zY9^l6Cj6$9BEl4c?toVT zwjeN&!rj)!&Kck?MEOT9;I;jm%t}e|2LiShq7?hBkU~pQnL@(e2}Hro!ozIB&c#i^ z%g@5j!^y?Z&qTq&#?Hse#>dLe$;{3J;9>)Ca8UgHqI}inWNHTZAo=cZU9VR{lonvH z1Avv)&CQL)jg!UR$()s)pP!$Vjf0hggZUM~?CfC&2D&rbIaB>hf+Wb<#L3bDY-w*t z@mnI$*xm&!MEPpzUoO}>C@TIV*v|RyK)r^H)g9=-%Fe>ZYHR!3uRmyKu$1d7^WSFt zN3^q=hXaW91IXFl#mNLD18x-Vj`9DB^_xv~L zYsUO%BmNcM-|An-03c~^;_}-QS;>E8m8rdnr77SaV*#9|ylg--K7M9npea8yKZwih zwZ+cPY+}M^4CG}u1#xoo|4W*zoii9{X9D^y?NvUD<*Ou9c6M$)9$qtM6EkBFGZ&jF zh#AOb%E!zL!V_2}y}}+!Eqk{9NqZ zY!VW@e3E=zJY3?G6s9HsGkYgn;A@Up+5*i%tPXbOlobEvfrPz{y_2H7DM*Nt^WW*R z5)#Tz_GXqguN{;WzrziX{mrjwX$rOwqI}iD_U~i`ke&G-ItLri-*n~QBmO!Eoh(gc z?Z6->2dCHh_&e!^C^`Oyr~+*rY(UP+ASY!@caY5=6aJ{u`kk#dE`OofS=s-_YyW5R ze^J%#EMFach5sIOfYj@U2FS_zk4`oYj(^er_^kR`ZeD%k;eHL_-}pa9Xh~YWj`?3a ze|h;w)}KD@fA9O_>FYoOB%DA%Fi7(C{puMT2OBdRKQlXr8aqFLgCD@f$;ieH;Cv0% zZ|G~FEzLas6O@}5!2RE$uhB9Ef`R`V_;(TfldUqA&R}~dkH5>5D#-EgmW?IFpCSPO zn*0?{XP_&{l=5$)<$uUZc20I)US1OrGaC=cjG4=f&6pYZS|6GDO!!PW`GFjquO;qZ z{B9PY-vj#J-2QLA{H5F3-VE#pbOMQ)zs{$BmEu1c^1CKbNJ#uHz5EpPia--fyWfT4 z?Y|V5SOD$JL9gooD<$jy7s_O=v%<-U~z$eaRf z|M%7Jneab~GzB?X{#%&-UEn|3DE^;`{$Jz&e^wR#3he*a@n`+LV*Qm|tpE4C`|Dcr zugJao9d>8%>v{qBf0JXs`CqH?bM@tgrvSe5bJd?~=x@Jiy7tGA_V&lNe~4t~ z*MESz=^Eq`-&ul_;5694}o;(1uNV;#;g5=ejm1GTiW(#u%W$?;Ug>U}sh zHKlxxopT%1)X*@i3wn*f!^`;KWb(z!Ns4n@=Ea)xWK-Aue9g+4_n8-RtnmH8Zb`Oh z`Ihi%l?L*(MI(Ht?@IIg66n$ToioFiUxvPulg~dUpSP2elHhkJ5u?1ux?Usp;?XQg zsq!=xDtt9y_`GZQ94rxvHa>ssB1sufcK&R+YO@+*nSPsOc$f4=BKINkbJ=TnSG^&W zCDXgEn`*qz)6BE)tS0BrOTZ6V-|w=_g@2|^e$0AtUADLHK)2NqGQZ3FVS97qZ6?kQ z0OpBHKB{@PL3e-oWb5qg97y**Q>%2|>eb3`-@8Y9W`FKa%0ncbdQG-_ zz_0zJ%XZ%i-p}?r4S)6G?W)g1i|<3vq|bFj&Gj0}84BKpZ38ogD=I45{?c`U?|YG!^KzH-LJn1PTzU38Kc5blo~0$r;5%OuISp1_F=|oz zRlOaIW(GzvI+=xr^IlL&Kad=3E}PE~>5EXk?E7>*IQB_-*!w=fKV^Fph1_W0b>_JO zNBqx)u7Qt;G~(}XVAh`wQkeU$uD4nj4?1XFNFU^5NnRLZ)`iRqybK;#N6xRmd5 zf8$>MMnlZ@*}FBdCxhzJ+tnp?UB%^!fS~w3rqisV=F-|TYP~{jv1X$0V1mz{fgt2i zK;mYs!z*r^=(`CI-;&$Qy1?=H&!-o+$+e4|jn6M@B45`0U9Tw8o~8Ta;tNOJWMe!g z*$)v5kFB|gmcFfgeBfMw{`LUxeg`*b;`s3z*_S-tLPV(Bg|E1boW4N-HJXL3J#mE% z^$b-)sP9PN-3_-zPQe4|>gfTZ&KVQtHp^iqk*Ad8&jDDIseNQMh zk{LZ&3Ic}>`cirIKGVG>85u6ba}L!TvltPTVxcQEwI*e9HG@2aYTtHd|F)!K>EH>h ziT%BANQ#+=OF=$5x^K~Dq{(&a0*^h>yIGJ4EUrP{`m%J-mlYFj)rL~Ap7*4K@D3_$ zkkTrX3EST&&PUs-^0wn+HD0u=sDEMS&H?PWa;+5+5}KkA-%+M5VJd{LA+#Vg{r3`x zapu`W19IPP@K9n;s<4SpGJNMLO)BJUi^ZLvc21xN`T_k5_u1qH9+PYacJ~=ecnF#A zPzzo<**Ou?8Ocya1yoRs7f}d0f~^qxuY54;IiMZt)5~>sO^h_g-0jgo+8`?l4@Ukm z7@$am{#D57^*7asqlIBwop9&<+Nk@je(aX-)!Mb+jjz*2^tq$!>fg?_h?hj|Px3ExRcO6t42P#{qfuM5u=>?|IIhrwB&o9s^{DhZ& z9SU+}utU?iWMM5Shc>*2gsO{euoKMcamx9WE$zJlUIee1_Z7&-uzh z0I1SS?;&O6x;L5cV~+jFV(ShkAl+}~r;G+4c=fJ_YWR=l2w*^!LdoM_!k4kbhK=`i z7o)sMwEVq?RFG@R@O4sZh^NM8SHH+#klvPtOa?gHGe%Rfeq%WpQ69z$uC_Iy!pOha zHkmPAD&8OEa=+l*@hLoTqnFGZ=)BM_$Cx`+Ep-l$-5ip>%|3M%cq{yp+rre3o3z-?Cs_o zjP~SaYu9!re+-#g9nrvLT2?sH70sb!UoW@}VLJYpNkyY}*X&vDS!lQh9`8)QB2g8x z)>8sPB6`KXCG$BXzvUS7nFs%GB0Q(ZC=N$0dE+vD&=^C~L910fR`W#bkbt=nX@ z^3?A{-WW_VH95GXl6nlyBS%`EaN62Rr&Y3Se|oUg`leOUVA*E|QE+ydnwnnI@qn8W zoJWxc*@rY(Gtn;FnxObeqlD@KUf zLbJgXGr)HgA?z1!;gA~V1 zB20IBx_VS%Jikb#WT96Qj243}!CVF4PIg3uL>KRUPnaN%3g~v5`fY7kltO*->hHxH zQkq4hX%G4s#hWXfM|{nj>xPrJ`%>Ta9p)e`l8=96aIW8NMG_%=wOUNog1qlUX+A1{d6#F4%_grh*b{wmDLBBypzlk8XYdcWB0kIA5}ai*W-Lr<%QT~;5_ zzpUS&gx?VakA~pn6IlF|EDoLW$#}8hzt)C2Q4PwU8rpzmeZ`okT+dAYAxo;=JCW2H6b_4l!iYtLaqpW?q z7}aMHiHwxa9X(=3~5!5G#m%{iaxt>OP+suEb@)9a3Ux=Vu557Q3Fa+ za(VQM0j00RF2r~QAl0lCAu~0k>wuv2)o;)z0e<%#$DF?cPhLvf<@|a+L`}JNKC;8M zSKGg?t(jy*U1+>Ai$F6I!f$;RNY<+8$%hBsna}Kvy8U2ndr@{8;X+FR{p%mQZ< zEVy+a9{qaakZ1u!J16htyZK0Bx{Ejq){IUBUm@JmwkM^5ncz~bhR$p(SK3JvXF(=y(vGgcWuI)V7WT=!5Un=c(GOK8|b|n5iAh zozSpwE`@~T%?PQUoOyQ5mKS^pYFJT3)VkyYuP_AmpDu~(s2yc;ZPKk1pXgm>zVp(k!k2keO-y$qdurcqa5 zpvY9Y8_5@1>Bwiz_A0zb8I-hP1D4cWW~X-^nztcq9=r#&Aen9{H;bXr`|wGyYa3R- z-3+f<9BiHw?z z?SFlU957i?vL5|zQy2EKGShu%hMc;7adr9y&896fuaFB9K~xuW1UE1L67C@lR^Jv9 zy(=Yo(_I@T`8Da`6+rr04q!m;W}6kxNsG|n2@9NEIH#^Ei5u#S5b~5>qV~@H%=$*^ zcFgAnR%wRed;HOiWp==jj)ruufgN>E*J;&IlLwC5p8prM(CIr4Z6|+ z=E-G&$$+BRi6nj8&MpD0TDQVm+$y^j_-pQ2+g1FjuJ0s3`UidfHVz5g+FYHDN`6LCKazbL_i?c zkb$M?hs}MgwoM;phNCbZ$~-bn2d0OOA+2Ov9ta@~-ds=nu!?F_&R?dMI}KUxhpvNs zp2d;z3zwtN;MJ!TqC`&;5SHxWJ+Y4fu#5`wUdYRHHuM`)W{zbK>0w-h3pVZa9yOQ@1tHk*C-#Zbn%pav1RL6J1q-8Q_8{rnaL*`)x-i`?y#@x{%TJM#@~?MFHIN`;HO6#)9; zCCA%N5|f-*WrE`BvB+u4UNO{pw6_}|vRiVsUF2(ahJpgZ4(8%K$Q$op`Z0SyQ-drN zdXqVtXu4-q{CRXa#fPJ&+8XWNg&^rL7&=M&eiI^p?$D{4S<*EyijSS$3Qf_97qfXQ zo-9)``>C7wEOZ?wK}7N9ZPt7FXK;gh$)prwW?%heh-oFkm5xG)rM;VO3}N1lNj$=b zE1?VBOIzymJ#PXSYBB9n1#Ju{Gv12sCIl2Xs!}Lqv+OZF37Fg@D_J}wxH$*dPL_|&k%fsG&E zqfKn}W(Rh(PB)z}5?xXoeA2E3VYAu94;wX+g-_E+%9>4qC)csdZro`W-%+gLxtfj!mWjd{GLv{k@;ef=LRXcmj)~hR*x$(0@qhY zj)jZI{A$MFb<{_;a=+-^v@gZ9x*t-F+kM`XOZC75(e0IGKzuT4DBXNwlbi(iA9(A{jJ8%d{#Wn7sY`TV~&wDWNc7 z$xhYjA_Va(C3i1wJdpfi&Rp;EE-tI*>NivvtD3hM7G_MUM?--NCgp$_+OD&+Y@Q%9 za^MD+XOE%Mzm!tFbxVF^_SrEK9aK}tFNa7OHCAjOj%paV4;WHdf5H=!DS`pJ$WGU z$JP?01^FJ1^{;Hy1VbpH+NotvRn2AM`psi1(tbUvH0M@}(WfsNB-DZU7AoO4a`L^k z>sTf(f^dMAFPYom(byzAG12|9_FoPR*8YU1Q_8e08K|ShK5QgYmU=M}xf$h`%%v5B zom)t<{g?udpBJ?>dIbc5CLerAa4HPkl!_ zg~4)5LA}1If!Co0*R`pT7EiRHF09O*Gg`EHB3|?R#AmyTsKn-i{ZtkNr_S5J0#!uC zN!H1f61nE2$Pi|@36jL`g78i9u)Wnu+^;9}Vff!YabtZqRfRUZ=^)O~U%rZnGG$5? zspKJ+EmaluEM{d^-$s`?v)SsVsTONGpSlO*#a#C|zGoCU|8av8LOr}4p%1Vz)@BGZ z6?iBF@1!}7*)^rg-MUqb;aLA@y{owQ$LehE@Mqy=9@{WUZN@)oZi;-plY%7V4T^Z{ zvIE4tkyVB_3UVxSLYsJlw`W=QXg~(x$_Yc-*8%4u)U5fHA|37i!B}oKwf2s+sA-J4 zPi(+}W^s1h_&|6gL2ke%d@zG*YhF&DfR(d|V7&tjcss9*#Wd@uSHU}#Oa5MU`vDu} z-9Zxr`$s@a^IPFHvj*`>a0(tSbQ(ChyDi)p2)}6Oi!X4;jdG=EY-5Uqod|!J*+)Q3 zE@ns>Dpx12P)o~#myP_9Mffa^O%={qH&8Y)W;9unBZ-oS43C_C5*(AXN8gj}9eLOD@d2*% zMqw|_v$d9)M^<8X*2fBgyylGOcDA3tjyTgyifhJF8mDEWug=`e#n*c@(ML*$JgrA8 zGQMzpk{Vp(dWN5Hp?C_XF`ppm>62hZMTC|vqysVLfKVzl+vV}Yb^Ste;b7u-t<9O3OmwRE) zGY4(JbmBBvivzT&t}=4Dz-wM)!TxH~i@<(RgmD^FoAJHh6-cTmog_-#3kiAn*@`%A z4T8-3Ry&jLKDQNpq$mN3%Ip|Y|E=^*mOaEnqIFXF80p$HZ^r}3G62F zQY%hke6P?2oJ@r|SY^M7BCjP8yTiu5D92uOQTg2r`E2D-q?3p@sa*CWk)EJC z`)et1WF_<^&dy33VKk6t;n;g(KB1+hxm*j$?ZzRggkYva2^-+HKA zvB3%X=4;{({fJnOKHST91p|_+D@|x;KKS#Z9o1UW7h6Rter+}oOh5YAk9Fc++~|bM z_d#j$S!h*-|FjrRV|2EHO=y!4Qy3G(vT1x}zq{=!C{kxEmW&s4fuszMDao)VVuK2k z+5#vt(eE$YErv(i+sfGE$3_ee*5@fI ztYFSPIT8=^O~Kc%jxZTTWYA}%KyIK}>>EowL-!4d-38i1um&B1 zr^*J_fHmI^vnejX(`E76Yg?VRgLY>J^kJ8n4q6>?$!hL?SYusz>VxT>>J`;6${CBf z8Pi(vrrZa$_DZrGq+7A1Dn_BkY_zo)40ZVIH2j{g{=C`UvCp?6Z#Zkw=XHiPVK&_Z zc>Z1C-`6C&Pnl-kn(J$3jwTi=^go~thGzM%kMRTmRa4_ZaU)`Y zmiRo(PWKBJ!RNl5L&(=t$nB!g*NJ(V^9FNxy3gQ>Hd>d9LMn%$B!r9rm&+MUSW_#O zZqwW*!n>##h{c&jDE0X*#aeFY+QMB$wN1`(tTWAh(0E+<$=5#1ay1_ItYaO?ff+z+ zv1W{oWiypBv!!y#gz9c+AoWxngVYPZbe9mo^Fzmd|3+%kU*vRrNbbdrboQ=UCP0CAsE!jx(rF`@TT(2xq@b5aB3%XDXspNGH8vK z#Mx(AXZ)=7Bp5h`Wgt&T*_IzmbJ{pDlZF)^e~{8NR?jZ1=yCPc!Ru-h#k>!82>uor z!*c1!DGx4=M!@larCc8oXhE7ZS)#?)q)&jHy)veJ_!-&(acodPNvx0P6Tew_$Hyla zfzOJ0{w#y;{vEPAqg&~5z&FOUF-J>vIdZJy-iSeF>$cyjov|f#-I&FSP$tJOYD9Y{ zRB@O;fqm88a@->PooIMj7&lL{j9W13JsKu({EkRw2 zq;kKq#ATPa^+kjY$c2!=vgEMOtx(5uUq{rWpdaI`zEnqKSMw`3k&ReA*oeCwMJ|H+tkLJdLRV&r zLWHW*$!E)o7d_?0BR5~(s?hAlBh`{uWABHjgto_3bRRdGKowuR7E2rLR`xBqk&}m) z5?tx7l|)|=6^yaqhO}gsoFV7>)Cjf@X@Cx!>g8UV6yD*g`w6wx-<Oboq-6<#?ol-O)N}tu(#n&ANkw|XzAZ9cR{KzZHNn<#Kl=cl6&jwYzOT#Qlp75wgMs%74UzWjet7T1{TTe^ zkrgu%9V3yUl;j<%0VyxQMqrB<_j@6+`)q`AF52fV`IqDZa04AFU3Uy z`#`F*VNzVD%ga}Tn-(a$P5nuYzl4XW)lbW7>5Yzhs8uj~ENrVl85nP>uv8luuTOOXZN0j!@v$A>NYSf5bU7#b92sq|AQDlGS~E+6g|B3n3cc7G!8Lxnp#MMvv#@SMsi z#TW53MkCX12ib?cKm4vBLRt;>~ zBIdeS`05FhM28@{Z!fJ4V`HokjQs+#O&}xsbLrd1q^g@yMCz{UhH*g=kjms)&8gHJ zIlfUQB>W*wUblEWYTa5_Pm98P5Cr;|%2prF8i^A9py7j`29Cfhrf`)584tNcUD2?A zG7GWY+=^BlJ5yuhd{+s;>92#{b|8YiqElU3s;1viG;>JNYM2k7YTK`EX$Y95i{1V) z97>}rso*}-vp}DmshL%6QQ9mwGE)0FS>;>iOaQ@^4sSeDYkSPo)rvO?-u8PZTay_c~L<7xAl`yTKY?6e40NbkF5p;cB!3Id(jDmXWo1Q~=&(2C?V#N06`GPI=-Uc;*`%%(Qaoij|e9@J@LJG`k=aRVdDy%h4)`%AtNTl zZpsR@b-o1l;Iv05J2BNrUPP^XDp#j+5#8o?>Qk3*EL+X9$D$ zbgjSytY4n3Ue`s!DBf@--%H=5gsG5IjnypCbxP==^Kj*37AQMi!XfS)KktB@>PleC zLr{a#;i$E8>FgZ!ard;k)%}}uUNP`04FC1#CtuX@a+h>`-|r_{MpiCNKpx1q$e`Jn zL=lVb6Qan8CKB!^y;4!A zS3t{xuwTZwu_Pi9dK}El_~Etwx)r)h^my?#c=6$=o1zTw3s$X-TRZXDrr zSI7AiyEpo{xdWB@Uz<9Tfa{?%3yB@8c3-Eo5$%rgi#UPuz44<4)W){Q?9)A*Ma&hc zJc|p?90CszMP>O#L0UlF^gQ6VXwi?jnd08@B zhO8h$lw6s;hq>D@Ka)H?sV+6Cybt&%dh;8#(eazY7cPsV+!rnRKx~AC+C_$h@SL7& zyR@Zhf2vt*nUGnn?@RqvcQk^Ir-HPh_m1Wsu+p^BQ~5uAw->Mmhu{y|ne;k5RUa>= zWztivV9aAsX71A5?~W3fNc6N+sxV5EtuAXD946L-J?6??NU{lgmL%Uh+34=l%Kd^n zipF^Nj>;)kJKoN=Bp?pE$A1}fPQZnUrHWEv8wWL%jXg7Oo7Umi3Q>eDagrJFesS?M zlbw9_`P>+Lrtn83X*zVEwHtO;^N6aeDtd={A`3Kk$Gm=sU1eEEKq{GpdSoY?(dq@a z>AcV;IPm>#`QRtMm^@BLD7gc@=4QM__K!)Q7_bXQ%{scv3d!_O%oZuthLrsURKp}S z31k|e6chE2$C*10$VoM;LneReq5eMX*hYLDGkh_>axhb=TKt3vvo5S2`N0i*q|~vF zyT7O7@vP7>n-Bj1m!*`8Wfs|nzxkvnj~@UyIl|)0K8PB1O**xlvP~eY1%sC_5cLGI zJvDj#_HJjs+2k0fo#1N0fXhk_BZV`nXOa!@KM4Xc0t25KYeGt`=ZTqr?1hUhTq`r2 z`8PdkEaJm_%%BXh$d4VrRmK4sSGU=acoiiS+QBMH&$QjP3V6Xz$-^u$L&nA*I z=Tp!_JKt(*s%H3h4+R^((uSx|(|$J_loRzj`pU19iuMK%A#c7^?i)`dUSP%ihRZP9 z`VnV3o!BVj6rz?{OT?J6x{28Kw~)%tu!>gy4D;$MpJ~uaZ!&7l+oHv7#fsQF!ukRi z(Z_Pna*N)>=1&2qOem^D{M7#S6*|R5svh-`uAJ@TI;z`=?oUZ6=NrXB>P^*Kin6_5Qp>_C)YI2;Qw!#3@));J zm}97@-ytW2sdnS0I;wrro*9mcVY!>%?J?`l>DwNL@?;KCSkKcefv#&V-yGpR%7>p_ z6pX)FUreF;DeQ-wV$hewh_6ilLoQ+-&0m$8NK_EBcVv*IJQ@ztTmb-AOKrjwPqBbF ztx<|~>x3zuSZW&myw^Dkj#99@#)TIs#XKhcK`tt2Op(J1tdhfngH$r43;@#xrfrhc z!x$%tV=sfrGs6Pc*KMIn!**6C$WjN#+XS?zoPBKE2@D?>D)_u?uu9C(5msNu;3qdH zdI4PzN6dglkflqag1IBu7|Ua2vgKQ=pT?|cNF}krjuFtB6xe>NCKv!`Ufy_AEB-bh z93h4rC2xJEy(wWv8k%%(L5bV3rI844JS!}@hsy%U@FopmG@mfCUXptM0M3G3{a(ip zuY_wW;Y3*s=mlTUhwZ*dHMunxzMXHT!Gf<+AVq0Z*6ME!3ZFF4L@5X8>sHdDL3v5x z3g0B`m$QBUcB3@6x3&mXJh__-U1Y}-u$c26ACUSyfiIj#+A^ckh{vRK_YgOOPvp1yUa>JIRr#xPbD6_aZ zxD8`dNkAw)Na+@7^n+qwj*1RQ*evu_#S4|o02V_KwsHVPP?>+TRp4wRx7WhF`r{Wo zw!ke8OU@sNy?k%~mq^gn-ueEQ+@ zGuD@U^2<3hq@Kp)$gb0e%BkF+3)s1P7pGQBeCrpHUnu?nu9u zx$@WjqSybk-BZMjqitRmMW%iqF{wx%s+)!;AS39R?xP~0#CTef=cQ?DqWRn%uta(7 zwRx!?6%!qi+_xSKTUbvBDPQeivgv&KX}a)Bn_jAXvxyinv;;rY6vT&NHg+Rq;?)k0 zg-v>9v|k|yGwG(;n(|&>F$-cs+H(B{xyYotIu(%>A{^?)YUbJbdHml|QCub@86#d8 zg`GBp_i>^FbM1-vjh{1P$6zVu&7|rSuP56ne)@7XeuGItHcosHyDl)1>) zZMLCIvp;R=hK4RyDr&a!&~J2JI-vus9Ur5=+@r@uqUU~KcH_j>`>9WxlxIDnXlP(8 zz4Vq-b5t|pxICOM**K-SF?#yMIM>>Z377wxVNPM4LC>0{G*s?HUah;(FkK40)@py& z)Xb)I3&zs?z0rn6!-Pru$B)SQB}9~id~B&2?d?~0#%1*Uqt+G2rQGr`rEV94#P)d# zxxC!`H2dn*c!L1!wdL0LUyfn8DjQ+-n~BhezCOAhJh(t1sdtUCq}c$XO*y3es=$^4 zwz%{raV(mMC|N{#RuKC!(Nr=fE%7y!?@>JSS!wTU-0)n1SPr}b>Ys)yOPVl#S&?oR z$fD3a91x(Pk)}~@1o-X3dHW&1>3Z6d3PR);zP(LEpw3@VqNzm$1^8d1llRWbv%Ly<~m(eTZ}!aI5_Nm^`tUS$^f{pGxE zJG=t{V4ERgefkXHdugVb^Et$W1J3?RX39S3z_+ILvY71c!YxrJ#;|QT>*)807zenn z%Tk=dYF2RYB{4>x#w1TLz2VB@>P$LTJ$8q^>45bbvj#bZl>;jmi_wv35Oy&OnCsJowj+rt^ZNX1>aU1!`6XDZ&a-BlDy=vQq2tm5alv6=MgXPy*c#JXfuC1MewH zrI7a>Tur~|9@0qqh-*3n;Ip4a(cRCy28oq6?4Rd-!_kulm zbnod&hu>R$DNmkTltNSl4w0reqE5(JFw!13e{mEXR@2o?)0X4XV-%9bepelAzE_#l zLO`$OQpvJzcmDP7{HdjV?rLbv9H=3;f5;qgSx8FtckbOrAY1w{QQB? zAA!BoLQM}3s(GyIjxQRJHi`I)Vmbr$5Zx?%%B!LJ3X5_Y!yl|z4?8oBQ!i_rFpq@< z(&>-N_4{?}Aa{k~z7rBY?-;zI42U9T)a}oNP9>7bGbqawH)+u~Q?CQKGU858gHZJ+ zYS3l^Gm+pOjhtY3lU*;q4r`O-5K7xwKzz9tFzjtHY>O#?(cxi#lqM4nnO1;nN!G0E zY>#+W6M+lc?DBZR<3aN39m!~nliX%E_Ay=HP3n>&_ou^erk<6xv9r%tTZw14#Y#k% zW|D+P9KI(Y9XF~J3Emw58DApS9KWM}4?&#og=d*J%N8Gg{U+JrK&w%C`qoxGB31XR zd|NASa}cEYLjl29Iv;@N9g1L3B+LYbsEF4&#smppm|Rg$L{nH0KfHinp1%sw3rs>! z(5=jIqo~V|b_7CGi0I-97zoxX6|b(@=TL8WN%od;idNMYA+!?VI>ML$niTky(DF-VJZ+AV)8*} z?RsQp!jcK<6Pu4tA%if$Sc5N_w~X+ql)<#x!=iIebNpy6z#4CBiDy)Ciu;(c%mhys z_(r~6y>>=x3Q7JwYh+wQ^6An+99LvvNg9DJ>aqn%o&(mX7cm0H?XTG{i`V4`@^FWO z8KoFuFjSB~_K-~*q{G0aFo`Q|hafs)WGVrV@n`V{Cj)T|B5%Accqg5RoAZe1FH zFlsATCReAvq9y7AxVW*XcfmysWMJ;f_ZiATF6C#vpRH^z;lw4;KUu2#^BN$X_bJwp4iI%T1*?gE5sykx)WE|x_eQX+8!ws$ zceZi`sO8UJScp~w1q`V}2q>n?JP#Gu<|!!hPv6k=$c&{-CU2{T5Mm_@u*YFMX|5t* zuG+^*VNx&P4QY6wH{oe|vPV`HXnm;a(;l2gaNN~Toe0N+tInrz7Lv=IJ#{dT!(&ch zpOZsfF^tr5jhrZB4#uRC&^sNcP)Q!3jVGawi!?HeTDq|#q?;t`3+Amc@;L$M6Pv$B z0Vbx}*U9YnqH-aUHE^LPw88MSG}AOOrPof`EJG<*W-iR>(`=1d1(GCGZ1^WiD}PO4 z7mtMO;9gir2C;_)m&6r6s8lgiNYup6LV-6|1W_HK>ul1Oo-zDA!?aw;ejYPwY3UE0 zPX&$nQPhpimc-78Yl(;9^>5mcce!jc7h?5Cg-5ei+s$s_^zzj0r>1omNXJfpmfPwt zbKAZs`4%|!6{l7cdc*_v6J=%rI9q+Hq98aIoE$JaZh-N|i}@=Ru6<@+pP0DH2i0{| z7(ab~UpxupdA`%y-kok-r8DsLuVhY=7Ld36IN~8imE`K@kM0Xo1cZIojeNpa@!7FA zq;c~YeUmT0e8a#TC0Fh)fanV8(U)eMB7z0SpHL)O0JGMngKObIYj@C~6%#Z-s?O+I}u6ZDIQJiasU|Z~P+eCp373IZEI#wFQ8AxCC^*HezoA^ue^(cgH=>i0t=- z-vt`AKsH<;K)w;-^YZdac&65O9ffV}7ar@9^K?j^cZ`c7FLqLQ**3zL?kH>YhW7Vc zWKaF+$UL6Q)NpJC^tDd!4i=EC?Y@ zcDS0No*>B)FHoafP&5&Xl$c$DF-Q5<*+zq`#84DrruEF8GBL%iHjvf(oj2S7KRg=$ z@ZnBe49r2`z<m^Eyv||9Ep}DU@Z#Vr}F<%UMc5V!X+0!GFpG^z}5KZhH z2_`@4e{_>ftCC#Abjv3oCZpaPKeAUL!pAOoFA{?8z4w4QjtZIK!DZnXpJwfrQ6=Y< z(|n2ST!Mo+hUsL4BxW?<3CGN1w}`FkHsH{~^i%v0E&;l@Xx*{dO1lU#sHlTeUM!*c zn1x zDwRNifNGN-dTtoWJ%Y;(TZ#qPY&U~RjAp_(MCN#-6~v8|ZFw;JvN3SO87b*yvGEQw z@0KuVrxOr$I3=LnltqyRZ4gXI^;>^BB@AnW*ed5@pFDO9HUUR|Z;RMr1UBvSgYS71 zvnOWopMUFj3A}9d_YH`~vBe7!F~c%h0rcmmG`^eIB~~7k7EuNg z=>)O+N%RLJSYKMkM!SY5-u(f5lz!5q)1Zls$_7{THFTkdrL8SB$&}yLR$@55;tcV& zNf%5@t)|M)rA6B949yalyhw3`k#nIXzSj(jMzjQ$J6eTLi|jL? z$62d^fcMeQ_SDJlf5sb+#oD14Qq=$WvfQ#6Hwhc z!aD1Zbs9>Qs&uCq?;jxRAb_=v1d1d5Am_xw;+<9l0~y-?L`GgO5is@-<`Aa)eP?+AYgPI}qW8I*66`{{n5s%mivKysb#M2L-Lnsx% z%Bi^r-1hbkriQW@O2_G%=~yf4D3GO4Z>uJfF`7fOqx~2j7(`_^kLNGG3fqd{10Vb_ zKJe7DIDX(f44P}wk%Wt53fn5*+puKuS6!STihL}@E{b7VD%7-eS#ql*t)zt6+PdD% zQf;Ip#Zm;Jl|R=uRQee=T9rIs{=3DCbXN*hx!80^4KAP<8NLk}E=jLBBzy>t)WuGuVc-#X`v67%FAQ5op zs5Z0W8bSnYG46F12oso93Gjl5CL&S}Tq-xDEl%7D39}Cp_=K$>fmjfG)iTp1`d>#0 zsMCLzW6$F~m`Rd}?BJo( zhfyamzHn_06GJq<16f?Zbq$S53rC3=^FEXDgs}YeogFgi@6bKr9ObwK4aFL0s)dO& z5z@&hj?PRFvs^(i9)lGzr7$6pN?|*{CB9}(d1G-NUVJ3K+2$S}CDGyy(Ks}kRh0LN z_~_%0A;Rl8-I7zppjo-?#;qI3*D7@EK^iLpuUJX7v8M%TerX92VzncgoGcn_#_tvD z1lU`|rjxW7gwQUPaD40t#wN$`){X19yF5qNJb=lmSz_hqF*7=ekz79}Pn;)fp$fa+ zL?n>{bg93Cg#Pjyc>MdmuLr#MKkz2;&;Qo1qA%G;Kv45~!_1{lV2w>qRwm0D?rJ2ZJjeCa!T+X7|*Vr;u*&eN?(bz8foT9ey>mdeQM*aCQbjxbc9#%`14Kp@?h zNsCLSNTzmi&z3H^@fdg3HRXH4>`ht-qQEYJ+u4%`aq7@CHdZ!qYhhh7J03cF5;txy zqp!c87Tlx&isU8}Q-1x*1zfp#6A79RoXx=?$z|cLs5n>mzWdP!xI!6MZ{ERRZipCr z4co+GS+gROj!Qqf-F%*ybCt%67NK}hbsXVf9gP!PJX37#qz17(H;+s#h@t*0P8=L3 zK;1>zCRRz;vA9yf$W$5~vKX?lG-9b3Sv&=7uJ6hG<&?o7Es9Q~LUXr@Twg-^uPv<= z>9#fTEp7g>k~1qUu^ z-oNtln|S0?y)MJ|J@7_jN&LcJ{ojy|XHh0#^fYgE{i6+Aug*qS@5WF(SNvmOX%W@( zoSE;&#u_o79W1QPqf91UUtd;^FFCN>!ki`?Gc0Ci?01zy2r|c_to#*V5tojnNUd$G zBGH#Yj@U`1SVox`2!jSs(5CclYk92HZP%lMe2(tbWqH*~ig`F5%XNKt{5JzKGhE4V z(Cv&|U#|NdPM~KXWB_N8aw&T@J4!f*^G9t}in?1N)0iGe23cYE1kwWp7!hJ?H86V) zOEAX@G5j{9?^=*pGwiTB$3R=$7u`gE!xP`O+uTKiRmTFd@YD%xxaAR>x3x0o5gU@d z5e>)CXq6F))@h#s@P8+!CvkFS3Kwr)!|KKgKKAiXU}1R=^NaJCB$hQhHi2ETOxRbQ zp)r5`$`xF>J1<2Gp^zzZjI7+oki!AI5MBF251k?wZxV>o;zH+9ZC43g4XO4@WkRS* za4LxHom~;XPel7rs_YQ>v@kV3jme=|$rZkQ?G`ck8lHOMQ3P6bVcaK<9l`iW8p~TW z2e@559lu7*wm*|Xp;p8ifiGJ{+&P3(_u|~5-igq49K`qxG5YyAy1sSn?dEZN?k+7b z12`}}gB6-nsYDD(T9saX^D0>*bs`EOOpZ;VFPlJ~7K(?DO(R8P{O)&s5T_pd0ICG? z&3dJ)v7oaRY^N&~>9&4%OO5@3W_KQ`Z#KP>XV{jnYlUh6n;9L&tFK+e!#&`=|A99a zjpIi?|JOv#iv6oL92ox}jhJGaC1NUj#SP?lw}c(1=^-(6X9@O(aS;Ib_+rzOgIf$* z&{B-;rY+HA_Iq;9Cj%=BuQ-PQPPo#G87G$^w^-kRu8?IS*SGU1 z)3veBHykq1m*__jVF70j0tUh%V#IZoi%cNPSquzHM8;Hbk-?pSn00sCx=$U0Y^~l@ zg&TDIR4OJ5L7o6Do`{M&W@on~0zV_fJ{qTQVzl^3$!|D9%(t#`?dUVKt`c)im|&NObW;?uP-1I4@nVAiP&bI0MvA%I5vI= zM@9z`&k%zi>c{HB0$OyQE1NsGaqAW?%`d_TCr}|P#G!>T6N>2eP{6|K296vY!jFFP zS(*zpck3+_YXO`+{V1jCH5I{HB}wT`eO)oWs7(s{?& z#~2Qy)~-pfv;1~Ztb;b0v!eu5;{yY@xweENG0$9vd)HNn&=A9S0tgeE4MF*pgRzhl z4g@%WW*I0qi?qnprD3L$#Wb~#nwwQRQbpC~3=0~A99a%Q0x@&?AG5qj{o|RnNfAyPxNY>#0 zibJF0DA%eYw&dloo4P=mrcTgMX_o#j!Y=C-8FtnQFcd8Pj~HAHCl5?xxn03)uiX`YYI-nc*~31 zVrjHc!@|N6rYC0v6z1lau(`915bd9vUS>J(m+nhnGK?o4e+(tMwwErvf~Acz9zORV z%ytodeG|0U#!w&z-l%d5Aq$zle$;4vZ`6t+*3RiMH3G~yvGdKHO#*&m>3zdmPos*- z(J_n-_hW0XfHy8(LVrAf!!y$awgwhB*hV{<7#l)56+}E8rLhfTh1hGUvWxz{6gD83Mfi(5=^^0=r&9yD1J4v_|#R@o8#NYCA68EK*d2LBz{*)%J)OkouNf6HiFSyR=Qd=$z$63u48(5gvPxpRc_mb zvh0hC5c&xqlG0|VCDzRJC^pvS5r}6{Ddw@de23mk5zb^jm znf_4;L~?2P-MIx~*cnXE%z{P*hYruuVwb?;%3T^;C5*(Cb}!yo#;v(I>1B83;1Qf8 zRy?<`C=1GoBL~R3GV$^o*Rj04iw`~aFow9d+~G4gc=AD1N>vGNdMbE22QC1=R~(QG26lJ?1@*O>oIe$9e95K)lVs@-+8)QjLS_sNuQ5*vY#|9B6P)_#`!-`Ze ze`f^?DCgC%# z5K$4{dF{1};s-u>=pc%_1yl+ZBH-T+pzFg6lONPV>8m9&2&9^S#_RU)&=V`^F zn3x#Hk*O&R4EN#I?dzBvKZrhB0OwclVq<*=D{Gr%nSj{z0FC1gy|zVW{(z)bUR_wm z+9pfsT+H@s_1 zdSt-uP00J1rgM0n7RD$4+)wm?_x|_sCh*~Bf0QOjT>P#sFuIJ^?f&4l&xT=pT>xA+ zgj?`n=qffZb5Tcs9W7w)2U_=>+)M(uB$q+SZFXt+x)Hc6JSh6CCYj;uC|3(o5!NVI zlzGl7S&r6EB~WCR%z+tZkeeG@1P)~ph)Sok0`e^U&LGbL#bmsXofTx_?$GNsGDnrH zqZ$iS=l^m*t|{)6Xgo_`$opl3$Ix%#Y9)+7+;3AjOMdRoP97^uyP~%c z=ALiFfSK*Gh63kVbI@~duYyA}69_~DG=6P3jkW|fAAImp*iG(?O#3N2xcKH9IDTLZ zyL9cdhY#beOP8>l-xeP}E3OR<3}JR^QYyP{-MWp5$stTn&&onrE-C$pRRTzZ_TS$> zfV(S8SYBVFdlbQgM^DmSvdBU*FhoGTvs1vo)04(@5fLsh1_7DEF>GNE3^!lSYOpaJ-&Z58_pj)gBsoE+pDX{(IRG7w~!|T z6>T|`T4X*`@rF~Uy>XzYsR!V3kf7bPNIbM)U z1-6WPf_82I%-YxfM<#C|;IRM|m{T1q1o(`uaE>U6NdW^Nx3$mT%w{(?apY9Epkz(7 z<=Sl2q?-gY-%_b0ZI8HhPl*`m>c(ASSF5Pf16(dwMVmMjj%e9S$nk5ObIdLXuE-;x z->a1oB+%n%J-Zl00G(Y0y#Fd6E27lTS}Lo8!IUf5#>dBHG`7ifZnf39vj%P?W|3Jv zhE}zXy>dzR$%5m2?6H9qHd(cd3lKOpFJvJe=)Ba=-@>!4_q*nWje z$P<_yAHrUvgermZ%sgo(dkKCzIK!DPZgu1<46Xh zICpFe51yF8rAycF=G8lx7#|}`AuiRHoPL;J*`~!QjEw^Ao38PR2cJM+wqK-19kT9r z>s1-syVq_=zWK!X2p!WzUn+-39y*Fmx66lE<2K4$MMLn(_D0V}g(E_x`^ zep!%(^L#f;Y}R)OghP_|Je-Z;`1mLy+~tFrYm3giR>0t38ta>D7$B3L`@WT{O;l+i zJ9K;!SFT^ju|Dm`eZcFk>iaZz4OjTt>Nc@-w4|f%*Vg?U?(y$B z`~Ho6C6!$tu?jpW(|q54OlO~%j@yC2&98J^sVKL5k;+pSZG!&39GSjzc=6@0V|8tw zSW!xJW*yxUoB^`U-7J`?OWnOAX-kgX@dX}LK(XCvimm`ZSd9i394MB{`MIq9z=~+x zK$G*C8N~Uujg1XC2DcXC{p{}UBAtngt_8C!2H~MxpK5_bR5f2L!D>ec*h1n@6b)oz z$N_GqX|=`g9VceVpRaXTZOcKE*mZ>1af&{}J>9aLG8K=bMt~oRhp|bFw6wj0!SPx8 zcNAlZ7-lCYFw&RAi?6(Vxn&fK z4eeV%tR=oSw$PqX+0*Xc4sIa9T#Uf19I=Asii4=D38kpR)C{ z(edVcM~mc$Q%y^sj*=Dd!i}4F_OJZa9`N4(u7)_Cdg2E}2UfHRbdx}TUn#FypxdX) zWu+>|OzG6_YyabsQT<))18a3YwhkVdx|t#N?ce{~HOu_Rb=$w+`#tCcc9%VOtJECT zoi`E1&0Cl7+ADt~Y=ko?SlNsNT3kH9K*^dFd`?j_C@N(v@S+520xIi)u9v}<*)RJ# zO)iokYk@N=f&`u{&coRv%$ONeGnovTxP4NQm*?JT^g07`P-{+b9b1^p`BISshgIbI zbDAxg(p-`kl%Z@=WFh(Zta}kRGZG894tOoPPSSkPv-RKOm6zgDZD zpR*SF`w=6+D-+Y-<7ziL&&k0ttP!wtpeYfK(0QhD;@~Kj)^1~y7Kq(qo34l0b}%8` zEm(_)gJ9`gKfPbZjhj~xiE^HAORR{)Q&Wg>=Ztm({lgi0pj2n!Xefm3of0lDZD4kU zn|emES=hzm>LzA}MsRd?7^%K~EG%xLQq4Oi^7V+xMw}kl*4)x*q)C950A;cmy4`>05 zM$^P{2V}8(3u#qCg`3^Tji1_<4DSo{UfYIyG2b$sA2|1Uk@z5iVealGfr zKSN*;5mxC6ko!T;51Q`leirNpKi8#jFU$33GN_KPx+Yl!r@Q-dZ2N8Ox?6JT-|lry z>|ZbpuOF5rQhY4e7_=I=a`k0gyK#{opg4hUTDmYeofi5B1|%|H6RFCE?0$+HG&bu} zb{Y&sg&8p`jS=&L$yy4;MtAx1Dou?|R|Z_Z&O|&R6?zqVXafO5{K*WsTU%S6t}h4I z82q`*H-kfwK$o>MY-xH~7VU@-2cw9kIW~b#VOLVD)VOgOvm+fZ_!>pA%xs{~jHu4f zbp3nfqA+*v@|z)W;!;>%NVvidW=H~$Xmz)ZKl|B_;?~?9Va1s+ zu)Ma3Hi0+m=4SiHF*Y)R^Cw3IT$eZ?mtVuqUJ=`y1@@|7hM4n7Vuj64g8;cKY%>-M zA{Ec#&e{gz;gGZ**`)J3Ff<@za${i)k3M(~2dAcS?fMk~vb)P`ICSW!Xj**bh37@v zV?3APTr4D_DJlIeH7a!O32ZHHz@mHg?k69@laHN8VJDB@`__xNwsZ^ABWZ*J378zL z8we3-4bZ*<7#kgvirRQpRr}%iEe%I&eGYWY9faV7?_iw|OVc_@MnqKcS=bk)Z>}SxDb>?{O z;~8XBPOqth5jsL_?oT)K7jU@kh+J@XOM+efg)Z>3Pu3Fc-;PtnwM*Yderp|}aDq%$ zRq@49|5?ueY&4``fVB{~*H*DuLnsnf?gRqJ7@5sA{!IYPJ&tQmLl%#EorTFek^#Y@ ztq$3hH@C>omZcQ>N2Konu-STHRBZGr;a_${& zy~EiHZ43-#B>2abRIF>vrfjojpiYdNiy0E(7y;q7Xy9@dMS}L9O~#}XGUv)Rn{4`W znqEcxoDZHmPfS07+qZ7u_>oymPfa4fQNgz_UBFgx7hib)dkFaZurhxOtIJD>q(=~p zs6Z^IwG9vVp+@IEHaLijS8rf5zbE&X)4xv79KrnD97?ScEqqb&@g6&LgvP3lyX)In zTwlkriD4K7?sv(QAEob%5bN9C*&*vBA_DDK?kwWD%hyB?;^@>ErZNdcX_0C+ZCqPk zK%GFCyHt;)vUv2|Nl6X6voMDbKJzZ*GI6|l`#LUOypFN{0rdB!HTVIOQwNYDz`RHx z&vWMVkz<$|8K&>Ain1Or0N;JwpLd$Gd+Tjz5jjqw_p4c>SUR`_u;en&YN$c zLErtGU-&VM((&`vU2!+CkJr|52RWFuhze_IPxwGswRv}R{qW>KFSz!Oay7jBi60;U ziYkda4Sasa>G$=z{weqZ1g2@e%}wC4QcH4VyCAGo&Qyv`AYgiFYyQpe7xudy{7m{! z0(U>-W>-KwmX$jBKYs4F5G1oVLJJIc^Ud$=2>=cfU}RG%@o#UhZ%F6h;n6`df%Dki zW1nmgeYvz~?Xr~PNN!k6(j{V4EI$wo*wQMVeYRXcr&uh=v^K?k!C4w?>a%Vxk6p1? zl=I}OEYA1k>bGKP7s*6YvOn1DEn7}7L@;K(!OQ;d^y?*<$v|Sn+nZ({6yC_DHqVwfIAuS^!A$s}R zHC(=P2j`BT5>1B1rFqG5PQ;_qF?nKo8dU;oc2SYBASKX4siZU*ji=I5u#%?p3J}}> zSO4XUNDv^s``8h>ju2LsH?gq2gS~oDI-{ICd>D4KDJkURBO|o1ZewG66Azv~g*46S z@gq}oy%j9qU6i7mQe_Y6bdna^qquwf4!-jBZ-865O$`m>15dLHVHkzo9faC73=fRU zJ(;J)`VYSK9enWJ&mfcR!@vHWFOj8_$1{&Sh`n|NpMLx)oEVtEQhrnES932n&aak~ zLYi~5;BYpKU&Fy|(5igGs+ZqLUslq|dOqHF1n|c2@B^PD@Q47qt&gkV<*Ir40q}TD6uy>0$?q%X`&M|jDNM~ZW zcvJO)&wY-mFDPy=AwdIcNV0IjeD)J&y-m_12eN;J`Vq8zaM8aaK0=r z49s@9ReYI1Rq}5`ta271i#&+EVoiF!wVf8SktBhpCF17|uI?k|8lf@drlloXC~9Qu zH&~FzCcq6x;gI>eOV?U0*D#t+5hISuF~S7K2c~8)MCaT`%zj|7kHB&saXQ|inIQ}e zjZ4whzxl1-!B(k)cRhH9z&42}G3PZ}lol7338XTZm>5NieX+HU_;wk%mx#$OE)#R4 zzx&f!3=oK}5|hmKr3m~?VeHJhML&Z8szq$RS#3zO)iPbr$rC5Z0;q`VW`V$--9jwq zSZ-EP;j-yqNZdRFu_Ow_j_22wFgP}X0XkN-P{L|q7i(L28iNoHP7LA4fAG@;Zx)tU z*2ML*M+;||7Co!e#A_F?ph=Yb^zq}w+Ox7SZf~v&2#$}Ap;_ESl=gddc^j=tlNkF! z+*x127k~fvv6s)|@dwUhloqKU_}Hfquhg+u*z*eN2Uv`rtdc^hhz=|9NkFYTcRABV zbwqXq;3o#y$9oMQ`su&k1KxK6<9+Dd$3@)=y5Aa`M1DmtPjSiVri%GhvD{(yJY?j5$la3 zM4*(-sKC|j`6aa|>8FfA^w9K}w9R?z%1u#M8%Rebs$Z@uvz*V9RnAnwNlOd&SR%f{ zCDXwWmrjSI+XA~WxRR>LBI%|Q3D_gH7NrF;Xa}X83`fE zRV32fFf%0!V2iHVc4%>_l`xPLF&r;m zGDcwkovT;z$^YBm?g8&Rf$={6$Y*H6MpY%1_4a_4q5myz0aG(t$IUe8h}%H?RRK%2 zVTY>PadcgK*Y6vUK$qKcTbf&lk5@H~ln%vKw=)Ds{ase8s@u$cKzuLgx@l?rHeW|7 z)rUX&+Ly4pc3aYjSP3jgtYWyYAG1TFWEyT@d1D=G#LiOmFiSfiNocnP7`OIHQe8DW zF^)oU7dc`u(qGQuf`b+T!h)1Fb15vlErxO#>3lK2v?kdN{BQ2Z#lFgHHY4d|48ZZY zGR@id%cAL=x5}zu>7+_o;{g{IZ7Wb|5c`ftLrBF_xVE-TrgR>eXqdn!OTg1ai5qj$ z=Teab*7vx(au}1NgR;nQ@kA_|!m-1L2oS>9SX;q%c@KA&cJbZ^AI1W)yMtqsSlQmd zI+@t#4$tDu;ThVWEme1{NAb#Qw}^SJ;rpI_62JG-8yLui@%Xuu#Bfs*h`M@fk?40x z@~H39SaQW%r7ry&FflwTx)Z#JWV3y^d-twf8>gpbnKM^-HHu|ir3KGP#xasiV|8VjEP?Q%#H~fL zK-iU0t4PVU2;tM@J32jqv**s@8{hsm?$CMV*vC$D?cl+~!r0m0d;ZjM9G#t}b0?tB zZ{w8hl_A3Fb00+^Tp6F)AN+08O={kg7M znPIqHhAq#J>*&4}uFkD#cI6|x%oJXwn!g2)>q>xb`1kfgi!N}x<;AXhfqzSrO3TvS zgS()dPW2OmuHtw9+kZf<+#(a0K#I)pB$=2qT=^6ai;0&ZCj8dT>sXwh7k@9Of(`fO zV1@&D{qj}xr85{O6Es1Lh5L~0Y;I$6WDLbd9hYxiSK1F`Vlzl&;!!eBN3gNADV1H! zg8BToq}Oet$-*|=6_|r^u~-J7U`IM0L}JP+usIi)#;HgQGE3*kjVxEmY|fWz^mhhZ zg-zID2Wc~oPP480c@c1z$`#RU2nP(zkl9@#(A^>cdg|0k{VM(kpLzc1nEF9E@v_6|l6i zf(GsD?&=x_`Z7odqS)EpmD1kI<^;A}y|+$3yr|elNEF|sGehl_PoH={G2Xap zyk~U5&K0-W?^-ZDT?Qo{?&^@fJ@Y{Ut_h_b(k+m1iyfHly8X@Wbt^dgd|?4k55n(m z@PEf;$Na-7a?Mr=&%g8s*dmiMOb;}(>v3Wog<=5)J^Z7@USnZS)f&W|jU}usEn}1z z5_iYoo?O@N+`xtFS1~>^gP}}X067?s$b;2K%#(A#F5J8-K0Qt~OA#nekZGPJX0=x= zO2$En7~}Htvamgoa-`ptN&)diP$K(|9mc>=i2luaxE4yqmgr8zI0J!2f^1@K1iUo@ zzWI$J%3Pw_DvKZ5;C^;wmRkh+>;j4zbFWH*x#Ku}XcBjb5#Cwd z!l9YdWY+KC`mM_-H52%ukG&gXhX+t=g|YPd6{N=papsY;c;oq3q><+w0q?DqEs=D5 z>&hHH@c0?&NWHMKE&)O-nZ!hv7DKX_SX@08bZ~~ucJ?h?p@pkKC%?M9B~3$zCq{AN zMJyV$MLIS|mDIWUXS@hMbU3xil?oyKaXu!~e6jKR@SnR~f-2s1PX4o}RY zO4iJkn>VmafXMmBvvlvw0I_abc(__GnM;Xi(cR4*RIHHr&y8XUNm?}D|Ih=NBzDZ& z$5BV6DsELvqL;zVTOB>m6}xq$@=oTm=}55!H@tMTx|yqn$1mbV{&fX`*Uwygl1KgYo{?)v)O=YLmNmb6K?8yFp(K#o9yBi;pi;FGZ=vE4L^ z#0pE*vVe7xfH53olRi$sLSVeMK@72~$I_wNw>Un$ESK%>ChP9IJGW?WRS{ZWf8Og}K}FIC zf8fKo`qrBW5c7TP;YSgq0g8u-0pFRUMRf-SVz29TEldO+Az&Wr>l4=zYc+6QHdpRV zOpXh{iS94!NpP+;0U%p5q7+BK&8(Px%2`@uxtVH-7RESzw?yRNF0o#A6~vtYRyWsh z{NN$9N>yp&YK9qK^KYPbk-C%V$6jj{@{rWJS`|CGv<70p8XM4c= z&d6%`7_qj5h;zG*{aAtD139A`@NxlAs&Td3fm6o(y~)N-+B0$vFmc+Nz6j(>1-cvUb}+%yX=>1NU$fF%!nV3wSM{G<8o9sH@Uj3-l!`n zzYyy$5ZDn26f1j3W%}g7;f#dI(Q%9p4vE+c|4fmoy}q$ZAh1R3wO`JK{k&^i+tMN^ z5O6R!lm%ff9kZs|8KH%N!33F`A?)Uxw4a6&7vyfoTro!vG5aDppO-7#xco`=dox81 z&2~Zvg$RVvMlKN*y@h#N01o5^aqh@r>^ODYURlBF)*eob9>6n?9!4k@z*?z=$;n}? zT)T^#*XPMJ-^OyD8*ZlX#My(`qXlDhY!D|-&(bw#k*0;?#@z+{{x_e;`W7utp&+g; zZVk^c0PS*;m#ZQ%mtEQ|RaH|qiwL4A8 zatINCHfl8iL+PNxY?Z#3j>ROf7v^d=8k0h~E-i#al9N^Sf-Ihu8_#D}j(hFKEqvl{|KEGSd*1^uF}?F=J|v8neZ0!O011LAfKw&1 z_oi>TzE&6T{O13?+7A9^llOw>y)FZP_1nEA!~08);Z0sY1Lhy;tH!Pen)=KdSC{9p zxxFkciugOSKp3h!G3PFGg_yfv2@2{Ycz*cm(xfvWDPVjZ5qb~@2+;ZSt7~f*8yl7E zfvxQ=)o+YG&!3HDViK&BV|J?OClj<>>WJ8SDoqcnMSxof5-SUk$zKs&3(Jre!_xAe zTgoSh&9YOcP$&yKN@rLGaZ}X5qCt~DL6t7=R0=pSG>K==pTnKaMU;yTI-ff3?B#JF z+mGo{VzD26hCuQSeD|%}c>1YxNF{@)?$+_#b1$Mo3l1yFzUPsLFfrPX6K4*iRxV-r z))F2%e-zKZ@jCv^fBgo5R0mUZy@y5zFu$>lU0Rq%Mly)eX=jpIyma*@W(RUKpN`A#mXaaOfV-3o zTZUL*ZVo#ypt3l#8v@u@1s~9y{Q?h?d2@9Us@@PsaEjPAtR(( z3rV@Nt@1MCNlQ}0Oe-i=Xe@%xzROsc#lQ*JLviE@Q2B>5AUJ|$vVgC!r698L2(i1i zRB*BRy+h`EBF_4|Hr=NNQpA2a&o`eh;^4>x{>%s8j~KDeKYrm`Xl{_noEpYgFI~j= z*c1kdy}ohtIzIO92MNTtk;*1<=*Tg&=zKQT*YV{qe+^;N#vwAHrzVCGPbBc*>Eqbm z-o~ke!?<+i27dP|Z(zQ-i&8O8rRL<>L!hmRdWt!Chb*De6GnB>UhzB|7l z{`W`EK8TTlVazYgxFV5L_n6tTbxrfNEIjob8N#S1`up+PEn>Vq;C<(0H3Y1fbpG`Vmb=PeZa_`il<3vj zm0mRc9aVJ{&b)`Es!p!zf!J4wAR`sfB_6=tv%J zKuP}5!^IDdWI%N40++whM#c#ZTz1>~OOI=*qpyMWxjt6n})HKdbP2)HJ=y?M6 zAU^%{6G%o9xH-Rue5H&}J^LuW__dc{(ZMJB)0n$<6GOwJs8x$-6XT5x55S>uNz(h5 zuUx_0(kh;Q-!pjPk;hTqEn{VE1(n^RG_6X(mIh>A>D@FkLq9aOuk_b# z4(PbO+}-!IfVvX#Ari}AaWjvFwN+%|8En&H!g>>ZtXWLsmLrxt zGCG0$UIhg@G1ki1Sl__H z=AraQBw!{?!4*PR4O1mXqFJxom4)Xk7s}XngDjvhCbENg<>s9p@V--k_kr^tp@|U{ zl`a;oR_aR5zRUuDnwX!RTEZsPRQ6ZBbqgAlFV?R^>fet)IL4dgF|cszn_)&OZ4*jV1fN8WpefP5Vr#ioc9wHg&seVZ7cKs*?bf|67!CGFwA z`L%B$oX+B@XWolpVuRf2w_dKGUMwRVQk^);)vAzK`idN{T7i zr^=*)fl>9>BR~zvCq4O6nLwh?8|Vr_N#jbxYXQXtH9XfO*hT=)^S{yLW~fT+o`ZOn z7Dead^Hk)_37$9n94OXoiUzME?mR~+^|3lxwjVFwxP?#s!Y}rK_x|_s#_`ZYAESv9 zCJbpyLrF2O^@QWqnWY4o{kf*U;d@UNLbxeorc5%PTep;%zt285b|o0Dh&ormi40^%y9P}0TU(Z59{~A42EW|*i~&*D ziK&3o)?EM;mbazd3^N$c@Zg6%FqlHGbARx)v6I_suSrvYka*BE<4m7V`vbP3auLGLjI`Z=lZON8@$)&EFuwKXn;7lO;_v>&&*4j7 z{Tkl5G=~Rhe(1ZY(S!l(g{JnMd%Se&Z`Nc^a6Q9Hwy$;DM8~*xsw+-+k$i@xvc|5I^*RNAb$V zWqkRC7jWkIQGDh3i@0)U3nz*F{>)E&3X5B1eCy?FwBQu5xVkDu3+ISUn>0o&0MDAi z*RNeAK<&qm|HMyXix{>9CksW~y?ILtDHtR<#cwB{$K=F>xCEGSI$o^6(cPXSUgf1_ zsw^B%Ib_$3ZP(S5fez-jI|7Uh%pGav6jIihEB0>$HCP%R!{&W)R}hX2I*xk1$t|=v zSZAr=8qY`R7Z?nAu7-fy(c0vB)e?ft!29~`+xWh}_bWZ%eJAAcGUGL^n1BhlCt<_M zVv$%lUa7El-+HbESN%(+nJKpcM}Ip`N4p1n0W+iPu3!M~g0<4IbwQQg66_CyvtLTm zJ&u>*piMR2FQ*r=9<8N|GCH=S-4W`uZdVQI$lX!xcGOop+E)#o-O$#rso)v2829hC z)^BLF>dJI9AuL(InA`Udd*mAaXgDCioXPglgE5MQg#|gr?92fyF3w|aX#rD{2Qf7@ zfwi?c+`Y3T5|zAhDx1(C0`kFJKgK7=5M~z!G4EVDg$Pk;7HVf7=#4vfP+>nbckCVQ z!%Tk$3%8ch445d}LEM^KAV9C-v+sE~ju1Gmt>48-;QY~}q7S^iv4u~6@(}{cUHtxke+9P| zSI}@Gc=GHlj!*XE##$Nqy&Zhy>GRr6P(>sj$HgnR2%O@W8tq4m_Ir>3*h&o30uzB< ztH^s?%wo_28IDDSF)q_J1_EJ8*IQm(P~b4hF)}7r^N@H&IrTUIa zXjdJuY!N_r1IHXs;Qh0&S>~-RJ`l~cb&GiVdzhI1n+r?${$Kvp9`N4pz{~ov4?p-Z znkBl+aJ#L1u))B-9_?K>g3jS}brm{Fxyv8)64fys(DMAiGATR0R@gzWWshoet;BY? zmAm+ibNsjUYdi9Y^_A`TROMMU3AUoni4g+lslfNVjaf_Ja*yu1;wk!DhH(tQ0V+UmsyScQC&%f&d!~-4t;icO+ zGB$xG-Dj?Bi;?LZBon<(i%F4~_)s<{1sZJ{l$FgLVTifDe$=Zq3}#Z&68-40ejJ*f z!2H}MzWkkw_{PguP^gyh?lTAQ)UiV-(mr=eb(rlse(aNv;n%+U7WzUCzW;;o#&fq; zg_)n28m4QE!;FsOd1Ag6YkgE{!OA2Fc*6(>!${M-+}_@jBA9R_gam<7xmc93<*W<4 z(N?Yl0^xeSCW~WCXD~pnys6kJ&oQ0#qB=Ue9$uA7$bYj?k;ET5ZJ9q(ghTJ~eGA;< z9y4^~)2=H`1g1R|K9wEA0Xj$wfEhH;8^w|xi7l`$vFWve@3yWQ&cyJ_+!8+jEC09$ zyzdC$edyy-?#VUprt9M}?#UqVrG)u&bvb8I`jt7@ujQ-FGq=^XfT^V)3Sp&gikPD( ze@NT{O3qPL6WyCy=DHfX{$&+F5nUN!-o%o6=)D zD!ohz!uyZe79TJ#G78)~;_vHd5qDM>Yc#8<6MO5(!sSTH7i+LO!k+7L&Z%Th^b`uE zUBn6SMn*@-RNfVpF#hbRBeOU>K8#kOpt3FK!EHBN7$o+)N8on%?g9p5DX}W-MgdU* z^%Ez~AeXeHgmMbNA79N@&Bjz}SU;FxVq7m`f=^6U`2B!K) z=@@OKLkVHDsa%R!?Y6j14j-5n=|{p03=pFZ8XZY{OC?j{myIR^`0DeQvAnd7ECIgh zv@yZ@1d~%ThNXHNOUuhRO$z|un#uk+KJwuw@JG*I!+(A579JcWLy4rc z;>o6y5=3LS!S42s+&|8f=BhB3)y(hgh|gJ4#5e);@Xg+ z37yU0T5F~v7TlFOY^tg?_j%&;8%##<`r;~n@E`n>9`L?X7;lT%6EjY?uMdAvlrV66G@8ZJ3!1y}-U=Tc?h(StzeNEpOlaa4LVVo8xQ?dzW-G zt-_{^gO(_Y$@gJuVVs(<992kS(?egAhfz|}OiuDQ(6H-B&^f*5p|hA89>TRdw=pr; zhojRo*eRDKg^F3-E`d*_RFQFFP21U-G4!STvA(;Fp-dPHbE^b`6BrsDL~*Br=Pq2t z?8qR-2sl^sB`Hd%REju6=KCH2Gk4of=aO5s*EW$iTXqcyF2k_>V1>Cx`ER8kS_bNCrlEI;ge%!db0YXnW1ZKbYhtDAvriD40 z#-DliQGDT(597alpo9jtdvpFf}?R`^_dY5;Wty&t9V!bf% z9zT8@31Yjff5HAEda|P%5!paYZLvMtm*_(D#^qUuw)mP zsa5HW7PR)MSLnb5B4`GM{i@8Dwzuf37)D2DRhZsA=KITF&x-=bJVLY}@jPkSstU1F zZ;EOhTVIk&rgfr%avi?dmck5P} z!Si<+ZmO48=wR&Y5a9+t)W21VPNUxNou?|h6iDM>oT(TI10(~b-Ldx-O~@j_W~XVX zuD}eCK5=$S`6T3-GPH?jYxe>JbcfiS1l??PzQS7VhW6ztADyk;6>UjH>nMM)_?uPV zG}X4y7B(uH1%{HSWFY1M9W!PwPi6MoX?4UG$z#s|UMOu47*68>VwuTI0?BM2F5J3F zpqhn4pdW0s#CN@2E+`2~I{xJJG|nEJ!JBVf#?p2kr_W7eGMmM>2s9gXJrhGiC~|2l zF~ilpJeJmX@t!j$5H^~q5TJ%)F+BIun|R=XlQ@2O3KuTiMwLMQ&;NyIu(w&qzxWS- zh>?K=PEC&BG6DMR>>ws{!>aGE+cJ~#z)4mTi6pp za_%p;N9WEa&Cu|$7N1d})H-WdbhrZuiw}jA#zs1g9b&~?4$e8eyd?>!Iqi&_jJ8-% z$5g6itp@w$>*7yl5&4b)XiM%l2h|jVg{ZBCb>1&$#Be6Ve&Kz?E2a@`4qlAem1US- zd?FkTqs67)c1OC3NDjQMtUSX~bBJ9VBdHW#TUf%M`G^0!2fX(`@WycF)U)E_WfM{S zT)zHk{wlM#SD?A=OH@EY6<;`>&&pq&!+*O432dg>K6k+P>T2xW5S@6*W~H>^4q8gX z*LRMdDw_7!y4t|phJ}IHw0-%=T2n%z-}JpE2gh_kucO(noU=|bW5ISA7i~he+AYuT ztK7_dF17@C-18D2b4RI8G23N50yn3ZkHMM`JkGp0RI1zxsDVcxco+u;`mwr23~*u! z-+c8oRLT_`92>{s*;&-eMJyAjv^erkEbjE-BZv~hcDD{r~t+QW^Js?|T^WR6kyL=?W6D2-5K+ z+O#Ox+Mmx-n+DGjuI!`hE*DCuwNwXZ?ug8bZM|9%ed9=6<)QOD;dC^80iKzMWClH#Wg{z?1YE%L*mTDg zVpp9rgf07g#?T#&g`v2v6oTM(v#AP%HTzY*X2pitVd$pSc`fAmTx{h=aa|{F`jVux zG3e@U6HLb;9y&DM<;D({ z*LTq0H;m<#WjW6WPjJJ=09Lk&Slw>m=||4s*^d19~#9&XU@Wm)3w(s_|Eeev0H86(h8kdHiem78Wmb#ZY{6kKz|02R3E_WS z!$*i&pT^atRouF}jGH&sg(-geBTwOTpL{R=cxgMx*Q?!;WWMV^)d%w zG#HXOqvjfapMUdlU6sE6co?tEFX2c3#lP+W?>oWO@X&)FLmMFh1}>mzYi8;P(C^jM z@?Oy#f9rR@W`lo%c74P9g>c;c^CWCa;`#RgR=oiDS+{$R?tb6qg3w~qs+3v#)m$de zx(n>z)h4XU*;VOgss)fE#SxsxE8}IWfSl?|ulDI^VHW>*s4+K%^)i@qG+TA-Xp33e zqSp(>JaWmXsEOH40$~DO7WGbMQphAy2-^noFBQdD=Ja!5**&KfJcfN_IKl&uvjWRA@zKh)87+!w;bxe(o z;Pj!RA};d>FTO4r0-t!_V`7T0t`uw zl0h6eJc{E-4`bo(I$rt4H5uus7wd;5%WsiB)|;>yX3)N4&PPdQ-I1=4SX>VHwM6NDAA$j7V-qb-+RD&-!tAw3};S1ON=+7+ytGr#{k_)=H?^1pywAncSUpj3T3W7t{+hS z3T3X?jtj=F>%nEUJb7JLgr5QXm7Lu7T>y8F@1CPqo~(tY_3iZlTo{h-^VVha@KmF^ z$LMG+2vrTm;Ow{zT&LR^zWV!)Z_!fcuR3%{QofWdTc}p|U<4X?;P7#b4GdsoXA>(c z3zAdK0ikd_gct!sakq$YCc*hjxN~z^Tq4}`ac+49+|&2K#0VZB;EFj-Gzi?DzjTX^ zVc>^8_CaFHDQs-MJ+sts<)Q-ex5v!Z`iOBnC1WtncpO>fJjS%w}+SY7_%Q zeRK^5=I2)N!Dk=97O~5hF5N`h;4TvD7$he9;b)$}YGI8&vxnIOv-s+FpU3T+i!fRa z#-@f);ht;6xQ|Zeuu&~xetrx8;Kx6YSFhZ_jom8FA3cO*q=Ra`DrWbg*$M1ywy?X^ z!20TvY9|FqH)RH;Ke+HJ?kp@IO^eRS6Gt#RHcE`Qj)%{j!i~jsTzKOG{?1?hb2MIM z%-z^Vw!dH6{FuyC#cFbVN_LP6K{p><@`JTbgF9b%?y%&e3X(#aoT@;qvUmczbGAG0 zRSFq&c1}>0&3p5q?PWo58MwGnB%RTxdm@W+2Se#Nu5a$(hyU5X>;dmP1$fP1LPT;n zHA?ww-!44vU*-L5l|f8I$aMtS&4`fIUki-*#i5xE`t@}EsX1cq>5dbAChMkr8J-5P zCH=f4=w@lZT1P7I92XE7e8u#0bPAg(l}DVxpdLzG}>{ zxO4}fdiEjg?NzaGb4@x@EUzwLY&46He)u6QtQJ8yilY<#C^cKSc6$vM-@1YEnGu9o zUw5y9wdGALt*qfkKmQ@=wf0+o@H`HV$zF+M3746)hr8})aRY#f-f4@5)UF(gr7Wn?E zdu@AJIqZJoetfJ8;sUa?{SlC{#TCKNi#xB`&)%Po;mx~?_;Wp1!~GAu@mNBFYi%Q> zm6i6(I{KNf;}fs(yBOTQXa3K)fa;oRE{)2&4FIs_PQLVXu7{X*<+ijWcvYD;yQsnyz;t%(d_yX6T8b(!vd z7YIL`j>*AG1O0t5T)grUqJcObJ9i$1-8DpGA#4}Q(*5}4)C5ulT=Sb-*d*rGtTnN) zyn)H#A*8b@Nmb**2-b#RRya18lWw~g?%qY1z_ZECB_jsT&K$(i12Y1ESFc^d*;7Xl zPG_*XxP!GVV!Ai4y9v81&!7u*Pe}v1I zZ(_JVg$K?Z!HXBJ6F95>YNJDgc>MHHB;zqWdH4vnR!cAl5QA!!m4K|=N4w<}{)Dt9 z2>bHcPtX1FL^@LY<=N%J#6h$hOjVX12)$jGTFqfK@06aCBPnrQek@)M!_)#%L71MR z9mL0M>w*k7F3?Ym_u}Fze*9nln;!7K6MVcUj=u*@J1F`Erf04zvrOgUc9ohW%}YvY zp?z9GxWxwWDLT1eCX*N4^s;V{&Fd7e^h?eCdBQ5=A>idmx&ZG^bhl*LW!GN2BE!^C zdUqkPea$!35AV|z^--YM+UGj)+y*R?-f7AM%H*EfJ#v4EooXHYAZu|~|cudg5NMqT{BlT%YzSX{#G>$eflrbVZg zeY~t#_Tt6M81EkvftZcm9eHnkV?$Ut`=ZNL7GO6pm`e#@K7RHX-uLvw*xlQ~PQHw< zeB&iJ#Nf^lP`!Tr7IyPH1nL>=Hmmr|Bah>elM~phcd)XN7t?=cW*9eaE@7yD7@PT3 zROuW~A3K8l+8(jH3JwtKUR&QIHol1b@;0_BHDbYKoT6(ONav*YU5u{j^{bartv4}B zO!f#J`~2B+s8{RQrsMBc3J4SUJ@(*ZIC1JE);89p&HBmXCvf%h75voS`a2jJ%HZH= z4&S|a4YnCZt<~Wa1x$^O5NBv&dT1CQI{!GTbo`c9z7wCnO5~RGEtC5N(oZm?DlVnl z1ZOa47lP{|;<+S6H@XnVZr8+L9|}hKsnT7yS=v+qvmy^!=vH;v%NuPh#1yipWLMEB(>op_* zNjHqwO07P`zJ;8iMj`@g|s!j=}LHjJ)_w12;DhJ@5z2rGdw7*}12 zzoJwn6(|c6y{9{d8{u{&%d9OT<&Mq|mNI(+P^+UFgWA61?(e9fQp%)Ei7S@mR|g4V zsq;&Bab#kc9{ex?&K3d7QIxjwxN~P7u~ZV}a!DT8+39Jd30QC5z9rzA$>fkpW@M-@ z-@c8V;x=X{4oKv`Qmx4SV@XQZt7Sl7aOB7P$iygq`1?PGp@AG07w@9c=-|SQHJAaq zI%3n`x^x3AyMbXkH}3!TD1r2Q-gO3Zx3*BIwTYds;Ni0;X>q7w?)F`5RZ2K@>^QCv z5T7OH+t}X1^k^E1NE)wRy+%esi`Zud#TsXB5M!@9(%qMJi08L9@yMeOyeECjWvL@I?A!1JfWufuHtl}0OC8!=ytQoHV*zk21W~Qx;EYS;YHARt)=g~-C z4p(Tg`Ah%i-^u$u;Jwd%yr)mSmw-1SIj5#C1?=7il**-G`q(3U?7-NUI_7spxIS0+ zZ+}LD>pF1LYg|?v)B@@5`yDOAXGkJ@V_yKxWteVWusSCd#ABbWv}4f~cCPZ2JTRuq zfIIsZ3H2QX@)DToG*l*oZR-aJA|}-J0q@V=P&3K$0&4;7PjqT!jP}Q|RVW}D3P@JP zUU8S0SrZ4Rrm?%3m-1KEd)?g0%f9=F=@x56+_-%cQxgZp4_&F01ytEBz+I73VQyhw zL@*L204}SspnbE+8>M4^?vqdB-0{O$n%_jaFM%=v=kmrLG30dwoG_lhdJ8e4;15hs zp~H)4z{YScgSm}eTwhqiljj~li}uSI6znnO_B7|toWwXS9^d@dOLVLtG3jl@f+ltg zRUAEZfIi!Yd|?;QUAjepUB~fL$MN}3eLoJ*%%V)Jnscmg-ME3(wRQ2s^SLhFS-|S* znp}5dwB^I{$QFvz{cO{`g~2#pX<+N@bAY3W`76ddov6e z#HAR*G(6VM?8FU{NI`>--HQvs)PClUQX}KaF>Y-mm3_9$!fg+%J;0T=G8~8r38QQ_ zYmz?Hq2I&lsHBc%a|5Ul_;Bl++jnk@V9g_sJW2r4kE<82ARI};rU$n!)qIftYs)Ju z1j<=r%qd}1tD76h<#KZF?)b9MdaY3sAP8C!^bybu5gYu$&wm`*L<0HEEdir6vFb!T zi0z#!nf`b1jh9{~(2Nsn9ijcl1PCjQDkAB)1eSKU3sQ(MJvE9(t;7=GSYBMg%%Mr# zy1k4sI`4~j?jTIS`|z35Xw$hYFD{E3+w|-Kyzi;^OJJ}sokL--C_Zv-B+A!+?bZ#I zXI*b7f2ySwzZ}Kh4ZBT?R8W{Jiyb#;(Og_vMyX!K8d(dHb588DPRzJeV=dsUfbP`L zs08QKT(rdeXJD3wuDU5Im+f-St)=yH8Gw0lXRu}ged8W$&z)=RqOi5_4Hr$oZ6y@g zKVQ|N-tw|yENLCp*_U_DOLLSKTH?XT#AA4i?(<*&wg0o{YPkP>yfGX*`fe$pU?!+K zP$(1J&nW+-@81i~_g13a%WnN0h&wuW^4=U=KbZR62>#B*t{}Pl89(FhruTH2y83?5 zdykoWSJd3pDp4w_Ug`a|Js+|1SFS@o1D;Z zqdz+c4sx>^7K`980~;P3!0yhDu=r3kNWfIW?rsHXQ3DHOV`l>`)_Ub2P|J|E^c+C5 z0|uGrJEA+lg#ip=yJV`f_Cqoi#ZbBr8M@wwA3lvVndz~Rg(HVYP}nVt3*^?#8?=A~ zu~ly2=F$o(#8lbr9iJFMgT^SHh~Vsj!zfp4Slrvf#PpYdSx_EdzQ%Aej^(vA?2xt4p!Z6Zs#qy$8kd8)VLWvF zG@7idK=YY1DcFsm9ArAHL3E^p5`1HgX2a55CLCQD!z*V;OGNVg^yV)-_mbUFSu*Ut zU?n>y%cij9pqg`f{<`Ui{6+3+q14W7?ZPmm5{_F9Ma%%*+XybLt>SO}zy3>)@xBwX z8V((N94$x5Dh9ZNs_FV!ZO^6P?*i<)68sF;U)10NrJHi&XUDE9z~4{p-u&Q>PbrR~bBtzIn=qg=-%nd2ivSz>r)`e~ABy+N!pPOlBBTxQzm?98-i3|zQ+ z83_W>cC#a(%PfxBbtD=hCKe%(P-9-JRmH8q3THd{9VsnlaN&p8kp_@CIK&8t`*L{S zd!K^SA(q#uV1RXg4~)>hi7_v(lc`?8t%VI-S=q+&{2X%GxPUVIms6>P06KR%9_k;! z-MKrsIll_qU~r+a34~w}Xg&16IlM|NeI%JCpsmRQF*`AVpZ=-8jFruGeCJ!=#o+KL z1_t_Z_vT$}tZzz3<^$6+(h;Owt6*b$9mV_}W@ct2%i+e=YZx0Gm6q$Q1p!A@1ad`M zp;$mXl_HSe6JhyEz2=p;XOl^sm_CSp0(CcKvDs{ic7|jfu^gPg5*2 z)sBjrlJdBkx*&qn5XA~Jy864qZh4;BwimpWPSsG|sTq(tm5ditem@utcs&N$cihs! zT;ty_?bi*j zF{TT8ifyV+u3Td2isf{{+f=ODm#6Cn*i25HfFv7Vp`FVDUtDLAcE!fMSS98@5i}=hwzQ(U&1Fp z@)+u+nshKO6?YI1r={`a*S_^f#4M9&IAP4+ofmzB-7)+2iDcz;99s~+&)@4!opS5|kLT-<%Yj7U((1y;Xnz}pv_LV>O?S5n8=^wP4A zE(`XLXE%2i`+BgspY^*L)I^4tmgXME(R#s_X2v|xEz{apu;8Y_xvbYsS#zX;Wm^|q zSYFW1ZQtI_--R!|O^N5oIO-B%@qufJN`630ZHBUYf>}%?sv_51N}J!gi&IBVA(PEY z6US4>PhfL%3)gR46^X-SDk%>gKiJH~%EVrokyopA>{Uug=d$!#8N~vd-&p|$Hr08o z_xASWyjUKQ_YpE%7$59MtJ;>bV~Z^8+367)hafS;Jf3>^Fb+@6lDWQzix+NUj+pN1 z;yj*t>LE-YI)Q)tfBsh)&%vPqlnCTF7nRTP`PbhNk(vQI7cP5car8pHg@ZE_=qIo^ zcH}s2-nlKh2M?S(Cz%PyPM(l^clpY7MB_;$l5xEG+M9Ukg%^dP@_tj%n6zY%5dgE_ zwBBw=!2_G!to`d+9Iki~pBsY~FR)_Wa8>~gd{wjF{&W`U2zRpxNw){3`wZP`-KIq) zAPam)iy66dMt*bKDt2eEHKXUVJAZ<{PS^~ltdkK61U*+23`c7>sAiX(hRE}Rt&n!B zxzB~=&q)`p>W(AqnXe;3%=q?B9)IVHzbzdqdcb>M2iM{_a_C94gfw(?q&6UlFm6ST za(n5@G0wR`+fyZTYt&U*SCl*}G)9;2}BuD@6w)Ic|vQnDAc_JRg>S6kK16?R=MUdwwC zUGFND$wFc4W{4IuodB`f6~vNlOptla06RW1g6Xjt$so8pcUR;ur>CaGMBdY_YNo~} z#2=Y26|l0tMvSybfY$FVJ4)rOEr6UM^Pd?rYX@*3h<%DlZlX!&z!?r8)_v^o1Zrd) z{2#ybd-%|kk7KMqiGTm)@8U;4^+9~_p;L&aqSE62OMmcf+_`ZZU--U{;(>?G<6r%U z|AL!K>qy5f(d>v2b6wip#JO`1;KnpU~6X&Ckcp$a)Y>a( zEk@+{3R-wAZqRp?KiyE`=1>fn-%oSLVmb%*qe}Jxi_rvB55BgZ0|A{g&ij%|OI>Xy zZZSQR1*o<4!;AgB;`^?klg$eztDTujIEwRpEm5-rvFxz4k>~L-wbjN!R6`R6p1Ts@ z)2VJu1~{wX&ejfo{)@k(1C2f4y|01y;DN^_NFka6aJ3HtUJ-#5I7o9oLz2*m69DMy z@Ul<%UWV(+==t>)Y+co(d~Xe9x?8HCfk9LGU2UaP$`XB&jBZK*Lx5ZZyX4UZRJ$ME zFYn8(bW;zgQk@c(+))iKUA+mHMK_zReQpy~L;}k&uOzmD?zlw{ZBtApwL`JT2g{NdT74WJGyvWM~8@2#8kKR*4bkMTU^Cy~ND6 zR1`KS3x@6$Rw6T<15TU?z}&P;P<}$4gA^{ zzlF~|{Um};6>HTF4o)4WziX&e3wV+M`Noww+`e-YXU-hQkpr`M^~QDlKY#PfI7)wi z;zJ*%MWQLW#s|rK=YU{;ZivpKj4M~K!XQSOOGfZVU;hT)xO7DnzxoGqn47;VRbWRC zAD4b;J6m}HYrZGBR3B!hXQe`tbDH@zW{%wEqAiVA!{YyxMNRj+3&~tCR4K3BlHjku zjgMQr!T=Txgpi2EmEetO>3PI+&eF`+@`7kBX4kf|QkbPOa4NB!wzP-0Y*(=ko~{W0 zb_H}?l;8lV>CSr=SaPLKb;X2X=ypMt>Z;;47=fvU@;g4@jdQVt?uc#a z#*;yvu^<68D9sHwzgj9FO-FYVu|-NWpc$=s&%82xfAbuvHyQ$#95@q^CuX&V=FE=j zP-5vIwXGY#8q(>cElj-|6LC{6gW_tqwXuc2_vNoB*53o(`zE$^gZWe^U-H>05hbOvQJmCVNdo1_* z{2em<`L+In4!`1=%3D{igzs4Z;kh5Wx(njhW&dE?7WNg2SOmZ&R7-gkIMie2vUheF za3XG|FDr{0o9>+URoL4TGnKpK^2Pus-Ek%Flzw-(O-x5la%*c-qU^jNaULiG41c~% zz{^qm*{LaH!clAxlRij5`sCRYDCIZ7>qk11z&Boa4&#HPn4Flzh0B-eI3XN9cmPYw z3m6$EPz=WKU;q0zXyLGMWO@t<`p#CNO8*W?_Qfl&zCuiPKp6M!`J2S=19Z$;$+jqz z$^@LuB2`uhyQcyH#Zbcm%PTPtm;v#jG8}Q>EkWliep8(t5axx@P+~Nqk1H09&YLA* z3h2};mU3)MmWd-JzouT)RglXP!5g(WD&hd`z6xjnPT}c6oGra%^DFw)o7D59XR+xizEl__DTgLlW_vd1BhB7Z0v4ga(o=0|IpLO z6X@3I0l&Msg<(2gaj%R9J?sa@Msf4%T?C`5eR?_;mR#djkYy@uT)%x6b|56~q#JkU zkl)@#qf^5`W)S^D{RA*A?B(;q^7;n{5RFG^QP`3QzlhFjjazXK@j|Ohs}&HN;)`aV zXOJw5un|yAEu&FYf?KPp;uhA|&>&?7)Pm2TYbk|$Q8Z&VD~lA|j@ORX1CbMAF#u-fmZ9PUVr_9Ew)Xj(nhCpZ zfe7bU>+~}fY_+AMFdv_-6US-NadnG$yF2Ijv;2OF7Ty)IJpSQVzs5|b2fX(?zefbf4l6_bwAuIdUJ1SvOmAqWt;5d^8=w@57mEe zeqe8VEZy|Vox5ep-5{I)IPQ74*WfR}Ftqp&bGKGw4_iAc@{lrXWM3b<9jeua$UUZ0 zG4a)Mo^7FAMuxR-*H>jsrY5Ed5ckAPO{P-9CfUVf5D>8F_weA51d-O(Rzx5@Y%E*8Wp0b_qWiT+d^fBfp3 zs2ee1oZMkK8;>DNjJDBfVR?HSmv7!iu0M;5*KXm){1PU!!?0){RRS6=`Hh4W8yuu_ zV|K>AYCVEp%Ogv(O(}(i;T5e&&TLR+6fj7!0viXvct7kaky2ft4yT=DuZYIT+f?>aaX1{T-ug<1|3NZ|vT%bQTNGZ)V4CDj}bjDtXaWj<%|9 z6g?1IS!?W@HM~?D6^P^hX&z|$M5MfD0xE`~@_hrshWYv>$k%RpRcvZ}EM3}8=Sqvs z!cHFl^lM-5rIX$N!L=yH$IePtgRnv~=#|#G;xt_rYUt*EZmOBfTHE_7%{-vGr=-~Z zt^BEe->U5ezdUxSiy-{D!`&)6!%O#a)zcK7WDvm))s`!WNVCeyyvXkd$2A~R)XYOER1*OwLf z#jW*qtgo$OaA-*O%j#Wm2Es-|(vXtGR=4wO@<8_YjmW)O*<7YYaugqU?A@plJ6@yj z?Cx$6`;6n8FI~iY9yyPv&zwfRRUu%WL6KPM>P8+%4@_WXV;iqry+a^rA{&bfJ7hEG z>4zS|m!JD%JpaZ8JbdaX-nzAb&3pxQx{g>XjIsU!`lx}W^+lR12|BN|ROVG!u${n< zeVwk7m!2Fb7wII*`_sTw3U0 ztcgT0>NRJT{fcGN7Iw|=b3utAJZjhjv^6>{Wpz?m|#M+x$ms)a%#ZRp=Dh#dVAd-;uo6Da&I+h>-H`eo@vCKq* zSlZpgKl+2O_JH^PcQwQ?GJJ}F*A!EW^LTA%e_NeywV9(Qk>P0-xD_}q*!ufV`P~kH zv5)=wwGsU3I)1%f*Ja@T_WNM{m2)m2EB%GGmYFo)rYWqz+V(2hT%mSX$ld+%gZ@4y z>=;^1yNxg{P=!KX#9{bBXVWzjjuZISQ7UhX-YaKANa2IqSr$t8od0Om8^msF9_!`& zT@I*mh6BIO0Gv!ml}3T1{JLXfL->J@egZ3NYxwrdFA%WT;aDN;6v|Q=$APR5KKdYr zvJs3<4qD65v1g`WtxZg;$Wt z4&YaR@u%?LzWzM^_kZ^v@!^Lb!1%-{c4=&1dif$cWE!Q?Nf|Q+um5*@Zvte=bzKME z%=}C3Ywum%UESzzECdJ=AVET;BsxgRB1MX%?Qqx%Nu)G%aO6>Vq>yD<@@U5Pc*1gM zf+JZWS}_tOQX`3?DB2V)E&wSIBt-%QK%h5ljYb2#q4%!pT7K2vGUwg<-hFxV{g=NA zAV4=8FBwf#)&D<#E-%l!@7{CI!D~`6z=#Y5x~G}Wg%hhF(o61IRY$p$t4?%8Y$HaV z3{Bpj#+)g4?K|hsQ$E zbXOPuusH^wIV_Z-e#C~6Avmp8LjTW~?;{#o0N(2vcvbYXbLLJ;HAGR@xb&ul{4E2W zw0qBi5(+9`x@9)8c~b^W8O;{S>zR$Jr6vSEfGjk^f;Rf)%<_g=lUGL13<6+iK-x#E zrgNo+lPP_&imZj$K4f{MTeS1Byk0=3gC$}hRFk?bJYqDoxO7#4L4%gj$WL8dT%hGG zf++5D6$$^5QOlwnWrd=p<>e*}4~|k4g&?d~0a(=O!nTcDVE_I-RE0lq=nxgMum!lW zvI>{4%#oeVn2JXK@sIo102Hx9$LEn8v!>Q%V^k;mX|Z@n9C-ZTZr&d$NV|JcW&uE1h;>n50(7>8%h zoP%dioTcx<$%e*+I#!HaGiq4Tt+k|#medUMK+7hQIvi9e@$#QoLOM$#HZur;|}N@Y=zjniJKVf<96?VA+QYKA*b zd1oCspwC+(SA+PS>im$$duH(}eDo{#QEoZ_?{%Hy9oDG^T4psV!e9<>p3_aONC^W~ zzD&<(X@(%7g=acKvp4N=fyjXq3gS1eelMpqG?*u5xtf}#X4j-Bz%mr1^8^F2OpV~{ zSmpCU>3}gesNM`LPtIwOLIe%KoK0w1!DYWClw=_4O!Q;Ft_P*xJ)Lmt|afc z)1F=#$wDH)Oigc8pfpDLQ*1=QLRXr$6u^$b%%-h?Uwh{K3nn^Cs0DRtahXgoQRj6* zMZF*TM}MEZ*jCi{ee03KFflR#v)gCji{Jbf>`{^HqfZ^D{Nq3QvA4m_>CN!Ov&Ynm zXA9l;!_S|9n{JqebY%&~HcrF#9kcMw2Off}jaB&XpTCEMb2e|@4$ajrfgeVDD7cQd zlVm+j!HXomQ=R+84z%InVVYoRWuYcUTxDTO%XHe1@DQdaBH~PI>KHD+v0yi7+HHa<@G0MjMJc8I}F z=J*~g&c!AzLSjfpgSTQp86$1d+BFR~2)a1Y<^ngGdPzL=R2SMvw*diJO$1m_rA7+V z?1Amm7giVH_wT!(u5AF`>zviFW%I4j)N4H|1TZK{I+eXZ0+3{3Ov*G$I+iS0Nta^D zspXbT=Fm#Z9PNa`MKLXAq9fL--48y9oJY(%+_d;K1FY0lWf@3mh$-o8QUXxA7RxBz zxUQ*(v2E-r^1QQ7OMrPeTNFvr=ezl}L^@hZOVtj6O-f7L3Y{Ysfbg0$8p~vNKD%=V z@oeW8u8`p-KB!Tqi&=A5mtc9NLwxLua~I%^x9x%-dGlR#O+NFb`xHowzz@FpPO`08 zyfP0DA3G0EA3F^DcW#5XzUeNQ+OP$dmlojB1CPPC4q zNT!wM;zTQt#b$LBnT|HRPgy6m>;-xz44_x4nrVXP&gqpX)ea++^EIw1+|+|94-5>n zc)E_5b$TVDoHsKv@bklJGC4Ir2Os;!H%!A&0N(4mxVC-U?P__Jkf}qqr zkddtXSw@F$K}~|P574DhdQlrUD`=cDcuQws=Hk}tgO&!z%4qugG6J&|qAkUi6Wr-^ zEX_<#AdLU1eQr+f3p?pkqvh$4={K410LK8~>-s`-$M!-umaffDO1~_Ia z@Y39k5OV>VxX`p9(-bm~DmlTKW0@o0n|rP$g4LjxvF_jb{HTpMsoHdd&J$OS?N4U& z#O!{obFC(7F;NFcynIa3Ff)(RHQ1xR1e;h&K5!Ik=De<+XGYs1B`-8uWa5&W^d8#Q zy`y6sF|06wxk( z@W#FSVE^737@L}e1BZ^ll`B_aa&i)O%x(pBMc~L&XW;mmi_mE;D?rR(c6Jv`PfS6i z&SiGPG>lG19m4JS$)(PDeM$?I}z ziyLEbEVb1?-KMOu6ek)iVm4P-sA!6558N*{$F$UbhAK5mdC;&xL3H)~r`1IF|2_OI zQY;I=d!45mwrzbatP*HsT764!Svm5P4iNmi%Y*e%$Rv<5uUAHt{CR2D?nco3e*S!J zdYKlEt=*O_%9)8qvw{km%m5wy0edk+v5V)*f#W=*NG1b zx}{iqfEjyu(R$g{i4A*tlsUoH})ya)elznNrLDj(Qzik7sx6f}Pv9 z!@^hM*_}|u$tE6vQ&%p*#jBSUkPpN1 z;xe3HxT1hCgDnbxQNj_mc*(f~!BL&cmJJ&Sbe0wtVR~{xfqe_EuBLF|>H;wqMhC{A zoi)j*vl7>+$zxIhb|tRE07kjy+LB_IDS8sQ60xRtVT4`L_Yfz%7UhI%)EU-gGgD*bR8at3SCd3zxuJiT!2xK#Z5@kx zpwmK`83&2g=IvV6P9k~aQ7n}Abb5qVKc>qK?>UOFSIugRI@gAV;M~#@eC%uY({%~J zd!0wTnB!d~C8&;8NEFQlvbjOF@^Uwre4VLeE^|S$0^CTI@_9z?kt0vZhG4Llj08R| z*{vq`#moxM5$njeU1VlE1#E4Pb!z&Pq*m7Ba9~E3wMEu&@Z=&4b$&;t4khW`P2h3f$0vk7ORMGD; zoIZ0(0q2+ky;^kJ%Qr*xV3G4xKYj>LCA`SM{JZ}%isTu)Q7rrXi3ahI9 z*^QunmkMn_1z+7L(lskX-E0$C77Xs2(hbCj$fyHvprZ5oT{aI;kv2|HmsXeIuO2%9 zU80@^;JvPachkmONN)^G=NgE7rY~R1oodqd$Bk&+=vaQ9sb)+YlU!l9s|~-4#m#dj z1z6s&OpC~zY+h_j3;AT`aOT|KP9Z|)eQ3tVprx0w6rkH}*EK7JypaP;gGpqS&hiJa zW9;6|cbJDTGLaAhMr1gr-Btr;XSY+X7cJg5Y}g2kOUne#BpQ$RDpCNYfUdEy1n+w5 z4?tH<0-wI;t1yCk2-uFR_BS*(OwAL^D{a_3H43-gw2w3i&R;l74i!lnQ+L{OYX#2D zU7>w$R1r10T;Ta_-@JwRu?RFP&1Gm}G(0*+*9--KHj(Yn0vT^kE5L0pGyvn z-I1r^4QjzDgjT%09gFQ)B?TNv^i(S!bdl4sGuO$Dt&deV{F2ZH4r_acdQkB z&FmKi-;oyA%O}^2mxv}|N!6^tu!?%mFD<}de&>=fHVIjAGbOQ_|S@ z{20(V4=m|(@?6~_pDi2`cNL%hE-i;O=11O1L+7Jcv3#WY!Cjr6&@HVgMbfLQ4btGP z)`wt4Ekm&#_{P`VrlPwxEUKtgp@{-n6u#LDODj$In|tnuk&#JiYi)N|)dRW_s_N@E zZP*0Mt4%m`>}l9AIu1J(piU`J*23=EEn{ARW}>3k%a_ivW?*a-THOd9 ze)J)jo*0L1n>NFS$r0GD{##Q(-6pr>B}l4uiXzXSJEs798kVybeDksA)OpruY@s3> zf+$IKA{#-0O}@&}6hUoFiuY*Mbb*;RWYkqiBP$w?j@UFdaFvDZ0qlZ9XX&bzWbC%I z1v|NpL|yH%X1gQ1l>3iO+iu5L_>5HQ1mu`!#Ph;e1>0p^}l(O1osS5{QS`^aPJ_?iKDuY2H~z8RW?5M3I)X_oe| z6y&U}d&_e-U@15*4Jq9mt_xN&DwQHUGQ#GrI4Rg8HwJteZRf?cN`V%}$HUT-RGg{T zjU;1KFv{d>CQ}&F`PiLo+({(^PPu3vw6vbrD+bn-P?JI}Hu-3stE82J+AWHvXKH`5 zJ7&~!eMJG@BusDG37fXmM{rJo?NDc*J&YV;iv!?#OiS%(1UT&D#3Y#}!B;BAq=*-3$GU2?sd1qRp2kRWmQrZOBGkD!GlB`s7E;Tbw&_;sSp(o)MOXKRTY*0)gzCRUT^^3>l}DD zOy5MnOYOko^cgG|T#>bS_w&(gWLz7m&|<^xxd=2nELT;do$Rmi@+q&{roiUG=tv? zt!Un89U4n>kT&L21Uinw128eY8FuWv6`p$XK{$5wFwD&Cp=IrmikMbb+i>F4IoP*j zE8O&&o8Z9%2jTe1lQ2881FGuSZb3=N`70{=ZIjq|)@f005*;aOwE+T}wu-_hM<-yg zsyV37KL0#a28Q7me&K(C(ZLb;t^f2}aQ6He*tcspY~8U9E?%93Q>V{R1c$o3m_C?P zQTm37323ZV;mn0O1(M5Jy$dH(RPw5r)R9O%<@wzTaeD0pZon0_6cE%XIyB4pLYJia zx!Ka^gU-EGI)392UC|tA?Y*WWRZb}};8%opG||P7x`vT>s@+slQ+(6=>KJ;Uj$+Bi zNBurJIzrS%H0Gqw8-6w(OWO$NSlcVZC)WF@!_Yti=hdY4>4(1)BHrsh$2&AksfK1( zN4#2XDemE|N~)Nf|COF;E-=f8SOTDoLfw7KJfQp=zlQ-(($d&UB^Of9i+xh@j3Zr_ zkL((3%87&18&U*F@|9&F(f%!AikTMa(c(PD7KR!nTBgGeM1ikM#U@%@XF#1(jm9F0 z?`%-f=jze|%+Fnh4}S22>fv67zx?w*gBy14f~Dm}?VPOkv32`)__?3`06g%mZ^Hil z`(b2w4CXJ-le6z1{=px?#?8}ezY*-)dn4?=VK03CzkgOmhgI0TWhc2=;1V9&VcXc& ztbpVBGcUl;{q#=~;N5rMeej=t>$l+f=bnQLXV1YK-guXass{*Y&s>~`M<0C{&Yn31 zFPu9MLt`6MwA>)a3S6#t1h}=#q=y%!UNKx+(Xc}uVR2qellft~rg;C`VufMuH45rb zaskaFsT)lf(y)D(+Io}J3f4eZgE4-FMV`QGO+BkrRaA02BI zMa4Ew86ag2%`nk#4OcZ;WaKNWbbY%WmW0&Zdc-AH`x{YF{Je^IKdmC(v=ef?uZoCw zwQB@sAnIAhOGbms$(8Tr*QC;z+ZHTyw^CYCzMo%rWgmIJ90|*Y3-YfLs$#C#I{#f3 z@Z3mTG9~zRPD9B2wag#OVxZ0a+KP5&__^$K9Me))vme?zuNmdwkupe|HNj>@QFY9Q}~tN_}^gR@PPmeW}-wy4Gkc!MU?%NHh0! zx8DvQ_`uJ=M}GUa;gN?A!~6fid*CO3^1ZNU*9~x70r0a&pMiRH5bnAE?zHhfmc1S zlau?^(8h?XO)daB2bK0XOh~|#G%Q)^_jP-@%3^NUo1_WJBAn#!<^`!<;dLo+&Y&oD z7o^&l%$r=M;^i7KyhQ zRzn0@bOzlg237QR_S_lRv||TMZQKYao<9j2Hf*7ev?y)B@n@fc?b~M*NYvmYF(9U4 zW@bA~tM}|y|2_2Rx8Um175L>}{#Wojzx})L`7hrKx9#0WV1X=#iUQ8V&pb_0^G@|0 zs9~_u!e)R0_|YGECqCrx=}&(e<}NS5ul~xvR3OrTCmufxi;GJHFegr(hA-ap1sEQj zgsG`%T2do_xTZcIWxC@_ZgRrq_F3vkOY;>@C8-)?$Tm$p7*TS^Tb&$zyC!F=t$oND zxZR;>825pbhIWw92A9ZQz_w{Bcv6a|LW~J8I?K9OA}`8vDhksVsOcM#PH&M}L8@et zJ|23;ut^4U*Vt05CP*x-QG2(UWc13>aC=c31}9^yO&jF2o=zch zl_1SsVY%v5QClKUHRu*k_j(nzDJuL|BGr?UO9nk%dzls^G%OLRDQvi`_%rf5Q4D-& zkZfqsyDc?^#A;&B9o4$<9H6Nl<`p9gp+H`JZ)bHG#>a-~p~lD@Qw6iLdtm?my=3ik z=N&%)hYucty?bWh-9PbeSZTE2OJBMdo_g{KIpS{FvIQ<&I1i2GRhV07nD1+=zi)+Q zR9&l%z>b++MBRGZ+ula!@YVaj3JX^k;mOC3XdPSy7`XJFGAKBa!2Q)@t>u6^2{G#UV!B{e zrwVW>pF*1^%}%PNC81? z0&~4M^RVa?>qB)p5=XGdl}!wEOsJDQ-&}&fK6FU8GzZ|lzEcg8<9q2r!yHy3v}~nb zu52uj(V+w;ne+6u1Oj1T3D?oJ>QiE+b{xL>(6@CvtOARP@o74?yYIdm-ucdV!b1-|1fTem zPf!#-HZp9}K6Y{zOcsp%5EzjqQx|kV*2a+6m9I7Bd&Npd0w9lrd=fNu2f>8FVj!jv zq9n57=GruZ$6}ibd|-02*q9NS7H$OTS~XYCvu3H?u5}T{f*+8+uC~%-H)90J)SAKS za~q(vn08KK-4Gn7oFAqaj`)W_1x9VIt8H4uc^Qp zJ>bw0W5e_mHPSqH@+_RYcuDIl7+nhdho+Z!kMKJX*x3WFY4XhkM56moPb@$Mu*4M6 z5O_(eH%kj#XawbMn>8*nogSbrl+;eRvhbPb)7unzVycJie~jc~Z0y^~dk=Ju6=LHI z-O&JxsgIh8N+aUowh16Br14O*;K^gnwvn4#gB_j&gB2rGWZbK%y|_ZH&OCYRRD`C) zNt-O4t2W1*Xai5uFjl``NgMEmgNI4DCjjqt9`TNk-9W__%<*PMbxB62k|yQq=DJa^ zn_7@LRB5>`*$^_~?DwA@ul!u_0>;F&=}PSkd@o+tR)>mbnMe`o)k12obDaU1Ct7q8R-jWQL3Lfk zlAP?sq%g4HhWkOYP115O+6s}ebtm&mb&Ih>EseCiq}DRm`WUq&chIiZjlOPUh1eId zX<63A+GgGd|VtRrH@jYMdHF zgK-AuS_|;`#|{PHeKi2@*vM|m@#0dImbMOHN?tF|+^$lYjD(|ts7X=ZR~Fga?~v}s zZn~rAMu{angSiCU$mABA7){2h5iQARfTyHB6_Y2H?wHbapD0T#crp-5Q%vo&k(mm0 ztXo#iL#cHLGP~TioLys(sIO14U0Q>4*GY|VG^~qBk&%wnoCvLsWz>Hu%iQj0tE2sU zc9VM9m4!LjJv*yzZUpMVB)UF=vZ+uPatY+#q4uB)HdZa-JI$Ds>h>az&o ziJk;C#>?a|T%nsAamlZpWL? zE?q`^@_Qtxx~UDB#*pa;pK2OM=t%9M9{$)k5)@JqhFM_T19UzQY^2KEggAE78d_g~ z6&#BkXTBa_Bq4J!iwWdAHoDFEyCC!&ayuoxKfMgbCJgO}n^0N<-;F}#!_^3e)WbS4 zH4a-Q#%Q(jwSxy0FhnqbRyiiOij*f@N-r-rta6*Y7P%@ChGX-FscHF0N(IGv8jQda^YdK$z-vOe;)=GDH|Y*c z%T!H792xcoHcVuO4TD@?l!=Uu+2^9VCf_*vgdV#Ac(3P(cMwKLW+~!Dl&C~n1J&1> zD<4?dbl|cMWC2WmPUcNr4zT+-X~81_mtT{=%j&nQtw0ZS*0HoN*3;DyWma%8MlNN$ zrQIy5HEk1wVBGDPC{}P$v7cXd#c7A*)Yubg(9i?QJZu1z%gw>87jRtaZai`@?4Sp#OU2pPLxH%As5Fvq9s5XH4>JbevfVnV!ZHleZ`P_^#&M;%WlB&A{9TI%aYS&h*~_3Od!8r>z@X zAG(H-{the{V(P>?U>nYPo1BsBIu+8<0FCoB0`L7#Jx(c)0KC^Z@J@`~01cY)Gjhw7 zU1hFLgWEmk7ThEl`W(aKL#gHpMe8Mj@n5;rV8A9D(@jc z$Un~9XZ@OXPzICMAr5esT7h;waRaeL@Eq#uk4x$p?|bry7265GdmXbHCdT)Y9xpDn zvaT*txM>6#ZAwR8xfGSn3@$^#7hU-T(OotJgS7;3S;Q-9F)&v$BV{k!ykJC4WTfeW zkB)@EFd86tE>2=gS)%W*R7@unTY9Hf@J24tWoks8XAZJm({38~XhszB-Z5CMhsbEV zBIs1QD=<=vi2~Ke<1%i$n`dSf2v5S%qsO4tY??-m-aL6x{D`kd#kgQd4>=vl^GqWt zV7$b}s2(CHNOIEnAVGJ~LNZX)J?8NTCg;jsY1Y==Tm#~~Qo2Ziy8_18@SrJ&T+4$5 zZMF$EWr1Kxk#n_bqelWeOb6g3kb)7%(Rq9XXN*`meZs3PeQmm0K`b+-s99!3(@_jZ zPdHU7SZae)ZHkJ2%g6`Lm}RnbD&}_0_h4G4WzKO-O)%KG_KjzrgmyCk?{!~X!-#jq zv$$2u*oi1EW_EJXDViLVx-3H8O|77} zn?fSDg)IM^WXH(yVFhU7#H$BF6DQLCATxG7MYaRey>wSv(KUouFeK=X`U?njnd!7l zuoGD|bhj}# zI0EnYSO$b)5M*&mjSC}nbX)MBynHe~J<}@5W@&we>!(7LudCHtoP2|@= zm3lN2BC8((%$oQlx|rhGOr6e7z1 z>zaWsB;q*^plH7JW78aAoFu_~wqj z0KC^Zt6>!BWRzd)+T0q>@KT#r0+@VYBzKm9C~@+6KG2ix#qMhbV9HE2Dax1s+NXg* zPe)}49u$E@V2dGqj=Ehqvh52po#Ez(rI(z{DNFS=UqMh#LM{Mv3L^)=-047{e`a5k zv?se9H@Vl9_A>07EZv#Ol}iQ%Pcxo) zt+8sPqjV4{2`;RWD2;l304Eh>A#|ICRTuMa*^)}<#+{~`jxM^@j3Qe8-q>`LH7ONg z>lZkdF?AAaxkv(5lg;90kl3_-ce))r<}qr=NhUE7e#(t7>hI_ljjh!~12vli#&i~r zU3B_rssa4KGfxuRApq}n4!k2Hv#{Dhxu!Oe%XLX4Asqr%&zH+Xxy0k8oMblm3PnEG z3cJiSO&b!}kVci5NQ?>%75xx`NiXQegkm#?6zXA-6JPY}M(D0Zkpx!>uu{}rf~^Zw zMXoaYzh!pG&s^brLhJRUbB~)GmZJ_$IcTL*Cn?7bFuQX`0Z9d>rl#QJiBm)yd*;}) zaCNCcpU2-3csXss4G9THwsCAJbgsdtJa_h#vlCxt^4;Vc*L(l?v(<`l`;BzI+%+GS z*RpDIpu91d5;(WD3?mstM(n4Tz^Ve~%-lm<_R}@ZbioUw*0zamA=TF!Cj=ztSuT32 zbFS36ndsFNtJ0CGnQ8gOjy29JGgo+ZwMmpYK7P`Vzyh_3YzK!1X)?jrvC$)yPA6@h zK0>fZ_hI@xrfd{of9J$;Xf{^^@LvDGyNiGq^-94m*%K?6BXh43klZGTycm&#kCa-J zk*0jua@Pt?x9J#%2F}q&u>o~c@zxp%nn{2;GcJ}%EnYY0DwWk_AnQfl8Fh7B90VDG+JIC0_xJonrwn3$L} zoo8)vZMFDOiu_WNVl-?6rgj-UTwad5MM6GzuC!}rNNQODkZS%dj{~N!*}|8R>%_3Psfz z^xSgn&@gFdEqVbx+M5i=o>#4RRmsVTw(D7$1lOh1`bxbE49@<4bUgAk&Cd*P_z&^Bk;2U``s2*yVMnGX|nL-wmfse%*T8vq*#P7 zds+0CiPlvF-qcW==x?#6Vi~CkJ@J|QrWqbg1IsjzHG1UKT7v}J<6K}V!tt(Nd+^v%nm7XRUdO;YG>EB&9nffZ zX{nXlyBDJy9{kKZWfiChicY`z61i(>NO3HwV+rGVA!itKfuq~CT|V55pgED1o(NGE z!lb2-Y|QYfsn+(T7FNil1-{=t2x!{&@voJW*;yG6sus3hkJMOR-Bci5#vNf915x69|l5lbW@ zKHqX%=DuA$3e67a^h`)DTf$cJJ$dlnR%;50Y!{o&!>ZkdfG=Nj_XWj52y1Q5Ht zTix`aHD;qUS0QuN-gL3AoonzyQ~*q$gr{u0h%~C&efk(8HWEy=$P67pi@Edov8x>1zdFX2DY(_63Z09&IXcaN4jWZnY{XOp^64LX_Gsu_do`pQhK6UL zmFfo@(yT`ST!Mmhby8_x%#EB`8Zis$8W~%xg1EnMiD=D&Xj|=yci+y<$jwzBN8za*Gdpt4HM4(oj zi|TtGd;YjBDhA-aZi{OJ>fd%vCyTnIe&yyzi+Q)aLo7DLb6F&jASJuPc!084i@eU3 z^iH&=#HdhpEt%b=tGN%gOT}`FU~XjNP6BS%otu|+(tE1btbsy0DTqxvieaGWA zQ^@n;$<5WtNYjWozv_`L==<7Z#=;OrXQ=EIn@AWfgoJXJn{W4-m}W*Vv1;5KBHIbp zvFQ_T3C4-KVp@V_gf1g{X-aCN%TCt{pR*gZn+K=V1U5nd7^|F=RN1Pg5rd*!+)r0W z`e{`BF4s9lwzF%O;I@``YM*x!A6yeWvO-5sH(^pIl82~OmdEiag9*HL%pgZ;1$aC zYR@>GucjQX@l!*+U37jX{}Ji9q0WKL{z<&=kE&ZNUh-lk)P3A(7#+w3C_DFn%tQiZJOnyEIhIpjJb5S zc9~06_PS`;6pG>2vK}o-Jz62}tfvrX0hTO@kU|F9Skn|U<$DSf4g$InbdQaK7esDa zB(rH0*+8RPWHo@X#7<7d%O^&=N{ICP;y8xLGcIi-26ek-1Y)|lmQX@B**~l<1I2*Hf8ZS9Dfc5HL$eg!~7&T~Nia>CJBQxh2 zTA8KFaifV$EeIM|A%(&d8&khBFg89~lfX_kmWGnrN!Qi5pnK5G%~B=6yJo0b&zSSb zK)Gb*6@yU}W2atf(M4`HaepgTfS%fPsfE|D9?axkWxqVboMR>puih}w;A>9#UrY~m zOzzjDVTgqjAseDX-Et9)s|vY7=)7!75|Z^=oyMb%#(|g`M4iKHhY2C1Nn)y^qI1I- z!LzUquPP9nQQw!wt_plw>I4s-3K8$CAjgZckXvZEmr->*f}Dp6HaCS8;Z)>!`5|V2 zOp-XSrAJVpcFCo4P8Bo!RKZM;Io*6|9P4Ak=+d;45{M<4)kfvQ97oIeAdpO-T81KD z5+x#aRHLa#71IU9t-37n7#nLBup;G|eaIQyitGf#UWoO1r(&YYt=+-(xGWaLGF=Sf z>&JXoH?Lga2s7VTa(SWX;z8mpsgW}@sel|nbFmxyw+GBLgR5QqOQ&X)%ri*l%&#vu?x<-2!kB6^&MKlFbQ8F_O z6f-Up_WSEO_q)L6I{2o!4G+J@R5%vfiOj5jfB;-7@Dod2+z{cjc#M?S$lO9&nc~82tW7q&s@Y zg7IFf)CRUU$zC{{XPfYo&rq)Fr$}v1z`=uc_~}=B95;N{GC6(tjC$HaY1?~ zpOb|nfLyxC`#zU_FYepR@<@9A(mN^UCy-r3N4maIjZfFpj6nt z4?yVEv4t@ifcLrt-mrx&Yyo%!@CM)wTiC)DfHwed*uoaJ0K5Ts1Mr3|Yyo%!@LsFH z8?C!0^GX-l*1!KX*j9b^+q-|J%@tmCI=$rI+`q5&exD1)^)imac5QB3wrsg__UzdJ zyw}?HYrpnuZ~x8T{LQa~AsV)@U4PrAO`EQsKYxBA0Pi)n-E+@9Z@TZkzkRSmoi$Z& zFqnai*nqTNbB#Y?=qSkOav#OdJ3o_xVPv%(^lO=jW#b+`ru@B!>@WH=;@FLxC86JR zX0dy2oSK963;9SEWiGYodVsN;aa4@Rji!O`I@q>Zv*gG!AxvI)Z&YYJ$fN3FhZ$R( z^XqwIgKN32Kg!o5>RIkYR!s}C{G8)B@<#mmarFw`lyj8xV=8`@_bHFXJ@(8iR>bcu zs?z1xH1Ax5!u2eUi{kb0`P|uKHf`_u_vizU+?A2J|2!Vtah89tX;Ej1QU_+_u@}Bm zKC(i0dUSO3@cZ8PzSjoey~eiZPCS46bH`5}s8t7Y*8*+w^Pn%REb-Xu#92c zqYW#;S9aOu+O)+qhddT*xkEYvsp*c=A}*=NOfvtj{2ocLu*YNcW~J@|YY|9UN3Bns z6u`X9tdl#asFB7IhvzOe3A9nvn>J#n5v~0Y=Ush0lTns~zt~)xCOJXI+^t8QWbQQw zBO{vs9=)ja+V|~tNd3D#0PnSSSB@OKWw@$euCA{A*?HXa$So>N9uY?ekZUUB(P1P&D|Yg;x$cA32hMx< zS+qJfk*6<$W8DRg%B}7}-0OlNwQzGi2GDKHBJ$2e#81j`k^f$12E5`ZvN{ts%7RE7 zQ!ye%@fW<;EQk{eodf7e7<{dpt6zA zUR_%k;N)?Xeb%>s-vr`X=J>3IdCC|(KE_W5=Pvt=A>T0dA?Vfkp z7&UGyPjBD0>81d@*VuO8;1hQqJb2&{R^9Ixak>r&YYh_LfateR*T``#V37|&*#PYa zp1y~q3>jX-@M(r@DGjYzXKkApRQ-D~L^2kz@WhKc+A5?I|;hnrS%_qo=2lwE_e z6`ya?lIbEJ@JkD>YPI^*wyhg)4#0b@r5X-Db;o0mJ^CHY^T`~b519JR$`VM{6CL}2 z*azBW>4vrTyH*6`0+ZB$^-U12H(Hs!kPke4KwcIJ`p(n+T(8es)Hed>{UPY0jrru{ zB>eiX|2o|L13v&i{;qeyg$ox7fL0daxe=Og1tMQ7Tfy|3NXmfOHxBy&Vc9tG8F%)| zctYPXCiSAF(}?eT3pPn>ob!6d^Ljt4pGoriJF0*;q#CZdi1*N;I}aW>Qb;wdXW3J> z%yO6QF7TDT?(WMs^OqG>%7E4vb(B5yWiG$I!kz2+RdzmQ5wg3am**%w<9tzCzh!#a z@pnlaT$?#gO-;iGe&(m(fd~E$?!EV`FtcL@E?v6h1#chN_|hKI!pTihxRGO7%Eg!3 z=m)T6tAVm~l<)m+MB5L1`=v%C@VeJA^=KfwWBJ9b()vA5?n(spe5=*u>1|s>s^Oa3 z9y|Ehore!Ssel)~th%dVvgLn2&?=i;WHC!V z_#6?tpzDjG-Scvz+6OsKIJ>tQR)m--@6-%^>)K=<5a{5mum4S3Ic-UGW85P$A-e**^(9)$P4|Gn_DKl^hqHa14Dd#PzI=h(AK z={H%tm4%|7A4$)(tStglevD}eNSK;44fT9xy%;#*k}#FxjE ze|NvLY#HqCj8&VC| zIPm%^wC+qSXJOy6s^4|#mp1S{Anw4FATBGnE?Bt57MBuLMn!U?SYPDlqjdQqB6&PM zdRkf9z!xRCpj&o4E`Z;B^Ud&o{`>y}KKjw$gEH%gkALFN;JxpCFGasN2Kq5O%I-_Q zWqcy6+{>2kZjN|8>wDv>=id8Z=gwVl>Cy$rN&C^7(V#oY z$vm@#n zOY^2KaJUmezX*OUHb&X?E&HtRKJ*(4a(ueLC(}Z1x?(Lp`&zl+^{fuc0Nhu=TQ2}h zN9~Z~y~ZP6ta|smiTzRqW%R9n5vngA)h{Y4OJ_*Hasj9;B45vg?E9RodY7GxZ`tq5 z4VNuUaivIxT$P5Jx~zp$Mj&f-Wx3qT^+Xf>s95U(P#@*Tw^a2- zvSoQcUwUOdG$c1N=J&T+Ex7fz+u*N1`&sz;|M^4S`~UWLyd6IAi9d%ECr+y4?pQ$} zmwW7+9LpFPYXMrnjh&SJMXnxo6E-edRK*7oh&-CecR^S0`OjA+o@A0Z~n@?_dih|7=$S4jShTL zjBc@_tmxntoqUpzYem-mqUyC;fEf^cj0fKXRVJe1O9iaeUA9(U);$InP-V1K)&b@g zh{`5E{Oq=E+h{-7D1m9E`T2RM)@me@bMEX}Dy;b?Jl{3)6_Lt{iTzjw{aSd--dDzK z@I{|K-DICinQtZ5@7R5;9`|^C9dIv(p|IXOZ$I!&(=ODimA~D(b@Mv{@Lprv;^N}K zXaC#ZoXE0hQ>B)8mw{yfxE@J6m+?@xY+6qa*UgE#K(=1@fU+L`vK(C*(67}&wU+W& zzX-6O21FUns^7K4_aWe7l#AC8I~6exh}~^&F19S?VlDdKTGzR(faxm|mPN%rMvL!RE6b1fD?<0|NB!%ndpk5V@UhLCH-0Dp?=`l~ z&o96?zW$AmpFZ=#2d1W{p-avH#TzZ<|72v?kHOGS(ylDJDQk#uqv*AkuRfseMb+I-h)ekcPI z--^T+#rD%W_VK^hb3AT<&~HWMOTU$AQLM$LSgVj*7VY{|Fqvr?Z^6X)*pE$4PTUiK z_Zr(ST)3>F-mACV`{l1ZJ}@{8!)nRdH6W1*2L-b3@%5@lQEr~o$5oNgpR$>WDn7aGG$B)kkM4%jfnhvXw2TeR=Y=iec=g;EUvZ z+5o=E#U}z@&N_&I%@%y0Eo%zN3t_QwtSeWrEbDcg=!3u@Y}&}_!|>?uot~Qb`>4MhfcF~P_+~xz)X|^#@>jn4*T`-d z9UT#aH1?PSW)7c~_mviA-P|rc>hZRcl~;)J2PMn0f?1`sT&IDV#54{ue^q$ct^JGM zCmu^NB8hrTAEkk$y%xq2C=%8bvNW^jRWz>@54Q0wiy$g( z-z}Sn+$Fv*dMhiK`2ffVLcVBE-eb1Otk>*xDeEg32r+W;(@4_*Q>=gB< z!&^3Q`r%rwK9|H0fcIM4TCFY({7NNO(eK5X2OfCfKP)UPzN=EHZq%lR)@at=fA&^m zm*BX^4OMssXL5ka|3t>GEzAAT>=$_+D1P9{qf54?LUCZSNhd$J_^hXXix>LcF|DbEeFR#=le31zoFDdm5|XnW2Foo|?(3-Rj`0+345^?kdrM z6dT9o{;jq?5Op;YTpus?L6b(H{fdn~cMEyH@Zbm>|o zf<>d-%VP_Uu|SG^tfe#of`BG^gjrv?})PEYLI-~G_=Pw0n=zP<5OGz zslP?y=F-GZtISk7QD=q1HGUwXl^PyHNA2UX+W)bEdi{?_Muz@)U|^6=Dv1K{UUM5u z0pf#zWc#ycUx1S*Ps8No^vszvr#ClOS8=dpT%^^5J&RPtk}~+ZFq4An&U0RmT#k-@CNPF00S4sB?){S65T@ znTmQZ0f72jM;%j59b2}#x{~2DrQXxI?bg?h4iAl=|JWaW?Ek$oKmQJNieSL;`JSzZ zu9W|mV5(psDWgB%=k?^EF^nVU{$zgr-le5QxaH;>|HBXc;9GuUVR3Oc?oHiSbrrL& zy3f^ZTet3rlW6GDr3DaIz8(%AK4LhOiF#-jHLXXTqfS>u z>N*e5IV>$LA<7K$@*4tsj^k(?TM?P}j=`&~k-ssp^Pc&MVDw2_BnZOZWb3R^9 z9ra^;Fi7LM6qoI8r=NZ={{7tf3-AMX-}P@l^gsRVze7+sefkU)dGOrvy!Y(cZE6b_ z;L4RNbj^3~-mNB|CY(BTn(h}~8~iWZ746==3l*C^~0Uy0Dycc+1^*ycFYr zMZM=?)27Yp=TqcN-~(P6g-IZiz{?K^gANa}Vm>al58GP6%OF|?ygWGZGx(6bSm5R5 z?|OlkA5i><55d^jIK1(Vcf!GghwZ)*0JUBBS5r$Dh0s($L_rV`6rY7EEkvX$f(=lV zjsXD?q$9m0L7I;$BA}pzB1#99A`p^1LXje&CzQ}TgoGMMi1~u}-hc4jpU%4Lt}}Dz z?wNb$%$_~*i`ikv$XBPa!l&(Hxh`t5OKBv0&I+VZ2-HHbpTJ;c z{+ zD}>L*=0bq|Trtx-11Z@f zlWi;-kTW@X_WNvFX5pbmfivu1iZ|kDsGa5z`07(|X7Tn>j3arO z+fG=^crJP*X;JZ_S%G^C7~ON2CX?8_beja5yOFcaZb*O9*8&l&cea+--d4>xMAyDW z#|Z3(X_^r>FiePf$;_PZ`z@CxPc0WD!}waQ$DV`ei8yd?jl!(g1Ue@`(`R#M{$@WW z+N9e)PDgEF>tXx`YopcRglkyRUZxDE!;h~*f)=ayDGgHL=1EakM}0SVy&PAS-ank? zY1RL)(kp0Y@VTgcE3T1?{aOo$=0__{%IF4T6R(VAr~y1d#FOF^5c^@R3g14?d>zXv zVd7o6oo$k;$*V!G8^o{>3eki@f6s0M$S_LxF#k4mpXA;{fA{X4G3o#|AQn;w3u1?w zAD6x$vN}{Rs_KE)!Hv`mECav$2CZV8j6Trl(uyKVp2nRVk8N{G;B2kIl3+?hnTYv2 zSxH7|-zs`gE|Vl8ei|YSUH$uGVTDB$RYxy;M$&Dh8Vuer`u9~J6!hKfJmhoS>W9k9 z$TTExdC%^K5M*mAYInRu9ZicpIs??9o?qb~{`m>eK_q3o&)AdvWYLaHuk9SE@yuTi znCn!t4`Ba|M`pF}0>;t+aEtICErxvxnwq6)y`@MBYkh?gGn|&dBE1%EU1KfFUxBm> zkP8EX@Bk1Fyj#y<19w&N{5f!8C5y0ouf~0RTZp;t>0p!8@BoFQ%|@a|j6jt7`XwzR zgLuXs9*-wYSFJECJGq@)?5(2a+NGN~|8l8103zoEkqxm!_<6yFi>EPjeDA`QfYtZ0 zQ_+u|y#%a?b9G>Q)20yUx7u|~U9;*^&x1=HeQ9bZ0=H6fw6T=gTfpwB#Ba7`xFQM5 zn2ZvB-3Jrl*+myBiZ{$zflrE$gsw5y(Du756QZnvYfhovYr_7dF*XpvH;*W7ZG3n2 zX)*WhQ3-rS5FqoCP2l7T{}!RVO+r9G-+|vy`|%dwvp~1}FFBm5{L*3CgX4}gTlMRS z{eSgGep#CwCp5UuqXMNI)|aMCzlVBvEuH-rMwjUrhl$3Xxu2O#86%K^kDRt>F4Ed5BagX$HL0A)JL6V;Sb>O zc%{($_MUI8v%Q00z?6l|YeCXyg+jbU&M46=YZR{wVV?5`LJ@HcT(b!#A|gUJfFd*Y z%zfB`@J-~lgCuM{z>NP%|NMPlF1^T#ooE&n6&2_6H-4|LF$wx?m*Lvx3n2I58!&Ys zaF%0K5^0w{EG?JW0rXp}azAp+=#p1iwkX#fL8n)O{iv@cP_48Hg=ILOKdb6yI4kLcJmJTk>q*)i< zut^_^ii(1cxv4_=B+mHnrMBcWzx?_nVf=DccZ_j`neTh3r

m?BAn{)W^R^+NHO0TJB&(9*;qH^jv5cocdMm zLAY)Pyv*UnjUI8krgwUN{cCLK^5I&v{N?3AJGV6SGGqn+g;9j2(A^$l9vgGUyR!BN z!v+H6*TvH;J80W&l=N~LCDHyPlkj_nhIFC#=pAL@-E+jUfvyE{)7Q=fw2aS`#(B7P$LJ;SMI|d2sLpz3=sdsTi;Xx#(q$RZL3}AVb*awOlZn-#2+9 zWVStZ;hj^KS`Hc@*sv1OA?`(orI8M6KXH5yHcvHBQrWqhKGaInBI(y^zF2U1Bz0_W zhN*b~ecjMS4xXZ;eVRO$(vKjT4_Sm1P6At?Z=rnrzkfA@)Q3yISXE#6iKH2Uc;<7D+`T@S%>BKzz+n$mm7vfA+<1YXFeXd%#zIxR)U%Y)A z18=@<0H&Rg*qh*T>iNZ0{soEsp)VY02{YG6yFG|aIVIhAc4vyR2IM*T>Ws$|%}o8F zJW1IM;*c^8oG)O*L$)tsE#3$OcSDIO@Vyxnt^c#u7AkL~4ABz$%k^|e+%qq-UK4UW zjJ8Jm<`^~Yh;9st4^=A^L{a@bGOkPw(GxKq2U_6)6)SOJleVR_m_%f_~J>nbbn5iDSN z0~A5TluP~*U5u_u7PC9~&2_1h_M|ujD9U^yK8T-b@@Uh3oJqfCuo?_!h?)qP+?n-` zVGQg}9t`=Ad*^II@jbrY2mMoa|u{QcrR z@3%g@3Fgv}@1%5rYp+uxS+9_s6l(F8s(CnnZV);C$r5vue*W!~BmVQ#la}48gh$JLfK{B))eY#*Az!Ngx#G5 z*hsKU2co}}v_2a^iXSwm`LV#Ys;DRqJPImt%5WWWg+zJoIae>UWHD9%35&SeM=3A! zUv*Kn#{5v%yYmL}vW~q|MtTZ^m>C__kd>2tUGi5Jn=%KLJ5#-bC|(;~Kt@iL#n$oG zwmBwa>2r;B29R7o9^{N}3H6quX0S_>rpQT-EtogwF9SdZFQj-Ta?(#o9~5BpdQ z_Tv+~LLPET(q!0xZ;8VGZo3@|Sj)L)B{-WgP@5f}%NbeCRR3}=Raq3<)lh6V%IVsfub$>OouQ z9941KD&^yCL{G4s2DzA+$N)=C!#nx?vJz%FADJc7Q#;ZhKl2X1(1b&74>D+e<@I#) z??JPILC$&^oFi}4pJ>DX1RJR=HX2-=(_?-((PwJ)FLHt2o9(lI2k#fQ*;WKs(^+zSGD z3$#ti0q35aDBb{@>I|Eq%&roQti!6yY=qGea0(Dj@LC5pzKOW1S{31D8dhBhF|oZ( zD=mUQ?1M!+h}wEK-&QI}Jiq8)S8Ob1`dV0<`!KR>J9QCtp3V1Oue^x$rya*qe^)_P zvk$!$R||`%VP}b-3Wo=>>sm|o9UQAlkDBXk#V!4^t(#55l^{rAB-)1rQIHtKaebvh z>dgBBFF!?Xl#b!4KkO4bZfiVXpN7ITSblR=?6}dQ)%&EC{|weZ%*o$({xuF5EX-&A z7#s)G7AB`<-`#I=%Ygv{?fd=BdiibqThjlbNK(%>gH2qr;IolF)tH5O-PSX@QFi_D Gi~j)%-O-T% diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/4.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/4.png deleted file mode 100644 index 2662d30aed9bd8cb638c0daa672f8b34e1b7692a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44948 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%0AaB7sw!>6C&E} zeQVx?_{S^~d%IGtDs8Ub4RTy9K5()!7H~N1U>OOXUF0+l9>M4y*Qj6@jC`g$%YgbR*^qf)a{tK=oGkw1osW#3i1TrZCGEcY-HW}`CXFe7ztzgNSm)wD>~ zV6w?QXfkR2`YZm^*i)La?T6nwGppL^i$;;eyQMW#f{Y1zAj`&*UE zPTC;BhoK;G*>`!(d5N?l@@3;qQ)@@=MTjut&!dYwF{AZ0&1}mas{^{9vBLep`Xu1e zWb*=T0fn7;hT7uqJo(?!$Lf#nqxfMfQcfRHesggR(s>@zP~4|c!_2(T5V*aEHpE;! zP`Ua)PUb()t;;3$Jr2_knJ>8W*uiw86-z;57U9C^0<&kWuJxUQa$#Utcd~s*NEpd3 zsbhdG1PrdT3hdNo(t2-D#D?NtkY3`XG_LQg*kVXlY@fp9a}9hrpBft4!KD=ZV%Fri zeQU#1nnU*AfBs#3>&mA_E2FTd9oWd!P;gjmBr@;1D6xud`GS+Swq2w&ot6dtM>IsfO#|LMp7()j=1WB=Q&C$#cQPIHQzeop}6r6i{= KTP1Dr>Hh%Bdv10B diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/5.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/5.png deleted file mode 100644 index f9236e203753be42835f244b2f8df55c8951e5db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52426 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 b_`QAFG~t;lH;5%dfN#>`3Sz*YhC%-e`Q8s@ diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/7.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/7.png deleted file mode 100644 index 60f2e651431e1a6ab643ef5c3d5fee948d5733a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28101 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 diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/9.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/9.png deleted file mode 100644 index 12f81f819a366415e658edbc77c4c58233a0661b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44085 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 diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/auth/forgot-password-v2.9faba3c1.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/auth/forgot-password-v2.9faba3c1.svg deleted file mode 100644 index 030d94c0..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/auth/forgot-password-v2.9faba3c1.svg +++ /dev/null @@ -1,207 +0,0 @@ - - - Illustration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/auth/register-v2.0a9e487c.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/auth/register-v2.0a9e487c.svg deleted file mode 100644 index d1ac05b0..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/auth/register-v2.0a9e487c.svg +++ /dev/null @@ -1,351 +0,0 @@ - - - Group - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/1.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/1.svg deleted file mode 100644 index a47f78f5..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/1.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/10.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/10.svg deleted file mode 100644 index 082ab6ea..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/10.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/11.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/11.svg deleted file mode 100644 index ed6e9b2a..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/11.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/12.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/12.svg deleted file mode 100644 index 0533369c..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/12.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/13.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/13.svg deleted file mode 100644 index 93b28c41..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/13.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/14.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/14.svg deleted file mode 100644 index fd688f93..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/14.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/2.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/2.svg deleted file mode 100644 index f4a8944d..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/2.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/3.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/3.svg deleted file mode 100644 index b2e10605..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/3.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/4.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/4.svg deleted file mode 100644 index 58e0cfe7..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/4.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/7.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/7.svg deleted file mode 100644 index 6cefecfb..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/7.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/8.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/8.svg deleted file mode 100644 index 61c13aa8..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/8.svg +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/9.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/9.svg deleted file mode 100644 index cb45b1e5..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/avatar/9.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/eCommerce/rectangle.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/eCommerce/rectangle.png deleted file mode 100644 index 1ab629b5ed1914bb0a62d9a5937622456388f4ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17020 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 RBIW=9002ovPDHLkV1nVyk&6HT diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/eCommerce/trophy.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/eCommerce/trophy.png deleted file mode 100644 index 98f0b8d0ff288f760785384656be998677911fdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69803 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 AZ2$lO diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/login/left.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/login/left.svg deleted file mode 100644 index 103158e7..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/login/left.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/mainLayout/logo-en.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/mainLayout/logo-en.svg deleted file mode 100644 index d4198657..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/mainLayout/logo-en.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/mainLayout/logo.svg b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/mainLayout/logo.svg deleted file mode 100644 index 0fd854c5..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/mainLayout/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/status/401.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/status/401.png deleted file mode 100644 index 1f94504e8dbcec2f81416ea14f17fd2ee0d000bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7469 zcmaiZbySpJ&_Buoi^$T_-5ruEptOLrbgKx6Gz$w$$Wo#r($ZZ5OXn`&(jiDJu5?MK zgv1iR{l4ct=lAFPob$xY+?YG}&fL$PC)QA3i~JtbJpuv(a_y(;#sma+?C{?MKw|te z?`7;E{zdBb)Y6xLfQ;t9`wl@y76YDn$Jba(l>jlyvV|uA&MJB;1O&D5WLJ(v1OzNy z+UhFLp?CJ??cZ8sLr4x6TQQGyeAIPP-}cApiRynL&=swAnIRYEIxA-VN7?#Yx9zT3 zQ)xco3qsgis*8|!dohj%6??^Q#0}-iF^+q>Rh9F<_-uvlUHK_Hh{Y(XmE)w5z)CkIt&QiVBx|m_J3V!q<4X>Zh~|>g>e?<(bUER zUpeSj&xEP8lacK;>L2RToiw=I1%

3jTycrL_szIH8=<@(v`fFI7p_jd-U3q>?Hu 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 diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/status/404.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/status/404.png deleted file mode 100644 index 39f2c595ed747ae3b08a23a9ecb2ee60ccd87c13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13829 zcmc(`g;$i_7dAW$A>Bx)2nYg7cS;G;-H0F!N)6p5DF_G%f+#f%UDBaaA|)X?NcVtr zzGt4_yS_i+{aA}Ni~Bxv_O_~yYm(v=BIv(2kRksu`p6nt0?hOQ+X?%DAm~hiDa97ZO=}y^Q~WFyt+?p=ou%O z_xM`TeXp#nC(wzXN2$mo?r{R$)?Lyn*q=q2OQ~TiECBHT-A@(qJxHjkOwNZ= zuOYSX*``WQEl!OWGa`)k#~NwxQ3bi#-T0kJIA0>(-w4Z=yxq#BUbiA%c=@zE7vEA! z`u3HRfvvj1tU-1&AAK1~#?U(mgzX**+Q~-e)Rryl@brs?d_E&#>W($3{AC2C>Dz=y z>=A+O(|89uOPdu`Hq8SzlB}N!^s9txMz}xlmbk-p9@?s}; z+>X3c{3Ys8IBqNCwHD9U9J>=1)ezsSi z$SrpspxPbcJzvX@4GGPkrR^g6QJu{hgWJwk78gH7jGL;LdJuNFrf+`-d^ewD_M*L& zPc=ctT(atmZzapWwTOz=7fQsq0%6E_HVIk3<@*QMWb&!Rt{siOPjr!Z0?*ucBB}!P zL&HZuUdO2msz_UDlKIpsbueE9jqWE0f5h@IKl9X_9ukJS|8TV9ffsX_ZhpESzSP7{c1jp2&SAc|9+P|Y z*zcb>1_MQdfHrJE8tSg>SpO}%s+mBH-^Hp)>YqPKFyvi+jv3YVRMO_@TPJ?=$B+G7 zQw(uLNnwI-3~?x>nS+N!p@Z1=Z#(Qv$qUdS(w3tcURF%)g`SEAnzcI9XI9^l*-(vTP**nZV zK@O#yt7&svdZaDH9-Y^^Urz2&P$u!)8+Y8+iLq?IFL*@}CVJ1oE_Be#Vj_?LQ zKI#4Mc?=p8>&_>tNJ}rMpwM@Dn`{*deA6_a5rCSenF-;(Y|36MGUqPNh8ArTdtX1!Y4OMShv|h+A-= z(X(yBbzS#+EkyW04hjGRBjUfuic&vXH;Iuhe;x{t%K-y`S4KX=NXz%Y zqay$OYo=>RM$yHANl=Id)j+F`SW2xDj={&1V37)k9jZt9srWm+m3vUw2; zA$w#UF9CI@k4(!43f(J7VF_r>9C_0Eq@bB0>=MvCXcI&x9JhQehk< zgHik#;Ao1(#}gQwkvFBUqT4I66^FWq8#@tYYO~6pq!ZWFV+?|!iKH+J1z^f$lR>|K zePRtF)};h#f{JrGD)+D!B7tA{MpbyeWd}iDd~kC`%HebIN}bF2hK|sLiDCdi&agVD z-={me8+)Ge1&PcZ{Pd?r=SG=V^>^(U>A1@Do_{iR&iV5l-kCy##E=-a|Ztqd2 zq5jVi7JR5XK}lqnuoQdjRn0YlYzG(3jTrNZWl-h_Ny>1X16`1o3}5uLM*l-tjO0W(4%f*9(q z(foVnBE!*IENY9-Tp@i51PBXoG$DW=U$WONtnW9k%!8RNk4y|x({73dgPx>MS^ONy zr^Q-`1)!;U^?hToJO~XeMMnoh?a5&Gtbu%kvM8HIw$O;Dc~YDn(Z5DU{`V?B9i!rJ z5`%eB@<48OoyLKrTt_mPiVADN`@ifIVO&aLV3=Chsx|1v$O)Vb`y`CDAp8gqKl5B_ zE?$9)@$*2AI{=6Wp8od*NzWew<IB|#a_<>Z2Y6`v0QvY-hls&Su zg%CmLk!SSWmN9Q0!mLs8BjQ%;%SRDd~Apg9O+K8E4hnz55)&m ze`CG$LO4I=>HTQo+9X=KI)X4?40VJK*3N>`TN7uTKm9qbKw}Hs)^2vLH(~QFp}ULv zIbXhT7QQc#m!y(G)%>PYl9$9}@rU;oGSGrNo&;0J}Rb5Ma)<%RU0ZTe=rH0#(Q!4#4frYb( za+eC|5-ChH9k13swjXG$-#Uzc2TBtxlGTjw)6y3X6w;HM0+!R0k2p4PfyEoTu`R(8 zAk;N{m6DH0m}dDsz|-}wdQ*3CI>Juy{S+8I^t6v>))e<0?nEL8 zWe|j_Mg>s!rr$HCJW$G5;X@5==_m9w_iXF48D_pB+%?FnJk9ps|1@GucHlxebrtIT zu+23O&_9w`Fxf-k>k7*%_7rNW8rk@xO+;3mR4y&FanZiRI6cAopt3aNUlI=ea2=howJ8brGvLGBn9tKURr5ry)W1fwVG4J|8ULHJFhrEh zW_oDMBdtLUD`fTu7Vol7%86|>jtSE1KOaAw>xj>Y-2NeO*JoQK`_Hw4miyqwvMWEZ zKGiQA%M8=Pjqm{~OlQPlb98NULzy|BR+g!2NB(`oD^~g0M~V^U9s;Pb0f@t8#c4vm zqjIY)=IWlt=>RdI3)86*F`lW;DEDWUSJdGuSs*qI#b{yPrS%@kb~)T8-B==VVee)zuepti|R# zPQGWA{{*I-6r+M=VPUVmLOyXm)SX8Z4$QKtKT;VZY`;`^Y#FlQY}!-#@>S2tz;YXMZ7YK7#}(f6a#0>7niQn|xXW>29Of zs_<3@18xsjVZ#r-bCv(?0{5dm)^{o1bKGw5BRAl*J z5Zb_1zbiT1$$fI(P5DGOCoUw~h8KDKHFd5-z4%@=Op}$q-8rc1Z2g6(-i%6K@b&C3 zZ51;`9;Z1S7qkKqb7&7>!XGh-&OPf3lI(#xuM)|-7`DD)5izArq5ewLsu2!_TPrGh zN(plCp-NFAG0%vGtfO)K-VXjZF_DXd!_#L@n)=H1yb+3A**!(kFu+@RD}4WHPeM(T?fAa2CPW6u_#CiDdiJa$hB< z2LFvh4O4~f8sNR9o$yOol!|}04q5pd+U$)$E8>Z#SH$*ed}uenHE_-gQPnn=Vy8FL zj-w5!a+wR*c-vK9RF&=GU5=Sp-fU~OSi+(wzzh;PR@02uJX=U5a5Bvz9F`DaW8~#F zB+DC%@PdE47e}-~2p0R%v%DRu7n*BmUMnm}#~3gkO!U@hcc!Pi3(LTF*ON-3u}tdL zBWw?e?bZ{qlK>GznkdpcJ^-;h3vyI8VDPHdXG4i}iOxBiSG-u|5)^u?-{?Lo#Mbxu zC)%wl#X|>kg^_#6RpkdVQzAmY(?9=s`gu(stI=_(-;|cTJl-(cW$*=ZB1X&DiIH~b z0C(sqiA^J|g_|MlSo2YU-15KAUdb#^coe-RXYNtv)$pc;WvY#AG^xZXafeTvx4*^b zzQI~(O0Xh}d|wb(E}^%@NcO^X4GQ$J%@=2i_t z?+b1a91?f4m#ZVmk~`_s9w*(gT(l%(;V`BBWUHtf4Bi7>84-lWd`-2+WZ(X_FyUH| z9PR47g-QxLUIOzb^yIx}7euqw=qN+7a(R{J1Cd_L0y_u91G< zVNZ4U!BqH>JIA8GlxaBCQ*3&O9is!`j|9*E4HCekV+4bkUFD6-RP6DN zj42R=2WLO_s8@7*(H1N$OvlinX%PChzER!nz4|%}lt(PTDc5{U|Eu^Jh+?EyO;w=# z-&X47O=;P{=(mr~;*<&D{m%ul&n@t$!hnmPblGT$XZj;2uA?XU8L6K<5AxZA?&?M^ z@@}7P2@7$$*r9maO2`22n=ef0tiT*PfTT#=%lpT316&$rh{O4r4*i^D=pdGR4h9u^ zqK=sXJbBlYmf@`_I_Eg{bfCM2>Cmd^44k!u2pMPChMq&`}`QE)t#tz5Kq--}N0yJVJm@IDl-mKb zW&Y2uX#q3;;Uhp0$~~RdivNUr>5~{@Oo|sH{k0SkX2dBEKmvQpy`foCkbk5|0R|>* zrHa^)3+0`!oh8~rA#w^pqnGXJ1ufhjnzP)1*nV_NKZVEvj*si5p)E}BvT(%%wMSCS z8Vn*g2A&q%JMeg!{0+-A1e}(12g2_9{PhWopwMFg*Dns8V!fc~gs|vP<~;{ti@`2Y zSEP>MCHeS7*;5L_;%Ex1d47TY)?-@lF}vXs(SI00nn6N8KUSmw?v8q^ingFk_Hx*- znhb47BQO&^f)G0uJTCRtm@CABuqV)F!!!_eR@yYYchCZVNI$JpGzi5h=WN0HRhZ7o zU!_NT1a3JC6ID zb*PogCD+Gnf2)e0J4v7u5>S4qhK(!5VKNXZwo}@ajgPjHil@{}sfv9u*5f}4SeCZ& z2i|wdfX_hCgb7pq-{5d)eEn4e`JMaBj4_kyw(bRkpwPkSfVN9DCScBLgO^X+?m<~R zkHow%UdN)XX(w0Ssm`Mq=%0MpRa0;g-5~hADD_Yu|1Th%zGm^p+oGr?Tuqy3j)tuy z*Pxv_rMgbIIs)MygZ&l|MV(2Hqw}ku3r+V!4y+c%WTalVvfVwN(DZ!+zOHGw|T7Qmw>$TA;F%w0bO2(9S1TQ)x+W6)|<(6H~ zsOa*0V}I)F*YW5nQA^1Amf2yK%6iW> z#vc_PMGCPUy!di@P+%m2u=CRRm87`)S#5QfS1pWrq|ij`yAOYR|8dB~(xUc0?t_x^JXMTW89e<-t;M;}a9ePP81 zf=^GG`9hAZQDP^r9LILKcXW9TlBv5ZqCX7$o#NL|j`{V}h`RS|hjwN-z!t^<%^xgYM{^!M~zi^+_=+}+Vf^Np&(VjdmDVwhbnEZhDUL}*~ zzFReTYT|KWl)2)*XuMu<`97#7zI)F!OeFXic5|36%tu!0??TP^v7E{ru~M-b6Y?+l zu)mT|z1nU)sgNn5oA8+n!%1W`9Xc&V!`5IdwMVR1%vUICb<3&RYW0)b!Cv7x{Y=Z5 zB*NQ2@NKs*CT;l6B-kOO8N`TRM#=ZEGnX=xm?sDM{k~K(5A%H_DtQ>WV9?X>c!4iy zp`<2gc)snhE##Pf>A32>o10k3QW>R@k7k&+4K+x64YtF!`r`X6xwt zp6!$V3UVJ6tDA*b*q0@ix+MOfG;vgSysWV&@*&}j&v*R3SDV~KG0crR8y1EB0veS5oTh{W~RL(>6p%a0V)m2ra_%9EFXbC~H5MdB!MMDFV0$-hPze9lesgknFi57OhqhpH5TIBIh=bDUE zUk!fW^`LNc@S>JCdx>O&kG2jbN;kVYZboJK{BjMw>TBQyMw`bdv&Ea&XEl~8$x^L) z4J1dE{y|9{0m=)6;i#YGIhO&~gf5ac(M1n{r-ga(06B?(CF;eK+WzYQ# zI3l+8{F@_KPFGbrSc2N-ZKi{^%t#i4XN$}lx#ja2NWxeD4K5%$Mm>zDmuK_wB`?-H zLaYyXx>HOmnJ#bMjw)Wd-_2u`Q7iFsKOY1n$hB409e>Ivcv@xo@gm;~Giqn>$1c2#dq-~^& zZo(G|3CmiFv8ri?3DsTsJTJ8n4<2t+HI!A?HyB}7WQydf)_!#PJ9hMfjH#gXPQ_Po z*~v?9Z@3t_H}uS5+Q;|&E#KPDWJq1D^aN# z@vG^(-&0#<{{1rc3$}LNf4m9dl}Znn6sV(u_T%q?Ch!;F)lMRjdzhlTpB42GN6AhE z-&U1eN%P*FJPf{6VBR})(kYC%UnD{0V{mqx>z-w7ik(-f&5zfzNK;-;=abeh^RHsE z>p1v6j|yIkT)@v$R82aDNBF^NotWF-zw2XVwd>TC^JNGc4f>$-)98q?{rBbHx6P*! z1h==ruD7O{c%qM`{;e7;=3O0Ux#vn4ik0jUo3ywvGKPMGK|2|-OHjeV*U@!O2l+Wv zm18J{`?Vq8J*IbkYxpB0+-M(Ntl#>VcXe8*iax&D^KEZlyW|WCTAS~b^W|u-grq7V zu^DtD$0ubvCjI5iE=b#VNlugbYpYB(;KdVP+^b`hZH3`dsRRtW7KTIP>v|yd82Sq&5WIUjHRvS3*nu~sJ7m&_4D7NOfr$moXq}8pee^sTNZ1XYTzV*BC3qG#Cyr*^1xO(yPfh{4GWv337 zWv8^ktLY%gy|;$0ExzNaA@s}A_xK*$YyFN#Ps_Va0mD!sgJDdGS$>%z*Jn2?eR^`_ zlCo>IZ+bHGBf{Cw?s<8m)9`VYR{QZr*q#5t+amU__!fGZ=E<0xXA>qgu?5@bIf+Mt zD#-O}r;6K?)r-rAe2%r3{-^4)$>}9&Kt$Om9E82XOj!)OSj|yK7P4Zhf9?bGcF>lM zQ3rKWiHxy5FD;TA%8z`X^F^1nOyAda@9kpXCvut3?RkgNZ8h6~f(}(C;txkR)p_`q zpE6gH#T|QZco$5?`Li@7eX{)MKfk!zSCuV*EmnukRWo@y3h8_I>~)*J-W(pA^XS&! z#*cxj9DJ4p$$b-wlv|uJ$1XegmwMh@&VvfcWrp{u@3hXh>{%R*y4=15TMHkzZN{_@ z_?Ia`vAY!Kql%(Q1j@LVw#D@Xl;+m z6&n(?{UDgd_`zQMRG7AgW5$j?YQDK-s#rat-WJ+vQYQrAd;W2wOlW#SaqsX1=iY*6 zs%<;xTbbMXZZ{p;5JdxsSbQgeSP5V;T_lIU#DZ!Th z+HkUBkKAWUH(`iF?k#Zqon3Gg7EwkesdUeQ(!Wq&y>_MOi1D3pG$mfkHtOelhzA{z z^llhw`eIOVKc<+Uu}__U|B74Sw$sU-b4S@j-B=Ar44mRMy=nVY{g9+>|N7t8o>WYN ziH)a)jbuKBkMs!3G4{YYV$$BJ<8$-a7x`>N+y7KBnbL(q zH^?Es#xS|c$%IOoXnGVMtSMGrE!{}R7`9v;EW4jtQP9@4>q{M+oaOC`8gkpSelR6N z^i`A$WS>91(np-|8YdznbUH+OS{-{d*JbXE~-C^b$fPM-zUu`Awk+$ zqecS90{-f z9tOM1Wm_9KEv?fj#;n8-?$A=p2{(TGkhqObLbgK$p57I_8Ct=oH2{i*;C=h^s|zCW zYxw!4P~<$U26btog2bLt!Q|&93SF*Co{AOcau`5}Tm8z*NgXt@ckAH8ZMi7FXJa&k z{c$`heyY1zf~fO!w@HQ6!myh!^aSnZ@dsYZcwwSNgL>lvWLN{W>y?ohg4-Ms!>2=y zGQ^7eL9_doqbH$X>OzbllsF)`%(bR=&UizX^$X=W%RkE-nNbVLt&RTiH0tI=oGmb8 zS(UXXo@Wq&cqN5l^lr*5cxJx*k(kcfRd&eal{sE%`+CWFY{4>oUw6{>mQR}<%Q7Fg z+bIL|Qjn%27H;+@8Lj_rzM`D31_~t|yx$v5@X|x`ABn-BT#zyo9!Juv&3>)bmtARa z8{fy*{>RP}C^$bg?VTFPcSR&NzIA)How$xu*QQ|FVcJI{0x}@-#`1b*8~*c6>~dt- zUsepdf8{-*uTz5V^Suw!^FZTnsKQ^h@DN{r5JE(l$al56o;U95f&nFN{@-S*Hy53}c>3|z2<1e4B8vXp| z6G4IZ3v22NPr~#;SeTpPKMZWJZsFS(`Yyj0d)l)n*>RUQ^B9At~gX)iD0^U`TM zqun0{ETpDEaDDOVc0fCq@12i|3snKs5b0Jq`3d%0itS@z(_9+u@%+m_U)B89Z-dxg zMy#tv&#wwy8OnZT*>4L`mXY>+;F77DW7*5OD4o+gM7^_sEr-N@Q`VcqDEz#by;q`M z(1)#Ltq2`gx0yE`vS+ATl;6xzGZTrzK7zru^O2<^a1s-65*MRot+=I5Q7?8eqfhJ2$I;iF{3{m6RE8R7i^I}jsXl%BYHSqd*n%=mLM@OKYsf?uP{g=a5 zcpdHiN|-M2Q6$`zcxF+uYL`hZo=I`8Rt-y0Oh|f1WD~{)| z#5ZL)DF5$%>q$q@l3+LVddeyTUy~Z_cY=T>M?Uhf;nTw*R$)dBNs7q+_)J-=V*zRT zFaI{(r5|dAcs3rf)7%K*hP2&coL}VK=|)`^GIww?8}L_{o=t;bgQTp~a3;9MeqK**MJm(9M zxu*wlt>=?5L=lx0kH&{j-^T2#-#>C9otjL2*dX#->NW+^36`%=bA3PI4W}qUUeiAo zygM?-D?Nv^i#NKnz)cso0bBj^HnZPyZcznS^JdJ5rUWMIgUzgXT|aBNv6SzVIAtx6 z3|n=~(5eCF#00fy$LVMAbotY55hq)&#c|Htz2v-%{hJdbJ(3o6ndJPxm-CA^*;oA? zx49@!Q%#<>nW>y;e`m!E?Ro4f^d%N>f|06|84>eqIIn}-vBcfhSQFmNe>EGz+T!b) zUOs}9WC+wWJ+{#7NUHNWc5;pgPOh{eI>gq@rA z!kgivhET*w@Ol=1CCn@+g_npqSF`w2D>w*%&;d4V;*B@3oL9@4%+Dq+tA6 zJozo^t3DaDK5K<9Yjpi#`^Z`Rx*uCj@orfw=ws{qVhAZ9u|3T0!do2;h>w>-r27gq zBbJ$ON5_{;t6E2f4P@897Z_D$n5^QZN zxLXD{*DHeByy<*~TP#));2x6|8N?VnjJgw_UR_ig*x3)!1S*MoW-;@D1^+LSE~39cXGn~J#g7ZsE|&oJ|t1c$X~wN!Ygza+&LHy z$ZO?$pvtqe<%8q;a%5|d!fJ3IzosPbVy)+JZ83zsR@5!3m&kp`Eu^xhK^V<4I7jZ!g_WePVBO@ zF2n8WD(3s@BKGlGew~Ra#SKX9?)4TPvmX4C?Ja`^=C*@D)KPt++03o5vzg*p*p%Sf zw+7c7@xsL!4c5NUWS0z1vLUa9vC4EAcN(B zC#T$fe9(caX}wX69hcWH=*^`uZ~mw5M+)xV;4H?_g~$&TWQ?6>RK5L0yUQ%W)` zl%9)qWED(yTR7*&q^J|Lwm~;!LQ~U)ff3f4Z+q$NJ%j^ z`t9fF>58K14*1?|o+fhWQ?BIL^-Rw0P{p~utPQmsIlz>CH~MY%N7apMsnyOL!;NtS zuFkH;gUI5bvN;!u^nmSIYOmW`h#V9QH5GVN<=1NeY_LUV+*HM|(bi02NtdJ{c59Q< zSDkL`VrIMI$NX<32t}7|dMb!2E}+;!AGclUwb@CWcycov-B zuVc`z_ggKWdpl4EilnAshd$3jzVclgx*GHGHb5tp-t%m<^6450mVWc_BC@0W(3a?%gK zj<05$I18ok6hDro&5udUyYlK8jWd#(Qv=K8jE+HAUd=49OfE9N4Cv8#$88YltJ*kEkYA@DeDv7nw3F+@6I~ewSqakf}LZ81Cz`OCMb2Vk#3&2l)%C zOjQF?|K9F)%k2&}T2xnQd{oKd))cHDV!|Q`A7?}j2rV6tscUqf_p)9R`&;Ifg44yO z@23?cVbX`7gye(Zk>HR@62qLZoPxK~dC7_ye3&GH7^CmE7H&;gZn6-yD+ zt9nz*6@UPi6QZ0KOny9=j?u7`c`q~{mP>=r0;?(CnVGlz;-}V z%WveiO5F1k^t0nQn;XW3Ac?^oLZrlj*Ne%o4K^nRDu_#|mR7_dv4!g3GPa{fp!1d9 zSD7GnKomax0`v8kBIy^9c3cM!U zSc?{1ujpG?oa4>8XueNylutO%_;c$q#F##e8p1Yaecp3>ohNlTBI38wg&2*hTNAlrq&HH!cGrNQ!vA~3oXCqFPd)wE@-%7MizO{j?Z+Bhc zXXIWO`RG;MAq;0xZ#;ALcX4J9((L@Xc;JH5*+lXsJpWDL$(%t}lh-o{WC+B9oPyB% z$(~Z2g`1Xuh+?J(i{m_C>oL|=P{)SrT-8Ra?^^uQZJ-{x%41}2_xDg3XB5IBuMA8?PMZX`x{)B2!N&(sJwhO%;4UZl1KlkFADTcI1k&jUz(F8l zpfCm>#lYkLKYpnh3nK9XwgL-5m9q(lXd~;EWUu!xKf{HDC2B%6AS`x3Pi&i}TsRSJ zW!)ehEv0kJlb*eBP8??PrtS4*X8xOX80xx`ZaL9JOLMCuf<@{+WP}4K7-v>8M@(mR zB81-v?mW&nJVc4;5(R7i*k*nI^ie1~(7LYNvMoK;PdQMK=E{yX^*wH@8#qxksuAGG zW6aDBQfz)|s~?6T1bSX94gT0h<+tU=f|TuZY|zSCaM;O{7+-DsymhJsf(fo860oGQ ztQaQn51Trl#^GVQb+E^FZZ||i_jTp5r)k9PrT;0DhQgr`IA{?W8<4(^`Ih;zn`w?? zhVm~9su{r>=3Dye9tUp6rzKx=h&36YrTg7J*jB_vWUs03p_+N4I$MmTuiBMYsY3xN zl$@>*s|_(}2(IucBfZTA!cLQ-8e)3*Zx?u=`Bk{Ba$)loYi}4cA_HD8vw`Vt!GNvq z&RN#7_W!p0&@l|5>KpavLm2(IKpO#4*#4svnl5T^Hy7;LO$eL4u`Cnu=o*sUt5H*Nc3_j=sRz(%qC;K{mHx?`b8s4E=kW7$f z{W0#e{|@2-1#RNT|E`_L^VZR?6w7)Wf-)nd5+}pAZpvxi?S?` z*B}9!y6G-_!Wte87bk)*FzZ~*HBc>Bop@lv$6Y;@dR;`v3&_n#NGyNJ&YPDf(H-iL z57t{?k>NNt>h z7pziOraq1R;Yk!VS8TaaKq;_t57k1cM@!s#;#fDN2}Cw!AFA)*&6y87>_EJq1|18u zutf19NgoqQoF)L0Qu}TMf7q037Je(1MZO0*w0QB`hq1J%Hd+1`IgS<(`~(pHLRT*< znQ(8|rKqnAXi|Yw&|zm}lrV91Z_I%1-UjqL=+sn28U`hTB(WulO_x{00~43xSQ34m zY?l|NmSY43eOWk4k|uKTvANb2FcVIa9guofOj zE6f^ucKaXFVLCu2!A@=D9iR_5>%r5@@D8?NcAe|{K$15N# zprId{fjzN!gZz_%?q;$FWS2rHVDppuNTONFl^3KQz2PB`y>Rl;OzB!cWxedZTTK^? zn85e2Lkxm}cUe(}-`_vBwVU&o@B0!?z#$)q)0XASOnl#btpJicUfihV9SbvevuIXZj0@G=D$4IxawHh%I?pk+-;Xg9B z%ro^PM_E?wOOh<<`Ek4A0@qiT3x8*5ml|^J# zap%u@=6X-Lb^$gLto)(f1l_M_LXXvWdM_jpOxvD%B;Po2dwdG4NmA= z`O5t5>bth#jkh-81KZtp3H3(dqME$z2?yaJ!~MS%URTqE%JoFi=TRVPIe|6y&AVVPIg5-`~ejklvq#7SYi62H+yE=MDpd zhWFnM3-djf_?-yrt}Z7DQ#V8Y=lui0MnYKv2Bt9)?b!?w28L!{L0Ur73-&zE#KCYS zZzu3*GaK?;R9eKSUP`g?(SXz8Y@}G9UtXWKcpYi2Rs2(jBMh?Zrxq-UdE{~N0zyWh z*gg2yU@^*iU8OPz{*xyw{g%7KpyUu+WIRs)7V>TFvF= z4+yobwwF;diz9^Wy3k(0HQ>PJX-rQ2)yEt&Qgwb+px<@dEH2}i_ovxHv`@Ei^Dj))2XSLNr-5vNL)7Z1Xs6qXUXxAH=IC`USper#zK#^AERZ~WWkNE^ zh3O*H4OyMNUjb+HybvY_eddH~SpYjsc}`sw{x2)rt~Q(uQI))z%FK?l;qW-3I>Kw< z)f+2dciX9qY>fcH?S z=5NIt;1|(&ihRn|)9izRhP2&G)&WJX^asN@0cwAUd>(t2tx2QnK&8UGUAp)FaY@i} z{K*xoq!?oaGpeAxm9oz1CQ)1NX?|j8+jDEGyq87{br20r!8pf$3TDP&#IX27#3u_f zO(+iTHhxHz1;Ez0j=G7wGlC!4g8Ip{Rs%`@9oH0_q62=6=PcIZVZ;OAq9j)~x$0;M8MsT-3|Yu-4=k zUz<`S9fUNf^HNB>_l{Z5Ap^zWKA6Sz!G#gJjF9i3;cg>H@r9~9*z;FnEVxoN_s4G~ z1!qy0dK2PG<0&d(V>dRFWaTEq)hS?eQ^hlT6x#WV{Ot90wp`_88Wwon*=t?gZXhcM zf7Ip+jWXebx8Pt6^9!u-oy=yeCb9)`3E=eI*M1_J{@4D`a^eCsq~axqb^8TwJ~bXp zLbj;x_X~gT`dHP~CsXMMS>nSb(N$^}T0D2|@DVLWOSdqrXnz>_pw1^ujwGdWQ=**g z=kSm44sBE=omaMi%q8R^cpG%K*p6Jf82bqBtai?ACZnYHaxLF z7Xxj#LU^M^p_tZzRDlO`y8#I?u`cOnP2u{XC&wsQx}Sf%CF4fbbEg-*cNFl|TmS*i z3AK4~(GS|W9-lr!lo?%#b2E;8h_ej9C<-qXj_kL^k{r!|&7W$uP z(U(#}k_Ne!ILT1@BwchB>g_uvkFH8sA3_nCIpTWJ%g(-P{wW@nC+bckRllVe*(c?1 z45`cjXSitaZVe?RvvSbvE(~w**YkUyTW^y6UWYkEM5h!?tRufRq`8EYDPLLnB!O&A z1uwj)yUaxWJ<&;L@b* zS9Yk)EcC8mO$4?i5h1iA&Ws^z65P z>K=>1@}|mVjL36a=4bMBq!%yQ+IXcTc1Jc5`? z6~#kaOflf^J=ubyNO_v&o9^h?L+X2!4g+-3&>;|>dybP%S7nSv`b^Y+EbR)xa?)Qi zDrAvZM>i@p)i|M>)Al-7`4J8Ea{Va@xG=CIQP(K;)$;!XRGq{TRuf0{mXOhEJG|g` z4*Ql;V}#DpQg@?vZ$k=)bdL0`qIvqo(#gGsWW{HJM?R-WNpxXRsAA=?l++#~1J0}G z-BC+sM7@wc-cF2(D&t^C=XF&gf?XCVp^gJbS0bwHCbu9n*Kv{Yu*H~BTanXRsmIqs znZY7DxbX(R_Bkg-)#l}cSPGdw4S7(pWiKbIQGQPd*9k%AZ*U1xeWJp~_4)GSE~IZ2 z!0wdARB+48cF()H)r{a3(C9j@@K{)HOHKfw&ZMT*k0@$^GWRWCO@t}c>TqkJ0D2g- z^jd#@kIsWKJKz3T>?S9~${ad+{4eaGkkH@8$50JLwINh%%@L35B9a%oSFpAGA^1*w zB3iXRzK~F|q#Ep{I?fS*$p1nmoi(E!nx=&k{f%99=U>2~s`N(#iM7(~@ksgzJ9xd* zG?npGrtU^K{+A2Z<(=T9xzEhzGzQ_=$v_*(!E6xs`(!mcY_lM(m|2QG*`}Yhi~0z+ z>V4x+ZR(L2qx}!|-ame;jalETNo}baR8$MCBeFloc;AE+UXnFGd^fet z8zl2wDzN+~E0Y^s61Ad&PeAY~Bt3klnnY;r-S4SG_Q*=l3%#$T2?i=qzwa&LHsQ(0 z$YiZC8+jN{yKrFM^hTf%G*eg;oeKV@j8w$WC(m>}uEq%z;I5mG0^|8jiKBP-AP(=PMuFLMl(HI*gM|clshGInXXF>EJP*&_&&d4^#t)Z`F<2B}(COjpG?(Zqjj)frz*vGd%#5qa>&ug2gj}7u7{a z{8#v=2}wBYPtWP!XFi|4tGR??pUO(DaJ%8U9+(k@1>8S;QZubkrU%qpb5Ki(Rj{I; z@nBxPfKIlAH*o~{!>Mzn2C7MN8+H2WaKm~-xkID`zBy51V&-%oZ{m*(bINWfTk>Ly z($KkYv8fXq?(D15=qAWQMAjo|biYV9gfzwfUNU}P9tLs}b9Xts}gM!(o( zLae{RUa&8Hcs*}dPmF^4nyOJk4?#F`^;by2c2*Gf<0zJm$@o3u6XC3-0RHvo)s>wJ%AYwVqbn!> zo9}Ip%&`2Xe}FCqN85-rX&uhIFk&vj@G|%|6^J-mbA);$ zKPDSglIxc24l?FI1l7e?cJ=mq7gySdk*O-U^Ky}>c#{1ag`Buvh=w%&t1rDTUop0y zx|pNu(0~h@S{_}`gOQ-3ZQIYCU%YMYdPsEM;|exzwd#+c5tKFGRH5a8$#zai`9I`g z9j+JQ#mGtwzP51uxalBdCua8R!NkKYulA~nt&1SD8%p(u_17C`QBV9v40QBQoO#^T z?N3_YHJYrwXf9)b189suj{0Dw(kjrReKQ6~i3!Ul$KT6+yNL(|lx0^E?CvWS!|i!7 zkxrIy(YUzkgbj?K?`GaZy##git8lDt>}%nqam7{_QXAWCX)Owg`1Wy5)5e8H$U9A+ zB$Vik|BhSN@`oo6NxnG$a;(eK)~ru4Mx3yhb^RlV`{XL*{L<7;N<~pbhGA$5sYPD| z%(JDZQH^V0(OLne6wMODP>`AUP@QQ<&NJk=M3CvAAUM?oCfA7Z=$Yq4#CQKJxASqO z8s8DEK5dV0fj4}@B9wu_h4)cj*#z12?oLK`V!_F)gp2u5x=gz8ncYPGu{ZBjowXY&E1G4)qx0!y?d;m( zu{?}>S>JKYdK04z4F9CE*3)W5Op4|#fRWEt%#G=z(c-SQ$Gnn@Ee)1f+`VY~C#D6q zE<*9?a$+L*$>COMA|hyDKAN}g27kfMZ`QKi^vXuz@WZi!PSBP=x6R!Vpk2+%+j4>m zvdwFU3yiEw#|yedJWL!_8o~yw^hanl8o!;?Fb6iP{!^O-bCD|quym618oZUSNE$0Tt?Rf%|b{pJQ?yd z(bzL6CE*&oHaq&xrmP<`-=3MgARW|Hl-H);FuvPUKqVWKNZNdB(+0j>_y`amg$Oh+ zt+(Utq1(o}?_8+< z*LI~Cqg8zzTPVj~-}5?Upymhimw`#*K)RXQgS*#&_7NDrDmNcH4>9b-P)9DElRF&@ z-(QVB6q>$95vf0B2r`Yrf&g^AyIOu~9!pp`Fz04UgM*(ps*?pGeF^G~Q*bL>=kRO9 z;juWFD!>f+K9V~c+QpVydc5U-78a*k2e-Lf>n9R9+-8vExG-t(0de9&d|D7ai80KdSrgVV*S>#^tB zyCO}>6Vp6M)02qEMJf8Y`MY7cu3T?l%D7nTQ=)_>pg}BJph)v9ZBE$HK}hA&=PbaWhqdWfFDzl@Wo6tN! zZgM-?{yWQU8G!)cOgV2wF-!N|D*lwlXRleqyatp3wVq)UoF&Vx=bim?kz8y2Qwtii zgb;;-Dki<6Ie&4)qAa%)n)<`ikJLPl_p7NKceLEY&?#`}-1N0>K_yxwT!$+!k-QNz z!`G&FxhYRKenpWwl-2$Q-Qc?9pPU;XqI984V$tMtkCl?&(uah9jNB5bKiE)+a-KzY z_<*ZlP!mv@rp6zKN6LDD&yVX9#Kxg3A%`3}={7z6db*dXe0$1#7D31DUlFFR8b5Sq$&p~7zQ8y%x^ZfS{zwk537VFQ_ zpHAHP)w@ag1F<6FWv`uG1P5f}6CX{Yv+ZZS50M_E^ZD7ErH%h;r0**{io?ocUAA49 zJ8gdtXBYmA;@{ygd--JOSgsZ5J}cN_PT_quFjW1%$_n?!xZ-ZhLr8R5t-e%)l`R|x zK4LPP`ZV_9NZoUwaO_RrTkV?oKYrHLud7D6WAnTIQ@m6FVo-JAoESdklOeiS6#(&i zadritMcBIfURcaV5&289+N0 zOlvUBsfgQ~4QhL##IRW~umf{F>GB1twv8MNe}C7`q^CggbMq*yM`df!5;rTW8{6%g z!~=U241|gd<_kAA?9SG|PW*e$VK51k47jIzNUVFNc=kKwciCf^1y=>$<08O{68WhF zh!Ms46p-uHpPf#ULbrEx%&fj)oQRNOr^om=tUKg2FBF)45dem~Z}H$XP*zyc9Owp* zcVgH+3)BWR#sbc0!p2(eMMLbxy1x29Z_YI59uw-ASCYozP;_jAOJ zQgt~cxrO6j8@PeT!c5~6d-L%0mIH4vdyK90`QV3)jJvO~aBa`Lz6z6jpHTTVx}jiZ zJVCN6BGZVm22x9qYq6f6ACF`qv9t00kRtfHMAUUab4n1(`=Krb*?4`|C4 zE2rnEls?7p!i6ecNe~oPXNM15FYAgh7NMq_SulyK0iePy@hTQDZrb!5-B~4(1bBne zF@m*IP?V^zsFI&YSgtF|5fX1cR~~)4m}cq_Q5$xCOS6GkuY@mIvEY71cI^`?=OO?Q z-L)0LA1+izqbDjtC$)!5KT}4@)_1&ZtoQc>jb{e5x(2WXn9KC2tGnQ12O!BMgk=_Q zo1(C+pL6+Ca*!N0c|09zWo~hy|GG8|DV){KDcohm{_)>H5DeqVZ9zlvRxKk$1dX~u zW2E1h1nH|cn?x{J4Ou`BQ#6#!?!STInNBr*VHD?{fPK&ft;cc6Me{g8^X{J;!;r&h z@H66j$_k6TB*3B4aad~xZA*8jQWobt0ybvTm;_!3uzmSPi^rueZ zJP}+=a;gE9CJ~iHc@7pfmg#_aRFH26~5aLshaE~g9c67>3D}tfYa@YK!#3gl; zw$SmZ_skOF2;3jmBo6@#4Jj$a=|n2GS-__b*599CMH}UqT-q8SNBmBg-g!g~ZWylD zhP^ci>k8uy38oo?TfXsapDXAE>#+CE86r`G$qNoThC4bN@jNUjG=}~9D@(RM^a@#2 z%RGa=Y>0a2sy@H5+^sY9y`JbY%Ar@nd{sZkTocVq>X$U~cKxk7e{ey;wkQthX|a9{%HZ)W6fQ|FQaAVCDttU%7J2yl2dkzg^kQUX zeuDa;{MtH^k_65i#DUSQU7cqb`b;25Czp2o zU#bQMf_lb$=bIXMtJ@0uO3}A{E+~738FM)X9#CjP0*TkIMlRXoMI6)g-q%UZW)6YK zXgl-8)rRqC?*;_T_IeV7jxqE@d1Tvy_B9aWv1x*NFt)Hw&h|9I(>?+Pl!{ODpOkLp zVm>qkUIdCg@jetd2Q2sq>#{k$lC5LAUbbKp3dm}uMSAyY$usFj1_=@jKcLqba35mp zvo8MX`lD^NDJ&{zn1wLFYfD%7K*QMdcFTAe;O^gb$m39Y4Sc@TPlOO6rsE7TfUge8rpV8Us?D*9`pJZDTIcx zv+rf#c<_{8`g?=i`Us_50rMhutxn;y9rN%>G3jjr zzPYm~w0C6a4DC9Qv&^4mpa<^T&oYTMe2Chf+A;|4d#KK7t;49cTxAuI1&6uL)MUUA zMB!i|@&`(cF4?rp6*-wL80@*wI=!Y?F;$`v75FY1s}UDwVc)g8gGf@~dh6#y1cY@3 z%&nN1s#T8?!pLSFaSKkNrmisD{2ndOl0Qj3Eu@<1uPg!rtbi^75v~HTDe=M9rXJO= zS^DA62Rz>GA2tnxh!QYmtoetcg+L#~ao1K~MzI{?%8E^0kpzSY9|f#bwVs&8GE$V8 zgv{vK_PN|3TNBWRbVO6$idDlym&b{b>00qI-DK7VChBQ>O=LtBP$fRi2CgJoUoG;HuoG~ zxt!d7$NHk8S6dS=?ns}3eJ4PFp!c>3k{Xcg+C$J_$iGW+l5pSANsz zQ~db!$^qYgjrI3DE2;h|yH-tQ_1%(MsFTekM*jAzGw708ZH7_Jy7-g0zT{N4+S;F^ z%HtNh7oi3^ddnrA__Fqy@7u|j)ouTnx^&)dcXk?!O`0j9BK@HAaE5OO6$!m^(>^Oy zMGh#xr$&$);Tv(bdseY$n6YQD?Qpqsc^ms)CuetG-SCY4F0j$l(2}fO7OsdsOo2B; z{!Wi#MvANOQSAjU|M?^heTHsjlbwK9tQCv$V|ZS7x^`*U@); zzn!6ASJC0%utO+;u@-Sga72aBUAYwX$^r2;Lpow*8l7b()= zaUe_g5z>uthgz0<9>3%vKQT#xnQHUpLp_|t8QeQAMWz&1%gq0Zj=~8e3MQU~N!6p% z*XzeZ>(xtqeze=~3xU5&M}515>_}Vuy>~H29$#0F!F)hG;=L7es{SA#Wv;Xu{*J7M zeK73Hr+7hcnzjz;`?~y-B9y>eo3J$KQvk;pzN#%?KlDMZH&QJO&c@ON8WTA#ABTqE?pudSXG8zjIQ+FGElx(I zj+Z7@q;RHKPa5rd4krOzVK_!#Np;3W6ka~*bItHI}&Cj?-gzISR&RLApcnO zB!ej{PWm*6y_Pqp<^?k67IXsFT-Sc^I}&1Nhmkmg0kAg${x!jWI6~f7`xj+P_E8OR z?zuKg&nd_jWz$NcA5|Y5K8=HH!V1w$&iI8tOF4F(p(37Aum^ zdPk+0h_?vEGG@7~{lK&F4OH?mP*1S@>aj<_%euWuFT6A}HAI;@@PR=rP#b06o1$bR zPyRd9lNwfq{T;d5Ll)~W{!|yuIUXkwg`+^Q&BoYY?Z4M^8F+dih+P#F#!vUWoA|aT zj)NJXwZXWu+c! z{UUw)kzvd>OAbK~&{6az9xyZJy6ZCaJe1&W2&v0Y7AqU$e^doE;mo*YUP}-}i!X;*tUPu3K2Tw)J&=%EJj_svnLHU7BnLBdcY{F0~OVzXE~`OkZeLD1yos~yL}S5Ygs zD}3x=)4bD>2M4*s%kHa_*x2_41lQOc&w(KONkA+s^e$>@LLw%tXP#g~TS#c5SoU~` z@V_YtmT&(kDwdSGhEr4diEEnWOS$AlupxME(1qw`=w9m=T$Re>o~7G1K`MHZH8 zZVL`#yT!WB2RT^smH_r7C~k0YaqesySA+vW=^8VMVs@hvX$%* - - - - - - Masa.Mc.Web.Admin - - - - - - - - - - - - - -

- - -
- -
- - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/nav/nav.json b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/nav/nav.json deleted file mode 100644 index 1829e716..00000000 --- a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/nav/nav.json +++ /dev/null @@ -1,203 +0,0 @@ -[ - { - "Id": 1, - "Title": "Dashboard", - "Icon": "mdi-trending-up", - "Children": [ - { - "Id": 2, - "Title": "eCommerce", - "Icon": "mdi-circle", - "Href": "dashboard/ecommerce" - }, - { - "Id": 3, - "Hide": true, - "Title": "Analytics", - "Icon": "mdi-circle", - "Href": "dashboard/analytics" - } - ] - }, - { - "Id": 4, - "Title": "eCommerce", - "Icon": "mdi-cart-outline", - "Children": [ - { - "Id": 5, - "Title": "Shop", - "Icon": "mdi-circle", - "Href": "app/ecommerce/shop" - }, - { - "Id": 6, - "Title": "Details", - "Icon": "mdi-circle", - "Href": "app/ecommerce/details" - }, - { - "Id": 7, - "Title": "Order", - "Icon": "mdi-circle", - "Href": "app/ecommerce/order" - } - ] - }, - { - "Id": 8, - "Title": "Todo", - "Icon": "mdi-calendar-check-outline", - "Href": "app/todo" - }, - { - "Id": 9, - "Title": "Invoice", - "Icon": "mdi-content-paste", - "Hide": true, - "Children": [ - { - "Id": 10, - "Title": "List", - "Icon": "mdi-circle", - "Href": "app/invoice/list" - }, - { - "Id": 11, - "Title": "Preview", - "Icon": "mdi-circle", - "Href": "app/invoice/preview" - }, - { - "Id": 12, - "Title": "Edit", - "Icon": "mdi-circle", - "Href": "app/invoice/edit" - }, - { - "Id": 13, - "Title": "Add", - "Icon": "mdi-circle", - "Href": "app/invoice/add" - } - ] - }, - { - "Id": 14, - "Title": "User", - "Icon": "mdi-account-outline", - "Children": [ - { - "Id": 15, - "Title": "List", - "Icon": "mdi-circle", - "Href": "app/user/list" - }, - { - "Id": 16, - "Title": "View", - "Icon": "mdi-circle", - "Href": "app/user/view" - }, - { - "Id": 17, - "Title": "Edit", - "Icon": "mdi-circle", - "Href": "app/user/edit" - } - ] - }, - { - "Id": 18, - "Title": "Auth", - "Icon": "mdi-file-outline", - "Children": [ - { - "Id": 19, - "Title": "Login v1", - "Icon": "mdi-circle", - "Href": "pages/authentication/login-v1" - }, - { - "Id": 20, - "Title": "Login v2", - "Icon": "mdi-circle", - "Href": "pages/authentication/login-v2" - }, - { - "Id": 21, - "Hide": true, - "Title": "Register v1", - "Icon": "mdi-circle", - "Href": "pages/authentication/register-v1" - }, - { - "Id": 22, - "Hide": true, - "Title": "Register v2", - "Icon": "mdi-circle", - "Href": "pages/authentication/register-v2" - }, - { - "Id": 23, - "Hide": true, - "Title": "Forgot Password v1", - "Icon": "mdi-circle", - "Href": "pages/authentication/forgot-password-v1" - }, - { - "Id": 24, - "Hide": true, - "Title": "Forgot Password v2", - "Icon": "mdi-circle", - "Href": "pages/authentication/forgot-password-v2" - }, - { - "Id": 25, - "Hide": true, - "Title": "Reset Password v1", - "Icon": "mdi-circle", - "Href": "pages/authentication/reset-password-v1" - }, - { - "Id": 26, - "Hide": true, - "Title": "Reset Password v2", - "Icon": "mdi-circle", - "Href": "pages/authentication/reset-password-v2" - } - ] - }, - { - "Id": 27, - "Title": "Others", - "Icon": "mdi-dots-horizontal", - "Children": [ - { - "Id": 28, - "Hide": true, - "Title": "Account Settings", - "Icon": "mdi-circle", - "Href": "pages/others/account-settings" - }, - { - "Id": 29, - "Title": "500", - "Icon": "mdi-circle", - "Href": "pages/others/500" - }, - { - "Id": 30, - "Title": "401", - "Icon": "mdi-circle", - "Href": "pages/others/401" - }, - { - "Id": 31, - "Title": "404", - "Icon": "mdi-circle", - "Href": "pages/others/404" - } - ] - } -] diff --git a/src/Web/Masa.Mc.Web.Admin/App.razor b/src/Web/Masa.Mc.Web.Admin/App.razor deleted file mode 100644 index 14b4a160..00000000 --- a/src/Web/Masa.Mc.Web.Admin/App.razor +++ /dev/null @@ -1,28 +0,0 @@ -@inject TokenProvider TokenProvider - - - - - - - - - - - - - - -@code { - [Parameter] - public TokenProvider InitialState { get; set; } = null!; - - protected override Task OnInitializedAsync() - { - TokenProvider.AccessToken = InitialState.AccessToken; - TokenProvider.RefreshToken = InitialState.RefreshToken; - TokenProvider.IdToken = InitialState.IdToken; - return base.OnInitializedAsync(); - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/AutoHeight.razor b/src/Web/Masa.Mc.Web.Admin/Components/AutoHeight.razor deleted file mode 100644 index 2d4a628d..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/AutoHeight.razor +++ /dev/null @@ -1,28 +0,0 @@ -
- @HeaderContent -
- @AutoHeightContent -
- @FooterContent -
- - -@code { - [Parameter] - public RenderFragment? HeaderContent { get; set; } - - [Parameter] - public RenderFragment? AutoHeightContent { get; set; } - - [Parameter] - public RenderFragment? FooterContent { get; set; } - - [Parameter] - public string AutoClass { get; set; } = ""; - - [Parameter] - public string Class { get; set; } = ""; - - [Parameter] - public bool Overflow { get; set; } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/ButtonGroup/BooleanButtonGroup.razor b/src/Web/Masa.Mc.Web.Admin/Components/ButtonGroup/BooleanButtonGroup.razor deleted file mode 100644 index 958d4ddd..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/ButtonGroup/BooleanButtonGroup.razor +++ /dev/null @@ -1,25 +0,0 @@ -@inherits AdminCompontentBase - -@if (StyleType == StyleTypes.Toggle) -{ - - @foreach (var (key, value) in KeyValues) - { - - fa fa-regular fa-mars - @T(key) - - } - -} -else -{ - - @foreach (var (key, value) in KeyValues) - { - - @T(key) - - } - -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/ButtonGroup/BooleanButtonGroup.razor.cs b/src/Web/Masa.Mc.Web.Admin/Components/ButtonGroup/BooleanButtonGroup.razor.cs deleted file mode 100644 index fa11ae06..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/ButtonGroup/BooleanButtonGroup.razor.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Components.ButtonGroup; - -public partial class BooleanButtonGroup -{ - [Parameter] - public bool? Value { get; set; } - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public List> Items { get; set; } = new(); - - [Parameter] - public StyleTypes StyleType { get; set; } - - [Parameter] - public bool Disabled { get; set; } - - public List> KeyValues { get; set; } = new(); - - protected override void OnParametersSet() - { - KeyValues = Items.Any() ? Items : GetBooleanMap(); - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Chip/ColorTag.razor b/src/Web/Masa.Mc.Web.Admin/Components/Chip/ColorTag.razor deleted file mode 100644 index 81c96a21..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Chip/ColorTag.razor +++ /dev/null @@ -1,22 +0,0 @@ -
@ChildContent
- -@code { - [Parameter] - public RenderFragment? ChildContent { get; set; } - - [Parameter] - public string Color { get; set; } = default!; - - [Parameter] - public string Class { get; set; } = default!; - - protected override void OnParametersSet() - { - base.OnParametersSet(); - - if (string.IsNullOrEmpty(Color)) - { - Color = "emphasis2"; - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Clamp.razor b/src/Web/Masa.Mc.Web.Admin/Components/Clamp.razor deleted file mode 100644 index 4b30a92f..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Clamp.razor +++ /dev/null @@ -1,23 +0,0 @@ -@inherits AdminCompontentBase -
@_childContent
- -@code { - [Parameter] - public RenderFragment? ChildContent { get; set; } - - private RenderFragment? _childContent { get; set; } - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - - if (firstRender) - { - await Js.InvokeVoidAsync("$clamp", Ref, new { clamp = "auto" }); - - _childContent = ChildContent; - - StateHasChanged(); - } - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultIcon.cs b/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultIcon.cs deleted file mode 100644 index 67930795..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultIcon.cs +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Components.Default; - -public class DefaultIcon : SIcon -{ - public override async Task SetParametersAsync(ParameterView parameters) - { - Size = 20; - - await base.SetParametersAsync(parameters); - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultSheetDialog.cs b/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultSheetDialog.cs deleted file mode 100644 index b355100c..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultSheetDialog.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Components.Default; - -public class DefaultSheetDialog : SSheetDialog -{ - protected override void OnParametersSet() - { - base.OnParametersSet(); - EnableDomReload = true; - ContentClass ??= ""; - if (ContentClass.Contains("sheetDialogPadding") is false) - ContentClass += " sheetDialogPadding"; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultSubTitle.razor b/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultSubTitle.razor deleted file mode 100644 index 2959ed11..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultSubTitle.razor +++ /dev/null @@ -1,11 +0,0 @@ -
- @ChildContent -
- -@code { - [Parameter] - public RenderFragment? ChildContent { get; set; } - - [Parameter] - public string Class { get; set; } = "mt-9 mb-6"; -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultTitle.razor b/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultTitle.razor deleted file mode 100644 index 33c387d2..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultTitle.razor +++ /dev/null @@ -1,9 +0,0 @@ -@ChildContent - -@code { - [Parameter] - public RenderFragment? ChildContent { get; set; } - - [Parameter] - public string Class { get; set; } = ""; -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultUserAvatar.razor b/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultUserAvatar.razor deleted file mode 100644 index 10da1da3..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Default/DefaultUserAvatar.razor +++ /dev/null @@ -1,13 +0,0 @@ - - - - -@code { - [Parameter] - public string Avatar { get; set; } - - [Parameter] - public StringNumber Size { get; set; } - - private string _defaultAvatar = "https://cdn.masastack.com/stack/images/avatar/mr.chen.svg"; -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Editor/DefaultEditor.razor b/src/Web/Masa.Mc.Web.Admin/Components/Editor/DefaultEditor.razor deleted file mode 100644 index fdf8ed58..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Editor/DefaultEditor.razor +++ /dev/null @@ -1,3 +0,0 @@ -@inherits AdminCompontentBase - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Editor/DefaultEditor.razor.cs b/src/Web/Masa.Mc.Web.Admin/Components/Editor/DefaultEditor.razor.cs deleted file mode 100644 index a38e4328..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Editor/DefaultEditor.razor.cs +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Components.Editor; - -public partial class DefaultEditor : AdminCompontentBase -{ - [Parameter] - public string Value { get; set; } = string.Empty; - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public string ContentClass { get; set; } = default!; - - [Parameter] - public string ContentStyle { get; set; } = default!; - - [Parameter] - public string? Placeholder { get; set; } - - [Parameter] - public bool ReadOnly { get; set; } - - private OssService OssService => McCaller.OssService; - - private MEditor Ref { get; set; } = default!; - - private IJSObjectReference VditorHelper = default!; - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - if (IsDisposed || !firstRender) - { - return; - } - VditorHelper = await Js.InvokeAsync("import", "./_content/Masa.Mc.Web.Admin/js/vditor/quill-helper.js"); - } - - private async Task HandleUploadAsync(List flist) - { - var paramter = await OssService.GetSecurityTokenAsync(); - await VditorHelper.InvokeVoidAsync("upload", Ref.Ref, paramter); - return true; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/ExtraProperties.razor b/src/Web/Masa.Mc.Web.Admin/Components/ExtraProperties.razor deleted file mode 100644 index dbed1ba3..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/ExtraProperties.razor +++ /dev/null @@ -1,83 +0,0 @@ -@inherits AdminCompontentBase - -
- @T("AdditionalFields") - @if (!Readonly) - { - - mdi-plus - - } -
- - @foreach (var item in _items) - { - - - : - - - - - - @if (!Readonly) - { - - mdi-delete - - } - - - - } - - -@code { - [Parameter] - public ExtraPropertyDictionary Value { get; set; } = new(); - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public bool Readonly { get; set; } - - private List _items = new(); - - protected override void OnParametersSet() - { - if (!_items.Any() || (_items.Count == 1 && string.IsNullOrWhiteSpace(_items[0].Name))) - { - _items = Value.Select(x => new ItemDto(x.Key, x.Value?.ToString() ?? string.Empty)).ToList(); - } - - if (!_items.Any()) - { - _items.Add(new ItemDto()); - } - - } - - public async Task HandleChangeAsync() - { - foreach (var item in _items) - { - if (string.IsNullOrWhiteSpace(item.Name)) - continue; - - Value.AddOrUpdate(item.Name, item.Value, (a,b) => item.Value); - } - - await ValueChanged.InvokeAsync(Value); - } - - public void HandleAdd() - { - _items.Add(new ItemDto()); - } - - public void HandleDel(ItemDto item) - { - _items.Remove(item); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/GenericColumnRender/DefaultGenericColumnRender.razor b/src/Web/Masa.Mc.Web.Admin/Components/GenericColumnRender/DefaultGenericColumnRender.razor deleted file mode 100644 index fa62b8ab..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/GenericColumnRender/DefaultGenericColumnRender.razor +++ /dev/null @@ -1,34 +0,0 @@ -@if (Value is DateTime dateTime) -{ - -} -else if (Value is DateTimeOffset dateTimeOffset) -{ - -} -else -{ - if(Width != null) - { -
- - @Value - -
- } - else - { -
@Value
- } -} - -@code { - [Parameter] - public object? Value { get; set; } - - [Parameter] - public StringNumber? Width { get; set; } - - [Inject] - public JsInitVariables JsInitVariables { get; set; } = default!; -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Group/ColorsGroup.razor b/src/Web/Masa.Mc.Web.Admin/Components/Group/ColorsGroup.razor deleted file mode 100644 index 456b67ae..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Group/ColorsGroup.razor +++ /dev/null @@ -1,36 +0,0 @@ -
- @foreach (var item in Colors) - { - @if (Value == item) - { -
- } - else - { -
-
-
- } - } -
- -@code { - [EditorRequired] - [Parameter] - public List Colors { get; set; } = new(); - - [Parameter] - public string Value { get; set; } = string.Empty; - - [Parameter] - public int Size { get; set; } = 20; - - [Parameter] - public EventCallback ValueChanged { get; set; } - - private async Task OnClickHandler(string color) - { - Value = color; - await ValueChanged.InvokeAsync(color); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Lists/DateTimeListItem.razor b/src/Web/Masa.Mc.Web.Admin/Components/Lists/DateTimeListItem.razor deleted file mode 100644 index 1f2e7cc3..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Lists/DateTimeListItem.razor +++ /dev/null @@ -1,12 +0,0 @@ -@inherits AdminCompontentBase - - - @Value?.ToString(T("$DateFormat")) - @Value?.ToString(T("$TimeFormat")) - - - -@code { - [Parameter] - public DateTimeOffset? Value { get; set; } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Markdown/DefaultMarkdown.razor b/src/Web/Masa.Mc.Web.Admin/Components/Markdown/DefaultMarkdown.razor deleted file mode 100644 index e958713a..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Markdown/DefaultMarkdown.razor +++ /dev/null @@ -1,3 +0,0 @@ -@inherits AdminCompontentBase - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Markdown/DefaultMarkdown.razor.cs b/src/Web/Masa.Mc.Web.Admin/Components/Markdown/DefaultMarkdown.razor.cs deleted file mode 100644 index 02c7f30b..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Markdown/DefaultMarkdown.razor.cs +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Components.Markdown; - -public partial class DefaultMarkdown: AdminCompontentBase -{ - [Parameter] - public string Value { get; set; } = string.Empty; - - [Parameter] - public string Html { get; set; } = string.Empty; - - [Parameter] - public bool Reaonly { get; set; } - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public EventCallback HtmlChanged { get; set; } - - private OssService OssService => McCaller.OssService; - - private MMarkdown Ref { get; set; } = default!; - - private IJSObjectReference VditorHelper = default!; - - protected override void OnInitialized() - { - base.OnInitialized(); - } - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - if (IsDisposed || !firstRender) - { - return; - } - VditorHelper = await Js.InvokeAsync("import", "./_content/Masa.Mc.Web.Admin/js/vditor/vditor-helper.js"); - } - - private async Task HandleUploadAsync() - { - var paramter = await OssService.GetSecurityTokenAsync(); - await VditorHelper.InvokeVoidAsync("upload", Ref.Ref, paramter); - } - - public async ValueTask DisposeAsync() - { - try - { - if (VditorHelper != null) - { - await VditorHelper.DisposeAsync(); - } - } - catch (Exception) - { - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/MenuTooltip.razor b/src/Web/Masa.Mc.Web.Admin/Components/MenuTooltip.razor deleted file mode 100644 index c0b2d01c..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/MenuTooltip.razor +++ /dev/null @@ -1,23 +0,0 @@ - - - - mdi-help-circle-outline - - - - @((MarkupString)Tooltip) - - - -@code { - [Parameter] - public string Tooltip { get; set; } - - [Parameter] - public string Class { get; set; } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageRecords/MessageRecordStatusTag.razor b/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageRecords/MessageRecordStatusTag.razor deleted file mode 100644 index 4c974254..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageRecords/MessageRecordStatusTag.razor +++ /dev/null @@ -1,14 +0,0 @@ -@inherits AdminCompontentBase -@if (Value == true) -{ - @T("Success") -} -else if (Value == false) -{ - @T("Failure") -} - -@code { - [Parameter] - public bool? Value { get; set; } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageRecords/MessageRecordStatusTag.razor.css b/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageRecords/MessageRecordStatusTag.razor.css deleted file mode 100644 index 798249e3..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageRecords/MessageRecordStatusTag.razor.css +++ /dev/null @@ -1,10 +0,0 @@ -.tag { - border-radius: 18px; - display: inline-flex; - justify-content: center; - align-items: center; - padding: 8px; - min-width: 56px; - border-radius: 18px; - height: 27px; -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskHistorySelect.razor b/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskHistorySelect.razor deleted file mode 100644 index 2bc9141e..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskHistorySelect.razor +++ /dev/null @@ -1,22 +0,0 @@ -@inherits AdminCompontentBase - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskHistorySelect.razor.cs b/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskHistorySelect.razor.cs deleted file mode 100644 index 83eb556b..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskHistorySelect.razor.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Components.Modules.MessageTasks; - -public partial class MessageTaskHistorySelect : AdminCompontentBase -{ - [Parameter] - public Guid? Value { get; set; } - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public string Placeholder { get; set; } = ""; - - [Parameter] - public string? Label { get; set; } - - [Parameter] - public EventCallback OnClearClick { get; set; } - - [Parameter] - public EventCallback OnSelectedItemUpdate { get; set; } - - private bool _isLoading; - - protected List Items = new(); - - private GetMessageTaskHistoryInputDto _queryParam = new(); - - MessageTaskHistoryService MessageTaskHistoryService => McCaller.MessageTaskHistoryService; - - public async Task UpdateSearchInputAsync(string val) - { - if (Items.Count > 0) return; - if (_isLoading) return; - _isLoading = true; - _queryParam.Filter = val; - Items = (await MessageTaskHistoryService.GetListAsync(_queryParam)).Result; - _isLoading = false; - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskHistoryStatusIcon.razor b/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskHistoryStatusIcon.razor deleted file mode 100644 index 62394769..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskHistoryStatusIcon.razor +++ /dev/null @@ -1,53 +0,0 @@ -@switch (Value) -{ - case MessageTaskHistoryStatuses.WaitSend: - - mdi-clock-outline - - break; - case MessageTaskHistoryStatuses.Sending: - - mdi-dots-horizontal-circle-outline - - break; - case MessageTaskHistoryStatuses.Withdrawn: - - mdi-keyboard-return - - break; - case MessageTaskHistoryStatuses.Success: - - mdi-check-circle-outline - - break; - case MessageTaskHistoryStatuses.Fail: - - mdi-close-circle-outline - - break; - case MessageTaskHistoryStatuses.PartialFailure: - - mdi-minus-circle-outline - - break; -} - -@code { - [Parameter] - public MessageTaskHistoryStatuses Value { get; set; } - - [Parameter] - public StringNumber? Size { get; set; } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskReceiverAutoComplete.razor b/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskReceiverAutoComplete.razor deleted file mode 100644 index e500536c..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskReceiverAutoComplete.razor +++ /dev/null @@ -1,28 +0,0 @@ -@inherits AdminCompontentBase - - - - mdi-magnify - - - @RenderFragments.UserSelectItem(data.Item.Avatar, data.Item.DisplayName, T($"DisplayName.MessageTaskReceiverTypes.{data.Item.Type}"), data.Item.PhoneNumber, data.Item.Email) - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskReceiverAutoComplete.razor.cs b/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskReceiverAutoComplete.razor.cs deleted file mode 100644 index 6480e649..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskReceiverAutoComplete.razor.cs +++ /dev/null @@ -1,56 +0,0 @@ -namespace Masa.Mc.Web.Admin.Components.Modules.MessageTasks; -public partial class MessageTaskReceiverAutoComplete : AdminCompontentBase -{ - [Parameter] - public List SelectedValues { get; set; } = new(); - - [Parameter] - public EventCallback OnRemove { get; set; } - - [Parameter] - public EventCallback OnAdd { get; set; } - - public List Items { get; set; } = new(); - - public string Search { get; set; } = ""; - - MessageTaskService MessageTaskService => McCaller.MessageTaskService; - - public async Task OnSearchChanged(string search) - { - Search = search; - if (Search == "") - { - Items.Clear(); - } - else if (Search == search) - { - var items = await MessageTaskService.GetMessageTaskReceiverListAsync(search); - Items = items.Where(x => !SelectedValues.Contains(x.SubjectId)).ToList(); - } - } - - public string TextView(MessageTaskReceiverDto subject) - { - if (!string.IsNullOrEmpty(subject.DisplayName)) return subject.DisplayName; - if (!string.IsNullOrEmpty(subject.PhoneNumber)) return subject.PhoneNumber; - if (!string.IsNullOrEmpty(subject.Email)) return subject.Email; - return ""; - } - - public void ResetForm() - { - Items = new(); - } - - public void HandleOnSelectedItemUpdate(MessageTaskReceiverDto item) - { - Items.Remove(item); - - if (OnAdd.HasDelegate) - { - OnAdd.InvokeAsync(item); - } - } -} - diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskStatus.razor b/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskStatus.razor deleted file mode 100644 index fdeac037..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTasks/MessageTaskStatus.razor +++ /dev/null @@ -1,33 +0,0 @@ -@inherits AdminCompontentBase -@switch (Value) -{ - case MessageTaskStatuses.WaitSend: - mdi-clock-outline - @T("DisplayName.MessageTaskStatus.WaitSend") - break; - case MessageTaskStatuses.Sending: - mdi-dots-horizontal-circle-outline - @T("DisplayName.MessageTaskStatus.Sending") - break; - case MessageTaskStatuses.Cancel: - mdi-dots-horizontal-circle-outline - @T("DisplayName.MessageTaskStatus.Cancel") - break; - case MessageTaskStatuses.Success: - mdi-checkbox-marked-circle-outline - @T("DisplayName.MessageTaskStatus.Success") - break; - case MessageTaskStatuses.Fail: - mdi-close-circle-outline - @T("DisplayName.MessageTaskStatus.Fail") - break; - case MessageTaskStatuses.PartialFailure: - mdi-minus-circle-outline - @T("DisplayName.MessageTaskStatus.PartialFailure") - break; -} - -@code { - [Parameter] - public MessageTaskStatuses Value { get; set; } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateAuditStatusTag.razor b/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateAuditStatusTag.razor deleted file mode 100644 index 8b2c2a7b..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateAuditStatusTag.razor +++ /dev/null @@ -1,18 +0,0 @@ -@inherits AdminCompontentBase -@switch (Value) -{ - case MessageTemplateAuditStatuses.WaitAudit: - @T("WaitAudit") - break; - case MessageTemplateAuditStatuses.Adopt: - @T("Adopt") - break; - case MessageTemplateAuditStatuses.Fail: - @T("Fail") - break; -} - -@code { - [Parameter] - public MessageTemplateAuditStatuses Value { get; set; } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateSelect.razor b/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateSelect.razor deleted file mode 100644 index 4dd9ef48..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateSelect.razor +++ /dev/null @@ -1,21 +0,0 @@ -@inherits AdminCompontentBase - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateSelect.razor.cs b/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateSelect.razor.cs deleted file mode 100644 index 9b117233..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateSelect.razor.cs +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Components.Modules.MessageTemplates; - -public partial class MessageTemplateSelect : AdminCompontentBase -{ - [Parameter] - public Guid? Value { get; set; } - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public string Placeholder { get; set; } = ""; - - [Parameter] - public string? Label { get; set; } - - [Parameter] - public EventCallback OnClearClick { get; set; } - - [Parameter] - public EventCallback OnSelectedItemUpdate { get; set; } - - private bool _isLoading; - - protected List Items = new(); - - private GetMessageTemplateInputDto _queryParam = new(); - - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - public async Task UpdateSearchInputAsync(string val) - { - if (Items.Count > 0) return; - if (_isLoading) return; - _isLoading = true; - _queryParam.Filter = val; - Items = (await MessageTemplateService.GetListAsync(_queryParam)).Result; - _isLoading = false; - } -} - diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateStatusTag.razor b/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateStatusTag.razor deleted file mode 100644 index bf851bdf..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/MessageTemplates/MessageTemplateStatusTag.razor +++ /dev/null @@ -1,15 +0,0 @@ -@inherits AdminCompontentBase -@switch (Value) -{ - case MessageTemplateStatuses.Invalid: - @T("DisplayName.MessageTemplateStatus.Invalid") - break; - case MessageTemplateStatuses.Normal: - @T("DisplayName.MessageTemplateStatus.Normal") - break; -} - -@code { - [Parameter] - public MessageTemplateStatuses Value { get; set; } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/ExternalUserCreateModal.razor b/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/ExternalUserCreateModal.razor deleted file mode 100644 index 72c87675..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/ExternalUserCreateModal.razor +++ /dev/null @@ -1,25 +0,0 @@ -@inherits AdminCompontentBase -
- - - - - - - - - - @(T("Submit")) - - -
diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/ExternalUserCreateModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/ExternalUserCreateModal.razor.cs deleted file mode 100644 index 3857c58c..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/ExternalUserCreateModal.razor.cs +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Components.Modules.Subjects; - -public partial class ExternalUserCreateModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - [Inject] - public IAuthClient AuthClient { get; set; } = default!; - - private CreateExternalUserDto _model = new(); - private bool _visible; - - private MForm _form; - - public async Task OpenModalAsync() - { - ResetForm(); - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - } - - private void HandleCancel() - { - _visible = false; - _form?.Reset(); - } - - private async Task HandleOk() - { - if (!_form.Validate()) - { - return; - } - - var user = await CreateExternalUserAsync(_model); - - _visible = false; - _form?.Reset(); - - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(user); - } - } - - private void ResetForm() - { - _model = new(); - } - - private async Task CreateExternalUserAsync(CreateExternalUserDto dto) - { - var requestData = new AddUserModel - { - Account = dto.PhoneNumber ?? dto.Email, - Name = dto.DisplayName, - DisplayName = dto.DisplayName, - PhoneNumber = dto.PhoneNumber, - Email = dto.Email - }; - var user = await AuthClient.UserService.AddAsync(requestData); - return user.Adapt(); ; - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/SubjectAutoComplete.razor b/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/SubjectAutoComplete.razor deleted file mode 100644 index a564392b..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/SubjectAutoComplete.razor +++ /dev/null @@ -1,29 +0,0 @@ -@inherits AdminCompontentBase - - - - mdi-magnify - - - @RenderFragments.UserSelectItem(data.Item.Avatar, data.Item.DisplayName, T($"DisplayName.SubjectTypes.{data.Item.SubjectType}"), data.Item.PhoneNumber, data.Item.Email) - - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/SubjectAutoComplete.razor.cs b/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/SubjectAutoComplete.razor.cs deleted file mode 100644 index e7dd0490..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/SubjectAutoComplete.razor.cs +++ /dev/null @@ -1,59 +0,0 @@ -namespace Masa.Mc.Web.Admin.Components.Modules.Subjects; -public partial class SubjectAutoComplete : AdminCompontentBase -{ - [Parameter] - public List SelectedValues { get; set; } = new(); - - [Parameter] - public EventCallback OnAdd { get; set; } - - [Parameter] - public EventCallback OnBlur { get; set; } - - public List Items { get; set; } = new(); - - public string Search { get; set; } = ""; - - [Inject] - public IAuthClient AuthClient { get; set; } = default!; - - public async Task OnSearchChanged(string search) - { - Search = search; - if (Search == "") - { - Items.Clear(); - } - else if (Search == search) - { - var subjects = await AuthClient.SubjectService.GetListAsync(search); - var dtos = subjects.Adapt>(); - Items = dtos.Where(x => !SelectedValues.Contains(x.SubjectId)).ToList(); - } - } - - public string TextView(SubjectDto subject) - { - if (!string.IsNullOrEmpty(subject.Name)) return subject.Name; - if (!string.IsNullOrEmpty(subject.DisplayName)) return subject.DisplayName; - if (!string.IsNullOrEmpty(subject.PhoneNumber)) return subject.PhoneNumber; - if (!string.IsNullOrEmpty(subject.Email)) return subject.Email; - return ""; - } - - public void ResetForm() - { - Items = new(); - } - - public void HandleOnSelectedItemUpdate(SubjectDto item) - { - Items.Remove(item); - - if (OnAdd.HasDelegate) - { - OnAdd.InvokeAsync(item); - } - } -} - diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserAutoComplete.razor b/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserAutoComplete.razor deleted file mode 100644 index 0645298b..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserAutoComplete.razor +++ /dev/null @@ -1,31 +0,0 @@ -@inherits AdminCompontentBase - - - - mdi-magnify - - - @RenderFragments.UserSelectItem(data.Item.Avatar, data.Item.DisplayName, T($"DisplayName.SubjectTypes.User"), data.Item.PhoneNumber, data.Item.Email) - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserAutoComplete.razor.cs b/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserAutoComplete.razor.cs deleted file mode 100644 index 0ee4db91..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserAutoComplete.razor.cs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Components.Modules.Subjects; - -public partial class UserAutoComplete : AdminCompontentBase -{ - [Parameter] - public List Value { get; set; } = new(); - - [Parameter] - public EventCallback> ValueChanged { get; set; } - - public List Items { get; set; } = new(); - - public List UserSelect { get; set; } = new(); - - public string Search { get; set; } = ""; - - [Inject] - public IAuthClient AuthClient { get; set; } = default!; - - public async Task OnSearchChanged(string search) - { - Search = search; - if (Search == "") - { - Items.Clear(); - } - else if (Search == search) - { - var response = await AuthClient.UserService.SearchAsync(search); - Items = response; - } - } - - public string TextView(UserSelectModel user) - { - if (!string.IsNullOrEmpty(user.DisplayName)) return user.DisplayName; - if (!string.IsNullOrEmpty(user.Account)) return user.Account; - if (!string.IsNullOrEmpty(user.PhoneNumber)) return user.PhoneNumber; - if (!string.IsNullOrEmpty(user.Email)) return user.Email; - return ""; - } - - private async Task HandleValueChanged(List value) - { - value = value ?? new(); - var list = Items.Where(x => value.Contains(x.Id)).ToList(); - UserSelect = list; - if (ValueChanged.HasDelegate) - { - await ValueChanged.InvokeAsync(value); - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserSelect.razor b/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserSelect.razor deleted file mode 100644 index 9d843e58..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserSelect.razor +++ /dev/null @@ -1,24 +0,0 @@ -@inherits AdminCompontentBase - - - - @RenderFragments.UserSelectItem(data.Item.Avatar, data.Item.DisplayName, data.Item.Name, data.Item.PhoneNumber, data.Item.Email) - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserSelect.razor.cs b/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserSelect.razor.cs deleted file mode 100644 index 0820bbdc..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Modules/Subjects/UserSelect.razor.cs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Components.Modules.Subjects; - -public partial class UserSelect : AdminCompontentBase -{ - [Parameter] - public Guid? Value { get; set; } - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public string Placeholder { get; set; } = ""; - - [Parameter] - public string Label { get; set; } = default!; - - [Parameter] - public EventCallback OnClearClick { get; set; } - - [Parameter] - public EventCallback OnSelectedItemUpdate { get; set; } - - protected List Items = new(); - - public string Search { get; set; } = ""; - - [Inject] - public IAuthClient AuthClient { get; set; } = default!; - - public async Task OnSearchChanged(string search) - { - Search = search; - if (Search == "") - { - Items.Clear(); - } - else if (Search == search) - { - var response = await AuthClient.UserService.SearchAsync(search); - Items = response; - } - } - - public string TextView(UserSelectModel user) - { - if (!string.IsNullOrEmpty(user.DisplayName)) return user.DisplayName; - if (!string.IsNullOrEmpty(user.Name)) return user.Name; - if (!string.IsNullOrEmpty(user.Account)) return user.Account; - if (!string.IsNullOrEmpty(user.PhoneNumber)) return user.PhoneNumber; - if (!string.IsNullOrEmpty(user.Email)) return user.Email; - return ""; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/RichText/DefaultRichText.razor b/src/Web/Masa.Mc.Web.Admin/Components/RichText/DefaultRichText.razor deleted file mode 100644 index a54f4c87..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/RichText/DefaultRichText.razor +++ /dev/null @@ -1,25 +0,0 @@ -
-
-
-
-
- -
- @((MarkupString)Value) -
-
- -
-
-
- -@code { - [Parameter] - public string Value { get; set; } = string.Empty; - - [Parameter] - public string Label { get; set; } = string.Empty; - - [Parameter] - public int Height { get; set; } = 128; -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/RichText/DefaultRichText.razor.css b/src/Web/Masa.Mc.Web.Admin/Components/RichText/DefaultRichText.razor.css deleted file mode 100644 index cd355ed8..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/RichText/DefaultRichText.razor.css +++ /dev/null @@ -1,15 +0,0 @@ -.content { - position: relative; - color: #333; - font-size: 15px; - line-height: 30px; - width:100%; -} - - .content ::deep p { - margin: 10px 0; - } - - .content ::deep img { - max-width: 100%; - } diff --git a/src/Web/Masa.Mc.Web.Admin/Components/RichText/RichText.razor b/src/Web/Masa.Mc.Web.Admin/Components/RichText/RichText.razor deleted file mode 100644 index b4b30a9a..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/RichText/RichText.razor +++ /dev/null @@ -1,9 +0,0 @@ -
@((MarkupString)Value)
- -@code { - [Parameter] - public string Value { get; set; } = string.Empty; - - [Parameter] - public int Height { get; set; } = 300; -} diff --git a/src/Web/Masa.Mc.Web.Admin/Components/RichText/RichText.razor.css b/src/Web/Masa.Mc.Web.Admin/Components/RichText/RichText.razor.css deleted file mode 100644 index 98bfd3c6..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/RichText/RichText.razor.css +++ /dev/null @@ -1,12 +0,0 @@ -.detail-box { - background: #F0F3FA; - border-radius: 4px; -} - .detail-box .content { - position: relative; - color: #333; - font-size: 15px; - } - .detail-box .content ::deep img { - max-width: 100%; - } diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Selects/BooleanSelect.razor b/src/Web/Masa.Mc.Web.Admin/Components/Selects/BooleanSelect.razor deleted file mode 100644 index 947a6db6..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Selects/BooleanSelect.razor +++ /dev/null @@ -1,15 +0,0 @@ -@inherits AdminCompontentBase - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Selects/BooleanSelect.razor.cs b/src/Web/Masa.Mc.Web.Admin/Components/Selects/BooleanSelect.razor.cs deleted file mode 100644 index ed45e683..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Selects/BooleanSelect.razor.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Components.Selects; - -public partial class BooleanSelect -{ - [Parameter] - public string Placeholder { get; set; } = ""; - - [Parameter] - public string? Label { get; set; } - - [Parameter] - public bool? Value { get; set; } - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public List> Items { get; set; } = new(); - - [Parameter] - public EventCallback OnClearClick { get; set; } - - [Parameter] - public EventCallback> OnSelectedItemUpdate { get; set; } - - public List> KeyValues { get; set; } = new(); - - protected override void OnParametersSet() - { - KeyValues = Items.Any() ? Items : GetBooleanMap(); - } -} - diff --git a/src/Web/Masa.Mc.Web.Admin/Components/StyleTypes.cs b/src/Web/Masa.Mc.Web.Admin/Components/StyleTypes.cs deleted file mode 100644 index 693593e3..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/StyleTypes.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Components; - -public enum StyleTypes -{ - Slider, - Toggle, -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/TextField/DefaultSearch.razor b/src/Web/Masa.Mc.Web.Admin/Components/TextField/DefaultSearch.razor deleted file mode 100644 index a25e04c0..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/TextField/DefaultSearch.razor +++ /dev/null @@ -1,59 +0,0 @@ - - - mdi-magnify - - - -@code { - - [Parameter] - public string? Value { get; set; } - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public string? Class { get; set; } - - [Parameter] - public bool Dense { get; set; } - - [Parameter] - public EventCallback OnEnter { get; set; } - - [Parameter] - public string? Style { get; set; } - - [Parameter] - public string Placeholder { get; set; } = ""; - - [Parameter] - public string BackgroundColor { get; set; } = default!; - - [Parameter] - public bool Clearable { get; set; } - - [Parameter] - public EventCallback OnClearClick { get; set; } - - private async Task HandleOnKeyDown(KeyboardEventArgs args) - { - if (args.Key == "Enter" && OnEnter.HasDelegate) - { - await OnEnter.InvokeAsync(); - } - } - -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Components/Upload/ProgressUpload.razor b/src/Web/Masa.Mc.Web.Admin/Components/Upload/ProgressUpload.razor deleted file mode 100644 index c9a393ac..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Components/Upload/ProgressUpload.razor +++ /dev/null @@ -1,32 +0,0 @@ -@inherits AdminCompontentBase -
- -
- - - - - -
-
-
- -@code { - private int progress = 0; - - private async void HandleFileChange(IBrowserFile file) - { - await using var memoryStream = new MemoryStream(); - await file.OpenReadStream().CopyToAsync(memoryStream); - var fileContent = memoryStream.ToArray(); - progress = 100; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Consts/IconConsts.cs b/src/Web/Masa.Mc.Web.Admin/Consts/IconConsts.cs deleted file mode 100644 index e6001393..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Consts/IconConsts.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Consts; - -public static class IconConsts -{ - public const string J_PUSH_SVG = "M584.282353 169.200941c-63.668706-10.962824-114.447059 7.529412-143.239529 42.104471-92.762353 111.194353-66.800941 439.958588 103.966117 553.803294 46.742588 31.021176-203.474824 107.339294-338.582588 136.734118-135.168 29.274353-206.426353 42.586353-206.426353-12.227765C0 571.151059 291.237647 120.470588 512.903529 120.470588c35.84 0 73.487059 11.745882 111.254589 32.768 29.274353 17.829647 58.608941 39.936 82.642823 61.620706a460.8 460.8 0 0 1 22.287059 13.673412C886.302118 385.505882 1023.819294 670.418824 1024 888.591059c0 24.395294-25.780706-13.492706-68.065882-57.946353-22.407529-23.431529-48.188235-48.730353-74.089412-71.68-65.054118-54.814118-238.170353-214.618353-445.199059-247.68753-2.469647-0.301176-42.465882-176.971294 6.505412-274.492235 31.924706-63.789176 87.461647-75.474824 141.131294-67.584z"; - public const string GETUI_SVG = "M540.928 96.128a69.024 69.024 0 0 1 64.512 9.504c6.24 4.576 10.976 9.28 14.592 14.208 4.448 6.016 7.168 12.352 8.864 19.296 2.336 9.6 2.72 20.256 2.72 32.576 0-18.048 20.48-47.008 33.6-57.792 25.728-21.088 62.176-14.528 84.64 8.416 19.456 19.904 35.168 79.168-6.848 81.344-12.064 0.672-17.6-7.392-24.32-15.04a54.656 54.656 0 0 0-6.848-6.752c-17.568-13.856-31.392-16.896-42.336-12.96-18.176 6.592-28.192 32.576-33.28 60.256a137.28 137.28 0 0 1 56.704 12.544c21.024 9.632 44.672 31.584 51.744 58.24 8.704 32.704 16.8 151.104-1.664 265.184-3.68 0.48-7.36 1.024-11.104 1.6-7.072 1.024-17.44 1.6-27.424 2.144-9.984 0.48-20.288 1.088-28.192 2.144-26.176 3.552-48.128 26.24-48.96 50.624-0.768 20.256 13.312 35.392 37.536 40.416 6.304 1.312 12.896 1.984 19.712 1.984a136.96 136.96 0 0 0 35.84-5.28c-21.632 64.832-32.288 103.264-13.12 145.952 18.016 40.192 49.6 23.712 73.344-2.912 17.952-20.128 32.256-49.248 8.288-77.632-29.024-34.496-51.2-44.576-48.416-63.264 0.544-3.552 1.568-6.848 3.008-9.984 8.32-18.144 30.912-29.536 54.464-28.32 8.608 0.448 17.344 2.56 25.568 6.624 30.688 15.328 53.952 48.928 42.88 77.696 20.736-18.688 46.144-22.368 67.84-10.08 15.232 8.64 29.312 26.016 24.896 47.488-4.16 20.128-72.832 9.408-98.24 58.944-18.624 36.32-39.616 66.272-74.464 86.208v0.704a9.28 9.28 0 0 1-1.696 5.056 17.28 17.28 0 0 1-2.56 2.944 44.48 44.48 0 0 1-6.752 5.12 122.88 122.88 0 0 1-22.72 10.88c-16.672 6.272-44.128 13.76-80.224 13.76-5.504 0-11.104-0.224-16.608-0.544-18.496 2.56-41.184 4.672-65.824 4.672-6.688 0-13.216-0.128-19.68-0.448a173.536 173.536 0 0 1-18.016 0.8c-22.88 0-69.536-3.392-128.32-25.536-74.112-9.056-131.488-38.176-170.56-86.688-34.144-42.336-43.04-86.656-44.992-99.232a161.6 161.6 0 0 1-1.76-23.168c0-1.536 0.032-3.04 0.128-4.512a277.632 277.632 0 0 1-3.616-26.24c-3.008-30.656-2.144-61.024-4.576-90.816a296.544 296.544 0 0 0-3.456-27.52c-5.568-31.616-13.856-27.232-13.856-57.536 0-21.6 15.488-23.2 15.712-42.784 0.32-28.224-3.84-58.72-3.616-87.904 0.192-26.656 5.344-32.928 22.304-54.08 3.84-4.704 8.32-8.864 13.76-12.288 47.84-30.496 112.192-34.816 167.744-37.376 24.096-1.088 128.096-16.16 158.144-20.128 16.32-2.144 31.328-4.288 45.472-5.792 0.32-8.32 0.32-16.576 0.32-25.28 0-14.368-2.048-29.568-13.184-38.72a33.088 33.088 0 0 0-6.496-4.128c-12.288-5.824-19.968-1.984-26.624 4.128-9.6 8.768-16.896 22.208-32.48 17.44-13.664-4.224-19.488-15.456-20.64-29.792a53.76 53.76 0 0 1 7.84-31.168c4.704-7.968 11.072-15.008 18.272-20.192 4.128-3.008 8.48-5.472 12.96-7.072zM408.288 575.04c-2.688 0-5.632 0.32-8.704 0.864-17.376 3.232-25.984 8.64-31.712 19.904-3.392 6.816-5.696 16.352-7.04 29.568 0.224 1.888 0.416 3.712 0.416 5.504l-0.096 2.144c-0.128 4.064-0.224 8.384-0.224 13.12 0 82.656 31.584 152.416 93.824 207.328a307.424 307.424 0 0 0 114.72 62.592l2.048 0.544a392.064 392.064 0 0 0 31.04 0.224c-29.888-10.784-54.912-29.6-75.68-56.928-32.8-43.104-55.808-108.192-70.336-198.944l-0.576-3.904-0.64-3.936-0.608-7.104-0.224-6.784c0-7.136 0.8-13.792 2.272-19.968a196.256 196.256 0 0 0-5.408-10.72c-16.576-29.472-31.712-33.376-43.104-33.472z m-93.472 23.552c-12.992 0.096-23.424 8.288-29.664 23.2l-1.152 3.104a64.096 64.096 0 0 0-2.016 12 221.12 221.12 0 0 0-1.312 25.728c0 24.608 3.36 72.896 25.856 120.064 24.32 50.816 64.192 87.328 118.496 108.512l4.96 1.824a373.568 373.568 0 0 0 95.36 22.912 324.512 324.512 0 0 1-80.64-51.168c-40.096-35.296-68.448-77.728-84.256-125.344a296.288 296.288 0 0 1-14.656-93.28c0-4.064 0.096-8.48 0.256-13.76l0.032-1.536c0-1.888-0.224-3.68-0.48-5.408a31.808 31.808 0 0 0-30.784-26.848z m188-4.192a29.184 29.184 0 0 0-22.496 10.432 41.024 41.024 0 0 0-7.424 13.312 64.96 64.96 0 0 0-3.232 21.056c0 4.8 0.416 9.824 1.216 15.008l0.576 3.712 0.096 0.704c6.304 39.456 14.24 73.888 23.84 103.52 11.872 36.608 26.336 65.952 43.584 88.608 13.344 17.472 28.32 31.04 45.344 40.96 20.16 11.776 43.264 18.496 70.144 20.512l0.64 0.032c5.856 0.416 11.84 0.544 17.6 0.576 13.664 0 25.952-1.12 36.768-2.88a197.408 197.408 0 0 0 33.056-8.16c-4.448-0.448-9.6-1.152-15.488-2.016-27.072-1.312-69.248-8.16-107.104-34.464-50.72-35.136-77.504-96-77.472-176.16 0-13.696 0.864-28.32 2.368-43.36-1.024-4.736-2.016-9.28-2.944-13.248-6.72-28.192-25.216-38.208-39.072-38.208z m-249.984 42.432h-0.928c-4.608 0-12.288 3.904-18.848 14.816-7.168 11.84-11.104 28.224-11.104 46.176 0 6.752 0.544 13.792 1.6 20.928 1.76 11.616 9.984 52.608 41.792 92.032 26.464 32.736 62.144 56.096 106.304 69.76a222.688 222.688 0 0 1-78.752-91.392c-22.592-47.264-27.328-94.88-27.328-126.528 0-8.032 0.352-15.808 0.928-22.816-2.496-1.568-6.528-2.88-13.664-3.008z m314.848 1.056c-0.896 0-2.464 0.768-4.288 2.816a25.472 25.472 0 0 0-3.232 4.576c0 0.096-0.032 0.128-0.096 0.224-1.6 15.424-2.464 30.144-2.464 43.712 0.032 4.96 0.128 9.76 0.352 14.528 2.944 68.448 26.656 118.624 70.592 149.28 5.824 4.032 11.68 7.584 17.888 10.752-19.52-15.232-34.4-35.744-44.256-61.152a221.536 221.536 0 0 1-11.68-44.544c-3.616-21.952-4.672-43.488-5.504-62.272a454.4 454.4 0 0 0-1.824-28.8c-1.216-10.944-3.04-15.808-4.352-18.016a34.208 34.208 0 0 0-7.584-9.504c-2.112-1.6-3.104-1.6-3.552-1.6z m-390.336 11.104c-96.288-61.12-170.048-172.352-53.952-106.08 21.024 11.968 40.96 18.592 62.048 24.32 2.432 29.376 1.568 59.328 4.48 89.568-4.256-2.56-8.512-5.184-12.576-7.808z m627.712-83.424c32-13.792 37.056-9.216 37.856-7.488 1.76 3.808-4.256 14.656-21.6 30.336a272.064 272.064 0 0 1-60.16 40.512c-26.528 12.96-61.024 26.976-92.544 20.48-17.44-3.616-27.2-13.344-26.688-26.656 0.576-17.376 17.92-34.848 37.056-37.44 7.264-0.992 17.152-1.536 26.688-2.048 10.208-0.544 20.736-1.088 28.352-2.24 5.056-0.768 9.952-1.376 14.688-2.048 19.84-2.688 36.992-5.024 56.352-13.344z m-149.088-173.824a11.936 11.936 0 0 0-14.752 5.408c-1.792 2.816-2.272 5.472-1.472 7.808 1.472 4.128 6.4 5.728 10.784 7.168 1.216 0.416 2.432 0.768 3.456 1.216 6.752 2.88 13.408 8.832 12.416 13.184-6.496 29.472-49.632 26.464-153.888 19.296-8.48-0.576-17.28-1.216-26.528-1.792a726.208 726.208 0 0 0-95.616-0.672c-29.44 1.824-56.032 5.568-81.344 11.296-19.936 4.576-37.952 10.176-54.976 17.152a265.216 265.216 0 0 0-32.128 15.808l-4.704 2.72a108.736 108.736 0 0 1-3.808 2.272l-1.12 0.64-1.344 0.8a16.448 16.448 0 0 1 1.024-4.032c7.264-19.584 3.328-22.944 1.984-24l-1.216-1.088-1.472 0.704c-3.008 1.376-4.48 5.792-6.176 11.84-0.48 1.6-0.896 3.136-1.248 4a124.928 124.928 0 0 1-1.696 3.616c-1.696 3.68-3.456 7.424-4.48 11.616-1.376 6.08 0.128 11.008 4.064 13.216a9.696 9.696 0 0 0 4.96 1.248c5.344 0 11.328-3.232 14.784-6.08 23.712-19.392 88.224-43.04 173.92-49.248 37.632-2.688 75.168 1.792 114.944 6.592 34.688 4.128 70.528 8.416 107.392 7.744 54.112-0.992 59.904-33.6 60.352-43.552 0.768-15.04-11.52-31.392-22.144-34.912z m-125.024 94.816c-145.568-41.696-199.456-4.96-199.456-4.96 82.656-19.936 199.456 4.96 199.456 4.96zM279.136 283.264c-25.216 0-45.792 27.968-45.792 62.272 0 34.368 20.576 62.304 45.792 62.304 25.28 0 45.824-27.968 45.824-62.304 0-34.304-20.576-62.272-45.824-62.272z m-1.28 13.696c18.016 0 32.608 21.824 32.608 48.608s-14.592 48.576-32.608 48.576-32.672-21.76-32.672-48.576S259.84 296.96 277.856 296.96z m304.416-54.56c-26.464 0-48.064 29.312-48.064 65.376 0 36.032 21.6 65.376 48.064 65.376s48.032-29.344 48.032-65.376c0-8.064-1.088-15.712-3.008-22.848-4.736-17.28-14.784-31.136-27.36-37.952a37.056 37.056 0 0 0-17.664-4.576z m0.032 14.496c18.816 0 34.08 22.816 34.08 50.848 0 28-15.264 50.816-34.08 50.816s-34.144-22.816-34.144-50.816c0-28.032 15.328-50.848 34.144-50.848zM270.4 305.152c-9.184 0-16.608 10.56-16.608 23.552s7.424 23.552 16.608 23.552c9.184 0 16.608-10.56 16.608-23.552s-7.424-23.552-16.608-23.552z m304.064-39.872c-9.632 0-17.472 11.072-17.472 24.768 0 13.664 7.84 24.736 17.472 24.736 9.664 0 17.504-11.072 17.504-24.736 0-13.696-7.84-24.768-17.504-24.768z m33.728-145.44c20.8 31.008 13.632 97.088 13.632 97.088s7.136-15.68 7.136-46.688c0-35.744-20.736-50.4-20.736-50.4z m141.792 45.6c-12.096-47.424-66.976-31.712-78.368-27.872l-2.08 0.736c34.368-6.368 55.296 17.248 56.224 35.808 0.896 18.496 32.384 23.168 24.224-8.64z m-154.432-38.528c-13.664-28.32-58.912-34.048-78.144-1.824-20.352 34.144 4.352 50.528 19.04 37.312 6.368-5.696 1.312-21.632 12.672-33.792 8.96-9.536 29.536-17.216 46.4-1.696z"; -} diff --git a/src/Web/Masa.Mc.Web.Admin/Global/Config/GlobalConfig.cs b/src/Web/Masa.Mc.Web.Admin/Global/Config/GlobalConfig.cs deleted file mode 100644 index d5e4320f..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Global/Config/GlobalConfig.cs +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -using Masa.Mc.Web.Admin.Shared; - -namespace Masa.Mc.Web.Admin.Global -{ - public class GlobalConfig - { - #region Field - - private bool _Loading; - - #endregion - - #region Property - - public bool Loading - { - get => _Loading; - set - { - if (_Loading != value) - { - _Loading = value; - OnLoadingChanged?.Invoke(_Loading, LoadingText); - } - } - } - - public string LoadingText = string.Empty; - - public bool ThrottleFlag { get; set; } - - #endregion - - - #region event - - public delegate void GlobalConfigChanged(); - public delegate void LoadingChanged(bool loading, string loadingText); - - public event LoadingChanged? OnLoadingChanged; - - #endregion - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Global/Config/PageModes.cs b/src/Web/Masa.Mc.Web.Admin/Global/Config/PageModes.cs deleted file mode 100644 index 15d86d8f..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Global/Config/PageModes.cs +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Global.Config -{ - public static class PageModes - { - public const string PageTab = "PageTab"; - public const string Breadcrumb = "Breadcrumb"; - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Global/ServiceCollectionExtensions.cs b/src/Web/Masa.Mc.Web.Admin/Global/ServiceCollectionExtensions.cs deleted file mode 100644 index 7bbb93e4..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Global/ServiceCollectionExtensions.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Microsoft.Extensions.DependencyInjection -{ - public static class ServiceCollectionExtensions - { - public static IServiceCollection AddGlobalForServer(this IServiceCollection services) - { - services.AddScoped(); - return services; - } - - public static IServiceCollection AddGlobalForWasmAsync(this IServiceCollection services, string baseUri) - { - services.AddScoped(); - return services; - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Masa.Mc.Web.Admin.csproj b/src/Web/Masa.Mc.Web.Admin/Masa.Mc.Web.Admin.csproj deleted file mode 100644 index d915f992..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Masa.Mc.Web.Admin.csproj +++ /dev/null @@ -1,43 +0,0 @@ - - - - net6.0 - enable - enable - - - - - - - - - - - - - - - - - - - - - - - - - - - Always - - - Always - - - Always - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/Model/AppMessageOptions.cs b/src/Web/Masa.Mc.Web.Admin/Model/AppMessageOptions.cs deleted file mode 100644 index 8dda9904..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Model/AppMessageOptions.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Model; - -public class AppMessageOptions -{ - public bool IsWebsiteMessage { get; set; } - - public string IntentUrl { get; set; } = string.Empty; - - public bool IsApnsProduction { get; set; } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Model/AppTemplateModel.cs b/src/Web/Masa.Mc.Web.Admin/Model/AppTemplateModel.cs deleted file mode 100644 index dd8d150d..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Model/AppTemplateModel.cs +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Model; - -public class AppTemplateModel : MessageTemplateDto -{ - public new AppMessageOptions Options { get; set; } = new(); -} diff --git a/src/Web/Masa.Mc.Web.Admin/Model/AppTemplateUpsertModel.cs b/src/Web/Masa.Mc.Web.Admin/Model/AppTemplateUpsertModel.cs deleted file mode 100644 index f0ad81f3..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Model/AppTemplateUpsertModel.cs +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Model; - -public class AppTemplateUpsertModel: MessageTemplateUpsertDto -{ - public new AppMessageOptions Options { get; set; } = new(); -} diff --git a/src/Web/Masa.Mc.Web.Admin/Model/MessageTaskUpsertModel.cs b/src/Web/Masa.Mc.Web.Admin/Model/MessageTaskUpsertModel.cs deleted file mode 100644 index 1d730c28..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Model/MessageTaskUpsertModel.cs +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Model; - -public class MessageTaskUpsertModel -{ - public string DisplayName { get; set; } = string.Empty; - - public Guid? ChannelId { get; set; } - - public ChannelTypes? ChannelType { get; set; } - - public MessageEntityTypes EntityType { get; set; } - - public Guid EntityId { get; set; } - - public bool IsDraft { get; set; } - - public bool IsEnabled { get; set; } - - public ReceiverTypes ReceiverType { get; set; } - - public MessageTaskSelectReceiverTypes SelectReceiverType { get; set; } = MessageTaskSelectReceiverTypes.ManualSelection; - - public string Sign { get; set; } = string.Empty; - - public List Receivers { get; set; } = new(); - - public SendRuleDto SendRules { get; set; } = new(); - - public MessageInfoUpsertDto MessageInfo { get; set; } = new(); - - public ExtraPropertyDictionary Variables { get; set; } = new(); - - public int Step { get; set; } = 1; - - public string SystemId { get; set; } = string.Empty; - - public AppMessageOptions ExtraProperties { get; set; } = new(); - - public bool ComputedJumpUrlShow - { - get - { - return ChannelType == ChannelTypes.WebsiteMessage || (ChannelType == ChannelTypes.App && ExtraProperties.IsWebsiteMessage) || (ChannelType == ChannelTypes.WeixinWork && MessageInfo.Type == (int)WeixinWorkTemplateTypes.TextCard); - } - } - - public bool ComputedTitleShow - { - get - { - return !(ChannelType == ChannelTypes.Sms || (ChannelType == ChannelTypes.WeixinWork && MessageInfo.Type == (int)WeixinWorkTemplateTypes.Text) || ChannelType == ChannelTypes.WeixinWorkWebhook); - } - } - - public bool ComputedJumpUrlRequired - { - get - { - return ChannelType == ChannelTypes.WeixinWork && MessageInfo.Type == (int)WeixinWorkTemplateTypes.TextCard; - } - } - - public bool ComputedMarkdown - { - get - { - return ChannelType != ChannelTypes.App && ChannelType != ChannelTypes.WeixinWork && ChannelType != ChannelTypes.WeixinWorkWebhook; - } - } - - public bool ComputedBroadcast - { - get - { - return ChannelType == ChannelTypes.WebsiteMessage || ChannelType == ChannelTypes.App || ChannelType == ChannelTypes.WeixinWork || ChannelType == ChannelTypes.WeixinWorkWebhook; - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Model/Validator/MessageTaskUpsertModelValidator.cs b/src/Web/Masa.Mc.Web.Admin/Model/Validator/MessageTaskUpsertModelValidator.cs deleted file mode 100644 index 97750b61..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Model/Validator/MessageTaskUpsertModelValidator.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Model.Validator; - -public class MessageTaskUpsertModelValidator : AbstractValidator -{ - public MessageTaskUpsertModelValidator() - { - RuleFor(model => model.ChannelType).Required("ChannelTypeRequired").When(m => m.Step == 1 && !m.IsDraft); - RuleFor(model => model.ChannelId).Required("ChannelIdRequired").When(m => m.Step == 1 && !m.IsDraft); - RuleFor(model => model.EntityId).Required("MessageTemplateRequired").When(m => m.EntityType == MessageEntityTypes.Template && m.Step == 1 && !m.IsDraft); - RuleFor(model => model.EntityType).IsInEnum().WithMessage("MessageTypeRequired").When(m => m.Step == 1 && !m.IsDraft); - RuleFor(model => model.MessageInfo).SetValidator(new MessageInfoUpsertDtoValidator()).When(m => m.EntityType == MessageEntityTypes.Ordinary && m.Step == 1 && !m.IsDraft); - - RuleFor(model => model.ReceiverType).IsInEnum().WithMessage("ReceiverTypeRequired").When(m => m.Step == 2 && !m.IsDraft); - RuleFor(model => model.SelectReceiverType).IsInEnum().WithMessage("SelectReceiverTypeRequired").When(m => m.Step == 2 && !m.IsDraft); - RuleFor(model => model.Receivers).Required("ReceiversRequired").When(m => m.ReceiverType == ReceiverTypes.Assign && m.Step == 2 && !m.IsDraft); - - RuleFor(model => model.Sign).Required("SignRequired").ChineseLetterNumber().Length(2, 12).When(m => m.ChannelType == ChannelTypes.Sms && m.Step == 3 && !m.IsDraft); - RuleFor(model => model.SendRules).SetValidator(new SendRuleDtoValidator()).When(m => m.Step == 3 && !m.IsDraft); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/ChannelManagement.razor b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/ChannelManagement.razor deleted file mode 100644 index 5f6f4509..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/ChannelManagement.razor +++ /dev/null @@ -1,33 +0,0 @@ -@inherits AdminCompontentBase -@page "/channels/channelManagement" - -@T("Permission.ChannelManagement") - - - - - @T("Title") - - - - - @if (_entities.Result.Any()) - { -
- @foreach (var _entitie in _entities.Result) - { -
- -
- } -
- } - else - { - - } -
-
- - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/ChannelManagement.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/ChannelManagement.razor.cs deleted file mode 100644 index 43266953..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/ChannelManagement.razor.cs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.Channels; - -public partial class ChannelManagement : AdminCompontentBase -{ - private ChannelEditModal _editModal = default!; - private ChannelCreateModal _createModal = default!; - private GetChannelInputDto _queryParam = new(999); - private PaginatedListDto _entities = new(); - - ChannelService ChannelService => McCaller.ChannelService; - - protected override string? PageName { get; set; } = "ChannelBlock"; - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - await LoadData(); - } - await base.OnAfterRenderAsync(firstRender); - } - - private async Task LoadData() - { - Loading = true; - _entities = (await ChannelService.GetListAsync(_queryParam)); - Loading = false; - StateHasChanged(); - } - - private async Task HandleOk() - { - await LoadData(); - } - - private async Task RefreshAsync() - { - _queryParam.Page = 1; - await LoadData(); - } - - private async Task HandleClearAsync() - { - _queryParam=new(15); - await LoadData(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelAppExtraProperties.razor b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelAppExtraProperties.razor deleted file mode 100644 index fb83b956..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelAppExtraProperties.razor +++ /dev/null @@ -1,56 +0,0 @@ -@inherits AdminCompontentBase - - @if (!IsAdd) - { - - - - @foreach (var item in GetEnumList()) - { - - - } - - - - } - - @if (_model.Provider == AppChannelProviders.GeTui) - { - - - - - } - - - - - @if (_model.Provider == AppChannelProviders.GeTui) - { - - - - - } - - - - - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelAppExtraProperties.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelAppExtraProperties.razor.cs deleted file mode 100644 index ae32e279..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelAppExtraProperties.razor.cs +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.Channels.Modules; - -public partial class ChannelAppExtraProperties : AdminCompontentBase -{ - [Parameter] - public ExtraPropertyDictionary Value { get; set; } = new(); - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public bool PasswordView { get; set; } - - [Parameter] - public bool IsAdd { get; set; } - - public MForm? Form { get; set; } - - private AppChannelOptions _model = new(); - private bool _passwordShow; - - protected override async Task OnInitializedAsync() - { - await base.OnInitializedAsync(); - - _model = ExtensionPropertyHelper.ConvertToType(Value); - } - - protected override void OnParametersSet() - { - if (_model.Provider == default && Value.HasProperty(nameof(AppChannelOptions.Provider))) - { - var provider = Value.GetProperty(nameof(AppChannelOptions.Provider)); - - _model.Provider = (AppChannelProviders)Enum.Parse(typeof(AppChannelProviders), provider); - } - } - - public async Task HandleChangeAsync() - { - Value = ExtensionPropertyHelper.ConvertToExtraProperty(_model); - await ValueChanged.InvokeAsync(Value); - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelCard.razor b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelCard.razor deleted file mode 100644 index 7564f991..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelCard.razor +++ /dev/null @@ -1,50 +0,0 @@ -@inherits AdminCompontentBase - - - - - @T(Channel.Type.ToString()) - - - - mdi-pencil - - - - - -
@Channel.DisplayName
-
@Channel.Code
-
-
- @if (!string.IsNullOrEmpty(Channel.Description)) - { -
@Channel.Description
- } -
- - - @Channel.ModificationTime.Humanize(culture:I18n.Culture) - - - - @Channel.ModifierName - -
- -@code { - [Parameter] - public EventCallback OnEditClick { get; set; } - - [EditorRequired] - [Parameter] - public ChannelDto Channel { get; set; } = null!; - - private async Task HandleEditClick() - { - if (OnEditClick.HasDelegate) - { - await OnEditClick.InvokeAsync(); - } - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelCreateModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelCreateModal.razor deleted file mode 100644 index 6bf22998..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelCreateModal.razor +++ /dev/null @@ -1,122 +0,0 @@ -@inherits AdminCompontentBase -
- - - - - - - -
@T("Description.Channel.Type.Required")
- - - - - - - - - - - - - - - - - - - - -
-
- - -
@T("DisplayName.AppChannelProviders")
- - @foreach (var item in GetEnumList()) - { - - - - @if (context.Hover) - { - @(item == AppChannelProviders.GeTui ? IconConsts.GETUI_SVG : IconConsts.J_PUSH_SVG) -
@T($"DisplayName.AppChannelProviders.{item.ToString()}")
- } - else if (_model.ExtraProperties.GetProperty(nameof(AppChannelOptions.Provider)) == (int)item) - { - @(item == AppChannelProviders.GeTui ? IconConsts.GETUI_SVG : IconConsts.J_PUSH_SVG) -
@T($"DisplayName.AppChannelProviders.{item.ToString()}")
- } - else - { - @(item == AppChannelProviders.GeTui ? IconConsts.GETUI_SVG : IconConsts.J_PUSH_SVG) -
@T($"DisplayName.AppChannelProviders.{item.ToString()}")
- } -
-
-
- } -
-
-
- - - - - - - - - - - - - - - - - - - - - - -
@T("DisplayName.Color.Lable")
-
- - - - - - - -
-
-
-
-
-
- - @if (_step > 1) - { - - mdi-keyboard-backspace - - } - - - @if (_step == 3) - { - @T("Submit") - } - -
-
diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelCreateModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelCreateModal.razor.cs deleted file mode 100644 index 4bed22d7..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelCreateModal.razor.cs +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.Channels.Modules; - -public partial class ChannelCreateModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm? _form; - private ChannelUpsertDto _model = new(); - private bool _visible; - private List _colors = new List { "purple", "green", "yellow", "red", "blue" }; - private ChannelExtraProperties _channelExtraPropertiesRef = default!; - - int _step = 1; - - Dictionary _svgAttributes = new Dictionary { ["viewBox"] = "0 0 1024 1024" }; - - ChannelService ChannelService => McCaller.ChannelService; - - protected override string? PageName { get; set; } = "ChannelBlock"; - - private int _nextStep - { - get - { - return _model.Type == ChannelTypes.App ? 2 : 3; - } - } - - private int _previousStep - { - get - { - if (_step == 3) - { - return _model.Type == ChannelTypes.App ? 2 : 1; - } - else - { - return 1; - } - } - } - - public async Task OpenModalAsync() - { - _model.Color = _colors[0]; - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - - _form?.ResetValidation(); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private void HandleSelectType(ChannelTypes Type) - { - _model.Type = Type; - - _step = _nextStep; - } - - private async Task HandleOkAsync() - { - Check.NotNull(_form, "form not found"); - - await _channelExtraPropertiesRef.UpdateExtraPropertiesAsync(); - if (!_form.Validate() || !_channelExtraPropertiesRef.Validate()) - { - return; - } - Loading = true; - await ChannelService.CreateAsync(_model); - Loading = false; - await SuccessMessageAsync(T("ChannelCreateMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _step = 1; - _model = new(); - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private void HandleAppSelectType(AppChannelProviders Type) - { - _model.ExtraProperties.SetProperty(nameof(AppChannelOptions.Provider), (int)Type); - _step = 3; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEditModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEditModal.razor deleted file mode 100644 index eeffd675..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEditModal.razor +++ /dev/null @@ -1,56 +0,0 @@ -@inherits AdminCompontentBase -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@T("DisplayName.Color.Lable")
-
- - - - - - - -
-
-
-
-
diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEditModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEditModal.razor.cs deleted file mode 100644 index 4ed39599..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEditModal.razor.cs +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.Channels.Modules; - -public partial class ChannelEditModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm _form = default!; - private ChannelUpsertDto _model = new(); - private Guid _entityId; - private bool _visible; - private List channelTypeItems = Enum.GetValues(typeof(ChannelTypes)) - .Cast().ToList(); - private List _colors = new List { "purple", "green", "yellow", "red", "blue" }; - private ChannelExtraProperties _channelExtraPropertiesRef = default!; - - ChannelService ChannelService => McCaller.ChannelService; - - protected override string? PageName { get; set; } = "ChannelBlock"; - - public async Task OpenModalAsync(ChannelDto model) - { - _entityId = model.Id; - _model = model.Adapt(); - _model.Scheme = "Ldap"; - await GetFormDataAsync(); - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - } - - private async Task GetFormDataAsync() - { - var dto = await ChannelService.GetAsync(_entityId) ?? new(); - _model = dto.Adapt(); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleOk() - { - await _channelExtraPropertiesRef.UpdateExtraPropertiesAsync(); - if (!_form.Validate() || !_channelExtraPropertiesRef.Validate()) - { - return; - } - Loading = true; - await ChannelService.UpdateAsync(_entityId, _model); - Loading = false; - _visible = false; - ResetForm(); - await SuccessMessageAsync(T("ChannelEditMessage")); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private async Task HandleDel() - { - await ConfirmAsync(T("DeletionConfirmationMessage", $"{T("Channel")}\"{_model.DisplayName}\""), DeleteAsync, AlertTypes.Error); - } - private async Task DeleteAsync() - { - Loading = true; - await ChannelService.DeleteAsync(_entityId); - Loading = false; - await SuccessMessageAsync(T("ChannelDeleteMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - private void ResetForm() - { - _model = new(); - _form.ResetValidation(); - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEmailExtraProperties.razor b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEmailExtraProperties.razor deleted file mode 100644 index a8e2c885..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEmailExtraProperties.razor +++ /dev/null @@ -1,38 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - - - - - - - - - - - -
- -
-
- - - - -
-
-
-
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEmailExtraProperties.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEmailExtraProperties.razor.cs deleted file mode 100644 index 47aa6c3a..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelEmailExtraProperties.razor.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.Channels.Modules; - -public partial class ChannelEmailExtraProperties : AdminCompontentBase -{ - [Parameter] - public ExtraPropertyDictionary Value { get; set; } = new(); - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public bool PasswordView { get; set; } - - public MForm Form { get; set; } = default!; - - private EmailChannelOptions _model = new(); - private bool _passwordShow; - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - _model = ExtensionPropertyHelper.ConvertToType(Value); - } - await base.OnAfterRenderAsync(firstRender); - } - - public async Task HandleChangeAsync() - { - Value = ExtensionPropertyHelper.ConvertToExtraProperty(_model); - await ValueChanged.InvokeAsync(Value); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelExtraProperties.razor b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelExtraProperties.razor deleted file mode 100644 index 8783cc3e..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelExtraProperties.razor +++ /dev/null @@ -1,22 +0,0 @@ -@inherits AdminCompontentBase - -@if (Type == ChannelTypes.Email) -{ - -} -else if (Type == ChannelTypes.Sms) -{ - -} -else if (Type == ChannelTypes.App) -{ - -} -else if (Type == ChannelTypes.WeixinWork) -{ - -} -else if (Type == ChannelTypes.WeixinWorkWebhook) -{ - -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelExtraProperties.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelExtraProperties.razor.cs deleted file mode 100644 index 81145ebd..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelExtraProperties.razor.cs +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.Channels.Modules; - -public partial class ChannelExtraProperties : AdminCompontentBase -{ - [Parameter] - public ChannelTypes Type { get; set; } - - [Parameter] - public ExtraPropertyDictionary Value - { - get - { - return GetValue(); - } - set - { - SetValue(value); - } - } - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public bool PasswordView { get; set; } - - [Parameter] - public bool IsAdd { get; set; } - - private ChannelEmailExtraProperties? _emailExtraPropertiesRef; - private ChannelSmsExtraProperties? _smsExtraPropertiesRef; - private ChannelAppExtraProperties? _appExtraPropertiesRef; - private ChannelWeixinWorkExtraProperties? _weixinWorkExtraPropertiesRef; - private ChannelWeixinWorkWebhookExtraProperties? _weixinWorkWebhookExtraPropertiesRef; - - public void HandleChangeAsync(string value, string key) - { - Value[key] = value; - } - - public async Task UpdateExtraPropertiesAsync() - { - if (Type == ChannelTypes.Email && _emailExtraPropertiesRef != null) - { - await _emailExtraPropertiesRef.HandleChangeAsync(); - } - if (Type == ChannelTypes.Sms && _smsExtraPropertiesRef != null) - { - await _smsExtraPropertiesRef.HandleChangeAsync(); - } - if (Type == ChannelTypes.App && _appExtraPropertiesRef != null) - { - await _appExtraPropertiesRef.HandleChangeAsync(); - } - if (Type == ChannelTypes.WeixinWork && _weixinWorkExtraPropertiesRef != null) - { - await _weixinWorkExtraPropertiesRef.HandleChangeAsync(); - } - if (Type == ChannelTypes.WeixinWorkWebhook && _weixinWorkWebhookExtraPropertiesRef != null) - { - await _weixinWorkWebhookExtraPropertiesRef.HandleChangeAsync(); - } - await ValueChanged.InvokeAsync(Value); - } - - public bool Validate() - { - if (Type == ChannelTypes.Email && _emailExtraPropertiesRef != null) - { - return _emailExtraPropertiesRef.Form.Validate(); - } - if (Type == ChannelTypes.Sms && _smsExtraPropertiesRef != null) - { - return _smsExtraPropertiesRef.Form.Validate(); - } - if (Type == ChannelTypes.App && _appExtraPropertiesRef != null && _appExtraPropertiesRef.Form != null) - { - return _appExtraPropertiesRef.Form.Validate(); - } - if (Type == ChannelTypes.WeixinWork && _weixinWorkExtraPropertiesRef != null && _weixinWorkExtraPropertiesRef.Form != null) - { - return _weixinWorkExtraPropertiesRef.Form.Validate(); - } - if (Type == ChannelTypes.WeixinWorkWebhook && _weixinWorkWebhookExtraPropertiesRef != null && _weixinWorkWebhookExtraPropertiesRef.Form != null) - { - return _weixinWorkWebhookExtraPropertiesRef.Form.Validate(); - } - return true; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelSelectCard.razor b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelSelectCard.razor deleted file mode 100644 index 6ce1e40a..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelSelectCard.razor +++ /dev/null @@ -1,39 +0,0 @@ -@inherits AdminCompontentBase - - - - @if (context.Hover) - { - @Icon -
@Text
- } - else if (Value == Type) - { - @Icon -
@Text
- } - else - { - @Icon -
@Text
- } -
-
- -@code { - [Parameter] - public ChannelTypes Value { get; set; } - - [Parameter] - public string Text { get; set; } = string.Empty; - - [Parameter] - public ChannelTypes Type { get; set; } - - [Parameter] - public string Icon { get; set; } = string.Empty; - - [Parameter] - public EventCallback ValueChanged { get; set; } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelSmsExtraProperties.razor b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelSmsExtraProperties.razor deleted file mode 100644 index 1037e761..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelSmsExtraProperties.razor +++ /dev/null @@ -1,19 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelSmsExtraProperties.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelSmsExtraProperties.razor.cs deleted file mode 100644 index e314a16d..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelSmsExtraProperties.razor.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.Channels.Modules; - -public partial class ChannelSmsExtraProperties : AdminCompontentBase -{ - [Parameter] - public ExtraPropertyDictionary Value { get; set; } = new(); - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public bool PasswordView { get; set; } - - public MForm Form { get; set; } = default!; - - private SmsChannelOptions _model = new(); - private bool _passwordShow; - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - _model = ExtensionPropertyHelper.ConvertToType(Value); - } - await base.OnAfterRenderAsync(firstRender); - } - - public async Task HandleChangeAsync() - { - Value = ExtensionPropertyHelper.ConvertToExtraProperty(_model); - await ValueChanged.InvokeAsync(Value); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelWeixinWorkExtraProperties.razor b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelWeixinWorkExtraProperties.razor deleted file mode 100644 index d5e6c0ba..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelWeixinWorkExtraProperties.razor +++ /dev/null @@ -1,56 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - - - - - - - - - - - -@code { - [Parameter] - public ExtraPropertyDictionary Value { get; set; } = new(); - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public bool PasswordView { get; set; } - - public MForm Form { get; set; } = default!; - - private WeixinWorkChannelOptions _model = new(); - private bool _passwordShow; - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - _model = ExtensionPropertyHelper.ConvertToType(Value); - } - await base.OnAfterRenderAsync(firstRender); - } - - public async Task HandleChangeAsync() - { - Value = ExtensionPropertyHelper.ConvertToExtraProperty(_model); - await ValueChanged.InvokeAsync(Value); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelWeixinWorkWebhookExtraProperties.razor b/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelWeixinWorkWebhookExtraProperties.razor deleted file mode 100644 index 693eeb2f..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/Channels/Modules/ChannelWeixinWorkWebhookExtraProperties.razor +++ /dev/null @@ -1,42 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - - - -@code { - [Parameter] - public ExtraPropertyDictionary Value { get; set; } = new(); - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public bool PasswordView { get; set; } - - public MForm Form { get; set; } = default!; - - private WeixinWorkWebhookChannelOptions _model = new(); - private bool _passwordShow; - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - _model = ExtensionPropertyHelper.ConvertToType(Value); - } - await base.OnAfterRenderAsync(firstRender); - } - - public async Task HandleChangeAsync() - { - Value = ExtensionPropertyHelper.ConvertToExtraProperty(_model); - await ValueChanged.InvokeAsync(Value); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/MessageRecordManagement.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/MessageRecordManagement.razor deleted file mode 100644 index 8f883c48..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/MessageRecordManagement.razor +++ /dev/null @@ -1,104 +0,0 @@ -@inherits AdminCompontentBase -@page "/messageRecords/messageRecordManagement" - -@T("Permission.MessageRecord") - - - - - @T("Title") - - - - - - - - - - - - - - - - - - - - - - - - - - - @header.Text - - - @switch (context.Header.Value) - { - case ("Receiver"): - - - - - - - @(!string.IsNullOrEmpty(context.Item.User.DisplayName) ? context.Item.User.DisplayName : !string.IsNullOrEmpty(context.Item.User.PhoneNumber) ? context.Item.User.PhoneNumber : context.Item.User.Account) - - @(!string.IsNullOrEmpty(context.Item.User.DisplayName) && !string.IsNullOrEmpty(context.Item.User.PhoneNumber) ? context.Item.User.PhoneNumber : context.Item.User.Account) - - - break; - case (nameof(MessageTaskReceiverDto.Email)): - - break; - case ("ChannelDisplayName"): - - break; - case nameof(MessageRecordDto.Success): - - break; - case "Action": - mdi-eye - break; - default: - - break; - } - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/MessageRecordManagement.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/MessageRecordManagement.razor.cs deleted file mode 100644 index 8e3b0532..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/MessageRecordManagement.razor.cs +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageRecords; - -public partial class MessageRecordManagement : AdminCompontentBase -{ - private MessageRecordDetailModal _detailModal = default!; - private GetMessageRecordInputDto _queryParam = new(); - private PaginatedListDto _entities = new(); - private List _channelItems = new(); - private List> _successItems = new(); - private ChannelService ChannelService => McCaller.ChannelService; - private MessageRecordService MessageRecordService => McCaller.MessageRecordService; - private DateTimeOffset? _endTime; - private DateTimeOffset? _startTime; - - protected override string? PageName { get; set; } = "MessageRecordBlock"; - - protected async override Task OnInitializedAsync() - { - _channelItems = (await ChannelService.GetListAsync(new GetChannelInputDto(99))).Result; - _successItems = new() - { - new(T("Success"), true), - new(T("Failure"), false) - }; - } - - private void SetDefaultParam() - { - var defaultQueryParam = new GetMessageRecordInputDto() - { - TimeType = MessageRecordTimeTypes.ExpectSendTime, - StartTime = DateTime.Now.Date, - EndTime = DateTime.Now.Date.AddDays(1) - }; - _queryParam = defaultQueryParam; - _endTime = defaultQueryParam.EndTime; - _startTime = defaultQueryParam.StartTime; - } - - public List> GetHeaders() - { - string prefix = "DisplayName.MessageRecord"; - - return new() - { - new() { Text = T("DisplayName.MessageTaskReceiver"), Value = "Receiver", Sortable = false, Width = "8rem" }, - new() { Text = T(nameof(MessageTaskReceiverDto.Email)), Value = nameof(MessageTaskReceiverDto.Email), Sortable = false, Width = "8rem" }, - new() { Text = T("DisplayName.Channel"), Value = "ChannelDisplayName", Sortable = false, Width = "6rem" }, - new() { Text = T($"{prefix}{nameof(MessageRecordDto.DisplayName)}"), Value = nameof(MessageRecordDto.DisplayName), Sortable = false, Width = "8rem" }, - new() { Text = T($"{prefix}{nameof(MessageRecordDto.ExpectSendTime)}"), Value = nameof(MessageRecordDto.ExpectSendTime), Sortable = false, Width = "10rem" }, - new() { Text = T($"{prefix}{nameof(MessageRecordDto.SendTime)}"), Value = nameof(MessageRecordDto.SendTime), Sortable = false, Width = "8rem" }, - new() { Text = T($"{prefix}{nameof(MessageRecordDto.Success)}"), Value = nameof(MessageRecordDto.Success), Sortable = false, Width = "7.5rem" }, - new() { Text = T($"{prefix}{nameof(MessageRecordDto.FailureReason)}"), Value = nameof(MessageRecordDto.FailureReason), Sortable = false, Width = "6.5625rem" }, - new() { Text = T("Action"), Value = "Action", Sortable = false, Width = 105, Align=DataTableHeaderAlign.Center }, - }; - } - - protected async override Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - SetDefaultParam(); - - await LoadData(); - } - await base.OnAfterRenderAsync(firstRender); - } - - private Task DateRangChangedAsync((DateTimeOffset? startDate, DateTimeOffset? endDate) args) - { - (_startTime, _endTime) = args; - _queryParam.StartTime = _startTime?.UtcDateTime; - _queryParam.EndTime = _endTime?.UtcDateTime; - return RefreshAsync(); - } - - private async Task LoadData() - { - Loading = true; - _entities = (await MessageRecordService.GetListAsync(_queryParam)); - Loading = false; - StateHasChanged(); - } - - private async Task HandleOk() - { - await LoadData(); - } - - private async Task RefreshAsync() - { - _queryParam.Page = 1; - await LoadData(); - } - - private async Task HandlePageChanged(int page) - { - _queryParam.Page = page; - await LoadData(); - } - - private async Task HandlePageSizeChanged(int pageSize) - { - _queryParam.PageSize = pageSize; - await LoadData(); - } - - private async Task HandleClearAsync() - { - SetDefaultParam(); - await LoadData(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/Modules/MessageRecordDetailModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/Modules/MessageRecordDetailModal.razor deleted file mode 100644 index 10a4a1b7..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/Modules/MessageRecordDetailModal.razor +++ /dev/null @@ -1,107 +0,0 @@ -@inherits AdminCompontentBase -
- -
-
- -
@(_messageRecord.User.DisplayName)
-
@(_messageRecord.User.Email)
-
@(_messageRecord.User.PhoneNumber)
-
@T("DisplayName.MessageTaskSendTime")
- - - - @T("DisplayName.MessageRecordExpectSendTime") - - - - - -
-
@(_messageRecord.ExpectSendTime?.ToOffset(JsInitVariables.TimezoneOffset).ToString(T("$DateFormat")))
-
@(_messageRecord.ExpectSendTime?.ToOffset(JsInitVariables.TimezoneOffset).ToString(T("$TimeFormat")))
-
-
-
- - - @T("DisplayName.MessageRecordSendTime") - - - - - -
-
@_messageRecord.SendTime?.ToOffset(JsInitVariables.TimezoneOffset).ToString(T("$DateFormat"))
-
@_messageRecord.SendTime?.ToOffset(JsInitVariables.TimezoneOffset).ToString(T("$TimeFormat"))
-
-
-
-
-
@T("DisplayName.MessageRecordResult")
-
-
-
- @if (_messageRecord.Success == true) - { - @T("DisplayName.MessageRecordSuccess.True") - } - @if (_messageRecord.Success == false) - { - @T("DisplayName.MessageRecordSuccess.False") - } -
- @if (_messageRecord.Success == false) - { - @T("Retry") - } -
- @if (_messageRecord.Success == false) - { -
-
- @_messageRecord.FailureReason -
-
@T("DisplayName.MessageRecordFailureReason")
-
- } - @if (_messageTaskHistory is not null) - { -
-
- @_messageTaskHistory.TaskHistoryNo -
-
@T("DisplayName.MessageTaskHistoryNo")
-
- } -
-
- -
-
@T("DisplayName.MessageInfoContent")
- @if (_messageTask is null) - { - @if (_messageRecord.MessageEntityType == MessageEntityTypes.Ordinary) - { - - } - @if (_messageRecord.MessageEntityType == MessageEntityTypes.Template) - { - - } - } - else{ - @if (_messageTask.EntityType == MessageEntityTypes.Ordinary) - { - - } - @if (_messageTask.EntityType == MessageEntityTypes.Template) - { - - } - } -
- -
-
-
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/Modules/MessageRecordDetailModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/Modules/MessageRecordDetailModal.razor.cs deleted file mode 100644 index 24560c38..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/Modules/MessageRecordDetailModal.razor.cs +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageRecords.Modules; - -public partial class MessageRecordDetailModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MessageRecordDto _messageRecord = new(); - private MessageTaskDto? _messageTask; - private MessageTaskHistoryDto? _messageTaskHistory; - private Guid _entityId; - private bool _visible; - - MessageRecordService MessageRecordService => McCaller.MessageRecordService; - - MessageTaskService MessageTaskService => McCaller.MessageTaskService; - - MessageTaskHistoryService MessageTaskHistoryService => McCaller.MessageTaskHistoryService; - - public async Task OpenModalAsync(MessageRecordDto model) - { - _entityId = model.Id; - await GetFormDataAsync(); - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - } - - private async Task GetFormDataAsync() - { - _messageRecord = await MessageRecordService.GetAsync(_entityId) ?? new(); - - if (_messageRecord.MessageTaskId != Guid.Empty) - { - _messageTask = await MessageTaskService.GetAsync(_messageRecord.MessageTaskId); - } - - if (_messageRecord.MessageTaskHistoryId != Guid.Empty) - { - _messageTaskHistory = await MessageTaskHistoryService.GetAsync(_messageRecord.MessageTaskHistoryId); - } - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private void ResetForm() - { - _messageRecord = new(); - _messageTask = null; - _messageTaskHistory = null; - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private async Task HandleRetry() - { - LoadingText = T("SendingMessage"); - Loading = true; - var inputDto = new RetryMessageRecordInputDto { MessageRecordId = _entityId }; - await MessageRecordService.RetryAsync(inputDto); - Loading = false; - await SuccessMessageAsync(T("MessageRecordRetryMessage")); - await GetFormDataAsync(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/Modules/MessageRecordDetailModal.razor.css b/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/Modules/MessageRecordDetailModal.razor.css deleted file mode 100644 index 734aeb46..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageRecords/Modules/MessageRecordDetailModal.razor.css +++ /dev/null @@ -1,8 +0,0 @@ -.record-detail-left { - width: 428px; -} - -.record-detail-right { - padding: 72px 114px; - width: calc(100% - 428px); -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/MessageTaskList.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/MessageTaskList.razor deleted file mode 100644 index 19f45c22..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/MessageTaskList.razor +++ /dev/null @@ -1,132 +0,0 @@ -@inherits AdminCompontentBase - - -
- mdi-message@T("Permission.SendMessage") -
- - - @T("Title") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - mdi-file - -
-
- - @(_queryParam.IsDraft == true ? T("All") : T("Draft")) - -
-
-
-
- - @if (_entities.Result.Any()) - { -
- @foreach (var _entitie in _entities.Result) - { -
- -
- } -
- } - else - { - - } - -
- -
- -
-
-
- - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/MessageTaskList.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/MessageTaskList.razor.cs deleted file mode 100644 index ea15e85f..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/MessageTaskList.razor.cs +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks; - -public partial class MessageTaskList : AdminCompontentBase -{ - [Parameter] - public EventCallback OnNavigateToSend { get; set; } - - private TemplateMessageEditModal _templateEditModal = default!; - private OrdinaryMessageEditModal _ordinaryEditModal = default!; - private MessageTaskDetailModal _detailModal = default!; - private SendTestMessageModal _sendTestModal = default!; - private GetMessageTaskInputDto _queryParam = new(20) { TimeType = MessageTaskTimeTypes.ModificationTime, Source = MessageTaskSources.Management }; - private PaginatedListDto _entities = new(); - private List _channelItems = new(); - private DateTimeOffset? _endTime; - private DateTimeOffset? _startTime; - - private ChannelService ChannelService => McCaller.ChannelService; - - private MessageTaskService MessageTaskService => McCaller.MessageTaskService; - - protected override string? PageName { get; set; } = "MessageTaskBlock"; - - protected async override Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - await LoadData(); - } - await base.OnAfterRenderAsync(firstRender); - } - - private async Task LoadData() - { - Loading = true; - _entities = (await MessageTaskService.GetListAsync(_queryParam)); - _channelItems = (await ChannelService.GetListAsync(new GetChannelInputDto(99))).Result; - Loading = false; - StateHasChanged(); - } - - private Task DateRangChangedAsync((DateTimeOffset? startDate, DateTimeOffset? endDate) args) - { - (_startTime, _endTime) = args; - _queryParam.StartTime = _startTime?.UtcDateTime; - _queryParam.EndTime = _endTime?.UtcDateTime; - return RefreshAsync(); - } - - private async Task HandleOk() - { - await LoadData(); - } - - private async Task RefreshAsync() - { - _queryParam.Page = 1; - await LoadData(); - } - - private async Task HandlePageChanged(int page) - { - _queryParam.Page = page; - await LoadData(); - } - - private async Task HandlePageSizeChanged(int pageSize) - { - _queryParam.PageSize = pageSize; - await LoadData(); - } - - private async Task HandleClearAsync() - { - _queryParam = new(20) { TimeType = MessageTaskTimeTypes.ModificationTime, Source = MessageTaskSources.Management }; - await LoadData(); - } - - private async Task HandleEditAsync(MessageTaskDto model) - { - if (model.EntityType == MessageEntityTypes.Ordinary) - { - await _ordinaryEditModal.OpenModalAsync(model); - } - if (model.EntityType == MessageEntityTypes.Template) - { - await _templateEditModal.OpenModalAsync(model); - } - } - - private async Task NavigateToSend() - { - if (OnNavigateToSend.HasDelegate) - { - await OnNavigateToSend.InvokeAsync(); - } - } - - private async Task HandleDelAsync(Guid _entityId, string displayName) - { - await ConfirmAsync(T("DeletionConfirmationMessage", $"{T("MessageTask")}\"{displayName}\""), async () => { await DeleteAsync(_entityId); }, AlertTypes.Error); - } - - private async Task DeleteAsync(Guid _entityId) - { - Loading = true; - await MessageTaskService.DeleteAsync(_entityId); - Loading = false; - await SuccessMessageAsync(T("MessageTaskDeleteMessage")); - await LoadData(); - } - - private async Task HandleIsDraft() - { - _queryParam.IsDraft = _queryParam.IsDraft == true ? null : true; - await LoadData(); - } - - private async Task HandleIsEnabled(MessageTaskDto item) - { - if (!item.IsEnabled) - { - if (item.IsDraft) - { - await ErrorMessageAsync(T("CouldNotEnableATaskInDraft")); - } - else - { - await ConfirmAsync(T("EnableConfirmationMessageTask"), async () => - { - await MessageTaskService.SetIsEnabledAsync(item.Id, true); - item.IsEnabled = true; - }); - } - } - else - { - await ConfirmAsync(T("DisableConfirmationMessageTask"), async () => - { - await MessageTaskService.SetIsEnabledAsync(item.Id, false); - item.IsEnabled = false; - }); - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/ImportReceiversDetailModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/ImportReceiversDetailModal.razor deleted file mode 100644 index e9946cce..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/ImportReceiversDetailModal.razor +++ /dev/null @@ -1,119 +0,0 @@ -@inherits AdminCompontentBase -
- - - - - - @if (ChannelType == ChannelTypes.WebsiteMessage) - { - - @T("UserId") - - } - @if (ChannelType == ChannelTypes.Sms) - { - - @T("PhoneNumber") - - } - @if (ChannelType == ChannelTypes.Email) - { - - @T("Email") - - } - @if (ChannelType == ChannelTypes.App) - { - - @T("ClientId") - - } - @if (ChannelType == ChannelTypes.WeixinWork || ChannelType == ChannelTypes.WeixinWorkWebhook) - { - - @T("Account") - - } - @if (Value.Count > 0) - { - foreach (var item in Value[0].Variables) - { - - @item.Key - - } - } - - - - @foreach (var item in _items) - { - - @item.ChannelUserIdentity - @foreach (var v in item.Variables) - { - @v.Value - } - - } - - - - - -
- - -@code { - [Parameter] - public List Value { get; set; } = new(); - - [Parameter] - public ChannelTypes? ChannelType { get; set; } - - private List _items { get; set; } = new(); - - private bool _visible; - private PaginatedOptionsDto _queryParam = new(); - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - public async Task OpenModal() - { - _visible = true; - await LoadData(); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandlePageChanged(int page) - { - _queryParam.Page = page; - await LoadData(); - } - - private async Task HandlePageSizeChanged(int pageSize) - { - _queryParam.PageSize = pageSize; - await LoadData(); - } - - private async Task LoadData() - { - _items = Value.Skip((_queryParam.Page - 1) * _queryParam.PageSize).Take(_queryParam.PageSize <= 0 ? int.MaxValue : _queryParam.PageSize).ToList(); - await InvokeAsync(StateHasChanged); - } - - private void ResetForm() - { - _queryParam = new(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceivers.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceivers.razor deleted file mode 100644 index 12a30cba..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceivers.razor +++ /dev/null @@ -1,19 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - -@if (SelectReceiverType == MessageTaskSelectReceiverTypes.ManualSelection) -{ - -} -@if (SelectReceiverType == MessageTaskSelectReceiverTypes.BatchUpload) -{ - -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceivers.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceivers.razor.cs deleted file mode 100644 index 760a8776..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceivers.razor.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; - -public partial class MessageReceivers -{ - [Parameter] - public ReceiverTypes ReceiverType { get; set; } = new(); - - [Parameter] - public EventCallback ReceiverTypeChanged { get; set; } - - [Parameter] - public List SelectReceivers { get; set; } = new(); - - [Parameter] - public EventCallback> SelectReceiversChanged { get; set; } - - [Parameter] - public List ImportReceivers { get; set; } = new(); - - [Parameter] - public EventCallback> ImportReceiversChanged { get; set; } - - [Parameter] - public MessageTaskSelectReceiverTypes SelectReceiverType { get; set; } = MessageTaskSelectReceiverTypes.ManualSelection; - - [Parameter] - public EventCallback SelectReceiverTypeChanged { get; set; } - - [Parameter] - public ChannelTypes? ChannelType { get; set; } - - [Parameter] - public EventCallback ChannelTypeChanged { get; set; } - - [Parameter] - public Guid? MessageTemplatesId { get; set; } - - [Parameter] - public EventCallback MessageTemplatesIdChanged { get; set; } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversImport.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversImport.razor deleted file mode 100644 index 0692e658..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversImport.razor +++ /dev/null @@ -1,60 +0,0 @@ -@inherits AdminCompontentBase -
- -
- -
-
-
-
@(_isUpload && Value != null && Value.Any() ? T("UploadComplete") : T("UploadFile"))
-
@_fileName
-
-
- - - -
- @T("Description.MessageReceiversDownload.Name") - @T("Description.MessageReceiversDownload.Tips") -
-
-
- -@if (_importResult != null && _importResult.HasError) -{ - - @T("Description.MessageReceiversImport.ErrorMsg") - -} -@if (Value != null && Value.Any()) -{ - -
- @(string.Format(T("Description.MessageReceiversImport.Tips"), Value.Count)) - @T("View") -
-
-} - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversImport.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversImport.razor.cs deleted file mode 100644 index 29e9768b..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversImport.razor.cs +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; - -public partial class MessageReceiversImport -{ - [Parameter] - public List Value { get; set; } = new(); - - [Parameter] - public Guid? MessageTemplatesId { get; set; } - - [Parameter] - public ChannelTypes? ChannelType { get; set; } - - [Parameter] - public EventCallback> ValueChanged { get; set; } - - [Parameter] - public EventCallback> OnAdd { get; set; } - - [Inject] - IBlazorDownloadFileService BlazorDownloadFileService { get; set; } = default!; - - private ImportResultDto _importResult = default!; - private ImportReceiversDetailModal _importReceiversDetailModal = default!; - private int _progress = 0; - private string _fileName = string.Empty; - private bool _isUpload; - private long maxFileSize = 1024 * 1024 * 15; - - MessageTaskService MessageTaskService => McCaller.MessageTaskService; - - protected override void OnParametersSet() - { - if (!_isUpload && Value != null && Value.Any()) - { - _isUpload = true; - _progress = 100; - } - } - - private async Task handleResetAnimation() - { - if (_progress == 0) - { - return; - } - - _progress = 0; - _fileName = string.Empty; - _importResult = default!; - _isUpload = false; - await Task.Delay(400); - } - - private async Task HandleFileChange(InputFileChangeEventArgs e) - { - var file = e.File; - if (file == null) - { - return; - } - - await handleResetAnimation(); - - if (!ChannelType.HasValue) - { - await WarningAsync(T("Description.ChannelType.Required")); - return; - } - if (maxFileSize < file.Size) - { - await WarningAsync(T("UploadFileSizeExceeded")); - return; - } - var fileContent = await ReadFile(file); - _isUpload = true; - if (FileEncoderHelper.GetTextFileEncodingType(fileContent) != Encoding.UTF8) - { - await WarningAsync(T("Description.MessageReceiversUpload.EncodingTips")); - return; - } - _fileName = file.Name; - var dto = new ImportReceiversDto - { - FileName = _fileName, - FileContent = fileContent, - Size = file.Size, - ContentType = "text/csv", - MessageTemplatesId = MessageTemplatesId, - ChannelType = ChannelType.Value - }; - _importResult = await MessageTaskService.ImportReceiversAsync(dto); - Value = _importResult.Data.ToList(); - if (ValueChanged.HasDelegate) - { - await ValueChanged.InvokeAsync(Value); - } - } - - private async Task Download() - { - if (!ChannelType.HasValue) - { - await WarningAsync(T("Description.ChannelType.Required")); - return; - } - var contentBytes = await MessageTaskService.GenerateReceiverImportTemplateAsync(MessageTemplatesId, ChannelType.Value); - await BlazorDownloadFileService.DownloadFile("ReceiverImportTemplate.csv", contentBytes, "text/csv"); - } - - private async Task ReadFile(IBrowserFile file) - { - await using var memoryStream = new MemoryStream(); - using var readStream = file.OpenReadStream(maxFileSize); - var bytesRead = 0; - var totalRead = 0; - var buffer = new byte[2048]; - - while ((bytesRead = await readStream.ReadAsync(buffer)) != 0) - { - totalRead += bytesRead; - - await memoryStream.WriteAsync(buffer, 0, bytesRead); - - _progress = (int)(totalRead * 100.0 / file.Size); - } - return memoryStream.ToArray(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversImport.razor.css b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversImport.razor.css deleted file mode 100644 index 9fbc46be..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversImport.razor.css +++ /dev/null @@ -1,15 +0,0 @@ -.upload-btn ::deep .m-input { - opacity: 0; - position: absolute; - top: 0; - left: 0; -} -.upload-btn ::deep .m-input__control { - height: 100%; - width: 100%; - position: absolute; -} -.upload-btn ::deep .m-input__slot { - height: 100%; - width: 100%; -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversSelect.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversSelect.razor deleted file mode 100644 index 749a3293..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversSelect.razor +++ /dev/null @@ -1,72 +0,0 @@ -@inherits AdminCompontentBase - - - - - mdi-plus - @T("ExternalMember") - - - -@if (Value != null && Value.Count > 0) -{ - - - @foreach (var item in Value) - { - - - - @if (item.Type != MessageTaskReceiverTypes.User) - { - mdi-animation - } - else - { - @if (string.IsNullOrEmpty(item.Avatar)) - { - - } - else - { - - } - } - - - - @(item.DisplayName) -
- -
- @T($"DisplayName.MessageTaskReceiverTypes.{item.Type}") -
- @if (item.Type == MessageTaskReceiverTypes.User) - { - - @(item.PhoneNumber) -
- -
- @(item.Email) -
- } -
-
- - mdi-close - -
-
-
- } -
-
- - @if (_count > 0) - { - @(string.Format(T("ReceiversCount"), _count)) - } -} - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversSelect.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversSelect.razor.cs deleted file mode 100644 index 5457a4b0..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageReceiversSelect.razor.cs +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; - -public partial class MessageReceiversSelect : AdminCompontentBase -{ - [Parameter] - public List Value { get; set; } = new(); - - [Parameter] - public EventCallback> ValueChanged { get; set; } - - [Parameter] - public ChannelTypes? Type { get; set; } - - private ExternalUserCreateModal _createModal = default!; - private long _count; - - MessageTaskService MessageTaskService => McCaller.MessageTaskService; - - private async Task HandleOk(UserDto user) - { - var receiver = new MessageTaskReceiverDto - { - SubjectId = user.Id, - DisplayName = user.GetDisplayName(), - Avatar = user.Avatar, - PhoneNumber = user.PhoneNumber ?? string.Empty, - Email = user.Email ?? string.Empty, - Type = MessageTaskReceiverTypes.User - }; - var dtos = new List { receiver }; - await HandleAddAsync(dtos); - } - - private async Task RemoveValue(MessageTaskReceiverDto item) - { - Value.Remove(item); - - await HandleValueChangedAsync(); - } - - private async Task HandleAddAsync(List receivers) - { - foreach (var receiver in receivers) - { - if (!string.IsNullOrEmpty(receiver.PhoneNumber) && Value.Any(x => x.PhoneNumber == receiver.PhoneNumber)) continue; - if (!string.IsNullOrEmpty(receiver.Email) && Value.Any(x => x.Email == receiver.Email)) continue; - if (receiver.SubjectId != default && Value.Any(x => x.SubjectId == receiver.SubjectId)) continue; - Value.Insert(0, receiver); - } - await HandleValueChangedAsync(); - } - - private async Task HandleOnAdd(MessageTaskReceiverDto item) - { - if (!Value.Any(x => x.SubjectId == item.SubjectId)) - { - Value.Add(item); - await HandleValueChangedAsync(); - } - } - - private async Task HandleOnRemove(MessageTaskReceiverDto item) - { - if (Value.Any(x => x.SubjectId == item.SubjectId)) - { - Value.RemoveAll(x => x.SubjectId == item.SubjectId); - await HandleValueChangedAsync(); - } - } - - private async Task HandleValueChangedAsync() - { - if (ValueChanged.HasDelegate) - { - await ValueChanged.InvokeAsync(Value); - } - - _count = await MessageTaskService.ResolveReceiversCountAsync(Value); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageSendingRules.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageSendingRules.razor deleted file mode 100644 index a8862975..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageSendingRules.razor +++ /dev/null @@ -1,45 +0,0 @@ -@inherits AdminCompontentBase - - - - - -@if (Value.IsCustom) -{ - - - - - - - - - - - @T("DisplayName.SendingRule.SendingCount.Tips") - - - - - @if (!string.IsNullOrEmpty(Value.CronExpression)) - { - - - - - - - } -} - - - - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageSendingRules.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageSendingRules.razor.cs deleted file mode 100644 index 71641044..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageSendingRules.razor.cs +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; - -public partial class MessageSendingRules : AdminCompontentBase -{ - [Parameter] - public SendRuleDto Value { get; set; } = new(); - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public bool ReadOnly { get; set; } - - private bool _cronVisible; - private string _tempCron = string.Empty; - private string _nextRunTimeStr = string.Empty; - - protected override void OnParametersSet() - { - base.OnParametersSet(); - - GetNextRunTime(); - } - - private void OpenCronModal() - { - _cronVisible = true; - - if (CronExpression.IsValidExpression(Value.CronExpression)) - { - _tempCron = Value.CronExpression; - } - } - - private async Task SetCronExpression() - { - if (CronExpression.IsValidExpression(_tempCron)) - { - Value.CronExpression = _tempCron; - GetNextRunTime(); - _cronVisible = false; - } - else - { - await PopupService.EnqueueSnackbarAsync(T("CronExpressionInvalid"), AlertTypes.Error); - } - - } - - private void GetNextRunTime(int showCount = 10) - { - if (!CronExpression.IsValidExpression(Value.CronExpression)) - { - _nextRunTimeStr = T("CronExpressionNotHasNextRunTime"); - return; - } - - var sb = new StringBuilder(); - - var startTime = DateTimeOffset.UtcNow; - - var cronExpression = new CronExpression(Value.CronExpression); - - var timezone = TimeZoneInfo.GetSystemTimeZones().FirstOrDefault(p => p.BaseUtcOffset == JsInitVariables.TimezoneOffset); - - if (timezone != null) - cronExpression.TimeZone = timezone; - - for (int i = 0; i < showCount; i++) - { - var nextExcuteTime = cronExpression.GetNextValidTimeAfter(startTime); - - if (nextExcuteTime.HasValue) - { - startTime = nextExcuteTime.Value; - sb.AppendLine(startTime.ToOffset(JsInitVariables.TimezoneOffset).ToString("yyyy-MM-dd HH:mm:ss")); - } - } - - if (sb.Length == 0) - { - _nextRunTimeStr = T("CronExpressionNotHasNextRunTime"); - } - else - { - _nextRunTimeStr = sb.ToString(); - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageSendingRulesInfo.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageSendingRulesInfo.razor deleted file mode 100644 index 9d0200fc..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageSendingRulesInfo.razor +++ /dev/null @@ -1,21 +0,0 @@ -@inherits AdminCompontentBase -@if (Value.IsCustom) -{ -
-
@T("DisplayName.SendingRule.CronExpression")
-
@Value.CronExpression
-
-} -@if (Value.SendingCount>0) -{ -
-
@T("DisplayName.SendingRule.SendingCount")
-
@Value.SendingCount
-
-} - - -@code { - [Parameter] - public SendRuleDto Value { get; set; } = new(); -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskCard.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskCard.razor deleted file mode 100644 index f9e2adda..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskCard.razor +++ /dev/null @@ -1,153 +0,0 @@ -@inherits AdminCompontentBase - - - - - @if (MessageTask.Channel != null) - { - @MessageTask.Channel?.DisplayName - } - - - - - mdi-dots-horizontal - - - - - - - - - - - @if (MessageTask.IsDraft) - { - - - - @T("Edit") - - - - } - else - { - - - - @T("Permission.ViewMessageTask") - - - - } - - - - @T("Test") - - - - - - - @T("Delete") - - - - - - - - - - - - -
@MessageTask.DisplayName
-
@((MessageTask.SendTime?.ToOffset(JsInitVariables.TimezoneOffset) ?? MessageTask.ExpectSendTime?.ToOffset(JsInitVariables.TimezoneOffset))?.ToString(T("$DateTimeFormat")))
- - @MessageTask.Content - -
- - @T($"DisplayName.MessageEntityType.{((MessageEntityTypes)MessageTask.EntityType).ToString()}") - @if (MessageTask.IsDraft == false) - { - - - - - } - - @MessageTask.ModificationTime.Humanize(culture:I18n.Culture) - - - - @MessageTask.ModifierName - -
- -@code { - [EditorRequired] - [Parameter] - public MessageTaskDto MessageTask { get; set; } = null!; - - [Parameter] - public EventCallback OnEdit { get; set; } - - [Parameter] - public EventCallback OnView { get; set; } - - [Parameter] - public EventCallback OnTest { get; set; } - - [Parameter] - public EventCallback OnDelete { get; set; } - - [Parameter] - public EventCallback OnIsEnabled { get; set; } - - protected override string? PageName { get; set; } = "MessageTaskBlock"; - - private async Task HandleOnEdit() - { - if (OnEdit.HasDelegate) - { - await OnEdit.InvokeAsync(); - } - } - - private async Task HandleOnView() - { - if (OnView.HasDelegate) - { - await OnView.InvokeAsync(); - } - } - - private async Task HandleOnTest() - { - if (OnTest.HasDelegate) - { - await OnTest.InvokeAsync(); - } - } - - private async Task HandleOnDelete() - { - if (OnDelete.HasDelegate) - { - await OnDelete.InvokeAsync(); - } - } - - private async Task HandleOnIsEnabled() - { - if (OnIsEnabled.HasDelegate) - { - await OnIsEnabled.InvokeAsync(); - } - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskDetailModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskDetailModal.razor deleted file mode 100644 index 52f097e0..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskDetailModal.razor +++ /dev/null @@ -1,176 +0,0 @@ -@inherits AdminCompontentBase -
- -
-
- - -
@T("DisplayName.MessageTaskHistory")
- -
- - -
-
- - @if (_histories.Result.Any()) - { -
- - @foreach (var item in _histories.Result) - { - - - @if (_historyInfo.Id == item.Id) - { -
@T($"DisplayName.MessageTaskHistoryStatus.{((MessageTaskHistoryStatuses)item.Status).ToString()}")
- } - else - { -
@T($"DisplayName.MessageTaskHistoryStatus.{((MessageTaskHistoryStatuses)item.Status).ToString()}")
- } -
- - - - -
- @if (_historyInfo.Id == item.Id) - { -
@item.TaskHistoryNo
- } - else - { -
@item.TaskHistoryNo
- } -
@item.SendTime?.ToOffset(JsInitVariables.TimezoneOffset).ToString(T("$DateTimeFormat"))
-
-
-
- } -
-
- } -
- - - -
-
- - - -
- - - @if (_historyInfo.Status == MessageTaskHistoryStatuses.WaitSend && _historyInfo.SendTime.HasValue) - { - - @T(string.Format(T("Description.MessageTaskHistory.SendTimeTips"),_historyInfo.SendTime?.ToOffset(JsInitVariables.TimezoneOffset).ToString(T("$DateTimeFormat")))) - - } - - -
@T("MessageDetails")
- @if (_info.EntityType == MessageEntityTypes.Ordinary) - { - - } - @if (_info.EntityType == MessageEntityTypes.Template) - { - - } - -
@T("DisplayName.MessageTaskReceiver")
-
-
@T("DisplayName.MessageTaskDetail.ReceiverType")
-
@T($"DisplayName.ReceiverType.{_info.ReceiverType.ToString()}")
-
- - @if (_receiverUsers.Any()) - { - - - @foreach (var item in _receiverUsers) - { - - - @if (string.IsNullOrEmpty(item.Avatar)) - { - - } - else - { - - } - - - - @(item.DisplayName) -
- -
- @T("DisplayName.SubjectTypes.User") -
- - @(item.PhoneNumber) -
- -
- @(item.Email) -
-
-
- } -
-
- } - - @if (_info.Channel.Type == ChannelTypes.Sms || _info.SendRules.IsCustom) - { -
@T("DisplayName.MessageTaskSendingRule")
- } - @if (_info.Channel.Type == ChannelTypes.Sms) - { -
-
@T("DisplayName.MessageTemplateSign")
-
@_info.Sign
-
- } - @if (_info.SendRules.IsCustom) - { - - } -
- - @if (_info.Channel.Type == ChannelTypes.WebsiteMessage && _historyInfo.Status != MessageTaskHistoryStatuses.Withdrawn) - { -
- - - @T("Withdraw") - -
- } -
-
-
-
-
-
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskDetailModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskDetailModal.razor.cs deleted file mode 100644 index 889ef21b..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskDetailModal.razor.cs +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; - -public partial class MessageTaskDetailModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MessageTaskDto _info = new(); - private MessageTaskHistoryDto _historyInfo = new(); - private Guid _entityId; - private bool _visible; - private GetMessageTaskHistoryInputDto _queryParam = new(); - - private PaginatedListDto _histories = new(); - private DateOnly? _endTime; - private DateOnly? _startTime; - private List _receiverUsers = new(); - - private MessageTaskService MessageTaskService => McCaller.MessageTaskService; - - private MessageTaskHistoryService MessageTaskHistoryService => McCaller.MessageTaskHistoryService; - - protected override string? PageName { get; set; } = "MessageTaskBlock"; - - - public async Task OpenModalAsync(MessageTaskDto model) - { - _entityId = model.Id; - _queryParam.MessageTaskId = _entityId; - await GetFormDataAsync(); - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - } - - private async Task GetFormDataAsync() - { - _info = await MessageTaskService.GetAsync(_entityId) ?? new(); - await LoadData(); - if (_histories.Result.Any()) - { - _historyInfo = _histories.Result[0]; - - await GetReceiversAsync(_historyInfo.Id); - } - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleDelAsync() - { - await ConfirmAsync(T("DeletionConfirmationMessage"), DeleteAsync); - } - - private async Task DeleteAsync() - { - Loading = true; - await MessageTaskService.DeleteAsync(_entityId); - Loading = false; - await SuccessMessageAsync(T("MessageTaskDeleteMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _info = new(); - _historyInfo = new(); - _queryParam = new() { Page = 1 }; - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private Task OnDateChanged((DateOnly? startDate,DateOnly? endDate) args) - { - (_startTime, _endTime) = args; - _queryParam.StartTime = _startTime?.ToDateTime(TimeOnly.MinValue); - _queryParam.EndTime = _endTime?.ToDateTime(TimeOnly.MaxValue); - return Refresh(); - } - - private async Task Refresh() - { - _queryParam.Page = 1; - await LoadData(); - } - - private async Task LoadData() - { - Loading = true; - _histories = (await MessageTaskHistoryService.GetListAsync(_queryParam)); - Loading = false; - StateHasChanged(); - } - - private async Task HandleItemSelect(MessageTaskHistoryDto item) - { - _historyInfo = item; - await GetReceiversAsync(_historyInfo.Id); - } - - private async Task HandlePageChanged(int page) - { - _queryParam.Page = page; - await LoadData(); - } - - private async Task HandlePageSizeChanged(int pageSize) - { - _queryParam.PageSize = pageSize; - await LoadData(); - } - - private async Task HandleWithdrawnAsync() - { - await ConfirmAsync(T("TaskWithdrawnConfirmationMessage", $"[{_info.DisplayName}]"), WithdrawnAsync); - } - - private async Task WithdrawnAsync() - { - Loading = true; - await MessageTaskService.WithdrawnAsync(_info.Id); - Loading = false; - await SuccessMessageAsync(T("MessageTaskWithdrawnMessage")); - await GetFormDataAsync(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private async Task GetReceiversAsync(Guid id) - { - _receiverUsers = await MessageTaskHistoryService.GetReceiversAsync(id); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskDetailModal.razor.css b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskDetailModal.razor.css deleted file mode 100644 index e31b07d4..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageTaskDetailModal.razor.css +++ /dev/null @@ -1,32 +0,0 @@ -.task-detail-left { - width: 482px; -} - -.task-detail-right { - padding: 48px 114px; - width: calc(100% - 482px); -} - -.task-history-box { - margin-left: -104px; -} - - .task-history-box ::deep .m-timeline-item__dot { - box-shadow: none; - } - - .task-history-box ::deep .m-timeline-item__dot { - background: transparent !important; - } - - .task-history-box ::deep .m-timeline-item__inner-dot { - background-color: transparent !important; - } - - .task-history-box ::deep .m-icon { - background: #ffff !important; - } - - .task-history-box ::deep .theme--light.m-timeline::before { - background: #E2E7F4; - } diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageVariables.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageVariables.razor deleted file mode 100644 index aea328f0..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageVariables.razor +++ /dev/null @@ -1,29 +0,0 @@ -@inherits AdminCompontentBase -
-
@T("DisplayName.VariableValueTransfer")
- - - - @T("DisplayName.Variable") - - - @T("DisplayName.Value") - -
-
- @foreach (var item in _items) - { - - -

@item.Name

-
- - - -
- } -
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageVariables.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageVariables.razor.cs deleted file mode 100644 index 32601d0e..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/MessageVariables.razor.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; - -public partial class MessageVariables : AdminCompontentBase -{ - [Parameter] - public ExtraPropertyDictionary Value { get; set; } = new(); - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public bool ReadOnly { get; set; } - - private List _items = new(); - - protected async override Task OnInitializedAsync() - { - _items = Value.Select(x => new ItemDto(x.Key, x.Value?.ToString() ?? string.Empty)).ToList(); - - await base.OnInitializedAsync(); - } - - public async Task HandleChangeAsync() - { - var extraProperty = new ExtraPropertyDictionary(); - foreach (var item in _items) - { - extraProperty.TryAdd(item.Name, item.Value); - } - Value = extraProperty; - await ValueChanged.InvokeAsync(Value); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageCreateModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageCreateModal.razor deleted file mode 100644 index f07f36db..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageCreateModal.razor +++ /dev/null @@ -1,199 +0,0 @@ -@inherits AdminCompontentBase -
- - - - - - - @T("DisplayName.MessageInfoContent") - - - - @T("DisplayName.MessageTaskReceiver") - - - - @T("DisplayName.MessageTaskSendingRule") - - - - - - - - - - - @if (_model.ChannelType == ChannelTypes.App) - { -
- - -
- } - @if (_model.ChannelType == ChannelTypes.WeixinWork) - { - - - } - @if (_model.ChannelType == ChannelTypes.WeixinWorkWebhook) - { - - - } - @if (_model.ComputedTitleShow) - { - - - } -
- @if (_model.ComputedMarkdown) - { - - - } - else - { - - - } -
- @if (_model.ComputedJumpUrlShow) - { - - - - - - fas fa-link - - - } - @if (_model.ChannelType == ChannelTypes.Sms) - { - - - } - @if (_model.ChannelType == ChannelTypes.App) - { - - - - - @T("OptionalConfiguration") - - - Android - - - - - - Ios - - - - - - - - - - } -
- -
- - @T("Save") - @T("NextStep") -
-
-
-
- - - - @if (_model.ComputedBroadcast && !_selectReceiverType) - { - - } - else - { - - - } - - -
- - mdi-keyboard-backspace - - - @if (_model.ChannelType != ChannelTypes.WebsiteMessage || _selectReceiverType) - { - @T("Save") - @T("NextStep") - } -
-
-
-
- - - - - - - -
- - mdi-keyboard-backspace - - - @T("Save") - @T("SaveSend") -
-
-
-
-
-
-
-
-
-
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageCreateModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageCreateModal.razor.cs deleted file mode 100644 index deeffc45..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageCreateModal.razor.cs +++ /dev/null @@ -1,160 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; - -public partial class OrdinaryMessageCreateModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm? _form; - private MessageTaskUpsertModel _model = new() { EntityType = MessageEntityTypes.Ordinary, SystemId = MasaStackProject.MC.Name }; - private bool _visible; - private List _channelItems = new(); - private List _selectReceivers = new(); - private List _importReceivers = new(); - private bool _selectReceiverType; - - MessageTaskService MessageTaskService => McCaller.MessageTaskService; - ChannelService ChannelService => McCaller.ChannelService; - - protected override string? PageName { get; set; } = "MessageTaskBlock"; - - public async Task OpenModalAsync() - { - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - - _form?.ResetValidation(); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleSaveAsync() - { - _model.IsDraft = true; - await HandleOkAsync(); - } - - private async Task HandleSendAsync() - { - _model.IsDraft = false; - await HandleOkAsync(); - } - - private async Task HandleOkAsync() - { - Check.NotNull(_form, "form not found"); - - SetReceivers(); - if (!_form.Validate()) - { - return; - } - Loading = true; - var inputDto = _model.Adapt(); - await MessageTaskService.CreateAsync(inputDto); - Loading = false; - if (_model.IsDraft) - { - await SuccessMessageAsync(T("MessageTaskCreateMessage")); - } - else - { - await SuccessMessageAsync(T("MessageTaskSendMessage")); - } - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new() { EntityType = MessageEntityTypes.Ordinary, SystemId = MasaStackProject.MC.Name }; - _selectReceivers = new(); - _importReceivers = new(); - _selectReceiverType = false; - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private async Task HandleChannelTypeChangeAsync() - { - _channelItems = _model.ChannelType.HasValue ? await ChannelService.GetListByTypeAsync(_model.ChannelType.Value) : new(); - if (_model.ChannelType != ChannelTypes.WebsiteMessage) - { - _model.ReceiverType = ReceiverTypes.Assign; - } - else - { - _model.ReceiverType = default; - } - } - - private void HandleReceiverType(ReceiverTypes receiverType) - { - _model.ReceiverType = receiverType; - _selectReceiverType = true; - if (receiverType == ReceiverTypes.Broadcast) - { - _model.Step = 3; - } - } - - private void HandleReceiverBack() - { - if (_model.ChannelType != ChannelTypes.WebsiteMessage || !_selectReceiverType) - { - _model.Step = 1; - } - - if (_selectReceiverType) - { - _selectReceiverType = false; - } - } - - private void HandleSendingRuleBack() - { - _model.Step = 2; - if (_model.ReceiverType == ReceiverTypes.Broadcast) - { - _selectReceiverType = false; - } - } - - private void HandleNextStep() - { - SetReceivers(); - _model.IsDraft = false; - if (!_form.Validate()) - { - return; - } - _model.Step++; - } - - private void SetReceivers() - { - _model.Receivers = _model.SelectReceiverType == MessageTaskSelectReceiverTypes.ManualSelection ? _selectReceivers : _importReceivers; - } - - private void HandleSelectTemplateType(int type) - { - _model.MessageInfo.IsJump = type == (int)WeixinWorkTemplateTypes.Text ? false : true; - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageEditModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageEditModal.razor deleted file mode 100644 index fd75c44e..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageEditModal.razor +++ /dev/null @@ -1,187 +0,0 @@ -@inherits AdminCompontentBase -
- - - - - - - @T("DisplayName.MessageInfoContent") - - - - @T("DisplayName.MessageTaskReceiver") - - - - @T("DisplayName.MessageTaskSendingRule") - - - - - - - - - - - @if (_model.ChannelType == ChannelTypes.App) - { -
- - -
- } - @if (_model.ChannelType == ChannelTypes.WeixinWork) - { - - - } - @if (_model.ComputedTitleShow) - { - - - } -
- @if (_model.ComputedMarkdown) - { - - - } - else - { - - - } -
- @if (_model.ComputedJumpUrlShow) - { - - - - - - } - @if (_model.ChannelType == ChannelTypes.Sms) - { - - - } - @if (_model.ChannelType == ChannelTypes.App) - { - - - - - @T("OptionalConfiguration") - - - Android - - - - - - Ios - - - - - - - - - - } -
- -
- - @T("Save") - @T("NextStep") -
-
-
-
- - - - @if (_model.ComputedBroadcast && !_selectReceiverType) - { - - } - else - { - - - } - - -
- - mdi-keyboard-backspace - - - @if (_model.ChannelType != ChannelTypes.WebsiteMessage || _selectReceiverType) - { - @T("Save") - @T("NextStep") - } -
-
-
-
- - - - - - - -
- - mdi-keyboard-backspace - - - @T("Save") - @T("SaveSend") -
-
-
-
-
-
-
-
-
-
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageEditModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageEditModal.razor.cs deleted file mode 100644 index 5f57a626..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageEditModal.razor.cs +++ /dev/null @@ -1,189 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; - -public partial class OrdinaryMessageEditModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm? _form; - private MessageTaskUpsertModel _model = new() { EntityType = MessageEntityTypes.Ordinary, SystemId = MasaStackProject.MC.Name }; - private Guid _entityId; - private bool _visible; - private List _channelItems = new(); - private List _selectReceivers = new(); - private List _importReceivers = new(); - private bool _selectReceiverType; - - MessageTaskService MessageTaskService => McCaller.MessageTaskService; - ChannelService ChannelService => McCaller.ChannelService; - MessageInfoService MessageInfoService => McCaller.MessageInfoService; - - protected override string? PageName { get; set; } = "MessageTaskBlock"; - - public async Task OpenModalAsync(MessageTaskDto model) - { - _entityId = model.Id; - _model = model.Adapt(); - await GetFormDataAsync(); - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - - _form?.ResetValidation(); - } - - private async Task GetFormDataAsync() - { - var dto = await MessageTaskService.GetAsync(_entityId); - if (dto != null) - { - _model = dto.Adapt(); - if (_model.SelectReceiverType == MessageTaskSelectReceiverTypes.ManualSelection) - { - _selectReceivers = _model.Receivers; - } - else - { - _importReceivers = _model.Receivers; - } - _channelItems = _model.ChannelType.HasValue ? await ChannelService.GetListByTypeAsync(_model.ChannelType.Value) : new(); - var messageInfo = await MessageInfoService.GetAsync(_model.EntityId); - if (messageInfo != null) _model.MessageInfo = messageInfo.Adapt(); - } - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleSaveAsync() - { - _model.IsDraft = true; - await HandleOkAsync(); - } - - private async Task HandleSendAsync() - { - _model.IsDraft = false; - await HandleOkAsync(); - } - - private async Task HandleOkAsync() - { - Check.NotNull(_form, "form not found"); - - SetReceivers(); - if (!_form.Validate()) - { - return; - } - Loading = true; - var inputDto = _model.Adapt(); - await MessageTaskService.UpdateAsync(_entityId, inputDto); - Loading = false; - if (_model.IsDraft) - { - await SuccessMessageAsync(T("MessageTaskEditMessage")); - } - else - { - await SuccessMessageAsync(T("MessageTaskSendMessage")); - } - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new() { EntityType = MessageEntityTypes.Ordinary, SystemId = MasaStackProject.MC.Name }; - _selectReceivers = new(); - _importReceivers = new(); - _selectReceiverType = false; - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private async Task HandleChannelTypeChangeAsync() - { - _channelItems = _model.ChannelType.HasValue ? await ChannelService.GetListByTypeAsync(_model.ChannelType.Value) : new(); - if (_model.ChannelType != ChannelTypes.WebsiteMessage) - { - _model.ReceiverType = ReceiverTypes.Assign; - } - else - { - _model.ReceiverType = default; - } - if (_channelItems.Count > 0 && !_channelItems.Any(c => c.Id == _model.ChannelId)) - { - _model.ChannelId = null; - } - } - - private void HandleReceiverType(ReceiverTypes receiverType) - { - _model.ReceiverType = receiverType; - _selectReceiverType = true; - if (receiverType == ReceiverTypes.Broadcast) - { - _model.Step = 3; - } - } - - private void HandleReceiverBack() - { - if (_model.ChannelType != ChannelTypes.WebsiteMessage || !_selectReceiverType) - { - _model.Step = 1; - } - - if (_selectReceiverType) - { - _selectReceiverType = false; - } - } - - private void HandleSendingRuleBack() - { - _model.Step = 2; - if (_model.ReceiverType == ReceiverTypes.Broadcast) - { - _selectReceiverType = false; - } - } - - private void HandleNextStep() - { - SetReceivers(); - _model.IsDraft = false; - if (!_form.Validate()) - { - return; - } - _model.Step++; - } - - private void SetReceivers() - { - _model.Receivers = _model.SelectReceiverType == MessageTaskSelectReceiverTypes.ManualSelection ? _selectReceivers : _importReceivers; - } - - private void HandleSelectTemplateType(int type) - { - _model.MessageInfo.IsJump = type != (int)WeixinWorkTemplateTypes.Text; - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageInfo.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageInfo.razor deleted file mode 100644 index 76654c58..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageInfo.razor +++ /dev/null @@ -1,73 +0,0 @@ -@inherits AdminCompontentBase -
-
-
@T("DisplayName.ChannelType")
-
@(MessageTask.Channel != null ? T(MessageTask.Channel.Type.ToString()) : string.Empty)
-
-
-
@T("DisplayName.Channel")
-
@MessageTask.Channel?.DisplayName
-
- @if (MessageTask.ChannelType == ChannelTypes.App) - { - - - - - - - } -
-
@T("DisplayName.MessageInfoTitle")
-
@MessageInfo.Title
-
-
-
@T("MessageContent")
-
-
- @if (MessageInfo.IsJump) - { -
-
@T("DisplayName.MessageTemplateJumpUrl")
-
@MessageInfo.JumpUrl
-
- } - @if (MessageTask.ChannelType == ChannelTypes.App) - { - @if (!string.IsNullOrEmpty(MessageTask.ExtraProperties.GetProperty(BusinessConsts.INTENT_URL))) - { -
-
@T("IntentUrl")
-
@(MessageTask.ExtraProperties.GetProperty(BusinessConsts.INTENT_URL))
-
- } - @if (MessageInfo.ExtraProperties.Any()) - { -
@T("AdditionalFields")
- - - - - @T("Key") - - - @T("Value") - - - - - - - - @foreach (var item in MessageInfo.ExtraProperties) - { - - @item.Key - @item.Value - - } - - - } - } -
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageInfo.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageInfo.razor.cs deleted file mode 100644 index 377863b6..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageInfo.razor.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; - -public partial class OrdinaryMessageInfo : AdminCompontentBase -{ - [Parameter] - public Guid MessageInfoId { get; set; } - - [Parameter] - public MessageTaskDto MessageTask { get; set; } = new(); - - public MessageInfoDto MessageInfo { get; set; } = new(); - - MessageInfoService MessageInfoService => McCaller.MessageInfoService; - - protected override string? PageName { get; set; } = "MessageTaskBlock"; - - protected override async Task OnParametersSetAsync() - { - MessageInfo = await MessageInfoService.GetAsync(MessageInfoId) ?? new(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageInfoByMessageRecord.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageInfoByMessageRecord.razor deleted file mode 100644 index eb9da1c5..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/OrdinaryMessageInfoByMessageRecord.razor +++ /dev/null @@ -1,92 +0,0 @@ -@inherits AdminCompontentBase -
-
-
@T("DisplayName.ChannelType")
-
@(MessageRecord.Channel != null ? T(MessageRecord.Channel.Type.ToString()) : string.Empty)
-
-
-
@T("DisplayName.Channel")
-
@MessageRecord.Channel?.DisplayName
-
- @if (MessageRecord.Channel?.Type == ChannelTypes.App) - { - - - - - - - } -
-
@T("DisplayName.MessageInfoTitle")
-
@MessageInfo.Title
-
-
-
@T("MessageContent")
-
-
- @if (MessageInfo.IsJump) - { -
-
@T("DisplayName.MessageTemplateJumpUrl")
-
@MessageInfo.JumpUrl
-
- } - @if (MessageRecord.Channel?.Type == ChannelTypes.App) - { - @if (!string.IsNullOrEmpty(MessageRecord.ExtraProperties.GetProperty(BusinessConsts.INTENT_URL))) - { -
-
@T("IntentUrl")
-
@(MessageRecord.ExtraProperties.GetProperty(BusinessConsts.INTENT_URL))
-
- } - @if (MessageInfo.ExtraProperties.Any()) - { -
@T("AdditionalFields")
- - - - - @T("Key") - - - @T("Value") - - - - - - - - @foreach (var item in MessageInfo.ExtraProperties) - { - - @item.Key - @item.Value - - } - - - } - } -
- -@code { - [Parameter] - public Guid MessageInfoId { get; set; } - - [Parameter] - public MessageRecordDto MessageRecord { get; set; } = new(); - - public MessageInfoDto MessageInfo { get; set; } = new(); - - MessageInfoService MessageInfoService => McCaller.MessageInfoService; - - protected override string? PageName { get; set; } = "MessageRecordBlock"; - - protected override async Task OnParametersSetAsync() - { - MessageInfo = await MessageInfoService.GetAsync(MessageInfoId) ?? new(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/ReceiverTypeSelect.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/ReceiverTypeSelect.razor deleted file mode 100644 index 31f8cf0f..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/ReceiverTypeSelect.razor +++ /dev/null @@ -1,81 +0,0 @@ -@inherits AdminCompontentBase - -
- -
-
- - - @if (hoverContext.Hover) - { - mdi-account-supervisor-circle -
@T("DisplayName.ReceiverType.Assign")
- } - else if (Value == ReceiverTypes.Assign) - { - mdi-account-supervisor-circle -
@T("DisplayName.ReceiverType.Assign")
- } - else - { - mdi-account-supervisor-circle -
@T("DisplayName.ReceiverType.Assign")
- } -
-
-
-
- - - @if (hoverContext.Hover) - { - mdi-email -
@T("DisplayName.ReceiverType.Broadcast")
- } - else if (Value == ReceiverTypes.Broadcast) - { - mdi-email -
@T("DisplayName.ReceiverType.Broadcast")
- } - else - { - mdi-email -
@T("DisplayName.ReceiverType.Broadcast")
- } -
-
-
-
-
-
- -@code { - [Parameter] - public ReceiverTypes Value { get; set; } - - [Parameter] - public EventCallback OnClick { get; set; } - - private ReceiverTypes _hoverType; - - private async Task HandleReceiverType(ReceiverTypes receiverType) - { - _hoverType = default; - - if (OnClick.HasDelegate) - { - await OnClick.InvokeAsync(receiverType); - } - else - { - Value = receiverType; - } - } - - private void HandleHoverChanged(bool val, ReceiverTypes hoverType) - { - _hoverType = val ? hoverType : default; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/SendTestMessageModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/SendTestMessageModal.razor deleted file mode 100644 index 5090a81b..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/SendTestMessageModal.razor +++ /dev/null @@ -1,23 +0,0 @@ -@inherits AdminCompontentBase -
- - - - - - - @(T("SendTestMessage")) - - -
diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/SendTestMessageModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/SendTestMessageModal.razor.cs deleted file mode 100644 index 7a0bd42d..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/SendTestMessageModal.razor.cs +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; - -public partial class SendTestMessageModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private SendTestMessageTaskInputDto _input = new(); - private bool _visible; - private List _userIds = new List(); - private Components.Modules.Subjects.UserAutoComplete _userRef = default!; - private ChannelTypes? _type; - - MessageTaskService MessageTaskService => McCaller.MessageTaskService; - - public async Task OpenModalAsync(Guid messageTaskId, ChannelTypes? type) - { - _input.Id = messageTaskId; - _type = type; - - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleOkAsync() - { - Loading = true; - await MessageTaskService.SendTestAsync(_input); - Loading = false; - await SuccessMessageAsync(T("MessageTaskSendMessage")); - _visible = false; - - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - ResetForm(); - } - - private void ResetForm() - { - _input = new(); - } - - private void HandleUserChange(List userId) - { - _userIds = userId; - _input.ReceiverUsers = _userRef.UserSelect.Select(x => new MessageReceiverUserDto - { - UserId = x.Id, - ChannelUserIdentity = GetChannelUserIdentity(x, _type) - }).ToList(); - } - - private string GetChannelUserIdentity(UserSelectModel user, ChannelTypes? type) - { - return type switch - { - ChannelTypes.Sms => user.PhoneNumber ?? string.Empty, - ChannelTypes.Email => user.Email ?? string.Empty, - ChannelTypes.WebsiteMessage => user.Id.ToString(), - _ => string.Empty - }; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateInfo.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateInfo.razor deleted file mode 100644 index eead50a3..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateInfo.razor +++ /dev/null @@ -1,87 +0,0 @@ -@inherits AdminCompontentBase - -@if (Template.Channel?.Type == ChannelTypes.App) -{ - - - - - - - -} -@if (ComputedTitleShow) -{ - - - - - - -} - - - - - -@if (ComputedJumpUrlShow) -{ - - - - - fa:fas fa-link - - - - -} -@if (Template.Channel?.Type == ChannelTypes.App) -{ - - - - - @T("OptionalConfiguration") - - - Android - - - - - - Ios - - - - - - - -} - -@code { - [Parameter] - public MessageTemplateDto Template { get; set; } = new(); - - private bool ComputedJumpUrlShow - { - get - { - return Template.IsJump && (Template.Channel?.Type == ChannelTypes.WebsiteMessage || (Template.Channel?.Type == ChannelTypes.App && Template.Options.GetProperty("IsWebsiteMessage") || Template.Channel?.Type == ChannelTypes.WeixinWork)); - } - } - - private bool ComputedTitleShow - { - get - { - return !(Template.Channel?.Type == ChannelTypes.Sms || (Template.Channel?.Type == ChannelTypes.WeixinWork && Template.TemplateType == (int)WeixinWorkTemplateTypes.Text) || Template.Channel?.Type == ChannelTypes.WeixinWorkWebhook); - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageCreateModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageCreateModal.razor deleted file mode 100644 index eec4b67b..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageCreateModal.razor +++ /dev/null @@ -1,155 +0,0 @@ -@inherits AdminCompontentBase -
- - - - - - - @T("DisplayName.MessageInfoContent") - - - - @T("DisplayName.MessageTaskReceiver") - - - - @T("DisplayName.MessageTaskSendingRule") - - - - - - -
-
- - - - - - - - - - - - - - - - - - - @if (_model.EntityId != default) - { - - - @if (_model.Variables.Any()) - { - - } - } - - -
- - @T("Save") - @T("NextStep") -
-
-
-
- - - - @if (_model.ComputedBroadcast && !_selectReceiverType) - { - - } - else - { - - - } - - -
- - mdi-keyboard-backspace - - - @if (!_model.ComputedBroadcast || _selectReceiverType) - { - @T("Save") - @T("NextStep") - } -
-
-
-
- - - - - @if (_messageInfo.Channel != null && _messageInfo.Channel.Type == ChannelTypes.Sms) - { - - - - - - - } - - - -
- - mdi-keyboard-backspace - - - @T("Save") - @T("SaveSend") -
-
-
-
-
-
-
-
-
-
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageCreateModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageCreateModal.razor.cs deleted file mode 100644 index 32cc0ca9..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageCreateModal.razor.cs +++ /dev/null @@ -1,194 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; - -public partial class TemplateMessageCreateModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm? _form; - private MessageTaskUpsertModel _model = new() { EntityType = MessageEntityTypes.Template, SystemId = MasaStackProject.MC.Name }; - private bool _visible; - private List _templateItems = new(); - private MessageTemplateDto _messageInfo = new(); - private List _channelItems = new(); - private List _selectReceivers = new(); - private List _importReceivers = new(); - private bool _selectReceiverType; - - MessageTaskService MessageTaskService => McCaller.MessageTaskService; - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - ChannelService ChannelService => McCaller.ChannelService; - - public async Task OpenModalAsync() - { - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - - _form?.ResetValidation(); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleSaveAsync() - { - _model.IsDraft = true; - await HandleOkAsync(); - } - - private async Task HandleSendAsync() - { - _model.IsDraft = false; - await HandleOkAsync(); - } - - private async Task HandleOkAsync() - { - Check.NotNull(_form, "form not found"); - - SetReceivers(); - if (!_form.Validate()) - { - return; - } - Loading = true; - var inputDto = _model.Adapt(); - await MessageTaskService.CreateAsync(inputDto); - Loading = false; - if (_model.IsDraft) - { - await SuccessMessageAsync(T("MessageTaskCreateMessage")); - } - else - { - await SuccessMessageAsync(T("MessageTaskSendMessage")); - } - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new() { EntityType = MessageEntityTypes.Template, SystemId = MasaStackProject.MC.Name }; - _selectReceivers = new(); - _importReceivers = new(); - _selectReceiverType = false; - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private async Task HandleTemplateSelectedAsync(MessageTemplateDto item) - { - if (item.Channel != null) _channelItems = await ChannelService.GetListByTypeAsync(item.Channel.Type); - _messageInfo = item; - if (item.Channel != null) _model.ChannelId = item.Channel.Id; - _model.Sign = item.Sign; - _model.Variables = FillVariables(_messageInfo.Items); - HandleChannelTypeChanged(); - } - - private ExtraPropertyDictionary FillVariables(List items) - { - var source = new ExtraPropertyDictionary(); - foreach (var item in items) - { - source.TryAdd(item.Code, string.Empty); - } - return source; - } - - private void HandleChannelTypeChanged() - { - if (_messageInfo.Channel?.Type != ChannelTypes.WebsiteMessage) - { - _model.ReceiverType = ReceiverTypes.Assign; - } - else - { - _model.ReceiverType = default; - } - } - - private void HandleReceiverType(ReceiverTypes receiverType) - { - _model.ReceiverType = receiverType; - _selectReceiverType = true; - if (receiverType == ReceiverTypes.Broadcast) - { - _model.Step = 3; - } - } - - private async Task HandleChannelTypeChangeAsync() - { - _channelItems = _model.ChannelType.HasValue ? await ChannelService.GetListByTypeAsync(_model.ChannelType.Value) : new(); - if (_model.ChannelType != ChannelTypes.WebsiteMessage) - { - _model.ReceiverType = ReceiverTypes.Assign; - } - else - { - _model.ReceiverType = default; - } - } - - private async Task HandleChannelChangeAsync() - { - var inputDto = new GetMessageTemplateInputDto(999) { AuditStatus = MessageTemplateAuditStatuses.Adopt, ChannelId = _model.ChannelId }; - _templateItems = (await MessageTemplateService.GetListAsync(inputDto)).Result; - } - - private void HandleReceiverBack() - { - if (_model.ChannelType != ChannelTypes.WebsiteMessage || !_selectReceiverType) - { - _model.Step = 1; - } - - if (_selectReceiverType) - { - _selectReceiverType = false; - } - } - - private void HandleSendingRuleBack() - { - _model.Step = 2; - if (_model.ReceiverType == ReceiverTypes.Broadcast) - { - _selectReceiverType = false; - } - } - - private void HandleNextStep() - { - SetReceivers(); - _model.IsDraft = false; - if (!_form.Validate()) - { - return; - } - _model.Step++; - } - - private void SetReceivers() - { - _model.Receivers = _model.SelectReceiverType == MessageTaskSelectReceiverTypes.ManualSelection ? _selectReceivers : _importReceivers; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageEditModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageEditModal.razor deleted file mode 100644 index a37b3853..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageEditModal.razor +++ /dev/null @@ -1,151 +0,0 @@ -@inherits AdminCompontentBase -
- - - - - - - @T("DisplayName.MessageInfoContent") - - - - @T("DisplayName.MessageTaskReceiver") - - - - @T("DisplayName.MessageTaskSendingRule") - - - - - - -
-
- - - - - - - - - - - - - - - - - - - @if (_model.EntityId != default) - { - - - - } - - -
- - @T("Save") - @T("NextStep") -
-
-
-
- - - - @if (_model.ComputedBroadcast && !_selectReceiverType) - { - - } - else - { - - - } - - -
- - mdi-keyboard-backspace - - - @if (!_model.ComputedBroadcast || _selectReceiverType) - { - @T("Save") - @T("NextStep") - } -
-
-
-
- - - - - @if (_messageInfo.Channel != null && _messageInfo.Channel.Type == ChannelTypes.Sms) - { - - - - - - - } - - - -
- - mdi-keyboard-backspace - - - @T("Save") - @T("SaveSend") -
-
-
-
-
-
-
-
-
-
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageEditModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageEditModal.razor.cs deleted file mode 100644 index 74147e44..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageEditModal.razor.cs +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; - -public partial class TemplateMessageEditModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm? _form; - private MessageTaskUpsertModel _model = new() { EntityType = MessageEntityTypes.Template, SystemId = MasaStackProject.MC.Name }; - private Guid _entityId; - private bool _visible; - private List _templateItems = new(); - private MessageTemplateDto _messageInfo = new(); - private List _channelItems = new(); - private List _selectReceivers = new(); - private List _importReceivers = new(); - private bool _selectReceiverType; - - MessageTaskService MessageTaskService => McCaller.MessageTaskService; - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - ChannelService ChannelService => McCaller.ChannelService; - - public async Task OpenModalAsync(MessageTaskDto model) - { - _entityId = model.Id; - _model = model.Adapt(); - await GetFormDataAsync(); - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - - _form?.ResetValidation(); - } - - private async Task GetFormDataAsync() - { - var dto = await MessageTaskService.GetAsync(_entityId) ?? new MessageTaskDto(); - _model = dto.Adapt(); - if (_model.SelectReceiverType == MessageTaskSelectReceiverTypes.ManualSelection) - { - _selectReceivers = _model.Receivers; - } - else - { - _importReceivers = _model.Receivers; - } - _channelItems = _model.ChannelType.HasValue ? await ChannelService.GetListByTypeAsync(_model.ChannelType.Value) : new(); - - if (_model.EntityId != default) - { - _messageInfo = await MessageTemplateService.GetAsync(_model.EntityId) ?? new(); - - FillVariables(_model.Variables,_messageInfo.Items); - } - - await HandleChannelChangeAsync(); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleSaveAsync() - { - _model.IsDraft = true; - await HandleOkAsync(); - } - - private async Task HandleSendAsync() - { - _model.IsDraft = false; - await HandleOkAsync(); - } - - private async Task HandleOkAsync() - { - Check.NotNull(_form, "form not found"); - - SetReceivers(); - if (!_form.Validate()) - { - return; - } - Loading = true; - var inputDto = _model.Adapt(); - await MessageTaskService.UpdateAsync(_entityId, inputDto); - Loading = false; - if (_model.IsDraft) - { - await SuccessMessageAsync(T("MessageTaskEditMessage")); - } - else - { - await SuccessMessageAsync(T("MessageTaskSendMessage")); - } - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new() { EntityType = MessageEntityTypes.Template, SystemId = MasaStackProject.MC.Name }; - _selectReceivers = new(); - _importReceivers = new(); - _selectReceiverType = false; - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private void HandleTemplateSelected(MessageTemplateDto item) - { - _messageInfo = item; - if (item.Channel != null) _model.ChannelId = item.Channel.Id; - _model.Sign = item.Sign; - FillVariables(null, _messageInfo.Items); - HandleChannelTypeChanged(); - } - - private void FillVariables(ExtraPropertyDictionary? variables, List items) - { - if (variables == null) - variables = new ExtraPropertyDictionary(); - - foreach (var item in items) - { - if (!variables.Any(x => x.Key == item.Code)) - { - variables.TryAdd(item.Code, string.Empty); - } - } - } - - private void HandleChannelTypeChanged() - { - if (_messageInfo.Channel?.Type != ChannelTypes.WebsiteMessage) - { - _model.ReceiverType = ReceiverTypes.Assign; - } - else - { - _model.ReceiverType = default; - } - } - - private void HandleReceiverType(ReceiverTypes receiverType) - { - _model.ReceiverType = receiverType; - _selectReceiverType = true; - if (receiverType == ReceiverTypes.Broadcast) - { - _model.Step = 3; - } - } - - private async Task HandleChannelTypeChangeAsync() - { - _channelItems = _model.ChannelType.HasValue ? await ChannelService.GetListByTypeAsync(_model.ChannelType.Value) : new(); - if (_model.ChannelType != ChannelTypes.WebsiteMessage) - { - _model.ReceiverType = ReceiverTypes.Assign; - } - else - { - _model.ReceiverType = default; - } - if (_channelItems.Count > 0 && !_channelItems.Any(c => c.Id == _model.ChannelId)) - { - _model.ChannelId = null; - } - } - - private async Task HandleChannelChangeAsync() - { - var inputDto = new GetMessageTemplateInputDto(999) { AuditStatus = MessageTemplateAuditStatuses.Adopt, ChannelId = _model.ChannelId }; - _templateItems = (await MessageTemplateService.GetListAsync(inputDto)).Result; - } - - private void HandleReceiverBack() - { - if (_model.ChannelType != ChannelTypes.WebsiteMessage || !_selectReceiverType) - { - _model.Step = 1; - } - - if (_selectReceiverType) - { - _selectReceiverType = false; - } - } - - private void HandleSendingRuleBack() - { - _model.Step = 2; - if (_model.ReceiverType == ReceiverTypes.Broadcast) - { - _selectReceiverType = false; - } - } - - private void HandleNextStep() - { - SetReceivers(); - _model.IsDraft = false; - if (!_form.Validate()) - { - return; - } - _model.Step++; - } - - private void SetReceivers() - { - _model.Receivers = _model.SelectReceiverType == MessageTaskSelectReceiverTypes.ManualSelection ? _selectReceivers : _importReceivers; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfo.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfo.razor deleted file mode 100644 index f45835cf..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfo.razor +++ /dev/null @@ -1,101 +0,0 @@ -@inherits AdminCompontentBase -
-
-
@T("DisplayName.ChannelType")
-
@T(MessageTask.Channel.Type.ToString())
-
-
-
@T("DisplayName.Channel")
-
@MessageTask.Channel.DisplayName
-
- @if (MessageTask.ChannelType == ChannelTypes.App) - { - - - - - - - } -
-
@T("DisplayName.MessageInfoTitle")
-
@(string.IsNullOrEmpty(MessageTemplate.Title)?MessageTemplate.DisplayName:MessageTemplate.Title)
-
-
-
@T("MessageContent")
-
-
- @if (MessageTemplate.IsJump) - { -
-
@T("DisplayName.MessageTemplateJumpUrl")
-
@MessageTemplate.JumpUrl
-
- } - @if (MessageTask.ChannelType == ChannelTypes.App) - { - @if (!string.IsNullOrEmpty(MessageTemplate.Options.GetProperty(BusinessConsts.INTENT_URL))) - { -
-
@T("IntentUrl")
-
@(MessageTemplate.Options.GetProperty(BusinessConsts.INTENT_URL))
-
- } - @if (MessageTemplate.ExtraProperties.Any()) - { -
@T("AdditionalFields")
- - - - - @T("Key") - - - @T("Value") - - - - - - - - @foreach (var item in MessageTemplate.ExtraProperties) - { - - @item.Key - @item.Value - - } - - - } - } - @if (!IsRender && Variables.Any()) - { -
@T("DisplayName.VariableValueTransfer")
- - - - - @T("DisplayName.MessageTemplateItemCode") - - - @T("DisplayName.MessageTemplateItemValue") - - - - - - - - @foreach (var item in Variables) - { - - @item.Key - @item.Value - - } - - - } -
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfo.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfo.razor.cs deleted file mode 100644 index c0163851..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfo.razor.cs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; - -public partial class TemplateMessageInfo : AdminCompontentBase -{ - [Parameter] - public Guid MessageTemplateId { get; set; } - - [Parameter] - public MessageTaskDto MessageTask { get; set; } = new(); - - [Parameter] - public ExtraPropertyDictionary Variables { get; set; } = new(); - - [Parameter] - public bool IsRender { get; set; } - - public MessageTemplateDto MessageTemplate { get; set; } = new(); - - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - protected override async Task OnParametersSetAsync() - { - MessageTemplate = await MessageTemplateService.GetAsync(MessageTemplateId) ?? new(); - if (IsRender) - { - await RenderMessageContent(); - } - } - - public async Task RenderMessageContent() - { - var startstr = "{{"; - var endstr = "}}"; - if (MessageTask.Channel.Type == ChannelTypes.Sms) - { - startstr = "${"; - endstr = "}"; - MessageTemplate.Content = $"【{MessageTask.Sign}】{MessageTemplate.Content}"; - } - MessageTemplate.Title = await RenderAsync(MessageTemplate.Title, Variables, startstr, endstr); - MessageTemplate.Content = await RenderAsync(MessageTemplate.Content, Variables, startstr, endstr); - MessageTemplate.JumpUrl = await RenderAsync(MessageTemplate.JumpUrl, Variables, startstr, endstr); - } - - public Task RenderAsync(string context, ExtraPropertyDictionary model, string startstr, string endstr) - { - foreach (var item in model) - { - context = context.Replace($"{startstr}{item.Key}{endstr}", item.Value.ToString()); - } - return Task.FromResult(context); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfo.razor.css b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfo.razor.css deleted file mode 100644 index 2cfea691..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfo.razor.css +++ /dev/null @@ -1,6 +0,0 @@ -.template-message-info ::deep .theme--light.m-data-table > .m-data-table__wrapper > table > thead > tr:last-child > th { - border-bottom: none !important; -} -.template-message-info ::deep .theme--light.m-data-table > .m-data-table__wrapper > table > tbody > tr:not(:last-child) > td:not(.m-data-table__mobile-row) { - border-bottom: none; -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfoByMessageRecord.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfoByMessageRecord.razor deleted file mode 100644 index e4d7c776..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/Modules/TemplateMessageInfoByMessageRecord.razor +++ /dev/null @@ -1,152 +0,0 @@ -@inherits AdminCompontentBase -
-
-
@T("DisplayName.ChannelType")
-
@T(MessageRecord.Channel.Type.ToString())
-
-
-
@T("DisplayName.Channel")
-
@MessageRecord.Channel.DisplayName
-
- @if (MessageRecord.Channel.Type == ChannelTypes.App) - { - - - - - - - } -
-
@T("DisplayName.MessageInfoTitle")
-
@(string.IsNullOrEmpty(MessageTemplate.Title) ? MessageTemplate.DisplayName : MessageTemplate.Title)
-
-
-
@T("MessageContent")
-
-
- @if (MessageTemplate.IsJump) - { -
-
@T("DisplayName.MessageTemplateJumpUrl")
-
@MessageTemplate.JumpUrl
-
- } - @if (MessageRecord.Channel.Type == ChannelTypes.App) - { - @if (!string.IsNullOrEmpty(MessageTemplate.Options.GetProperty(BusinessConsts.INTENT_URL))) - { -
-
@T("IntentUrl")
-
@(MessageTemplate.Options.GetProperty(BusinessConsts.INTENT_URL))
-
- } - @if (MessageTemplate.ExtraProperties.Any()) - { -
@T("AdditionalFields")
- - - - - @T("Key") - - - @T("Value") - - - - - - - - @foreach (var item in MessageTemplate.ExtraProperties) - { - - @item.Key - @item.Value - - } - - - } - } - @if (!IsRender && Variables.Any()) - { -
@T("DisplayName.VariableValueTransfer")
- - - - - @T("DisplayName.MessageTemplateItemCode") - - - @T("DisplayName.MessageTemplateItemValue") - - - - - - - - @foreach (var item in Variables) - { - - @item.Key - @item.Value - - } - - - } -
- -@code { - [Parameter] - public Guid MessageTemplateId { get; set; } - - [Parameter] - public MessageRecordDto MessageRecord { get; set; } = new(); - - [Parameter] - public ExtraPropertyDictionary Variables { get; set; } = new(); - - [Parameter] - public bool IsRender { get; set; } - - public MessageTemplateDto MessageTemplate { get; set; } = new(); - - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - protected override async Task OnParametersSetAsync() - { - MessageTemplate = await MessageTemplateService.GetAsync(MessageTemplateId) ?? new(); - if (IsRender) - { - await RenderMessageContent(); - } - } - - public async Task RenderMessageContent() - { - var startstr = "{{"; - var endstr = "}}"; - if (MessageRecord.Channel.Type == ChannelTypes.Sms) - { - startstr = "${"; - endstr = "}"; - MessageTemplate.Content = $"【{MessageTemplate.Sign}】{MessageTemplate.Content}"; - } - MessageTemplate.Title = await RenderAsync(MessageTemplate.Title, Variables, startstr, endstr); - MessageTemplate.Content = await RenderAsync(MessageTemplate.Content, Variables, startstr, endstr); - MessageTemplate.JumpUrl = await RenderAsync(MessageTemplate.JumpUrl, Variables, startstr, endstr); - } - - public Task RenderAsync(string context, ExtraPropertyDictionary model, string startstr, string endstr) - { - foreach (var item in model) - { - context = context.Replace($"{startstr}{item.Key}{endstr}", item.Value.ToString()); - } - return Task.FromResult(context); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessage.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessage.razor deleted file mode 100644 index 50d3f93a..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessage.razor +++ /dev/null @@ -1,33 +0,0 @@ -@inherits AdminCompontentBase - -
- -
-
- - - mdi-email -
@T("DisplayName.MessageEntityType.Ordinary")
-
-
-
-
- - - mdi-collage -
@T("DisplayName.MessageEntityType.Template")
-
-
-
-
-
- -
- fas fa-tasks@T("DisplayName.MessageTaskList") -
-
- - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessage.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessage.razor.cs deleted file mode 100644 index 2b5ed9d2..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessage.razor.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks; - -public partial class SendMessage : AdminCompontentBase -{ - [Parameter] - public EventCallback OnNavigateToList { get; set; } - - private OrdinaryMessageCreateModal _ordinaryCreateModal = default!; - private TemplateMessageCreateModal _templateCreateModal = default!; - - private async Task NavigateToList() - { - if (OnNavigateToList.HasDelegate) - { - await OnNavigateToList.InvokeAsync(); - } - //NavigationManager.NavigateTo("/messageTasks/list"); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessage.razor.css b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessage.razor.css deleted file mode 100644 index c070c52f..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessage.razor.css +++ /dev/null @@ -1,19 +0,0 @@ -.grid { - display: grid; - grid-template-columns: repeat(2, 33.3%); - gap: 24px; - width: 100%; - justify-content: center; -} - - .grid .item { - height: 0; - padding-bottom: 100%; - position: relative; - } - - .grid .item ::deep .m-card { - width: 100%; - height: 100%; - position: absolute; - } \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessageManagement.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessageManagement.razor deleted file mode 100644 index 41c5a459..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessageManagement.razor +++ /dev/null @@ -1,11 +0,0 @@ -@inherits AdminCompontentBase -@page "/messageTasks/sendMessage" -@T("Permission.SendMessage") -@if (_isSend) -{ - -} -else -{ - -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessageManagement.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessageManagement.razor.cs deleted file mode 100644 index fe23aded..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTasks/SendMessageManagement.razor.cs +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTasks; - -public partial class SendMessageManagement : AdminCompontentBase -{ - private bool _isSend = true; -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/AppTemplateManagement.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/AppTemplateManagement.razor deleted file mode 100644 index 392f5098..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/AppTemplateManagement.razor +++ /dev/null @@ -1,89 +0,0 @@ -@inherits AdminCompontentBase -@page "/messageTemplates/appTemplateManagement" - -@T("App") - - - - - @T("AppTitle") - - - - - - - - - - - - - - - - - @header.Text - - - @switch (context.Header.Value) - { - case ("ChannelDisplayName"): - - break; - case nameof(MessageTemplateDto.AuditStatus): - string color = string.Empty; - switch (context.Item.AuditStatus) - { - case MessageTemplateAuditStatuses.WaitAudit: - color = "orange"; - break; - case MessageTemplateAuditStatuses.Adopt: - color = "sample-green"; - break; - case MessageTemplateAuditStatuses.Fail: - color = "error"; - break; - default: - break; - } - - @T($"DisplayName.MessageTemplateAuditStatus.{context.Item.AuditStatus.ToString()}") - - break; - case nameof(MessageTemplateDto.Status): - - @T($"DisplayName.MessageTemplateStatus.{context.Item.Status.ToString()}") - - break; - case "Action": - mdi-pencil - break; - default: - - break; - } - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/AppTemplateManagement.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/AppTemplateManagement.razor.cs deleted file mode 100644 index fa811e99..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/AppTemplateManagement.razor.cs +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates; - -public partial class AppTemplateManagement : AdminCompontentBase -{ - private AppTemplateUpsertModal _upsertModal = default!; - private GetMessageTemplateInputDto _queryParam = new() { ChannelType = ChannelTypes.App }; - private PaginatedListDto _entities = new(); - private List _channelItems = new(); - private DateTimeOffset? _endTime; - private DateTimeOffset? _startTime; - - private ChannelService ChannelService => McCaller.ChannelService; - - private MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - protected override string? PageName { get; set; } = "MessageTemplateBlock"; - - protected async override Task OnInitializedAsync() - { - _channelItems = await ChannelService.GetListByTypeAsync(ChannelTypes.App); - } - protected async override Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - await LoadData(); - } - await base.OnAfterRenderAsync(firstRender); - } - - public List> GetHeaders() - { - var prefix = "DisplayName.MessageTemplate"; - - return new() - { - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.Code)}"), Value = nameof(MessageTemplateDto.Code), Sortable = false, Width = "8rem" }, - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.Title)}"), Value = nameof(MessageTemplateDto.Title), Sortable = false, Width = "13.125rem" }, - new() { Text = T($"{prefix}ChannelDisplayName"), Value = "ChannelDisplayName", Sortable = false, Width = "6.5625rem" }, - new() { Text = T("Modifier"), Value = nameof(MessageTemplateDto.ModifierName), Sortable = false, Width = "6.5625rem" }, - new() { Text = T("ModificationTime"), Value = nameof(MessageTemplateDto.ModificationTime), Sortable = true, Width = "13.125rem" }, - new() { Text = T("Action"), Value = "Action", Sortable = false, Width = 105, Align = DataTableHeaderAlign.Center }, - }; - } - - private Task DateRangChangedAsync((DateTimeOffset? startDate, DateTimeOffset? endDate) args) - { - (_startTime, _endTime) = args; - _queryParam.StartTime = _startTime?.UtcDateTime; - _queryParam.EndTime = _endTime?.UtcDateTime; - return RefreshAsync(); - } - - private async Task LoadData() - { - Loading = true; - _entities = (await MessageTemplateService.GetListAsync(_queryParam)); - Loading = false; - StateHasChanged(); - } - - private async Task HandleOk() - { - await LoadData(); - } - - private async Task RefreshAsync() - { - _queryParam.Page = 1; - await LoadData(); - } - - private async Task HandlePageChanged(int page) - { - _queryParam.Page = page; - await LoadData(); - } - - private async Task HandlePageSizeChanged(int pageSize) - { - _queryParam.PageSize = pageSize; - await LoadData(); - } - - private async Task HandleClearAsync() - { - _queryParam = new() { ChannelType = ChannelTypes.App }; - await LoadData(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/EmailTemplateManagement.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/EmailTemplateManagement.razor deleted file mode 100644 index 1bf96a1f..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/EmailTemplateManagement.razor +++ /dev/null @@ -1,90 +0,0 @@ -@inherits AdminCompontentBase -@page "/messageTemplates/emailTemplateManagement" - -@T("Email") - - - - - @T("EmailTemplateTitle") - - - - - - - - - - - - - - - - - @header.Text - - - @switch (context.Header.Value) - { - case ("ChannelDisplayName"): - - break; - case nameof(MessageTemplateDto.AuditStatus): - string color = string.Empty; - switch (context.Item.AuditStatus) - { - case MessageTemplateAuditStatuses.WaitAudit: - color = "orange"; - break; - case MessageTemplateAuditStatuses.Adopt: - color = "sample-green"; - break; - case MessageTemplateAuditStatuses.Fail: - color = "error"; - break; - default: - break; - } - - @T($"DisplayName.MessageTemplateAuditStatus.{context.Item.AuditStatus.ToString()}") - - break; - case nameof(MessageTemplateDto.Status): - - @T($"DisplayName.MessageTemplateStatus.{context.Item.Status.ToString()}") - - break; - case "Action": - mdi-pencil - break; - default: - - break; - } - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/EmailTemplateManagement.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/EmailTemplateManagement.razor.cs deleted file mode 100644 index a81c7038..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/EmailTemplateManagement.razor.cs +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates; - -public partial class EmailTemplateManagement : AdminCompontentBase -{ - public List> Headers { get; set; } = new(); - - private EmailTemplateEditModal _editModal = default!; - private EmailTemplateCreateModal _createModal = default!; - private GetMessageTemplateInputDto _queryParam = new() { ChannelType = ChannelTypes.Email }; - private PaginatedListDto _entities = new(); - private List _channelItems = new(); - private DateTimeOffset? _endTime; - private DateTimeOffset? _startTime; - - private ChannelService ChannelService => McCaller.ChannelService; - - private MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - protected override string? PageName { get; set; } = "MessageTemplateBlock"; - - protected async override Task OnInitializedAsync() - { - _channelItems = await ChannelService.GetListByTypeAsync(ChannelTypes.Email); - } - - protected async override Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - await LoadData(); - } - await base.OnAfterRenderAsync(firstRender); - } - - public List> GetHeaders() - { - var _prefix = "DisplayName.MessageTemplate"; - - return new() - { - new() { Text = T($"{_prefix}{nameof(MessageTemplateDto.Code)}"), Value = nameof(MessageTemplateDto.Code), Sortable = false, Width = "8rem" }, - new() { Text = T($"{_prefix}{nameof(MessageTemplateDto.Title)}"), Value = nameof(MessageTemplateDto.Title), Sortable = false, Width = "13.125rem" }, - new() { Text = T($"{_prefix}ChannelDisplayName"), Value = "ChannelDisplayName", Sortable = false, Width = "6.5625rem" }, - new() { Text = T("Modifier"), Value = nameof(MessageTemplateDto.ModifierName), Sortable = false, Width = "6.5625rem" }, - new() { Text = T("ModificationTime"), Value = nameof(MessageTemplateDto.ModificationTime), Sortable = true, Width = "13.125rem" }, - new() { Text = T("Action"), Value = "Action", Sortable = false, Width = 105, Align = DataTableHeaderAlign.Center }, - }; - } - - private Task DateRangChangedAsync((DateTimeOffset? startDate, DateTimeOffset? endDate) args) - { - (_startTime, _endTime) = args; - _queryParam.StartTime = _startTime?.UtcDateTime; - _queryParam.EndTime = _endTime?.UtcDateTime; - return RefreshAsync(); - } - - private async Task LoadData() - { - Loading = true; - _entities = (await MessageTemplateService.GetListAsync(_queryParam)); - Loading = false; - StateHasChanged(); - } - - private async Task HandleOk() - { - await LoadData(); - } - - private async Task RefreshAsync() - { - _queryParam.Page = 1; - await LoadData(); - } - - private async Task HandlePageChanged(int page) - { - _queryParam.Page = page; - await LoadData(); - } - - private async Task HandlePageSizeChanged(int pageSize) - { - _queryParam.PageSize = pageSize; - await LoadData(); - } - - private async Task HandleClearAsync() - { - _queryParam = new() { ChannelType = ChannelTypes.Email }; - await LoadData(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/AppTemplateUpsertModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/AppTemplateUpsertModal.razor deleted file mode 100644 index 0b447d39..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/AppTemplateUpsertModal.razor +++ /dev/null @@ -1,111 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @T("OptionalConfiguration") - - - Android - - - - - - Ios - - - - - - - - - - - -
- @T("Description.MessageTemplate.PerDayLimit.Tips") -
- - -
- @T("Unit.Bar") -
-
-
-
-
-
diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/AppTemplateUpsertModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/AppTemplateUpsertModal.razor.cs deleted file mode 100644 index 54ded2f3..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/AppTemplateUpsertModal.razor.cs +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates.Modules; - -public partial class AppTemplateUpsertModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm? _form; - private AppTemplateUpsertModel _model = new(); - private bool _visible; - private List _channelItems = new(); - private Guid _entityId; - - ChannelService ChannelService => McCaller.ChannelService; - - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - public async Task OpenModalAsync(MessageTemplateDto? model = null) - { - _entityId = model?.Id ?? default; - _model = model?.Adapt() ?? new(); - - if (_entityId != default) - { - await GetFormDataAsync(); - } - else - { - await InitDataAsync(); - } - - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - - _form?.ResetValidation(); - } - - private async Task InitDataAsync() - { - _model.ChannelType = ChannelTypes.App; - - if (string.IsNullOrEmpty(_model.Code)) - { - _model.Code = $"App_{UtilConvert.GetGuidToNumber()}"; - } - - await HandleSelectChannelTypeAsync(_model.ChannelType); - } - - private async Task GetFormDataAsync() - { - var dto = await MessageTemplateService.GetAsync(_entityId) ?? new(); - _model = dto.Adapt(); - _model.ChannelType = dto.Channel.Type; - await HandleSelectChannelTypeAsync(_model.ChannelType); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleOkAsync() - { - Check.NotNull(_form, "form not found"); - - _model.DisplayName = _model.Title; - if (!_form.Validate()) - { - return; - } - Loading = true; - - var inputDto = _model.Adapt(); - - if (_entityId == default) - { - await MessageTemplateService.CreateAsync(inputDto); - } - else - { - await MessageTemplateService.UpdateAsync(_entityId, inputDto); - } - - Loading = false; - await UpsertSuccessfulMessage(_entityId, T("MessageTemplate")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new(); - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private async Task HandleSelectChannelTypeAsync(ChannelTypes Type) - { - _channelItems = await ChannelService.GetListByTypeAsync(Type); - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateCreateModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateCreateModal.razor deleted file mode 100644 index cc979ab3..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateCreateModal.razor +++ /dev/null @@ -1,63 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @T("Description.MessageTemplate.PerDayLimit.Tips") -
- -
- @T("Unit.Bar") -
-
-
-
-
-
diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateCreateModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateCreateModal.razor.cs deleted file mode 100644 index 8726aca5..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateCreateModal.razor.cs +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates.Modules; - -public partial class EmailTemplateCreateModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm? _form; - private MessageTemplateUpsertDto _model = new(); - private bool _visible; - private List _channelItems = new(); - - ChannelService ChannelService => McCaller.ChannelService; - - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - public async Task OpenModalAsync() - { - _model.ChannelType = ChannelTypes.Email; - if (string.IsNullOrEmpty(_model.Code)) - { - _model.Code = $"Email_{UtilConvert.GetGuidToNumber()}"; - } - await HandleSelectChannelTypeAsync(_model.ChannelType); - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - - _form?.ResetValidation(); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleOkAsync() - { - Check.NotNull(_form, "form not found"); - - _model.DisplayName = _model.Title; - if (!_form.Validate()) - { - return; - } - Loading = true; - await MessageTemplateService.CreateAsync(_model); - Loading = false; - await SuccessMessageAsync(T("MessageTemplateCreateMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new(); - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private async Task HandleSelectChannelTypeAsync(ChannelTypes Type) - { - _channelItems = await ChannelService.GetListByTypeAsync(Type); - if (_channelItems.Count == 1) - { - _model.ChannelId = _channelItems[0].Id; - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateEditModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateEditModal.razor deleted file mode 100644 index d5db5e94..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateEditModal.razor +++ /dev/null @@ -1,63 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @T("Description.MessageTemplate.PerDayLimit.Tips") -
- -
- @T("Unit.Bar") -
-
-
-
-
-
diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateEditModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateEditModal.razor.cs deleted file mode 100644 index 3dbe40df..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/EmailTemplateEditModal.razor.cs +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates.Modules; - -public partial class EmailTemplateEditModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm _form = default!; - private MessageTemplateUpsertDto _model = new(); - private Guid _entityId; - private bool _visible; - private List _channelItems = new(); - - ChannelService ChannelService => McCaller.ChannelService; - - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - public async Task OpenModalAsync(MessageTemplateDto model) - { - _entityId = model.Id; - _model = model.Adapt(); - await GetFormDataAsync(); - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - } - - private async Task GetFormDataAsync() - { - var dto = await MessageTemplateService.GetAsync(_entityId) ?? new(); - _model = dto.Adapt(); - _model.ChannelType = dto.Channel.Type; - await HandleSelectChannelType(_model.ChannelType); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleOk() - { - _model.DisplayName = _model.Title; - if (!_form.Validate()) - { - return; - } - Loading = true; - await MessageTemplateService.UpdateAsync(_entityId, _model); - Loading = false; - await SuccessMessageAsync(T("MessageTemplateEditMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private async Task HandleDelAsync() - { - await ConfirmAsync(T("DeletionConfirmationMessage", $"{T("EmailTemplate")}\"{_model.DisplayName}\""), DeleteAsync); - } - - private async Task DeleteAsync() - { - Loading = true; - await MessageTemplateService.DeleteAsync(_entityId); - Loading = false; - await SuccessMessageAsync(T("MessageTemplateDeleteMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new(); - _form.ResetValidation(); - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private async Task HandleSelectChannelType(ChannelTypes Type) - { - _channelItems = await ChannelService.GetListByTypeAsync(Type); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItemChangedEventArgs.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItemChangedEventArgs.cs deleted file mode 100644 index 3b560aa5..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItemChangedEventArgs.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates.Modules; - -public class MessageTemplateItemChangedEventArgs -{ - public string OldCode { get; set; } = string.Empty; - - public string NewCode { get; set; } = string.Empty; - - public MessageTemplateItemChangedEventArgs(string oldCode, string newCode) - { - OldCode = oldCode; - NewCode = newCode; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItems.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItems.razor deleted file mode 100644 index 47932272..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItems.razor +++ /dev/null @@ -1,107 +0,0 @@ -@inherits AdminCompontentBase -
- - - - @T("DisplayName.MessageTemplateItem") - - - - @FormTitle - - - - - - - - - - - - - - - - - - - - - - @T("Cancel") - - - @T("Save") - - - - - - - - @switch (context.Header.Value) - { - case (nameof(MessageTemplateItemDto.Code)): - if (Value.IndexOf(context.Item) == _editedIndex) - { - - } - else - { -
@context.Value
- } - break; - case (nameof(MessageTemplateItemDto.DisplayText)): - if (Value.IndexOf(context.Item)==_editedIndex) - { - - } - else - { -
@context.Value
- } - break; - case "actions": - if (Value.IndexOf(context.Item)==_editedIndex) - { -
- - mdi-close - - - mdi-check - -
- } - else - { - - mdi-pencil - - } - break; - default: -
@context.Value
- break; - } -
-
-
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItems.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItems.razor.cs deleted file mode 100644 index 5f012ba4..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItems.razor.cs +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates.Modules; - -public partial class MessageTemplateItems : AdminCompontentBase -{ - [Parameter] - public List Value { get; set; } = new(); - - [Parameter] - public EventCallback> ValueChanged { get; set; } - - [Parameter] - public EventCallback OnEditChanged { get; set; } - - private List> _headers = new(); - private bool _dialog; - private MessageTemplateItemDto _editedItem = new MessageTemplateItemDto(); - private int _editedIndex = -1; - - public string FormTitle - { - get - { - return _editedIndex == -1 ? T("Permission.AddMessageTemplateItem") : T("Permission.EditMessageTemplateItem"); - } - } - - protected override async Task OnInitializedAsync() - { - await base.OnInitializedAsync(); - var _prefix = "DisplayName.MessageTemplateItem"; - _headers = new List> - { - new (){ Text= T($"{_prefix}{nameof(MessageTemplateItemDto.Code)}"),Value= nameof(MessageTemplateItemDto.Code),Sortable=false,Width=175}, - new (){ Text= T($"{_prefix}{nameof(MessageTemplateItemDto.MappingCode)}"), Value= nameof(MessageTemplateItemDto.MappingCode),Sortable=false,Width=175}, - new (){ Text= T($"{_prefix}{nameof(MessageTemplateItemDto.DisplayText)}"), Value= nameof(MessageTemplateItemDto.DisplayText),Sortable=false,Width=166}, - new (){ Text= T("Action"), Value= "actions",Sortable=false,Width=108,Align=DataTableHeaderAlign.Center } - }; - } - - public void Close() - { - _dialog = false; - _editedItem = new MessageTemplateItemDto(); - _editedIndex = -1; - } - - public async Task SaveAsync() - { - if (_editedIndex > -1) - { - var item = Value[_editedIndex]; - if (item.Code != _editedItem.Code && OnEditChanged.HasDelegate) - { - await OnEditChanged.InvokeAsync(new MessageTemplateItemChangedEventArgs(item.Code, _editedItem.Code)); - } - item.Code = _editedItem.Code; - item.MappingCode = _editedItem.MappingCode; - item.DisplayText = _editedItem.DisplayText; - } - else - { - Value.Add(_editedItem); - } - await ValueChanged.InvokeAsync(Value); - Close(); - } - - public void EditItem(MessageTemplateItemDto item) - { - _editedIndex = Value.IndexOf(item); - _editedItem = new MessageTemplateItemDto() - { - Code = item.Code, - MappingCode = item.MappingCode, - DisplayText = item.DisplayText - }; - //_dialog = true; - } - - public async Task DeleteItemConfirmAsync() - { - Value.RemoveAt(_editedIndex); - await ValueChanged.InvokeAsync(Value); - CloseDelete(); - } - - public void CloseDelete() - { - _editedItem = new(); - _editedIndex = -1; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItems.razor.css b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItems.razor.css deleted file mode 100644 index 52dad4b2..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/MessageTemplateItems.razor.css +++ /dev/null @@ -1,18 +0,0 @@ -.message-template-items ::deep .theme--light.m-toolbar.m-sheet{ - background-color: #f6f8fd !important; -} -.message-template-items ::deep .theme--light.m-data-table { - background-color: #f6f8fd !important; -} -.message-template-items ::deep .text-start { - padding: 0 !important; -} -.message-template-items ::deep .m-toolbar__content { - padding: 0 !important; -} -.message-template-items ::deep .theme--light.m-data-table > .m-data-table__wrapper > table > tbody > tr:not(:last-child) > td:last-child, .theme--light.m-data-table > .m-data-table__wrapper > table > tbody > tr:not(:last-child) > th:last-child { - border-bottom: none; -} -.message-template-items ::deep .theme--light.m-data-table > .m-data-table__wrapper > table > tbody > tr:not(:last-child) > td:not(.m-data-table__mobile-row), .theme--light.m-data-table > .m-data-table__wrapper > table > tbody > tr:not(:last-child) > th:not(.m-data-table__mobile-row) { - border-bottom: none; -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateCreateModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateCreateModal.razor deleted file mode 100644 index 2e784d29..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateCreateModal.razor +++ /dev/null @@ -1,92 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @T("SyncTemplate") - - - - - - @if (!string.IsNullOrEmpty(_model.DisplayName)) - { - - - - - - - } - - -
- @T("Description.MessageTemplate.PerDayLimit.Tips") -
- -
- @T("Unit.Bar") -
-
-
-
-
-
diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateCreateModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateCreateModal.razor.cs deleted file mode 100644 index 0fe08607..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateCreateModal.razor.cs +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates.Modules; - -public partial class SmsTemplateCreateModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm? _form; - private MessageTemplateUpsertDto _model = new(); - private bool _visible; - private List _channelItems = new(); - private List _templateItems = new(); - - ChannelService ChannelService => McCaller.ChannelService; - - SmsTemplateService SmsTemplateService => McCaller.SmsTemplateService; - - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - public async Task OpenModalAsync() - { - _model.ChannelType = ChannelTypes.Sms; - if (string.IsNullOrEmpty(_model.Code)) - { - _model.Code = $"SMS_{UtilConvert.GetGuidToNumber()}"; - } - await HandleSelectChannelTypeAsync(_model.ChannelType); - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - - _form?.ResetValidation(); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleOkAsync() - { - Check.NotNull(_form, "form not found"); - - if (!_form.Validate()) - { - return; - } - Loading = true; - await MessageTemplateService.CreateAsync(_model); - Loading = false; - await SuccessMessageAsync(T("MessageTemplateCreateMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new(); - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private async Task HandleSelectChannelTypeAsync(ChannelTypes Type) - { - _channelItems = await ChannelService.GetListByTypeAsync(Type); - if (_channelItems.Count == 1) - { - _model.ChannelId = _channelItems[0].Id; - await HandleChannelChangeAsync(); - } - } - - private void HandleTemplateSelected(SmsTemplateDto smsTemplate) - { - _model.DisplayName = smsTemplate.TemplateName; - _model.Content = smsTemplate.TemplateContent; - _model.AuditStatus = smsTemplate.AuditStatus; - _model.AuditReason = smsTemplate.AuditReason; - _model.TemplateType = (int)smsTemplate.TemplateType; - _model.Items = ParseTemplateItem(smsTemplate.TemplateContent); - } - - private async Task HandleChannelChangeAsync() - { - _model.DisplayName = string.Empty; - _model.Content = string.Empty; - _model.TemplateId = string.Empty; - _model.Items = new(); - _templateItems = await SmsTemplateService.GetListByChannelIdAsync(_model.ChannelId); - StateHasChanged(); - } - - private List ParseTemplateItem(string content) - { - string startstr = "\\${"; - string endstr = "}"; - var paramList = UtilHelper.MidStrEx(content, startstr, endstr); - return paramList.Distinct().Select(x => new MessageTemplateItemDto { Code = x, MappingCode = x }).ToList(); - } - - private async Task SyncAsync() - { - if (_model.ChannelId == default) - { - return; - } - Loading = true; - await SmsTemplateService.SyncAsync(new SmsTemplateSyncInputDto(_model.ChannelId)); - _templateItems = await SmsTemplateService.GetListByChannelIdAsync(_model.ChannelId); - Loading = false; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateEditModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateEditModal.razor deleted file mode 100644 index d2504c9b..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateEditModal.razor +++ /dev/null @@ -1,89 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @T("SyncTemplate") - - - - - - - - - - - - - -
- @T("Description.MessageTemplate.PerDayLimit.Tips") -
- -
- @T("Unit.Bar") -
-
-
-
-
-
diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateEditModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateEditModal.razor.cs deleted file mode 100644 index d5128e25..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateEditModal.razor.cs +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates.Modules; - -public partial class SmsTemplateEditModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm _form = default!; - private MessageTemplateUpsertDto _model = new(); - private Guid _entityId; - private bool _visible; - private List _channelItems = new(); - private List _templateItems = new(); - - ChannelService ChannelService => McCaller.ChannelService; - - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - SmsTemplateService SmsTemplateService => McCaller.SmsTemplateService; - - public async Task OpenModalAsync(MessageTemplateDto model) - { - _model.ChannelType = ChannelTypes.Sms; - _entityId = model.Id; - _model = model.Adapt(); - await GetFormDataAsync(); - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - } - - private async Task GetFormDataAsync() - { - var dto = await MessageTemplateService.GetAsync(_entityId) ?? new(); - _model = dto.Adapt(); - _templateItems = await SmsTemplateService.GetListByChannelIdAsync(_model.ChannelId); - _model.ChannelType = dto.Channel.Type; - await HandleSelectChannelTypeAsync(_model.ChannelType); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleOkAsync() - { - if (!_form.Validate()) - { - return; - } - Loading = true; - await MessageTemplateService.UpdateAsync(_entityId, _model); - Loading = false; - await SuccessMessageAsync(T("MessageTemplateEditMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private async Task HandleDelAsync() - { - await ConfirmAsync(T("DeletionConfirmationMessage", $"{T("SmsTemplate")}\"{_model.DisplayName}\""), DeleteAsync, AlertTypes.Error); - } - - private async Task DeleteAsync() - { - Loading = true; - await MessageTemplateService.DeleteAsync(_entityId); - Loading = false; - await SuccessMessageAsync(T("MessageTemplateDeleteMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new(); - _form.ResetValidation(); - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private async Task HandleSelectChannelTypeAsync(ChannelTypes Type) - { - _channelItems = await ChannelService.GetListByTypeAsync(Type); - } - - private void HandleTemplateSelected(SmsTemplateDto smsTemplate) - { - _model.DisplayName = smsTemplate.TemplateName; - _model.Content = smsTemplate.TemplateContent; - _model.AuditStatus = smsTemplate.AuditStatus; - _model.AuditReason = smsTemplate.AuditReason; - _model.TemplateType = (int)smsTemplate.TemplateType; - _model.Items = ParseTemplateItem(smsTemplate.TemplateContent); - } - - private async Task HandleChannelChangeAsync() - { - _model.DisplayName = string.Empty; - _model.Content = string.Empty; - _model.TemplateId = string.Empty; - _model.Items = new(); - - _templateItems = await SmsTemplateService.GetListByChannelIdAsync(_model.ChannelId); - } - - private List ParseTemplateItem(string content) - { - string startstr = "\\${"; - string endstr = "}"; - var paramList = UtilHelper.MidStrEx(content, startstr, endstr); - return paramList.Select(x => new MessageTemplateItemDto { Code = x, MappingCode = x }).ToList(); - } - - private async Task SyncAsync() - { - if (_model.ChannelId == default) - { - return; - } - Loading = true; - await SmsTemplateService.SyncAsync(new SmsTemplateSyncInputDto(_model.ChannelId)); - _templateItems = await SmsTemplateService.GetListByChannelIdAsync(_model.ChannelId); - Loading = false; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateInfo.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateInfo.razor deleted file mode 100644 index 7a8a3fd9..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateInfo.razor +++ /dev/null @@ -1,36 +0,0 @@ -@inherits AdminCompontentBase -
-
-
- @T($"DisplayName.SmsTemplateType.{Enum.GetName(typeof(SmsTemplateTypes), MessageTemplate.TemplateType)}") -
-
@T("DisplayName.MessageTemplateTemplateType")
-
-
-
- @MessageTemplate.DisplayName -
-
@T("DisplayName.MessageTemplateDisplayName")
-
-
-
- @MessageTemplate.Content -
-
@T("DisplayName.MessageTemplateContent")
-
- -
- -@code { - [EditorRequired] - [Parameter] - public MessageTemplateUpsertDto MessageTemplate { get; set; } = null!; - - private void HandleTemplateItemChanged(MessageTemplateItemChangedEventArgs args) - { - string startstr = "${"; - string endstr = "}"; - MessageTemplate.Title = MessageTemplate.Title.Replace($"{startstr}{args.OldCode}{endstr}", $"{startstr}{args.NewCode}{endstr}"); - MessageTemplate.Content = MessageTemplate.Content.Replace($"{startstr}{args.OldCode}{endstr}", $"{startstr}{args.NewCode}{endstr}"); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateInfo.razor.css b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateInfo.razor.css deleted file mode 100644 index f4a0c9cf..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/SmsTemplateInfo.razor.css +++ /dev/null @@ -1,16 +0,0 @@ -.item{ - height:48px; - line-height:48px; -} - - .item dt { - padding-right: 24px; - } - - .item dd { - width: 62px; - } - -.template-content { - width: calc(100% - 24px); -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateCreateModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateCreateModal.razor deleted file mode 100644 index 2ef82d59..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateCreateModal.razor +++ /dev/null @@ -1,77 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @T("Description.MessageTemplate.PerDayLimit.Tips") -
- -
- @T("Unit.Bar") -
-
-
-
-
-
diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateCreateModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateCreateModal.razor.cs deleted file mode 100644 index 52faeb96..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateCreateModal.razor.cs +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates.Modules; - -public partial class WebsiteMessageTemplateCreateModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm? _form; - private MessageTemplateUpsertDto _model = new(); - private bool _visible; - private List _channelItems = new(); - - ChannelService ChannelService => McCaller.ChannelService; - - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - public async Task OpenModalAsync() - { - _model.ChannelType = ChannelTypes.WebsiteMessage; - if (string.IsNullOrEmpty(_model.Code)) - { - _model.Code = $"WM_{UtilConvert.GetGuidToNumber()}"; - } - await HandleSelectChannelTypeAsync(_model.ChannelType); - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - - _form?.ResetValidation(); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleOkAsync() - { - Check.NotNull(_form, "form not found"); - - _model.DisplayName = _model.Title; - if (!_form.Validate()) - { - return; - } - Loading = true; - await MessageTemplateService.CreateAsync(_model); - Loading = false; - await SuccessMessageAsync(T("MessageTemplateCreateMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new(); - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private async Task HandleSelectChannelTypeAsync(ChannelTypes Type) - { - _channelItems = await ChannelService.GetListByTypeAsync(Type); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateEditModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateEditModal.razor deleted file mode 100644 index dc8a9800..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateEditModal.razor +++ /dev/null @@ -1,69 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - -
- @T("Description.MessageTemplate.PerDayLimit.Tips") -
- -
- @T("Unit.Bar") -
-
-
-
-
-
diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateEditModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateEditModal.razor.cs deleted file mode 100644 index c1f337b7..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WebsiteMessageTemplateEditModal.razor.cs +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates.Modules; - -public partial class WebsiteMessageTemplateEditModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm _form = default!; - private MessageTemplateUpsertDto _model = new(); - private Guid _entityId; - private bool _visible; - private List _channelItems = new(); - - ChannelService ChannelService => McCaller.ChannelService; - - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - public async Task OpenModalAsync(MessageTemplateDto model) - { - _entityId = model.Id; - _model = model.Adapt(); - await GetFormDataAsync(); - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - } - - private async Task GetFormDataAsync() - { - var dto = await MessageTemplateService.GetAsync(_entityId) ?? new(); - _model = dto.Adapt(); - _model.ChannelType = dto.Channel.Type; - await HandleSelectChannelType(_model.ChannelType); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleOk() - { - _model.DisplayName = _model.Title; - if (!_form.Validate()) - { - return; - } - Loading = true; - await MessageTemplateService.UpdateAsync(_entityId, _model); - Loading = false; - await SuccessMessageAsync(T("MessageTemplateEditMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private async Task HandleDelAsync() - { - await ConfirmAsync(T("DeletionConfirmationMessage", $"{T("WebsiteMessageTemplate")}\"{_model.DisplayName}\""), DeleteAsync, AlertTypes.Error); - } - - private async Task DeleteAsync() - { - Loading = true; - await MessageTemplateService.DeleteAsync(_entityId); - Loading = false; - await SuccessMessageAsync(T("MessageTemplateDeleteMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new(); - _form.ResetValidation(); - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private async Task HandleSelectChannelType(ChannelTypes Type) - { - _channelItems = await ChannelService.GetListByTypeAsync(Type); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkUpsertModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkUpsertModal.razor deleted file mode 100644 index 8a2b8f04..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkUpsertModal.razor +++ /dev/null @@ -1,69 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - - - - - - @if (_model.TemplateType == (int)WeixinWorkTemplateTypes.TextCard) - { - - - } - else - { - - - } - - - @if (_model.TemplateType == (int)WeixinWorkTemplateTypes.TextCard) - { - - - } -
- @T("Description.MessageTemplate.PerDayLimit.Tips") -
- - -
- @T("Unit.Bar") -
-
-
-
diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkUpsertModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkUpsertModal.razor.cs deleted file mode 100644 index 625f2852..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkUpsertModal.razor.cs +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates.Modules; - -public partial class WeixinWorkUpsertModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm? _form; - private MessageTemplateUpsertDto _model = new(); - private bool _visible; - private List _channelItems = new(); - private Guid _entityId; - - protected override string? PageName { get; set; } = "MessageTemplateBlock"; - - ChannelService ChannelService => McCaller.ChannelService; - - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - public async Task OpenModalAsync(MessageTemplateDto? model = null) - { - _entityId = model?.Id ?? default; - _model = model?.Adapt() ?? new(); - - if (_entityId != default) - { - await GetFormDataAsync(); - } - else - { - await InitDataAsync(); - } - - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - - _form?.ResetValidation(); - } - - private async Task InitDataAsync() - { - _model.ChannelType = ChannelTypes.WeixinWork; - - if (string.IsNullOrEmpty(_model.Code)) - { - _model.Code = $"WXWork_{UtilConvert.GetGuidToNumber()}"; - } - - await HandleSelectChannelTypeAsync(_model.ChannelType); - } - - private async Task GetFormDataAsync() - { - var dto = await MessageTemplateService.GetAsync(_entityId) ?? new(); - _model = dto.Adapt(); - _model.ChannelType = dto.Channel.Type; - await HandleSelectChannelTypeAsync(_model.ChannelType); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleOkAsync() - { - Check.NotNull(_form, "form not found"); - - if (_model.DisplayName.IsNullOrEmpty()) - { - _model.DisplayName = _model.Title; - } - - if (!_form.Validate()) - { - return; - } - Loading = true; - - var inputDto = _model.Adapt(); - - if (_entityId == default) - { - await MessageTemplateService.CreateAsync(inputDto); - } - else - { - await MessageTemplateService.UpdateAsync(_entityId, inputDto); - } - - Loading = false; - await UpsertSuccessfulMessage(_entityId, T("MessageTemplate")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new(); - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private async Task HandleSelectChannelTypeAsync(ChannelTypes type) - { - _channelItems = await ChannelService.GetListByTypeAsync(type); - } - - private void HandleSelectTemplateType(int type) - { - _model.MessageInfo.IsJump = type != (int)WeixinWorkTemplateTypes.Text; - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkWebhookUpsertModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkWebhookUpsertModal.razor deleted file mode 100644 index e65e1494..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkWebhookUpsertModal.razor +++ /dev/null @@ -1,51 +0,0 @@ -@inherits AdminCompontentBase - - - - - - - - - - - - - - - -
- @T("Description.MessageTemplate.PerDayLimit.Tips") -
- - -
- @T("Unit.Bar") -
-
-
-
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkWebhookUpsertModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkWebhookUpsertModal.razor.cs deleted file mode 100644 index 94d595cd..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/Modules/WeixinWorkWebhookUpsertModal.razor.cs +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates.Modules; - -public partial class WeixinWorkWebhookUpsertModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private MForm? _form; - private MessageTemplateUpsertDto _model = new(); - private bool _visible; - private List _channelItems = new(); - private Guid _entityId; - - protected override string? PageName { get; set; } = "MessageTemplateBlock"; - - ChannelService ChannelService => McCaller.ChannelService; - - MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - public async Task OpenModalAsync(MessageTemplateDto? model = null) - { - _entityId = model?.Id ?? default; - _model = model?.Adapt() ?? new(); - - if (_entityId != default) - { - await GetFormDataAsync(); - } - else - { - await InitDataAsync(); - } - - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - - _form?.ResetValidation(); - } - - private async Task InitDataAsync() - { - _model.ChannelType = ChannelTypes.WeixinWorkWebhook; - - if (string.IsNullOrEmpty(_model.Code)) - { - _model.Code = $"WXWorkWebhook_{UtilConvert.GetGuidToNumber()}"; - } - - await HandleSelectChannelTypeAsync(_model.ChannelType); - } - - private async Task GetFormDataAsync() - { - var dto = await MessageTemplateService.GetAsync(_entityId) ?? new(); - _model = dto.Adapt(); - _model.ChannelType = dto.Channel.Type; - await HandleSelectChannelTypeAsync(_model.ChannelType); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleOkAsync() - { - Check.NotNull(_form, "form not found"); - - if (_model.DisplayName.IsNullOrEmpty()) - { - _model.DisplayName = _model.Title; - } - - if (!_form.Validate()) - { - return; - } - Loading = true; - - var inputDto = _model.Adapt(); - - if (_entityId == default) - { - await MessageTemplateService.CreateAsync(inputDto); - } - else - { - await MessageTemplateService.UpdateAsync(_entityId, inputDto); - } - - Loading = false; - await UpsertSuccessfulMessage(_entityId, T("MessageTemplate")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new(); - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } - - private async Task HandleSelectChannelTypeAsync(ChannelTypes type) - { - _channelItems = await ChannelService.GetListByTypeAsync(type); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/SmsTemplateManagement.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/SmsTemplateManagement.razor deleted file mode 100644 index 50c7d65f..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/SmsTemplateManagement.razor +++ /dev/null @@ -1,125 +0,0 @@ -@inherits AdminCompontentBase -@page "/messageTemplates/smsTemplateManagement" - -@T("Sms") - - - - - @T("SmsTemplateTitle") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @header.Text - - - @switch (context.Header.Value) - { - case ("ChannelDisplayName"): - - break; - case nameof(MessageTemplateDto.TemplateType): - - break; - case nameof(MessageTemplateDto.AuditStatus): - - break; - case nameof(MessageTemplateDto.Status): - - break; - case "Action": - mdi-pencil - break; - default: - - break; - } - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/SmsTemplateManagement.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/SmsTemplateManagement.razor.cs deleted file mode 100644 index d0c6e630..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/SmsTemplateManagement.razor.cs +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates; - -public partial class SmsTemplateManagement : AdminCompontentBase -{ - private SmsTemplateEditModal _editModal = default!; - private SmsTemplateCreateModal _createModal = default!; - private GetMessageTemplateInputDto _queryParam = new() { ChannelType = ChannelTypes.Sms }; - private PaginatedListDto _entities = new(); - private List _channelItems = new(); - private DateTimeOffset? _endTime; - private DateTimeOffset? _startTime; - - private ChannelService ChannelService => McCaller.ChannelService; - - private MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - protected override string? PageName { get; set; } = "MessageTemplateBlock"; - - protected async override Task OnInitializedAsync() - { - _channelItems = await ChannelService.GetListByTypeAsync(ChannelTypes.Sms); - } - - protected async override Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - await LoadData(); - } - await base.OnAfterRenderAsync(firstRender); - } - - public List> GetHeaders() - { - var prefix = "DisplayName.MessageTemplate"; - - return new() - { - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.Code)}"), Value = nameof(MessageTemplateDto.Code), Sortable = false, Width = "8rem" }, - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.DisplayName)}"), Value = nameof(MessageTemplateDto.DisplayName), Sortable = false, Width = "6rem"}, - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.TemplateType)}"), Value = nameof(MessageTemplateDto.TemplateType), Sortable = false, Width = "6rem" }, - new() { Text = T($"{prefix}ChannelDisplayName"), Value = "ChannelDisplayName", Sortable = false, Width = "6.5625rem" }, - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.AuditStatus)}"), Value = nameof(MessageTemplateDto.AuditStatus), Sortable = false, Width = "8rem" }, - new() { Text = T("Modifier"), Value = nameof(MessageTemplateDto.ModifierName), Sortable = false, Width = "7rem" }, - new() { Text = T("ModificationTime"), Value = nameof(MessageTemplateDto.ModificationTime), Sortable = true, Width = "7rem" }, - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.Status)}"), Value = nameof(MessageTemplateDto.Status), Sortable = true, Width = "7.5rem" }, - new() { Text = T("Action"), Value = "Action", Sortable = false, Width = 105, Align = DataTableHeaderAlign.Center }, - }; - } - - private Task DateRangChangedAsync((DateTimeOffset? startDate, DateTimeOffset? endDate) args) - { - (_startTime, _endTime) = args; - _queryParam.StartTime = _startTime?.UtcDateTime; - _queryParam.EndTime = _endTime?.UtcDateTime; - return RefreshAsync(); - } - - private async Task LoadData() - { - Loading = true; - _entities = (await MessageTemplateService.GetListAsync(_queryParam)); - Loading = false; - StateHasChanged(); - } - - private async Task HandleOk() - { - await LoadData(); - } - - private async Task RefreshAsync() - { - _queryParam.Page = 1; - await LoadData(); - } - - private async Task HandlePageChanged(int page) - { - _queryParam.Page = page; - await LoadData(); - } - - private async Task HandlePageSizeChanged(int pageSize) - { - _queryParam.PageSize = pageSize; - await LoadData(); - } - - private async Task HandleClearAsync() - { - _queryParam = new() { ChannelType = ChannelTypes.Sms }; - await LoadData(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WebsiteMessageTemplateManagement.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WebsiteMessageTemplateManagement.razor deleted file mode 100644 index 803a8fe4..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WebsiteMessageTemplateManagement.razor +++ /dev/null @@ -1,90 +0,0 @@ -@inherits AdminCompontentBase -@page "/messageTemplates/websiteMessageTemplateManagement" - -@T("WebsiteMessage") - - - - - @T("WebsiteMessageTitle") - - - - - - - - - - - - - - - - - @header.Text - - - @switch (context.Header.Value) - { - case ("ChannelDisplayName"): - - break; - case nameof(MessageTemplateDto.AuditStatus): - string color = string.Empty; - switch (context.Item.AuditStatus) - { - case MessageTemplateAuditStatuses.WaitAudit: - color = "orange"; - break; - case MessageTemplateAuditStatuses.Adopt: - color = "sample-green"; - break; - case MessageTemplateAuditStatuses.Fail: - color = "error"; - break; - default: - break; - } - - @T($"DisplayName.MessageTemplateAuditStatus.{context.Item.AuditStatus.ToString()}") - - break; - case nameof(MessageTemplateDto.Status): - - @T($"DisplayName.MessageTemplateStatus.{context.Item.Status.ToString()}") - - break; - case "Action": - mdi-pencil - break; - default: - - break; - } - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WebsiteMessageTemplateManagement.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WebsiteMessageTemplateManagement.razor.cs deleted file mode 100644 index 82efb5c2..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WebsiteMessageTemplateManagement.razor.cs +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates; - -public partial class WebsiteMessageTemplateManagement : AdminCompontentBase -{ - private WebsiteMessageTemplateEditModal _editModal = default!; - private WebsiteMessageTemplateCreateModal _createModal = default!; - private GetMessageTemplateInputDto _queryParam = new() { ChannelType = ChannelTypes.WebsiteMessage }; - private PaginatedListDto _entities = new(); - private List _channelItems = new(); - private DateTimeOffset? _endTime; - private DateTimeOffset? _startTime; - - private ChannelService ChannelService => McCaller.ChannelService; - - private MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - protected override string? PageName { get; set; } = "MessageTemplateBlock"; - - protected async override Task OnInitializedAsync() - { - _channelItems = await ChannelService.GetListByTypeAsync(ChannelTypes.WebsiteMessage); - } - protected async override Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - await LoadData(); - } - await base.OnAfterRenderAsync(firstRender); - } - - public List> GetHeaders() - { - var prefix = "DisplayName.MessageTemplate"; - - return new() - { - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.Code)}"), Value = nameof(MessageTemplateDto.Code), Sortable = false, Width = "8rem" }, - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.Title)}"), Value = nameof(MessageTemplateDto.Title), Sortable = false, Width = "13.125rem" }, - new() { Text = T($"{prefix}ChannelDisplayName"), Value = "ChannelDisplayName", Sortable = false, Width = "6.5625rem" }, - new() { Text = T("Modifier"), Value = nameof(MessageTemplateDto.ModifierName), Sortable = false, Width = "6.5625rem" }, - new() { Text = T("ModificationTime"), Value = nameof(MessageTemplateDto.ModificationTime), Sortable = true, Width = "13.125rem" }, - new() { Text = T("Action"), Value = "Action", Sortable = false, Width = 105, Align = DataTableHeaderAlign.Center }, - }; - } - - private Task DateRangChangedAsync((DateTimeOffset? startDate, DateTimeOffset? endDate) args) - { - (_startTime, _endTime) = args; - _queryParam.StartTime = _startTime?.UtcDateTime; - _queryParam.EndTime = _endTime?.UtcDateTime; - return RefreshAsync(); - } - - private async Task LoadData() - { - Loading = true; - _entities = (await MessageTemplateService.GetListAsync(_queryParam)); - Loading = false; - StateHasChanged(); - } - - private async Task HandleOk() - { - await LoadData(); - } - - private async Task SearchKeyDown(KeyboardEventArgs eventArgs) - { - if (eventArgs.Key == "Enter") - { - await RefreshAsync(); - } - } - - private async Task RefreshAsync() - { - _queryParam.Page = 1; - await LoadData(); - } - - private async Task HandlePageChanged(int page) - { - _queryParam.Page = page; - await LoadData(); - } - - private async Task HandlePageSizeChanged(int pageSize) - { - _queryParam.PageSize = pageSize; - await LoadData(); - } - - private async Task HandleClearAsync() - { - _queryParam = new() { ChannelType = ChannelTypes.WebsiteMessage }; - await LoadData(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkTemplateManagement.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkTemplateManagement.razor deleted file mode 100644 index 8d9d4cff..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkTemplateManagement.razor +++ /dev/null @@ -1,67 +0,0 @@ -@inherits AdminCompontentBase -@page "/messageTemplates/weixinWorkTemplateManagement" - -@T("WeixinWork") - - - - - @T("WeixinWork") - - - - - - - - - - - - - - - - - @header.Text - - - @switch (context.Header.Value) - { - case ("ChannelDisplayName"): - - break; - case nameof(MessageTemplateDto.TemplateType): - - break; - case "Action": - mdi-pencil - break; - default: - - break; - } - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkTemplateManagement.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkTemplateManagement.razor.cs deleted file mode 100644 index 0110f119..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkTemplateManagement.razor.cs +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates; - -public partial class WeixinWorkTemplateManagement : AdminCompontentBase -{ - [Inject] - public I18n I18n { get; set; } - - private WeixinWorkUpsertModal _upsertModal = default!; - private GetMessageTemplateInputDto _queryParam = new() { ChannelType = ChannelTypes.WeixinWork }; - private PaginatedListDto _entities = new(); - private List _channelItems = new(); - private DateTimeOffset? _endTime; - private DateTimeOffset? _startTime; - private List> _headers = new(); - - private ChannelService ChannelService => McCaller.ChannelService; - - private MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - protected override string? PageName { get; set; } = "MessageTemplateBlock"; - - protected async override Task OnInitializedAsync() - { - _channelItems = await ChannelService.GetListByTypeAsync(ChannelTypes.WeixinWork); - - LoadHeaders(); - - I18n.CultureChanged += Changed; - } - - protected async override Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - await LoadData(); - } - await base.OnAfterRenderAsync(firstRender); - } - - private Task DateRangChangedAsync((DateTimeOffset? startDate, DateTimeOffset? endDate) args) - { - (_startTime, _endTime) = args; - _queryParam.StartTime = _startTime?.UtcDateTime; - _queryParam.EndTime = _endTime?.UtcDateTime; - return RefreshAsync(); - } - - private async Task LoadData() - { - Loading = true; - _entities = (await MessageTemplateService.GetListAsync(_queryParam)); - Loading = false; - StateHasChanged(); - } - - private async Task HandleOk() - { - await LoadData(); - } - - private async Task RefreshAsync() - { - _queryParam.Page = 1; - await LoadData(); - } - - private async Task HandlePageChanged(int page) - { - _queryParam.Page = page; - await LoadData(); - } - - private async Task HandlePageSizeChanged(int pageSize) - { - _queryParam.PageSize = pageSize; - await LoadData(); - } - - private async Task HandleClearAsync() - { - _queryParam = new() { ChannelType = ChannelTypes.App }; - await LoadData(); - } - - private void LoadHeaders() - { - var prefix = "DisplayName.MessageTemplate"; - _headers = new() - { - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.Code)}"), Value = nameof(MessageTemplateDto.Code), Sortable = false }, - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.TemplateType)}"), Value = nameof(MessageTemplateDto.TemplateType)}, - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.DisplayName)}"), Value = nameof(MessageTemplateDto.DisplayName), Sortable = false }, - new() { Text = T($"{prefix}ChannelDisplayName"), Value = "ChannelDisplayName", Sortable = false }, - new() { Text = T("Modifier"), Value = nameof(MessageTemplateDto.ModifierName), Sortable = false }, - new() { Text = T("ModificationTime"), Value = nameof(MessageTemplateDto.ModificationTime), Sortable = true }, - new() { Text = T("Action"), Value = "Action", Sortable = false, Width = 105, Align = DataTableHeaderAlign.Center }, - }; - } - - void Changed(object? sender, EventArgs args) - { - LoadHeaders(); - } - - protected override async ValueTask DisposeAsyncCore() - { - I18n.CultureChanged -= Changed; - await base.DisposeAsyncCore(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkWebhookTemplateManagement.razor b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkWebhookTemplateManagement.razor deleted file mode 100644 index eb8edf98..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkWebhookTemplateManagement.razor +++ /dev/null @@ -1,67 +0,0 @@ -@inherits AdminCompontentBase -@page "/messageTemplates/weixinWorkWebhookTemplateManagement" - -@T("WeixinWorkWebhook") - - - - - @T("WeixinWorkWebhook") - - - - - - - - - - - - - - - - - @header.Text - - - @switch (context.Header.Value) - { - case ("ChannelDisplayName"): - - break; - case nameof(MessageTemplateDto.TemplateType): - - break; - case "Action": - mdi-pencil - break; - default: - - break; - } - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkWebhookTemplateManagement.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkWebhookTemplateManagement.razor.cs deleted file mode 100644 index 9d496fa9..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/MessageTemplates/WeixinWorkWebhookTemplateManagement.razor.cs +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.MessageTemplates; - -public partial class WeixinWorkWebhookTemplateManagement : AdminCompontentBase -{ - [Inject] - public I18n I18n { get; set; } - - private WeixinWorkWebhookUpsertModal _upsertModal = default!; - private GetMessageTemplateInputDto _queryParam = new() { ChannelType = ChannelTypes.WeixinWorkWebhook }; - private PaginatedListDto _entities = new(); - private List _channelItems = new(); - private DateTimeOffset? _endTime; - private DateTimeOffset? _startTime; - private List> _headers = new(); - - private ChannelService ChannelService => McCaller.ChannelService; - - private MessageTemplateService MessageTemplateService => McCaller.MessageTemplateService; - - protected override string? PageName { get; set; } = "MessageTemplateBlock"; - - protected async override Task OnInitializedAsync() - { - _channelItems = await ChannelService.GetListByTypeAsync(ChannelTypes.WeixinWorkWebhook); - - LoadHeaders(); - - I18n.CultureChanged += Changed; - } - - protected async override Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - await LoadData(); - } - await base.OnAfterRenderAsync(firstRender); - } - - private Task DateRangChangedAsync((DateTimeOffset? startDate, DateTimeOffset? endDate) args) - { - (_startTime, _endTime) = args; - _queryParam.StartTime = _startTime?.UtcDateTime; - _queryParam.EndTime = _endTime?.UtcDateTime; - return RefreshAsync(); - } - - private async Task LoadData() - { - Loading = true; - _entities = (await MessageTemplateService.GetListAsync(_queryParam)); - Loading = false; - StateHasChanged(); - } - - private async Task HandleOk() - { - await LoadData(); - } - - private async Task RefreshAsync() - { - _queryParam.Page = 1; - await LoadData(); - } - - private async Task HandlePageChanged(int page) - { - _queryParam.Page = page; - await LoadData(); - } - - private async Task HandlePageSizeChanged(int pageSize) - { - _queryParam.PageSize = pageSize; - await LoadData(); - } - - private async Task HandleClearAsync() - { - _queryParam = new() { ChannelType = ChannelTypes.App }; - await LoadData(); - } - - private void LoadHeaders() - { - var prefix = "DisplayName.MessageTemplate"; - _headers = new() - { - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.Code)}"), Value = nameof(MessageTemplateDto.Code), Sortable = false }, - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.TemplateType)}"), Value = nameof(MessageTemplateDto.TemplateType)}, - new() { Text = T($"{prefix}{nameof(MessageTemplateDto.DisplayName)}"), Value = nameof(MessageTemplateDto.DisplayName), Sortable = false }, - new() { Text = T($"{prefix}ChannelDisplayName"), Value = "ChannelDisplayName", Sortable = false }, - new() { Text = T("Modifier"), Value = nameof(MessageTemplateDto.ModifierName), Sortable = false }, - new() { Text = T("ModificationTime"), Value = nameof(MessageTemplateDto.ModificationTime), Sortable = true }, - new() { Text = T("Action"), Value = "Action", Sortable = false, Width = 105, Align = DataTableHeaderAlign.Center }, - }; - } - - void Changed(object? sender, EventArgs args) - { - LoadHeaders(); - } - - protected override async ValueTask DisposeAsyncCore() - { - I18n.CultureChanged -= Changed; - await base.DisposeAsyncCore(); - } -} - diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupCreateModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupCreateModal.razor deleted file mode 100644 index 578e02f0..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupCreateModal.razor +++ /dev/null @@ -1,28 +0,0 @@ -@inherits AdminCompontentBase -
- - - - - - - - - - - - - - - - - - - - -
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupCreateModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupCreateModal.razor.cs deleted file mode 100644 index 749fa78a..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupCreateModal.razor.cs +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.ReceiverGroups.Modules; - -public partial class ReceiverGroupCreateModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private ReceiverGroupUpsertDto _model = new(); - private MForm? _form; - private ReceiverSelect _ReceiverSelect = default!; - private bool _visible; - - ReceiverGroupService ReceiverGroupService => McCaller.ReceiverGroupService; - - public async Task OpenModalAsync() - { - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - - _form?.ResetValidation(); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleOk() - { - Check.NotNull(_form, "form not found"); - - if (!_form.Validate()) - { - return; - } - Loading = true; - await ReceiverGroupService.CreateAsync(_model); - Loading = false; - await SuccessMessageAsync(T("ReceiverGroupCreateMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private void ResetForm() - { - _model = new(); - _ReceiverSelect.ResetForm(); - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupEditModal.razor b/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupEditModal.razor deleted file mode 100644 index 2c9787d4..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupEditModal.razor +++ /dev/null @@ -1,28 +0,0 @@ -@inherits AdminCompontentBase -
- - - - - - - - - - - - - - - - - - - - -
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupEditModal.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupEditModal.razor.cs deleted file mode 100644 index 2873e061..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverGroupEditModal.razor.cs +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.ReceiverGroups.Modules; - -public partial class ReceiverGroupEditModal : AdminCompontentBase -{ - [Parameter] - public EventCallback OnOk { get; set; } - - private ReceiverGroupUpsertDto _model = new(); - private MForm _form = default!; - private ReceiverSelect _ReceiverSelect = default!; - private Guid _entityId; - private bool _visible; - - ReceiverGroupService ReceiverGroupService => McCaller.ReceiverGroupService; - - public async Task OpenModalAsync(ReceiverGroupDto model) - { - _entityId = model.Id; - _model = model.Adapt(); - await GetFormDataAsync(); - await InvokeAsync(() => - { - _visible = true; - StateHasChanged(); - }); - } - - private async Task GetFormDataAsync() - { - var dto = await ReceiverGroupService.GetAsync(_entityId) ?? new(); - _model = dto.Adapt(); - } - - private void HandleCancel() - { - _visible = false; - ResetForm(); - } - - private async Task HandleOk() - { - if (!_form.Validate()) - { - return; - } - Loading = true; - await ReceiverGroupService.UpdateAsync(_entityId, _model); - Loading = false; - _visible = false; - ResetForm(); - await SuccessMessageAsync(T("ReceiverGroupEditMessage")); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - - private async Task HandleDel() - { - await ConfirmAsync(T("DeletionConfirmationMessage",$"{T("ReceiverGroup")}\"{_model.DisplayName}\""), DeleteAsync, AlertTypes.Error); - } - private async Task DeleteAsync() - { - Loading = true; - await ReceiverGroupService.DeleteAsync(_entityId); - Loading = false; - await SuccessMessageAsync(T("ReceiverGroupDeleteMessage")); - _visible = false; - ResetForm(); - if (OnOk.HasDelegate) - { - await OnOk.InvokeAsync(); - } - } - private void ResetForm() - { - _model = new(); - _form.ResetValidation(); - _ReceiverSelect.ResetForm(); - } - - private void HandleVisibleChanged(bool val) - { - if (!val) HandleCancel(); - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverSelect.razor b/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverSelect.razor deleted file mode 100644 index 6044de6a..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverSelect.razor +++ /dev/null @@ -1,66 +0,0 @@ -@inherits AdminCompontentBase - - - - - mdi-plus - @T("ExternalMember") - - - -@if (Value.Count > 0) -{ - - - @foreach (var item in Value) - { - - - - @if (item.Type != ReceiverGroupItemTypes.User) - { - mdi-animation - } - else - { - @if (string.IsNullOrEmpty(item.Avatar)) - { - - } - else - { - - } - } - - - - @(item.DisplayName) -
- -
- @T($"DisplayName.MessageTaskReceiverTypes.{item.Type}") -
- @if (item.Type == ReceiverGroupItemTypes.User) - { - - @(item.PhoneNumber) -
- -
- @(item.Email) -
- } -
-
- - mdi-close - -
-
-
- } -
-
-} - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverSelect.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverSelect.razor.cs deleted file mode 100644 index 914c5df6..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/Modules/ReceiverSelect.razor.cs +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.ReceiverGroups.Modules; - -public partial class ReceiverSelect : AdminCompontentBase -{ - [Parameter] - public List Value { get; set; } = new(); - - [Parameter] - public EventCallback> ValueChanged { get; set; } - - private ExternalUserCreateModal _createModal = default!; - private SubjectAutoComplete _subjectAutoComplete = default!; - - public async Task RemoveValue(ReceiverGroupItemDto item) - { - Value.RemoveAll(x => x.SubjectId == item.SubjectId); - await ValueChanged.InvokeAsync(Value); - } - - private async Task HandleOk(UserDto user) - { - Value.Add(new ReceiverGroupItemDto - { - Type = ReceiverGroupItemTypes.User, - SubjectId = user.Id, - DisplayName = user.GetDisplayName(), - Avatar = user.Avatar, - PhoneNumber = user.PhoneNumber ?? string.Empty, - Email = user.Email ?? string.Empty - }); - await ValueChanged.InvokeAsync(Value); - await SuccessMessageAsync(T("ExternalMemberAddMessage")); - } - - private async Task HandleOnAdd(SubjectDto item) - { - if (!Value.Any(x => x.SubjectId == item.SubjectId)) - { - Value.Add(new ReceiverGroupItemDto - { - Type = (ReceiverGroupItemTypes)((int)item.SubjectType), - SubjectId = item.SubjectId, - DisplayName = item.GetDisplayName(), - Avatar = item.Avatar ?? string.Empty, - PhoneNumber = item.PhoneNumber ?? string.Empty, - Email = item.Email ?? string.Empty - }); - await ValueChanged.InvokeAsync(Value); - } - await ValueChanged.InvokeAsync(Value); - } - - private async Task HandleOnRemove(SubjectDto item) - { - if (Value.Any(x => x.SubjectId == item.SubjectId)) - { - Value.RemoveAll(x => x.SubjectId == item.SubjectId); - await ValueChanged.InvokeAsync(Value); - } - } - - public void ResetForm() - { - _subjectAutoComplete.ResetForm(); - } - - private void HandleOnBlur() - { - _subjectAutoComplete.ResetForm(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/ReceiverGroupManagement.razor b/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/ReceiverGroupManagement.razor deleted file mode 100644 index 040ba25a..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/ReceiverGroupManagement.razor +++ /dev/null @@ -1,42 +0,0 @@ -@inherits AdminCompontentBase -@page "/receiverGroups/receiverGroupManagement" - -@T("Permission.ReceiverGroupManagement") - - - - - @T("Title") - - - - - - - - @header.Text - - - @switch (context.Header.Value) - { - case "Action": - - mdi-pencil - - break; - default: - - break; - } - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/ReceiverGroupManagement.razor.cs b/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/ReceiverGroupManagement.razor.cs deleted file mode 100644 index 94547d46..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Pages/ReceiverGroups/ReceiverGroupManagement.razor.cs +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Pages.ReceiverGroups; - -public partial class ReceiverGroupManagement : AdminCompontentBase -{ - private ReceiverGroupEditModal _editModal = default!; - private ReceiverGroupCreateModal _createModal = default!; - private GetReceiverGroupInputDto _queryParam = new(10); - private PaginatedListDto _entities = new(); - - ReceiverGroupService ReceiverGroupService => McCaller.ReceiverGroupService; - - protected override string? PageName { get; set; } = "ReceiverGroupBlock"; - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - await LoadData(); - } - await base.OnAfterRenderAsync(firstRender); - } - - public List> GetHeaders() - { - var _prefix = "DisplayName.ReceiverGroup"; - - return new() - { - new() { Text = T($"{_prefix}{nameof(ReceiverGroupDto.DisplayName)}"), Value = nameof(ReceiverGroupDto.DisplayName), Sortable = false, Width = "14.6875rem" }, - new() { Text = T("Modifier"), Value = nameof(MessageTemplateDto.ModifierName), Sortable = false, Width = "9.625rem" }, - new() { Text = T("ModificationTime"), Value = nameof(ReceiverGroupDto.ModificationTime), Sortable = false}, - new() { Text = T("Action"), Value = "Action", Sortable = false, Width = 108, Align = DataTableHeaderAlign.Center }, - }; - } - - private async Task LoadData() - { - Loading = true; - _entities = (await ReceiverGroupService.GetListAsync(_queryParam)); - Loading = false; - StateHasChanged(); - } - - private async Task HandleOk() - { - await LoadData(); - } - - private async Task SearchKeyDown(KeyboardEventArgs eventArgs) - { - if (eventArgs.Key == "Enter") - { - await RefreshAsync(); - } - } - - private async Task RefreshAsync() - { - _queryParam.Page = 1; - await LoadData(); - } - - private async Task HandlePageChanged(int page) - { - _queryParam.Page = page; - await LoadData(); - } - - private async Task HandlePageSizeChanged(int pageSize) - { - _queryParam.PageSize = pageSize; - await LoadData(); - } - - private async Task HandleClearAsync() - { - _queryParam = new(); - await LoadData(); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Registers/MessageTaskRegister.cs b/src/Web/Masa.Mc.Web.Admin/Registers/MessageTaskRegister.cs deleted file mode 100644 index 17a75415..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Registers/MessageTaskRegister.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Registers; - -public class MessageTaskRegister : IRegister -{ - public void Register(TypeAdapterConfig config) - { - config.ForType().MapToConstructor(true) - .Map(dest => dest.ChannelType, src => src.Channel.Type); - - config.ForType() - .Map(dest => dest.ExtraProperties, src => src.ExtraProperties); - - config.ForType() - .Map(dest => dest.ExtraProperties, src => ExtensionPropertyHelper.ConvertToType(src.ExtraProperties)); - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Registers/MessageTemplateRegister.cs b/src/Web/Masa.Mc.Web.Admin/Registers/MessageTemplateRegister.cs deleted file mode 100644 index 4984a04b..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Registers/MessageTemplateRegister.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin.Registers; - -public class MessageTemplateRegister : IRegister -{ - public void Register(TypeAdapterConfig config) - { - config.ForType() - .Map(dest => dest.Options, src => ExtensionPropertyHelper.ConvertToType(src.Options)); - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Shared/AdminCompontentBase.cs b/src/Web/Masa.Mc.Web.Admin/Shared/AdminCompontentBase.cs deleted file mode 100644 index b9f48da7..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Shared/AdminCompontentBase.cs +++ /dev/null @@ -1,189 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -namespace Masa.Mc.Web.Admin; - -public abstract class AdminCompontentBase : Blazor.Core.MasaComponentBase -{ - private GlobalConfig? _globalConfig; - private NavigationManager? _navigationManager; - private McCaller? _mcCaller; - - [Inject] - public McCaller McCaller - { - get - { - return _mcCaller ?? throw new Exception("please Inject McCaller!"); - } - set - { - _mcCaller = value; - } - } - - [Inject] - public IPopupService PopupService { get; set; } = default!; - - [Inject] - public I18n I18n { get; set; } = default!; - - [Inject] - public GlobalConfig GlobalConfig - { - get - { - return _globalConfig ?? throw new Exception("please Inject GlobalConfig!"); - } - set - { - _globalConfig = value; - } - } - - [Inject] - public NavigationManager NavigationManager - { - get - { - return _navigationManager ?? throw new Exception("please Inject NavigationManager!"); - } - set - { - _navigationManager = value; - } - } - - [Inject] - public McApiOptions McApiOptions { get; set; } = default!; - - [Inject] - public JsInitVariables JsInitVariables { get; set; } = default!; - - [CascadingParameter(Name = "Culture")] - private string Culture { get; set; } = null!; - - public bool Loading - { - get => GlobalConfig.Loading; - set => GlobalConfig.Loading = value; - } - - public string LoadingText - { - get => GlobalConfig.LoadingText; - set => GlobalConfig.LoadingText = value; - } - - protected virtual string? PageName { get; set; } - - public string T(string key) - { - if (string.IsNullOrEmpty(key)) return key; - if (PageName is not null) return I18n.T(PageName, key, false) ?? I18n.T(key, false) ?? key; - else return I18n.T(key, true); - } - - public string T(string formatkey, params string[] args) - { - return string.Format(T(formatkey), args); - } - - public HubConnection? HubConnection { get; set; } - - public async Task ConfirmAsync(string messgae, Func callback, AlertTypes type = AlertTypes.Warning) - { - if (await PopupService.SimpleConfirmAsync(I18n.T("OperationConfirmation"), messgae, type)) await callback.Invoke(); - } - - public async Task SuccessMessageAsync(string message) - { - await PopupService.EnqueueSnackbarAsync(message, AlertTypes.Success); - } - - public async Task UpsertSuccessfulMessage(Guid entityId, string displayName) - { - if (entityId == default) - { - await SuccessMessageAsync(T("CreateSuccessfulMessage", displayName)); - } - else - { - await SuccessMessageAsync(T("EditSuccessfulMessage", displayName)); - } - } - - public async Task WarningAsync(string message) - { - await PopupService.EnqueueSnackbarAsync(message, AlertTypes.Warning); - } - - public async Task ErrorMessageAsync(string message) - { - await PopupService.EnqueueSnackbarAsync(message, AlertTypes.Error); - } - - public static List GetEnumList() where TEnum : struct, Enum - { - return EnumHelper.GetEnumList(); - } - - protected async Task HandleErrorAsync(Exception exception) - { - await InvokeAsync(async () => - { - await ErrorMessageAsync(exception.Message); - Loading = false; - StateHasChanged(); - }); - } - - public List> GetEnumMap() where TEnum : struct, Enum - { - return Enum.GetValues().Select(e => new KeyValuePair(e.ToString(), e)).ToList(); - } - - public List> GetBooleanMap() - { - return new() - { - new(T("Enable"), true), - new(T("Disabled"), false) - }; - } - - public async Task HubConnectionBuilder() - { - HubConnection = new HubConnectionBuilder() - .WithUrl(NavigationManager.ToAbsoluteUri($"{McApiOptions.McServiceBaseAddress}/signalr-hubs/notifications")) - .Build(); - await HubConnection.StartAsync(); - } - - protected override ValueTask DisposeAsyncCore() - { - HubConnection?.DisposeAsync(); - return base.DisposeAsyncCore(); - } - - public async Task Throttle(Func callback, int wait = 500, bool immediate = true) - { - if (immediate) - { - if (!GlobalConfig.ThrottleFlag) - { - GlobalConfig.ThrottleFlag = true; - await callback.Invoke(); - await Task.Delay(wait); - GlobalConfig.ThrottleFlag = false; - } - } - else if (!GlobalConfig.ThrottleFlag) - { - GlobalConfig.ThrottleFlag = true; - await Task.Delay(wait); - GlobalConfig.ThrottleFlag = false; - await callback.Invoke(); - } - } -} diff --git a/src/Web/Masa.Mc.Web.Admin/Shared/EmptyLayout.razor b/src/Web/Masa.Mc.Web.Admin/Shared/EmptyLayout.razor deleted file mode 100644 index a8b1229d..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Shared/EmptyLayout.razor +++ /dev/null @@ -1,7 +0,0 @@ -@inherits LayoutComponentBase - - -
- @Body -
-
\ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Shared/MLoading.razor b/src/Web/Masa.Mc.Web.Admin/Shared/MLoading.razor deleted file mode 100644 index 2ac5135d..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Shared/MLoading.razor +++ /dev/null @@ -1,37 +0,0 @@ -@implements IDisposable -@inject GlobalConfig GlobalConfig; - - -
- -
@LoadingText
-
-
- -@code { - [Parameter] - public bool IsLoading { get; set; } - - [Parameter] - public string LoadingText { get; set; } = string.Empty; - - [Parameter] - public EventCallback LoadingChanged { get; set; } - - void Loading(bool loading,string loadingText) - { - IsLoading = loading; - LoadingText = loadingText; - base.StateHasChanged(); - } - - protected override void OnInitialized() - { - GlobalConfig.OnLoadingChanged += Loading; - } - - public void Dispose() - { - GlobalConfig.OnLoadingChanged -= Loading; - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Shared/MainLayout.razor b/src/Web/Masa.Mc.Web.Admin/Shared/MainLayout.razor deleted file mode 100644 index 37a42041..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Shared/MainLayout.razor +++ /dev/null @@ -1,58 +0,0 @@ -@using Masa.BuildingBlocks.StackSdks.Config; -@using Masa.Contrib.StackSdks.Config; -@inherits LayoutComponentBase -@inject GlobalConfig GlobalConfig -@inject NavigationManager Navigation -@inject IMasaStackConfig MasaStackConfig - - - @Body - - - -@code { - [Inject] - public IPopupService PopupService { get; set; } = default!; - - [Inject] - public I18n I18N { get; set; } = default!; - - private Task OnErrorAfterHandle(Exception exception) - { - GlobalConfig.Loading = false; - GlobalConfig.ThrottleFlag = false; - return Task.CompletedTask; - } - - private bool SignOut() - { - Navigation.NavigateTo("/Logout",true); - return true; - } - - protected bool TranslateFluentValidationProperty { get; set; } = true; - - private void UsingI18nToResolveFluentValidationDisplayName(I18n i18N) - { - ValidatorOptions.Global.DisplayNameResolver = (type, member, expression) => - { - if (member != null) - { - var memberName = i18N.T(member.Name); - return memberName; - } - return null; - }; - } - - protected override Task OnAfterRenderAsync(bool firstRender) - { - if (TranslateFluentValidationProperty) - { - UsingI18nToResolveFluentValidationDisplayName(I18N); - } - return base.OnAfterRenderAsync(firstRender); - } -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/Shared/MainLayout.razor.css b/src/Web/Masa.Mc.Web.Admin/Shared/MainLayout.razor.css deleted file mode 100644 index 5b076258..00000000 --- a/src/Web/Masa.Mc.Web.Admin/Shared/MainLayout.razor.css +++ /dev/null @@ -1,3 +0,0 @@ -.main-layout ::deep .app-bar .m-toolbar__content { - padding: 0 !important; -} diff --git a/src/Web/Masa.Mc.Web.Admin/_Imports.cs b/src/Web/Masa.Mc.Web.Admin/_Imports.cs deleted file mode 100644 index a27c620d..00000000 --- a/src/Web/Masa.Mc.Web.Admin/_Imports.cs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) MASA Stack All rights reserved. -// Licensed under the Apache License. See LICENSE.txt in the project root for license information. - -// System Namespaces -global using System.Collections.Concurrent; -global using System.Reflection; -global using System.Text; - -// Microsoft Namespaces -global using Microsoft.AspNetCore.Components; -global using Microsoft.AspNetCore.Components.Forms; -global using Microsoft.AspNetCore.Components.Web; -global using Microsoft.AspNetCore.SignalR.Client; -global using Microsoft.Extensions.DependencyInjection; -global using Microsoft.JSInterop; - -// Third-party Libraries -global using BlazorDownloadFile; -global using FluentValidation; -global using Mapster; - -// MASA Building Blocks and Contrib Packages -global using Masa.BuildingBlocks.StackSdks.Auth; -global using Masa.BuildingBlocks.StackSdks.Auth.Contracts.Model; -global using Masa.Contrib.StackSdks.Config; - -// MASA Blazor Components -global using Masa.Blazor; -global using Masa.Blazor.Components.Editor; -global using Masa.Blazor.Presets; -global using Masa.Stack.Components; -global using Masa.Stack.Components.Extensions; - -// MASA MC Contracts, Infrastructure, Domain, Services, and Application -global using Masa.Mc.ApiGateways.Caller; -global using Masa.Mc.ApiGateways.Caller.Services.Channels; -global using Masa.Mc.ApiGateways.Caller.Services.MessageTemplates; -global using Masa.Mc.ApiGateways.Caller.Services.ReceiverGroups; -global using Masa.Mc.ApiGateways.Caller.Services.MessageTasks; -global using Masa.Mc.ApiGateways.Caller.Services.MessageInfos; -global using Masa.Mc.ApiGateways.Caller.Services.MessageRecords; -global using Masa.Mc.ApiGateways.Caller.Services.Oss; -global using Masa.Mc.Contracts.Admin.Dtos; -global using Masa.Mc.Contracts.Admin.Dtos.Channels; -global using Masa.Mc.Contracts.Admin.Dtos.MessageTemplates; -global using Masa.Mc.Contracts.Admin.Dtos.ReceiverGroups; -global using Masa.Mc.Contracts.Admin.Dtos.MessageTasks; -global using Masa.Mc.Contracts.Admin.Dtos.MessageInfos; -global using Masa.Mc.Contracts.Admin.Dtos.MessageRecords; -global using Masa.Mc.Contracts.Admin.Dtos.Subjects; -global using Masa.Mc.Domain.Shared.Channels; -global using Masa.Mc.Domain.Shared.MessageTemplates; -global using Masa.Mc.Domain.Shared.ReceiverGroups; -global using Masa.Mc.Domain.Shared.MessageTasks; -global using Masa.Mc.Domain.Shared.MessageRecords; -global using Masa.Mc.Domain.Shared.Consts; -global using Masa.Mc.Infrastructure.Common.Helper; -global using Masa.Mc.Infrastructure.Common.Extensions; -global using Masa.Mc.Infrastructure.Ddd.Application.Contracts.Dtos; -global using Masa.Mc.Data; - -// MASA MC Web Admin Pages and Components -global using Masa.Mc.Web.Admin.Global; -global using Masa.Mc.Web.Admin.Pages.Channels.Modules; -global using Masa.Mc.Web.Admin.Pages.MessageTemplates.Modules; -global using Masa.Mc.Web.Admin.Pages.ReceiverGroups.Modules; -global using Masa.Mc.Web.Admin.Pages.MessageTasks.Modules; -global using Masa.Mc.Web.Admin.Pages.MessageRecords.Modules; -global using Masa.Mc.Web.Admin.Components.Modules.Subjects; -global using Masa.Mc.Web.Admin.Model; - -// Validators -global using Masa.Mc.Contracts.Admin.Dtos.MessageInfos.Validator; -global using Masa.Mc.Contracts.Admin.Dtos.MessageTasks.Validator; -global using Masa.Mc.Contracts.Admin.Options.Channels; \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/_Imports.razor b/src/Web/Masa.Mc.Web.Admin/_Imports.razor deleted file mode 100644 index 23284c5b..00000000 --- a/src/Web/Masa.Mc.Web.Admin/_Imports.razor +++ /dev/null @@ -1,55 +0,0 @@ -@using Microsoft.AspNetCore.Components.Web -@using Masa.Blazor -@using Masa.Blazor.Presets -@using Masa.Mc.Web.Admin.Global -@using Masa.Mc.Web.Admin.Shared -@using System.Diagnostics.CodeAnalysis -@using Microsoft.AspNetCore.Components.Authorization -@using Microsoft.AspNetCore.Components.Routing -@using Masa.Mc.Web.Admin.Pages.Channels.Modules -@using Masa.Mc.Contracts.Admin.Dtos.Channels -@using Masa.Mc.Domain.Shared.Channels -@using Humanizer -@using Masa.Mc.Domain.Shared.MessageTemplates -@using Masa.Mc.Web.Admin.Pages.MessageTemplates.Modules -@using Masa.Mc.Contracts.Admin.Dtos.ReceiverGroups -@using Masa.Mc.Web.Admin.Pages.ReceiverGroups.Modules -@using System.Globalization -@using Masa.Mc.Web.Admin.Pages.MessageTasks.Modules -@using Masa.Mc.Domain.Shared.MessageTasks -@using Masa.Stack.Components -@using Masa.Mc.Domain.Shared.MessageRecords -@using Masa.Mc.Web.Admin.Pages.MessageRecords.Modules -@using Masa.Mc.Web.Admin.Components.Modules.Subjects -@using Masa.Mc.Web.Admin.Components.Selects -@using Masa.Mc.Web.Admin.Components.Modules.MessageTemplates -@using Masa.Mc.Web.Admin.Components.Modules.MessageTasks -@using Masa.Mc.Web.Admin.Components -@using Masa.Mc.Web.Admin.Components.ButtonGroup -@using Masa.Mc.Domain.Shared.WebsiteMessages -@using Masa.Mc.Web.Admin.Components.Markdown -@using Masa.Mc.Web.Admin.Components.RichText -@using Masa.Mc.Domain.Shared.Subjects -@using Masa.Mc.Contracts.Admin.Dtos.Subjects -@using Masa.Mc.Web.Admin.Components.TextField -@using Masa.Stack.Components.Layouts -@using Microsoft.AspNetCore.Components.Rendering -@using Masa.Stack.Components.Models -@using Masa.Mc.Web.Admin.Components.Chip -@using Masa.Mc.Web.Admin.Components.Lists -@using Masa.Mc.Web.Admin.Components.Modules.MessageRecords -@using Masa.Mc.Web.Admin.Components.Upload -@using Masa.Mc.Web.Admin.Components.Group -@using System.Net.Http -@using System.Net.Http.Json -@using Microsoft.AspNetCore.Components.Forms -@using Microsoft.AspNetCore.Components.Web.Virtualization -@using Microsoft.JSInterop -@using static Masa.Stack.Components.JsInitVariables -@using Masa.Mc.Web.Admin.Components.GenericColumnRender -@using Masa.Mc.Web.Admin.Components.Default -@using Masa.Contrib.StackSdks.Caller; -@using Masa.Stack.Components.Shared.IntegrationComponents -@using Masa.Mc.Web.Admin.Consts; -@using Masa.Mc.Data; -@using Masa.Mc.Infrastructure.ObjectExtending; \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/css/masa-blazor-pro.css b/src/Web/Masa.Mc.Web.Admin/wwwroot/css/masa-blazor-pro.css deleted file mode 100644 index c482193f..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/css/masa-blazor-pro.css +++ /dev/null @@ -1,575 +0,0 @@ -html { - font-size: 16px; -} - -/*scrollbar*/ -::-webkit-scrollbar-track { - border-radius: 15px; - margin: 5px 0; -} - -::-webkit-scrollbar { - width: 5px; - height: 5px; - margin: 5px 0; -} - -::-webkit-scrollbar-thumb { - margin: 5px 0; - border-radius: 15px; - background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.44, rgb(170 168 168)), color-stop(0.72, rgb(170 168 168)), color-stop(0.86, rgb(170 168 168))); -} - -.border-b-solid { - /* 分割线/下 */ - box-shadow: inset 0px -1px 0px #F0F3FA !important; -} - -.block-center { - /*flex 布局*/ - display: flex; - /*实现垂直居中*/ - align-items: center; -} - -.block-between { - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; -} - -/*组件样式全局修改start*/ -.m-radio i { - font-size: 21px !important; -} - -.m-input__slot { - margin-bottom: 0px !important; -} - -.m-messages { - min-height: 0px !important; -} - -.m-navigation-drawer__border { - width: 0 -} - -.m-card { - box-shadow: 0px 0px 0px 0px rgb(0 0 0 / 20%), 0px 0px 0px 0px rgb(0 0 0 / 14%), 0px 0px 0px 0px rgb(0 0 0 / 12%) !important; - border-radius: 20px; -} - - .m-card.line { - border-radius: 10px !important; - } - -.m-card__text { - padding: 16px 24px; - height: 100%; -} - -.m-input .m-input__icon .mdi-menu-down { - color: #A3AED0; -} - -.m-input .m-label { - /* BUTTON-按钮 */ - font-family: Roboto !important; - font-style: normal !important; - font-weight: 500 !important; - font-size: 0.875rem !important; - /* line-height: 1rem !important;*/ - /* default color */ - color: #7681AB; -} - -.m-input--checkbox .mdi-checkbox-blank-outline { - color: #A3AED0 !important; - caret-color: #A3AED0 !important; -} - -.theme--light .m-input--is-disabled .mdi-checkbox-blank-outline { - color: #E9EDF7 !important; - caret-color: #E9EDF7 !important; -} - -.theme--light .m-input--is-disabled .mdi-checkbox-marked { - color: #E9EDF7 !important; - caret-color: #E9EDF7 !important; -} - -.m-input--checkbox .m-input--selection-controls__ripple:before { - content: none; -} - -.m-input--selection-controls__input:hover .mdi-checkbox-blank-outline { - color: #4318FF !important; - caret-color: #4318FF !important; -} - -.m-radio .mdi-radiobox-blank { - color: #A3AED0 !important; - caret-color: #A3AED0 !important; -} - - -.table-header-fill .m-data-table-header tr { - background: #F6F8FD; -} - -.table-border-none td, th { - border-bottom: 0px !important; - box-shadow: none; -} - -.table-border-solid td, th { - border-bottom: 0 !important; - box-shadow: none; -} - -.primaryText .primaryText { - color: #4318FF !important; - caret-color: #4318FF !important; -} - -.m-pagination__navigation, .m-pagination__item { - box-shadow: 0px 0px 0px 0px rgb(0 0 0 / 20%), 0px 0px 0px 0px rgb(0 0 0 / 14%), 0px 0px 0px 0px rgb(0 0 0 / 12%) !important; -} - -.m-btn--is-elevated { - box-shadow: none !important; -} - -.hide-shadow { - box-shadow: none !important; - border: none; -} - -/* pagetabs */ - -.m-page-tabs .m-slide-group__prev.m-slide-group__prev--disabled { - flex: none !important; - min-width: 0px !important; -} - -/* pagetabs */ -/*组件样式全局修改end*/ -/*shop*/ -.ml300 { - margin-left: 300px; -} - -.commodity:hover { - height: calc(100% + 10px); -} - - .commodity:hover .content { - transition-property: margin-top; - transition-duration: 0.5s; - box-shadow: 0px 18px 40px rgba(112, 144, 176, 0.12) !important; - margin-top: -4px; - } - -.order:hover { - background-color: #6946FF !important; -} - - .order:hover .white-order { - color: #FFFFFF !important; - caret-color: #FFFFFF !important; - } - -.favorite:hover { - background: #F6F8FD !important; -} -/*shop*/ - -.coupons.m-text-field > .m-input__control > .m-input__slot:before { - border-color: transparent; - border-style: hidden; -} - -.coupons.m-text-field > .m-input__control > .m-input__slot:after { - border-color: transparent; - border-style: hidden; -} - -.coupons .m-input__control .m-text-field__slot input::-webkit-input-placeholder { - font-family: Roboto !important; - font-style: normal !important; - font-weight: bold !important; - font-size: 1rem !important; - line-height: 1.1875rem !important; - letter-spacing: 0.009375rem !important; - color: #323D6F !important; -} - -.m-text-field.m-input--dense:not(.m-text-field--outlined) .m-text-field__prefix, .m-text-field.m-input--dense:not(.m-text-field--outlined) .m-text-field__suffix, .m-text-field.m-input--dense:not(.m-text-field--outlined) input { - padding-top: 0; -} - -.max-height { - height: 100% !important; -} - -.max-width { - width: 100% !important; -} - -.full-width { - width: 100% !important; -} - -.full-height { - height: 100% !important; -} - -.hide { - display: none; -} - -.border-right-solid { - border-right: 1px solid #ebe9f1; -} - -.border-left-solid { - border-left: 1px solid #ebe9f1; -} - -.congratulation-medal { - position: absolute; - top: 0; - right: 37px; -} - -.a { - color: #7367f0 !important; - text-decoration: none; -} - -.border-top-solid { - border-top: 1px solid #d8d6de; -} - -.border-solid { - border: 1px solid #d8d6de; -} - -.card-text { - line-height: 1.5rem; - box-sizing: border-box; - margin-block-start: 1em; - margin-block-end: 1em; - margin-inline-start: 0px; - margin-inline-end: 0px; -} - -.pro-nav > .m-tabs-bar { - background-color: transparent !important; -} - -.pro-nav .m-tab:before { - background-color: transparent; -} - -.m-btn { - text-transform: none !important; -} - -.list-unstyled { - list-style: none; -} - -.vertical-center { - display: flex; - -webkit-box-pack: center; - justify-content: center; - -webkit-box-align: center; - align-items: center; -} - -.linear-gradient-purple { - background: linear-gradient(118deg,#7367f0,rgba(115,103,240,.7)) -} - -.grey-bg { - background-color: #f8f8f8; -} - -.hover-pointer { - cursor: pointer; -} - -.justify-text-align { - text-align: justify !important; -} - -.relate-group .m-icon { - font-size: 40px; -} - -.relate-group .m-slide-group__next { - margin-left: 10px; -} - -.pointer-events-none { - pointer-events: none; -} - -.btn .m-label { - color: #323D6F; - font-family: Roboto; - font-style: normal; - font-weight: 500; - font-size: 14px; - line-height: 16px; -} - -.mtab-tab-linear-primary { - background: linear-gradient(270deg, #4318FF 5.56%, rgba(67, 24, 255, 0) 100%); -} - -.mtab-tab-linear-neutral { - background: linear-gradient(270deg, #E9EDF7 0%, rgba(233, 237, 247, 0) 100%); -} - -.mtab-tab-line { - align-self: stretch; - margin: 10px 0px; - width: 87px; - height: 6px; - border-radius: 60px; -} - -.mtab-tab-indicator { - margin-top: 3px; - margin-left: -1px; - align-self: stretch; - width: 22px; - height: 22px; -} - -.mtab-tab-indicator-primary { - border: 4px solid #4318FF; - box-sizing: border-box; -} - -.mtab-tab-indicator-neutral { - background: #F0F3FA; - border: 4px solid #A3AED0; - box-sizing: border-box; -} - -.mtab-tab-title { - position: absolute; - top: 29px; - font-family: Roboto; - font-style: normal; - font-weight: 500; - font-size: 14px; - line-height: 16px; - color: #1B2559; -} - -.auto-width { - width: auto; - margin: 0px 8px; -} - -.hidden-webkit-scrollbar::-webkit-scrollbar { - display: none; -} - -.hidden-webkit-scrollbar { - -ms-overflow-style: none; /* for Internet Explorer, Edge */ - overflow-y: scroll; -} - -.neutral-lighten-1--text .m-label { - color: #323D6F !important; -} - -.neutral-lighten-4--text .m-label { - color: #A3AED0 !important; -} - -.theme--light.m-text-field--outlined.neutral-lighten-4--text > .m-input__control > .m-input__slot fieldset { - color: #A3AED0 !important; -} - -.task-search.m-text-field > .m-input__control > .m-input__slot:before, .m-text-field > .m-input__control > .m-input__slot:after { - width: 0 !important; -} - -.task-search.m-text-field > .m-input__control > .m-input__slot:before, .m-text-field > .m-input__control > .m-input__slot:after { - width: 0 !important; -} - -.hide-timeline-before.m-timeline:before { - content: none; -} - -.pro-timeline-before.m-timeline:before { - background-color: #E9EDF7 !important; -} - - -.divider-align-start .m-timeline-item__divider { - align-items: start; - margin-top: 8px; -} - -td.text-center .m-input--checkbox .m-input__slot { - justify-content: center !important; -} - -.m-divider { - border-color: #E9EDF7 !important; -} - -.m-application .elevation-6 { - box-shadow: 0 18px 40px 0 rgb(112 144 176 / 12%) !important; -} - -.task-datepicker { - border-radius: 0px !important; -} - -input::-webkit-input-placeholder { - color: #7681AB !important; - font-size: 12px !important; -} - -.m-data-table-header__icon { - position: absolute !important; -} - -.user .m-data-table-header__icon { - margin-top: 1px; -} - -.neutral-lighten-icon .m-icon { - color: #A3AED0 !important; -} - -.m-timeline-flat .m-timeline-item__dot { - box-shadow: none; -} - -.chip-text { - font-style: normal !important; - font-weight: bold !important; -} - -.m-application .remover-ripple a { - color: #4318FF !important; -} - -.remover-ripple .m-list-item:before { - content: none !important; -} - -.remover-ripple .m-ripple__container { - opacity: 0 !important; -} - -.remover-ripple .m-list-item:hover .m-list-item__title { - color: #4318FF !important; -} - -.remover-ripple-with-icon .m-list-item:hover .m-icon { - color: inherit !important; -} - -.cyan { - background-color: #37A7FF !important; -} - -.cyan--text { - color: #37A7FF !important; -} - -.cyan-light { - background-color: #EBF6FF; -} - -.theme--light.m-icon { - color: #7681AB; -} - -.invoice-list-avatar { - width: 32px; - height: 32px; - font-size: .857rem; - font-weight: 600; -} - -.pagetabs .m-item-group.m-slide-group.m-tabs-bar { - margin-top: 4px; -} - -.m-page-tabs .m-page_tab { - background-color: #FFF; - font-family: Roboto; - font-style: normal; - font-weight: bold; - font-size: 14px; - line-height: 16px; - letter-spacing: 0.1px; - /* text/3-1次要 */ - color: #A3AED0 !important; - border-top-left-radius: 8px !important; - border-top-right-radius: 8px !important; -} - -.m-page_tab .m-icon { - color: #A3AED0 !important; - font-size: 16px !important; -} - -.m-page_tab_active { - background-color: #F0F3FA !important; - font-family: Roboto; - font-style: normal; - font-weight: bold; - font-size: 14px; - line-height: 16px; - letter-spacing: 0.1px; - /* text/1-1强调 */ - color: #1B2559 !important; -} - - .m-page_tab_active > .m-icon { - color: #1B2559 !important; - } - -.m-page-tabs > .m-tabs-bar { - border-bottom-left-radius: 20px !important; - border-bottom-right-radius: 20px !important; - height: 36px; - padding-left: 16px; -} - -.m-page-tabs .m-tab:before { - content: none !important; -} - -.m-page-tabs .m-tab:hover { - background-color: #F6F8FD; - color: #485585 !important; -} - - .m-page-tabs .m-tab:hover > .m-icon { - color: #485585 !important; - } - -.m-app-bar.rounded-b-4 > .m-toolbar__content { - border-bottom-left-radius: 20px !important; - border-bottom-right-radius: 20px !important; -} - -.m-dialog--drawer .m-card { - border-radius: 0; -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/css/mc-admin.css b/src/Web/Masa.Mc.Web.Admin/wwwroot/css/mc-admin.css deleted file mode 100644 index 132fa913..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/css/mc-admin.css +++ /dev/null @@ -1,470 +0,0 @@ -.rounded-2 { - border-radius: 10px !important; -} - -.rounded-4 { - border-radius: 20px !important; -} - -.button { - min-width: 40px; - min-height: 40px; - border: 1px solid #F0F3FA; - box-sizing: border-box; - border-radius: 10px; - cursor: pointer; -} - -.text-btn { - /* BUTTON-按钮 */ - font-family: Roboto !important; - font-style: normal !important; - font-weight: 400 !important; - font-size: 0.875rem !important; - line-height: 1.25rem !important; - /* default color */ - color: #A3AED0 !important; -} - -.m-input.mx-auto .m-text-field__slot { - padding-bottom: 2px; -} - - .m-input.mx-auto .m-text-field__slot input { - text-align: center; - } - -.m-input.mx-auto .m-input__slot::before { - border-color: #E2E7F4 !important; -} - -.m-input.mx-auto .m-text-field__slot input::placeholder { - text-align: center; - color: #A3AED0 !important; - font-family: Roboto !important; - font-size: 24px !important; - font-style: normal !important; - font-weight: 700 !important; - line-height: normal !important; - letter-spacing: 0em !important; -} - -.m-data-table.table-space-v-4 > .m-data-table__wrapper > table { - border-spacing: 0px 16px !important; -} - -.m-data-table.table-space-v-2 > .m-data-table__wrapper > table { - border-spacing: 0px 8px !important; -} - -.justify-center.m-input--checkbox > .m-input__control { - flex-grow: 0 !important; - width: auto !important; -} - -.elevation-tab { - background-color: #F0F3FA !important; - padding: 3px; -} - -.m-item-group.elevation-tab .m-btn.m-btn--has-bg.m-btn--active { - background-color: white !important; - font-family: 'Roboto'; - font-style: normal; - font-weight: 700; - font-size: 14px; - line-height: 16px; - display: flex; - align-items: center; - text-align: center; - letter-spacing: 0.1px; - /* text/1-2强调 */ - - color: #323D6F; -} - -.elevation-tab .theme--light.m-btn--active:hover::before, .elevation-tab .theme--light.m-btn--active::before { - opacity: 0; -} - -.m-item-group.elevation-tab .m-btn.m-btn--has-bg { - background-color: #F0F3FA !important; - font-family: 'Roboto'; - font-style: normal; - font-weight: 500; - font-size: 14px; - line-height: 21px; - /* identical to box height, or 150% */ - - display: flex; - align-items: center; - text-align: center; - /* text/2-2正文 */ - - color: #7681AB; -} - -.remover-hover.m-list-item:hover::before { - opacity: 0 !important; -} - -.max-full-height { - max-height: 100% !important; -} - -.m-stepper__content.full-height .m-stepper__wrapper { - height: 100% !important; -} - -.m-window.m-item-group.flex-grow-1 .m-window__container { - height: 100% !important; -} - -.full-height.d-flex.flex-column .m-data-table__wrapper { - flex-grow: 1 !important; -} - -.m-data-table .m-data-table__wrapper { - border-radius: 20px; -} - -.m-text-field.m-text-field--solo.elevation-0:not(.m-text-field--solo-flat) > .m-input__control > .m-input__slot { - box-shadow: none; -} - -.flex-column { - display: flex; - flex-direction: column; - word-break: break-all; -} - -.flex-height-auto { - flex: auto; -} - -.overflow-y { - overflow-y: scroll; - overflow-x: hidden; -} - -.sheet-dialog { - padding-left: 80px; - padding-right: 80px; - padding-bottom: 24px; - padding-top: 24px; - height: 100%; - width: 100%; - position: absolute; -} - -.m-stepper__content.full-height .m-stepper__wrapper { - height: 100% !important; -} - -.m-window.m-item-group.flex-grow-1 .m-window__container { - height: 100% !important; -} - -.full-height.d-flex.flex-column .m-data-table__wrapper { - flex-grow: 1 !important; -} - -.m-text-field.m-text-field--solo.elevation-0:not(.m-text-field--solo-flat) > .m-input__control > .m-input__slot { - box-shadow: none; -} - -.line-clamp-2 { - word-break: break-all; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - overflow: hidden; -} - -.m-text-field.m-text-field--solo:not(.m-text-field--solo-flat) > .m-input__control > .m-input__slot { - box-shadow: initial; -} - -.m-data-table > .m-data-table__wrapper > table > thead > tr > th, .m-data-table > .m-data-table__wrapper > table > tbody > tr > td { - padding: 0 24px !important; -} - -.error--text { - color: #FF5252 !important; - caret-color: #FF5252 !important; -} - -.btn-form { - width: 140px !important; - height: 56px !important; - padding: 4px 58px !important; - border-radius: 12px !important; - font-family: 'Roboto'; - font-style: normal; - font-weight: 500; - font-size: 16px; - line-height: 28px; -} - -.btn-form-full { - width: 100% !important; - height: 56px !important; - padding: 4px 58px !important; - border-radius: 12px !important; -} - -.btn-form-rounded { - height: 40px !important; - padding: 8px 14px !important; - border-radius: 99px !important; -} - -/* fill/线 */ -.btn-fill-line { - border: 1px solid #E2E7F4 !important; - border-radius: 8px !important; -} - -/* 小按钮/主要/默认 */ -.small-btn { - min-width: 100px !important; - height: 40px !important; - padding: 4px !important; -} - -.linear--text { - color: #A18BFF !important; -} - -.gradient--text { - color: #4318FF !important; -} - -.search-panel { - height: 40px !important; - position: relative !important; -} - -.rounded-5 { - border-radius: 20px !important; -} - -.m-application .overflow-x-visible { - overflow-x: visible !important; -} - -.m-application .overflow-y-visible { - overflow-y: visible !important; -} - -.border-bottom-none { - border-bottom: none !important; -} - -.masa-stack-components .page-select { - margin-top: 2px; -} - -.masa .warning-disabled--text { - color: #FBACA3 !important; -} - -.m-alert__wrapper { - width: 100%; -} - -.m-input--selection-controls__ripple:before { - opacity: 0; -} - -::-webkit-scrollbar { - width: 8px; - height: 8px; - background-color: #F6F8FD; -} - -/*定义滚动条轨道 - -内阴影+圆角*/ - -::-webkit-scrollbar-track { - border-radius: 4px; - background-color: #F6F8FD; -} - -/*定义滑块 - -内阴影+圆角*/ - -::-webkit-scrollbar-thumb { - border-radius: 10px; - background-color: #A3AED0; -} - -.m-text-field__details { - font-weight: 400; - font-size: 10px; - line-height: 15px; - color: #A3AED0; -} - -/*.m-stepper__wrapper { - overflow: visible; -}*/ - -.m-dialog { - border-radius: 20px !important; -} - - .m-dialog .m-sheet.m-card { - border-radius: 20px !important; - } - -.vertical-divider { - width: 0px; - height: 8px; - border: 1px solid #E2E7F4; - flex: none; - order: 1; - flex-grow: 0; - margin-left: 8px; - margin-right: 8px; -} - -.m-card { - box-shadow: 0px 0px 0px 0px rgb(0 0 0 / 20%), 0px 0px 0px 0px rgb(0 0 0 / 14%), 0px 0px 0px 0px rgb(0 0 0 / 12%) !important; - border-radius: 20px !important; -} - -.row-box > .col { - padding-top: 18px; - padding-bottom: 18px; -} - -.outlined-box-medium { - border: 1px solid #E2E7F4; - border-radius: 8px; - height: 48px; - padding-left: 6px; -} - -.m-input--dense-40 .m-input__slot { - height: auto !important; - min-height: 40px !important; -} - -.tag { - border-radius: 18px; - display: inline-flex; - justify-content: center; - align-items: center; - padding: 8px; - min-width: 56px; - border-radius: 18px; - height: 27px; -} - -.table-boder-head thead th { - height: 43px !important; - border-bottom: solid 1px #E2E7F4 !important; -} - -.search { - width: 300px; -} - -.m-application .rounded-r-4 { - border-top-right-radius: 16px !important; - border-bottom-right-radius: 16px !important; -} -.m-application .rounded-r-10 { - border-top-right-radius: 40px !important; - border-bottom-right-radius: 40px !important; -} - -.flex-none { - flex: none; -} - - -.grid-card { - display: grid; - grid-template-columns: repeat(4, 1fr); - gap: 16px; - height: 0; -} - -.grid-card .item { - height: 0; - padding-bottom: 100%; - position: relative; -} - -.grid-card .item .m-card { - width: 100%; - height: 100%; - position: absolute; -} - -.masa .h6 { - font-size: 1.25rem !important; - font-weight: 700 !important; - line-height: 1.875rem !important; - letter-spacing: 0.01em !important; -} -.masa .h8 { - font-size: 1rem !important; - font-weight: 700 !important; - line-height: 1.5rem !important; - letter-spacing: 0.03125em !important; -} - -.m-input__append-outer { - margin-top: auto !important; - margin-bottom: auto !important; -} - -.sheetDialogPadding { - padding-left: 228px; - padding-right: 228px; - padding-bottom: 48px; - padding-top: 48px; - height: 100%; - width: 100%; - position: absolute; -} - - .sheetDialogPadding .m-stepper__content { - padding-left: 0 !important; - padding-right: 0 !important; - padding-bottom: 0 !important; - padding-top: 0 !important; - } - -.grid { - display: grid; - gap: 24px; - width: 100%; - justify-content: center; -} - - .grid .item { - height: 0; - padding-bottom: 100%; - position: relative; - } - - .grid .item .m-card { - width: 100%; - height: 100%; - position: absolute; - } - -.grid-2 { - grid-template-columns: repeat(2, 33.3%); -} - -.form-content > * { - margin-top: 36px !important; -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/i18n/en-US.json b/src/Web/Masa.Mc.Web.Admin/wwwroot/i18n/en-US.json deleted file mode 100644 index 94f12f93..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/i18n/en-US.json +++ /dev/null @@ -1,291 +0,0 @@ -{ - "$Text": "English", - "$DateTimeFormat": "MM/dd/yyyy HH:mm:ss", - "$DateFormat": "MM/dd/yyyy", - "$MonthDayFormat": "MM/dd", - "$TimeFormat": "HH:mm:ss", - "Unit.Bar": "Bar", - "DeletionConfirmationMessage": "Are you sure delete {0}?", - "BasicInformation": "Basic Information", - "DetailInformation": "Detail Information", - "OperationConfirmation": "Operation confirmation", - "NextStep": "Next step", - "PreviousStep": "Previous step", - "DateRange": "Date range", - "Total": "Total", - "Item": "Item", - "All": "All", - "RowsPerPage": "Rows per page", - "Sms": "Sms", - "Email": "Email", - "WebsiteMessage": "WebsiteMessage", - "Permission.Create": "Add", - "Permission.Edit": "Edit", - "Permission.Delete": "Delete", - "EditIn": "Edit in", - "ExternalMember": "External member", - "Permission.ChannelManagement": "Channel management", - "Permission.CreateChannel": "Add channel", - "Permission.EditChannel": "Edit channel", - "SelectChannelType": "Select channel type", - "ChannelConfiguration": "Channel configuration", - "EmailChannelOptions.UserName": "User name", - "EmailChannelOptions.Password": "Password", - "EmailChannelOptions.Smtp": "Smtp", - "EmailChannelOptions.Ssl": "Ssl", - "EmailChannelOptions.Port": "Port", - "EmailChannelOptions.FromNickName": "From nick name", - "WebsiteMessageChannelOptions.Environment": "Environment", - "SmsChannelOptions.AccessKeyId": "Access Key ID", - "SmsChannelOptions.AccessKeySecret": "Access Key Secret", - "WeixinWorkChannelOptions.CorpId": "CorpId", - "WeixinWorkChannelOptions.CorpSecret": "CorpSecret", - "WeixinWorkChannelOptions.AgentId": "AgentId", - "DisplayName.Channel": "Channel", - "DisplayName.ChannelDisplayName": "name", - "DisplayName.ChannelCode": "ID", - "DisplayName.ChannelType": "Channel type", - "DisplayName.ChannelDescription": "Channel description", - "Description.Channel.Type.Required": "Please select the channel type first", - "ChannelCreateMessage": "Add channel data success.", - "ChannelEditMessage": "Edit channel data success.", - "ChannelDeleteMessage": "Delete channel data success.", - "Permission.MessageTemplateManagement": "Channel messageTemplate", - "Permission.CreateMessageTemplate": "Add messageTemplate", - "Permission.EditMessageTemplate": "Edit messageTemplate", - "DisplayName.MessageTemplate": "Message template", - "DisplayName.MessageTemplateId": "Template ID", - "DisplayName.MessageTemplateChannelDisplayName": "Channel", - "DisplayName.MessageTemplateTemplateType": "Type", - "DisplayName.MessageTemplateDisplayName": "Title", - "DisplayName.MessageTemplateTitle": "Title", - "DisplayName.MessageTemplateCode": "ID", - "DisplayName.MessageTemplateContent": "Content", - "DisplayName.MessageTemplateExample": "Example", - "DisplayName.MessageTemplateSign": "Sign", - "DisplayName.MessageTemplateModificationTime": "Recent updates", - "DisplayName.MessageTemplateStatus": "Status", - "DisplayName.MessageTemplateAuditStatus": "Audit status", - "DisplayName.MessageTemplateTemplateId": "Template ID", - "DisplayName.MessageTemplateIsJump": "Is jump", - "DisplayName.MessageTemplateJumpUrl": "Jump url", - "DisplayName.MessageTemplatePerDayLimit": "Day limit", - "DisplayName.MessageTemplateStatus.Normal": "Normal", - "DisplayName.MessageTemplateStatus.Invalid": "Invalid", - "DisplayName.MessageTemplateAuditStatus.WaitAudit": "Wait audit", - "DisplayName.MessageTemplateAuditStatus.Adopt": "Adopt", - "DisplayName.MessageTemplateAuditStatus.Fail": "Fail", - "Permission.AddMessageTemplateItem": "Add variable", - "Permission.EditMessageTemplateItem": "Edit variable", - "MessageTemplateCreateMessage": "Add messageTemplate success.", - "MessageTemplateEditMessage": "Edit messageTemplate success.", - "MessageTemplateDeleteMessage": "Delete messageTemplate success.", - "Description.MessageTemplate.ChannelId.Required": "Please select a channel", - "Description.MessageTemplate.TemplateId.Required": "Please select templateID", - "Description.MessageTemplate.Sign.Required": "Please enter your signature", - "Description.MessageTemplate.PerDayLimit.Tips": "This module can send the same user at most every day", - "DisplayName.MessageTemplateItem": "Template variable", - "DisplayName.MessageTemplateItemCode": "Variable", - "DisplayName.MessageTemplateItemValue": "Value", - "DisplayName.MessageTemplateItemMappingCode": "Mapping variable", - "DisplayName.MessageTemplateItemDisplayText": "Remarks", - "DisplayName.SmsTemplateType.VerificationCode": "Verification code", - "DisplayName.SmsTemplateType.Notification": "Notification", - "DisplayName.SmsTemplateType.Promotion": "Promotion", - "DisplayName.SmsTemplateType.International": "International", - "DisplayName.SmsTemplateType.Digital": "Digital", - "DisplayName.SmsTemplateType.Other": "Other", - "Permission.ReceiverGroupManagement": "Receiver group management", - "Permission.CreateReceiverGroup": "Add receiver group", - "Permission.EditReceiverGroup": "Edit receiver group", - "DisplayName.ReceiverGroup": "Receiver group", - "DisplayName.ReceiverGroupDisplayName": "name", - "DisplayName.ReceiverGroupDescription": "Receiver group description", - "ReceiverGroupCreateMessage": "Add receiver group success.", - "ReceiverGroupEditMessage": "Edit receiver group success.", - "ReceiverGroupDeleteMessage": "Delete receiver group success.", - "Description.ReceiverGroup.SelectUser": "Please select a user", - "Description.ReceiverGroup.AddSelectMember": "Please add / select members", - "ExternalMemberAddMessage": "External user added successfully.", - "Permission.MessageManagement": "Message management", - "Permission.SendMessage": "Send message", - "Permission.MessageRecord": "Message record", - "Permission.SendOrdinaryMessage": "Send ordinary message", - "Permission.SendTemplateMessage": "Send template message", - "Permission.EditTemplateMessage": "Edit template message", - "Permission.EditOrdinaryMessage": "Edit ordinary message", - "Permission.SendMessageTask": "Execute message task", - "Permission.ViewMessageTask": "View message task", - "DisplayName.MessageEntityType.Ordinary": "Ordinary", - "DisplayName.MessageEntityType.Template": "Template", - "DisplayName.MessageTaskDisplayName": "Message title", - "DisplayName.MessageTaskEntityType": "Message type", - "DisplayName.MessageTaskSendTime": "Send time", - "DisplayName.MessageTaskReceiver": "Receiver", - "DisplayName.MessageTaskSendingRule": "SendingRule", - "DisplayName.ReceiverType": "Receiver type", - "DisplayName.ReceiverType.Assign": "Assign", - "DisplayName.ReceiverType.Broadcast": "Broadcast", - "MessageTaskCreateMessage": "Add message task success.", - "MessageTaskEditMessage": "Edit message task success.", - "MessageTaskDeleteMessage": "Delete message task success.", - "DisplayName.MessageTaskList": "Message task list", - "DisplayName.MessageInfoTitle": "Message info title", - "DisplayName.MessageInfoContent": "Message info content", - "DisplayName.MessageTaskIsEnabled": "Status", - "DisplayName.MessageTaskTimeType": "Time type", - "DisplayName.MessageTaskTimeType.ModificationTime": "ModificationTime", - "DisplayName.MessageTaskTimeType.SendTime": "SendTime", - "DisplayName.VariableValueTransfer": "Variable value transfer", - "DisplayName.SendingRule.Timeout": "Timeout", - "DisplayName.SendingRule.RetryInterval": "RetryInterval", - "DisplayName.SendingRule.RetryCount": "RetryCount", - "DisplayName.SendingRule.IsTiming": "IsTiming", - "DisplayName.MessageTaskHistory": "Message task history", - "DisplayName.MessageTaskHistoryNo": "Task history no", - "DisplayName.MessageTaskHistoryStatus": "Message task status", - "DisplayName.MessageTaskHistoryStatus.WaitSend": "WaitSend", - "DisplayName.MessageTaskHistoryStatus.Sending": "Sending", - "DisplayName.MessageTaskHistoryStatus.Completed": "Completed", - "DisplayName.MessageTaskHistoryStatus.Withdrawn": "Withdrawn", - "DisplayName.MessageTaskHistoryStatus.Success": "Success", - "DisplayName.MessageTaskHistoryStatus.Fail": "Fail", - "DisplayName.MessageTaskHistoryStatus.PartialFailure": "Partial failure", - "DisplayName.MessageTaskStatus": "Send status", - "DisplayName.MessageTaskStatus.WaitSend": "Wait send", - "DisplayName.MessageTaskStatus.Sending": "Sending", - "DisplayName.MessageTaskStatus.Completed": "Completed", - "DisplayName.MessageTaskStatus.Withdrawn": "Withdrawn", - "DisplayName.MessageTaskStatus.Success": "Success", - "DisplayName.MessageTaskStatus.Fail": "Fail", - "DisplayName.MessageTaskStatus.PartialFailure": "Partial failure", - "Permission.TestMessageTask": "Test message task", - "DisplayName.MessageRecordSendTime": "Send time", - "DisplayName.MessageRecordExpectSendTime": "Expect send time", - "DisplayName.MessageRecordReceiptTime": "Receipt time", - "DisplayName.MessageRecordSuccess": "Status", - "DisplayName.MessageRecordFailureReason": "Failure reason", - "DisplayName.MessageRecordSuccess.True": "Sent successfully", - "DisplayName.MessageRecordSuccess.False": "Fail in send", - "DisplayName.MessageRecordTimeTypes": "Time type", - "DisplayName.MessageRecordTimeTypes.ExpectSendTime": "Expect send time", - "DisplayName.MessageRecordTimeTypes.SendTime": "Send time", - "DisplayName.MessageRecordUserId": "Addressee", - "DisplayName.MessageRecordMessageTaskHistoryNo": "Message task history no", - "DisplayName.MessageRecordDisplayName": "Message title", - "Description.MessageReceiversImport.Tips": "A total of {0} pieces of data were uploaded.", - "Description.MessageReceiversImport.ErrorMsg": "Upload failed, please check the file data and upload again", - "Description.MessageReceiversUpload.Placeholder": "Please upload the file", - "Description.MessageReceiversUpload.Tips": "Please upload CSV format file", - "Description.MessageReceiversDownload.Name": "Template file csv", - "Description.MessageReceiversDownload.Tips": "Download", - "Description.MessageReceiversUpload.EncodingTips": "Please upload the UTF-8 encoded CSV file", - "DisplayName.SubjectTypes.User": "User", - "DisplayName.SubjectTypes.Department": "Department", - "DisplayName.SubjectTypes.Role": "Role", - "DisplayName.SubjectTypes.Team": "Team", - "DisplayName.MessageTaskReceiverTypes.User": "User", - "DisplayName.MessageTaskReceiverTypes.Organization": "Organization", - "DisplayName.MessageTaskReceiverTypes.Role": "Role", - "DisplayName.MessageTaskReceiverTypes.Team": "Team", - "DisplayName.MessageTaskReceiverTypes.Group": "Group", - "DisplayName.Color.Lable": "Select color", - "Success": "Success", - "Failure": "Failure", - "View": "View", - "UploadComplete": "Upload complete", - "UploadFile": "Upload file", - "Permission.ViewMessageRecord": "View message record", - "ReceiversCount": "Expect {0} people", - "DisplayName.SendingRule.CronExpression": "Cron expression", - "DisplayName.SendingRule.IsCustom": "Is custom", - "DisplayName.SendingRule.SendingCount": "Sending count", - "DisplayName.SendingRule.SendingCount.Tips": "0 is unlimited", - "DisplayName.MessageTaskDetail.ReceiverType": "Type", - "ChannelOptions.Tips": "Please check the filled data carefully. If you fill in the wrong data, the message will fail to be sent", - "SelectTemplate": "Select template", - "CronExpressionInvalid": "Cron expression is invalid", - "CronExpressionNotHasNextRunTime": "Cannot calculate the next run time from this expression", - "ChannelBlock": { - "Title": "Channel", - "SchemeTooltip": "Select third-party-idp as the data source for pushing user IDs", - "SchemeFieldTooltip": "Do not use thridPartyIdentity" - }, - "MessageTaskBlock": { - "Title": "Message task", - "MessageDetails": "Message details" - }, - "MessageRecordBlock": { - "Title": "MessageRecord" - }, - "MessageTemplateBlock": { - "SmsTemplateTitle": "SmsTemplate", - "EmailTemplateTitle": "EmailTemplate", - "WebsiteMessageTitle": "WebsiteMessage", - "AppTitle": "App" - }, - "ReceiverGroupBlock": { - "Title": "ReceiverGroup" - }, - "ChannelDisplayNameRequired": "Please fill in the channel name", - "ChannelDisplayNameChineseLetterNumberSymbol": "Channel name can only be Chinese/letter/number/some special characters", - "ChannelDisplayNameRequiredLength": "The length of channel name can only be between 2 and 50", - "ChannelCodeRequired": "Please fill in the channel ID", - "ChannelCodeLetterNumberSymbol": "Channel ID can only be Chinese/letter/number/some special characters", - "ChannelCodeRequiredLength": "The channel ID length can only be between 2 and 50", - "ChannelTypeRequired": "Please select a channel type", - "ChannelIdRequired": "Please select a channel", - "MessageTemplateRequired": "Please select a message template", - "MessageTypeRequired": "Please select a message type", - "ReceiverTypeRequired": "Please select the receiving type", - "SelectReceiverTypeRequired": "Please select the recipient selection method", - "ReceiversRequired": "Please select a recipient", - "SignRequired": "Please fill in your signature", - "SignLength": "The signature length can only be between 2 and 50", - "SignChineseLetterNumber": "Signature can only be Chinese/letter/number/some special characters", - "TitleRequired": "Please fill in the title", - "TitleLength": "The title length can only be between 2 and 50", - "ContentRequired": "Please fill in the content", - "JumpUrlRequired": "Please fill in the jump address", - "DisplayNameRequired": "Please fill in the name", - "DisplayNameLength": "Name length can only be between 2 and 50", - "DisplayNameChineseLetterNumber": "Name can only be Chinese/letter/number/some special characters", - "CronExpressionRequired": "Please fill in Cron expression", - "MessageTemplateDisplayNameRequired": "Please fill in the template name", - "MessageTemplateDisplayNameLength": "Template name length can only be between 2 and 50", - "MessageTemplateCodeRequired": "Please fill in the template ID", - "MessageTemplateCodeLetterNumberSymbol": "Template ID can only be letters/numbers/some special characters", - "MessageTemplateCodeLength": "Template ID length can only be between 2 and 50", - "MessageTemplateStatusRequired": "Please select a template type", - "MessageTemplatePerDayLimitBetween": "Daily sending limit can only be between 1 and 500", - "MessageTemplateTemplateIdRequired": "Please select a template", - "MessageTemplateItemsCannotRepeated": "Template variables cannot be repeated", - "ReceiverGroupItemsRequired": "Please select a recipient", - "PhoneNumberRequired": "Please fill in your mobile number", - "EmailRequired": "Please fill in the email address", - "EmailInvalid": "Please fill in the correct email address", - "EmailChannelUserNameRequired": "Please fill in the email account", - "EmailChannelPasswordRequired": "Please fill in the email password", - "EmailChannelSmtpRequired": "Please fill in the email Smtp", - "SmsChannelAccessKeyIdRequired": "Please fill in AccessKeyID", - "SmsChannelAccessKeySecretRequired": "Please fill in AccessKeySecret", - "UploadFileSizeExceeded": "Upload file size exceeds limit", - "UploadFileEmpty": "Please select file", - "TaskWithdrawnConfirmationMessage": "Are you sure withdrawn task {0}?", - "DisplayName.AppChannelProviders": "Provider", - "DisplayName.AppChannelProviders.GeTui": "GeTui", - "DisplayName.AppChannelProviders.JPush": "JPush", - "UserDisplayNameRequired": "Please fill in the displayName", - "UserDisplayNameLength": "The length of displayName can only be between 2 and 50", - "UserDisplayNameChineseLetterNumber": "DisplayName can only be Chinese/letter/number", - "CreateSuccessfulMessage": "Create {0} successfully", - "EditSuccessfulMessage": "Edit {0} successfully", - "DeleteSuccessfulMessage": "Deleted {0} successfully", - "NotificationMessage": "Notification message", - "InAppMessages": "In app messages", - "InAppMessagesTips": "Generate internal message or not", - "JumpUrlTips": "Internal message forwarding address", - "OptionalConfiguration": "Optional configuration", - "IntentUrl": "Click on the notification to open the specified page", - "IntentUrlTips": "

Open the specified page

There are two ways to open a specified page

1. Fill in the complete package name and activity in the following format:

intent:#Intent;component=com.jiguang.push/com.example.jpushdemo.SettingActivity;end

2. The client activity is configured in the manifest as:

<activity android:name='.MyActivity' android:exported='true'> <intent-filter> <action android:name='android.intent.action.VIEW' /> <category android:name='android.intent.category.DEFAULT' /> <data android:scheme='app' android:host='example' android:path='/MyActivity/' /> </intent-filter> </activity>

The path filled in is:app://example/MyActivity/

" -} diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/i18n/supportedCultures.json b/src/Web/Masa.Mc.Web.Admin/wwwroot/i18n/supportedCultures.json deleted file mode 100644 index bbb1d45d..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/i18n/supportedCultures.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - "zh-CN", - "en-US" -] - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/i18n/zh-CN.json b/src/Web/Masa.Mc.Web.Admin/wwwroot/i18n/zh-CN.json deleted file mode 100644 index 0c07cc5f..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/i18n/zh-CN.json +++ /dev/null @@ -1,425 +0,0 @@ -{ - "$DefaultLanguage": "true", - "$Text": "中文简体", - "$DateTimeFormat": "yyyy年MM月dd日 HH:mm:ss", - "$DateFormat": "yyyy年MM月dd日", - "$MonthDayFormat": "MM月dd日", - "$TimeFormat": "HH:mm:ss", - "Unit.Bar": "条", - "Favorite": "收藏", - "Source": "来源", - "Search": "搜索", - "Type": "类型", - "Copy": "复制", - "CreationTime": "创建时间", - "ModificationTime": "修改时间", - "State": "状态", - "Enable": "启用", - "IsEnabled": "启用/禁用", - "Description": "描述", - "Explain": "说明", - "Disabled": "禁用", - "Action": "操作", - "New": "新建", - "Submit": "提交", - "Save": "保存", - "SaveSend": "保存并发送", - "Delete": "删除", - "Edit": "编辑", - "Sync": "同步", - "SyncTemplate": "同步模板", - "AddChild": "加子级", - "DeletionConfirmationMessage": "确定删除{0}吗", - "Creator": "创建人", - "Modifier": "最近修改人", - "Rows per page": "列/页", - "Male": "男", - "Female": "女", - "NextStep": "下一步", - "PreviousStep": "上一步", - "PCS": "个", - "Preview": "预览", - "Fill in more": "填写更多", - "Avatar": "头像", - "Icon Code": "ICON代码", - "Total": "共", - "Item": "条", - "All": "全部", - "RowsPerPage": "每页行数", - "User": "用户", - "Name": "姓名", - "Avatr": "头像", - "User.DisplayName": "用户昵称", - "PhoneNumber": "手机号码", - "IdCard": "身份证号", - "Account": "账号", - "UserId": "用户ID", - "Password": "密码", - "CompanyName": "公司名称", - "Address": "地区", - "BasicInformation": "基础信息", - "DetailInformation": "详细信息", - "OperationConfirmation": "操作确认", - "DateRange": "日期范围", - "Sms": "短信", - "Email": "邮箱", - "WebsiteMessage": "站内信", - "WeixinWork": "企业微信", - "WeixinWorkWebhook": "企业微信群机器人", - "WaitAudit": "待审核", - "Adopt": "通过", - "Fail": "未通过", - "Normal": "正常", - "Invalid": "失效", - "Permission.Create": "新建", - "Permission.Edit": "编辑", - "Permission.Delete": "删除", - "Team": "团队", - "Role": "角色", - "Organization": "组织架构", - "ExternalMember": "外部成员", - "EditIn": "编辑于", - "AddExternalMember": "新建外部成员", - "ManualSelection": "手动选择", - "BatchUpload": "批量上传", - "Second": "秒", - "Send": "发送", - "Each": "每", - "Draft": "草稿", - "Initiate": "启动", - "Disable": "禁用", - "Withdraw": "撤销", - "Ok": "确定", - "Cancel": "取消", - "StartTime": "开始时间", - "EndTime": "结束时间", - "OperationSuccessfulMessage": "操作成功.", - "DeletedSuccessfullyMessage": "删除成功.", - "ChannelManagement": "渠道管理", - "Permission.ChannelManagement": "渠道管理", - "Permission.CreateChannel": "新建渠道", - "Permission.EditChannel": "编辑渠道", - "SelectChannelType": "选择渠道类型", - "ChannelConfiguration": "渠道配置", - "EmailChannelOptions.UserName": "邮箱账号", - "EmailChannelOptions.Password": "密码", - "EmailChannelOptions.Smtp": "SMTP服务器", - "EmailChannelOptions.Ssl": "SSL", - "EmailChannelOptions.Port": "端口", - "EmailChannelOptions.FromNickName": "发件人昵称", - "WebsiteMessageChannelOptions.Environment": "环境", - "SmsChannelOptions.AccessKeyId": "AccessKeyID", - "SmsChannelOptions.AccessKeySecret": "AccessKeySecret", - "WeixinWorkChannelOptions.CorpId": "企业ID", - "WeixinWorkChannelOptions.CorpSecret": "应用密钥", - "WeixinWorkChannelOptions.AgentId": "应用ID", - "DisplayName.Channel": "渠道", - "DisplayName.ChannelDisplayName": "名称", - "DisplayName.ChannelCode": "ID", - "DisplayName.ChannelType": "渠道类型", - "DisplayName.ChannelDescription": "描述", - "DisplayName.Scheme": "第三方平台", - "DisplayName.SchemeField": "三方用户字段", - "Description.Channel.Type.Required": "选择渠道类型", - "ChannelCreateMessage": "新建渠道数据成功.", - "ChannelEditMessage": "编辑渠道数据成功.", - "ChannelDeleteMessage": "删除渠道数据成功.", - "MessageTemplate": "消息模板", - "SmsTemplate": "短信模板", - "EmailTemplate": "邮箱模板", - "WebsiteMessageTemplate": "站内信模板", - "Permission.MessageTemplateManagement": "消息模板", - "Permission.CreateMessageTemplate": "新建消息模板", - "Permission.EditMessageTemplate": "编辑消息模板", - "DisplayName.MessageTemplate": "消息模板", - "DisplayName.MessageTemplateId": "模板ID", - "DisplayName.MessageTemplateChannelDisplayName": "渠道", - "DisplayName.MessageTemplateTemplateType": "模板类型", - "DisplayName.MessageTemplateDisplayName": "模板名称", - "DisplayName.MessageTemplateTitle": "模板标题", - "DisplayName.MessageTemplateCode": "ID", - "DisplayName.MessageTemplateContent": "模板内容", - "DisplayName.MessageTemplateExample": "模板示例", - "DisplayName.MessageTemplateSign": "签名", - "DisplayName.MessageTemplateModificationTime": "修改时间", - "DisplayName.MessageTemplateStatus": "模板状态", - "DisplayName.MessageTemplateAuditStatus": "审核状态", - "DisplayName.MessageTemplateTemplateId": "模板ID", - "DisplayName.MessageTemplateIsJump": "是否跳转", - "DisplayName.MessageTemplateJumpUrl": "跳转地址", - "DisplayName.MessageTemplatePerDayLimit": "每日发送上限", - "DisplayName.MessageTemplateStatus.Normal": "正常", - "DisplayName.MessageTemplateStatus.Invalid": "失效", - "DisplayName.MessageTemplateAuditStatus.WaitAudit": "待审核", - "DisplayName.MessageTemplateAuditStatus.Adopt": "成功", - "DisplayName.MessageTemplateAuditStatus.Fail": "未通过审核", - "Permission.AddMessageTemplateItem": "添加变量", - "Permission.EditMessageTemplateItem": "编辑变量", - "MessageTemplateCreateMessage": "添加消息模板成功.", - "MessageTemplateEditMessage": "编辑消息模板成功.", - "MessageTemplateDeleteMessage": "删除消息模板成功.", - "Description.MessageTemplate.ChannelId.Required": "请选择渠道", - "Description.MessageTemplate.TemplateId.Required": "请选择模板ID", - "Description.MessageTemplate.Sign.Required": "请输入签名", - "Description.MessageTemplate.PerDayLimit.Tips": "此模板每日给同一用户最多发送", - "DisplayName.MessageTemplateItem": "变量字典", - "DisplayName.MessageTemplateItemCode": "变量", - "DisplayName.MessageTemplateItemValue": "值", - "DisplayName.MessageTemplateItemMappingCode": "映射变量", - "DisplayName.MessageTemplateItemDisplayText": "备注", - "DisplayName.SmsTemplateType.VerificationCode": "验证码", - "DisplayName.SmsTemplateType.Notification": "短信通知", - "DisplayName.SmsTemplateType.Promotion": "推广短信", - "DisplayName.SmsTemplateType.International": "国际/港澳台消息", - "DisplayName.SmsTemplateType.Digital": "数字短信", - "DisplayName.SmsTemplateType.Other": "其他", - "ReceiverGroup": "消息组", - "Permission.ReceiverGroupManagement": "消息组", - "Permission.CreateReceiverGroup": "新建消息组", - "Permission.EditReceiverGroup": "编辑消息组", - "DisplayName.ReceiverGroup": "消息组", - "DisplayName.ReceiverGroupDisplayName": "名称", - "DisplayName.ReceiverGroupDescription": "描述", - "ReceiverGroupCreateMessage": "新建消息组成功.", - "ReceiverGroupEditMessage": "编辑消息组成功.", - "ReceiverGroupDeleteMessage": "删除消息组成功.", - "Description.ReceiverGroup.SelectUser": "请选择用户", - "Description.ReceiverGroup.AddSelectMember": "请添加/选择成员", - "ExternalMemberAddMessage": "添加外部用户成功.", - "MessageManagement": "消息管理", - "SendMessage": "发送消息", - "MessageRecord": "消息记录", - "Permission.MessageManagement": "消息管理", - "Permission.SendMessage": "发送消息", - "Permission.MessageRecord": "消息记录", - "Permission.SendOrdinaryMessage": "发送普通消息", - "Permission.SendTemplateMessage": "发送模板消息", - "Permission.EditTemplateMessage": "编辑模板消息", - "Permission.EditOrdinaryMessage": "编辑普通消息", - "Permission.SendMessageTask": "发送任务", - "Permission.ViewMessageTask": "查看任务", - "DisplayName.MessageEntityType": "普通消息", - "DisplayName.MessageEntityType.Ordinary": "普通消息", - "DisplayName.MessageEntityType.Template": "模板消息", - "DisplayName.MessageTaskDisplayName": "消息标题", - "DisplayName.MessageTaskReceiver": "收件人", - "DisplayName.MessageTaskSendingRule": "发送规则", - "DisplayName.MessageTaskEntityType": "消息类型", - "DisplayName.MessageTaskSendTime": "发送时间", - "DisplayName.ReceiverType": "收件人类型", - "DisplayName.ReceiverType.Assign": "指定收件人", - "DisplayName.ReceiverType.Broadcast": "广播", - "MessageTaskCreateMessage": "新建消息任务成功.", - "MessageTaskEditMessage": "编辑消息任务成功.", - "MessageTaskDeleteMessage": "删除消息任务成功.", - "MessageTaskSendMessage": "发送消息任务成功.", - "EnableConfirmationMessageTask": "是否确认启用消息任务?", - "CouldNotEnableATaskInDraft": "草稿箱任务不能被启用", - "DisableConfirmationMessageTask": "是否确认禁用消息任务?", - "DisplayName.MessageTaskList": "消息任务列表", - "DisplayName.MessageInfoTitle": "消息标题", - "DisplayName.MessageInfoContent": "消息详情", - "DisplayName.MessageTaskIsEnabled": "状态", - "DisplayName.MessageTaskTimeType": "时间类型", - "DisplayName.MessageTaskTimeType.ModificationTime": "最近修改时间", - "DisplayName.MessageTaskTimeType.SendTime": "发送时间", - "DisplayName.Value": "值", - "DisplayName.Variable": "变量", - "DisplayName.VariableValueTransfer": "变量传值", - "DisplayName.SendingRule.Timeout": "超时时间", - "DisplayName.SendingRule.RetryInterval": "重试间隔", - "DisplayName.SendingRule.RetryCount": "重试次数", - "DisplayName.SendingRule.IsTiming": "定时发送", - "DisplayName.MessageTaskHistory": "任务历史", - "DisplayName.MessageTaskHistoryStatus": "发送状态", - "DisplayName.MessageTaskHistoryNo": "消息任务批次", - "DisplayName.MessageTaskHistoryStatus.WaitSend": "待发送", - "DisplayName.MessageTaskHistoryStatus.Sending": "发送中", - "DisplayName.MessageTaskHistoryStatus.Completed": "发送完成", - "DisplayName.MessageTaskHistoryStatus.Withdrawn": "已撤回", - "DisplayName.MessageTaskHistoryStatus.Success": "发送成功", - "DisplayName.MessageTaskHistoryStatus.Fail": "发送失败", - "DisplayName.MessageTaskHistoryStatus.PartialFailure": "部分失败", - "DisplayName.MessageTaskStatus": "发送状态", - "DisplayName.MessageTaskStatus.WaitSend": "待发送", - "DisplayName.MessageTaskStatus.Sending": "发送中", - "DisplayName.MessageTaskStatus.Completed": "发送完成", - "DisplayName.MessageTaskStatus.Withdrawn": "已撤回", - "DisplayName.MessageTaskStatus.Success": "发送成功", - "DisplayName.MessageTaskStatus.Fail": "发送失败", - "DisplayName.MessageTaskStatus.PartialFailure": "部分失败", - "DisplayName.MessageTaskStatus.Cancel": "已撤销", - "MessageTaskHistoryWithdrawnMessage": "撤回消息任务历史成功.", - "MessageTaskWithdrawnMessage": "撤回消息任务成功.", - "Permission.TestMessageTask": "测试消息任务", - "DisplayName.MessageRecordSendTime": "实际发送时间", - "DisplayName.MessageRecordExpectSendTime": "预计发送时间", - "DisplayName.MessageRecordReceiptTime": "接收时间", - "DisplayName.MessageRecordSuccess": "发送状态", - "DisplayName.MessageRecordFailureReason": "失败原因", - "DisplayName.MessageRecordSuccess.True": "发送成功", - "DisplayName.MessageRecordSuccess.False": "发送失败", - "DisplayName.MessageRecordTimeTypes": "时间类型", - "DisplayName.MessageRecordTimeTypes.ExpectSendTime": "预计发送时间", - "DisplayName.MessageRecordTimeTypes.SendTime": "实际发送时间", - "DisplayName.MessageRecordUserId": "收件人", - "DisplayName.MessageRecordResult": "消息结果", - "DisplayName.MessageRecordDisplayName": "消息标题", - "DisplayName.MessageRecordMessageTaskHistoryNo": "消息任务批次", - "Description.MessageReceiversImport.Tips": "共上传{0}条数据。", - "Description.MessageReceiversImport.ErrorMsg": "上传失败,请检查文件数据后重新上传", - "Description.MessageReceiversUpload.Placeholder": "请上传文件", - "Description.MessageReceiversUpload.Tips": "请上传.csv格式的文件", - "Description.MessageReceiversDownload.Name": "模板file.csv", - "Description.MessageReceiversDownload.Tips": "下载", - "Description.MessageReceiversUpload.EncodingTips": "请上传UTF-8编码的csv文件", - "Description.PhoneNumber.Required": "手机号不允许重复", - "Description.Email.Required": "邮箱不允许重复", - "Permission.WebsiteMessageManagement": "消息中心", - "Description.Notice.MoreTips": "查看更多消息", - "DisplayName.WebsiteMessageFilterType": "搜索类型", - "DisplayName.WebsiteMessageFilterType.MessageTitle": "消息标题", - "DisplayName.WebsiteMessageFilterType.MessageContent": "消息内容", - "DisplayName.AllWebsiteMessage": "全部消息", - "DisplayName.WebsiteMessageAction.MarkAllRead": "全部标记已读", - "DisplayName.WebsiteMessageAction.ShowAll": "显示全部", - "DisplayName.WebsiteMessageAction.ShowUnread": "显示未读", - "DisplayName.SubjectTypes.User": "用户", - "DisplayName.SubjectTypes.Department": "部门", - "DisplayName.SubjectTypes.Role": "角色", - "DisplayName.SubjectTypes.Team": "团队", - "DisplayName.MessageTaskReceiverTypes.User": "用户", - "DisplayName.MessageTaskReceiverTypes.Organization": "部门", - "DisplayName.MessageTaskReceiverTypes.Role": "角色", - "DisplayName.MessageTaskReceiverTypes.Team": "团队", - "DisplayName.MessageTaskReceiverTypes.Group": "收件人组", - "DisplayName.Color.Lable": "选择颜色", - "Success": "成功", - "Failure": "失败", - "View": "查看", - "UploadComplete": "上传完成", - "UploadFile": "上传文件", - "Test": "测试", - "SendTestTask": "发送测试任务", - "SendTestMessage": "发送测试消息", - "Description.MessageTaskHistory.SendTimeTips": "本任务将在{0}执行", - "Retry": "重试", - "Current": "当前", - "Title": "标题", - "BatchSending.Tips": "每{0}秒,发送{1}条", - "DisplayName.SendingRule.SendingInterval": "分批次发送", - "MessageRecordRetryMessage": "消息已重新发送.", - "SendStatus": "发送状态", - "Permission.ViewMessageRecord": "查看消息记录", - "MessageContent": "消息内容", - "Description.ChannelType.Required": "请先选择渠道类型", - "ReceiversCount": "预计{0}人", - "SendingMessage": "正在发送消息", - "DisplayName.SendingRule.CronExpression": "Cron 表达式", - "DisplayName.SendingRule.IsCustom": "自定义设置", - "DisplayName.SendingRule.SendingCount": "每次发送条数", - "DisplayName.SendingRule.SendingCount.Tips": "0为不限制", - "DisplayName.MessageTaskDetail.ReceiverType": "类型", - "TemplateTemplate": "模板", - "ChannelOptions.Tips": "请仔细核对填写数据,填写错误会导致消息发送失败", - "SelectTemplate": "选择模板", - "CronExpressionInvalid": "Cron表达式不合法", - "CronExpressionNotHasNextRunTime": "您的表达式计算不出下一次运行时间", - "ChannelBlock": { - "Title": "渠道", - "SchemeTooltip": "选择三方平台作为推送用户标识的数据来源", - "SchemeFieldTooltip": "不填使用三方身份标识" - }, - "MessageTaskBlock": { - "Title": "消息任务", - "MessageDetails": "消息详情" - - }, - "MessageRecordBlock": { - "Title": "消息记录" - }, - "MessageTemplateBlock": { - "SmsTemplateTitle": "短信", - "EmailTemplateTitle": "邮箱", - "WebsiteMessageTitle": "站内信", - "AppTitle": "App" - }, - "ReceiverGroupBlock": { - "Title": "消息组" - }, - "Required": "{0}必须填写", - "RequiredLength": "{0}只能介于{1}和{2}之间", - "ChannelDisplayNameRequired": "请填写渠道名称", - "ChannelDisplayNameChineseLetterNumberSymbol": "渠道名称只能是中文/字母/数字/部分特殊字符", - "ChannelDisplayNameRequiredLength": "渠道名称长度只能介于2和50之间", - "ChannelCodeRequired": "请填写渠道ID", - "ChannelCodeLetterNumberSymbol": "渠道ID只能是字母/数字/部分特殊字符", - "ChannelCodeRequiredLength": "渠道ID长度只能介于2和50之间", - "ChannelTypeRequired": "请选择渠道类型", - "ChannelIdRequired": "请选择渠道", - "MessageTemplateRequired": "请选择消息模板", - "MessageTypeRequired": "请选择消息类型", - "ReceiverTypeRequired": "请选择接收类型", - "SelectReceiverTypeRequired": "请选择收件人选择方式", - "ReceiversRequired": "请选择收件人", - "SignRequired": "请填写签名", - "SignLength": "签名长度只能介于2和50之间", - "SignChineseLetterNumber": "签名只能是中文/字母/数字/部分特殊字符", - "TitleRequired": "请填写标题", - "TitleLength": "标题长度只能介于2和50之间", - "ContentRequired": "请填写内容", - "JumpUrlRequired": "请填写跳转地址", - "DisplayNameRequired": "请填写名称", - "DisplayNameLength": "名称长度只能介于2和50之间", - "DisplayNameChineseLetterNumber": "名称只能是中文/字母/数字/部分特殊字符", - "CronExpressionRequired": "请填写Cron表达式", - "MessageTemplateDisplayNameRequired": "请填写模板名称", - "MessageTemplateDisplayNameLength": "模板名称长度只能介于2和50之间", - "MessageTemplateCodeRequired": "请填写模板ID", - "MessageTemplateCodeLetterNumberSymbol": "模板ID只能是字母/数字/部分特殊字符", - "MessageTemplateCodeLength": "模板ID长度只能介于2和50之间", - "MessageTemplateStatusRequired": "请选择模板类型", - "MessageTemplatePerDayLimitBetween": "每日发送上限只能介于1和500之间", - "MessageTemplateTemplateIdRequired": "请选择模板", - "MessageTemplateItemsCannotRepeated": "模板变量不能重复", - "ReceiverGroupItemsRequired": "请选择收件人", - "PhoneNumberRequired": "请填写手机号", - "EmailRequired": "请填写邮箱", - "EmailInvalid": "请填写正确的邮箱", - "EmailChannelUserNameRequired": "请填写邮箱账号", - "EmailChannelPasswordRequired": "请填写邮箱密码", - "EmailChannelSmtpRequired": "请填写邮箱Smtp", - "SmsChannelAccessKeyIdRequired": "请填写AccessKeyID", - "SmsChannelAccessKeySecretRequired": "请填写AccessKeySecret", - "UploadFileSizeExceeded": "文件过大", - "UploadFileEmpty": "请选择文件", - "TaskWithdrawnConfirmationMessage": "确定撤销任务{0}吗?", - "DisplayName.AppChannelProviders": "提供商", - "DisplayName.AppChannelProviders.GeTui": "个推", - "DisplayName.AppChannelProviders.JPush": "极光", - "UserDisplayNameRequired": "用户昵称是必需的", - "UserDisplayNameLength": "用户昵称的长度必须在 2 到 50 字符。", - "UserDisplayNameChineseLetterNumber": "用户昵称必须是中文、数字、字母。", - "Provider": "提供商", - "AdditionalFields": "附加字段", - "Key": "键", - "Value": "值", - "MessageTask": "消息任务", - "Channel": "渠道", - "CreateSuccessfulMessage": "新建{0}成功", - "EditSuccessfulMessage": "编辑{0}成功", - "DeleteSuccessfulMessage": "删除{0}成功", - "NotificationMessage": "通知消息", - "InAppMessages": "应用内消息", - "InAppMessagesTips": "是否生成站内信", - "JumpUrlTips": "站内信跳转地址", - "OptionalConfiguration": "可选配置", - "IntentUrl": "点击通知打开指定页面", - "IntentUrlTips": "

打开指定页面

打开指定页面有两种方式

1、填写完整的包名和 Activity,具体格式为:

intent:#Intent;component=com.jiguang.push/com.example.jpushdemo.SettingActivity;end

2、客户端Activity 在 manifest 配置为:

<activity android:name='.MyActivity' android:exported='true'> <intent-filter> <action android:name='android.intent.action.VIEW' /> <category android:name='android.intent.category.DEFAULT' /> <data android:scheme='app' android:host='example' android:path='/MyActivity/' /> </intent-filter> </activity>

填写的路径为:app://example/MyActivity/

", - "development": "开发环境", - "production": "生产环境", - "TemplateType": "模板类型", - "Text": "文本", - "TextCard": "文本卡片", - "ClientId": "客户端注册Id" -} diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/analytics/json.png b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/analytics/json.png deleted file mode 100644 index fee45284b9a1e1969543864e32ba13e10eb34c37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 976 zcmeAS@N?(olHy`uVBq!ia0vp^ia@Nw!3-n~zAt_Uq!^2X+?^QKos)S9|1b0XzsmFfBDepG-TyCg`9I&|{{qkd^WFY0@%+C4 zDB|{ip$AB6zU%*mE+EDNpp-L6e7*}vJ&+4zEO7n57|3u283@t>GzUn!{$Jqoe<4sD z!f*yD18D&&1DXcp0%d_xu22(zTqql;9jq8+Adn3f2QokkAi5w7FdHNSW`LA|#UTtJ ziC{n!z?Fd+K*dlsK&~^`MzFmQL68H0f)E2yHA0Mq%Yw`SD~1>dHYzN`q!JkDRV6`w z!3@l79Gn7zLc$`VVv=$S${JeQI(qsBhDOGw<`y<~4$iI~KED0|fx#i6Vd0Tc(J}F9 z>Djr(C1n-WwRNrS9TO)_o-%XR>^bx1FJ7{A+42=D*KXLjW7nR&`wtvEeEh_zi&w5* zzj5pCgC|d)zj*oT^_#cv-hcS~^Vjb`fBzX>o?-?}0_L7Bjv*GO-(GPKW-=5x@G;$a zjRKd}HjP(F;-cJQ0V!{lA~uL8=yGgYq_oHXy_;;C&Th-9PxUAE%>1L)eg>GB*gi7O zoOk9xNL}+QA>W>Y#LV;4k{$-XJ!P5dX(ry;;N_yG>AAIlrKdh9=_!ZA;wMLs2^!1_ zZ7Y#>KVYC*WbNMY*;z9FtqdcR>ddgd21c)ETU>HpZQn32;g`6S(;qp1ulOQHBV(jXDEACAzO8adqLA`0p)4G%#%A$_%TeJcKY5& zF{dNR-^^GdFX}7A&7SjG;HW^%#MXpZ)^pUXO@geCygRnwRN diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/analytics/left.png b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/analytics/left.png deleted file mode 100644 index ee5e3b2b46e3d738de9f13e3f3ef1b55d2fb0551..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3335 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 diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/analytics/right.png b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/analytics/right.png deleted file mode 100644 index 30bb2ccbf06ae9da5eb0204cdc04795e68426be4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1814 zcmcgsX*3(?8V+TeDn?={L7Joqf*DomAQc^vPNJHq&{!t5-BN^Fs#Qa;qFP%Ujiq9n zRz++@+=&v@QU829{`Y%J%7&mjIBLE;DYDchfzA-L-6W}ubqo({+9u9L$lqy2hqP_UzeSzZV zCMG+3u^bFgb*A@Lmh0f`MjNwmV!D}qNdK1TtlVQFfn(TyUr*wrG+i=uv_TW!S5o!` zitjBk3Z&Wk3o(ll5bcL3HO1Q*WRDUKEG@`A;y51Y+f57^24S@X3!w+SGvN0LkZBei zx*1{1Ose*VA3VL|Z1H{$ZM}ZQ zA3rh{P*yWz2vb}tyN|TyT{xrVmw71}i9R7*@Bi{*EKRLtVY2r`hn~!B^f2DDO$Jwk zITuV&*t-mRZ%JrZLsi^KhJ)B|hFBqllui$S+8t76dr;c(tb%_UcWTsVp_{f!e?bvl z!VR_+3Ya{tl!44iH$fB~+ESmO7SvMeOU|{23C=HxF;+ieB4H+B46Ay+yMuL|xKtGJYeKV4e9(vqN4+T{x#i=(H=^%8^ooiD zqls{kP1(QE^;Rzel`|l_xuYMj9Z#MeiP!7?0Lq@7oXNMSis*R>?O2YDv?Z4!(_4#j zdcJ!`XPYHyXcr>4OA9=d%pDyxc8pLhq$jP?-4bH{Y&?1VTEV|69)5SgD4IaEq`YO_ z%@4PC`^|sql*~~TCX_#(Zc1I740xh)O`#^jhnDxr{lUVz7p-X|yMO8`9&wNx5SuVG zQp|rV%2eK3JWziS84P9|Qm$7{ZHUL1TJ~?%-DFvW9r=EQc|nla^p6y%Qn@8K8UJH+ zaka-4gCHSgxoNM2l@y3>J)gC@J04M{175Q6$KV!Mz15Y;>VxK1CRaEUvU4ParMAQ> zOn5En4CMmCsm%~O1h2-!>|>O~f$^w$a*YuL?4U}G9+;o^`|Pf#N1>w%>GVHE{pC1r zkSb90RN7Ys-heZw#3KwY{J5mswD z9>FvQd#*On%>6C|IJo-44d|CH5FWb@era$|O?Go;$#R#1#8zA{vBf&GW zLif7Rj&J(~`&pfH&hGZFjvdX>TdOwouluDM38p=d?BY}8AaD41OvHl=x6UE<&*6OJVla?eKVoSbgZ*dQbk|H^0lYB20Ka RB - - Illustration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/auth/register-v2.0a9e487c.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/auth/register-v2.0a9e487c.svg deleted file mode 100644 index d1ac05b0..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/auth/register-v2.0a9e487c.svg +++ /dev/null @@ -1,351 +0,0 @@ - - - Group - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/1.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/1.svg deleted file mode 100644 index a47f78f5..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/1.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/10.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/10.svg deleted file mode 100644 index 082ab6ea..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/10.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/11.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/11.svg deleted file mode 100644 index ed6e9b2a..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/11.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/12.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/12.svg deleted file mode 100644 index 0533369c..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/12.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/13.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/13.svg deleted file mode 100644 index 93b28c41..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/13.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/14.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/14.svg deleted file mode 100644 index fd688f93..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/14.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/2.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/2.svg deleted file mode 100644 index f4a8944d..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/2.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/3.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/3.svg deleted file mode 100644 index b2e10605..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/3.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/4.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/4.svg deleted file mode 100644 index 58e0cfe7..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/4.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/7.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/7.svg deleted file mode 100644 index 6cefecfb..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/7.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/8.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/8.svg deleted file mode 100644 index 61c13aa8..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/8.svg +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/9.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/9.svg deleted file mode 100644 index cb45b1e5..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/avatar/9.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/eCommerce/rectangle.png b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/eCommerce/rectangle.png deleted file mode 100644 index 1ab629b5ed1914bb0a62d9a5937622456388f4ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17020 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 RBIW=9002ovPDHLkV1nVyk&6HT diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/eCommerce/trophy.png b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/eCommerce/trophy.png deleted file mode 100644 index 98f0b8d0ff288f760785384656be998677911fdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69803 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 AZ2$lO diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/login/left.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/login/left.svg deleted file mode 100644 index 103158e7..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/login/left.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/mainLayout/logo-en.png b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/mainLayout/logo-en.png deleted file mode 100644 index 7f0e00766579e670a7ab8f5183988159a8285630..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9711 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 Q`B{Lbnl7U9fmQhb04A`XaR2}S diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/mainLayout/logo-en.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/mainLayout/logo-en.svg deleted file mode 100644 index fbafb572..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/mainLayout/logo-en.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/mainLayout/logo.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/mainLayout/logo.svg deleted file mode 100644 index 0993edae..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/mainLayout/logo.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/messageTask/send.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/messageTask/send.svg deleted file mode 100644 index 853702e9..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/messageTask/send.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/messageTask/test.svg b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/messageTask/test.svg deleted file mode 100644 index fc68bd37..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/messageTask/test.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/status/401.png b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/status/401.png deleted file mode 100644 index 1f94504e8dbcec2f81416ea14f17fd2ee0d000bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7469 zcmaiZbySpJ&_Buoi^$T_-5ruEptOLrbgKx6Gz$w$$Wo#r($ZZ5OXn`&(jiDJu5?MK zgv1iR{l4ct=lAFPob$xY+?YG}&fL$PC)QA3i~JtbJpuv(a_y(;#sma+?C{?MKw|te z?`7;E{zdBb)Y6xLfQ;t9`wl@y76YDn$Jba(l>jlyvV|uA&MJB;1O&D5WLJ(v1OzNy z+UhFLp?CJ??cZ8sLr4x6TQQGyeAIPP-}cApiRynL&=swAnIRYEIxA-VN7?#Yx9zT3 zQ)xco3qsgis*8|!dohj%6??^Q#0}-iF^+q>Rh9F<_-uvlUHK_Hh{Y(XmE)w5z)CkIt&QiVBx|m_J3V!q<4X>Zh~|>g>e?<(bUER zUpeSj&xEP8lacK;>L2RToiw=I1%

3jTycrL_szIH8=<@(v`fFI7p_jd-U3q>?Hu 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 diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/status/404.png b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/status/404.png deleted file mode 100644 index 39f2c595ed747ae3b08a23a9ecb2ee60ccd87c13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13829 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 t?6S))yX>;dF1zfq%Pza@vdb=;mPn zTz>9W_w@Hk`f^MOO1zTgT`O8V1+%;llJ=bn0j1lvmE}oy$<<{;5m-ptbt(ibbMNXn zEH4YkUcfizH$FeE;wegLI=}90p5@%T=rOc0HpDq(#I_miGM9y+-n9IBy;=JIygJvA z<^G?2Y+mmo3yB4M)46?KSnj&OWS8!G!`dfEP=?Q!2SO#K@vn!hB>oh^y;T&zur;Wn zP?J}J=(@I&K&T=p+1X7Zk$`W>RnTK@8wojRCBtr$)k@M}4+P;BgC)z%EJvlLJ}^YYa^(PF0Fi zYv}8-Fc;@Z7L+8>={OCSf zbTwJkuU3~gqQX$EGn7iqpKx7@(wO0}WW6lgWUi+EG=mD~`;Y91d)b%8I}q{$&&Wb9 zK6L8&s&tdXZ>5B_Y%N|x3Q+Q`RSGn)ia-?KB4nHJw3P$}!LdNJa3Ztkq!zH*VwgW^ zV|HE#`Id|&b0=)H9Lo>JN)&Zbc0~)w(p;B?!cjM5*aC+=BMY$tURe>&-~HbCjT^uD zuits^BxYKNXS(}Xmq-5~HO*PznHMk-g79NmTFl+PNHsoEz_rWbl60dLr%`dbX<2uj3PPs?%!g`zw{>^*sHmxt?I3g{vYp$>NC3%Pw_P`Te&Ht;*!z^$vg6p3CPyGj&^(a6%*o@pMX0Bg$jgOpjrSkB=+I* zSCMUZofAsHKklJ$R9ZC(k)zkX6zP_voKXu)vxVGoUA^im9`1Ou2t0n|;=%nsc6Wu^ zRdr81+vqS4UoU;a)}r1kPQbhJ(1yWC3+i0_m@S62^O(UCb>riJw6KM5E{n5a?a@n+ zz!nGy7M{vQ3&_a=72Y1U!`dPRWMqMw9y(!7aV|_2C|O=%p*lngC?8sE!*pW2Fj7GI zboVX{M=l^+QSFfePI5bUY={YC(J`<}F;G6e=|r_h3b_2CA3V(#aU=`Wm@VKaF;I^; zI~R;fq7|_Mdd%=-x;H`$B%+gOMZ61}yq!xh_jnf;=H`Ne}a* zh)bds@r#ISa2}Y41ulQewqPoG#J~YYT47ugtsnuT=;aXuVeWP=E{Rqo641!)T*3`R zG8Z=RyAi>16wt`+T%Hza;+IP-PYX11JC`tQC9^;Sw{xD0J4yN_TSROFW1yF#1rEMk zT7e-5V0HO37MnyXQvE!0?JKb)JY3*xO#eAPW@M=9GLH47kD`B6Ne~1<5ClOG1VIo4 bk(vJhpD!_V*{3?|00000NkvXXu0mjfAAeMG diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/img/upload/upload-error.png b/src/Web/Masa.Mc.Web.Admin/wwwroot/img/upload/upload-error.png deleted file mode 100644 index fa0df845c0b762c780dd547f721802909e6c64cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 654 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 JPDHLkV1iO33-$m2 diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/js/clamp.js b/src/Web/Masa.Mc.Web.Admin/wwwroot/js/clamp.js deleted file mode 100644 index 71d05f81..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/js/clamp.js +++ /dev/null @@ -1,253 +0,0 @@ -(function () { - /** - * Clamps a text node. - * @param {HTMLElement} element. Element containing the text node to clamp. - * @param {Object} options. Options to pass to the clamper. - */ - function clamp(element, options) { - options = options || {}; - - var self = this, - win = window, - opt = { - clamp: options.clamp || 2, - useNativeClamp: typeof (options.useNativeClamp) != 'undefined' ? options.useNativeClamp : true, - splitOnChars: options.splitOnChars || ['.', '-', 'C', '', ' '], //Split on sentences (periods), hypens, en-dashes, em-dashes, and words (spaces). - animate: options.animate || false, - truncationChar: options.truncationChar || '', - truncationHTML: options.truncationHTML - }, - - sty = element.style, - originalText = element.innerHTML, - - supportsNativeClamp = typeof (element.style.webkitLineClamp) != 'undefined', - clampValue = opt.clamp, - isCSSValue = clampValue.indexOf && (clampValue.indexOf('px') > -1 || clampValue.indexOf('em') > -1), - truncationHTMLContainer; - - if (opt.truncationHTML) { - truncationHTMLContainer = document.createElement('span'); - truncationHTMLContainer.innerHTML = opt.truncationHTML; - } - - - // UTILITY FUNCTIONS __________________________________________________________ - - /** - * Return the current style for an element. - * @param {HTMLElement} elem The element to compute. - * @param {string} prop The style property. - * @returns {number} - */ - function computeStyle(elem, prop) { - if (!win.getComputedStyle) { - win.getComputedStyle = function (el, pseudo) { - this.el = el; - this.getPropertyValue = function (prop) { - var re = /(\-([a-z]){1})/g; - if (prop == 'float') prop = 'styleFloat'; - if (re.test(prop)) { - prop = prop.replace(re, function () { - return arguments[2].toUpperCase(); - }); - } - return el.currentStyle && el.currentStyle[prop] ? el.currentStyle[prop] : null; - } - return this; - } - } - - return win.getComputedStyle(elem, null).getPropertyValue(prop); - } - - /** - * Returns the maximum number of lines of text that should be rendered based - * on the current height of the element and the line-height of the text. - */ - function getMaxLines(height) { - var availHeight = height || element.clientHeight, - lineHeight = getLineHeight(element); - - return Math.max(Math.floor(availHeight / lineHeight), 0); - } - - /** - * Returns the maximum height a given element should have based on the line- - * height of the text and the given clamp value. - */ - function getMaxHeight(clmp) { - var lineHeight = getLineHeight(element); - return lineHeight * clmp; - } - - /** - * Returns the line-height of an element as an integer. - */ - function getLineHeight(elem) { - var lh = computeStyle(elem, 'line-height'); - if (lh == 'normal') { - // Normal line heights vary from browser to browser. The spec recommends - // a value between 1.0 and 1.2 of the font size. Using 1.1 to split the diff. - lh = parseInt(computeStyle(elem, 'font-size')) * 1.2; - } - return parseInt(lh); - } - - - // MEAT AND POTATOES (MMMM, POTATOES...) ______________________________________ - var splitOnChars = opt.splitOnChars.slice(0), - splitChar = splitOnChars[0], - chunks, - lastChunk; - - /** - * Gets an element's last child. That may be another node or a node's contents. - */ - function getLastChild(elem) { - //Current element has children, need to go deeper and get last child as a text node - if (elem.lastChild.children && elem.lastChild.children.length > 0) { - return getLastChild(Array.prototype.slice.call(elem.children).pop()); - } - //This is the absolute last child, a text node, but something's wrong with it. Remove it and keep trying - else if (!elem.lastChild || !elem.lastChild.nodeValue || elem.lastChild.nodeValue == '' || elem.lastChild.nodeValue == opt.truncationChar) { - elem.lastChild.parentNode.removeChild(elem.lastChild); - return getLastChild(element); - } - //This is the last child we want, return it - else { - return elem.lastChild; - } - } - - /** - * Removes one character at a time from the text until its width or - * height is beneath the passed-in max param. - */ - function truncate(target, maxHeight) { - if (!maxHeight) { return; } - - /** - * Resets global variables. - */ - function reset() { - splitOnChars = opt.splitOnChars.slice(0); - splitChar = splitOnChars[0]; - chunks = null; - lastChunk = null; - } - - var nodeValue = target.nodeValue.replace(opt.truncationChar, ''); - - //Grab the next chunks - if (!chunks) { - //If there are more characters to try, grab the next one - if (splitOnChars.length > 0) { - splitChar = splitOnChars.shift(); - } - //No characters to chunk by. Go character-by-character - else { - splitChar = ''; - } - - chunks = nodeValue.split(splitChar); - } - - //If there are chunks left to remove, remove the last one and see if - // the nodeValue fits. - if (chunks.length > 1) { - // console.log('chunks', chunks); - lastChunk = chunks.pop(); - // console.log('lastChunk', lastChunk); - applyEllipsis(target, chunks.join(splitChar)); - } - //No more chunks can be removed using this character - else { - chunks = null; - } - - //Insert the custom HTML before the truncation character - if (truncationHTMLContainer) { - target.nodeValue = target.nodeValue.replace(opt.truncationChar, ''); - element.innerHTML = target.nodeValue + ' ' + truncationHTMLContainer.innerHTML + opt.truncationChar; - } - - //Search produced valid chunks - if (chunks) { - //It fits - if (element.clientHeight <= maxHeight) { - //There's still more characters to try splitting on, not quite done yet - if (splitOnChars.length >= 0 && splitChar != '') { - applyEllipsis(target, chunks.join(splitChar) + splitChar + lastChunk); - chunks = null; - } - //Finished! - else { - return element.innerHTML; - } - } - } - //No valid chunks produced - else { - //No valid chunks even when splitting by letter, time to move - //on to the next node - if (splitChar == '') { - applyEllipsis(target, ''); - target = getLastChild(element); - - reset(); - } - } - - //If you get here it means still too big, let's keep truncating - if (opt.animate) { - setTimeout(function () { - truncate(target, maxHeight); - }, opt.animate === true ? 10 : opt.animate); - } - else { - return truncate(target, maxHeight); - } - } - - function applyEllipsis(elem, str) { - elem.nodeValue = str + opt.truncationChar; - } - - - // CONSTRUCTOR ________________________________________________________________ - - if (clampValue == 'auto') { - clampValue = getMaxLines(); - } - else if (isCSSValue) { - clampValue = getMaxLines(parseInt(clampValue)); - } - - var clampedText; - if (supportsNativeClamp && opt.useNativeClamp) { - sty.overflow = 'hidden'; - sty.textOverflow = 'ellipsis'; - sty.webkitBoxOrient = 'vertical'; - sty.display = '-webkit-box'; - sty.webkitLineClamp = clampValue; - - if (isCSSValue) { - sty.height = opt.clamp + 'px'; - } - } - else { - var height = getMaxHeight(clampValue); - if (height <= element.clientHeight) { - clampedText = truncate(getLastChild(element), height); - } - } - - return { - 'original': originalText, - 'clamped': clampedText - } - } - - window.$clamp = clamp; -})(); \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/js/quill/quill-helper.js b/src/Web/Masa.Mc.Web.Admin/wwwroot/js/quill/quill-helper.js deleted file mode 100644 index e9b39492..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/js/quill/quill-helper.js +++ /dev/null @@ -1,19 +0,0 @@ -export function uploadImage(quillElement, element, ossParamter, index = 0) { - let _that = this; - let quill = quillElement.__quill;//get quill editor - let fileInput = element.querySelector('input.ql-image[type=file]')//get fileInput - let files = fileInput.files; - - ossUpload(files[index], ossParamter).then(fileUrl => { - let length = quill.getSelection().index; - quill.insertEmbed(length, 'image', fileUrl);//Insert the uploaded picture into the editor - quill.setSelection(length + 1); - index += 1; - if (index < files.length) { - _that.uploadImage(quillElement, element, ossParamter, index); - } - else { - fileInput.value = ''; - } - }); -} \ No newline at end of file diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/js/util.js b/src/Web/Masa.Mc.Web.Admin/wwwroot/js/util.js deleted file mode 100644 index 900d9dd2..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/js/util.js +++ /dev/null @@ -1,12 +0,0 @@ -var util = { - scrollTop: (dom, id) => { - if (id) { - document.getElementById(id).scrollTop = 0; - } - else { - dom.scrollTop = 0; - } - } -} - -window.util = util; diff --git a/src/Web/Masa.Mc.Web.Admin/wwwroot/js/vditor/vditor-helper.js b/src/Web/Masa.Mc.Web.Admin/wwwroot/js/vditor/vditor-helper.js deleted file mode 100644 index 59facef4..00000000 --- a/src/Web/Masa.Mc.Web.Admin/wwwroot/js/vditor/vditor-helper.js +++ /dev/null @@ -1,24 +0,0 @@ -export function upload(element, ossParamter, index = 0) { - let _that = this; - let vditor = element.Vditor; - let fileInput = element.querySelector('input[type=file]') - let files = fileInput.files; - - UploadImage([files[index]], ossParamter).then(fileUrls => { - let fileUrl = fileUrls[0]; - let succFileText = ""; - if (vditor && vditor.vditor.currentMode === "wysiwyg") { - succFileText += `\n ${fileUrl}`; - } else { - succFileText += `\n![${fileUrl}](${fileUrl})`; - } - document.execCommand("insertHTML", false, succFileText); - index += 1; - if (index < files.length) { - _that.upload(element, ossParamter, index); - } - else { - fileInput.value = ''; - } - }); -} \ No newline at end of file From b66cbd3683fd641889fc3d1b54007c189a417f50 Mon Sep 17 00:00:00 2001 From: wzh425 Date: Thu, 25 Jun 2026 14:48:37 +0800 Subject: [PATCH 03/16] feat: enhance SMS inbound processing with provider support - Added a new optional property `Provider` to `GetSmsInboundInputDto` for filtering SMS records by provider. - Updated `MessageReceiptQueryHandler` to include provider filtering in query conditions. - Modified `SmsInboundService` to accept the provider parameter when retrieving SMS records. - Removed unused `_Imports.cs`, `_Imports.razor`, and other related files to clean up the project structure. --- .../Properties/launchSettings.json | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Services/Masa.Mc.Service/Properties/launchSettings.json b/src/Services/Masa.Mc.Service/Properties/launchSettings.json index ee3465bb..c75862eb 100644 --- a/src/Services/Masa.Mc.Service/Properties/launchSettings.json +++ b/src/Services/Masa.Mc.Service/Properties/launchSettings.json @@ -13,23 +13,23 @@ "launchBrowser": true, "launchUrl": "swagger", "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development", + "ASPNETCORE_ENVIRONMENT": "Staging", "DAPR_GRPC_PORT": "20601", "DAPR_HTTP_PORT": "20602", - "MASA_CLUSTER": "Default", + "MASA_VERSION": "1.0.0", + "IS_DEMO": "False", "DOMAIN_NAME": "masastack.com", - "MASA_NAMESPACE": "masastack.com", - "TLS_NAME": "", - "MASA_VERSION": "1.0-Preview1", - "IS_DEMO": "false", - "OTLP_URL": "http://otel-collector.masastack:9013", - "ELASTIC": "{\"ESNode\": \"http://10.10.90.189\",\"Index\": \"user_dev\",\"ESPort\":30200}", - "REDIS": "{\"RedisHost\": \"10.130.0.19\", \"RedisPort\": 2135, \"RedisDb\": 3,\"RedisPassword\": \"Hzss@123\"}", - "CONNECTIONSTRING": "{\"Server\": \"10.130.0.19\", \"Port\": 3815,\"Database\":\"pm-dev\",\"UserId\": \"ss\",\"Password\":\"Lsd@2023\",\"DbType\":\"PostgreSql\"}", - "MASA_STACK": "[{\"id\":\"pm\",\"service\":{\"id\":\"pm-service-dev\",\"domain\":\"http://pm-service-dev.masastack.com\"},\"web\":{\"id\":\"pm-web-dev\",\"domain\":\"https://pm-dev.masastack.com\"}},{\"id\":\"dcc\",\"service\":{\"id\":\"dcc-service-dev\",\"domain\":\"http://dcc-service-dev.masastack.com\"},\"web\":{\"id\":\"dcc-web-dev\",\"domain\":\"https://dcc-dev.masastack.com\"}},{\"id\":\"tsc\",\"service\":{\"id\":\"tsc-service-dev\",\"domain\":\"http://tsc-service-dev.masastack.com\"},\"web\":{\"id\":\"tsc-web-dev\",\"domain\":\"https://tsc-dev.masastack.com\"}},{\"id\":\"alert\",\"service\":{\"id\":\"alert-service-dev\",\"domain\":\"http://alert-service-dev.masastack.com\"},\"web\":{\"id\":\"alert-web-dev\",\"domain\":\"https://alert-dev.masastack.com\"}},{\"id\":\"scheduler\",\"service\":{\"id\":\"scheduler-service-dev\",\"domain\":\"http://scheduler-service-dev.masastack.com\"},\"worker\":{\"id\":\"scheduler-worker-dev\",\"domain\":\"http://scheduler-worker-dev.masastack.com\"},\"web\":{\"id\":\"scheduler-web-dev\",\"domain\":\"https://scheduler-dev.masastack.com\"}},{\"id\":\"mc\",\"service\":{\"id\":\"mc-service-dev\",\"domain\":\"http://mc-service-dev.masastack.com\"},\"web\":{\"id\":\"mc-web-dev\",\"domain\":\"https://mc-dev.masastack.com\"}},{\"id\":\"auth\",\"service\":{\"id\":\"auth-service-dev\",\"domain\":\"http://auth-service-dev.masastack.com\"},\"web\":{\"id\":\"auth-web-dev\",\"domain\":\"https://auth-dev.masastack.com\"},\"sso\":{\"id\":\"auth-sso-dev\",\"domain\":\"https://auth-sso-dev.masastack.com\"}}]", - "ADMIN_PWD": "admin_pwd", + "MASA_NAMESPACE": "masa-to-sec", + "MASA_CLUSTER": "Default", + "OTLP_URL": "http://middleware-otel:4317", + "REDIS": "{\"RedisHost\": \"10.130.0.19\", \"RedisPort\": 4208, \"RedisDb\": 15,\"RedisPassword\": \"Hzss@123\"}", + "CONNECTIONSTRING": "{\"Server\": \"10.130.0.19\", \"Port\": 3815,\"Database\":\"\",\"UserId\": \"ss\",\"Password\":\"Lsd@2023\",\"DbType\":\"PostgreSql\"}", + "MASA_STACK": "[{\"id\":\"pm\",\"name\":\"PM\",\"service\":{\"name\":\"PM.Service\",\"id\":\"pm-service-staging\",\"domain\":\"http://pm-service.masa-to-sec\"},\"web\":{\"name\":\"PM.Web\",\"id\":\"pm-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/pm/\"}},{\"id\":\"dcc\",\"name\":\"DCC\",\"service\":{\"name\":\"Dcc.Service\",\"id\":\"dcc-service-staging\",\"domain\":\"http://dcc-service.masa-to-sec\"},\"web\":{\"name\":\"DCC.Web\",\"id\":\"dcc-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/dcc/\"}},{\"id\":\"tsc\",\"name\":\"TSC\",\"service\":{\"name\":\"TSC.Service\",\"id\":\"tsc-service-staging\",\"domain\":\"http://tsc-service.masa-to-sec\"},\"web\":{\"name\":\"TSC.Web\",\"id\":\"tsc-web-staging\",\"domain\":\"https://tsc-sec-staging.masastack.com/\"}},{\"id\":\"alert\",\"name\":\"Alert\",\"service\":{\"name\":\"Alert.Service\",\"id\":\"alert-service-staging\",\"domain\":\"http://alert-service.masa-to-sec\"},\"web\":{\"name\":\"Alert.Web\",\"id\":\"alert-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/alert/\"}},{\"id\":\"scheduler\",\"name\":\"Scheduler\",\"service\":{\"name\":\"Scheduler.Service\",\"id\":\"scheduler-service-staging\",\"domain\":\"http://scheduler-service.masa-to-sec\"},\"worker\":{\"name\":\"Scheduler.Worker\",\"id\":\"scheduler-worker-staging\",\"domain\":\"http://scheduler-worker.masa-to-sec\"},\"web\":{\"name\":\"Scheduler.Web\",\"id\":\"scheduler-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/scheduler/\"}},{\"id\":\"mc\",\"name\":\"MC\",\"service\":{\"name\":\"MC.Service\",\"id\":\"mc-service-staging\",\"domain\":\"http://mc-service.masa-to-sec\"},\"web\":{\"name\":\"MC.Web\",\"id\":\"mc-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/mc/\"}},{\"id\":\"auth\",\"name\":\"Auth\",\"service\":{\"name\":\"Auth.Service\",\"id\":\"auth-service-staging\",\"domain\":\"http://auth-service.masa-to-sec\"},\"web\":{\"name\":\"Auth.Web\",\"id\":\"auth-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/auth/\"},\"sso\":{\"name\":\"Auth.SSO\",\"id\":\"auth-sso-staging\",\"domain\":\"https://auth-sso-sec-staging.masastack.com\"}},{\"id\":\"sapp\",\"service\":{\"id\":\"sapp-service-staging\",\"domain\":\"http://sapp-service.masa-to-sec\"},\"web\":{\"id\":\"sapp-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/sapp\"}}]", + "ELASTIC": "{\"Nodes\": [\"http://middleware-elastic.masa-to-sec:9200\"],\"Index\": \"auth_sec_staging\",\"UserName\":\"elastic\",\"Password\":\"IinfSPxuLrZLrh*Rvqsk\"}", + "MASA_ENVIRONMENT": "Staging", + "ADMIN_PWD": "admin123", "DCC_SECRET": "masastack.com", - "SUFFIX_IDENTITY": "dev" + "SUFFIX_IDENTITY": "staging" }, "applicationUrl": "https://localhost:19501;http://localhost:19511", "dotnetRunMessages": true From b94d8d56dff83c238eaa62137491848a3b83356c Mon Sep 17 00:00:00 2001 From: wzh425 Date: Sat, 27 Jun 2026 10:28:53 +0800 Subject: [PATCH 04/16] feat: enhance SMS unsubscription handling and message processing - Introduced `SmsInboundTypes` enum to categorize inbound SMS types, including `Unsubscribe`. - Updated `SmsInboundDto` to include a new property `InboundType` for tracking unsubscription status. - Enhanced `MessageReceiptCommandHandler` to process channel-level unsubscriptions based on reserved keywords. - Implemented logic to check for unsubscriptions in `MessageReceiptQueryHandler` and mark relevant SMS records accordingly. - Refactored message event handlers to improve handling of unsubscription scenarios and ensure robust message processing. - Added helper methods for generating unsubscription-related messages and improved error handling in SMS sending logic. --- Masa.Mc.sln | 36 --------- .../Dtos/MessageReceipts/SmsInboundDto.cs | 2 + .../MessageTemplateUpsertDtoValidator.cs | 4 +- .../SmsInboundReservedKeywords.cs | 15 ++++ .../MessageReceipts/SmsInboundTypes.cs | 10 +++ .../Channels/Aggregates/ChannelType.cs | 5 +- .../Events/SendSimpleSmsMessageEvent.cs | 2 - .../MessageReceiptCommandHandler.cs | 73 +++++++++++++++++++ .../MessageReceiptQueryHandler.cs | 22 +++++- .../RetrySmsMessageEventHandler.cs | 20 ++++- .../SendSimpleMessageEventHandler.cs | 35 +++++++-- .../SendSmsMessageEventHandler.cs | 9 ++- .../EventHandler/SmsSendBlockResultHelper.cs | 17 +++++ .../MessageTasks/MessageTaskCommandHandler.cs | 5 +- .../Services/UnsubscriptionDomainService.cs | 42 +++++++++-- .../Services/UnsubscriptionService.cs | 36 --------- 16 files changed, 231 insertions(+), 102 deletions(-) create mode 100644 src/Domain/Masa.Mc.Domain.Shared/MessageReceipts/SmsInboundTypes.cs create mode 100644 src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SmsSendBlockResultHelper.cs diff --git a/Masa.Mc.sln b/Masa.Mc.sln index 5cf50b63..fcb59b75 100644 --- a/Masa.Mc.sln +++ b/Masa.Mc.sln @@ -17,10 +17,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components", "components", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Mc.Service.Admin", "src\Services\Masa.Mc.Service\Masa.Mc.Service.Admin.csproj", "{87A8E21E-DF58-4BEA-8EA1-EF333BE4D2B3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web", "Web", "{F3986DD3-0372-4929-B72A-09D93196541E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Mc.Web.Admin", "src\Web\Masa.Mc.Web.Admin\Masa.Mc.Web.Admin.csproj", "{3F0181CA-BDF5-4F56-A664-0E82DFD2A8C7}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ApiGateways", "ApiGateways", "{32774681-0D67-48A6-A379-D57015094F85}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Mc.ApiGateways.Caller", "src\ApiGateways\Caller\Masa.Mc.ApiGateways.Caller\Masa.Mc.ApiGateways.Caller.csproj", "{40685EC0-64DF-4742-B8F6-602AFAEFC0EA}" @@ -37,10 +33,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Mc.Infrastructure.Ddd. EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Mc.Infrastructure.EntityFrameworkCore", "src\Infrastructure\Masa.Mc.Infrastructure.EntityFrameworkCore\Masa.Mc.Infrastructure.EntityFrameworkCore.csproj", "{FAFDC558-45A7-4FF7-BFCE-015EDF58F3AE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Mc.Web.Admin.Server", "src\Web\Masa.Mc.Web.Admin.Server\Masa.Mc.Web.Admin.Server.csproj", "{8FA1D09B-F5B5-4B42-BF86-53512F1377B2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Mc.Web.Admin.WebAssembly", "src\Web\Masa.Mc.Web.Admin.WebAssembly\Masa.Mc.Web.Admin.WebAssembly.csproj", "{1644695E-4B4F-4D7D-833C-7E694E758641}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Mc.Infrastructure.Common", "src\Infrastructure\Masa.Mc.Infrastructure.Common\Masa.Mc.Infrastructure.Common.csproj", "{4024A9CA-D6CA-44D7-BEA4-D96891AFC6DD}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Mc.Infrastructure.Sms", "src\Infrastructure\Masa.Mc.Infrastructure.Sms\Masa.Mc.Infrastructure.Sms.csproj", "{D965E2A5-3B97-4903-8FF6-E2E08847F16F}" @@ -97,14 +89,6 @@ Global {87A8E21E-DF58-4BEA-8EA1-EF333BE4D2B3}.Release|Any CPU.Build.0 = Release|Any CPU {87A8E21E-DF58-4BEA-8EA1-EF333BE4D2B3}.Release|x86.ActiveCfg = Release|Any CPU {87A8E21E-DF58-4BEA-8EA1-EF333BE4D2B3}.Release|x86.Build.0 = Release|Any CPU - {3F0181CA-BDF5-4F56-A664-0E82DFD2A8C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3F0181CA-BDF5-4F56-A664-0E82DFD2A8C7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3F0181CA-BDF5-4F56-A664-0E82DFD2A8C7}.Debug|x86.ActiveCfg = Debug|Any CPU - {3F0181CA-BDF5-4F56-A664-0E82DFD2A8C7}.Debug|x86.Build.0 = Debug|Any CPU - {3F0181CA-BDF5-4F56-A664-0E82DFD2A8C7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3F0181CA-BDF5-4F56-A664-0E82DFD2A8C7}.Release|Any CPU.Build.0 = Release|Any CPU - {3F0181CA-BDF5-4F56-A664-0E82DFD2A8C7}.Release|x86.ActiveCfg = Release|Any CPU - {3F0181CA-BDF5-4F56-A664-0E82DFD2A8C7}.Release|x86.Build.0 = Release|Any CPU {40685EC0-64DF-4742-B8F6-602AFAEFC0EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {40685EC0-64DF-4742-B8F6-602AFAEFC0EA}.Debug|Any CPU.Build.0 = Debug|Any CPU {40685EC0-64DF-4742-B8F6-602AFAEFC0EA}.Debug|x86.ActiveCfg = Debug|Any CPU @@ -145,22 +129,6 @@ Global {FAFDC558-45A7-4FF7-BFCE-015EDF58F3AE}.Release|Any CPU.Build.0 = Release|Any CPU {FAFDC558-45A7-4FF7-BFCE-015EDF58F3AE}.Release|x86.ActiveCfg = Release|Any CPU {FAFDC558-45A7-4FF7-BFCE-015EDF58F3AE}.Release|x86.Build.0 = Release|Any CPU - {8FA1D09B-F5B5-4B42-BF86-53512F1377B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8FA1D09B-F5B5-4B42-BF86-53512F1377B2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8FA1D09B-F5B5-4B42-BF86-53512F1377B2}.Debug|x86.ActiveCfg = Debug|Any CPU - {8FA1D09B-F5B5-4B42-BF86-53512F1377B2}.Debug|x86.Build.0 = Debug|Any CPU - {8FA1D09B-F5B5-4B42-BF86-53512F1377B2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8FA1D09B-F5B5-4B42-BF86-53512F1377B2}.Release|Any CPU.Build.0 = Release|Any CPU - {8FA1D09B-F5B5-4B42-BF86-53512F1377B2}.Release|x86.ActiveCfg = Release|Any CPU - {8FA1D09B-F5B5-4B42-BF86-53512F1377B2}.Release|x86.Build.0 = Release|Any CPU - {1644695E-4B4F-4D7D-833C-7E694E758641}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1644695E-4B4F-4D7D-833C-7E694E758641}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1644695E-4B4F-4D7D-833C-7E694E758641}.Debug|x86.ActiveCfg = Debug|Any CPU - {1644695E-4B4F-4D7D-833C-7E694E758641}.Debug|x86.Build.0 = Debug|Any CPU - {1644695E-4B4F-4D7D-833C-7E694E758641}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1644695E-4B4F-4D7D-833C-7E694E758641}.Release|Any CPU.Build.0 = Release|Any CPU - {1644695E-4B4F-4D7D-833C-7E694E758641}.Release|x86.ActiveCfg = Release|Any CPU - {1644695E-4B4F-4D7D-833C-7E694E758641}.Release|x86.Build.0 = Release|Any CPU {4024A9CA-D6CA-44D7-BEA4-D96891AFC6DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4024A9CA-D6CA-44D7-BEA4-D96891AFC6DD}.Debug|Any CPU.Build.0 = Debug|Any CPU {4024A9CA-D6CA-44D7-BEA4-D96891AFC6DD}.Debug|x86.ActiveCfg = Debug|Any CPU @@ -297,8 +265,6 @@ Global {4A1D2DFA-D091-4CD2-B9CB-D7AAA795ABD9} = {92F40AFA-8416-40BE-9893-D35E1924C69D} {FBFB499A-7022-4417-881B-68F63DBDB7F4} = {E011B243-0389-468B-B903-83445BED69A4} {87A8E21E-DF58-4BEA-8EA1-EF333BE4D2B3} = {4A1D2DFA-D091-4CD2-B9CB-D7AAA795ABD9} - {F3986DD3-0372-4929-B72A-09D93196541E} = {92F40AFA-8416-40BE-9893-D35E1924C69D} - {3F0181CA-BDF5-4F56-A664-0E82DFD2A8C7} = {F3986DD3-0372-4929-B72A-09D93196541E} {32774681-0D67-48A6-A379-D57015094F85} = {92F40AFA-8416-40BE-9893-D35E1924C69D} {40685EC0-64DF-4742-B8F6-602AFAEFC0EA} = {32774681-0D67-48A6-A379-D57015094F85} {88AD0A79-5286-4C1C-8A58-AAC9E6870CCD} = {92F40AFA-8416-40BE-9893-D35E1924C69D} @@ -307,8 +273,6 @@ Global {C47B7220-BDF3-4DFA-93FE-0F6885DB89A4} = {4660010F-BB9B-4C8E-B4F7-34AF77080EA0} {6CAC62DA-A3AF-4BFE-8E1C-0DB9D0D81CD6} = {4660010F-BB9B-4C8E-B4F7-34AF77080EA0} {FAFDC558-45A7-4FF7-BFCE-015EDF58F3AE} = {4660010F-BB9B-4C8E-B4F7-34AF77080EA0} - {8FA1D09B-F5B5-4B42-BF86-53512F1377B2} = {F3986DD3-0372-4929-B72A-09D93196541E} - {1644695E-4B4F-4D7D-833C-7E694E758641} = {F3986DD3-0372-4929-B72A-09D93196541E} {4024A9CA-D6CA-44D7-BEA4-D96891AFC6DD} = {4660010F-BB9B-4C8E-B4F7-34AF77080EA0} {D965E2A5-3B97-4903-8FF6-E2E08847F16F} = {4660010F-BB9B-4C8E-B4F7-34AF77080EA0} {C816B922-18A4-4F6A-9A7A-4D0E7F2AE129} = {4660010F-BB9B-4C8E-B4F7-34AF77080EA0} diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageReceipts/SmsInboundDto.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageReceipts/SmsInboundDto.cs index e5c12f37..8a2ee1ca 100644 --- a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageReceipts/SmsInboundDto.cs +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageReceipts/SmsInboundDto.cs @@ -16,4 +16,6 @@ public class SmsInboundDto : AuditEntityDto public string AddSerial { get; set; } = string.Empty; public SmsInboundProviders Provider { get; set; } + + public SmsInboundTypes InboundType { get; set; } } diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs index b971bb77..a2312f28 100644 --- a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs @@ -8,7 +8,7 @@ public class MessageTemplateUpsertDtoValidator : AbstractValidator inputDto.DisplayName).Required("MessageTemplateDisplayNameRequired") - .Length(2, 50).WithMessage("MessageTemplateDisplayNameLength").When(x => x.ChannelType != ChannelTypes.WeixinWork && x.TemplateType != (int)WeixinWorkTemplateTypes.Text); + .Length(2, 100).WithMessage("MessageTemplateDisplayNameLength").When(x => x.ChannelType != ChannelTypes.WeixinWork && x.TemplateType != (int)WeixinWorkTemplateTypes.Text); RuleFor(inputDto => inputDto.Code).Required("MessageTemplateCodeRequired") .LetterNumberSymbol().WithMessage("MessageTemplateCodeLetterNumberSymbol") .Length(2, 50).WithMessage("MessageTemplateCodeLength"); @@ -17,7 +17,7 @@ public MessageTemplateUpsertDtoValidator() RuleFor(inputDto => inputDto.AuditStatus).IsInEnum(); RuleFor(inputDto => inputDto.PerDayLimit).InclusiveBetween(0, 500).WithMessage("MessageTemplatePerDayLimitBetween"); RuleFor(inputDto => inputDto.Title).Required("TitleRequired") - .Length(2, 50).WithMessage("TitleLength") + .Length(2, 100).WithMessage("TitleLength") .When(x => x.ChannelType == ChannelTypes.Email || x.ChannelType == ChannelTypes.WebsiteMessage); RuleFor(inputDto => inputDto.Content).Required("ContentRequired"); RuleFor(inputDto => inputDto.JumpUrl).Required("JumpUrlRequired").When(x => x.IsJump); diff --git a/src/Domain/Masa.Mc.Domain.Shared/MessageReceipts/SmsInboundReservedKeywords.cs b/src/Domain/Masa.Mc.Domain.Shared/MessageReceipts/SmsInboundReservedKeywords.cs index 466f974d..a76972b8 100644 --- a/src/Domain/Masa.Mc.Domain.Shared/MessageReceipts/SmsInboundReservedKeywords.cs +++ b/src/Domain/Masa.Mc.Domain.Shared/MessageReceipts/SmsInboundReservedKeywords.cs @@ -6,4 +6,19 @@ namespace Masa.Mc.Domain.Shared.MessageReceipts; public static class SmsInboundReservedKeywords { public const string YunMasUnsubscribeKeyword = "R"; + + public static bool IsProviderUnsubscribeKeyword(SmsInboundProviders provider, string inboundKeyword) + { + if (string.IsNullOrWhiteSpace(inboundKeyword)) + { + return false; + } + + var normalizedKeyword = inboundKeyword.Trim(); + return provider switch + { + SmsInboundProviders.YunMas => string.Equals(normalizedKeyword, YunMasUnsubscribeKeyword, StringComparison.OrdinalIgnoreCase), + _ => false + }; + } } diff --git a/src/Domain/Masa.Mc.Domain.Shared/MessageReceipts/SmsInboundTypes.cs b/src/Domain/Masa.Mc.Domain.Shared/MessageReceipts/SmsInboundTypes.cs new file mode 100644 index 00000000..a0a1bb54 --- /dev/null +++ b/src/Domain/Masa.Mc.Domain.Shared/MessageReceipts/SmsInboundTypes.cs @@ -0,0 +1,10 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Domain.Shared.MessageReceipts; + +public enum SmsInboundTypes +{ + Other = 0, + Unsubscribe = 1 +} diff --git a/src/Domain/Masa.Mc.Domain/Channels/Aggregates/ChannelType.cs b/src/Domain/Masa.Mc.Domain/Channels/Aggregates/ChannelType.cs index 198771c3..8b7242f8 100644 --- a/src/Domain/Masa.Mc.Domain/Channels/Aggregates/ChannelType.cs +++ b/src/Domain/Masa.Mc.Domain/Channels/Aggregates/ChannelType.cs @@ -26,7 +26,7 @@ public virtual SendMessageEvent GetSendMessageEvent(Guid channelId, MessageData throw new NotImplementedException(); } - public virtual SendSimpleMessageEvent GetSendSimpleMessageEvent(string channelUserIdentity, string channelCode, MessageData messageData, ExtraPropertyDictionary variables, ExtraPropertyDictionary originalVariables, string systemId) + public virtual SendSimpleMessageEvent GetSendSimpleMessageEvent(string channelUserIdentity, string channelCode, MessageData messageData, ExtraPropertyDictionary variables, string systemId) { throw new NotImplementedException(); } @@ -52,12 +52,11 @@ public override SendMessageEvent GetSendMessageEvent(Guid channelId, MessageData return new SendSmsMessageEvent(channelId, messageData, messageTaskHistory); } - public override SendSimpleMessageEvent GetSendSimpleMessageEvent(string channelUserIdentity, string channelCode, MessageData messageData, ExtraPropertyDictionary variables, ExtraPropertyDictionary originalVariables, string systemId) + public override SendSimpleMessageEvent GetSendSimpleMessageEvent(string channelUserIdentity, string channelCode, MessageData messageData, ExtraPropertyDictionary variables, string systemId) { return new SendSimpleSmsMessageEvent(channelUserIdentity, channelCode, messageData) { Variables = variables, - OriginalVariables = originalVariables, SystemId = systemId }; } diff --git a/src/Domain/Masa.Mc.Domain/MessageTasks/Events/SendSimpleSmsMessageEvent.cs b/src/Domain/Masa.Mc.Domain/MessageTasks/Events/SendSimpleSmsMessageEvent.cs index 8542344a..13492e4a 100644 --- a/src/Domain/Masa.Mc.Domain/MessageTasks/Events/SendSimpleSmsMessageEvent.cs +++ b/src/Domain/Masa.Mc.Domain/MessageTasks/Events/SendSimpleSmsMessageEvent.cs @@ -7,8 +7,6 @@ public record SendSimpleSmsMessageEvent: SendSimpleMessageEvent { public ExtraPropertyDictionary Variables { get; set; } - public ExtraPropertyDictionary OriginalVariables { get; set; } - public string SystemId { get; set; } = string.Empty; public SendSimpleSmsMessageEvent(string channelUserIdentity, string channelCode, MessageData messageData) diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs index 81289791..0f82b4a2 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs @@ -201,6 +201,64 @@ private async Task TryHandleSmsInboundUnsubscriptionAsync( return; } + if (await TryHandleChannelLevelInboundUnsubscriptionAsync( + command, + inboundEntity, + sendTime, + inboundKeyword, + cancellationToken)) + { + return; + } + + await TryHandleTemplateLevelInboundUnsubscriptionAsync( + command, + inboundEntity, + sendTime, + inboundKeyword, + cancellationToken); + } + + private async Task TryHandleChannelLevelInboundUnsubscriptionAsync( + ReceiveSmsInboundCommand command, + SmsInbound inboundEntity, + DateTimeOffset sendTime, + string inboundKeyword, + CancellationToken cancellationToken) + { + if (!SmsInboundReservedKeywords.IsProviderUnsubscribeKeyword(command.Provider, inboundKeyword)) + { + return false; + } + + var lastMessageRecord = await TryGetLatestInboundRelatedRecordAsync(command.ChannelId, command.Input.Mobile, cancellationToken); + if (lastMessageRecord is null) + { + return true; + } + + await _channelUnsubscriptionDomainService.HandleSmsInboundProviderReservedUnsubscribeAsync( + lastMessageRecord.UserId, + lastMessageRecord.ChannelUserIdentity, + command.ChannelId, + (int)command.Provider, + inboundKeyword, + sendTime, + inboundEntity.Id.ToString("N"), + lastMessageRecord.Id, + string.Empty, + lastMessageRecord.SendTime, + cancellationToken); + return true; + } + + private async Task TryHandleTemplateLevelInboundUnsubscriptionAsync( + ReceiveSmsInboundCommand command, + SmsInbound inboundEntity, + DateTimeOffset sendTime, + string inboundKeyword, + CancellationToken cancellationToken) + { var context = await TryGetInboundTemplateContextAsync(command.ChannelId, command.Input.Mobile, cancellationToken); if (context is null) { @@ -246,6 +304,21 @@ await _smsInboundAutoReplyService.TrySendAutoReplyAsync( cancellationToken); } + private async Task TryGetLatestInboundRelatedRecordAsync( + Guid channelId, + string channelUserIdentity, + CancellationToken cancellationToken) + { + var messageRecordQuery = await _repository.GetQueryableAsync(); + return await messageRecordQuery + .Where(x => + x.ChannelId == channelId && + x.ChannelUserIdentity == channelUserIdentity) + .OrderByDescending(x => x.SendTime) + .ThenByDescending(x => x.CreationTime) + .FirstOrDefaultAsync(cancellationToken); + } + private async Task<(MessageRecord LastTemplateRecord, MessageTemplate Template)?> TryGetInboundTemplateContextAsync( Guid channelId, string channelUserIdentity, diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs index 9b41ea9d..0b3890d6 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs @@ -39,7 +39,27 @@ public async Task GetListSmsInboundAsync(GetListSmsInboundQuery query) } }); - query.Result = new PaginatedListDto(resultList.Total, resultList.TotalPages, resultList.Result.Adapt>()); + var inboundDtos = resultList.Result.Adapt>(); + if (inboundDtos.Any()) + { + var inboundMessageIds = inboundDtos + .Select(x => x.Id.ToString("N")) + .ToList(); + var unsubscribedInboundIds = await _context.UnsubscriptionQueries + .Where(x => inboundMessageIds.Contains(x.LastInboundMessageId)) + .Select(x => x.LastInboundMessageId) + .Distinct() + .ToListAsync(); + var unsubscribedInboundIdSet = unsubscribedInboundIds.ToHashSet(StringComparer.OrdinalIgnoreCase); + foreach (var item in inboundDtos) + { + item.InboundType = unsubscribedInboundIdSet.Contains(item.Id.ToString("N")) + ? SmsInboundTypes.Unsubscribe + : SmsInboundTypes.Other; + } + } + + query.Result = new PaginatedListDto(resultList.Total, resultList.TotalPages, inboundDtos); } private static Expression> CreateSmsInboundPredicate(GetSmsInboundInputDto input) diff --git a/src/Services/Masa.Mc.Service/Application/MessageRecords/EventHandler/RetrySmsMessageEventHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageRecords/EventHandler/RetrySmsMessageEventHandler.cs index 4922531e..04a4275f 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageRecords/EventHandler/RetrySmsMessageEventHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageRecords/EventHandler/RetrySmsMessageEventHandler.cs @@ -9,6 +9,7 @@ public class RetrySmsMessageEventHandler private readonly IChannelRepository _channelRepository; private readonly IMessageRecordRepository _messageRecordRepository; private readonly MessageTemplateDomainService _messageTemplateDomainService; + private readonly UnsubscriptionDomainService _channelUnsubscriptionDomainService; private readonly IMessageTemplateRepository _repository; private readonly II18n _i18n; private readonly ITemplateRenderer _templateRenderer; @@ -17,6 +18,7 @@ public RetrySmsMessageEventHandler(SmsSenderFactory smsSenderFactory , IChannelRepository channelRepository , IMessageRecordRepository messageRecordRepository , MessageTemplateDomainService messageTemplateDomainService + , UnsubscriptionDomainService channelUnsubscriptionDomainService , IMessageTemplateRepository repository , II18n i18n , ITemplateRenderer templateRenderer) @@ -25,6 +27,7 @@ public RetrySmsMessageEventHandler(SmsSenderFactory smsSenderFactory _channelRepository = channelRepository; _messageRecordRepository = messageRecordRepository; _messageTemplateDomainService = messageTemplateDomainService; + _channelUnsubscriptionDomainService = channelUnsubscriptionDomainService; _repository = repository; _i18n = i18n; _templateRenderer = templateRenderer; @@ -47,10 +50,21 @@ public async Task HandleEventAsync(RetrySmsMessageEvent eto) using (smsAsyncLoca.Change(options)) { var variables = messageRecord.Variables; - var messageTemplate = await _repository.FindAsync(x => x.Id == messageRecord.MessageEntityId, false); + var messageTemplate = await _repository.FindAsync(x => x.Id == messageRecord.MessageEntityId); + if (messageTemplate?.GetUnsubscribeConfig().Enabled == true && + await _channelUnsubscriptionDomainService.IsSmsTemplateUnsubscribedAsync( + messageRecord.ChannelId, + messageRecord.ChannelUserIdentity, + messageTemplate.Id)) + { + messageRecord.SetResult(false, Masa.Mc.Service.Admin.Application.MessageTasks.EventHandler.SmsSendBlockResultHelper.GetUnsubscriptionBlockedMessage(_i18n)); + await _messageRecordRepository.UpdateAsync(messageRecord); + return; + } + if (!await _messageTemplateDomainService.CheckSendUpperLimitAsync(messageTemplate, messageRecord.ChannelUserIdentity)) { - messageRecord.SetResult(false, _i18n.T("DailySendingLimit")); + messageRecord.SetResult(false, Masa.Mc.Service.Admin.Application.MessageTasks.EventHandler.SmsSendBlockResultHelper.GetDailySendingLimitMessage(_i18n)); await _messageRecordRepository.UpdateAsync(messageRecord); return; } @@ -64,7 +78,7 @@ public async Task HandleEventAsync(RetrySmsMessageEvent eto) try { var response = await smsSender.SendAsync(smsMessage) as SmsSendResponse; - if (response.Success) + if (response?.Success is true) { messageRecord.SetResult(smsSender.SupportsReceipt ? null : true, string.Empty, DateTimeOffset.UtcNow, response.MsgId); } diff --git a/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SendSimpleMessageEventHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SendSimpleMessageEventHandler.cs index 858e12ba..ae4846d6 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SendSimpleMessageEventHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SendSimpleMessageEventHandler.cs @@ -1,6 +1,10 @@ // Copyright (c) MASA Stack All rights reserved. // Licensed under the Apache License. See LICENSE.txt in the project root for license information. +using com.igetui.api.openservice; +using Masa.Mc.Domain.MessageTemplates.Aggregates; +using Masa.Mc.Service.Admin.Domain.MessageTemplates.Services; + namespace Masa.Mc.Service.Admin.Application.MessageTasks.EventHandler; public class SendSimpleMessageEventHandler @@ -48,7 +52,7 @@ public async Task HandleEventAsync(SendSimpleSmsMessageEvent eto) var messageEntityId = eto.MessageData.GetDataValue(nameof(MessageTemplate.Id)); MessageTemplate? messageTemplate = null; - var messageRecord = new MessageRecord(Guid.Empty, eto.ChannelUserIdentity, channel.Id, Guid.Empty, Guid.Empty, eto.OriginalVariables, eto.MessageData.MessageContent.Title, DateTimeOffset.UtcNow, eto.SystemId); + var messageRecord = new MessageRecord(Guid.Empty, eto.ChannelUserIdentity, channel.Id, Guid.Empty, Guid.Empty, eto.Variables, eto.MessageData.MessageContent.Title, DateTimeOffset.UtcNow, eto.SystemId); messageRecord.SetMessageEntity(eto.MessageData.MessageType, messageEntityId); messageRecord.SetDataValue(nameof(MessageTemplate.Sign), sign); messageRecord.SetDataValue(nameof(MessageTemplate.TemplateId), templateId); @@ -56,7 +60,7 @@ public async Task HandleEventAsync(SendSimpleSmsMessageEvent eto) if (eto.MessageData.MessageType == MessageEntityTypes.Template) { - messageTemplate = await _messageTemplateRepository.FindAsync(x => x.Id == messageEntityId, false); + messageTemplate = await _messageTemplateRepository.FindAsync(x => x.Id == messageEntityId); if (messageTemplate?.GetUnsubscribeConfig().Enabled == true && await _channelUnsubscriptionDomainService.IsSmsTemplateUnsubscribedAsync(channel.Id, eto.ChannelUserIdentity, messageEntityId)) { @@ -74,11 +78,7 @@ await _channelUnsubscriptionDomainService.IsSmsTemplateUnsubscribedAsync(channel } } - var text = smsSender.SupportsTemplate ? JsonSerializer.Serialize(eto.Variables) : eto.MessageData.MessageContent.Content; - if (!smsSender.SupportsTemplate && messageTemplate?.GetUnsubscribeConfig().Enabled == true) - { - text = messageTemplate.AppendUnsubscribeSuffix(text); - } + var text = BuildSmsMessageText(eto, smsSender, messageTemplate); var smsMessage = new SmsMessage(eto.ChannelUserIdentity, text); smsMessage.Properties.Add("SignName", sign); @@ -107,4 +107,25 @@ await _channelUnsubscriptionDomainService.IsSmsTemplateUnsubscribedAsync(channel } } + private string BuildSmsMessageText(SendSimpleSmsMessageEvent eto, ISmsSender smsSender, MessageTemplate? template) + { + string text = string.Empty; + if (smsSender.SupportsTemplate) + { + var variables = template is null ? eto.Variables : _messageTemplateDomainService.ConvertVariables(template, eto.Variables); + text = JsonSerializer.Serialize(variables); + } + else + { + text = eto.MessageData.MessageContent.Content; + + if (template?.GetUnsubscribeConfig().Enabled == true) + { + text = template.AppendUnsubscribeSuffix(text); + } + } + + return text; + } + } diff --git a/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SendSmsMessageEventHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SendSmsMessageEventHandler.cs index ed5f0912..27e4edf2 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SendSmsMessageEventHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SendSmsMessageEventHandler.cs @@ -45,7 +45,7 @@ public async Task ResolveAsync(SendSmsMessageEvent eto) var channelId = eto.ChannelId; var taskHistory = eto.MessageTaskHistory; - var messageTemplate = await _templateRepository.FindAsync(x => x.Id == taskHistory.MessageTask.EntityId, false); + var messageTemplate = await _templateRepository.FindAsync(x => x.Id == taskHistory.MessageTask.EntityId); var messageRecords = new List(); foreach (var item in taskHistory.ReceiverUsers) @@ -82,6 +82,7 @@ public async Task CheckAsync(SendSmsMessageEvent eto) var unsubscriptionEnabled = eto.MessageTemplate.GetUnsubscribeConfig().Enabled; var channelUserIdentitys = eto.MessageRecords.Select(x => x.ChannelUserIdentity).Distinct().ToList(); var checkChannelUserIdentitys = await _messageTemplateDomainService.CheckSendUpperLimitAsync(eto.MessageTemplate, channelUserIdentitys); + var exceededUpperLimitIdentitySet = checkChannelUserIdentitys.ToHashSet(); foreach (var messageRecord in eto.MessageRecords) { @@ -90,13 +91,13 @@ public async Task CheckAsync(SendSmsMessageEvent eto) messageRecord.ChannelUserIdentity, templateId)) { - messageRecord.SetResult(false, _i18n.T("MessageBlockedByUnsubscription")); + messageRecord.SetResult(false, SmsSendBlockResultHelper.GetUnsubscriptionBlockedMessage(_i18n)); continue; } - if (checkChannelUserIdentitys.Contains(messageRecord.ChannelUserIdentity)) + if (exceededUpperLimitIdentitySet.Contains(messageRecord.ChannelUserIdentity)) { - messageRecord.SetResult(false, _i18n.T("DailySendingLimit")); + messageRecord.SetResult(false, SmsSendBlockResultHelper.GetDailySendingLimitMessage(_i18n)); continue; } diff --git a/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SmsSendBlockResultHelper.cs b/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SmsSendBlockResultHelper.cs new file mode 100644 index 00000000..83db6666 --- /dev/null +++ b/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SmsSendBlockResultHelper.cs @@ -0,0 +1,17 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Service.Admin.Application.MessageTasks.EventHandler; + +internal static class SmsSendBlockResultHelper +{ + public static string GetUnsubscriptionBlockedMessage(II18n i18n) + { + return i18n.T("MessageBlockedByUnsubscription"); + } + + public static string GetDailySendingLimitMessage(II18n i18n) + { + return i18n.T("DailySendingLimit"); + } +} diff --git a/src/Services/Masa.Mc.Service/Application/MessageTasks/MessageTaskCommandHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageTasks/MessageTaskCommandHandler.cs index 4c3d88be..bd0ea539 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageTasks/MessageTaskCommandHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageTasks/MessageTaskCommandHandler.cs @@ -206,7 +206,7 @@ public async Task ResendAsync(ResendMessageTaskCommand command) [EventHandler] public async Task SendSimpleMessageAsync(SendSimpleTemplateMessageCommand command) { - var template = await _messageTemplateRepository.FindAsync(x => x.Code == command.InputDto.TemplateCode); + var template = await _messageTemplateRepository.FindAsync(x => x.Code == command.InputDto.TemplateCode, false); MasaArgumentException.ThrowIfNull(template, _i18n.T("MessageTemplate")); var messageData = new MessageData(template.MessageContent, MessageEntityTypes.Template); @@ -217,10 +217,9 @@ public async Task SendSimpleMessageAsync(SendSimpleTemplateMessageCommand comman messageData.SetDataValue(BusinessConsts.MESSAGE_TYPE, template.TemplateType.ToString()); messageData.SetDataValue(nameof(MessageTemplate.Id), template.Id.ToString()); - var variables = _messageTemplateDomainService.ConvertVariables(template, command.InputDto.Variables); var channelType = Enumeration.FromValue((int)command.InputDto.ChannelType); - var eto = channelType.GetSendSimpleMessageEvent(command.InputDto.ChannelUserIdentity, command.InputDto.ChannelCode, messageData, variables, command.InputDto.Variables, command.InputDto.SystemId); + var eto = channelType.GetSendSimpleMessageEvent(command.InputDto.ChannelUserIdentity, command.InputDto.ChannelCode, messageData, command.InputDto.Variables, command.InputDto.SystemId); await _eventBus.PublishAsync(eto); } diff --git a/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs b/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs index 90e8c813..1bef959c 100644 --- a/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs +++ b/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs @@ -41,7 +41,8 @@ public async Task HandleSmsInboundKeywordAsync( channelUserIdentity, channelId, channelProvider, - templateId, + UnsubscriptionScopeTypes.Template, + templateId.ToString("N"), keyword, occurredAt, inboundMessageId, @@ -70,12 +71,44 @@ public async Task HandleSmsInboundKeywordAsync( return SmsInboundKeywordAction.None; } + public async Task HandleSmsInboundProviderReservedUnsubscribeAsync( + Guid userId, + string channelUserIdentity, + Guid channelId, + int channelProvider, + string keyword, + DateTimeOffset occurredAt, + string inboundMessageId, + Guid? matchedMessageRecordId, + string matchedMessageSnapshot, + DateTimeOffset? matchedMessageSentAt, + CancellationToken cancellationToken = default) + { + return await HandleInboundUnsubscribeAsync( + userId, + channelUserIdentity, + channelId, + channelProvider, + UnsubscriptionScopeTypes.Channel, + string.Empty, + keyword, + occurredAt, + inboundMessageId, + matchedMessageRecordId, + matchedMessageSnapshot, + matchedMessageSentAt, + debounceEnabled: false, + cooldownSeconds: 0, + cancellationToken); + } + private async Task HandleInboundUnsubscribeAsync( Guid userId, string channelUserIdentity, Guid channelId, int channelProvider, - Guid templateId, + UnsubscriptionScopeTypes scopeType, + string scopeRefId, string keyword, DateTimeOffset occurredAt, string inboundMessageId, @@ -86,11 +119,10 @@ private async Task HandleInboundUnsubscribeAsync( int cooldownSeconds, CancellationToken cancellationToken = default) { - var scopeRefId = templateId.ToString("N"); var active = await _repository.FindActiveAsync( channelId, channelUserIdentity, - UnsubscriptionScopeTypes.Template, + scopeType, scopeRefId, cancellationToken); @@ -101,7 +133,7 @@ private async Task HandleInboundUnsubscribeAsync( channelUserIdentity, channelId, channelProvider, - UnsubscriptionScopeTypes.Template, + scopeType, scopeRefId, keyword, LocalizeReason(UnsubscriptionReasonConstants.INBOUND_UNSUBSCRIBE_REASON), diff --git a/src/Services/Masa.Mc.Service/Services/UnsubscriptionService.cs b/src/Services/Masa.Mc.Service/Services/UnsubscriptionService.cs index 000d9d29..8f08d24c 100644 --- a/src/Services/Masa.Mc.Service/Services/UnsubscriptionService.cs +++ b/src/Services/Masa.Mc.Service/Services/UnsubscriptionService.cs @@ -49,42 +49,6 @@ public async Task> GetListAsync( return query.Result; } - [RoutePattern("history", StartWithBaseUri = true, HttpMethod = "Get")] - public async Task> GetHistoryListAsync( - IEventBus eventBus, - [FromQuery] Guid? channelId, - [FromQuery] Guid? userId, - [FromQuery] UnsubscriptionSource? source, - [FromQuery] UnsubscriptionTimelineActions? action, - [FromQuery] DateTimeOffset? startTime, - [FromQuery] DateTimeOffset? endTime, - [FromQuery] string filter = "", - [FromQuery] string channelUserIdentity = "", - [FromQuery] string scopeRefId = "", - [FromQuery] string keyword = "", - [FromQuery] string sorting = "", - [FromQuery] int page = 1, - [FromQuery] int pagesize = 10) - { - var input = new GetUnsubscriptionHistoryInputDto( - channelId, - userId, - filter, - channelUserIdentity, - scopeRefId, - keyword, - source, - action, - startTime, - endTime, - sorting, - page, - pagesize); - var query = new GetUnsubscriptionHistoryListQuery(input); - await eventBus.PublishAsync(query); - return query.Result; - } - [RoutePattern("{id}", StartWithBaseUri = true, HttpMethod = "Get")] public async Task GetAsync(IEventBus eventBus, Guid id) { From e7036ab017c1c338e2f3d96aa05d8a594982d848 Mon Sep 17 00:00:00 2001 From: wzh425 Date: Sat, 27 Jun 2026 16:27:08 +0800 Subject: [PATCH 05/16] feat: enhance unsubscription handling and user identity resolution - Added `UserId` property to `AddChannelUserIdentityToUnsubscriptionBlacklistInputDto` for improved user identification during unsubscription processes. - Updated `MessageTemplate` to handle unsubscribe configuration more robustly, ensuring proper application of settings. - Introduced `Apply` method in `MessageTemplateUnsubscribeConfig` to streamline configuration updates. - Enhanced `UnsubscriptionCommandHandler` to resolve target user identities based on channel type and input parameters, improving the accuracy of unsubscription actions. - Refactored `UnsubscriptionDomainService` to utilize user ID in blacklist operations, ensuring correct user associations during unsubscription. --- ...entityToUnsubscriptionBlacklistInputDto.cs | 2 + .../Aggregates/MessageTemplate.cs | 8 +- .../MessageTemplateUnsubscribeConfig.cs | 15 ++++ .../Aggregates/Unsubscription.cs | 1 + .../Repositories/UnsubscriptionRepository.cs | 1 - .../MessageReceiptQueryHandler.cs | 5 +- .../UnsubscriptionCommandHandler.cs | 77 ++++++++++++++++++- .../Services/UnsubscriptionDomainService.cs | 6 +- 8 files changed, 106 insertions(+), 9 deletions(-) diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/AddChannelUserIdentityToUnsubscriptionBlacklistInputDto.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/AddChannelUserIdentityToUnsubscriptionBlacklistInputDto.cs index 4f2e1a99..16acd917 100644 --- a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/AddChannelUserIdentityToUnsubscriptionBlacklistInputDto.cs +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/AddChannelUserIdentityToUnsubscriptionBlacklistInputDto.cs @@ -5,6 +5,8 @@ namespace Masa.Mc.Contracts.Admin.Dtos.Unsubscriptions; public class AddChannelUserIdentityToUnsubscriptionBlacklistInputDto { + public Guid? UserId { get; set; } + public string ChannelCode { get; set; } = string.Empty; public string ChannelUserIdentity { get; set; } = string.Empty; diff --git a/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplate.cs b/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplate.cs index 667b48c6..5780bb1b 100644 --- a/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplate.cs +++ b/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplate.cs @@ -107,7 +107,13 @@ private void ApplyUnsubscribeConfig(MessageTemplateUnsubscribeConfig config) throw new UserFriendlyException(errorCode: MessageTemplateExceptionCodes.VERIFICATION_CODE_TEMPLATE_CANNOT_ENABLE_UNSUBSCRIBE); } - UnsubscribeConfig = config; + if (UnsubscribeConfig is null) + { + UnsubscribeConfig = config; + return; + } + + UnsubscribeConfig.Apply(config); } public void Remove() diff --git a/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs b/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs index 5b395e29..157e3b51 100644 --- a/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs +++ b/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs @@ -92,6 +92,21 @@ public string GetAutoReplyContent(SmsInboundKeywordAction action) }; } + public void Apply(MessageTemplateUnsubscribeConfig config) + { + Check.NotNull(config, nameof(config)); + + Enabled = config.Enabled; + UnsubscribeKeyword = config.UnsubscribeKeyword; + UnsubscribeAutoReply = config.UnsubscribeAutoReply; + ResubscribeKeyword = config.ResubscribeKeyword; + ResubscribeAutoReply = config.ResubscribeAutoReply; + DebounceEnabled = config.DebounceEnabled; + CooldownSeconds = config.CooldownSeconds; + + NormalizeAndValidate(); + } + protected override IEnumerable GetEqualityValues() { yield return Enabled; diff --git a/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs b/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs index 5be2eca0..a3369012 100644 --- a/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs +++ b/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs @@ -282,6 +282,7 @@ public void Resubscribe( } var normalizedReason = reason.Trim(); + Reason = normalizedReason; Status = UnsubscriptionStatus.Resubscribed; ResubscribedAt = occurredAt; var normalizedMessageId = inboundMessageId?.Trim() ?? string.Empty; diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore/Repositories/UnsubscriptionRepository.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore/Repositories/UnsubscriptionRepository.cs index 6c75ef17..f0480a61 100644 --- a/src/Infrastructure/Masa.Mc.EntityFrameworkCore/Repositories/UnsubscriptionRepository.cs +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore/Repositories/UnsubscriptionRepository.cs @@ -21,7 +21,6 @@ public UnsubscriptionRepository(McDbContext context, IUnitOfWork unitOfWork) .Include(x => x.Timelines) .Where(x => x.ChannelId == channelId && - x.ChannelType == ChannelTypes.Sms && x.ChannelUserIdentity == channelUserIdentity && x.ScopeType == scopeType && x.ScopeRefId == scopeRefId && diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs index 0b3890d6..ca3e6273 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptQueryHandler.cs @@ -22,7 +22,7 @@ public async Task GetListSmsInboundAsync(GetListSmsInboundQuery query) input.ChannelId = (await _context.ChannelQueryQueries.FirstOrDefaultAsync(x => x.Code == channelCode))?.Id; } - if (!input.ChannelId.HasValue) + if (!input.ChannelId.HasValue && !string.IsNullOrWhiteSpace(input.ChannelCode)) { query.Result = new PaginatedListDto(0, 0, new List()); return; @@ -64,8 +64,9 @@ public async Task GetListSmsInboundAsync(GetListSmsInboundQuery query) private static Expression> CreateSmsInboundPredicate(GetSmsInboundInputDto input) { - Expression> condition = x => x.ChannelId == input.ChannelId!.Value; + Expression> condition = x => true; + condition = condition.And(input.ChannelId.HasValue, x => x.ChannelId == input.ChannelId!.Value); condition = condition.And(!string.IsNullOrWhiteSpace(input.Mobile), x => x.Mobile == input.Mobile); condition = condition.And(!string.IsNullOrWhiteSpace(input.AddSerial), x => x.AddSerial == input.AddSerial); condition = condition.And(!string.IsNullOrWhiteSpace(input.SmsContent), x => x.SmsContent.Contains(input.SmsContent)); diff --git a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionCommandHandler.cs b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionCommandHandler.cs index c431f969..54f83d65 100644 --- a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionCommandHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionCommandHandler.cs @@ -7,17 +7,20 @@ public class UnsubscriptionCommandHandler { private readonly UnsubscriptionDomainService _unsubscriptionDomainService; private readonly IUserContext _userContext; + private readonly IAuthClient _authClient; private readonly IChannelRepository _channelRepository; private readonly IMessageTemplateRepository _messageTemplateRepository; public UnsubscriptionCommandHandler( UnsubscriptionDomainService unsubscriptionDomainService, IUserContext userContext, + IAuthClient authClient, IChannelRepository channelRepository, IMessageTemplateRepository messageTemplateRepository) { _unsubscriptionDomainService = unsubscriptionDomainService; _userContext = userContext; + _authClient = authClient; _channelRepository = channelRepository; _messageTemplateRepository = messageTemplateRepository; } @@ -29,12 +32,16 @@ public async Task AddChannelUserIdentityToBlacklistAsync(AddChannelUserIdentityT var templateId = await ResolveTemplateIdAsync(channel.Id, command.Input.TemplateCode); var channelType = (ChannelTypes)Enum.Parse(typeof(ChannelTypes), channel.Type.Id.ToString()); + var (targetUserId, targetChannelUserIdentity) = await ResolveTargetUserAsync( + channelType, + command.Input.UserId, + command.Input.ChannelUserIdentity); await _unsubscriptionDomainService.AddChannelUserIdentityToBlacklistAsync( - _userContext.GetUserId(), + targetUserId, channel.Id, channelType, channel.Provider, - command.Input.ChannelUserIdentity, + targetChannelUserIdentity, templateId, command.Input.Reason); } @@ -87,4 +94,70 @@ private async Task ResolveChannelAsync(string channelCode) return template.Id; } + + private async Task ResolveTargetUserIdAsync(ChannelTypes channelType, string channelUserIdentity) + { + var normalizedChannelUserIdentity = channelUserIdentity?.Trim(); + if (string.IsNullOrWhiteSpace(normalizedChannelUserIdentity)) + { + throw new UserFriendlyException(errorCode: UnsubscriptionExceptionCodes.CHANNEL_USER_IDENTITY_REQUIRED); + } + + if (channelType == ChannelTypes.WebsiteMessage && Guid.TryParse(normalizedChannelUserIdentity, out var websiteUserId)) + { + return websiteUserId; + } + + UserModel? user = channelType switch + { + ChannelTypes.Sms => await _authClient.UserService.GetByPhoneNumberAsync(normalizedChannelUserIdentity), + ChannelTypes.Email => await _authClient.UserService.GetByEmailAsync(normalizedChannelUserIdentity), + _ => null + }; + + if (user is not null && user.Id != Guid.Empty) + { + return user.Id; + } + + throw new UserFriendlyException(errorCode: UnsubscriptionExceptionCodes.CHANNEL_USER_IDENTITY_REQUIRED); + } + + private async Task<(Guid userId, string channelUserIdentity)> ResolveTargetUserAsync( + ChannelTypes channelType, + Guid? inputUserId, + string inputChannelUserIdentity) + { + if (inputUserId.HasValue && inputUserId.Value != Guid.Empty) + { + var users = await _authClient.UserService.GetListByIdsAsync(new[] { inputUserId.Value }); + var user = users.FirstOrDefault(x => x.Id == inputUserId.Value); + if (user is null) + { + throw new UserFriendlyException(errorCode: UnsubscriptionExceptionCodes.CHANNEL_USER_IDENTITY_REQUIRED); + } + + var resolvedChannelUserIdentity = ResolveChannelUserIdentityByUser(channelType, user); + if (string.IsNullOrWhiteSpace(resolvedChannelUserIdentity)) + { + throw new UserFriendlyException(errorCode: UnsubscriptionExceptionCodes.CHANNEL_USER_IDENTITY_REQUIRED); + } + + return (inputUserId.Value, resolvedChannelUserIdentity.Trim()); + } + + var targetUserId = await ResolveTargetUserIdAsync(channelType, inputChannelUserIdentity); + return (targetUserId, inputChannelUserIdentity.Trim()); + } + + private static string ResolveChannelUserIdentityByUser(ChannelTypes channelType, UserModel user) + { + return channelType switch + { + ChannelTypes.Sms => user.PhoneNumber ?? string.Empty, + ChannelTypes.Email => user.Email ?? string.Empty, + ChannelTypes.WebsiteMessage => user.Id.ToString(), + _ => string.Empty + }; + } } diff --git a/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs b/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs index 1bef959c..ffb7835f 100644 --- a/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs +++ b/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs @@ -235,7 +235,7 @@ public async Task IsChannelUserIdentityUnsubscribedAsync( } public async Task AddChannelUserIdentityToBlacklistAsync( - Guid operatorId, + Guid userId, Guid channelId, ChannelTypes channelType, int channelProvider, @@ -278,7 +278,7 @@ public async Task AddChannelUserIdentityToBlacklistAsync( : reason; var aggregate = hasTemplateScope ? Unsubscription.CreateManualBlacklist( - operatorId, + userId, normalizedChannelUserIdentity, channelId, channelType, @@ -288,7 +288,7 @@ public async Task AddChannelUserIdentityToBlacklistAsync( localizedReason, DateTimeOffset.UtcNow) : Unsubscription.CreateChannelManualBlacklist( - operatorId, + userId, normalizedChannelUserIdentity, channelId, channelType, From 0edd33ab5a324ea620f36c163493e5ffdbe17bae Mon Sep 17 00:00:00 2001 From: wzh425 Date: Sat, 27 Jun 2026 17:31:15 +0800 Subject: [PATCH 06/16] refactor: streamline unsubscription timeline and enhance detail handling - Removed unnecessary properties from UnsubscriptionTimelineDto and related classes to simplify the data model. - Updated Unsubscription and UnsubscriptionTimeline classes to accept a timeline detail parameter, improving the clarity of unsubscription actions. - Enhanced the UnsubscriptionDomainService to build detailed timeline messages for inbound and outbound actions, ensuring better tracking of user interactions. - Adjusted database context and migrations to reflect the removal of obsolete fields, maintaining a clean schema. --- .../UnsubscriptionTimelineDto.cs | 12 - .../UnsubscriptionTimelineActions.cs | 3 +- .../Aggregates/Unsubscription.cs | 105 +- .../Aggregates/UnsubscriptionTimeline.cs | 26 +- ...SimplifyUnsubscriptionTimeline.Designer.cs | 1461 +++++++++++++++++ ...27084858_SimplifyUnsubscriptionTimeline.cs | 83 + .../Migrations/McDbContextModelSnapshot.cs | 27 +- ...SimplifyUnsubscriptionTimeline.Designer.cs | 1461 +++++++++++++++++ ...27084848_SimplifyUnsubscriptionTimeline.cs | 83 + .../Migrations/MCDbContextModelSnapshot.cs | 27 +- .../McDbContextModelBuilderExtensions.cs | 3 - .../MessageReceiptCommandHandler.cs | 2 - .../UnsubscriptionTimelineQueryModel.cs | 12 - .../UnsubscriptionCommandHandler.cs | 21 +- .../UnsubscriptionQueryHandler.cs | 1 + .../UnsubscriptionTimelineQueryHandler.cs | 8 +- .../Services/UnsubscriptionDomainService.cs | 72 +- 17 files changed, 3225 insertions(+), 182 deletions(-) create mode 100644 src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260627084858_SimplifyUnsubscriptionTimeline.Designer.cs create mode 100644 src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260627084858_SimplifyUnsubscriptionTimeline.cs create mode 100644 src/Infrastructure/Masa.Mc.EntityFrameworkCore.SqlServer/Migrations/20260627084848_SimplifyUnsubscriptionTimeline.Designer.cs create mode 100644 src/Infrastructure/Masa.Mc.EntityFrameworkCore.SqlServer/Migrations/20260627084848_SimplifyUnsubscriptionTimeline.cs diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/UnsubscriptionTimelineDto.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/UnsubscriptionTimelineDto.cs index 364f91a5..38092b9b 100644 --- a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/UnsubscriptionTimelineDto.cs +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/Unsubscriptions/UnsubscriptionTimelineDto.cs @@ -9,19 +9,7 @@ public class UnsubscriptionTimelineDto public UnsubscriptionTimelineActions Action { get; set; } - public UnsubscriptionSource Source { get; set; } - public string Detail { get; set; } = string.Empty; - public string Keyword { get; set; } = string.Empty; - - public string MessageId { get; set; } = string.Empty; - - public Guid? MatchedMessageRecordId { get; set; } - - public string MatchedMessageSnapshot { get; set; } = string.Empty; - - public DateTimeOffset? MatchedMessageSentAt { get; set; } - public DateTimeOffset OccurredAt { get; set; } } diff --git a/src/Domain/Masa.Mc.Domain.Shared/Unsubscriptions/UnsubscriptionTimelineActions.cs b/src/Domain/Masa.Mc.Domain.Shared/Unsubscriptions/UnsubscriptionTimelineActions.cs index 4f586da2..3b8d87a1 100644 --- a/src/Domain/Masa.Mc.Domain.Shared/Unsubscriptions/UnsubscriptionTimelineActions.cs +++ b/src/Domain/Masa.Mc.Domain.Shared/Unsubscriptions/UnsubscriptionTimelineActions.cs @@ -8,5 +8,6 @@ public enum UnsubscriptionTimelineActions InboundUnsubscribed = 1, ManualUnsubscribed, ManualResubscribed, - AutoResubscribed + AutoResubscribed, + OutboundMessageSent } diff --git a/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs b/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs index a3369012..791569b9 100644 --- a/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs +++ b/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs @@ -48,7 +48,8 @@ public static Unsubscription CreateManualBlacklist( UnsubscriptionScopeTypes scopeType, string scopeRefId, string reason, - DateTimeOffset occurredAt) + DateTimeOffset occurredAt, + string timelineDetail = "") { var aggregate = new Unsubscription { @@ -73,9 +74,8 @@ public static Unsubscription CreateManualBlacklist( aggregate.ValidateInvariant(); aggregate.AppendTimeline( UnsubscriptionTimelineActions.ManualUnsubscribed, - UnsubscriptionSource.ManualSupport, occurredAt, - aggregate.Reason); + string.IsNullOrWhiteSpace(timelineDetail) ? aggregate.Reason : timelineDetail); return aggregate; } @@ -86,7 +86,8 @@ public static Unsubscription CreateGlobalManualBlacklist( ChannelTypes channelType, int channelProvider, string reason, - DateTimeOffset occurredAt) + DateTimeOffset occurredAt, + string timelineDetail = "") { return CreateManualBlacklist( userId, @@ -97,7 +98,8 @@ public static Unsubscription CreateGlobalManualBlacklist( UnsubscriptionScopeTypes.Global, string.Empty, reason, - occurredAt); + occurredAt, + timelineDetail); } public static Unsubscription CreateChannelManualBlacklist( @@ -107,7 +109,8 @@ public static Unsubscription CreateChannelManualBlacklist( ChannelTypes channelType, int channelProvider, string reason, - DateTimeOffset occurredAt) + DateTimeOffset occurredAt, + string timelineDetail = "") { return CreateManualBlacklist( userId, @@ -118,7 +121,8 @@ public static Unsubscription CreateChannelManualBlacklist( UnsubscriptionScopeTypes.Channel, string.Empty, reason, - occurredAt); + occurredAt, + timelineDetail); } public static Unsubscription CreateFromSmsInbound( @@ -132,9 +136,9 @@ public static Unsubscription CreateFromSmsInbound( string reason, DateTimeOffset occurredAt, string inboundMessageId, - Guid? matchedMessageRecordId = null, - string matchedMessageSnapshot = "", - DateTimeOffset? matchedMessageSentAt = null) + string timelineDetail = "", + string outboundMessageDetail = "", + DateTimeOffset? outboundMessageSentAt = null) { var aggregate = new Unsubscription { @@ -155,16 +159,11 @@ public static Unsubscription CreateFromSmsInbound( }; aggregate.ValidateInvariant(); + aggregate.AppendOutboundTimelineIfNeeded(outboundMessageDetail, outboundMessageSentAt); aggregate.AppendTimeline( UnsubscriptionTimelineActions.InboundUnsubscribed, - UnsubscriptionSource.SmsInboundKeyword, occurredAt, - aggregate.Reason, - aggregate.Keyword, - aggregate.LastInboundMessageId, - matchedMessageRecordId, - matchedMessageSnapshot, - matchedMessageSentAt); + timelineDetail); aggregate.AddDomainEvent(new UnsubscribedBySmsInboundDomainEvent( aggregate.Id, aggregate.ChannelId, @@ -181,9 +180,9 @@ public bool TryUnsubscribeByInboundKeyword( string reason, DateTimeOffset occurredAt, string inboundMessageId, - Guid? matchedMessageRecordId, - string matchedMessageSnapshot, - DateTimeOffset? matchedMessageSentAt, + string timelineDetail, + string outboundMessageDetail, + DateTimeOffset? outboundMessageSentAt, bool debounceEnabled, int cooldownSeconds) { @@ -208,24 +207,25 @@ public bool TryUnsubscribeByInboundKeyword( occurredAt, normalizedMessageId, reason, - matchedMessageRecordId, - matchedMessageSnapshot, - matchedMessageSentAt); + timelineDetail, + outboundMessageDetail, + outboundMessageSentAt); } public void ResubscribeByInboundKeyword( string keyword, string reason, DateTimeOffset occurredAt, - string inboundMessageId) + string inboundMessageId, + string timelineDetail) { Resubscribe( reason, occurredAt, UnsubscriptionTimelineActions.AutoResubscribed, - UnsubscriptionSource.SmsInboundKeyword, keyword, - inboundMessageId); + inboundMessageId, + timelineDetail); } private bool AppendInboundKeyword( @@ -233,9 +233,9 @@ private bool AppendInboundKeyword( DateTimeOffset occurredAt, string inboundMessageId, string detail = "", - Guid? matchedMessageRecordId = null, - string matchedMessageSnapshot = "", - DateTimeOffset? matchedMessageSentAt = null) + string timelineDetail = "", + string outboundMessageDetail = "", + DateTimeOffset? outboundMessageSentAt = null) { if (Status != UnsubscriptionStatus.Unsubscribed) { @@ -250,16 +250,11 @@ private bool AppendInboundKeyword( Keyword = keyword?.Trim() ?? Keyword; LastInboundMessageId = normalizedMessageId; + AppendOutboundTimelineIfNeeded(outboundMessageDetail, outboundMessageSentAt); AppendTimeline( UnsubscriptionTimelineActions.InboundUnsubscribed, - UnsubscriptionSource.SmsInboundKeyword, occurredAt, - detail, - Keyword, - LastInboundMessageId, - matchedMessageRecordId, - matchedMessageSnapshot, - matchedMessageSentAt); + string.IsNullOrWhiteSpace(timelineDetail) ? detail : timelineDetail); return true; } @@ -267,9 +262,9 @@ public void Resubscribe( string reason, DateTimeOffset occurredAt, UnsubscriptionTimelineActions action = UnsubscriptionTimelineActions.ManualResubscribed, - UnsubscriptionSource source = UnsubscriptionSource.ManualSupport, string keyword = "", - string inboundMessageId = "") + string inboundMessageId = "", + string timelineDetail = "") { if (Status != UnsubscriptionStatus.Unsubscribed) { @@ -298,11 +293,8 @@ public void Resubscribe( AppendTimeline( action, - source, occurredAt, - normalizedReason, - Keyword, - LastInboundMessageId); + string.IsNullOrWhiteSpace(timelineDetail) ? normalizedReason : timelineDetail); } private bool IsInboundMessageDuplicated(string inboundMessageId) @@ -351,25 +343,26 @@ private void ValidateInvariant() private void AppendTimeline( UnsubscriptionTimelineActions action, - UnsubscriptionSource source, DateTimeOffset occurredAt, - string detail = "", - string keyword = "", - string messageId = "", - Guid? matchedMessageRecordId = null, - string matchedMessageSnapshot = "", - DateTimeOffset? matchedMessageSentAt = null) + string detail = "") { Timelines.Add(new UnsubscriptionTimeline( Id, action, - source, occurredAt, - detail, - keyword, - messageId, - matchedMessageRecordId, - matchedMessageSnapshot, - matchedMessageSentAt)); + detail)); + } + + private void AppendOutboundTimelineIfNeeded(string outboundMessageDetail, DateTimeOffset? outboundMessageSentAt) + { + if (string.IsNullOrWhiteSpace(outboundMessageDetail) || !outboundMessageSentAt.HasValue) + { + return; + } + + AppendTimeline( + UnsubscriptionTimelineActions.OutboundMessageSent, + outboundMessageSentAt.Value, + outboundMessageDetail); } } diff --git a/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/UnsubscriptionTimeline.cs b/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/UnsubscriptionTimeline.cs index c0ab7d8f..3ba7d379 100644 --- a/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/UnsubscriptionTimeline.cs +++ b/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/UnsubscriptionTimeline.cs @@ -9,20 +9,8 @@ public class UnsubscriptionTimeline : AuditEntity public UnsubscriptionTimelineActions Action { get; private set; } - public UnsubscriptionSource Source { get; private set; } - public string Detail { get; private set; } = string.Empty; - public string Keyword { get; private set; } = string.Empty; - - public string MessageId { get; private set; } = string.Empty; - - public Guid? MatchedMessageRecordId { get; private set; } - - public string MatchedMessageSnapshot { get; private set; } = string.Empty; - - public DateTimeOffset? MatchedMessageSentAt { get; private set; } - public DateTimeOffset OccurredAt { get; private set; } private UnsubscriptionTimeline() @@ -32,24 +20,12 @@ private UnsubscriptionTimeline() public UnsubscriptionTimeline( Guid unsubscriptionId, UnsubscriptionTimelineActions action, - UnsubscriptionSource source, DateTimeOffset occurredAt, - string detail = "", - string keyword = "", - string messageId = "", - Guid? matchedMessageRecordId = null, - string matchedMessageSnapshot = "", - DateTimeOffset? matchedMessageSentAt = null) + string detail = "") { UnsubscriptionId = unsubscriptionId; Action = action; - Source = source; OccurredAt = occurredAt; Detail = detail ?? string.Empty; - Keyword = keyword ?? string.Empty; - MessageId = messageId ?? string.Empty; - MatchedMessageRecordId = matchedMessageRecordId; - MatchedMessageSnapshot = matchedMessageSnapshot ?? string.Empty; - MatchedMessageSentAt = matchedMessageSentAt; } } diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260627084858_SimplifyUnsubscriptionTimeline.Designer.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260627084858_SimplifyUnsubscriptionTimeline.Designer.cs new file mode 100644 index 00000000..d96d7ccc --- /dev/null +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260627084858_SimplifyUnsubscriptionTimeline.Designer.cs @@ -0,0 +1,1461 @@ +// +using System; +using Masa.Mc.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace Masa.Mc.EntityFrameworkCore.PostgreSql.Migrations +{ + [DbContext(typeof(McDbContext))] + [Migration("20260627084858_SimplifyUnsubscriptionTimeline")] + partial class SimplifyUnsubscriptionTimeline + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.7") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("Masa.BuildingBlocks.Dispatcher.IntegrationEvents.Logs.IntegrationEventLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("EventId") + .HasColumnType("uuid"); + + b.Property("EventTypeName") + .IsRequired() + .HasColumnType("text"); + + b.Property("ExpandContent") + .IsRequired() + .HasColumnType("text"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("RowVersion") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(36) + .HasColumnType("character varying(36)") + .HasColumnName("RowVersion"); + + b.Property("State") + .HasColumnType("integer"); + + b.Property("TimesSent") + .HasColumnType("integer"); + + b.Property("TransactionId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex(new[] { "EventId", "RowVersion" }, "IX_EventId_Version"); + + b.HasIndex(new[] { "State", "ModificationTime" }, "IX_State_MTime"); + + b.HasIndex(new[] { "State", "TimesSent", "ModificationTime" }, "IX_State_TimesSent_MTime"); + + b.ToTable("IntegrationEventLog", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Apps.Aggregates.AppDeviceToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DeviceToken") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Platform") + .HasColumnType("integer"); + + b.Property("RegisteredTime") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId", "UserId", "Platform"); + + b.ToTable("AppDeviceTokens", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Apps.Aggregates.AppVendorConfig", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Options") + .IsRequired() + .HasColumnType("text"); + + b.Property("Vendor") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId", "Vendor"); + + b.ToTable("AppVendorConfigs", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.AppChannel", b => + { + b.Property("Id") + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(64) + .HasColumnType("character varying(64)") + .HasColumnName("Code"); + + b.Property("Color") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Color"); + + b.Property("DisplayName") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("DisplayName"); + + b.Property("Provider") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Provider"); + + b.Property("Scheme") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Scheme"); + + b.Property("SchemeField") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("SchemeField"); + + b.Property("Type") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Type"); + + b.HasKey("Id"); + + b.ToTable("Channels", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.Channel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(64) + .HasColumnType("character varying(64)") + .HasColumnName("Code"); + + b.Property("Color") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Color"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("character varying(512)"); + + b.Property("DisplayName") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("DisplayName"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsStatic") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Provider") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Provider"); + + b.Property("Scheme") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Scheme"); + + b.Property("SchemeField") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("SchemeField"); + + b.Property("Type") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Type"); + + b.HasKey("Id"); + + b.HasIndex("Code"); + + b.HasIndex("Type"); + + b.ToTable("Channels", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageInfos.Aggregates.MessageInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Type") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("MessageInfos", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageReceipts.Aggregates.SmsInbound", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AddSerial") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Mobile") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("character varying(32)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Provider") + .HasColumnType("integer"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("SmsContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("character varying(1000)"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Mobile"); + + b.HasIndex("Provider"); + + b.HasIndex("SendTime"); + + b.ToTable("SmsInbounds", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageRecords.Aggregates.MessageRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("ExpectSendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("FailureReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("MessageEntityId") + .HasColumnType("uuid"); + + b.Property("MessageEntityType") + .HasColumnType("integer"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("MessageTaskId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Success") + .HasColumnType("boolean"); + + b.Property("SystemId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("MessageId"); + + b.HasIndex("MessageTaskHistoryId"); + + b.HasIndex("UserId"); + + b.ToTable("MessageRecords", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageReceiverUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("Platform") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("MessageTaskHistoryId", "ChannelUserIdentity", "Platform"); + + b.ToTable("MessageReceiverUsers", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelType") + .HasColumnType("integer"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("EntityId") + .HasColumnType("uuid"); + + b.Property("EntityType") + .HasColumnType("integer"); + + b.Property("ExpectSendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsDraft") + .HasColumnType("boolean"); + + b.Property("IsEnabled") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("ReceiverType") + .HasColumnType("integer"); + + b.Property("Receivers") + .IsRequired() + .HasColumnType("text"); + + b.Property("SchedulerJobId") + .HasColumnType("uuid"); + + b.Property("SelectReceiverType") + .HasColumnType("integer"); + + b.Property("SendRules") + .IsRequired() + .HasColumnType("text"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Sign") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Source") + .HasColumnType("integer"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("SystemId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Source"); + + b.ToTable("MessageTasks", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CompletionTime") + .HasColumnType("timestamp with time zone"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsTest") + .HasColumnType("boolean"); + + b.Property("MessageTaskId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("SchedulerTaskId") + .HasColumnType("uuid"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("TaskHistoryNo") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("WithdrawTime") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.HasIndex("MessageTaskId"); + + b.ToTable("MessageTaskHistorys", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AuditReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("AuditStatus") + .HasColumnType("integer"); + + b.Property("AuditTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Example") + .IsRequired() + .HasColumnType("text"); + + b.Property("InvalidTime") + .HasColumnType("timestamp with time zone"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsStatic") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Options") + .IsRequired() + .HasColumnType("text"); + + b.Property("PerDayLimit") + .HasColumnType("bigint"); + + b.Property("Sign") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("TemplateId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Code"); + + b.ToTable("MessageTemplates", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("character varying(512)"); + + b.Property("DisplayText") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("MappingCode") + .IsRequired() + .HasColumnType("text"); + + b.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("MessageTemplateId"); + + b.HasIndex("Code", "MessageTemplateId"); + + b.ToTable("MessageTemplateItems", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.SmsTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AuditReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("AuditStatus") + .HasColumnType("integer"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("TemplateCode") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateContent") + .IsRequired() + .HasColumnType("text"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.ToTable("SmsTemplates", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.ToTable("ReceiverGroups", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelProvider") + .HasColumnType("integer"); + + b.Property("ChannelType") + .HasColumnType("integer"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Keyword") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("character varying(20)"); + + b.Property("LastInboundMessageId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("character varying(500)"); + + b.Property("ResubscribedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("ScopeRefId") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ScopeType") + .HasColumnType("integer"); + + b.Property("Source") + .HasColumnType("integer"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("UnsubscribedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("ChannelType"); + + b.HasIndex("Status"); + + b.HasIndex("UserId"); + + b.HasIndex("ChannelId", "ChannelUserIdentity", "ScopeType", "ScopeRefId", "Status"); + + b.ToTable("Unsubscriptions", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.UnsubscriptionTimeline", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Action") + .HasColumnType("integer"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Detail") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("character varying(1000)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("OccurredAt") + .HasColumnType("timestamp with time zone"); + + b.Property("UnsubscriptionId") + .HasColumnType("uuid") + .HasColumnName("UnsubscriptionId"); + + b.HasKey("Id"); + + b.HasIndex("OccurredAt"); + + b.HasIndex("UnsubscriptionId"); + + b.ToTable("UnsubscriptionTimelines", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsRead") + .HasColumnType("boolean"); + + b.Property("IsWithdrawn") + .HasColumnType("boolean"); + + b.Property("LinkUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("ReadTime") + .HasColumnType("timestamp with time zone"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("UserId", "ChannelId"); + + b.ToTable("WebsiteMessages", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessageCursor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("UpdateTime") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("WebsiteMessageCursors", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.AppChannel", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.Channel", null) + .WithOne() + .HasForeignKey("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageInfos.Aggregates.MessageInfo", b => + { + b.OwnsOne("Masa.Mc.Domain.MessageInfos.Aggregates.MessageContent", "MessageContent", b1 => + { + b1.Property("MessageInfoId") + .HasColumnType("uuid"); + + b1.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Content"); + + b1.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text") + .HasColumnName("ExtraProperties"); + + b1.Property("IsJump") + .HasMaxLength(128) + .HasColumnType("boolean") + .HasColumnName("IsJump"); + + b1.Property("JumpUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)") + .HasColumnName("JumpUrl"); + + b1.Property("Markdown") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Markdown"); + + b1.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Title"); + + b1.HasKey("MessageInfoId"); + + b1.ToTable("MessageInfos"); + + b1.WithOwner() + .HasForeignKey("MessageInfoId"); + }); + + b.Navigation("MessageContent") + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageRecords.Aggregates.MessageRecord", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageReceiverUser", b => + { + b.HasOne("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", null) + .WithMany("ReceiverUsers") + .HasForeignKey("MessageTaskHistoryId"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId"); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.HasOne("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", "MessageTask") + .WithMany() + .HasForeignKey("MessageTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MessageTask"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.OwnsOne("Masa.Mc.Domain.MessageInfos.Aggregates.MessageContent", "MessageContent", b1 => + { + b1.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b1.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Content"); + + b1.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text") + .HasColumnName("ExtraProperties"); + + b1.Property("IsJump") + .HasMaxLength(128) + .HasColumnType("boolean") + .HasColumnName("IsJump"); + + b1.Property("JumpUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)") + .HasColumnName("JumpUrl"); + + b1.Property("Markdown") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Markdown"); + + b1.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Title"); + + b1.HasKey("MessageTemplateId"); + + b1.ToTable("MessageTemplates"); + + b1.WithOwner() + .HasForeignKey("MessageTemplateId"); + }); + + b.OwnsOne("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateUnsubscribeConfig", "UnsubscribeConfig", b1 => + { + b1.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b1.Property("CooldownSeconds") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasDefaultValue(0) + .HasColumnName("CooldownSeconds"); + + b1.Property("DebounceEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("DebounceEnabled"); + + b1.Property("Enabled") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("Enabled"); + + b1.Property("ResubscribeAutoReply") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(500) + .HasColumnType("character varying(500)") + .HasDefaultValue("") + .HasColumnName("ResubscribeAutoReply"); + + b1.Property("ResubscribeKeyword") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(20) + .HasColumnType("character varying(20)") + .HasDefaultValue("") + .HasColumnName("ResubscribeKeyword"); + + b1.Property("UnsubscribeAutoReply") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(500) + .HasColumnType("character varying(500)") + .HasDefaultValue("") + .HasColumnName("UnsubscribeAutoReply"); + + b1.Property("UnsubscribeKeyword") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(20) + .HasColumnType("character varying(20)") + .HasDefaultValue("") + .HasColumnName("UnsubscribeKeyword"); + + b1.HasKey("MessageTemplateId"); + + b1.ToTable("MessageTemplateUnsubscribeConfigs", (string)null); + + b1.WithOwner() + .HasForeignKey("MessageTemplateId"); + }); + + b.Navigation("MessageContent") + .IsRequired(); + + b.Navigation("UnsubscribeConfig"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => + { + b.HasOne("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", null) + .WithMany("Items") + .HasForeignKey("MessageTemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroup", b => + { + b.OwnsMany("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroupItem", "Items", b1 => + { + b1.Property("GroupId") + .HasColumnType("uuid"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b1.Property("Avatar") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b1.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b1.Property("SubjectId") + .HasColumnType("uuid"); + + b1.Property("Type") + .HasColumnType("integer"); + + b1.HasKey("GroupId", "Id"); + + b1.ToTable("ReceiverGroupItems", (string)null); + + b1.WithOwner() + .HasForeignKey("GroupId"); + }); + + b.Navigation("Items"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.UnsubscriptionTimeline", b => + { + b.HasOne("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", null) + .WithMany("Timelines") + .HasForeignKey("UnsubscriptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessage", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessageTag", "Tags", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b1.Property("ChannelId") + .HasColumnType("uuid"); + + b1.Property("CreationTime") + .ValueGeneratedOnAdd() + .HasColumnType("timestamp with time zone"); + + b1.Property("Tag") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Tag"); + + b1.Property("UserId") + .HasColumnType("uuid"); + + b1.Property("WebsiteMessageId") + .HasColumnType("uuid"); + + b1.HasKey("Id"); + + b1.HasIndex("ChannelId"); + + b1.HasIndex("Tag"); + + b1.HasIndex("UserId"); + + b1.HasIndex("WebsiteMessageId"); + + b1.ToTable("WebsiteMessageTags", (string)null); + + b1.WithOwner() + .HasForeignKey("WebsiteMessageId"); + }); + + b.Navigation("Channel"); + + b.Navigation("Tags"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.Navigation("ReceiverUsers"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", b => + { + b.Navigation("Timelines"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260627084858_SimplifyUnsubscriptionTimeline.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260627084858_SimplifyUnsubscriptionTimeline.cs new file mode 100644 index 00000000..56786141 --- /dev/null +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260627084858_SimplifyUnsubscriptionTimeline.cs @@ -0,0 +1,83 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Masa.Mc.EntityFrameworkCore.PostgreSql.Migrations +{ + public partial class SimplifyUnsubscriptionTimeline : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "Keyword", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropColumn( + name: "MatchedMessageRecordId", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropColumn( + name: "MatchedMessageSentAt", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropColumn( + name: "MatchedMessageSnapshot", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropColumn( + name: "MessageId", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropColumn( + name: "Source", + table: "UnsubscriptionTimelines"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "Keyword", + table: "UnsubscriptionTimelines", + type: "character varying(20)", + maxLength: 20, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "MatchedMessageRecordId", + table: "UnsubscriptionTimelines", + type: "uuid", + nullable: true); + + migrationBuilder.AddColumn( + name: "MatchedMessageSentAt", + table: "UnsubscriptionTimelines", + type: "timestamp with time zone", + nullable: true); + + migrationBuilder.AddColumn( + name: "MatchedMessageSnapshot", + table: "UnsubscriptionTimelines", + type: "character varying(2000)", + maxLength: 2000, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "MessageId", + table: "UnsubscriptionTimelines", + type: "character varying(128)", + maxLength: 128, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "Source", + table: "UnsubscriptionTimelines", + type: "integer", + nullable: false, + defaultValue: 0); + } + } +} diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/McDbContextModelSnapshot.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/McDbContextModelSnapshot.cs index eea00099..5e2875af 100644 --- a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/McDbContextModelSnapshot.cs +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/McDbContextModelSnapshot.cs @@ -990,27 +990,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasMaxLength(1000) .HasColumnType("character varying(1000)"); - b.Property("Keyword") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("character varying(20)"); - - b.Property("MatchedMessageRecordId") - .HasColumnType("uuid"); - - b.Property("MatchedMessageSentAt") - .HasColumnType("timestamp with time zone"); - - b.Property("MatchedMessageSnapshot") - .IsRequired() - .HasMaxLength(2000) - .HasColumnType("character varying(2000)"); - - b.Property("MessageId") - .IsRequired() - .HasMaxLength(128) - .HasColumnType("character varying(128)"); - b.Property("ModificationTime") .HasColumnType("timestamp with time zone"); @@ -1020,9 +999,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("OccurredAt") .HasColumnType("timestamp with time zone"); - b.Property("Source") - .HasColumnType("integer"); - b.Property("UnsubscriptionId") .HasColumnType("uuid") .HasColumnName("UnsubscriptionId"); @@ -1350,8 +1326,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Navigation("MessageContent") .IsRequired(); - b.Navigation("UnsubscribeConfig") - .IsRequired(); + b.Navigation("UnsubscribeConfig"); }); modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.SqlServer/Migrations/20260627084848_SimplifyUnsubscriptionTimeline.Designer.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.SqlServer/Migrations/20260627084848_SimplifyUnsubscriptionTimeline.Designer.cs new file mode 100644 index 00000000..2e8020d4 --- /dev/null +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.SqlServer/Migrations/20260627084848_SimplifyUnsubscriptionTimeline.Designer.cs @@ -0,0 +1,1461 @@ +// +using System; +using Masa.Mc.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace Masa.Mc.EntityFrameworkCore.SqlServer.Migrations +{ + [DbContext(typeof(McDbContext))] + [Migration("20260627084848_SimplifyUnsubscriptionTimeline")] + partial class SimplifyUnsubscriptionTimeline + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.7") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + + modelBuilder.Entity("Masa.BuildingBlocks.Dispatcher.IntegrationEvents.Logs.IntegrationEventLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("EventId") + .HasColumnType("uniqueidentifier"); + + b.Property("EventTypeName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExpandContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("RowVersion") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(36) + .HasColumnType("nvarchar(36)") + .HasColumnName("RowVersion"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TimesSent") + .HasColumnType("int"); + + b.Property("TransactionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex(new[] { "EventId", "RowVersion" }, "IX_EventId_Version"); + + b.HasIndex(new[] { "State", "ModificationTime" }, "IX_State_MTime"); + + b.HasIndex(new[] { "State", "TimesSent", "ModificationTime" }, "IX_State_TimesSent_MTime"); + + b.ToTable("IntegrationEventLog", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Apps.Aggregates.AppDeviceToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ChannelId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("DeviceToken") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("Platform") + .HasColumnType("int"); + + b.Property("RegisteredTime") + .HasColumnType("datetimeoffset"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId", "UserId", "Platform"); + + b.ToTable("AppDeviceTokens", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Apps.Aggregates.AppVendorConfig", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ChannelId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("Options") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Vendor") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId", "Vendor"); + + b.ToTable("AppVendorConfigs", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.AppChannel", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("Code"); + + b.Property("Color") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("Color"); + + b.Property("DisplayName") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("DisplayName"); + + b.Property("Provider") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("int") + .HasColumnName("Provider"); + + b.Property("Scheme") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("Scheme"); + + b.Property("SchemeField") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("SchemeField"); + + b.Property("Type") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("int") + .HasColumnName("Type"); + + b.HasKey("Id"); + + b.ToTable("Channels", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.Channel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("Code"); + + b.Property("Color") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("Color"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("DisplayName") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("DisplayName"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsStatic") + .HasColumnType("bit"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("Provider") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("int") + .HasColumnName("Provider"); + + b.Property("Scheme") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("Scheme"); + + b.Property("SchemeField") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("SchemeField"); + + b.Property("Type") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("int") + .HasColumnName("Type"); + + b.HasKey("Id"); + + b.HasIndex("Code"); + + b.HasIndex("Type"); + + b.ToTable("Channels", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageInfos.Aggregates.MessageInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("MessageInfos", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageReceipts.Aggregates.SmsInbound", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AddSerial") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ChannelId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Mobile") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("Provider") + .HasColumnType("int"); + + b.Property("SendTime") + .HasColumnType("datetimeoffset"); + + b.Property("SmsContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Mobile"); + + b.HasIndex("Provider"); + + b.HasIndex("SendTime"); + + b.ToTable("SmsInbounds", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageRecords.Aggregates.MessageRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ChannelId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ExpectSendTime") + .HasColumnType("datetimeoffset"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FailureReason") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("MessageEntityId") + .HasColumnType("uniqueidentifier"); + + b.Property("MessageEntityType") + .HasColumnType("int"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("MessageTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("SendTime") + .HasColumnType("datetimeoffset"); + + b.Property("Success") + .HasColumnType("bit"); + + b.Property("SystemId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("MessageId"); + + b.HasIndex("MessageTaskHistoryId"); + + b.HasIndex("UserId"); + + b.ToTable("MessageRecords", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageReceiverUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("Platform") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("MessageTaskHistoryId", "ChannelUserIdentity", "Platform"); + + b.ToTable("MessageReceiverUsers", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ChannelId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChannelType") + .HasColumnType("int"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("EntityId") + .HasColumnType("uniqueidentifier"); + + b.Property("EntityType") + .HasColumnType("int"); + + b.Property("ExpectSendTime") + .HasColumnType("datetimeoffset"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDraft") + .HasColumnType("bit"); + + b.Property("IsEnabled") + .HasColumnType("bit"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("ReceiverType") + .HasColumnType("int"); + + b.Property("Receivers") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SchedulerJobId") + .HasColumnType("uniqueidentifier"); + + b.Property("SelectReceiverType") + .HasColumnType("int"); + + b.Property("SendRules") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SendTime") + .HasColumnType("datetimeoffset"); + + b.Property("Sign") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("Source") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("SystemId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Source"); + + b.ToTable("MessageTasks", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CompletionTime") + .HasColumnType("datetimeoffset"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsTest") + .HasColumnType("bit"); + + b.Property("MessageTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("SchedulerTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("SendTime") + .HasColumnType("datetimeoffset"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TaskHistoryNo") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("WithdrawTime") + .HasColumnType("datetimeoffset"); + + b.HasKey("Id"); + + b.HasIndex("MessageTaskId"); + + b.ToTable("MessageTaskHistorys", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AuditReason") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("AuditStatus") + .HasColumnType("int"); + + b.Property("AuditTime") + .HasColumnType("datetimeoffset"); + + b.Property("ChannelId") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("Example") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("InvalidTime") + .HasColumnType("datetimeoffset"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsStatic") + .HasColumnType("bit"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("Options") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PerDayLimit") + .HasColumnType("bigint"); + + b.Property("Sign") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TemplateId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("TemplateType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Code"); + + b.ToTable("MessageTemplates", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("DisplayText") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("MappingCode") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MessageTemplateId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("MessageTemplateId"); + + b.HasIndex("Code", "MessageTemplateId"); + + b.ToTable("MessageTemplateItems", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.SmsTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AuditReason") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("AuditStatus") + .HasColumnType("int"); + + b.Property("ChannelId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("TemplateCode") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("TemplateContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("TemplateType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.ToTable("SmsTemplates", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.ToTable("ReceiverGroups", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ChannelId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChannelProvider") + .HasColumnType("int"); + + b.Property("ChannelType") + .HasColumnType("int"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Keyword") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("LastInboundMessageId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("ResubscribedAt") + .HasColumnType("datetimeoffset"); + + b.Property("ScopeRefId") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ScopeType") + .HasColumnType("int"); + + b.Property("Source") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("UnsubscribedAt") + .HasColumnType("datetimeoffset"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("ChannelType"); + + b.HasIndex("Status"); + + b.HasIndex("UserId"); + + b.HasIndex("ChannelId", "ChannelUserIdentity", "ScopeType", "ScopeRefId", "Status"); + + b.ToTable("Unsubscriptions", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.UnsubscriptionTimeline", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Action") + .HasColumnType("int"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("Detail") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("OccurredAt") + .HasColumnType("datetimeoffset"); + + b.Property("UnsubscriptionId") + .HasColumnType("uniqueidentifier") + .HasColumnName("UnsubscriptionId"); + + b.HasKey("Id"); + + b.HasIndex("OccurredAt"); + + b.HasIndex("UnsubscriptionId"); + + b.ToTable("UnsubscriptionTimelines", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ChannelId") + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsRead") + .HasColumnType("bit"); + + b.Property("IsWithdrawn") + .HasColumnType("bit"); + + b.Property("LinkUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uniqueidentifier"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadTime") + .HasColumnType("datetimeoffset"); + + b.Property("SendTime") + .HasColumnType("datetimeoffset"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("UserId", "ChannelId"); + + b.ToTable("WebsiteMessages", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessageCursor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Creator") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("ModificationTime") + .HasColumnType("datetime2"); + + b.Property("Modifier") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetimeoffset"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("WebsiteMessageCursors", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.AppChannel", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.Channel", null) + .WithOne() + .HasForeignKey("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageInfos.Aggregates.MessageInfo", b => + { + b.OwnsOne("Masa.Mc.Domain.MessageInfos.Aggregates.MessageContent", "MessageContent", b1 => + { + b1.Property("MessageInfoId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("Content"); + + b1.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b1.Property("IsJump") + .HasMaxLength(128) + .HasColumnType("bit") + .HasColumnName("IsJump"); + + b1.Property("JumpUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("JumpUrl"); + + b1.Property("Markdown") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("Markdown"); + + b1.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("Title"); + + b1.HasKey("MessageInfoId"); + + b1.ToTable("MessageInfos"); + + b1.WithOwner() + .HasForeignKey("MessageInfoId"); + }); + + b.Navigation("MessageContent") + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageRecords.Aggregates.MessageRecord", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageReceiverUser", b => + { + b.HasOne("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", null) + .WithMany("ReceiverUsers") + .HasForeignKey("MessageTaskHistoryId"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId"); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.HasOne("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", "MessageTask") + .WithMany() + .HasForeignKey("MessageTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MessageTask"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.OwnsOne("Masa.Mc.Domain.MessageInfos.Aggregates.MessageContent", "MessageContent", b1 => + { + b1.Property("MessageTemplateId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("Content"); + + b1.Property("ExtraProperties") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b1.Property("IsJump") + .HasMaxLength(128) + .HasColumnType("bit") + .HasColumnName("IsJump"); + + b1.Property("JumpUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("JumpUrl"); + + b1.Property("Markdown") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasColumnName("Markdown"); + + b1.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("Title"); + + b1.HasKey("MessageTemplateId"); + + b1.ToTable("MessageTemplates"); + + b1.WithOwner() + .HasForeignKey("MessageTemplateId"); + }); + + b.OwnsOne("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateUnsubscribeConfig", "UnsubscribeConfig", b1 => + { + b1.Property("MessageTemplateId") + .HasColumnType("uniqueidentifier"); + + b1.Property("CooldownSeconds") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasColumnName("CooldownSeconds"); + + b1.Property("DebounceEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("DebounceEnabled"); + + b1.Property("Enabled") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("Enabled"); + + b1.Property("ResubscribeAutoReply") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)") + .HasDefaultValue("") + .HasColumnName("ResubscribeAutoReply"); + + b1.Property("ResubscribeKeyword") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)") + .HasDefaultValue("") + .HasColumnName("ResubscribeKeyword"); + + b1.Property("UnsubscribeAutoReply") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)") + .HasDefaultValue("") + .HasColumnName("UnsubscribeAutoReply"); + + b1.Property("UnsubscribeKeyword") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)") + .HasDefaultValue("") + .HasColumnName("UnsubscribeKeyword"); + + b1.HasKey("MessageTemplateId"); + + b1.ToTable("MessageTemplateUnsubscribeConfigs", (string)null); + + b1.WithOwner() + .HasForeignKey("MessageTemplateId"); + }); + + b.Navigation("MessageContent") + .IsRequired(); + + b.Navigation("UnsubscribeConfig"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => + { + b.HasOne("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", null) + .WithMany("Items") + .HasForeignKey("MessageTemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroup", b => + { + b.OwnsMany("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroupItem", "Items", b1 => + { + b1.Property("GroupId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b1.Property("Avatar") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b1.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b1.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Type") + .HasColumnType("int"); + + b1.HasKey("GroupId", "Id"); + + b1.ToTable("ReceiverGroupItems", (string)null); + + b1.WithOwner() + .HasForeignKey("GroupId"); + }); + + b.Navigation("Items"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.UnsubscriptionTimeline", b => + { + b.HasOne("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", null) + .WithMany("Timelines") + .HasForeignKey("UnsubscriptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessage", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessageTag", "Tags", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b1.Property("ChannelId") + .HasColumnType("uniqueidentifier"); + + b1.Property("CreationTime") + .ValueGeneratedOnAdd() + .HasColumnType("datetime2"); + + b1.Property("Tag") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("Tag"); + + b1.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b1.Property("WebsiteMessageId") + .HasColumnType("uniqueidentifier"); + + b1.HasKey("Id"); + + b1.HasIndex("ChannelId"); + + b1.HasIndex("Tag"); + + b1.HasIndex("UserId"); + + b1.HasIndex("WebsiteMessageId"); + + b1.ToTable("WebsiteMessageTags", (string)null); + + b1.WithOwner() + .HasForeignKey("WebsiteMessageId"); + }); + + b.Navigation("Channel"); + + b.Navigation("Tags"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.Navigation("ReceiverUsers"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", b => + { + b.Navigation("Timelines"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.SqlServer/Migrations/20260627084848_SimplifyUnsubscriptionTimeline.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.SqlServer/Migrations/20260627084848_SimplifyUnsubscriptionTimeline.cs new file mode 100644 index 00000000..a870ee47 --- /dev/null +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.SqlServer/Migrations/20260627084848_SimplifyUnsubscriptionTimeline.cs @@ -0,0 +1,83 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Masa.Mc.EntityFrameworkCore.SqlServer.Migrations +{ + public partial class SimplifyUnsubscriptionTimeline : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "Keyword", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropColumn( + name: "MatchedMessageRecordId", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropColumn( + name: "MatchedMessageSentAt", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropColumn( + name: "MatchedMessageSnapshot", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropColumn( + name: "MessageId", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropColumn( + name: "Source", + table: "UnsubscriptionTimelines"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "Keyword", + table: "UnsubscriptionTimelines", + type: "nvarchar(20)", + maxLength: 20, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "MatchedMessageRecordId", + table: "UnsubscriptionTimelines", + type: "uniqueidentifier", + nullable: true); + + migrationBuilder.AddColumn( + name: "MatchedMessageSentAt", + table: "UnsubscriptionTimelines", + type: "datetimeoffset", + nullable: true); + + migrationBuilder.AddColumn( + name: "MatchedMessageSnapshot", + table: "UnsubscriptionTimelines", + type: "nvarchar(2000)", + maxLength: 2000, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "MessageId", + table: "UnsubscriptionTimelines", + type: "nvarchar(128)", + maxLength: 128, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "Source", + table: "UnsubscriptionTimelines", + type: "int", + nullable: false, + defaultValue: 0); + } + } +} diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.SqlServer/Migrations/MCDbContextModelSnapshot.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.SqlServer/Migrations/MCDbContextModelSnapshot.cs index 729c0c47..709472fd 100644 --- a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.SqlServer/Migrations/MCDbContextModelSnapshot.cs +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.SqlServer/Migrations/MCDbContextModelSnapshot.cs @@ -990,27 +990,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasMaxLength(1000) .HasColumnType("nvarchar(1000)"); - b.Property("Keyword") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("nvarchar(20)"); - - b.Property("MatchedMessageRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("MatchedMessageSentAt") - .HasColumnType("datetimeoffset"); - - b.Property("MatchedMessageSnapshot") - .IsRequired() - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("MessageId") - .IsRequired() - .HasMaxLength(128) - .HasColumnType("nvarchar(128)"); - b.Property("ModificationTime") .HasColumnType("datetime2"); @@ -1020,9 +999,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("OccurredAt") .HasColumnType("datetimeoffset"); - b.Property("Source") - .HasColumnType("int"); - b.Property("UnsubscriptionId") .HasColumnType("uniqueidentifier") .HasColumnName("UnsubscriptionId"); @@ -1350,8 +1326,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Navigation("MessageContent") .IsRequired(); - b.Navigation("UnsubscribeConfig") - .IsRequired(); + b.Navigation("UnsubscribeConfig"); }); modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs index fb2305c0..075c640d 100644 --- a/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs @@ -227,9 +227,6 @@ public static void ConfigureMC(this ModelBuilder builder) b.ToTable(MCConsts.DbTablePrefix + "UnsubscriptionTimelines", MCConsts.DbSchema); b.Property(x => x.UnsubscriptionId).HasColumnName("UnsubscriptionId"); b.Property(x => x.Detail).HasMaxLength(1000); - b.Property(x => x.Keyword).HasMaxLength(20); - b.Property(x => x.MessageId).HasMaxLength(128); - b.Property(x => x.MatchedMessageSnapshot).HasMaxLength(2000); b.HasIndex(x => x.UnsubscriptionId); b.HasIndex(x => x.OccurredAt); }); diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs index 0f82b4a2..96e3ed8f 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs @@ -245,7 +245,6 @@ await _channelUnsubscriptionDomainService.HandleSmsInboundProviderReservedUnsubs inboundKeyword, sendTime, inboundEntity.Id.ToString("N"), - lastMessageRecord.Id, string.Empty, lastMessageRecord.SendTime, cancellationToken); @@ -285,7 +284,6 @@ private async Task TryHandleTemplateLevelInboundUnsubscriptionAsync( inboundKeyword, sendTime, inboundEntity.Id.ToString("N"), - lastTemplateRecord.Id, matchedMessageSnapshot, lastTemplateRecord.SendTime, unsubscribeConfig.DebounceEnabled, diff --git a/src/Services/Masa.Mc.Service/Application/QueryModels/UnsubscriptionTimelineQueryModel.cs b/src/Services/Masa.Mc.Service/Application/QueryModels/UnsubscriptionTimelineQueryModel.cs index d18623c9..a3a032b4 100644 --- a/src/Services/Masa.Mc.Service/Application/QueryModels/UnsubscriptionTimelineQueryModel.cs +++ b/src/Services/Masa.Mc.Service/Application/QueryModels/UnsubscriptionTimelineQueryModel.cs @@ -9,19 +9,7 @@ public class UnsubscriptionTimelineQueryModel : Masa.BuildingBlocks.Ddd.Domain.E public UnsubscriptionTimelineActions Action { get; set; } - public UnsubscriptionSource Source { get; set; } - public string Detail { get; set; } = string.Empty; - public string Keyword { get; set; } = string.Empty; - - public string MessageId { get; set; } = string.Empty; - - public Guid? MatchedMessageRecordId { get; set; } - - public string MatchedMessageSnapshot { get; set; } = string.Empty; - - public DateTimeOffset? MatchedMessageSentAt { get; set; } - public DateTimeOffset OccurredAt { get; set; } } diff --git a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionCommandHandler.cs b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionCommandHandler.cs index 54f83d65..99857667 100644 --- a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionCommandHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionCommandHandler.cs @@ -30,6 +30,7 @@ public async Task AddChannelUserIdentityToBlacklistAsync(AddChannelUserIdentityT { var channel = await ResolveChannelAsync(command.Input.ChannelCode); var templateId = await ResolveTemplateIdAsync(channel.Id, command.Input.TemplateCode); + var operatorName = await ResolveCurrentOperatorDisplayNameAsync(); var channelType = (ChannelTypes)Enum.Parse(typeof(ChannelTypes), channel.Type.Id.ToString()); var (targetUserId, targetChannelUserIdentity) = await ResolveTargetUserAsync( @@ -43,7 +44,8 @@ await _unsubscriptionDomainService.AddChannelUserIdentityToBlacklistAsync( channel.Provider, targetChannelUserIdentity, templateId, - command.Input.Reason); + command.Input.Reason, + operatorName); } [EventHandler] @@ -51,6 +53,7 @@ public async Task RemoveChannelUserIdentityFromBlacklistAsync(RemoveChannelUserI { var channel = await ResolveChannelAsync(command.Input.ChannelCode); var templateId = await ResolveTemplateIdAsync(channel.Id, command.Input.TemplateCode); + var operatorName = await ResolveCurrentOperatorDisplayNameAsync(); var channelType = (ChannelTypes)Enum.Parse(typeof(ChannelTypes), channel.Type.Id.ToString()); await _unsubscriptionDomainService.RemoveChannelUserIdentityFromBlacklistAsync( @@ -60,7 +63,8 @@ await _unsubscriptionDomainService.RemoveChannelUserIdentityFromBlacklistAsync( channel.Provider, command.Input.ChannelUserIdentity, templateId, - command.Input.Reason); + command.Input.Reason, + operatorName); } private async Task ResolveChannelAsync(string channelCode) @@ -160,4 +164,17 @@ private static string ResolveChannelUserIdentityByUser(ChannelTypes channelType, _ => string.Empty }; } + + private async Task ResolveCurrentOperatorDisplayNameAsync() + { + var operatorId = _userContext.GetUserId(); + if (operatorId == Guid.Empty) + { + return "-"; + } + + var users = await _authClient.UserService.GetListByIdsAsync(new[] { operatorId }); + var operatorName = users.FirstOrDefault()?.RealDisplayName?.Trim(); + return string.IsNullOrWhiteSpace(operatorName) ? "-" : operatorName; + } } diff --git a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionQueryHandler.cs b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionQueryHandler.cs index 409732af..93b90dd9 100644 --- a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionQueryHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionQueryHandler.cs @@ -251,4 +251,5 @@ private async Task FillUserDisplayNamesAsync(List dtos) } } } + } diff --git a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionTimelineQueryHandler.cs b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionTimelineQueryHandler.cs index e761fbf4..23756044 100644 --- a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionTimelineQueryHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionTimelineQueryHandler.cs @@ -33,10 +33,10 @@ on timeline.UnsubscriptionId equals unsubscription.Id ChannelId = unsubscription.ChannelId, ScopeType = unsubscription.ScopeType, ScopeRefId = unsubscription.ScopeRefId, - Source = timeline.Source, + Source = unsubscription.Source, Action = timeline.Action, Status = unsubscription.Status, - Keyword = timeline.Keyword, + Keyword = unsubscription.Keyword, Detail = timeline.Detail, OccurredAt = timeline.OccurredAt, Operator = timeline.Creator == Guid.Empty ? unsubscription.Modifier : timeline.Creator @@ -77,14 +77,14 @@ private static Expression> CreateUnsubscrip condition = condition.And(input.UserId.HasValue, x => x.UserId == input.UserId); condition = condition.And(!string.IsNullOrWhiteSpace(input.ChannelUserIdentity), x => x.ChannelUserIdentity.Contains(input.ChannelUserIdentity)); condition = condition.And(!string.IsNullOrWhiteSpace(input.ScopeRefId), x => x.ScopeRefId == input.ScopeRefId); + condition = condition.And(!string.IsNullOrWhiteSpace(input.Keyword), x => x.Keyword.Contains(input.Keyword)); + condition = condition.And(input.Source.HasValue, x => x.Source == input.Source); return condition; } private static Expression> CreateTimelinePredicate(GetUnsubscriptionHistoryInputDto input) { Expression> condition = _ => true; - condition = condition.And(!string.IsNullOrWhiteSpace(input.Keyword), x => x.Keyword.Contains(input.Keyword)); - condition = condition.And(input.Source.HasValue, x => x.Source == input.Source); condition = condition.And(input.StartTime.HasValue, x => x.OccurredAt >= input.StartTime); condition = condition.And(input.EndTime.HasValue, x => x.OccurredAt <= input.EndTime); condition = condition.And(input.Action.HasValue, x => x.Action == input.Action); diff --git a/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs b/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs index ffb7835f..efc5f995 100644 --- a/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs +++ b/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs @@ -27,7 +27,6 @@ public async Task HandleSmsInboundKeywordAsync( string keyword, DateTimeOffset occurredAt, string inboundMessageId, - Guid? matchedMessageRecordId, string matchedMessageSnapshot, DateTimeOffset? matchedMessageSentAt, bool debounceEnabled, @@ -46,7 +45,6 @@ public async Task HandleSmsInboundKeywordAsync( keyword, occurredAt, inboundMessageId, - matchedMessageRecordId, matchedMessageSnapshot, matchedMessageSentAt, debounceEnabled, @@ -79,7 +77,6 @@ public async Task HandleSmsInboundProviderReservedUnsubscribeAsync( string keyword, DateTimeOffset occurredAt, string inboundMessageId, - Guid? matchedMessageRecordId, string matchedMessageSnapshot, DateTimeOffset? matchedMessageSentAt, CancellationToken cancellationToken = default) @@ -94,7 +91,6 @@ public async Task HandleSmsInboundProviderReservedUnsubscribeAsync( keyword, occurredAt, inboundMessageId, - matchedMessageRecordId, matchedMessageSnapshot, matchedMessageSentAt, debounceEnabled: false, @@ -112,7 +108,6 @@ private async Task HandleInboundUnsubscribeAsync( string keyword, DateTimeOffset occurredAt, string inboundMessageId, - Guid? matchedMessageRecordId, string matchedMessageSnapshot, DateTimeOffset? matchedMessageSentAt, bool debounceEnabled, @@ -128,6 +123,8 @@ private async Task HandleInboundUnsubscribeAsync( if (active is null) { + var timelineDetail = BuildInboundTimelineDetail(keyword, UnsubscriptionReasonConstants.INBOUND_UNSUBSCRIBE_REASON); + var outboundMessageDetail = BuildOutboundTimelineDetail(matchedMessageSnapshot); var aggregate = Unsubscription.CreateFromSmsInbound( userId, channelUserIdentity, @@ -139,8 +136,8 @@ private async Task HandleInboundUnsubscribeAsync( LocalizeReason(UnsubscriptionReasonConstants.INBOUND_UNSUBSCRIBE_REASON), occurredAt, inboundMessageId, - matchedMessageRecordId, - matchedMessageSnapshot, + timelineDetail, + outboundMessageDetail, matchedMessageSentAt); await _repository.AddAsync(aggregate, cancellationToken); @@ -152,8 +149,8 @@ private async Task HandleInboundUnsubscribeAsync( LocalizeReason(UnsubscriptionReasonConstants.INBOUND_UNSUBSCRIBE_REASON), occurredAt, inboundMessageId, - matchedMessageRecordId, - matchedMessageSnapshot, + BuildInboundTimelineDetail(keyword, UnsubscriptionReasonConstants.INBOUND_UNSUBSCRIBE_REASON), + BuildOutboundTimelineDetail(matchedMessageSnapshot), matchedMessageSentAt, debounceEnabled, cooldownSeconds); @@ -190,7 +187,8 @@ private async Task HandleInboundResubscribeAsync( keyword, LocalizeReason(UnsubscriptionReasonConstants.INBOUND_RESUBSCRIBE_REASON), occurredAt, - inboundMessageId); + inboundMessageId, + BuildInboundTimelineDetail(keyword, UnsubscriptionReasonConstants.INBOUND_RESUBSCRIBE_REASON)); await _repository.UpdateAsync(active, cancellationToken); return true; @@ -242,6 +240,7 @@ public async Task AddChannelUserIdentityToBlacklistAsync( string channelUserIdentity, Guid? templateId, string reason, + string operatorName, CancellationToken cancellationToken = default) { if (channelId == Guid.Empty) @@ -276,6 +275,7 @@ public async Task AddChannelUserIdentityToBlacklistAsync( var localizedReason = string.IsNullOrWhiteSpace(reason) ? LocalizeReason(UnsubscriptionReasonConstants.MANUAL_BLACKLIST_REASON) : reason; + var timelineDetail = BuildManualUnsubscribedTimelineDetail(operatorName, localizedReason); var aggregate = hasTemplateScope ? Unsubscription.CreateManualBlacklist( userId, @@ -286,7 +286,8 @@ public async Task AddChannelUserIdentityToBlacklistAsync( scopeType, scopeRefId, localizedReason, - DateTimeOffset.UtcNow) + DateTimeOffset.UtcNow, + timelineDetail) : Unsubscription.CreateChannelManualBlacklist( userId, normalizedChannelUserIdentity, @@ -294,7 +295,8 @@ public async Task AddChannelUserIdentityToBlacklistAsync( channelType, channelProvider, localizedReason, - DateTimeOffset.UtcNow); + DateTimeOffset.UtcNow, + timelineDetail); await _repository.AddAsync(aggregate, cancellationToken); } @@ -306,6 +308,7 @@ public async Task RemoveChannelUserIdentityFromBlacklistAsync( string channelUserIdentity, Guid? templateId, string reason, + string operatorName, CancellationToken cancellationToken = default) { if (channelId == Guid.Empty) @@ -340,7 +343,10 @@ public async Task RemoveChannelUserIdentityFromBlacklistAsync( var localizedReason = string.IsNullOrWhiteSpace(reason) ? LocalizeReason(UnsubscriptionReasonConstants.MANUAL_REMOVE_BLACKLIST_REASON) : reason; - active.Resubscribe(localizedReason, DateTimeOffset.UtcNow); + active.Resubscribe( + localizedReason, + DateTimeOffset.UtcNow, + timelineDetail: BuildManualResubscribedTimelineDetail(operatorName, localizedReason)); await _repository.UpdateAsync(active, cancellationToken); } @@ -348,4 +354,44 @@ private string LocalizeReason(string reasonKey) { return _i18n.T(reasonKey); } + + private string BuildInboundTimelineDetail(string keyword, string fallbackReasonKey) + { + var normalizedKeyword = keyword?.Trim(); + if (string.IsNullOrWhiteSpace(normalizedKeyword)) + { + return fallbackReasonKey == UnsubscriptionReasonConstants.INBOUND_RESUBSCRIBE_REASON + ? "收到上行(恢复退订)" + : "收到上行(退订)"; + } + + return $"收到上行“{normalizedKeyword}”"; + } + + private string BuildOutboundTimelineDetail(string messageSnapshot) + { + var normalizedSnapshot = messageSnapshot?.Trim(); + if (string.IsNullOrWhiteSpace(normalizedSnapshot)) + { + return string.Empty; + } + + return $"发送了“{normalizedSnapshot}”"; + } + + private string BuildManualUnsubscribedTimelineDetail(string operatorName, string reason) + { + return $"{NormalizeOperatorName(operatorName)}手动拉黑/ 原因:{reason?.Trim() ?? string.Empty}"; + } + + private string BuildManualResubscribedTimelineDetail(string operatorName, string reason) + { + return $"{NormalizeOperatorName(operatorName)}手动恢复/ 恢复原因: {reason?.Trim() ?? string.Empty}"; + } + + private static string NormalizeOperatorName(string operatorName) + { + var normalized = operatorName?.Trim(); + return string.IsNullOrWhiteSpace(normalized) ? "-" : normalized; + } } From 075e8447893799b785ad8759c74715a31bed731b Mon Sep 17 00:00:00 2001 From: wzh425 Date: Mon, 29 Jun 2026 15:34:20 +0800 Subject: [PATCH 07/16] refactor: simplify unsubscription logic and enhance message template validation - Removed the CooldownSeconds validation from MessageTemplateUpsertDtoValidator and related classes to streamline unsubscription handling. - Updated MessageTemplateUnsubscribeConfig to eliminate unnecessary cooldown checks, improving clarity in unsubscription processes. - Enhanced database context and migrations to reflect changes in unsubscription configuration, ensuring a clean schema. - Introduced a new method in MessageRecordService to retrieve SMS interaction history, improving user engagement tracking. --- .../GetSmsInteractionHistoryInputDto.cs | 11 + .../SmsInteractionHistoryDto.cs | 13 + .../MessageTemplateUpsertDtoValidator.cs | 3 - .../MessageTemplateUnsubscribeConfig.cs | 5 - .../Aggregates/Unsubscription.cs | 29 +- ..._RefactorUnsubscriptionIndexes.Designer.cs | 1462 +++++++++++++++++ ...629063724_RefactorUnsubscriptionIndexes.cs | 169 ++ .../Migrations/McDbContextModelSnapshot.cs | 27 +- .../McDbContextModelBuilderExtensions.cs | 18 +- .../MessageReceiptCommandHandler.cs | 2 - .../MessageRecordQueryHandler.cs | 71 + .../Queries/GetSmsInteractionHistoryQuery.cs | 9 + .../UnsubscriptionQueryHandler.cs | 3 +- .../Services/UnsubscriptionDomainService.cs | 12 +- .../Services/MessageRecordService.cs | 11 + 15 files changed, 1773 insertions(+), 72 deletions(-) create mode 100644 src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageRecords/GetSmsInteractionHistoryInputDto.cs create mode 100644 src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageRecords/SmsInteractionHistoryDto.cs create mode 100644 src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629063724_RefactorUnsubscriptionIndexes.Designer.cs create mode 100644 src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629063724_RefactorUnsubscriptionIndexes.cs create mode 100644 src/Services/Masa.Mc.Service/Application/MessageRecords/Queries/GetSmsInteractionHistoryQuery.cs diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageRecords/GetSmsInteractionHistoryInputDto.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageRecords/GetSmsInteractionHistoryInputDto.cs new file mode 100644 index 00000000..306527ea --- /dev/null +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageRecords/GetSmsInteractionHistoryInputDto.cs @@ -0,0 +1,11 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Contracts.Admin.Dtos.MessageRecords; + +public class GetSmsInteractionHistoryInputDto +{ + public string Mobile { get; set; } = string.Empty; + + public Guid ChannelId { get; set; } +} diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageRecords/SmsInteractionHistoryDto.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageRecords/SmsInteractionHistoryDto.cs new file mode 100644 index 00000000..4df4cd6d --- /dev/null +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageRecords/SmsInteractionHistoryDto.cs @@ -0,0 +1,13 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Contracts.Admin.Dtos.MessageRecords; + +public class SmsInteractionHistoryDto +{ + public DateTimeOffset SendTime { get; set; } + + public string Content { get; set; } = string.Empty; + + public bool IsInbound { get; set; } +} diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs index a2312f28..cc10b747 100644 --- a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs @@ -36,9 +36,6 @@ public MessageTemplateUpsertDtoValidator() RuleFor(inputDto => inputDto.UnsubscribeConfig.ResubscribeAutoReply).Required("ResubscribeAutoReplyRequired") .Length(1, 500).WithMessage("ResubscribeAutoReplyLength") .When(x => x.UnsubscribeConfig.Enabled); - RuleFor(inputDto => inputDto.UnsubscribeConfig.CooldownSeconds) - .GreaterThan(0).WithMessage("UnsubscribeCooldownSecondsRequired") - .When(x => x.UnsubscribeConfig.Enabled && x.UnsubscribeConfig.DebounceEnabled); RuleFor(inputDto => inputDto).Must(inputDto => !inputDto.UnsubscribeConfig.Enabled || !string.Equals(inputDto.UnsubscribeConfig.UnsubscribeKeyword?.Trim(), inputDto.UnsubscribeConfig.ResubscribeKeyword?.Trim(), StringComparison.OrdinalIgnoreCase)) diff --git a/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs b/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs index 157e3b51..4092d933 100644 --- a/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs +++ b/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs @@ -146,11 +146,6 @@ private void NormalizeAndValidate() throw new UserFriendlyException(errorCode: MessageTemplateExceptionCodes.UNSUBSCRIBE_KEYWORDS_MUST_BE_DIFFERENT); } - if (DebounceEnabled && CooldownSeconds <= 0) - { - throw new UserFriendlyException(errorCode: MessageTemplateExceptionCodes.UNSUBSCRIBE_COOLDOWN_SECONDS_REQUIRED); - } - if (!DebounceEnabled) { CooldownSeconds = 0; diff --git a/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs b/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs index 791569b9..b4e82f29 100644 --- a/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs +++ b/src/Domain/Masa.Mc.Domain/Unsubscriptions/Aggregates/Unsubscription.cs @@ -182,9 +182,7 @@ public bool TryUnsubscribeByInboundKeyword( string inboundMessageId, string timelineDetail, string outboundMessageDetail, - DateTimeOffset? outboundMessageSentAt, - bool debounceEnabled, - int cooldownSeconds) + DateTimeOffset? outboundMessageSentAt) { if (Status != UnsubscriptionStatus.Unsubscribed) { @@ -197,11 +195,6 @@ public bool TryUnsubscribeByInboundKeyword( return false; } - if (IsInInboundDebounceWindow(occurredAt, debounceEnabled, cooldownSeconds)) - { - return false; - } - return AppendInboundKeyword( keyword, occurredAt, @@ -303,26 +296,6 @@ private bool IsInboundMessageDuplicated(string inboundMessageId) string.Equals(LastInboundMessageId, inboundMessageId, StringComparison.Ordinal); } - private bool IsInInboundDebounceWindow(DateTimeOffset occurredAt, bool debounceEnabled, int cooldownSeconds) - { - if (!debounceEnabled || cooldownSeconds <= 0) - { - return false; - } - - var lastInboundUnsubscribeOccurredAt = Timelines - .Where(x => x.Action == UnsubscriptionTimelineActions.InboundUnsubscribed) - .OrderByDescending(x => x.OccurredAt) - .Select(x => x.OccurredAt) - .FirstOrDefault(); - if (lastInboundUnsubscribeOccurredAt == default) - { - return false; - } - - return occurredAt < lastInboundUnsubscribeOccurredAt.AddSeconds(cooldownSeconds); - } - private void ValidateInvariant() { if (string.IsNullOrWhiteSpace(ChannelUserIdentity)) diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629063724_RefactorUnsubscriptionIndexes.Designer.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629063724_RefactorUnsubscriptionIndexes.Designer.cs new file mode 100644 index 00000000..b39b156b --- /dev/null +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629063724_RefactorUnsubscriptionIndexes.Designer.cs @@ -0,0 +1,1462 @@ +// +using System; +using Masa.Mc.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace Masa.Mc.EntityFrameworkCore.PostgreSql.Migrations +{ + [DbContext(typeof(McDbContext))] + [Migration("20260629063724_RefactorUnsubscriptionIndexes")] + partial class RefactorUnsubscriptionIndexes + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.7") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("Masa.BuildingBlocks.Dispatcher.IntegrationEvents.Logs.IntegrationEventLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("EventId") + .HasColumnType("uuid"); + + b.Property("EventTypeName") + .IsRequired() + .HasColumnType("text"); + + b.Property("ExpandContent") + .IsRequired() + .HasColumnType("text"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("RowVersion") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(36) + .HasColumnType("character varying(36)") + .HasColumnName("RowVersion"); + + b.Property("State") + .HasColumnType("integer"); + + b.Property("TimesSent") + .HasColumnType("integer"); + + b.Property("TransactionId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex(new[] { "EventId", "RowVersion" }, "IX_EventId_Version"); + + b.HasIndex(new[] { "State", "ModificationTime" }, "IX_State_MTime"); + + b.HasIndex(new[] { "State", "TimesSent", "ModificationTime" }, "IX_State_TimesSent_MTime"); + + b.ToTable("IntegrationEventLog", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Apps.Aggregates.AppDeviceToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DeviceToken") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Platform") + .HasColumnType("integer"); + + b.Property("RegisteredTime") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId", "UserId", "Platform"); + + b.ToTable("AppDeviceTokens", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Apps.Aggregates.AppVendorConfig", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Options") + .IsRequired() + .HasColumnType("text"); + + b.Property("Vendor") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId", "Vendor"); + + b.ToTable("AppVendorConfigs", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.AppChannel", b => + { + b.Property("Id") + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(64) + .HasColumnType("character varying(64)") + .HasColumnName("Code"); + + b.Property("Color") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Color"); + + b.Property("DisplayName") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("DisplayName"); + + b.Property("Provider") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Provider"); + + b.Property("Scheme") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Scheme"); + + b.Property("SchemeField") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("SchemeField"); + + b.Property("Type") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Type"); + + b.HasKey("Id"); + + b.ToTable("Channels", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.Channel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(64) + .HasColumnType("character varying(64)") + .HasColumnName("Code"); + + b.Property("Color") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Color"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("character varying(512)"); + + b.Property("DisplayName") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("DisplayName"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsStatic") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Provider") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Provider"); + + b.Property("Scheme") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Scheme"); + + b.Property("SchemeField") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("SchemeField"); + + b.Property("Type") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Type"); + + b.HasKey("Id"); + + b.HasIndex("Code"); + + b.HasIndex("Type"); + + b.ToTable("Channels", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageInfos.Aggregates.MessageInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Type") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("MessageInfos", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageReceipts.Aggregates.SmsInbound", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AddSerial") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Mobile") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("character varying(32)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Provider") + .HasColumnType("integer"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("SmsContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("character varying(1000)"); + + b.HasKey("Id"); + + b.HasIndex("Provider"); + + b.HasIndex("SendTime"); + + b.HasIndex("ChannelId", "SendTime"); + + b.HasIndex("Mobile", "SendTime"); + + b.ToTable("SmsInbounds", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageRecords.Aggregates.MessageRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("ExpectSendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("FailureReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("MessageEntityId") + .HasColumnType("uuid"); + + b.Property("MessageEntityType") + .HasColumnType("integer"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("MessageTaskId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Success") + .HasColumnType("boolean"); + + b.Property("SystemId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("MessageId"); + + b.HasIndex("MessageTaskHistoryId"); + + b.HasIndex("UserId"); + + b.ToTable("MessageRecords", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageReceiverUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("Platform") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("MessageTaskHistoryId", "ChannelUserIdentity", "Platform"); + + b.ToTable("MessageReceiverUsers", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelType") + .HasColumnType("integer"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("EntityId") + .HasColumnType("uuid"); + + b.Property("EntityType") + .HasColumnType("integer"); + + b.Property("ExpectSendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsDraft") + .HasColumnType("boolean"); + + b.Property("IsEnabled") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("ReceiverType") + .HasColumnType("integer"); + + b.Property("Receivers") + .IsRequired() + .HasColumnType("text"); + + b.Property("SchedulerJobId") + .HasColumnType("uuid"); + + b.Property("SelectReceiverType") + .HasColumnType("integer"); + + b.Property("SendRules") + .IsRequired() + .HasColumnType("text"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Sign") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Source") + .HasColumnType("integer"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("SystemId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Source"); + + b.ToTable("MessageTasks", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CompletionTime") + .HasColumnType("timestamp with time zone"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsTest") + .HasColumnType("boolean"); + + b.Property("MessageTaskId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("SchedulerTaskId") + .HasColumnType("uuid"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("TaskHistoryNo") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("WithdrawTime") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.HasIndex("MessageTaskId"); + + b.ToTable("MessageTaskHistorys", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AuditReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("AuditStatus") + .HasColumnType("integer"); + + b.Property("AuditTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Example") + .IsRequired() + .HasColumnType("text"); + + b.Property("InvalidTime") + .HasColumnType("timestamp with time zone"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsStatic") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Options") + .IsRequired() + .HasColumnType("text"); + + b.Property("PerDayLimit") + .HasColumnType("bigint"); + + b.Property("Sign") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("TemplateId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Code"); + + b.ToTable("MessageTemplates", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("character varying(512)"); + + b.Property("DisplayText") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("MappingCode") + .IsRequired() + .HasColumnType("text"); + + b.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("MessageTemplateId"); + + b.HasIndex("Code", "MessageTemplateId"); + + b.ToTable("MessageTemplateItems", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.SmsTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AuditReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("AuditStatus") + .HasColumnType("integer"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("TemplateCode") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateContent") + .IsRequired() + .HasColumnType("text"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.ToTable("SmsTemplates", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.ToTable("ReceiverGroups", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelProvider") + .HasColumnType("integer"); + + b.Property("ChannelType") + .HasColumnType("integer"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Keyword") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("character varying(20)"); + + b.Property("LastInboundMessageId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("character varying(500)"); + + b.Property("ResubscribedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("ScopeRefId") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ScopeType") + .HasColumnType("integer"); + + b.Property("Source") + .HasColumnType("integer"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("UnsubscribedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("LastInboundMessageId"); + + b.HasIndex("UserId"); + + b.HasIndex("ChannelType", "ChannelProvider", "UnsubscribedAt"); + + b.HasIndex("ChannelUserIdentity", "Status", "ScopeType"); + + b.HasIndex("ChannelId", "ChannelUserIdentity", "Status", "UnsubscribedAt"); + + b.HasIndex("ChannelId", "ChannelUserIdentity", "ScopeType", "ScopeRefId", "Status", "UnsubscribedAt"); + + b.ToTable("Unsubscriptions", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.UnsubscriptionTimeline", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Action") + .HasColumnType("integer"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Detail") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("character varying(1000)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("OccurredAt") + .HasColumnType("timestamp with time zone"); + + b.Property("UnsubscriptionId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("UnsubscriptionId", "OccurredAt"); + + b.HasIndex("OccurredAt", "Action", "UnsubscriptionId"); + + b.ToTable("UnsubscriptionTimelines", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsRead") + .HasColumnType("boolean"); + + b.Property("IsWithdrawn") + .HasColumnType("boolean"); + + b.Property("LinkUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("ReadTime") + .HasColumnType("timestamp with time zone"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("UserId", "ChannelId"); + + b.ToTable("WebsiteMessages", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessageCursor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("UpdateTime") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("WebsiteMessageCursors", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.AppChannel", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.Channel", null) + .WithOne() + .HasForeignKey("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageInfos.Aggregates.MessageInfo", b => + { + b.OwnsOne("Masa.Mc.Domain.MessageInfos.Aggregates.MessageContent", "MessageContent", b1 => + { + b1.Property("MessageInfoId") + .HasColumnType("uuid"); + + b1.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Content"); + + b1.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text") + .HasColumnName("ExtraProperties"); + + b1.Property("IsJump") + .HasMaxLength(128) + .HasColumnType("boolean") + .HasColumnName("IsJump"); + + b1.Property("JumpUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)") + .HasColumnName("JumpUrl"); + + b1.Property("Markdown") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Markdown"); + + b1.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Title"); + + b1.HasKey("MessageInfoId"); + + b1.ToTable("MessageInfos"); + + b1.WithOwner() + .HasForeignKey("MessageInfoId"); + }); + + b.Navigation("MessageContent") + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageRecords.Aggregates.MessageRecord", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageReceiverUser", b => + { + b.HasOne("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", null) + .WithMany("ReceiverUsers") + .HasForeignKey("MessageTaskHistoryId"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId"); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.HasOne("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", "MessageTask") + .WithMany() + .HasForeignKey("MessageTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MessageTask"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.OwnsOne("Masa.Mc.Domain.MessageInfos.Aggregates.MessageContent", "MessageContent", b1 => + { + b1.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b1.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Content"); + + b1.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text") + .HasColumnName("ExtraProperties"); + + b1.Property("IsJump") + .HasMaxLength(128) + .HasColumnType("boolean") + .HasColumnName("IsJump"); + + b1.Property("JumpUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)") + .HasColumnName("JumpUrl"); + + b1.Property("Markdown") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Markdown"); + + b1.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Title"); + + b1.HasKey("MessageTemplateId"); + + b1.ToTable("MessageTemplates"); + + b1.WithOwner() + .HasForeignKey("MessageTemplateId"); + }); + + b.OwnsOne("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateUnsubscribeConfig", "UnsubscribeConfig", b1 => + { + b1.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b1.Property("CooldownSeconds") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasDefaultValue(0) + .HasColumnName("CooldownSeconds"); + + b1.Property("DebounceEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("DebounceEnabled"); + + b1.Property("Enabled") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("Enabled"); + + b1.Property("ResubscribeAutoReply") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(500) + .HasColumnType("character varying(500)") + .HasDefaultValue("") + .HasColumnName("ResubscribeAutoReply"); + + b1.Property("ResubscribeKeyword") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(20) + .HasColumnType("character varying(20)") + .HasDefaultValue("") + .HasColumnName("ResubscribeKeyword"); + + b1.Property("UnsubscribeAutoReply") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(500) + .HasColumnType("character varying(500)") + .HasDefaultValue("") + .HasColumnName("UnsubscribeAutoReply"); + + b1.Property("UnsubscribeKeyword") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(20) + .HasColumnType("character varying(20)") + .HasDefaultValue("") + .HasColumnName("UnsubscribeKeyword"); + + b1.HasKey("MessageTemplateId"); + + b1.ToTable("MessageTemplateUnsubscribeConfigs", (string)null); + + b1.WithOwner() + .HasForeignKey("MessageTemplateId"); + }); + + b.Navigation("MessageContent") + .IsRequired(); + + b.Navigation("UnsubscribeConfig"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => + { + b.HasOne("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", null) + .WithMany("Items") + .HasForeignKey("MessageTemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroup", b => + { + b.OwnsMany("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroupItem", "Items", b1 => + { + b1.Property("GroupId") + .HasColumnType("uuid"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b1.Property("Avatar") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b1.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b1.Property("SubjectId") + .HasColumnType("uuid"); + + b1.Property("Type") + .HasColumnType("integer"); + + b1.HasKey("GroupId", "Id"); + + b1.ToTable("ReceiverGroupItems", (string)null); + + b1.WithOwner() + .HasForeignKey("GroupId"); + }); + + b.Navigation("Items"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.UnsubscriptionTimeline", b => + { + b.HasOne("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", null) + .WithMany("Timelines") + .HasForeignKey("UnsubscriptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessage", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessageTag", "Tags", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b1.Property("ChannelId") + .HasColumnType("uuid"); + + b1.Property("CreationTime") + .ValueGeneratedOnAdd() + .HasColumnType("timestamp with time zone"); + + b1.Property("Tag") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Tag"); + + b1.Property("UserId") + .HasColumnType("uuid"); + + b1.Property("WebsiteMessageId") + .HasColumnType("uuid"); + + b1.HasKey("Id"); + + b1.HasIndex("ChannelId"); + + b1.HasIndex("Tag"); + + b1.HasIndex("UserId"); + + b1.HasIndex("WebsiteMessageId"); + + b1.ToTable("WebsiteMessageTags", (string)null); + + b1.WithOwner() + .HasForeignKey("WebsiteMessageId"); + }); + + b.Navigation("Channel"); + + b.Navigation("Tags"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.Navigation("ReceiverUsers"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", b => + { + b.Navigation("Timelines"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629063724_RefactorUnsubscriptionIndexes.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629063724_RefactorUnsubscriptionIndexes.cs new file mode 100644 index 00000000..f1257752 --- /dev/null +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629063724_RefactorUnsubscriptionIndexes.cs @@ -0,0 +1,169 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Masa.Mc.EntityFrameworkCore.PostgreSql.Migrations +{ + public partial class RefactorUnsubscriptionIndexes : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropIndex( + name: "IX_UnsubscriptionTimelines_OccurredAt", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropIndex( + name: "IX_UnsubscriptionTimelines_UnsubscriptionId", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropIndex( + name: "IX_Unsubscriptions_ChannelId", + table: "Unsubscriptions"); + + // The legacy migration created this index with a shorter truncated name ("...ScopeT~") + // while newer EF name generation may produce "...ScopeType_Sco~". Drop both variants safely. + migrationBuilder.Sql("DROP INDEX IF EXISTS \"IX_Unsubscriptions_ChannelId_ChannelUserIdentity_ScopeType_Sco~\";"); + migrationBuilder.Sql("DROP INDEX IF EXISTS \"IX_Unsubscriptions_ChannelId_ChannelUserIdentity_ScopeT~\";"); + + migrationBuilder.DropIndex( + name: "IX_Unsubscriptions_ChannelType", + table: "Unsubscriptions"); + + migrationBuilder.DropIndex( + name: "IX_Unsubscriptions_Status", + table: "Unsubscriptions"); + + migrationBuilder.DropIndex( + name: "IX_SmsInbounds_ChannelId", + table: "SmsInbounds"); + + migrationBuilder.DropIndex( + name: "IX_SmsInbounds_Mobile", + table: "SmsInbounds"); + + migrationBuilder.CreateIndex( + name: "IX_UnsubscriptionTimelines_OccurredAt_Action_UnsubscriptionId", + table: "UnsubscriptionTimelines", + columns: new[] { "OccurredAt", "Action", "UnsubscriptionId" }); + + migrationBuilder.CreateIndex( + name: "IX_UnsubscriptionTimelines_UnsubscriptionId_OccurredAt", + table: "UnsubscriptionTimelines", + columns: new[] { "UnsubscriptionId", "OccurredAt" }); + + migrationBuilder.CreateIndex( + name: "IX_Unsubscriptions_ChannelId_ChannelUserIdentity_ScopeType_Sco~", + table: "Unsubscriptions", + columns: new[] { "ChannelId", "ChannelUserIdentity", "ScopeType", "ScopeRefId", "Status", "UnsubscribedAt" }); + + migrationBuilder.CreateIndex( + name: "IX_Unsubscriptions_ChannelId_ChannelUserIdentity_Status_Unsubs~", + table: "Unsubscriptions", + columns: new[] { "ChannelId", "ChannelUserIdentity", "Status", "UnsubscribedAt" }); + + migrationBuilder.CreateIndex( + name: "IX_Unsubscriptions_ChannelType_ChannelProvider_UnsubscribedAt", + table: "Unsubscriptions", + columns: new[] { "ChannelType", "ChannelProvider", "UnsubscribedAt" }); + + migrationBuilder.CreateIndex( + name: "IX_Unsubscriptions_ChannelUserIdentity_Status_ScopeType", + table: "Unsubscriptions", + columns: new[] { "ChannelUserIdentity", "Status", "ScopeType" }); + + migrationBuilder.CreateIndex( + name: "IX_Unsubscriptions_LastInboundMessageId", + table: "Unsubscriptions", + column: "LastInboundMessageId"); + + migrationBuilder.CreateIndex( + name: "IX_SmsInbounds_ChannelId_SendTime", + table: "SmsInbounds", + columns: new[] { "ChannelId", "SendTime" }); + + migrationBuilder.CreateIndex( + name: "IX_SmsInbounds_Mobile_SendTime", + table: "SmsInbounds", + columns: new[] { "Mobile", "SendTime" }); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropIndex( + name: "IX_UnsubscriptionTimelines_OccurredAt_Action_UnsubscriptionId", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropIndex( + name: "IX_UnsubscriptionTimelines_UnsubscriptionId_OccurredAt", + table: "UnsubscriptionTimelines"); + + migrationBuilder.DropIndex( + name: "IX_Unsubscriptions_ChannelId_ChannelUserIdentity_ScopeType_Sco~", + table: "Unsubscriptions"); + + migrationBuilder.DropIndex( + name: "IX_Unsubscriptions_ChannelId_ChannelUserIdentity_Status_Unsubs~", + table: "Unsubscriptions"); + + migrationBuilder.DropIndex( + name: "IX_Unsubscriptions_ChannelType_ChannelProvider_UnsubscribedAt", + table: "Unsubscriptions"); + + migrationBuilder.DropIndex( + name: "IX_Unsubscriptions_ChannelUserIdentity_Status_ScopeType", + table: "Unsubscriptions"); + + migrationBuilder.DropIndex( + name: "IX_Unsubscriptions_LastInboundMessageId", + table: "Unsubscriptions"); + + migrationBuilder.DropIndex( + name: "IX_SmsInbounds_ChannelId_SendTime", + table: "SmsInbounds"); + + migrationBuilder.DropIndex( + name: "IX_SmsInbounds_Mobile_SendTime", + table: "SmsInbounds"); + + migrationBuilder.CreateIndex( + name: "IX_UnsubscriptionTimelines_OccurredAt", + table: "UnsubscriptionTimelines", + column: "OccurredAt"); + + migrationBuilder.CreateIndex( + name: "IX_UnsubscriptionTimelines_UnsubscriptionId", + table: "UnsubscriptionTimelines", + column: "UnsubscriptionId"); + + migrationBuilder.CreateIndex( + name: "IX_Unsubscriptions_ChannelId", + table: "Unsubscriptions", + column: "ChannelId"); + + migrationBuilder.CreateIndex( + name: "IX_Unsubscriptions_ChannelId_ChannelUserIdentity_ScopeType_Sco~", + table: "Unsubscriptions", + columns: new[] { "ChannelId", "ChannelUserIdentity", "ScopeType", "ScopeRefId", "Status" }); + + migrationBuilder.CreateIndex( + name: "IX_Unsubscriptions_ChannelType", + table: "Unsubscriptions", + column: "ChannelType"); + + migrationBuilder.CreateIndex( + name: "IX_Unsubscriptions_Status", + table: "Unsubscriptions", + column: "Status"); + + migrationBuilder.CreateIndex( + name: "IX_SmsInbounds_ChannelId", + table: "SmsInbounds", + column: "ChannelId"); + + migrationBuilder.CreateIndex( + name: "IX_SmsInbounds_Mobile", + table: "SmsInbounds", + column: "Mobile"); + } + } +} diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/McDbContextModelSnapshot.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/McDbContextModelSnapshot.cs index 5e2875af..5fc72919 100644 --- a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/McDbContextModelSnapshot.cs +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/McDbContextModelSnapshot.cs @@ -381,14 +381,14 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("ChannelId"); - - b.HasIndex("Mobile"); - b.HasIndex("Provider"); b.HasIndex("SendTime"); + b.HasIndex("ChannelId", "SendTime"); + + b.HasIndex("Mobile", "SendTime"); + b.ToTable("SmsInbounds", (string)null); }); @@ -957,15 +957,17 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("ChannelId"); + b.HasIndex("LastInboundMessageId"); - b.HasIndex("ChannelType"); + b.HasIndex("UserId"); - b.HasIndex("Status"); + b.HasIndex("ChannelType", "ChannelProvider", "UnsubscribedAt"); - b.HasIndex("UserId"); + b.HasIndex("ChannelUserIdentity", "Status", "ScopeType"); - b.HasIndex("ChannelId", "ChannelUserIdentity", "ScopeType", "ScopeRefId", "Status"); + b.HasIndex("ChannelId", "ChannelUserIdentity", "Status", "UnsubscribedAt"); + + b.HasIndex("ChannelId", "ChannelUserIdentity", "ScopeType", "ScopeRefId", "Status", "UnsubscribedAt"); b.ToTable("Unsubscriptions", (string)null); }); @@ -1000,14 +1002,13 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasColumnType("timestamp with time zone"); b.Property("UnsubscriptionId") - .HasColumnType("uuid") - .HasColumnName("UnsubscriptionId"); + .HasColumnType("uuid"); b.HasKey("Id"); - b.HasIndex("OccurredAt"); + b.HasIndex("UnsubscriptionId", "OccurredAt"); - b.HasIndex("UnsubscriptionId"); + b.HasIndex("OccurredAt", "Action", "UnsubscriptionId"); b.ToTable("UnsubscriptionTimelines", (string)null); }); diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs index 075c640d..3ea576fc 100644 --- a/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs @@ -198,10 +198,10 @@ public static void ConfigureMC(this ModelBuilder builder) b.Property(x => x.SmsContent).IsRequired().HasMaxLength(1000); b.Property(x => x.AddSerial).HasMaxLength(64); b.Property(x => x.Provider).IsRequired(); - b.HasIndex(x => x.ChannelId); - b.HasIndex(x => x.Mobile); b.HasIndex(x => x.SendTime); b.HasIndex(x => x.Provider); + b.HasIndex(x => new { x.ChannelId, x.SendTime }); + b.HasIndex(x => new { x.Mobile, x.SendTime }); }); builder.Entity(b => @@ -214,10 +214,11 @@ public static void ConfigureMC(this ModelBuilder builder) b.Property(x => x.LastInboundMessageId).HasMaxLength(128); b.HasIndex(x => x.UserId); - b.HasIndex(x => x.ChannelId); - b.HasIndex(x => x.ChannelType); - b.HasIndex(x => x.Status); - b.HasIndex(x => new { x.ChannelId, x.ChannelUserIdentity, x.ScopeType, x.ScopeRefId, x.Status }); + b.HasIndex(x => new { x.ChannelType, x.ChannelProvider, x.UnsubscribedAt }); + b.HasIndex(x => new { x.ChannelId, x.ChannelUserIdentity, x.ScopeType, x.ScopeRefId, x.Status, x.UnsubscribedAt }); + b.HasIndex(x => new { x.ChannelId, x.ChannelUserIdentity, x.Status, x.UnsubscribedAt }); + b.HasIndex(x => new { x.ChannelUserIdentity, x.Status, x.ScopeType }); + b.HasIndex(x => x.LastInboundMessageId); b.HasMany(x => x.Timelines).WithOne().HasForeignKey(x => x.UnsubscriptionId).IsRequired(); }); @@ -225,10 +226,9 @@ public static void ConfigureMC(this ModelBuilder builder) builder.Entity(b => { b.ToTable(MCConsts.DbTablePrefix + "UnsubscriptionTimelines", MCConsts.DbSchema); - b.Property(x => x.UnsubscriptionId).HasColumnName("UnsubscriptionId"); b.Property(x => x.Detail).HasMaxLength(1000); - b.HasIndex(x => x.UnsubscriptionId); - b.HasIndex(x => x.OccurredAt); + b.HasIndex(x => new { x.UnsubscriptionId, x.OccurredAt }); + b.HasIndex(x => new { x.OccurredAt, x.Action, x.UnsubscriptionId }); }); } } diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs index 96e3ed8f..37a9bb9e 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs @@ -286,8 +286,6 @@ private async Task TryHandleTemplateLevelInboundUnsubscriptionAsync( inboundEntity.Id.ToString("N"), matchedMessageSnapshot, lastTemplateRecord.SendTime, - unsubscribeConfig.DebounceEnabled, - unsubscribeConfig.CooldownSeconds, cancellationToken); if (handledAction == SmsInboundKeywordAction.None) { diff --git a/src/Services/Masa.Mc.Service/Application/MessageRecords/MessageRecordQueryHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageRecords/MessageRecordQueryHandler.cs index 7b22d5a7..c9ddf2e8 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageRecords/MessageRecordQueryHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageRecords/MessageRecordQueryHandler.cs @@ -139,6 +139,77 @@ public async Task GetSmsRecordsByMobileAsync(GetSmsRecordsByMobileQuery query) query.Result = new PaginatedListDto(resultList.Total, resultList.TotalPages, items); } + [EventHandler] + public async Task GetSmsInteractionHistoryAsync(GetSmsInteractionHistoryQuery query) + { + var mobile = query.Mobile?.Trim(); + if (string.IsNullOrWhiteSpace(mobile) || query.ChannelId == Guid.Empty) + { + query.Result = new(); + return; + } + + using var dataFilter = _dataFilter.Disable(); + + var startTime = DateTimeOffset.UtcNow.AddMonths(-1); + var outboundRecords = await _context.MessageRecordQueries + .AsNoTracking() + .Where(CreateSmsOutboundRecordPredicate(mobile, query.ChannelId)) + .Where(x => x.SendTime.HasValue && x.SendTime.Value >= startTime) + .Select(x => new + { + x.SendTime, + x.MessageEntityId, + x.Variables, + x.DisplayName + }) + .ToListAsync(); + + var templateIds = outboundRecords + .Select(x => x.MessageEntityId) + .Distinct() + .ToList(); + var templateContents = templateIds.Any() + ? await _context.MessageTemplateQueries + .AsNoTracking() + .Where(x => templateIds.Contains(x.Id)) + .ToDictionaryAsync(x => x.Id, x => x.Content) + : new Dictionary(); + + var outboundItems = outboundRecords + .Where(x => x.SendTime.HasValue) + .Select(x => new SmsInteractionHistoryDto + { + SendTime = x.SendTime!.Value, + Content = ResolveSmsContent( + x.MessageEntityId, + x.Variables, + x.DisplayName, + templateContents), + IsInbound = false + }) + .ToList(); + + var inboundQuery = _context.SmsInboundQueries + .AsNoTracking() + .Where(x => x.Mobile == mobile && x.ChannelId == query.ChannelId && x.SendTime >= startTime); + + var inboundItems = await inboundQuery + .Select(x => new SmsInteractionHistoryDto + { + SendTime = x.SendTime, + Content = x.SmsContent, + IsInbound = true + }) + .ToListAsync(); + + query.Result = inboundItems + .Concat(outboundItems) + .Where(x => !string.IsNullOrWhiteSpace(x.Content)) + .OrderByDescending(x => x.SendTime) + .ToList(); + } + private static Expression> CreateSmsOutboundRecordPredicate( string mobile, Guid? channelId) diff --git a/src/Services/Masa.Mc.Service/Application/MessageRecords/Queries/GetSmsInteractionHistoryQuery.cs b/src/Services/Masa.Mc.Service/Application/MessageRecords/Queries/GetSmsInteractionHistoryQuery.cs new file mode 100644 index 00000000..622d9a7d --- /dev/null +++ b/src/Services/Masa.Mc.Service/Application/MessageRecords/Queries/GetSmsInteractionHistoryQuery.cs @@ -0,0 +1,9 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Service.Admin.Application.MessageRecords.Queries; + +public record GetSmsInteractionHistoryQuery(string Mobile, Guid ChannelId) : Query> +{ + public override List Result { get; set; } = new(); +} diff --git a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionQueryHandler.cs b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionQueryHandler.cs index 93b90dd9..c75d28a1 100644 --- a/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionQueryHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/Unsubscriptions/UnsubscriptionQueryHandler.cs @@ -245,7 +245,8 @@ private async Task FillUserDisplayNamesAsync(List dtos) item.UserDisplayName = userDisplayName; } - if (users.TryGetValue(item.Modifier, out var modifierName)) + var operatorUserId = item.Modifier != Guid.Empty ? item.Modifier : item.UserId; + if (operatorUserId != Guid.Empty && users.TryGetValue(operatorUserId, out var modifierName)) { item.ModifierName = modifierName; } diff --git a/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs b/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs index efc5f995..35503713 100644 --- a/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs +++ b/src/Services/Masa.Mc.Service/Domain/Unsubscriptions/Services/UnsubscriptionDomainService.cs @@ -29,8 +29,6 @@ public async Task HandleSmsInboundKeywordAsync( string inboundMessageId, string matchedMessageSnapshot, DateTimeOffset? matchedMessageSentAt, - bool debounceEnabled, - int cooldownSeconds, CancellationToken cancellationToken = default) { if (action == SmsInboundKeywordAction.Unsubscribe) @@ -47,8 +45,6 @@ public async Task HandleSmsInboundKeywordAsync( inboundMessageId, matchedMessageSnapshot, matchedMessageSentAt, - debounceEnabled, - cooldownSeconds, cancellationToken); return handled ? SmsInboundKeywordAction.Unsubscribe : SmsInboundKeywordAction.None; } @@ -93,8 +89,6 @@ public async Task HandleSmsInboundProviderReservedUnsubscribeAsync( inboundMessageId, matchedMessageSnapshot, matchedMessageSentAt, - debounceEnabled: false, - cooldownSeconds: 0, cancellationToken); } @@ -110,8 +104,6 @@ private async Task HandleInboundUnsubscribeAsync( string inboundMessageId, string matchedMessageSnapshot, DateTimeOffset? matchedMessageSentAt, - bool debounceEnabled, - int cooldownSeconds, CancellationToken cancellationToken = default) { var active = await _repository.FindActiveAsync( @@ -151,9 +143,7 @@ private async Task HandleInboundUnsubscribeAsync( inboundMessageId, BuildInboundTimelineDetail(keyword, UnsubscriptionReasonConstants.INBOUND_UNSUBSCRIBE_REASON), BuildOutboundTimelineDetail(matchedMessageSnapshot), - matchedMessageSentAt, - debounceEnabled, - cooldownSeconds); + matchedMessageSentAt); if (!changed) { return false; diff --git a/src/Services/Masa.Mc.Service/Services/MessageRecordService.cs b/src/Services/Masa.Mc.Service/Services/MessageRecordService.cs index 616c44ed..6d8df5ef 100644 --- a/src/Services/Masa.Mc.Service/Services/MessageRecordService.cs +++ b/src/Services/Masa.Mc.Service/Services/MessageRecordService.cs @@ -48,4 +48,15 @@ public async Task> GetSmsRecordsAsync( await eventBus.PublishAsync(query); return query.Result; } + + [RoutePattern("sms-interaction-history", StartWithBaseUri = true, HttpMethod = "Get")] + public async Task> GetSmsInteractionHistoryAsync( + IEventBus eventBus, + [FromQuery] string mobile, + [FromQuery] Guid channelId) + { + var query = new GetSmsInteractionHistoryQuery(mobile, channelId); + await eventBus.PublishAsync(query); + return query.Result; + } } From cb7ac77e679cb17c48d7d57da2beb5263cb739cd Mon Sep 17 00:00:00 2001 From: wzh425 Date: Mon, 29 Jun 2026 15:50:13 +0800 Subject: [PATCH 08/16] feat: enhance message template validation for SMS channel - Added validation for TemplateType in MessageTemplateUpsertDtoValidator to ensure it is defined when ChannelType is SMS, improving data integrity. - Updated SmsTemplateTypes enum to include new values for Unsubscribe and Resubscribe, expanding the template type options available for SMS messages. --- .../Validator/MessageTemplateUpsertDtoValidator.cs | 4 ++++ .../MessageTemplates/SmsTemplateTypes.cs | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs index cc10b747..d6c4f44b 100644 --- a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs @@ -14,6 +14,10 @@ public MessageTemplateUpsertDtoValidator() .Length(2, 50).WithMessage("MessageTemplateCodeLength"); RuleFor(inputDto => inputDto.ChannelId).Required("ChannelIdRequired"); RuleFor(inputDto => inputDto.Status).IsInEnum().WithMessage("MessageTemplateStatusRequired"); + RuleFor(inputDto => inputDto.TemplateType) + .Must(templateType => System.Enum.IsDefined(typeof(SmsTemplateTypes), templateType)) + .When(inputDto => inputDto.ChannelType == ChannelTypes.Sms) + .WithMessage("MessageTemplateTemplateTypeRequired"); RuleFor(inputDto => inputDto.AuditStatus).IsInEnum(); RuleFor(inputDto => inputDto.PerDayLimit).InclusiveBetween(0, 500).WithMessage("MessageTemplatePerDayLimitBetween"); RuleFor(inputDto => inputDto.Title).Required("TitleRequired") diff --git a/src/Domain/Masa.Mc.Domain.Shared/MessageTemplates/SmsTemplateTypes.cs b/src/Domain/Masa.Mc.Domain.Shared/MessageTemplates/SmsTemplateTypes.cs index 5ff34f44..0b73e89c 100644 --- a/src/Domain/Masa.Mc.Domain.Shared/MessageTemplates/SmsTemplateTypes.cs +++ b/src/Domain/Masa.Mc.Domain.Shared/MessageTemplates/SmsTemplateTypes.cs @@ -9,6 +9,8 @@ public enum SmsTemplateTypes Notification = 2, Promotion = 3, International = 4, - Digital=5, + Digital = 5, + Unsubscribe = 101, + Resubscribe = 102, Other = 99 } From 51aca4b99f8f0e7734a01fddd99c8673909129c1 Mon Sep 17 00:00:00 2001 From: wzh425 Date: Mon, 29 Jun 2026 16:28:33 +0800 Subject: [PATCH 09/16] refactor: update unsubscribe configuration to use template IDs - Renamed properties in MessageTemplateUnsubscribeConfigDto and related classes to use TemplateId suffix for unsubscribe and resubscribe auto-reply configurations, enhancing clarity. - Updated validation rules in MessageTemplateUpsertDtoValidator to reflect changes in property names and lengths. - Modified database context and query models to align with the new property names, ensuring consistency across the application. - Enhanced message receipt handling to utilize the new template ID logic for auto-replies, improving the overall unsubscribe process. --- .../MessageTemplateUnsubscribeConfigDto.cs | 4 +- .../MessageTemplateUpsertDtoValidator.cs | 8 +-- .../MessageTemplateUnsubscribeConfig.cs | 30 ++++---- .../McDbContextModelBuilderExtensions.cs | 4 +- .../MessageReceiptCommandHandler.cs | 4 +- .../SmsInboundAutoReplySendRequest.cs | 14 ++++ .../SmsInboundAutoReplyService.cs | 72 ++++++++++++++++++- ...sageTemplateUnsubscribeConfigQueryModel.cs | 4 +- .../Masa.Mc.Service/Assets/I18n/en-US.json | 8 +-- .../Masa.Mc.Service/Assets/I18n/zh-CN.json | 8 +-- .../EntityFrameworkCore/McQueryContext.cs | 4 +- 11 files changed, 123 insertions(+), 37 deletions(-) create mode 100644 src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplySendRequest.cs diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/MessageTemplateUnsubscribeConfigDto.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/MessageTemplateUnsubscribeConfigDto.cs index db965a5b..836f38d3 100644 --- a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/MessageTemplateUnsubscribeConfigDto.cs +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/MessageTemplateUnsubscribeConfigDto.cs @@ -9,11 +9,11 @@ public class MessageTemplateUnsubscribeConfigDto public string UnsubscribeKeyword { get; set; } = string.Empty; - public string UnsubscribeAutoReply { get; set; } = string.Empty; + public string UnsubscribeAutoReplyTemplateId { get; set; } = string.Empty; public string ResubscribeKeyword { get; set; } = string.Empty; - public string ResubscribeAutoReply { get; set; } = string.Empty; + public string ResubscribeAutoReplyTemplateId { get; set; } = string.Empty; public bool DebounceEnabled { get; set; } diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs index d6c4f44b..c3075b5b 100644 --- a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs @@ -31,14 +31,14 @@ public MessageTemplateUpsertDtoValidator() RuleFor(inputDto => inputDto.UnsubscribeConfig.UnsubscribeKeyword).Required("UnsubscribeKeywordRequired") .Length(1, 20).WithMessage("UnsubscribeKeywordLength") .When(x => x.UnsubscribeConfig.Enabled); - RuleFor(inputDto => inputDto.UnsubscribeConfig.UnsubscribeAutoReply).Required("UnsubscribeAutoReplyRequired") - .Length(1, 500).WithMessage("UnsubscribeAutoReplyLength") + RuleFor(inputDto => inputDto.UnsubscribeConfig.UnsubscribeAutoReplyTemplateId).Required("UnsubscribeAutoReplyRequired") + .Length(1, 128).WithMessage("UnsubscribeAutoReplyLength") .When(x => x.UnsubscribeConfig.Enabled); RuleFor(inputDto => inputDto.UnsubscribeConfig.ResubscribeKeyword).Required("ResubscribeKeywordRequired") .Length(1, 20).WithMessage("ResubscribeKeywordLength") .When(x => x.UnsubscribeConfig.Enabled); - RuleFor(inputDto => inputDto.UnsubscribeConfig.ResubscribeAutoReply).Required("ResubscribeAutoReplyRequired") - .Length(1, 500).WithMessage("ResubscribeAutoReplyLength") + RuleFor(inputDto => inputDto.UnsubscribeConfig.ResubscribeAutoReplyTemplateId).Required("ResubscribeAutoReplyRequired") + .Length(1, 128).WithMessage("ResubscribeAutoReplyLength") .When(x => x.UnsubscribeConfig.Enabled); RuleFor(inputDto => inputDto).Must(inputDto => !inputDto.UnsubscribeConfig.Enabled || diff --git a/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs b/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs index 4092d933..22839eb3 100644 --- a/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs +++ b/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs @@ -12,11 +12,11 @@ public class MessageTemplateUnsubscribeConfig : ValueObject public string UnsubscribeKeyword { get; protected set; } = string.Empty; - public string UnsubscribeAutoReply { get; protected set; } = string.Empty; + public string UnsubscribeAutoReplyTemplateId { get; protected set; } = string.Empty; public string ResubscribeKeyword { get; protected set; } = string.Empty; - public string ResubscribeAutoReply { get; protected set; } = string.Empty; + public string ResubscribeAutoReplyTemplateId { get; protected set; } = string.Empty; public bool DebounceEnabled { get; protected set; } @@ -29,17 +29,17 @@ private MessageTemplateUnsubscribeConfig() public MessageTemplateUnsubscribeConfig( bool enabled, string unsubscribeKeyword, - string unsubscribeAutoReply, + string unsubscribeAutoReplyTemplateId, string resubscribeKeyword, - string resubscribeAutoReply, + string resubscribeAutoReplyTemplateId, bool debounceEnabled, int cooldownSeconds) { Enabled = enabled; UnsubscribeKeyword = (unsubscribeKeyword ?? string.Empty).Trim(); - UnsubscribeAutoReply = (unsubscribeAutoReply ?? string.Empty).Trim(); + UnsubscribeAutoReplyTemplateId = (unsubscribeAutoReplyTemplateId ?? string.Empty).Trim(); ResubscribeKeyword = (resubscribeKeyword ?? string.Empty).Trim(); - ResubscribeAutoReply = (resubscribeAutoReply ?? string.Empty).Trim(); + ResubscribeAutoReplyTemplateId = (resubscribeAutoReplyTemplateId ?? string.Empty).Trim(); DebounceEnabled = debounceEnabled; CooldownSeconds = cooldownSeconds; @@ -82,12 +82,12 @@ public SmsInboundKeywordAction ResolveInboundKeywordAction(string inboundKeyword return SmsInboundKeywordAction.None; } - public string GetAutoReplyContent(SmsInboundKeywordAction action) + public string GetAutoReplyTemplateId(SmsInboundKeywordAction action) { return action switch { - SmsInboundKeywordAction.Unsubscribe => UnsubscribeAutoReply, - SmsInboundKeywordAction.Resubscribe => ResubscribeAutoReply, + SmsInboundKeywordAction.Unsubscribe => UnsubscribeAutoReplyTemplateId, + SmsInboundKeywordAction.Resubscribe => ResubscribeAutoReplyTemplateId, _ => string.Empty }; } @@ -98,9 +98,9 @@ public void Apply(MessageTemplateUnsubscribeConfig config) Enabled = config.Enabled; UnsubscribeKeyword = config.UnsubscribeKeyword; - UnsubscribeAutoReply = config.UnsubscribeAutoReply; + UnsubscribeAutoReplyTemplateId = config.UnsubscribeAutoReplyTemplateId; ResubscribeKeyword = config.ResubscribeKeyword; - ResubscribeAutoReply = config.ResubscribeAutoReply; + ResubscribeAutoReplyTemplateId = config.ResubscribeAutoReplyTemplateId; DebounceEnabled = config.DebounceEnabled; CooldownSeconds = config.CooldownSeconds; @@ -111,9 +111,9 @@ protected override IEnumerable GetEqualityValues() { yield return Enabled; yield return UnsubscribeKeyword; - yield return UnsubscribeAutoReply; + yield return UnsubscribeAutoReplyTemplateId; yield return ResubscribeKeyword; - yield return ResubscribeAutoReply; + yield return ResubscribeAutoReplyTemplateId; yield return DebounceEnabled; yield return CooldownSeconds; } @@ -125,9 +125,9 @@ private void NormalizeAndValidate() DebounceEnabled = false; CooldownSeconds = 0; UnsubscribeKeyword = string.Empty; - UnsubscribeAutoReply = string.Empty; + UnsubscribeAutoReplyTemplateId = string.Empty; ResubscribeKeyword = string.Empty; - ResubscribeAutoReply = string.Empty; + ResubscribeAutoReplyTemplateId = string.Empty; return; } diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs index 3ea576fc..2a705ba7 100644 --- a/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs @@ -52,9 +52,9 @@ public static void ConfigureMC(this ModelBuilder builder) ub.HasKey(x => x.MessageTemplateId); ub.Property(x => x.Enabled).HasColumnName(nameof(MessageTemplateUnsubscribeConfig.Enabled)).HasDefaultValue(false); ub.Property(x => x.UnsubscribeKeyword).HasColumnName(nameof(MessageTemplateUnsubscribeConfig.UnsubscribeKeyword)).HasMaxLength(20).HasDefaultValue(string.Empty); - ub.Property(x => x.UnsubscribeAutoReply).HasColumnName(nameof(MessageTemplateUnsubscribeConfig.UnsubscribeAutoReply)).HasMaxLength(500).HasDefaultValue(string.Empty); + ub.Property(x => x.UnsubscribeAutoReplyTemplateId).HasColumnName("UnsubscribeAutoReply").HasMaxLength(128).HasDefaultValue(string.Empty); ub.Property(x => x.ResubscribeKeyword).HasColumnName(nameof(MessageTemplateUnsubscribeConfig.ResubscribeKeyword)).HasMaxLength(20).HasDefaultValue(string.Empty); - ub.Property(x => x.ResubscribeAutoReply).HasColumnName(nameof(MessageTemplateUnsubscribeConfig.ResubscribeAutoReply)).HasMaxLength(500).HasDefaultValue(string.Empty); + ub.Property(x => x.ResubscribeAutoReplyTemplateId).HasColumnName("ResubscribeAutoReply").HasMaxLength(128).HasDefaultValue(string.Empty); ub.Property(x => x.DebounceEnabled).HasColumnName(nameof(MessageTemplateUnsubscribeConfig.DebounceEnabled)).HasDefaultValue(false); ub.Property(x => x.CooldownSeconds).HasColumnName(nameof(MessageTemplateUnsubscribeConfig.CooldownSeconds)).HasDefaultValue(0); }); diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs index 37a9bb9e..c2a96e27 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs @@ -292,11 +292,13 @@ private async Task TryHandleTemplateLevelInboundUnsubscriptionAsync( return; } + var autoReplyTemplateId = unsubscribeConfig.GetAutoReplyTemplateId(handledAction); await _smsInboundAutoReplyService.TrySendAutoReplyAsync( command.ChannelId, command.Provider, lastTemplateRecord.ChannelUserIdentity, - unsubscribeConfig.GetAutoReplyContent(handledAction), + lastTemplateRecord.UserId, + autoReplyTemplateId, cancellationToken); } diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplySendRequest.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplySendRequest.cs new file mode 100644 index 00000000..ddeeea60 --- /dev/null +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplySendRequest.cs @@ -0,0 +1,14 @@ +// Copyright (c) MASA Stack All rights reserved. +// Licensed under the Apache License. See LICENSE.txt in the project root for license information. + +namespace Masa.Mc.Service.Admin.Application.MessageReceipts; + +public record SmsInboundAutoReplySendRequest( + Guid ChannelId, + SmsInboundProviders Provider, + string ChannelUserIdentity, + Guid UserId, + Guid AutoReplyTemplateEntityId, + string AutoReplyTemplateId, + string AutoReplyTemplateName, + string AutoReplyContent); diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs index 1f751790..212ae36c 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs @@ -6,15 +6,21 @@ namespace Masa.Mc.Service.Admin.Application.MessageReceipts; public class SmsInboundAutoReplyService : ITransientDependency { private readonly IChannelRepository _channelRepository; + private readonly ISmsTemplateRepository _smsTemplateRepository; + private readonly IMessageRecordRepository _messageRecordRepository; private readonly SmsSenderFactory _smsSenderFactory; private readonly ILogger _logger; public SmsInboundAutoReplyService( IChannelRepository channelRepository, + ISmsTemplateRepository smsTemplateRepository, + IMessageRecordRepository messageRecordRepository, SmsSenderFactory smsSenderFactory, ILogger logger) { _channelRepository = channelRepository; + _smsTemplateRepository = smsTemplateRepository; + _messageRecordRepository = messageRecordRepository; _smsSenderFactory = smsSenderFactory; _logger = logger; } @@ -23,9 +29,51 @@ public async Task TrySendAutoReplyAsync( Guid channelId, SmsInboundProviders provider, string channelUserIdentity, - string autoReplyContent, + Guid userId, + string autoReplyTemplateId, CancellationToken cancellationToken = default) { + if (string.IsNullOrWhiteSpace(autoReplyTemplateId)) + { + return; + } + + var smsTemplate = await _smsTemplateRepository.FindAsync( + x => x.ChannelId == channelId && x.TemplateCode == autoReplyTemplateId, + cancellationToken); + if (smsTemplate is null || string.IsNullOrWhiteSpace(smsTemplate.TemplateContent)) + { + return; + } + + var request = new SmsInboundAutoReplySendRequest( + channelId, + provider, + channelUserIdentity, + userId, + smsTemplate.Id, + smsTemplate.TemplateCode ?? string.Empty, + smsTemplate.TemplateName ?? string.Empty, + smsTemplate.TemplateContent.Trim()); + + await TrySendAutoReplyInternalAsync(request, cancellationToken); + } + + private async Task TrySendAutoReplyInternalAsync( + SmsInboundAutoReplySendRequest request, + CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(request); + + var channelId = request.ChannelId; + var provider = request.Provider; + var channelUserIdentity = request.ChannelUserIdentity; + var userId = request.UserId; + var autoReplyTemplateEntityId = request.AutoReplyTemplateEntityId; + var autoReplyTemplateId = request.AutoReplyTemplateId; + var autoReplyTemplateName = request.AutoReplyTemplateName; + var autoReplyContent = request.AutoReplyContent; + if (string.IsNullOrWhiteSpace(autoReplyContent) || string.IsNullOrWhiteSpace(channelUserIdentity)) { return; @@ -38,6 +86,19 @@ public async Task TrySendAutoReplyAsync( return; } + var messageRecord = new MessageRecord( + userId, + channelUserIdentity, + channelId, + Guid.Empty, + Guid.Empty, + new ExtraPropertyDictionary(), + autoReplyTemplateName ?? string.Empty, + DateTimeOffset.UtcNow, + string.Empty); + messageRecord.SetMessageEntity(MessageEntityTypes.Template, autoReplyTemplateEntityId); + messageRecord.SetDataValue(nameof(MessageTemplate.TemplateId), autoReplyTemplateId ?? string.Empty); + var smsProvider = (SmsProviders)provider; var options = _smsSenderFactory.GetOptions(smsProvider, channel.ExtraProperties); var smsAsyncLocal = _smsSenderFactory.GetProviderAsyncLocal(smsProvider); @@ -58,11 +119,20 @@ public async Task TrySendAutoReplyAsync( { _logger.LogWarning("Inbound auto reply failed: {Message}", response.Message); } + + messageRecord.SetResult( + response.Success ? (smsSender.SupportsReceipt ? null : true) : false, + response.Success ? string.Empty : (response.Message ?? string.Empty), + DateTimeOffset.UtcNow, + response.MsgId ?? string.Empty); } } catch (Exception ex) { + messageRecord.SetResult(false, ex.Message, DateTimeOffset.UtcNow, string.Empty); _logger.LogError(ex, "Send inbound auto reply failed"); } + + await _messageRecordRepository.AddAsync(messageRecord); } } diff --git a/src/Services/Masa.Mc.Service/Application/QueryModels/MessageTemplateUnsubscribeConfigQueryModel.cs b/src/Services/Masa.Mc.Service/Application/QueryModels/MessageTemplateUnsubscribeConfigQueryModel.cs index dc8108aa..f15dd658 100644 --- a/src/Services/Masa.Mc.Service/Application/QueryModels/MessageTemplateUnsubscribeConfigQueryModel.cs +++ b/src/Services/Masa.Mc.Service/Application/QueryModels/MessageTemplateUnsubscribeConfigQueryModel.cs @@ -9,11 +9,11 @@ public class MessageTemplateUnsubscribeConfigQueryModel public string UnsubscribeKeyword { get; set; } = string.Empty; - public string UnsubscribeAutoReply { get; set; } = string.Empty; + public string UnsubscribeAutoReplyTemplateId { get; set; } = string.Empty; public string ResubscribeKeyword { get; set; } = string.Empty; - public string ResubscribeAutoReply { get; set; } = string.Empty; + public string ResubscribeAutoReplyTemplateId { get; set; } = string.Empty; public bool DebounceEnabled { get; set; } diff --git a/src/Services/Masa.Mc.Service/Assets/I18n/en-US.json b/src/Services/Masa.Mc.Service/Assets/I18n/en-US.json index dc600984..b9217f63 100644 --- a/src/Services/Masa.Mc.Service/Assets/I18n/en-US.json +++ b/src/Services/Masa.Mc.Service/Assets/I18n/en-US.json @@ -33,12 +33,12 @@ "TemplateIdCannotRepeated": "Template id cannot be repeated", "UnsubscribeKeywordRequired": "Please enter unsubscribe keyword", "UnsubscribeKeywordLength": "Unsubscribe keyword length must be between 1 and 20", - "UnsubscribeAutoReplyRequired": "Please enter unsubscribe auto reply", - "UnsubscribeAutoReplyLength": "Unsubscribe auto reply length must be between 1 and 500", + "UnsubscribeAutoReplyRequired": "Please select unsubscribe template", + "UnsubscribeAutoReplyLength": "Unsubscribe template ID length must be between 1 and 128", "ResubscribeKeywordRequired": "Please enter resubscribe keyword", "ResubscribeKeywordLength": "Resubscribe keyword length must be between 1 and 20", - "ResubscribeAutoReplyRequired": "Please enter resubscribe auto reply", - "ResubscribeAutoReplyLength": "Resubscribe auto reply length must be between 1 and 500", + "ResubscribeAutoReplyRequired": "Please select resubscribe template", + "ResubscribeAutoReplyLength": "Resubscribe template ID length must be between 1 and 128", "UnsubscribeKeywordsMustBeDifferent": "Unsubscribe and resubscribe keywords must be different", "UnsubscribeKeywordCannotUseProviderReservedKeyword": "Unsubscribe keyword cannot use provider reserved keywords", "UnsubscribeCooldownSecondsRequired": "Cooldown seconds must be greater than 0 when debounce is enabled", diff --git a/src/Services/Masa.Mc.Service/Assets/I18n/zh-CN.json b/src/Services/Masa.Mc.Service/Assets/I18n/zh-CN.json index d423a061..932e20dd 100644 --- a/src/Services/Masa.Mc.Service/Assets/I18n/zh-CN.json +++ b/src/Services/Masa.Mc.Service/Assets/I18n/zh-CN.json @@ -34,12 +34,12 @@ "TemplateIdCannotRepeated": "模板不能重复", "UnsubscribeKeywordRequired": "请输入退订关键词", "UnsubscribeKeywordLength": "退订关键词长度需在1到20之间", - "UnsubscribeAutoReplyRequired": "请输入退订自动回复内容", - "UnsubscribeAutoReplyLength": "退订自动回复长度需在1到500之间", +"UnsubscribeAutoReplyRequired": "请选择退订模板", +"UnsubscribeAutoReplyLength": "退订模板ID长度需在1到128之间", "ResubscribeKeywordRequired": "请输入恢复退订关键词", "ResubscribeKeywordLength": "恢复退订关键词长度需在1到20之间", - "ResubscribeAutoReplyRequired": "请输入恢复退订自动回复内容", - "ResubscribeAutoReplyLength": "恢复退订自动回复长度需在1到500之间", +"ResubscribeAutoReplyRequired": "请选择恢复模板", +"ResubscribeAutoReplyLength": "恢复模板ID长度需在1到128之间", "UnsubscribeKeywordsMustBeDifferent": "退订关键词与恢复退订关键词不能相同", "UnsubscribeKeywordCannotUseProviderReservedKeyword": "退订关键词不能使用渠道厂商保留关键词", "UnsubscribeCooldownSecondsRequired": "开启防抖后冷却时间必须大于0秒", diff --git a/src/Services/Masa.Mc.Service/Infrastructure/EntityFrameworkCore/McQueryContext.cs b/src/Services/Masa.Mc.Service/Infrastructure/EntityFrameworkCore/McQueryContext.cs index 6dd838c6..e1af7f6c 100644 --- a/src/Services/Masa.Mc.Service/Infrastructure/EntityFrameworkCore/McQueryContext.cs +++ b/src/Services/Masa.Mc.Service/Infrastructure/EntityFrameworkCore/McQueryContext.cs @@ -61,9 +61,9 @@ protected override void OnModelCreatingExecuting(ModelBuilder builder) ub.HasKey("MessageTemplateId"); ub.Property(x => x.Enabled).HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.Enabled)); ub.Property(x => x.UnsubscribeKeyword).HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.UnsubscribeKeyword)); - ub.Property(x => x.UnsubscribeAutoReply).HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.UnsubscribeAutoReply)); + ub.Property(x => x.UnsubscribeAutoReplyTemplateId).HasColumnName("UnsubscribeAutoReply"); ub.Property(x => x.ResubscribeKeyword).HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.ResubscribeKeyword)); - ub.Property(x => x.ResubscribeAutoReply).HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.ResubscribeAutoReply)); + ub.Property(x => x.ResubscribeAutoReplyTemplateId).HasColumnName("ResubscribeAutoReply"); ub.Property(x => x.DebounceEnabled).HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.DebounceEnabled)); ub.Property(x => x.CooldownSeconds).HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.CooldownSeconds)); }); From 3258fdac05f1ff82fb0d3ee4eb81d961ce3fccc1 Mon Sep 17 00:00:00 2001 From: wzh425 Date: Mon, 29 Jun 2026 16:35:47 +0800 Subject: [PATCH 10/16] refactor: enhance SMS inbound auto-reply service with message template integration - Introduced IMessageTemplateRepository and MessageTemplateDomainService to manage message templates more effectively. - Updated SmsInboundAutoReplyService to utilize message templates for auto-reply content, improving flexibility in message handling. - Refactored TrySendAutoReplyInternalAsync to incorporate message template checks and limits, enhancing message sending logic. - Created a new method, CreateMessageRecord, to streamline message record creation, improving code clarity and maintainability. --- .../SmsInboundAutoReplyService.cs | 63 +++++++++++++------ 1 file changed, 43 insertions(+), 20 deletions(-) diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs index 212ae36c..eda951fc 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs @@ -7,21 +7,30 @@ public class SmsInboundAutoReplyService : ITransientDependency { private readonly IChannelRepository _channelRepository; private readonly ISmsTemplateRepository _smsTemplateRepository; + private readonly IMessageTemplateRepository _messageTemplateRepository; private readonly IMessageRecordRepository _messageRecordRepository; + private readonly MessageTemplateDomainService _messageTemplateDomainService; private readonly SmsSenderFactory _smsSenderFactory; + private readonly II18n _i18n; private readonly ILogger _logger; public SmsInboundAutoReplyService( IChannelRepository channelRepository, ISmsTemplateRepository smsTemplateRepository, + IMessageTemplateRepository messageTemplateRepository, IMessageRecordRepository messageRecordRepository, + MessageTemplateDomainService messageTemplateDomainService, SmsSenderFactory smsSenderFactory, + II18n i18n, ILogger logger) { _channelRepository = channelRepository; _smsTemplateRepository = smsTemplateRepository; + _messageTemplateRepository = messageTemplateRepository; _messageRecordRepository = messageRecordRepository; + _messageTemplateDomainService = messageTemplateDomainService; _smsSenderFactory = smsSenderFactory; + _i18n = i18n; _logger = logger; } @@ -46,21 +55,26 @@ public async Task TrySendAutoReplyAsync( return; } + var messageTemplate = await _messageTemplateRepository.FindAsync( + x => x.ChannelId == channelId && x.TemplateId == autoReplyTemplateId, + cancellationToken: cancellationToken); + var request = new SmsInboundAutoReplySendRequest( channelId, provider, channelUserIdentity, userId, - smsTemplate.Id, + messageTemplate?.Id ?? smsTemplate.Id, smsTemplate.TemplateCode ?? string.Empty, - smsTemplate.TemplateName ?? string.Empty, + messageTemplate?.DisplayName ?? smsTemplate.TemplateName ?? string.Empty, smsTemplate.TemplateContent.Trim()); - await TrySendAutoReplyInternalAsync(request, cancellationToken); + await TrySendAutoReplyInternalAsync(request, messageTemplate, cancellationToken); } private async Task TrySendAutoReplyInternalAsync( SmsInboundAutoReplySendRequest request, + MessageTemplate? messageTemplate, CancellationToken cancellationToken = default) { ArgumentNullException.ThrowIfNull(request); @@ -68,10 +82,6 @@ private async Task TrySendAutoReplyInternalAsync( var channelId = request.ChannelId; var provider = request.Provider; var channelUserIdentity = request.ChannelUserIdentity; - var userId = request.UserId; - var autoReplyTemplateEntityId = request.AutoReplyTemplateEntityId; - var autoReplyTemplateId = request.AutoReplyTemplateId; - var autoReplyTemplateName = request.AutoReplyTemplateName; var autoReplyContent = request.AutoReplyContent; if (string.IsNullOrWhiteSpace(autoReplyContent) || string.IsNullOrWhiteSpace(channelUserIdentity)) @@ -79,6 +89,15 @@ private async Task TrySendAutoReplyInternalAsync( return; } + var messageRecord = CreateMessageRecord(request); + if (messageTemplate != null && + !await _messageTemplateDomainService.CheckSendUpperLimitAsync(messageTemplate, channelUserIdentity)) + { + messageRecord.SetResult(false, _i18n.T("DailySendingLimit"), DateTimeOffset.UtcNow, string.Empty); + await _messageRecordRepository.AddAsync(messageRecord); + return; + } + var channel = await _channelRepository.AsNoTracking() .FirstOrDefaultAsync(x => x.Id == channelId, cancellationToken); if (channel is null) @@ -86,19 +105,6 @@ private async Task TrySendAutoReplyInternalAsync( return; } - var messageRecord = new MessageRecord( - userId, - channelUserIdentity, - channelId, - Guid.Empty, - Guid.Empty, - new ExtraPropertyDictionary(), - autoReplyTemplateName ?? string.Empty, - DateTimeOffset.UtcNow, - string.Empty); - messageRecord.SetMessageEntity(MessageEntityTypes.Template, autoReplyTemplateEntityId); - messageRecord.SetDataValue(nameof(MessageTemplate.TemplateId), autoReplyTemplateId ?? string.Empty); - var smsProvider = (SmsProviders)provider; var options = _smsSenderFactory.GetOptions(smsProvider, channel.ExtraProperties); var smsAsyncLocal = _smsSenderFactory.GetProviderAsyncLocal(smsProvider); @@ -135,4 +141,21 @@ private async Task TrySendAutoReplyInternalAsync( await _messageRecordRepository.AddAsync(messageRecord); } + + private static MessageRecord CreateMessageRecord(SmsInboundAutoReplySendRequest request) + { + var messageRecord = new MessageRecord( + request.UserId, + request.ChannelUserIdentity, + request.ChannelId, + Guid.Empty, + Guid.Empty, + new ExtraPropertyDictionary(), + request.AutoReplyTemplateName ?? string.Empty, + DateTimeOffset.UtcNow, + string.Empty); + messageRecord.SetMessageEntity(MessageEntityTypes.Template, request.AutoReplyTemplateEntityId); + messageRecord.SetDataValue(nameof(MessageTemplate.TemplateId), request.AutoReplyTemplateId ?? string.Empty); + return messageRecord; + } } From 67604bfdc5e7d1738daf9b45ba231c80797a3de9 Mon Sep 17 00:00:00 2001 From: wzh425 Date: Mon, 29 Jun 2026 16:53:14 +0800 Subject: [PATCH 11/16] refactor: improve SMS inbound auto-reply logic with enhanced template handling - Updated SmsInboundAutoReplyService to better utilize message templates for auto-reply content, allowing for fallback to SMS templates when message content is not available. - Refactored the logic for determining the appropriate template to streamline the retrieval process and improve code clarity. - Ensured that the service can handle both message and SMS templates effectively, enhancing the flexibility of auto-reply responses. --- .../SmsInboundAutoReplyService.cs | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs index eda951fc..58f42f23 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs @@ -47,27 +47,34 @@ public async Task TrySendAutoReplyAsync( return; } - var smsTemplate = await _smsTemplateRepository.FindAsync( - x => x.ChannelId == channelId && x.TemplateCode == autoReplyTemplateId, - cancellationToken); - if (smsTemplate is null || string.IsNullOrWhiteSpace(smsTemplate.TemplateContent)) - { - return; - } - var messageTemplate = await _messageTemplateRepository.FindAsync( - x => x.ChannelId == channelId && x.TemplateId == autoReplyTemplateId, + x => x.ChannelId == channelId && (x.Code == autoReplyTemplateId || x.TemplateId == autoReplyTemplateId), cancellationToken: cancellationToken); + var smsTemplate = default(SmsTemplate); + var autoReplyContent = messageTemplate?.MessageContent?.Content?.Trim(); + if (string.IsNullOrWhiteSpace(autoReplyContent)) + { + smsTemplate = await _smsTemplateRepository.FindAsync( + x => x.ChannelId == channelId && x.TemplateCode == autoReplyTemplateId, + cancellationToken); + if (smsTemplate is null || string.IsNullOrWhiteSpace(smsTemplate.TemplateContent)) + { + return; + } + + autoReplyContent = smsTemplate.TemplateContent.Trim(); + } + var request = new SmsInboundAutoReplySendRequest( channelId, provider, channelUserIdentity, userId, - messageTemplate?.Id ?? smsTemplate.Id, - smsTemplate.TemplateCode ?? string.Empty, - messageTemplate?.DisplayName ?? smsTemplate.TemplateName ?? string.Empty, - smsTemplate.TemplateContent.Trim()); + messageTemplate?.Id ?? smsTemplate?.Id ?? Guid.Empty, + messageTemplate?.TemplateId ?? smsTemplate?.TemplateCode ?? autoReplyTemplateId, + messageTemplate?.DisplayName ?? smsTemplate?.TemplateName ?? string.Empty, + autoReplyContent); await TrySendAutoReplyInternalAsync(request, messageTemplate, cancellationToken); } From a2d61d12116052213c8b9ead3eb986db2ec6018b Mon Sep 17 00:00:00 2001 From: wzh425 Date: Mon, 29 Jun 2026 17:33:12 +0800 Subject: [PATCH 12/16] refactor: update unsubscribe configuration to use GUIDs for auto-reply template IDs - Changed the data type of UnsubscribeAutoReplyTemplateId and ResubscribeAutoReplyTemplateId in MessageTemplateUnsubscribeConfigDto and related classes from string to Guid for better type safety. - Updated validation rules in MessageTemplateUpsertDtoValidator to ensure GUIDs are not empty for auto-reply template IDs. - Modified MessageTemplateUnsubscribeConfig and related classes to reflect the new GUID type, enhancing clarity and consistency. - Adjusted database context and migrations to accommodate the changes in property types, ensuring a clean schema. --- .../MessageTemplateUnsubscribeConfigDto.cs | 8 +- .../MessageTemplateUpsertDtoValidator.cs | 10 +- .../MessageTemplateExceptionCodes.cs | 3 +- .../MessageTemplateUnsubscribeConfig.cs | 45 +- ...bscribeAutoReplyTemplateToGuid.Designer.cs | 1454 +++++++++++++++++ ...actorUnsubscribeAutoReplyTemplateToGuid.cs | 60 + ...emoveUnsubscribeDebounceFields.Designer.cs | 1442 ++++++++++++++++ ...9092250_RemoveUnsubscribeDebounceFields.cs | 37 + ...cribeAutoReplyTemplateRequired.Designer.cs | 1442 ++++++++++++++++ ...akeUnsubscribeAutoReplyTemplateRequired.cs | 52 + .../Migrations/McDbContextModelSnapshot.cs | 32 +- .../McDbContextModelBuilderExtensions.cs | 9 +- .../SmsInboundAutoReplyService.cs | 30 +- ...sageTemplateUnsubscribeConfigQueryModel.cs | 8 +- .../EntityFrameworkCore/McQueryContext.cs | 9 +- 15 files changed, 4544 insertions(+), 97 deletions(-) create mode 100644 src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092014_RefactorUnsubscribeAutoReplyTemplateToGuid.Designer.cs create mode 100644 src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092014_RefactorUnsubscribeAutoReplyTemplateToGuid.cs create mode 100644 src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092250_RemoveUnsubscribeDebounceFields.Designer.cs create mode 100644 src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092250_RemoveUnsubscribeDebounceFields.cs create mode 100644 src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629093124_MakeUnsubscribeAutoReplyTemplateRequired.Designer.cs create mode 100644 src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629093124_MakeUnsubscribeAutoReplyTemplateRequired.cs diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/MessageTemplateUnsubscribeConfigDto.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/MessageTemplateUnsubscribeConfigDto.cs index 836f38d3..8cc02d87 100644 --- a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/MessageTemplateUnsubscribeConfigDto.cs +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/MessageTemplateUnsubscribeConfigDto.cs @@ -9,13 +9,9 @@ public class MessageTemplateUnsubscribeConfigDto public string UnsubscribeKeyword { get; set; } = string.Empty; - public string UnsubscribeAutoReplyTemplateId { get; set; } = string.Empty; + public Guid UnsubscribeAutoReplyTemplateId { get; set; } public string ResubscribeKeyword { get; set; } = string.Empty; - public string ResubscribeAutoReplyTemplateId { get; set; } = string.Empty; - - public bool DebounceEnabled { get; set; } - - public int CooldownSeconds { get; set; } + public Guid ResubscribeAutoReplyTemplateId { get; set; } } diff --git a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs index c3075b5b..83754a6b 100644 --- a/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs +++ b/src/Contracts/Masa.Mc.Contracts.Admin/Dtos/MessageTemplates/Validator/MessageTemplateUpsertDtoValidator.cs @@ -31,14 +31,16 @@ public MessageTemplateUpsertDtoValidator() RuleFor(inputDto => inputDto.UnsubscribeConfig.UnsubscribeKeyword).Required("UnsubscribeKeywordRequired") .Length(1, 20).WithMessage("UnsubscribeKeywordLength") .When(x => x.UnsubscribeConfig.Enabled); - RuleFor(inputDto => inputDto.UnsubscribeConfig.UnsubscribeAutoReplyTemplateId).Required("UnsubscribeAutoReplyRequired") - .Length(1, 128).WithMessage("UnsubscribeAutoReplyLength") + RuleFor(inputDto => inputDto.UnsubscribeConfig.UnsubscribeAutoReplyTemplateId) + .Must(templateId => templateId != Guid.Empty) + .WithMessage("UnsubscribeAutoReplyRequired") .When(x => x.UnsubscribeConfig.Enabled); RuleFor(inputDto => inputDto.UnsubscribeConfig.ResubscribeKeyword).Required("ResubscribeKeywordRequired") .Length(1, 20).WithMessage("ResubscribeKeywordLength") .When(x => x.UnsubscribeConfig.Enabled); - RuleFor(inputDto => inputDto.UnsubscribeConfig.ResubscribeAutoReplyTemplateId).Required("ResubscribeAutoReplyRequired") - .Length(1, 128).WithMessage("ResubscribeAutoReplyLength") + RuleFor(inputDto => inputDto.UnsubscribeConfig.ResubscribeAutoReplyTemplateId) + .Must(templateId => templateId != Guid.Empty) + .WithMessage("ResubscribeAutoReplyRequired") .When(x => x.UnsubscribeConfig.Enabled); RuleFor(inputDto => inputDto).Must(inputDto => !inputDto.UnsubscribeConfig.Enabled || diff --git a/src/Domain/Masa.Mc.Domain/Constants/MessageTemplateExceptionCodes.cs b/src/Domain/Masa.Mc.Domain/Constants/MessageTemplateExceptionCodes.cs index 792820f6..4b04894c 100644 --- a/src/Domain/Masa.Mc.Domain/Constants/MessageTemplateExceptionCodes.cs +++ b/src/Domain/Masa.Mc.Domain/Constants/MessageTemplateExceptionCodes.cs @@ -7,7 +7,8 @@ public static class MessageTemplateExceptionCodes { public const string VERIFICATION_CODE_TEMPLATE_CANNOT_ENABLE_UNSUBSCRIBE = "VerificationCodeTemplateCannotEnableUnsubscribe"; public const string UNSUBSCRIBE_KEYWORD_REQUIRED = "UnsubscribeKeywordRequired"; + public const string UNSUBSCRIBE_AUTO_REPLY_REQUIRED = "UnsubscribeAutoReplyRequired"; public const string RESUBSCRIBE_KEYWORD_REQUIRED = "ResubscribeKeywordRequired"; + public const string RESUBSCRIBE_AUTO_REPLY_REQUIRED = "ResubscribeAutoReplyRequired"; public const string UNSUBSCRIBE_KEYWORDS_MUST_BE_DIFFERENT = "UnsubscribeKeywordsMustBeDifferent"; - public const string UNSUBSCRIBE_COOLDOWN_SECONDS_REQUIRED = "UnsubscribeCooldownSecondsRequired"; } diff --git a/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs b/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs index 22839eb3..3b1a5398 100644 --- a/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs +++ b/src/Domain/Masa.Mc.Domain/MessageTemplates/Aggregates/MessageTemplateUnsubscribeConfig.cs @@ -12,15 +12,11 @@ public class MessageTemplateUnsubscribeConfig : ValueObject public string UnsubscribeKeyword { get; protected set; } = string.Empty; - public string UnsubscribeAutoReplyTemplateId { get; protected set; } = string.Empty; + public Guid UnsubscribeAutoReplyTemplateId { get; protected set; } public string ResubscribeKeyword { get; protected set; } = string.Empty; - public string ResubscribeAutoReplyTemplateId { get; protected set; } = string.Empty; - - public bool DebounceEnabled { get; protected set; } - - public int CooldownSeconds { get; protected set; } + public Guid ResubscribeAutoReplyTemplateId { get; protected set; } private MessageTemplateUnsubscribeConfig() { @@ -29,26 +25,22 @@ private MessageTemplateUnsubscribeConfig() public MessageTemplateUnsubscribeConfig( bool enabled, string unsubscribeKeyword, - string unsubscribeAutoReplyTemplateId, + Guid unsubscribeAutoReplyTemplateId, string resubscribeKeyword, - string resubscribeAutoReplyTemplateId, - bool debounceEnabled, - int cooldownSeconds) + Guid resubscribeAutoReplyTemplateId) { Enabled = enabled; UnsubscribeKeyword = (unsubscribeKeyword ?? string.Empty).Trim(); - UnsubscribeAutoReplyTemplateId = (unsubscribeAutoReplyTemplateId ?? string.Empty).Trim(); + UnsubscribeAutoReplyTemplateId = unsubscribeAutoReplyTemplateId; ResubscribeKeyword = (resubscribeKeyword ?? string.Empty).Trim(); - ResubscribeAutoReplyTemplateId = (resubscribeAutoReplyTemplateId ?? string.Empty).Trim(); - DebounceEnabled = debounceEnabled; - CooldownSeconds = cooldownSeconds; + ResubscribeAutoReplyTemplateId = resubscribeAutoReplyTemplateId; NormalizeAndValidate(); } public static MessageTemplateUnsubscribeConfig Disabled() { - return new MessageTemplateUnsubscribeConfig(false, string.Empty, string.Empty, string.Empty, string.Empty, false, 0); + return new MessageTemplateUnsubscribeConfig(false, string.Empty, Guid.Empty, string.Empty, Guid.Empty); } public string BuildSuffix() @@ -82,13 +74,13 @@ public SmsInboundKeywordAction ResolveInboundKeywordAction(string inboundKeyword return SmsInboundKeywordAction.None; } - public string GetAutoReplyTemplateId(SmsInboundKeywordAction action) + public Guid GetAutoReplyTemplateId(SmsInboundKeywordAction action) { return action switch { SmsInboundKeywordAction.Unsubscribe => UnsubscribeAutoReplyTemplateId, SmsInboundKeywordAction.Resubscribe => ResubscribeAutoReplyTemplateId, - _ => string.Empty + _ => Guid.Empty }; } @@ -101,8 +93,6 @@ public void Apply(MessageTemplateUnsubscribeConfig config) UnsubscribeAutoReplyTemplateId = config.UnsubscribeAutoReplyTemplateId; ResubscribeKeyword = config.ResubscribeKeyword; ResubscribeAutoReplyTemplateId = config.ResubscribeAutoReplyTemplateId; - DebounceEnabled = config.DebounceEnabled; - CooldownSeconds = config.CooldownSeconds; NormalizeAndValidate(); } @@ -114,20 +104,16 @@ protected override IEnumerable GetEqualityValues() yield return UnsubscribeAutoReplyTemplateId; yield return ResubscribeKeyword; yield return ResubscribeAutoReplyTemplateId; - yield return DebounceEnabled; - yield return CooldownSeconds; } private void NormalizeAndValidate() { if (!Enabled) { - DebounceEnabled = false; - CooldownSeconds = 0; UnsubscribeKeyword = string.Empty; - UnsubscribeAutoReplyTemplateId = string.Empty; + UnsubscribeAutoReplyTemplateId = Guid.Empty; ResubscribeKeyword = string.Empty; - ResubscribeAutoReplyTemplateId = string.Empty; + ResubscribeAutoReplyTemplateId = Guid.Empty; return; } @@ -146,9 +132,14 @@ private void NormalizeAndValidate() throw new UserFriendlyException(errorCode: MessageTemplateExceptionCodes.UNSUBSCRIBE_KEYWORDS_MUST_BE_DIFFERENT); } - if (!DebounceEnabled) + if (UnsubscribeAutoReplyTemplateId == Guid.Empty) + { + throw new UserFriendlyException(errorCode: MessageTemplateExceptionCodes.UNSUBSCRIBE_AUTO_REPLY_REQUIRED); + } + + if (ResubscribeAutoReplyTemplateId == Guid.Empty) { - CooldownSeconds = 0; + throw new UserFriendlyException(errorCode: MessageTemplateExceptionCodes.RESUBSCRIBE_AUTO_REPLY_REQUIRED); } } } diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092014_RefactorUnsubscribeAutoReplyTemplateToGuid.Designer.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092014_RefactorUnsubscribeAutoReplyTemplateToGuid.Designer.cs new file mode 100644 index 00000000..f0ed2a59 --- /dev/null +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092014_RefactorUnsubscribeAutoReplyTemplateToGuid.Designer.cs @@ -0,0 +1,1454 @@ +// +using System; +using Masa.Mc.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace Masa.Mc.EntityFrameworkCore.PostgreSql.Migrations +{ + [DbContext(typeof(McDbContext))] + [Migration("20260629092014_RefactorUnsubscribeAutoReplyTemplateToGuid")] + partial class RefactorUnsubscribeAutoReplyTemplateToGuid + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.7") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("Masa.BuildingBlocks.Dispatcher.IntegrationEvents.Logs.IntegrationEventLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("EventId") + .HasColumnType("uuid"); + + b.Property("EventTypeName") + .IsRequired() + .HasColumnType("text"); + + b.Property("ExpandContent") + .IsRequired() + .HasColumnType("text"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("RowVersion") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(36) + .HasColumnType("character varying(36)") + .HasColumnName("RowVersion"); + + b.Property("State") + .HasColumnType("integer"); + + b.Property("TimesSent") + .HasColumnType("integer"); + + b.Property("TransactionId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex(new[] { "EventId", "RowVersion" }, "IX_EventId_Version"); + + b.HasIndex(new[] { "State", "ModificationTime" }, "IX_State_MTime"); + + b.HasIndex(new[] { "State", "TimesSent", "ModificationTime" }, "IX_State_TimesSent_MTime"); + + b.ToTable("IntegrationEventLog", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Apps.Aggregates.AppDeviceToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DeviceToken") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Platform") + .HasColumnType("integer"); + + b.Property("RegisteredTime") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId", "UserId", "Platform"); + + b.ToTable("AppDeviceTokens", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Apps.Aggregates.AppVendorConfig", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Options") + .IsRequired() + .HasColumnType("text"); + + b.Property("Vendor") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId", "Vendor"); + + b.ToTable("AppVendorConfigs", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.AppChannel", b => + { + b.Property("Id") + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(64) + .HasColumnType("character varying(64)") + .HasColumnName("Code"); + + b.Property("Color") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Color"); + + b.Property("DisplayName") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("DisplayName"); + + b.Property("Provider") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Provider"); + + b.Property("Scheme") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Scheme"); + + b.Property("SchemeField") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("SchemeField"); + + b.Property("Type") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Type"); + + b.HasKey("Id"); + + b.ToTable("Channels", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.Channel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(64) + .HasColumnType("character varying(64)") + .HasColumnName("Code"); + + b.Property("Color") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Color"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("character varying(512)"); + + b.Property("DisplayName") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("DisplayName"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsStatic") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Provider") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Provider"); + + b.Property("Scheme") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Scheme"); + + b.Property("SchemeField") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("SchemeField"); + + b.Property("Type") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Type"); + + b.HasKey("Id"); + + b.HasIndex("Code"); + + b.HasIndex("Type"); + + b.ToTable("Channels", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageInfos.Aggregates.MessageInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Type") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("MessageInfos", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageReceipts.Aggregates.SmsInbound", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AddSerial") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Mobile") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("character varying(32)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Provider") + .HasColumnType("integer"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("SmsContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("character varying(1000)"); + + b.HasKey("Id"); + + b.HasIndex("Provider"); + + b.HasIndex("SendTime"); + + b.HasIndex("ChannelId", "SendTime"); + + b.HasIndex("Mobile", "SendTime"); + + b.ToTable("SmsInbounds", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageRecords.Aggregates.MessageRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("ExpectSendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("FailureReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("MessageEntityId") + .HasColumnType("uuid"); + + b.Property("MessageEntityType") + .HasColumnType("integer"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("MessageTaskId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Success") + .HasColumnType("boolean"); + + b.Property("SystemId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("MessageId"); + + b.HasIndex("MessageTaskHistoryId"); + + b.HasIndex("UserId"); + + b.ToTable("MessageRecords", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageReceiverUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("Platform") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("MessageTaskHistoryId", "ChannelUserIdentity", "Platform"); + + b.ToTable("MessageReceiverUsers", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelType") + .HasColumnType("integer"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("EntityId") + .HasColumnType("uuid"); + + b.Property("EntityType") + .HasColumnType("integer"); + + b.Property("ExpectSendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsDraft") + .HasColumnType("boolean"); + + b.Property("IsEnabled") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("ReceiverType") + .HasColumnType("integer"); + + b.Property("Receivers") + .IsRequired() + .HasColumnType("text"); + + b.Property("SchedulerJobId") + .HasColumnType("uuid"); + + b.Property("SelectReceiverType") + .HasColumnType("integer"); + + b.Property("SendRules") + .IsRequired() + .HasColumnType("text"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Sign") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Source") + .HasColumnType("integer"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("SystemId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Source"); + + b.ToTable("MessageTasks", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CompletionTime") + .HasColumnType("timestamp with time zone"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsTest") + .HasColumnType("boolean"); + + b.Property("MessageTaskId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("SchedulerTaskId") + .HasColumnType("uuid"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("TaskHistoryNo") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("WithdrawTime") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.HasIndex("MessageTaskId"); + + b.ToTable("MessageTaskHistorys", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AuditReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("AuditStatus") + .HasColumnType("integer"); + + b.Property("AuditTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Example") + .IsRequired() + .HasColumnType("text"); + + b.Property("InvalidTime") + .HasColumnType("timestamp with time zone"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsStatic") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Options") + .IsRequired() + .HasColumnType("text"); + + b.Property("PerDayLimit") + .HasColumnType("bigint"); + + b.Property("Sign") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("TemplateId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Code"); + + b.ToTable("MessageTemplates", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("character varying(512)"); + + b.Property("DisplayText") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("MappingCode") + .IsRequired() + .HasColumnType("text"); + + b.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("MessageTemplateId"); + + b.HasIndex("Code", "MessageTemplateId"); + + b.ToTable("MessageTemplateItems", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.SmsTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AuditReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("AuditStatus") + .HasColumnType("integer"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("TemplateCode") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateContent") + .IsRequired() + .HasColumnType("text"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.ToTable("SmsTemplates", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.ToTable("ReceiverGroups", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelProvider") + .HasColumnType("integer"); + + b.Property("ChannelType") + .HasColumnType("integer"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Keyword") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("character varying(20)"); + + b.Property("LastInboundMessageId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("character varying(500)"); + + b.Property("ResubscribedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("ScopeRefId") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ScopeType") + .HasColumnType("integer"); + + b.Property("Source") + .HasColumnType("integer"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("UnsubscribedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("LastInboundMessageId"); + + b.HasIndex("UserId"); + + b.HasIndex("ChannelType", "ChannelProvider", "UnsubscribedAt"); + + b.HasIndex("ChannelUserIdentity", "Status", "ScopeType"); + + b.HasIndex("ChannelId", "ChannelUserIdentity", "Status", "UnsubscribedAt"); + + b.HasIndex("ChannelId", "ChannelUserIdentity", "ScopeType", "ScopeRefId", "Status", "UnsubscribedAt"); + + b.ToTable("Unsubscriptions", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.UnsubscriptionTimeline", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Action") + .HasColumnType("integer"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Detail") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("character varying(1000)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("OccurredAt") + .HasColumnType("timestamp with time zone"); + + b.Property("UnsubscriptionId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("UnsubscriptionId", "OccurredAt"); + + b.HasIndex("OccurredAt", "Action", "UnsubscriptionId"); + + b.ToTable("UnsubscriptionTimelines", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsRead") + .HasColumnType("boolean"); + + b.Property("IsWithdrawn") + .HasColumnType("boolean"); + + b.Property("LinkUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("ReadTime") + .HasColumnType("timestamp with time zone"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("UserId", "ChannelId"); + + b.ToTable("WebsiteMessages", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessageCursor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("UpdateTime") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("WebsiteMessageCursors", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.AppChannel", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.Channel", null) + .WithOne() + .HasForeignKey("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageInfos.Aggregates.MessageInfo", b => + { + b.OwnsOne("Masa.Mc.Domain.MessageInfos.Aggregates.MessageContent", "MessageContent", b1 => + { + b1.Property("MessageInfoId") + .HasColumnType("uuid"); + + b1.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Content"); + + b1.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text") + .HasColumnName("ExtraProperties"); + + b1.Property("IsJump") + .HasMaxLength(128) + .HasColumnType("boolean") + .HasColumnName("IsJump"); + + b1.Property("JumpUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)") + .HasColumnName("JumpUrl"); + + b1.Property("Markdown") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Markdown"); + + b1.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Title"); + + b1.HasKey("MessageInfoId"); + + b1.ToTable("MessageInfos"); + + b1.WithOwner() + .HasForeignKey("MessageInfoId"); + }); + + b.Navigation("MessageContent") + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageRecords.Aggregates.MessageRecord", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageReceiverUser", b => + { + b.HasOne("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", null) + .WithMany("ReceiverUsers") + .HasForeignKey("MessageTaskHistoryId"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId"); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.HasOne("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", "MessageTask") + .WithMany() + .HasForeignKey("MessageTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MessageTask"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.OwnsOne("Masa.Mc.Domain.MessageInfos.Aggregates.MessageContent", "MessageContent", b1 => + { + b1.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b1.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Content"); + + b1.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text") + .HasColumnName("ExtraProperties"); + + b1.Property("IsJump") + .HasMaxLength(128) + .HasColumnType("boolean") + .HasColumnName("IsJump"); + + b1.Property("JumpUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)") + .HasColumnName("JumpUrl"); + + b1.Property("Markdown") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Markdown"); + + b1.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Title"); + + b1.HasKey("MessageTemplateId"); + + b1.ToTable("MessageTemplates"); + + b1.WithOwner() + .HasForeignKey("MessageTemplateId"); + }); + + b.OwnsOne("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateUnsubscribeConfig", "UnsubscribeConfig", b1 => + { + b1.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b1.Property("CooldownSeconds") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasDefaultValue(0) + .HasColumnName("CooldownSeconds"); + + b1.Property("DebounceEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("DebounceEnabled"); + + b1.Property("Enabled") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("Enabled"); + + b1.Property("ResubscribeAutoReplyTemplateId") + .HasColumnType("uuid") + .HasColumnName("ResubscribeAutoReplyTemplateId"); + + b1.Property("ResubscribeKeyword") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(20) + .HasColumnType("character varying(20)") + .HasDefaultValue("") + .HasColumnName("ResubscribeKeyword"); + + b1.Property("UnsubscribeAutoReplyTemplateId") + .HasColumnType("uuid") + .HasColumnName("UnsubscribeAutoReplyTemplateId"); + + b1.Property("UnsubscribeKeyword") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(20) + .HasColumnType("character varying(20)") + .HasDefaultValue("") + .HasColumnName("UnsubscribeKeyword"); + + b1.HasKey("MessageTemplateId"); + + b1.ToTable("MessageTemplateUnsubscribeConfigs", (string)null); + + b1.WithOwner() + .HasForeignKey("MessageTemplateId"); + }); + + b.Navigation("MessageContent") + .IsRequired(); + + b.Navigation("UnsubscribeConfig"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => + { + b.HasOne("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", null) + .WithMany("Items") + .HasForeignKey("MessageTemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroup", b => + { + b.OwnsMany("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroupItem", "Items", b1 => + { + b1.Property("GroupId") + .HasColumnType("uuid"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b1.Property("Avatar") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b1.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b1.Property("SubjectId") + .HasColumnType("uuid"); + + b1.Property("Type") + .HasColumnType("integer"); + + b1.HasKey("GroupId", "Id"); + + b1.ToTable("ReceiverGroupItems", (string)null); + + b1.WithOwner() + .HasForeignKey("GroupId"); + }); + + b.Navigation("Items"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.UnsubscriptionTimeline", b => + { + b.HasOne("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", null) + .WithMany("Timelines") + .HasForeignKey("UnsubscriptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessage", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessageTag", "Tags", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b1.Property("ChannelId") + .HasColumnType("uuid"); + + b1.Property("CreationTime") + .ValueGeneratedOnAdd() + .HasColumnType("timestamp with time zone"); + + b1.Property("Tag") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Tag"); + + b1.Property("UserId") + .HasColumnType("uuid"); + + b1.Property("WebsiteMessageId") + .HasColumnType("uuid"); + + b1.HasKey("Id"); + + b1.HasIndex("ChannelId"); + + b1.HasIndex("Tag"); + + b1.HasIndex("UserId"); + + b1.HasIndex("WebsiteMessageId"); + + b1.ToTable("WebsiteMessageTags", (string)null); + + b1.WithOwner() + .HasForeignKey("WebsiteMessageId"); + }); + + b.Navigation("Channel"); + + b.Navigation("Tags"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.Navigation("ReceiverUsers"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", b => + { + b.Navigation("Timelines"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092014_RefactorUnsubscribeAutoReplyTemplateToGuid.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092014_RefactorUnsubscribeAutoReplyTemplateToGuid.cs new file mode 100644 index 00000000..bcacc28b --- /dev/null +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092014_RefactorUnsubscribeAutoReplyTemplateToGuid.cs @@ -0,0 +1,60 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Masa.Mc.EntityFrameworkCore.PostgreSql.Migrations +{ + public partial class RefactorUnsubscribeAutoReplyTemplateToGuid : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "ResubscribeAutoReply", + table: "MessageTemplateUnsubscribeConfigs"); + + migrationBuilder.DropColumn( + name: "UnsubscribeAutoReply", + table: "MessageTemplateUnsubscribeConfigs"); + + migrationBuilder.AddColumn( + name: "ResubscribeAutoReplyTemplateId", + table: "MessageTemplateUnsubscribeConfigs", + type: "uuid", + nullable: true); + + migrationBuilder.AddColumn( + name: "UnsubscribeAutoReplyTemplateId", + table: "MessageTemplateUnsubscribeConfigs", + type: "uuid", + nullable: true); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "ResubscribeAutoReplyTemplateId", + table: "MessageTemplateUnsubscribeConfigs"); + + migrationBuilder.DropColumn( + name: "UnsubscribeAutoReplyTemplateId", + table: "MessageTemplateUnsubscribeConfigs"); + + migrationBuilder.AddColumn( + name: "ResubscribeAutoReply", + table: "MessageTemplateUnsubscribeConfigs", + type: "character varying(500)", + maxLength: 500, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "UnsubscribeAutoReply", + table: "MessageTemplateUnsubscribeConfigs", + type: "character varying(500)", + maxLength: 500, + nullable: false, + defaultValue: ""); + } + } +} diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092250_RemoveUnsubscribeDebounceFields.Designer.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092250_RemoveUnsubscribeDebounceFields.Designer.cs new file mode 100644 index 00000000..4d379565 --- /dev/null +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092250_RemoveUnsubscribeDebounceFields.Designer.cs @@ -0,0 +1,1442 @@ +// +using System; +using Masa.Mc.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace Masa.Mc.EntityFrameworkCore.PostgreSql.Migrations +{ + [DbContext(typeof(McDbContext))] + [Migration("20260629092250_RemoveUnsubscribeDebounceFields")] + partial class RemoveUnsubscribeDebounceFields + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.7") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("Masa.BuildingBlocks.Dispatcher.IntegrationEvents.Logs.IntegrationEventLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("EventId") + .HasColumnType("uuid"); + + b.Property("EventTypeName") + .IsRequired() + .HasColumnType("text"); + + b.Property("ExpandContent") + .IsRequired() + .HasColumnType("text"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("RowVersion") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(36) + .HasColumnType("character varying(36)") + .HasColumnName("RowVersion"); + + b.Property("State") + .HasColumnType("integer"); + + b.Property("TimesSent") + .HasColumnType("integer"); + + b.Property("TransactionId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex(new[] { "EventId", "RowVersion" }, "IX_EventId_Version"); + + b.HasIndex(new[] { "State", "ModificationTime" }, "IX_State_MTime"); + + b.HasIndex(new[] { "State", "TimesSent", "ModificationTime" }, "IX_State_TimesSent_MTime"); + + b.ToTable("IntegrationEventLog", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Apps.Aggregates.AppDeviceToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DeviceToken") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Platform") + .HasColumnType("integer"); + + b.Property("RegisteredTime") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId", "UserId", "Platform"); + + b.ToTable("AppDeviceTokens", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Apps.Aggregates.AppVendorConfig", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Options") + .IsRequired() + .HasColumnType("text"); + + b.Property("Vendor") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId", "Vendor"); + + b.ToTable("AppVendorConfigs", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.AppChannel", b => + { + b.Property("Id") + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(64) + .HasColumnType("character varying(64)") + .HasColumnName("Code"); + + b.Property("Color") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Color"); + + b.Property("DisplayName") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("DisplayName"); + + b.Property("Provider") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Provider"); + + b.Property("Scheme") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Scheme"); + + b.Property("SchemeField") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("SchemeField"); + + b.Property("Type") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Type"); + + b.HasKey("Id"); + + b.ToTable("Channels", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.Channel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(64) + .HasColumnType("character varying(64)") + .HasColumnName("Code"); + + b.Property("Color") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Color"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("character varying(512)"); + + b.Property("DisplayName") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("DisplayName"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsStatic") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Provider") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Provider"); + + b.Property("Scheme") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Scheme"); + + b.Property("SchemeField") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("SchemeField"); + + b.Property("Type") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Type"); + + b.HasKey("Id"); + + b.HasIndex("Code"); + + b.HasIndex("Type"); + + b.ToTable("Channels", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageInfos.Aggregates.MessageInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Type") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("MessageInfos", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageReceipts.Aggregates.SmsInbound", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AddSerial") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Mobile") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("character varying(32)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Provider") + .HasColumnType("integer"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("SmsContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("character varying(1000)"); + + b.HasKey("Id"); + + b.HasIndex("Provider"); + + b.HasIndex("SendTime"); + + b.HasIndex("ChannelId", "SendTime"); + + b.HasIndex("Mobile", "SendTime"); + + b.ToTable("SmsInbounds", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageRecords.Aggregates.MessageRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("ExpectSendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("FailureReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("MessageEntityId") + .HasColumnType("uuid"); + + b.Property("MessageEntityType") + .HasColumnType("integer"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("MessageTaskId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Success") + .HasColumnType("boolean"); + + b.Property("SystemId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("MessageId"); + + b.HasIndex("MessageTaskHistoryId"); + + b.HasIndex("UserId"); + + b.ToTable("MessageRecords", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageReceiverUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("Platform") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("MessageTaskHistoryId", "ChannelUserIdentity", "Platform"); + + b.ToTable("MessageReceiverUsers", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelType") + .HasColumnType("integer"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("EntityId") + .HasColumnType("uuid"); + + b.Property("EntityType") + .HasColumnType("integer"); + + b.Property("ExpectSendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsDraft") + .HasColumnType("boolean"); + + b.Property("IsEnabled") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("ReceiverType") + .HasColumnType("integer"); + + b.Property("Receivers") + .IsRequired() + .HasColumnType("text"); + + b.Property("SchedulerJobId") + .HasColumnType("uuid"); + + b.Property("SelectReceiverType") + .HasColumnType("integer"); + + b.Property("SendRules") + .IsRequired() + .HasColumnType("text"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Sign") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Source") + .HasColumnType("integer"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("SystemId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Source"); + + b.ToTable("MessageTasks", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CompletionTime") + .HasColumnType("timestamp with time zone"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsTest") + .HasColumnType("boolean"); + + b.Property("MessageTaskId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("SchedulerTaskId") + .HasColumnType("uuid"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("TaskHistoryNo") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("WithdrawTime") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.HasIndex("MessageTaskId"); + + b.ToTable("MessageTaskHistorys", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AuditReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("AuditStatus") + .HasColumnType("integer"); + + b.Property("AuditTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Example") + .IsRequired() + .HasColumnType("text"); + + b.Property("InvalidTime") + .HasColumnType("timestamp with time zone"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsStatic") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Options") + .IsRequired() + .HasColumnType("text"); + + b.Property("PerDayLimit") + .HasColumnType("bigint"); + + b.Property("Sign") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("TemplateId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Code"); + + b.ToTable("MessageTemplates", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("character varying(512)"); + + b.Property("DisplayText") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("MappingCode") + .IsRequired() + .HasColumnType("text"); + + b.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("MessageTemplateId"); + + b.HasIndex("Code", "MessageTemplateId"); + + b.ToTable("MessageTemplateItems", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.SmsTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AuditReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("AuditStatus") + .HasColumnType("integer"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("TemplateCode") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateContent") + .IsRequired() + .HasColumnType("text"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.ToTable("SmsTemplates", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.ToTable("ReceiverGroups", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelProvider") + .HasColumnType("integer"); + + b.Property("ChannelType") + .HasColumnType("integer"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Keyword") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("character varying(20)"); + + b.Property("LastInboundMessageId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("character varying(500)"); + + b.Property("ResubscribedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("ScopeRefId") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ScopeType") + .HasColumnType("integer"); + + b.Property("Source") + .HasColumnType("integer"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("UnsubscribedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("LastInboundMessageId"); + + b.HasIndex("UserId"); + + b.HasIndex("ChannelType", "ChannelProvider", "UnsubscribedAt"); + + b.HasIndex("ChannelUserIdentity", "Status", "ScopeType"); + + b.HasIndex("ChannelId", "ChannelUserIdentity", "Status", "UnsubscribedAt"); + + b.HasIndex("ChannelId", "ChannelUserIdentity", "ScopeType", "ScopeRefId", "Status", "UnsubscribedAt"); + + b.ToTable("Unsubscriptions", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.UnsubscriptionTimeline", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Action") + .HasColumnType("integer"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Detail") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("character varying(1000)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("OccurredAt") + .HasColumnType("timestamp with time zone"); + + b.Property("UnsubscriptionId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("UnsubscriptionId", "OccurredAt"); + + b.HasIndex("OccurredAt", "Action", "UnsubscriptionId"); + + b.ToTable("UnsubscriptionTimelines", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsRead") + .HasColumnType("boolean"); + + b.Property("IsWithdrawn") + .HasColumnType("boolean"); + + b.Property("LinkUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("ReadTime") + .HasColumnType("timestamp with time zone"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("UserId", "ChannelId"); + + b.ToTable("WebsiteMessages", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessageCursor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("UpdateTime") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("WebsiteMessageCursors", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.AppChannel", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.Channel", null) + .WithOne() + .HasForeignKey("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageInfos.Aggregates.MessageInfo", b => + { + b.OwnsOne("Masa.Mc.Domain.MessageInfos.Aggregates.MessageContent", "MessageContent", b1 => + { + b1.Property("MessageInfoId") + .HasColumnType("uuid"); + + b1.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Content"); + + b1.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text") + .HasColumnName("ExtraProperties"); + + b1.Property("IsJump") + .HasMaxLength(128) + .HasColumnType("boolean") + .HasColumnName("IsJump"); + + b1.Property("JumpUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)") + .HasColumnName("JumpUrl"); + + b1.Property("Markdown") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Markdown"); + + b1.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Title"); + + b1.HasKey("MessageInfoId"); + + b1.ToTable("MessageInfos"); + + b1.WithOwner() + .HasForeignKey("MessageInfoId"); + }); + + b.Navigation("MessageContent") + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageRecords.Aggregates.MessageRecord", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageReceiverUser", b => + { + b.HasOne("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", null) + .WithMany("ReceiverUsers") + .HasForeignKey("MessageTaskHistoryId"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId"); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.HasOne("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", "MessageTask") + .WithMany() + .HasForeignKey("MessageTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MessageTask"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.OwnsOne("Masa.Mc.Domain.MessageInfos.Aggregates.MessageContent", "MessageContent", b1 => + { + b1.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b1.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Content"); + + b1.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text") + .HasColumnName("ExtraProperties"); + + b1.Property("IsJump") + .HasMaxLength(128) + .HasColumnType("boolean") + .HasColumnName("IsJump"); + + b1.Property("JumpUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)") + .HasColumnName("JumpUrl"); + + b1.Property("Markdown") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Markdown"); + + b1.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Title"); + + b1.HasKey("MessageTemplateId"); + + b1.ToTable("MessageTemplates"); + + b1.WithOwner() + .HasForeignKey("MessageTemplateId"); + }); + + b.OwnsOne("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateUnsubscribeConfig", "UnsubscribeConfig", b1 => + { + b1.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b1.Property("Enabled") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("Enabled"); + + b1.Property("ResubscribeAutoReplyTemplateId") + .HasColumnType("uuid") + .HasColumnName("ResubscribeAutoReplyTemplateId"); + + b1.Property("ResubscribeKeyword") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(20) + .HasColumnType("character varying(20)") + .HasDefaultValue("") + .HasColumnName("ResubscribeKeyword"); + + b1.Property("UnsubscribeAutoReplyTemplateId") + .HasColumnType("uuid") + .HasColumnName("UnsubscribeAutoReplyTemplateId"); + + b1.Property("UnsubscribeKeyword") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(20) + .HasColumnType("character varying(20)") + .HasDefaultValue("") + .HasColumnName("UnsubscribeKeyword"); + + b1.HasKey("MessageTemplateId"); + + b1.ToTable("MessageTemplateUnsubscribeConfigs", (string)null); + + b1.WithOwner() + .HasForeignKey("MessageTemplateId"); + }); + + b.Navigation("MessageContent") + .IsRequired(); + + b.Navigation("UnsubscribeConfig"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => + { + b.HasOne("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", null) + .WithMany("Items") + .HasForeignKey("MessageTemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroup", b => + { + b.OwnsMany("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroupItem", "Items", b1 => + { + b1.Property("GroupId") + .HasColumnType("uuid"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b1.Property("Avatar") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b1.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b1.Property("SubjectId") + .HasColumnType("uuid"); + + b1.Property("Type") + .HasColumnType("integer"); + + b1.HasKey("GroupId", "Id"); + + b1.ToTable("ReceiverGroupItems", (string)null); + + b1.WithOwner() + .HasForeignKey("GroupId"); + }); + + b.Navigation("Items"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.UnsubscriptionTimeline", b => + { + b.HasOne("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", null) + .WithMany("Timelines") + .HasForeignKey("UnsubscriptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessage", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessageTag", "Tags", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b1.Property("ChannelId") + .HasColumnType("uuid"); + + b1.Property("CreationTime") + .ValueGeneratedOnAdd() + .HasColumnType("timestamp with time zone"); + + b1.Property("Tag") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Tag"); + + b1.Property("UserId") + .HasColumnType("uuid"); + + b1.Property("WebsiteMessageId") + .HasColumnType("uuid"); + + b1.HasKey("Id"); + + b1.HasIndex("ChannelId"); + + b1.HasIndex("Tag"); + + b1.HasIndex("UserId"); + + b1.HasIndex("WebsiteMessageId"); + + b1.ToTable("WebsiteMessageTags", (string)null); + + b1.WithOwner() + .HasForeignKey("WebsiteMessageId"); + }); + + b.Navigation("Channel"); + + b.Navigation("Tags"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.Navigation("ReceiverUsers"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", b => + { + b.Navigation("Timelines"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092250_RemoveUnsubscribeDebounceFields.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092250_RemoveUnsubscribeDebounceFields.cs new file mode 100644 index 00000000..44b8abbb --- /dev/null +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629092250_RemoveUnsubscribeDebounceFields.cs @@ -0,0 +1,37 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Masa.Mc.EntityFrameworkCore.PostgreSql.Migrations +{ + public partial class RemoveUnsubscribeDebounceFields : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "CooldownSeconds", + table: "MessageTemplateUnsubscribeConfigs"); + + migrationBuilder.DropColumn( + name: "DebounceEnabled", + table: "MessageTemplateUnsubscribeConfigs"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "CooldownSeconds", + table: "MessageTemplateUnsubscribeConfigs", + type: "integer", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "DebounceEnabled", + table: "MessageTemplateUnsubscribeConfigs", + type: "boolean", + nullable: false, + defaultValue: false); + } + } +} diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629093124_MakeUnsubscribeAutoReplyTemplateRequired.Designer.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629093124_MakeUnsubscribeAutoReplyTemplateRequired.Designer.cs new file mode 100644 index 00000000..7ee0cff3 --- /dev/null +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629093124_MakeUnsubscribeAutoReplyTemplateRequired.Designer.cs @@ -0,0 +1,1442 @@ +// +using System; +using Masa.Mc.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace Masa.Mc.EntityFrameworkCore.PostgreSql.Migrations +{ + [DbContext(typeof(McDbContext))] + [Migration("20260629093124_MakeUnsubscribeAutoReplyTemplateRequired")] + partial class MakeUnsubscribeAutoReplyTemplateRequired + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.7") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("Masa.BuildingBlocks.Dispatcher.IntegrationEvents.Logs.IntegrationEventLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("EventId") + .HasColumnType("uuid"); + + b.Property("EventTypeName") + .IsRequired() + .HasColumnType("text"); + + b.Property("ExpandContent") + .IsRequired() + .HasColumnType("text"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("RowVersion") + .IsConcurrencyToken() + .IsRequired() + .HasMaxLength(36) + .HasColumnType("character varying(36)") + .HasColumnName("RowVersion"); + + b.Property("State") + .HasColumnType("integer"); + + b.Property("TimesSent") + .HasColumnType("integer"); + + b.Property("TransactionId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex(new[] { "EventId", "RowVersion" }, "IX_EventId_Version"); + + b.HasIndex(new[] { "State", "ModificationTime" }, "IX_State_MTime"); + + b.HasIndex(new[] { "State", "TimesSent", "ModificationTime" }, "IX_State_TimesSent_MTime"); + + b.ToTable("IntegrationEventLog", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Apps.Aggregates.AppDeviceToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DeviceToken") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Platform") + .HasColumnType("integer"); + + b.Property("RegisteredTime") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId", "UserId", "Platform"); + + b.ToTable("AppDeviceTokens", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Apps.Aggregates.AppVendorConfig", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Options") + .IsRequired() + .HasColumnType("text"); + + b.Property("Vendor") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId", "Vendor"); + + b.ToTable("AppVendorConfigs", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.AppChannel", b => + { + b.Property("Id") + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(64) + .HasColumnType("character varying(64)") + .HasColumnName("Code"); + + b.Property("Color") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Color"); + + b.Property("DisplayName") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("DisplayName"); + + b.Property("Provider") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Provider"); + + b.Property("Scheme") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Scheme"); + + b.Property("SchemeField") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("SchemeField"); + + b.Property("Type") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Type"); + + b.HasKey("Id"); + + b.ToTable("Channels", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.Channel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(64) + .HasColumnType("character varying(64)") + .HasColumnName("Code"); + + b.Property("Color") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Color"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("character varying(512)"); + + b.Property("DisplayName") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("DisplayName"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsStatic") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Provider") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Provider"); + + b.Property("Scheme") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Scheme"); + + b.Property("SchemeField") + .IsRequired() + .ValueGeneratedOnUpdateSometimes() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("SchemeField"); + + b.Property("Type") + .ValueGeneratedOnUpdateSometimes() + .HasColumnType("integer") + .HasColumnName("Type"); + + b.HasKey("Id"); + + b.HasIndex("Code"); + + b.HasIndex("Type"); + + b.ToTable("Channels", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageInfos.Aggregates.MessageInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Type") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("MessageInfos", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageReceipts.Aggregates.SmsInbound", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AddSerial") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Mobile") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("character varying(32)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Provider") + .HasColumnType("integer"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("SmsContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("character varying(1000)"); + + b.HasKey("Id"); + + b.HasIndex("Provider"); + + b.HasIndex("SendTime"); + + b.HasIndex("ChannelId", "SendTime"); + + b.HasIndex("Mobile", "SendTime"); + + b.ToTable("SmsInbounds", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageRecords.Aggregates.MessageRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("ExpectSendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("FailureReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("MessageEntityId") + .HasColumnType("uuid"); + + b.Property("MessageEntityType") + .HasColumnType("integer"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("MessageTaskId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Success") + .HasColumnType("boolean"); + + b.Property("SystemId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("MessageId"); + + b.HasIndex("MessageTaskHistoryId"); + + b.HasIndex("UserId"); + + b.ToTable("MessageRecords", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageReceiverUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("Platform") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("MessageTaskHistoryId", "ChannelUserIdentity", "Platform"); + + b.ToTable("MessageReceiverUsers", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelType") + .HasColumnType("integer"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("EntityId") + .HasColumnType("uuid"); + + b.Property("EntityType") + .HasColumnType("integer"); + + b.Property("ExpectSendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsDraft") + .HasColumnType("boolean"); + + b.Property("IsEnabled") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("ReceiverType") + .HasColumnType("integer"); + + b.Property("Receivers") + .IsRequired() + .HasColumnType("text"); + + b.Property("SchedulerJobId") + .HasColumnType("uuid"); + + b.Property("SelectReceiverType") + .HasColumnType("integer"); + + b.Property("SendRules") + .IsRequired() + .HasColumnType("text"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Sign") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Source") + .HasColumnType("integer"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("SystemId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Variables") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Source"); + + b.ToTable("MessageTasks", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CompletionTime") + .HasColumnType("timestamp with time zone"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsTest") + .HasColumnType("boolean"); + + b.Property("MessageTaskId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("SchedulerTaskId") + .HasColumnType("uuid"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("TaskHistoryNo") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("WithdrawTime") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.HasIndex("MessageTaskId"); + + b.ToTable("MessageTaskHistorys", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AuditReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("AuditStatus") + .HasColumnType("integer"); + + b.Property("AuditTime") + .HasColumnType("timestamp with time zone"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Example") + .IsRequired() + .HasColumnType("text"); + + b.Property("InvalidTime") + .HasColumnType("timestamp with time zone"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsStatic") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Options") + .IsRequired() + .HasColumnType("text"); + + b.Property("PerDayLimit") + .HasColumnType("bigint"); + + b.Property("Sign") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("TemplateId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("Code"); + + b.ToTable("MessageTemplates", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("character varying(512)"); + + b.Property("DisplayText") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("MappingCode") + .IsRequired() + .HasColumnType("text"); + + b.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("MessageTemplateId"); + + b.HasIndex("Code", "MessageTemplateId"); + + b.ToTable("MessageTemplateItems", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.SmsTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("AuditReason") + .IsRequired() + .HasColumnType("text"); + + b.Property("AuditStatus") + .HasColumnType("integer"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("TemplateCode") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateContent") + .IsRequired() + .HasColumnType("text"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("TemplateType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.ToTable("SmsTemplates", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.ToTable("ReceiverGroups", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("ChannelProvider") + .HasColumnType("integer"); + + b.Property("ChannelType") + .HasColumnType("integer"); + + b.Property("ChannelUserIdentity") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Keyword") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("character varying(20)"); + + b.Property("LastInboundMessageId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("character varying(500)"); + + b.Property("ResubscribedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("ScopeRefId") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("ScopeType") + .HasColumnType("integer"); + + b.Property("Source") + .HasColumnType("integer"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("UnsubscribedAt") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("LastInboundMessageId"); + + b.HasIndex("UserId"); + + b.HasIndex("ChannelType", "ChannelProvider", "UnsubscribedAt"); + + b.HasIndex("ChannelUserIdentity", "Status", "ScopeType"); + + b.HasIndex("ChannelId", "ChannelUserIdentity", "Status", "UnsubscribedAt"); + + b.HasIndex("ChannelId", "ChannelUserIdentity", "ScopeType", "ScopeRefId", "Status", "UnsubscribedAt"); + + b.ToTable("Unsubscriptions", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.UnsubscriptionTimeline", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("Action") + .HasColumnType("integer"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("Detail") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("character varying(1000)"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("OccurredAt") + .HasColumnType("timestamp with time zone"); + + b.Property("UnsubscriptionId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("UnsubscriptionId", "OccurredAt"); + + b.HasIndex("OccurredAt", "Action", "UnsubscriptionId"); + + b.ToTable("UnsubscriptionTimelines", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("ChannelId") + .HasColumnType("uuid"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("IsRead") + .HasColumnType("boolean"); + + b.Property("IsWithdrawn") + .HasColumnType("boolean"); + + b.Property("LinkUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("MessageTaskHistoryId") + .HasColumnType("uuid"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("ReadTime") + .HasColumnType("timestamp with time zone"); + + b.Property("SendTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("UserId", "ChannelId"); + + b.ToTable("WebsiteMessages", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessageCursor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Creator") + .HasColumnType("uuid"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ModificationTime") + .HasColumnType("timestamp with time zone"); + + b.Property("Modifier") + .HasColumnType("uuid"); + + b.Property("UpdateTime") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .HasColumnType("uuid"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("WebsiteMessageCursors", (string)null); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Channels.Aggregates.AppChannel", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.Channel", null) + .WithOne() + .HasForeignKey("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageInfos.Aggregates.MessageInfo", b => + { + b.OwnsOne("Masa.Mc.Domain.MessageInfos.Aggregates.MessageContent", "MessageContent", b1 => + { + b1.Property("MessageInfoId") + .HasColumnType("uuid"); + + b1.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Content"); + + b1.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text") + .HasColumnName("ExtraProperties"); + + b1.Property("IsJump") + .HasMaxLength(128) + .HasColumnType("boolean") + .HasColumnName("IsJump"); + + b1.Property("JumpUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)") + .HasColumnName("JumpUrl"); + + b1.Property("Markdown") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Markdown"); + + b1.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Title"); + + b1.HasKey("MessageInfoId"); + + b1.ToTable("MessageInfos"); + + b1.WithOwner() + .HasForeignKey("MessageInfoId"); + }); + + b.Navigation("MessageContent") + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageRecords.Aggregates.MessageRecord", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageReceiverUser", b => + { + b.HasOne("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", null) + .WithMany("ReceiverUsers") + .HasForeignKey("MessageTaskHistoryId"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId"); + + b.Navigation("Channel"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.HasOne("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTask", "MessageTask") + .WithMany() + .HasForeignKey("MessageTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MessageTask"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.OwnsOne("Masa.Mc.Domain.MessageInfos.Aggregates.MessageContent", "MessageContent", b1 => + { + b1.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b1.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Content"); + + b1.Property("ExtraProperties") + .IsRequired() + .HasColumnType("text") + .HasColumnName("ExtraProperties"); + + b1.Property("IsJump") + .HasMaxLength(128) + .HasColumnType("boolean") + .HasColumnName("IsJump"); + + b1.Property("JumpUrl") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("character varying(256)") + .HasColumnName("JumpUrl"); + + b1.Property("Markdown") + .IsRequired() + .HasColumnType("text") + .HasColumnName("Markdown"); + + b1.Property("Title") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Title"); + + b1.HasKey("MessageTemplateId"); + + b1.ToTable("MessageTemplates"); + + b1.WithOwner() + .HasForeignKey("MessageTemplateId"); + }); + + b.OwnsOne("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateUnsubscribeConfig", "UnsubscribeConfig", b1 => + { + b1.Property("MessageTemplateId") + .HasColumnType("uuid"); + + b1.Property("Enabled") + .ValueGeneratedOnAdd() + .HasColumnType("boolean") + .HasDefaultValue(false) + .HasColumnName("Enabled"); + + b1.Property("ResubscribeAutoReplyTemplateId") + .HasColumnType("uuid") + .HasColumnName("ResubscribeAutoReplyTemplateId"); + + b1.Property("ResubscribeKeyword") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(20) + .HasColumnType("character varying(20)") + .HasDefaultValue("") + .HasColumnName("ResubscribeKeyword"); + + b1.Property("UnsubscribeAutoReplyTemplateId") + .HasColumnType("uuid") + .HasColumnName("UnsubscribeAutoReplyTemplateId"); + + b1.Property("UnsubscribeKeyword") + .IsRequired() + .ValueGeneratedOnAdd() + .HasMaxLength(20) + .HasColumnType("character varying(20)") + .HasDefaultValue("") + .HasColumnName("UnsubscribeKeyword"); + + b1.HasKey("MessageTemplateId"); + + b1.ToTable("MessageTemplateUnsubscribeConfigs", (string)null); + + b1.WithOwner() + .HasForeignKey("MessageTemplateId"); + }); + + b.Navigation("MessageContent") + .IsRequired(); + + b.Navigation("UnsubscribeConfig"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplateItem", b => + { + b.HasOne("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", null) + .WithMany("Items") + .HasForeignKey("MessageTemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroup", b => + { + b.OwnsMany("Masa.Mc.Domain.ReceiverGroups.Aggregates.ReceiverGroupItem", "Items", b1 => + { + b1.Property("GroupId") + .HasColumnType("uuid"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b1.Property("Avatar") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b1.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)"); + + b1.Property("SubjectId") + .HasColumnType("uuid"); + + b1.Property("Type") + .HasColumnType("integer"); + + b1.HasKey("GroupId", "Id"); + + b1.ToTable("ReceiverGroupItems", (string)null); + + b1.WithOwner() + .HasForeignKey("GroupId"); + }); + + b.Navigation("Items"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.UnsubscriptionTimeline", b => + { + b.HasOne("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", null) + .WithMany("Timelines") + .HasForeignKey("UnsubscriptionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessage", b => + { + b.HasOne("Masa.Mc.Domain.Channels.Aggregates.AppChannel", "Channel") + .WithMany() + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Masa.Mc.Domain.WebsiteMessages.Aggregates.WebsiteMessageTag", "Tags", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b1.Property("ChannelId") + .HasColumnType("uuid"); + + b1.Property("CreationTime") + .ValueGeneratedOnAdd() + .HasColumnType("timestamp with time zone"); + + b1.Property("Tag") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("character varying(128)") + .HasColumnName("Tag"); + + b1.Property("UserId") + .HasColumnType("uuid"); + + b1.Property("WebsiteMessageId") + .HasColumnType("uuid"); + + b1.HasKey("Id"); + + b1.HasIndex("ChannelId"); + + b1.HasIndex("Tag"); + + b1.HasIndex("UserId"); + + b1.HasIndex("WebsiteMessageId"); + + b1.ToTable("WebsiteMessageTags", (string)null); + + b1.WithOwner() + .HasForeignKey("WebsiteMessageId"); + }); + + b.Navigation("Channel"); + + b.Navigation("Tags"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTasks.Aggregates.MessageTaskHistory", b => + { + b.Navigation("ReceiverUsers"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.MessageTemplates.Aggregates.MessageTemplate", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("Masa.Mc.Domain.Unsubscriptions.Aggregates.Unsubscription", b => + { + b.Navigation("Timelines"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629093124_MakeUnsubscribeAutoReplyTemplateRequired.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629093124_MakeUnsubscribeAutoReplyTemplateRequired.cs new file mode 100644 index 00000000..5396e204 --- /dev/null +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/20260629093124_MakeUnsubscribeAutoReplyTemplateRequired.cs @@ -0,0 +1,52 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Masa.Mc.EntityFrameworkCore.PostgreSql.Migrations +{ + public partial class MakeUnsubscribeAutoReplyTemplateRequired : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "UnsubscribeAutoReplyTemplateId", + table: "MessageTemplateUnsubscribeConfigs", + type: "uuid", + nullable: false, + defaultValue: new Guid("00000000-0000-0000-0000-000000000000"), + oldClrType: typeof(Guid), + oldType: "uuid", + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "ResubscribeAutoReplyTemplateId", + table: "MessageTemplateUnsubscribeConfigs", + type: "uuid", + nullable: false, + defaultValue: new Guid("00000000-0000-0000-0000-000000000000"), + oldClrType: typeof(Guid), + oldType: "uuid", + oldNullable: true); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "UnsubscribeAutoReplyTemplateId", + table: "MessageTemplateUnsubscribeConfigs", + type: "uuid", + nullable: true, + oldClrType: typeof(Guid), + oldType: "uuid"); + + migrationBuilder.AlterColumn( + name: "ResubscribeAutoReplyTemplateId", + table: "MessageTemplateUnsubscribeConfigs", + type: "uuid", + nullable: true, + oldClrType: typeof(Guid), + oldType: "uuid"); + } + } +} diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/McDbContextModelSnapshot.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/McDbContextModelSnapshot.cs index 5fc72919..197a0898 100644 --- a/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/McDbContextModelSnapshot.cs +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore.PostgreSql/Migrations/McDbContextModelSnapshot.cs @@ -1266,31 +1266,15 @@ protected override void BuildModel(ModelBuilder modelBuilder) b1.Property("MessageTemplateId") .HasColumnType("uuid"); - b1.Property("CooldownSeconds") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasDefaultValue(0) - .HasColumnName("CooldownSeconds"); - - b1.Property("DebounceEnabled") - .ValueGeneratedOnAdd() - .HasColumnType("boolean") - .HasDefaultValue(false) - .HasColumnName("DebounceEnabled"); - b1.Property("Enabled") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(false) .HasColumnName("Enabled"); - b1.Property("ResubscribeAutoReply") - .IsRequired() - .ValueGeneratedOnAdd() - .HasMaxLength(500) - .HasColumnType("character varying(500)") - .HasDefaultValue("") - .HasColumnName("ResubscribeAutoReply"); + b1.Property("ResubscribeAutoReplyTemplateId") + .HasColumnType("uuid") + .HasColumnName("ResubscribeAutoReplyTemplateId"); b1.Property("ResubscribeKeyword") .IsRequired() @@ -1300,13 +1284,9 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasDefaultValue("") .HasColumnName("ResubscribeKeyword"); - b1.Property("UnsubscribeAutoReply") - .IsRequired() - .ValueGeneratedOnAdd() - .HasMaxLength(500) - .HasColumnType("character varying(500)") - .HasDefaultValue("") - .HasColumnName("UnsubscribeAutoReply"); + b1.Property("UnsubscribeAutoReplyTemplateId") + .HasColumnType("uuid") + .HasColumnName("UnsubscribeAutoReplyTemplateId"); b1.Property("UnsubscribeKeyword") .IsRequired() diff --git a/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs b/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs index 2a705ba7..71f0f63b 100644 --- a/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs +++ b/src/Infrastructure/Masa.Mc.EntityFrameworkCore/McDbContextModelBuilderExtensions.cs @@ -52,11 +52,11 @@ public static void ConfigureMC(this ModelBuilder builder) ub.HasKey(x => x.MessageTemplateId); ub.Property(x => x.Enabled).HasColumnName(nameof(MessageTemplateUnsubscribeConfig.Enabled)).HasDefaultValue(false); ub.Property(x => x.UnsubscribeKeyword).HasColumnName(nameof(MessageTemplateUnsubscribeConfig.UnsubscribeKeyword)).HasMaxLength(20).HasDefaultValue(string.Empty); - ub.Property(x => x.UnsubscribeAutoReplyTemplateId).HasColumnName("UnsubscribeAutoReply").HasMaxLength(128).HasDefaultValue(string.Empty); + ub.Property(x => x.UnsubscribeAutoReplyTemplateId) + .HasColumnName(nameof(MessageTemplateUnsubscribeConfig.UnsubscribeAutoReplyTemplateId)); ub.Property(x => x.ResubscribeKeyword).HasColumnName(nameof(MessageTemplateUnsubscribeConfig.ResubscribeKeyword)).HasMaxLength(20).HasDefaultValue(string.Empty); - ub.Property(x => x.ResubscribeAutoReplyTemplateId).HasColumnName("ResubscribeAutoReply").HasMaxLength(128).HasDefaultValue(string.Empty); - ub.Property(x => x.DebounceEnabled).HasColumnName(nameof(MessageTemplateUnsubscribeConfig.DebounceEnabled)).HasDefaultValue(false); - ub.Property(x => x.CooldownSeconds).HasColumnName(nameof(MessageTemplateUnsubscribeConfig.CooldownSeconds)).HasDefaultValue(0); + ub.Property(x => x.ResubscribeAutoReplyTemplateId) + .HasColumnName(nameof(MessageTemplateUnsubscribeConfig.ResubscribeAutoReplyTemplateId)); }); b.Navigation(x => x.UnsubscribeConfig).IsRequired(false); }); @@ -231,4 +231,5 @@ public static void ConfigureMC(this ModelBuilder builder) b.HasIndex(x => new { x.OccurredAt, x.Action, x.UnsubscriptionId }); }); } + } diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs index 58f42f23..1b85e65e 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs @@ -6,7 +6,6 @@ namespace Masa.Mc.Service.Admin.Application.MessageReceipts; public class SmsInboundAutoReplyService : ITransientDependency { private readonly IChannelRepository _channelRepository; - private readonly ISmsTemplateRepository _smsTemplateRepository; private readonly IMessageTemplateRepository _messageTemplateRepository; private readonly IMessageRecordRepository _messageRecordRepository; private readonly MessageTemplateDomainService _messageTemplateDomainService; @@ -16,7 +15,6 @@ public class SmsInboundAutoReplyService : ITransientDependency public SmsInboundAutoReplyService( IChannelRepository channelRepository, - ISmsTemplateRepository smsTemplateRepository, IMessageTemplateRepository messageTemplateRepository, IMessageRecordRepository messageRecordRepository, MessageTemplateDomainService messageTemplateDomainService, @@ -25,7 +23,6 @@ public SmsInboundAutoReplyService( ILogger logger) { _channelRepository = channelRepository; - _smsTemplateRepository = smsTemplateRepository; _messageTemplateRepository = messageTemplateRepository; _messageRecordRepository = messageRecordRepository; _messageTemplateDomainService = messageTemplateDomainService; @@ -39,31 +36,26 @@ public async Task TrySendAutoReplyAsync( SmsInboundProviders provider, string channelUserIdentity, Guid userId, - string autoReplyTemplateId, + Guid autoReplyTemplateId, CancellationToken cancellationToken = default) { - if (string.IsNullOrWhiteSpace(autoReplyTemplateId)) + if (autoReplyTemplateId == Guid.Empty) { return; } var messageTemplate = await _messageTemplateRepository.FindAsync( - x => x.ChannelId == channelId && (x.Code == autoReplyTemplateId || x.TemplateId == autoReplyTemplateId), + x => x.ChannelId == channelId && x.Id == autoReplyTemplateId, cancellationToken: cancellationToken); + if (messageTemplate is null) + { + return; + } - var smsTemplate = default(SmsTemplate); var autoReplyContent = messageTemplate?.MessageContent?.Content?.Trim(); if (string.IsNullOrWhiteSpace(autoReplyContent)) { - smsTemplate = await _smsTemplateRepository.FindAsync( - x => x.ChannelId == channelId && x.TemplateCode == autoReplyTemplateId, - cancellationToken); - if (smsTemplate is null || string.IsNullOrWhiteSpace(smsTemplate.TemplateContent)) - { - return; - } - - autoReplyContent = smsTemplate.TemplateContent.Trim(); + return; } var request = new SmsInboundAutoReplySendRequest( @@ -71,9 +63,9 @@ public async Task TrySendAutoReplyAsync( provider, channelUserIdentity, userId, - messageTemplate?.Id ?? smsTemplate?.Id ?? Guid.Empty, - messageTemplate?.TemplateId ?? smsTemplate?.TemplateCode ?? autoReplyTemplateId, - messageTemplate?.DisplayName ?? smsTemplate?.TemplateName ?? string.Empty, + messageTemplate.Id, + messageTemplate.TemplateId, + messageTemplate.DisplayName, autoReplyContent); await TrySendAutoReplyInternalAsync(request, messageTemplate, cancellationToken); diff --git a/src/Services/Masa.Mc.Service/Application/QueryModels/MessageTemplateUnsubscribeConfigQueryModel.cs b/src/Services/Masa.Mc.Service/Application/QueryModels/MessageTemplateUnsubscribeConfigQueryModel.cs index f15dd658..0dd3e838 100644 --- a/src/Services/Masa.Mc.Service/Application/QueryModels/MessageTemplateUnsubscribeConfigQueryModel.cs +++ b/src/Services/Masa.Mc.Service/Application/QueryModels/MessageTemplateUnsubscribeConfigQueryModel.cs @@ -9,13 +9,9 @@ public class MessageTemplateUnsubscribeConfigQueryModel public string UnsubscribeKeyword { get; set; } = string.Empty; - public string UnsubscribeAutoReplyTemplateId { get; set; } = string.Empty; + public Guid UnsubscribeAutoReplyTemplateId { get; set; } public string ResubscribeKeyword { get; set; } = string.Empty; - public string ResubscribeAutoReplyTemplateId { get; set; } = string.Empty; - - public bool DebounceEnabled { get; set; } - - public int CooldownSeconds { get; set; } + public Guid ResubscribeAutoReplyTemplateId { get; set; } } diff --git a/src/Services/Masa.Mc.Service/Infrastructure/EntityFrameworkCore/McQueryContext.cs b/src/Services/Masa.Mc.Service/Infrastructure/EntityFrameworkCore/McQueryContext.cs index e1af7f6c..c7b37517 100644 --- a/src/Services/Masa.Mc.Service/Infrastructure/EntityFrameworkCore/McQueryContext.cs +++ b/src/Services/Masa.Mc.Service/Infrastructure/EntityFrameworkCore/McQueryContext.cs @@ -61,11 +61,11 @@ protected override void OnModelCreatingExecuting(ModelBuilder builder) ub.HasKey("MessageTemplateId"); ub.Property(x => x.Enabled).HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.Enabled)); ub.Property(x => x.UnsubscribeKeyword).HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.UnsubscribeKeyword)); - ub.Property(x => x.UnsubscribeAutoReplyTemplateId).HasColumnName("UnsubscribeAutoReply"); + ub.Property(x => x.UnsubscribeAutoReplyTemplateId) + .HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.UnsubscribeAutoReplyTemplateId)); ub.Property(x => x.ResubscribeKeyword).HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.ResubscribeKeyword)); - ub.Property(x => x.ResubscribeAutoReplyTemplateId).HasColumnName("ResubscribeAutoReply"); - ub.Property(x => x.DebounceEnabled).HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.DebounceEnabled)); - ub.Property(x => x.CooldownSeconds).HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.CooldownSeconds)); + ub.Property(x => x.ResubscribeAutoReplyTemplateId) + .HasColumnName(nameof(MessageTemplateUnsubscribeConfigQueryModel.ResubscribeAutoReplyTemplateId)); }); b.Navigation(x => x.UnsubscribeConfig).IsRequired(false); }); @@ -186,4 +186,5 @@ private void ApplyProviderSpecificConfigurations(ModelBuilder builder) } } } + } From 7a4c531f33f1b3d946cf0fd3de5594248c5cbf07 Mon Sep 17 00:00:00 2001 From: wzh425 Date: Tue, 30 Jun 2026 09:03:21 +0800 Subject: [PATCH 13/16] refactor: enhance message receipt filtering by ensuring success status - Updated the MessageReceiptCommandHandler to include a condition that filters message receipts based on the success status, improving the accuracy of message retrieval for templates. --- .../Application/MessageReceipts/MessageReceiptCommandHandler.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs index c2a96e27..7ff20057 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs @@ -327,6 +327,7 @@ await _smsInboundAutoReplyService.TrySendAutoReplyAsync( .Where(x => x.ChannelId == channelId && x.ChannelUserIdentity == channelUserIdentity && + x.Success == true && x.MessageEntityType == MessageEntityTypes.Template) .OrderByDescending(x => x.SendTime) .ThenByDescending(x => x.CreationTime) From 7778290c5ccba6173a6bf1f150f4ca650970442e Mon Sep 17 00:00:00 2001 From: wzh425 Date: Tue, 30 Jun 2026 09:52:17 +0800 Subject: [PATCH 14/16] refactor: enhance SMS inbound auto-reply service with production checks and template handling - Updated SmsInboundAutoReplyService to include checks for production environment before sending auto-replies, improving safety in non-production scenarios. - Refactored message handling logic to streamline the retrieval and validation of message templates, ensuring better adherence to sending limits. - Introduced helper methods for payload validation and handling send limits, enhancing code clarity and maintainability. - Added new localization strings for non-production environment notifications in both English and Chinese. --- .../MessageReceiptCommandHandler.cs | 19 ++++- .../SmsInboundAutoReplyService.cs | 82 ++++++++++++++++--- .../Masa.Mc.Service/Assets/I18n/en-US.json | 1 + .../Masa.Mc.Service/Assets/I18n/zh-CN.json | 3 +- 4 files changed, 90 insertions(+), 15 deletions(-) diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs index 7ff20057..37acc4c0 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/MessageReceiptCommandHandler.cs @@ -322,17 +322,32 @@ await _smsInboundAutoReplyService.TrySendAutoReplyAsync( string channelUserIdentity, CancellationToken cancellationToken) { + var excludedTemplateTypes = new[] + { + (int)SmsTemplateTypes.VerificationCode, + (int)SmsTemplateTypes.Unsubscribe, + (int)SmsTemplateTypes.Resubscribe + }; + + var availableTemplateIdsQuery = _messageTemplateRepository.AsNoTracking() + .Where(x => + x.ChannelId == channelId && + !excludedTemplateTypes.Contains(x.TemplateType)) + .Select(x => x.Id); + var messageRecordQuery = await _repository.GetQueryableAsync(); var lastTemplateRecord = await messageRecordQuery .Where(x => x.ChannelId == channelId && x.ChannelUserIdentity == channelUserIdentity && x.Success == true && - x.MessageEntityType == MessageEntityTypes.Template) + x.MessageEntityType == MessageEntityTypes.Template && + x.MessageEntityId != default && + availableTemplateIdsQuery.Contains(x.MessageEntityId)) .OrderByDescending(x => x.SendTime) .ThenByDescending(x => x.CreationTime) .FirstOrDefaultAsync(cancellationToken); - if (lastTemplateRecord == null || lastTemplateRecord.MessageEntityId == default) + if (lastTemplateRecord == null) { return null; } diff --git a/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs b/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs index 1b85e65e..4c97abe8 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageReceipts/SmsInboundAutoReplyService.cs @@ -10,6 +10,7 @@ public class SmsInboundAutoReplyService : ITransientDependency private readonly IMessageRecordRepository _messageRecordRepository; private readonly MessageTemplateDomainService _messageTemplateDomainService; private readonly SmsSenderFactory _smsSenderFactory; + private readonly IHostEnvironment _hostEnvironment; private readonly II18n _i18n; private readonly ILogger _logger; @@ -19,6 +20,7 @@ public SmsInboundAutoReplyService( IMessageRecordRepository messageRecordRepository, MessageTemplateDomainService messageTemplateDomainService, SmsSenderFactory smsSenderFactory, + IHostEnvironment hostEnvironment, II18n i18n, ILogger logger) { @@ -27,6 +29,7 @@ public SmsInboundAutoReplyService( _messageRecordRepository = messageRecordRepository; _messageTemplateDomainService = messageTemplateDomainService; _smsSenderFactory = smsSenderFactory; + _hostEnvironment = hostEnvironment; _i18n = i18n; _logger = logger; } @@ -78,32 +81,87 @@ private async Task TrySendAutoReplyInternalAsync( { ArgumentNullException.ThrowIfNull(request); - var channelId = request.ChannelId; - var provider = request.Provider; - var channelUserIdentity = request.ChannelUserIdentity; - var autoReplyContent = request.AutoReplyContent; - - if (string.IsNullOrWhiteSpace(autoReplyContent) || string.IsNullOrWhiteSpace(channelUserIdentity)) + if (!TryGetSendPayload(request, out var channelUserIdentity, out var autoReplyContent)) { return; } var messageRecord = CreateMessageRecord(request); - if (messageTemplate != null && - !await _messageTemplateDomainService.CheckSendUpperLimitAsync(messageTemplate, channelUserIdentity)) + if (await TryHandleSendUpperLimitAsync(messageTemplate, channelUserIdentity, messageRecord)) { - messageRecord.SetResult(false, _i18n.T("DailySendingLimit"), DateTimeOffset.UtcNow, string.Empty); - await _messageRecordRepository.AddAsync(messageRecord); return; } - var channel = await _channelRepository.AsNoTracking() - .FirstOrDefaultAsync(x => x.Id == channelId, cancellationToken); + var channelId = request.ChannelId; + var provider = request.Provider; + var channel = await _channelRepository.AsNoTracking().FirstOrDefaultAsync(x => x.Id == channelId, cancellationToken); if (channel is null) { return; } + if (await TryHandleNonProductionAsync(provider, channelId, channelUserIdentity, messageRecord)) + { + return; + } + + await SendAutoReplyInProductionAsync(channel, provider, channelUserIdentity, autoReplyContent, messageRecord); + } + + private static bool TryGetSendPayload( + SmsInboundAutoReplySendRequest request, + out string channelUserIdentity, + out string autoReplyContent) + { + channelUserIdentity = request.ChannelUserIdentity; + autoReplyContent = request.AutoReplyContent; + return !string.IsNullOrWhiteSpace(autoReplyContent) && !string.IsNullOrWhiteSpace(channelUserIdentity); + } + + private async Task TryHandleSendUpperLimitAsync( + MessageTemplate? messageTemplate, + string channelUserIdentity, + MessageRecord messageRecord) + { + if (messageTemplate == null || + await _messageTemplateDomainService.CheckSendUpperLimitAsync(messageTemplate, channelUserIdentity)) + { + return false; + } + + messageRecord.SetResult(false, _i18n.T("DailySendingLimit"), DateTimeOffset.UtcNow, string.Empty); + await _messageRecordRepository.AddAsync(messageRecord); + return true; + } + + private async Task TryHandleNonProductionAsync( + SmsInboundProviders provider, + Guid channelId, + string channelUserIdentity, + MessageRecord messageRecord) + { + if (_hostEnvironment.IsProduction()) + { + return false; + } + + messageRecord.SetResult(true, _i18n.T("InboundAutoReplySkippedInNonProduction"), DateTimeOffset.UtcNow, string.Empty); + _logger.LogInformation( + "Skip inbound auto reply real send in non-production. Provider: {Provider}, ChannelId: {ChannelId}, Target: {Target}", + provider, + channelId, + channelUserIdentity); + await _messageRecordRepository.AddAsync(messageRecord); + return true; + } + + private async Task SendAutoReplyInProductionAsync( + Channel channel, + SmsInboundProviders provider, + string channelUserIdentity, + string autoReplyContent, + MessageRecord messageRecord) + { var smsProvider = (SmsProviders)provider; var options = _smsSenderFactory.GetOptions(smsProvider, channel.ExtraProperties); var smsAsyncLocal = _smsSenderFactory.GetProviderAsyncLocal(smsProvider); diff --git a/src/Services/Masa.Mc.Service/Assets/I18n/en-US.json b/src/Services/Masa.Mc.Service/Assets/I18n/en-US.json index b9217f63..0fb905e4 100644 --- a/src/Services/Masa.Mc.Service/Assets/I18n/en-US.json +++ b/src/Services/Masa.Mc.Service/Assets/I18n/en-US.json @@ -8,6 +8,7 @@ "ReceiverGroup": "ReceiverGroup", "WebsiteMessage": "WebsiteMessage", "DailySendingLimit": "The maximum number of times to send per day has been reached", + "InboundAutoReplySkippedInNonProduction": "Skipped inbound auto reply SMS send in non-production environment", "NoValidData": "no valid data detected", "PhoneCannotEmpty": "Phone number cannot be empty", "EmailCannotEmpty": "Email cannot be empty", diff --git a/src/Services/Masa.Mc.Service/Assets/I18n/zh-CN.json b/src/Services/Masa.Mc.Service/Assets/I18n/zh-CN.json index 932e20dd..42cd1c55 100644 --- a/src/Services/Masa.Mc.Service/Assets/I18n/zh-CN.json +++ b/src/Services/Masa.Mc.Service/Assets/I18n/zh-CN.json @@ -7,7 +7,8 @@ "MessageTaskHistory": "消息任务历史", "ReceiverGroup": "收件人组", "WebsiteMessage": "站内信", - "DailySendingLimit": "已达到每天发送的最大次数", + "DailySendingLimit": "已达到每天发送的最大次数", + "InboundAutoReplySkippedInNonProduction": "非正式环境已跳过自动回复短信发送", "NoValidData": "未检测到有效数据", "PhoneCannotEmpty": "电话号码不能为空", "EmailCannotEmpty": "邮箱不能为空", From 03b5bc9962140afe45b3f9615a823265e850fe34 Mon Sep 17 00:00:00 2001 From: wzh425 Date: Tue, 30 Jun 2026 11:04:59 +0800 Subject: [PATCH 15/16] chore: update launch settings for development environment - Changed ASPNETCORE_ENVIRONMENT from Staging to Development for local testing. - Updated various environment variables including MASA_VERSION, IS_DEMO, and CONNECTIONSTRING to reflect development configurations. - Adjusted MASA_STACK entries to point to development service domains and web URLs, ensuring proper routing during development. --- .../Properties/launchSettings.json | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Services/Masa.Mc.Service/Properties/launchSettings.json b/src/Services/Masa.Mc.Service/Properties/launchSettings.json index c75862eb..ee3465bb 100644 --- a/src/Services/Masa.Mc.Service/Properties/launchSettings.json +++ b/src/Services/Masa.Mc.Service/Properties/launchSettings.json @@ -13,23 +13,23 @@ "launchBrowser": true, "launchUrl": "swagger", "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Staging", + "ASPNETCORE_ENVIRONMENT": "Development", "DAPR_GRPC_PORT": "20601", "DAPR_HTTP_PORT": "20602", - "MASA_VERSION": "1.0.0", - "IS_DEMO": "False", - "DOMAIN_NAME": "masastack.com", - "MASA_NAMESPACE": "masa-to-sec", "MASA_CLUSTER": "Default", - "OTLP_URL": "http://middleware-otel:4317", - "REDIS": "{\"RedisHost\": \"10.130.0.19\", \"RedisPort\": 4208, \"RedisDb\": 15,\"RedisPassword\": \"Hzss@123\"}", - "CONNECTIONSTRING": "{\"Server\": \"10.130.0.19\", \"Port\": 3815,\"Database\":\"\",\"UserId\": \"ss\",\"Password\":\"Lsd@2023\",\"DbType\":\"PostgreSql\"}", - "MASA_STACK": "[{\"id\":\"pm\",\"name\":\"PM\",\"service\":{\"name\":\"PM.Service\",\"id\":\"pm-service-staging\",\"domain\":\"http://pm-service.masa-to-sec\"},\"web\":{\"name\":\"PM.Web\",\"id\":\"pm-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/pm/\"}},{\"id\":\"dcc\",\"name\":\"DCC\",\"service\":{\"name\":\"Dcc.Service\",\"id\":\"dcc-service-staging\",\"domain\":\"http://dcc-service.masa-to-sec\"},\"web\":{\"name\":\"DCC.Web\",\"id\":\"dcc-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/dcc/\"}},{\"id\":\"tsc\",\"name\":\"TSC\",\"service\":{\"name\":\"TSC.Service\",\"id\":\"tsc-service-staging\",\"domain\":\"http://tsc-service.masa-to-sec\"},\"web\":{\"name\":\"TSC.Web\",\"id\":\"tsc-web-staging\",\"domain\":\"https://tsc-sec-staging.masastack.com/\"}},{\"id\":\"alert\",\"name\":\"Alert\",\"service\":{\"name\":\"Alert.Service\",\"id\":\"alert-service-staging\",\"domain\":\"http://alert-service.masa-to-sec\"},\"web\":{\"name\":\"Alert.Web\",\"id\":\"alert-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/alert/\"}},{\"id\":\"scheduler\",\"name\":\"Scheduler\",\"service\":{\"name\":\"Scheduler.Service\",\"id\":\"scheduler-service-staging\",\"domain\":\"http://scheduler-service.masa-to-sec\"},\"worker\":{\"name\":\"Scheduler.Worker\",\"id\":\"scheduler-worker-staging\",\"domain\":\"http://scheduler-worker.masa-to-sec\"},\"web\":{\"name\":\"Scheduler.Web\",\"id\":\"scheduler-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/scheduler/\"}},{\"id\":\"mc\",\"name\":\"MC\",\"service\":{\"name\":\"MC.Service\",\"id\":\"mc-service-staging\",\"domain\":\"http://mc-service.masa-to-sec\"},\"web\":{\"name\":\"MC.Web\",\"id\":\"mc-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/mc/\"}},{\"id\":\"auth\",\"name\":\"Auth\",\"service\":{\"name\":\"Auth.Service\",\"id\":\"auth-service-staging\",\"domain\":\"http://auth-service.masa-to-sec\"},\"web\":{\"name\":\"Auth.Web\",\"id\":\"auth-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/auth/\"},\"sso\":{\"name\":\"Auth.SSO\",\"id\":\"auth-sso-staging\",\"domain\":\"https://auth-sso-sec-staging.masastack.com\"}},{\"id\":\"sapp\",\"service\":{\"id\":\"sapp-service-staging\",\"domain\":\"http://sapp-service.masa-to-sec\"},\"web\":{\"id\":\"sapp-web-staging\",\"domain\":\"https://stack-sec-staging.masastack.com/sapp\"}}]", - "ELASTIC": "{\"Nodes\": [\"http://middleware-elastic.masa-to-sec:9200\"],\"Index\": \"auth_sec_staging\",\"UserName\":\"elastic\",\"Password\":\"IinfSPxuLrZLrh*Rvqsk\"}", - "MASA_ENVIRONMENT": "Staging", - "ADMIN_PWD": "admin123", + "DOMAIN_NAME": "masastack.com", + "MASA_NAMESPACE": "masastack.com", + "TLS_NAME": "", + "MASA_VERSION": "1.0-Preview1", + "IS_DEMO": "false", + "OTLP_URL": "http://otel-collector.masastack:9013", + "ELASTIC": "{\"ESNode\": \"http://10.10.90.189\",\"Index\": \"user_dev\",\"ESPort\":30200}", + "REDIS": "{\"RedisHost\": \"10.130.0.19\", \"RedisPort\": 2135, \"RedisDb\": 3,\"RedisPassword\": \"Hzss@123\"}", + "CONNECTIONSTRING": "{\"Server\": \"10.130.0.19\", \"Port\": 3815,\"Database\":\"pm-dev\",\"UserId\": \"ss\",\"Password\":\"Lsd@2023\",\"DbType\":\"PostgreSql\"}", + "MASA_STACK": "[{\"id\":\"pm\",\"service\":{\"id\":\"pm-service-dev\",\"domain\":\"http://pm-service-dev.masastack.com\"},\"web\":{\"id\":\"pm-web-dev\",\"domain\":\"https://pm-dev.masastack.com\"}},{\"id\":\"dcc\",\"service\":{\"id\":\"dcc-service-dev\",\"domain\":\"http://dcc-service-dev.masastack.com\"},\"web\":{\"id\":\"dcc-web-dev\",\"domain\":\"https://dcc-dev.masastack.com\"}},{\"id\":\"tsc\",\"service\":{\"id\":\"tsc-service-dev\",\"domain\":\"http://tsc-service-dev.masastack.com\"},\"web\":{\"id\":\"tsc-web-dev\",\"domain\":\"https://tsc-dev.masastack.com\"}},{\"id\":\"alert\",\"service\":{\"id\":\"alert-service-dev\",\"domain\":\"http://alert-service-dev.masastack.com\"},\"web\":{\"id\":\"alert-web-dev\",\"domain\":\"https://alert-dev.masastack.com\"}},{\"id\":\"scheduler\",\"service\":{\"id\":\"scheduler-service-dev\",\"domain\":\"http://scheduler-service-dev.masastack.com\"},\"worker\":{\"id\":\"scheduler-worker-dev\",\"domain\":\"http://scheduler-worker-dev.masastack.com\"},\"web\":{\"id\":\"scheduler-web-dev\",\"domain\":\"https://scheduler-dev.masastack.com\"}},{\"id\":\"mc\",\"service\":{\"id\":\"mc-service-dev\",\"domain\":\"http://mc-service-dev.masastack.com\"},\"web\":{\"id\":\"mc-web-dev\",\"domain\":\"https://mc-dev.masastack.com\"}},{\"id\":\"auth\",\"service\":{\"id\":\"auth-service-dev\",\"domain\":\"http://auth-service-dev.masastack.com\"},\"web\":{\"id\":\"auth-web-dev\",\"domain\":\"https://auth-dev.masastack.com\"},\"sso\":{\"id\":\"auth-sso-dev\",\"domain\":\"https://auth-sso-dev.masastack.com\"}}]", + "ADMIN_PWD": "admin_pwd", "DCC_SECRET": "masastack.com", - "SUFFIX_IDENTITY": "staging" + "SUFFIX_IDENTITY": "dev" }, "applicationUrl": "https://localhost:19501;http://localhost:19511", "dotnetRunMessages": true From 9c0af06bf187f24c54b39c972cabb4f11637dee3 Mon Sep 17 00:00:00 2001 From: wzh425 Date: Tue, 30 Jun 2026 15:11:04 +0800 Subject: [PATCH 16/16] refactor: clean up unused using directives in SendSimpleMessageEventHandler - Removed unnecessary using directives related to com.igetui.api.openservice, Masa.Mc.Domain.MessageTemplates.Aggregates, and Masa.Mc.Service.Admin.Domain.MessageTemplates.Services, improving code clarity and maintainability. --- .../EventHandler/SendSimpleMessageEventHandler.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SendSimpleMessageEventHandler.cs b/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SendSimpleMessageEventHandler.cs index ae4846d6..8fa4ae56 100644 --- a/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SendSimpleMessageEventHandler.cs +++ b/src/Services/Masa.Mc.Service/Application/MessageTasks/EventHandler/SendSimpleMessageEventHandler.cs @@ -1,10 +1,6 @@ // Copyright (c) MASA Stack All rights reserved. // Licensed under the Apache License. See LICENSE.txt in the project root for license information. -using com.igetui.api.openservice; -using Masa.Mc.Domain.MessageTemplates.Aggregates; -using Masa.Mc.Service.Admin.Domain.MessageTemplates.Services; - namespace Masa.Mc.Service.Admin.Application.MessageTasks.EventHandler; public class SendSimpleMessageEventHandler

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 blWCIKz(GT6yH}!7zh0?pGe-= diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/11.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/11.png deleted file mode 100644 index 21ef2c500154ee64a7b423bcae106ab2c6123855..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60619 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 Fe*sf5uMq$M diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/12.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/12.png deleted file mode 100644 index ff6d5a31068044c85d9d8ac6612403b90ba8143f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69598 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�}gBb_9y*QDo1#5@UnBvU`L#!?;P7+hpxI`LXITF-+EaQsVXR>*tOL^uW6X9Uv67hZkv*la%uTN)vJv>L*d<-cN%HgL(v}29G z;$9!Zy+gQJ6VHT88ftM*UDDS8y1D(fXNrQ~@ABEE<6^6X&vuFR^^ou4_gxO|OZpES z%_m}E_k|rDP1^%jhp*q6T_6HBtOLR|122?BBqhHTraal$&zhr-V*23PY~H*JwDLdX zp|<`Sp55Yg;C8&d>UR_&_1r6awHuVeXU0MhoT+x3v!`!)nR!_9lHoe$=BL!^UgOfn zN;iH%rgB~}`A=6SPmI?RiWCs`@lT0Bo#jIIO(T|kfjmEwq0u!|zl4fFR8#B)LmP)? zf4cK+MY<^2Ta;R3qFbLfN#9V(lrd*e#xQY_vNF*phZSql#1P42aoPnlam_^$lALWfU}Dn&%4cj zwgjG7qu2IE?F*xQ#TwzEq)wC9!Q#z|o!Qkkc?#c?FRP3{xI_--h90ik6Fc|*9uiFnF&J7Uj*Qc=g*3RPnvvEl04FG_42#A&;RX+hu_utMzXT) z=&p?l?z`(*56Sb+oIFQy5SA=mliMjn;5z@+o$ErW8>esG!~V(W-=CUi^OaY3rA~YU zG94!l6XF8GUZ{dg4tza5J$$pYQCp3%`5d;%Q~@)k{w?N0T(0~l=63iuUEj~t7&$I@3OuPcd8#Bp^j~5ZLmDfS z_FGlPFbCbkX7A<$co{>tRdydf=iMhKUSe8o!Kl68w@u{f8!dh;Id-O!zQJ1Hqjb}= z^lS!WVq!CrZ|o||Og=6)VS%gYa82czePiDuMPUASaPmR0wY#C*)?}1 zy8B{XdR9(tf8?>(rF|C9#}~-XFfXMi-ciPa^$>Fp1%c+vLm~~P`nw-1_uYbUpl8PhPW2FnD9Nw(i#^jGu zo~~y46;W3vJ+Ev%8sii;JPh|{gbr@v*L*lR;p-835_s&fzu4USe8;K!oj<7^pLsPM zUHiaP`=Ns5NkZIb;$Ui4&feE-JJpk}=iB7FD9+a76OD@YD{M`vtKGMHeTk5fQ~H*c zmiZRnO21b_FOPCxM5cdv9gsRP5wq5~r1)@C#Ea2Wu|OY(nJN9138|q(GfjSlyfHN< za|cOu_e3?lv%N_7 zn)h#$cVT^MTfEI_WWBs%j}>kKSTl-0Ys z3B;ZRo$%7Fr77?*cMX!H@KWKmz|UqYuO&`?+#WJ=%n5jz%aDLeUBt%1H8|2uTFeA9 zr(p$g9iOqx3hUv-u0L;lw9x+S{-d`f%xvlo&OIT|Uf_hU-_?bLscvDzihJp@?w&6C zWf_{C2~8`f0H7gkO0gI;Ps8LBBULc)^;WhFgR8MAb$eNe*2*I5so_u&k*2!lXmlOc z2WvL!|N0fL$N23;bkeFW5pnG3wC;gKaKo^h$5@r$a@fpQJKhwv3ubc^%*#6Ert{|O z%?IHpPt#J&{1Wn4X*A|s{ahnY4+?h-^x81=bp{GvJSsQXM93>J>Xp?JtdchKd%PDd zjr2NL<%lEgWe~Jzy|bzeGu>Y22Ah|4P)8t*b#!zLGI5bx9sD3i<3!z{Qr7LDw?Qaz zA0$xaRrv^zNh9uEAXQ*x(Hm^nM)}*8-i5_wX*ny&ZmH(ALq9kY>1 zB7SnS)F*OxTTp9q&^2S~?7y;ACUT9PHd=nF##E)RDe}%I#l&lAP2%9{if%CgPo+09 zW2MvqRe~o2l+%=u523Dcli#rMke%DNcpk55UC_dbYVCYzY%5Td1Ly}?)B+t$+;IyC z%1LKci{~Sm1?QVQa_(2Q_pR*jDDUGTV<|MLuoFFtX@*p#Rc}M&^x}*ne$dzGXHDJy zc;SewH-0YkN0=4cUY2P3NB4UVe*Mbz#_?HwctMr%y!HJ2@|JhEy=P3;SE4K6h?hk4 z%Dc@io1VZk#-B=c`N?)u4DeA7ks}>qCvWVNfvHkQ*4GFkVit}mtSEPI`}*^s;`Z(S=_aojiE$O0$(0l=I|Kigu93M!wpz^H^`VPUNOKvVQG+# zCvU&BlxAHEqnYGw7Dang9={kZg4M>9I!@| zmZsfZ%|)6%xo(vxQnXMpTDKX6Sjpn@Qo2=0oM0XJ z-rzj);Mrej{^-}nR2T^o*Q+Zbt{-b7x2{ju1Dw$gisB2{_Hp8GBQ?@vqppGy0O}$3 z^t0nyP%Q;GM-Pfh#*|xr_l@izC~q-Qhqt_MDCGMW?gGd7fM7DM&5^42Pe?zMi>2Nt z6{}D|;#GI7jLau=-!idT%0I+~V+hOW#O)c#W4J&Pne1*m0T-D~alGP2LMgbcs<2Cx zioNv!(Q=)4_b{c7Rs+*!O~0Idp|*+|;a;KRxLu?t(1i7fpjOtcIfZ(L>vPj^MlC;ZX0eAj_-hxuEB;ehkc`f=en7%q5RqJrMiDQqBI#=aC4nC8 z>Dd`pXooNaMVnrZhZN#mN*92IVNtW`%wbPW%r{-LIJN$W!|ODi^~A4Fo*)6rg@R=B z<}s*M!N+B`3im9c>xzoXxlw#-;Gy^74uM`(p#Jl$81L`sM8-u`Ly&7Nlu=z<+j+gn z7u9Dex-zyNLm;QLV0=Wl^gqxDMNK=F4r3r*g z{};kBJ?bSUE3Eq7I>JMDjMAoZyyo)ARoVpx=2c2vi1LE0eu|PQbA>D<d40v2nzmj&iCsR34Y^ z{kZ$~Tq@*`IQ1Dt{e`CGTjLlG6IFY)5^n26hmBMlXRo|TzrqK+BKXb#zujYOfr`X+ zm~(yVCo3iI8mrfq=a~)LQtN0>sDJTlQ&Dg;3r6fA5*3tQSJ7NfLZL&S8%^T-Q+%Zd zf=pL6On*bNsx4lCWkHgGN7~2GFR@kQE;UXBp{z;9$`UL_-u3Y@;igSw)u$K_DI+_X zg-?IQa$Hg(vf5f^E|n14OWDH#%x;d5X3+Zee8PmXeWNh;aaB*vXSW(poJ+qqb%|&B z3`Y81v`X#qtc>jK>fK%cRJA>#*G@UkHz)p%ivelEi)RqUJw~gYsMk@**huC#D>w*| z$G~JflOZ=`tA^VlO`H3r#zSk&%TM=`!Z=V(9`2zE1arqq{PrE@5azV}i!<^&sk zCRLE2b0Mv-UuJLxl{xWeDjZx~T%3LMMns98fg$_;YQYP1iJeFP{E>$o^DrHa?2UBe zr;Dot{W`%r)bNh!ysr=j5Fi~q9WKqWPT=s|GA0^hNA2`w!kB}VsuB%z9@PBk?hbg{ zF44n=%pKRrFt<&?;n_H=>q5daom{P#4NHsqsrV_y{AO~R8}5OtP9yt|+2-!nuyU}^ z(M%dzIt7vSbMgR>%z1XXNm3*-E6fA&X~1DPx#`rQMYrg12au6m9M5{oQzKpJ7eY0LFIDO~~7O)M@E5 zn7zF?g)M`k4-GlzMOrZf9<#;hiGFhho7AdZ@w>L%9#r$o0k+a0Ea3`+1!a}+8d_k+y zTra*1s~R_L77O(tDvZ{*;?UEyu^nA(>2$K<`iPd#p=zvjR8h0Z@2({F7vFv4scikQ zQ`!Dx+u6%&D68+*uRi;L=v3v&;L8ZFN1kdUV+16+#wOyFFR?{EabwXFMI zhBnA>5Q1&Z#}l(yEAvgaDNAg}O=@0_6?`Gk@loF)rRrZGg;r>lXmb_BQVWW8L2UGs zc4!sh&K}hcWp_B9{X}S8oJ%*>#`vyay1%~r89)Zn&P`^Yq#kcnwu`6MhF7(ijJ%M4 z1%aHK2hSgTX$s}L_q8*1Or}gCJvrVm)e_|Rp?{a}bbo=ls4K6%bNO&*ZH6#5cCiR) z!i_#=9MuCTMc{wn9*xW;RRV-J?Rr1%@!OcivGMEfoAS0(a|;KRxvuQ*GW1??={PJK z(3o<#R=r|4Bn+jt5Mv(KmE|nRR~H*se)!59G(I#s?h)0dTaB@>w8Y74n8~p4lyzm#B`S@E-GpuQ8; z=k7-66nUyW?mflne+c_^%xBx|d&(D~gcCL`5EhI+i>@-}EAi_F5^QRJ%bII!@;xPL zbX;6pTf?mtvaX)IzGV=6FfJYq(-=K*zP%{z@CsWOit_F=@3ts#N5H1oO@@N<-6NqG zrU~Ib+Jsp+J0v>~=3$_=;8K}w?Q?%s_H@^18@A>#hBvhoN7qt8c3xYbZ|w;M*x?iQ zvR4buD3&EgU?9b<=FMl*ANzizuu@)|Q|j}3U-8Lz=%+W9g1RgtXXKs|1!Wo}V2!)0`LUb3g^op36tlK>gYO^RPf z@+5GTuI1Lv(dw#Obx{+DpFFt!FyD}TyG;G!xO^{tCgw2 z;nE=LaVMeN>c&sCV^sV=B!VN#i6X-Ne78tfy^4tf+557<)LzSDZ8pI{;mI96y5{uw z!Vh1nhJs79NC%mwE#Hgik+)x;EUk54=D@c^%Z$p@MNH}7dx_O9>W@E_hx%r^OR(zd z!bvDDGO3jZztd6qHgtiClb_iO=9O@Chj6$H9t#n~@)4#!spW67#MNr9UDj__*JumQ1u0B(9amcUX801=4INY}vTvP%yE2`qb2__%4 zdUXTTrSqRn=XJcGOMX_dgWDS{$*X%C&1{zbOw; zo8`Ocv5eGlKedaxiV5e9t~O5RoWK3<2y6dUct2_9PspyfD%fE(D}oXvJRlfdm#kUV zAq<%1VOB!96tAu9L^2J1Srr1Yw>BuN8ohFCF#5si_x;mwwV?yKyF#(oqdq>%<)eL} z${af9n{U*11p4bt_cH-SUvgv44pZm#+@aM3!5HgNYMP%bZ*%Z;U>OT2XySx(z#|A^ z7zFc&;I+(3?A_A((9)PWk+4z+;7b!PJxv@2|bpA6KN()48sHP>@|>-H_48 zm!1T(!vhZ)GTXX8 zee#)1rlFvp=684Pamo^D2Xr2M`!IZh0_<8~Nn%IZDBGg9?Z%}~bnxJTsDOGS1F6EL zFEA4w#ww*NsT2a-kTX&&h50&nRDV_S?H6^DeBNrRJcEmpP}-VI3zH6mxCEt3n|IHu zWn(3v-2OQoR`w44`FEd_(qL(nr0(I4JA`U8mr)T{-)`vq;%p0?i2Uq5P%70m2U^{f z>|W=T9H`owX)!+BnbJ%JV48eRhHcSU=tru_kZV0}BFB6q1A74XQ~Z?5>6u;dF)g?& z!|7VIM%>b}=m9=uXV4=o_pSJ=J=uW9I2Vz0o=d&ZmB%rnG1b`C0M^64(oTZlcOU06 zpS0t}u)S1h1=FY-_Bs8rdRNJE7+#pyGrjn zTgPmB^;u>_ddaoMv8f8`_&wCrwDwye&-t>RVz#!|=v3A6PAM91=YEmNB^@IpX}FFK zwsio08kL#fVWwV=|A~a(wvwbm<2H3%4?*WQ^Rb`+uaG^z*sq3(V0}g{dUH0tN0A@ZV@YMcF>7aG%|>xv zu5_B0(&|$9_P;F|u&90P+%X|&d;W8(?b(lRQ9%MsP)a{7v~q6@A`|wJO0vtogf6=+ z7Wk^!IPMwu#?CsQGHA@)J;sqHHP-Zeei&R+wADg9j4_XXoE}Heddf?Q-?Iubtdtx| zY5U23{e|%-P215+{_oE#1G7jlIUdxWCz7Ztbc)r@Mzq~@aY}YD-jD}Ich|t}>_RHC zJ`Lq1B|a0{B*U~@;gzc1c_~>3p33of`?Tt^gv8eSbh9B2w~HWMS0CR?o&_DJ zlss(zWZT?juaPj2lq7d0ot!)0788UMVj;%P@B3JHwUE7@RZ-I)HIZj+w9t)(`JJLe zsSfFVou=t}Tw>kqdvJ?CTzij+YqgXGhRl>EqkNOAenrx;5+hCy4s)dAD85-2y0C5{EU$m>u2FmUew%nKmH6vE@UJNeYuWZ5+45RfSGv5|7TM@Q;iub5pgX@doQW|1F3a$DmwkO0$UZq9G3lX2Ot{TiC>KYZ!4duT^TPaj|V zB~xseY3JO&Qub9_X_Mz3x2EJd+xPR3g$4hj&ko5SyG2*HYPwFxp56gA+*$48N{Paw zD6Su2w|@;J(^)666?~q+n+j8Ws!Trq;RoB-ga$5;jz=AqdSb7X9Pa1@3r02;V?}23 zvMNjT1Q`>nj0oNnpv2n7I!^@>R{1BiYT5L5$td?W#uv$Q!fS+6jaYM)_Q)t?vN}<8 zo^5Q53?NTd^%Hmhyv4a^YH^>l2SHvqD9jXW%8wLWKX#o=S5_<|LN8Cx2TX*U+`syu z47}^TS4rQ5<=PxMd^WE&Pqc2{R_#r@s~1l4^eI2vT%u`@{qxa|v6)B6PtTb?X3su) zTw3C$;e1!b_E@9@s3RxP(~Q?>*3|i6d{;bxR4VQ0IPgdy@?%(7uwKbc9#S+`j94QH-0K7QQn`n(AF z_3eb*LBenbcbo2OF;-_tNXcVll<9Hd^QNQ1CsSpc1!;F5f6${yXLYG!XR(ryRitTNRt(OH9#ppgM)L4gRHH82-cp1IKMZN0N@F{3?wLTy4V4YZ#(G=dxz}u z8qN7oMnb)ZEO4Q&7Uo4Iq3RQ9A`(z$cDB|OBFh&zYXo-jM}mNy&=r2y4<5Zh2M|-EG_PsdK0G=L*%?TF%o%9z(uw&l;Dk=3|Sqz+uuHV;8o2E_B+g zkq(d6f(@VCh&yGs_K(&5m;^5@y`E{8_Hvi53r|N~kUG}I)H_tS)iLB_6oB94T^@{rQ-EEY9OMdZ6!Q4>a*TYE-9ecUum_!la3XMwTm&^@ z#FD5NAr?d3Bbj4b!Q4HrizP)D4@;H@t9I?BEojtvrb$K|RcNu*2h9mA=#dTYpGnu( z4p)hV-($9_qAa;Dh+n{<((In7lIFlMM0q7d6i?1!El+4+GTvB7BZo7tAPB9(V|9y+ z?n0%8*_P;b`?w=iW@NHo358~`fMBss9R{H-o}|bf@W2C0_hRV|2>IijuX`XeGNg_7v@;0*Rqq`Cj_D3#IY>pmyiHimr&CmC91$<_hoBk5^ms!~a`aJFMA%V_RxhVkk;r;uuA z5_Ap7%*%u-xhW1NJ|MMY>0#5+sWUd@K4XWf_o>B!qJ>QQ`k93sNVBze*8z3>cmSmB z;~edlXGThy;NESzhL;^t`nF7Twxq*Vm;$GzfSX0Z1V?tuB{x=>(#Ex2a-QDFM zyX=Akzx90d+xkj;bT)m|+_+@nC5mXNmjC)ywx9++yCgSIT}Fa@7+Tfj<-Y z{mvdsc-?LSALSCZovObRA3IEsu!|jicVOo9GWW$V_XIA&x52qgT=EZ|R#m*YPsVP+ zPU_0hOzA+2IxZt5`Dk=#aiWE?bv4B`qzkBdR$>xwG#k$@lgZ>s<-*GL;L{Lf`|2aL zaF3zMc)lr+aI`M<>mB=+=SZ(t3o>uGtaezy3*G7*g{x5Zx*cr|rl@<^tpeWGeK4kq zjj;2?sQc9di_0sM3j0efLxGncQktZw*(Ro+$}&EaG^#PyX*YL;BGS`Shi%Pdy9E{@dXlm~c z9?*f3!wq^+3qNT^Z7jKwmSuW^6JaE`{TYFlwm2rokqPvlQ^N;DG9Ns-m&)3_ z3Wnnbm(j-|mFNlk?`_s-Wd2I?v|Q`oiE3+mX_h7FFm67JGuR6x=p3&3pCyTF&PJJE z+i9@yD4}BH)G>epCC@V9}wb?Y~-hkkO zt?>^tONssY}`A5^C+~ zp0O(2HdyI*%;=`HJaCPm-Hh2o@LI|1i>_`#+{hN`0Mhf)TU&)v zE#A<@-TY{mp2D+bE~E&hHy^i{1GOP>I}^*xLHY~k_qYq$jy5pcKJHG4sW0%6H+FV8 z2$Xn5YDZe4DC8wPATk(c&{oXX32I3ait4IgQ$^@h3rSUiT^6cLg$D;iUe8KrFRe&h zPY;9?xp~!)eBk)8piCIYP*xvCay?W3q+-b+B=5CajX-L-ONq`1xQ9L|Ve8eb?E0;D z*A73|gBv34U{wWty9Um2X5&UG2({wXWw%G zT@5j8dMVH57oqs5R)JRd^XyL@W!(tvUfv^H5r2uvXzLo5J3KwD1){e&qO0}Z zp|JE(&3=eCAynZQHDqC|xkK=SH0hNGq}-__9HkX}AKouQMiKjY{AHh~!>ds5O!{D1 zQ|RN^@ki5@o~eu|72JA{E@pErW8`#=Nh+Q9+fr|E_P6GJ4i`>1wpvxR3FlO%TW`i2 zZ}irQPW}Z6%S$I!JgSSi+_YI=uUyWT1H3{tDIGpxwCX&`sGR-VQQLVPY+icZ$DkF2;XTp#G;>#?Up zAnEkBEN297!WJ`@d&tMOZiDB0Bbn>tf-^?eqHTZBno@Q>9DUn~kfY3vp_vnVOv~yi zI~g_`IqBoD)5KKaRLPUfW-Dv5EGSS90eSuS7|a-Oq-!qfnAQ4e@3NBQ?Oc%c<{0E6 z;1yxoCMT8h^LXQ7Tk6BOwx5kY=Y}^@b;tVQ3VF1MnvZLXD|=W-Pn(`O)D<7c(-30& zz;BPnzDAS05(IM~R%5g~I6B{A#fgpP4xY(R&j% z6Yds`J#Jq5AuHR>64|11y7~nR1x;mAP%v*4y;xozOTOQT;{KpxZ8WBSO|c?M(njHQ zG2)YcYXU8U_R&kP37^0>ab8J@>%Loqwk#I++w??99Nnz%1^b7nTZWBB<`Ofz~Rb|7djh4 zjMQQY#}#VJmEvUDEt+m9`%$WC86rBFOt9NlVS4ZoC+fW54wz+_Fq{q&PWzH{5|t)M zMO`n3n#De#s}1!P_c)jE`!Su3zfRkXuUkn<;XBGMr+-Yh1z$O6 z{{iOz*=hCxuM6Lo`b{?-L)GN!Rca~2=LVD1H5r012HP0_3vPeY1QhGKGW=D87Awj7 ziUr}Z_z?`YjIoPM4+&#DmZ;7dzzZy6dk(J#J}n=)z1#{weWi`D=9v0GykI$DESW0H z6r>+(kzZCBrxh}9HupT)MTeMwvGlD=|IDwg=Ff_B`)dd01)X&*ahvaH+Cwd)72Kty zpZudT#n&c+!co+<*(DqJ)kVtN*nJ^=(oM%;PwIHjXoEI_T0zQ!c-6#Mz31`UV1+h5 zz-x;-0)xTeF~ba!M{_!*n2<<{ny58*WfQKK<$ZY~?U)l`ellB>ueaVft!zjP9mFRo zjY)dUD@-Jfo6GfNpG-e`4`B6yGRc%2Qi~PQn!&wxxD>4junbJiKOP+FO8ux+U!Z8E z6!@NsjeU&DzNG%V5F;*pO; zVjQ|bN7;t)3Yf2NJ9U#`_6tl!{N@v+c_IC1p~u{bbR;5CMK!AW(NUSHv+uPKkJXPN zPCROLkY%9rzI_u6ofsI}oC+>X*pF*1>D#qG6>=4cY)2y-%1J$dmV#=B9_4R5ED(T? z8%B>m>Ghp1c7deD_%=2g_$X&Bv{QijfEt?02=-*;efDht)z#ZNn1rmdkyvR;nv2f^ zV>jiqQC!7l>eqHkf&B>;Z7F+B?J8H>_yjF+3EOICyFfWM4~ep;^PeyWO&XWK;X<=u zR&J@oeX!U!_nlce_W0_nyO_1klNkf9H_!Sea=Nf`%efmG8))KAKrNbw+13G(ahi?i zGq1BPK58mU3>x4!uz#Zp9JX#U_DTN8$|lcbUWO@NEY}@hgTM``RO-saU-pS(gj7l0 zv2GTb;W*{7YFtz_q=(+^BvA(CYlFBIl*}{%cnk02!4WZ-$;;H6wyk<1b6OLu_d2F1 zSydY!15Gl)nmh%E$t^nl6 zr)4(Eh3UZuq+he&y^ALmzAen2areVh>$MJeF(xgn#eeCG$QnDY1U$WmVpeq~sRSpaP`5_%|in!Y{ z8RONr*SS3OzVE&xVE74T;ge3EZPeNc++*%s9l9Wc(w>e@1E2cE+0L3r=q4)(kD?37 zJPi8*n-mo}7lRRdm6@?_Wh$`?5$Bqw&iG^_Lkw&?IxeEJaCkV-T1aZc-BW$4+~|aU z=zT#+ye+`)Y_Jymt*+lsY#z>>pvtP+rII_}diZ65ZR*-5(tDW9*81k=dids(Qrps_ zqLZL5{QfA1SF}lTU8OvWEsJ?jnHu@S;^$h8TO;|0We)jDSu)nW)9mik_C5>}naKqbo7;g}PvH@5$+*T=(eCQXV8h+2qIk z%B)IkckzQB^%3Q%)3S>@a@njFU*BGKiNyPdibV7$19??L^j-u^1Woa>4>p- zoF_DJ=NY3*vhPRMHZUE?BRs(>(}=fQQ0ji@!o4F$mc_uuf^bF=*hy$x@9AaXtx3wL z-1JwUgrd?j0g(W0o1sGN31Oq9c+wimd{=Sm+q}ueOC0r|!Omm%$ET)kTigxHBz*N* z^GNgUnuEhOq=|B=U6Zu5%N|UIh?w=greXa=Q2R8Lji!HUtLfp*GI3(9^&sW`rzx6i zvm4S+9TMr?_ov;}?}nt}d9J4F`LCxjOF@Tcw357h(hBGB&<-(I@dmC9WVAf9=`0*C_!$m{P_ zNzA-Xrc92qnuHUj^eu;M*G2dYTaujA!ffld#xSRg*MRZiU8TBjB}a%cKdy)H4Lu^l zDGO&cSbjmWS#S>*sS=5?BOXE)5j?JNff%mZ{`T;&P3bco9MjZzEZ&CJd%(cGdUYyg z>Jf4{Ud(_D4?EGeT24oZ@Lopb=}kM!;?j?XsW>l^Q@PJrVLCtJ%3oy#iMrMjb{)Ig zsfL+g=F=u&Qsb-u4PMo+tQ%_*V;t8}@z*vT-t9cv>GLMu;pp;9`Z0}|<;-So0|JrR3T-D~*RKcU zi^2-%is%5%!(s^UQg^QSU?}|M3x%;_A8>We5<|uNKtO8XwbVIRQMvhyMF1`C8;Uop zD3`s|+U;o0*9#MTHbYC8FeA=U+)Z_SNGQ^! zvse(OV~_1}tlgQUE}OP^p{uEN0JQFe^sifv5pcb%G>+_uw3s9ZkeFWPD!B?XiBVP8 zcY1Pu5miqO)u@`cm?lprHifgD_UCiGqxxZzgRtN87HhI7QuX}UE&8aM+$x5g+uRaR51D?|gjIboDmlsq^Ee2a$ue0B zPd#FlB24%M(z?I$O<*L}~ zM7>BMKt7vQ|7@hb^nL6r;Gx?GtKqy8UjI+#3vY*vC$IbN&;D9dI>pwdHx;MCZ_Xt% z&3zlsjjW##YZC}kB|OCu7zDMkG;<+T54oy76hvlJMtX3lq!A=Ug#AdH{{cKKm65}K-D1Yh zFm<`k54!?YY*O`dd*aO2WgdN3x<5ZPt43d`)c6oJDihq7T~f{YdcOTi214J$(V4QSPpN|p z`9LIx0b#S0cB%z0T+o^S;Y`ESU%5hPB)=@2j zQr7e#_llDTjLzLY38xebW9HNM#7QW&or}t~+>uW-;;HZ$* zKxHQM!(EnN`8*dt`QK+SQ<~8w)NJ7giLU`E(b=|urdj+;JQR_O5!t$ zN3+MpgfW4QP0ogRAN`0oD{A!}(eH0AVt#j|lu8$wtf%arxs9DwajBBA)Y=nY_*KmF z&tM*VmT(df4B2FG6EKA^H4e~aOj4v%)aEjoz&oU_$xT2+i}$WmG7gfEgBGnacR)f? zDI3#NwA|86kbB@La>Z{2Gfhb7p*QaVTvD)Saz=w7S~w>i%FJIy`+wFE>3soPvQO>iTiJM+`V(1 z*})q~H|M#>p69Wx3)p@^So;;*s^ZT5Ic+plI~Hu_;KqWTYL{_cvFeUFJi3ROY~$++ z(@x0u7o^p|Yu?y>CVrFK~pAuGu&5$_R+z>2KH`ZG+Z7Qfw)D96os zVpw7{A|iMzkQZekGYLrvLqKEzjfiAKBYhv}yMWIDC&fHntrU+9%?vrA2BtY9HbW1B z*@%xD;(gSKm+v53dDr-~Oo5djAo7*(`c7E4<-Y5)%cz=uwIu&H{|)sgK8bwzUm&ao zbajLfO6zUxFv*cLqN{|g0@_A=JnQ?1`{DhGzTPSEJ~6x zF`-O_FC*AR%79Ai4B8vq=YMH>92p8 z@z(E0W2WohU~%#SM>qd5F`idqJyw!2(@+H!$`g3v$)xP+7JIM z;lee-@;2sViKxX^+sJTCih-;FNse4MXgg5a_-jOJvP8rrave|?$pNrhyajT(O;(dh zCL(==G@vqIB_L@)Rk2>lu_X#zd*(5^yKgb9db};;%0)9#=A7gmcFYxyw~q0<*YF2# z5+-Ggxn@YKH%N!yqMdx0{_rJ^4}X~y?os34ada{;J{~ce)U1vj|K;EMGBNgCoj%QCw&dRI z7Af{v@2H)_Cn47(ausk1%&LP$hc%GZ5Ql^mS7S6A@(@Y>2xl`sN6LVxgpjckQSD1v zUJ^p542xr0gxX}B&M_e%sZ1NTCY9u9?#Yr!qQzGuC!$G2Cse^OQdq{o9Zf8=@)_~` zt2^7g_vwB9vm0~h6*FGX#M@v)ypJ&TzLO}?cN2bp6Lq`~m!v(AE{f#vy#n8idW-H} z#7afD^%8pTKJp`f5ckY`$bC;djHp`%@plU>HFI_dJ;7@2W&p#xo1Acr2S#8-+6`CUicMm zUH<~dN8hFq!}Yrh{>-2LcX;BN$2d5?O}mpBPe<(TIF_dtcbeGtBfkFSTYUMeud;Jt z2MvMK#RB;|yy%FHtBTyYv(CYl6wpU_oT>YCT`OV$C5lCvX62)QE@sJy{aG+s@S zn2Lw6$(cwhBbH*Iwhov3;-gH$NM9;R&N>t|VvG`1&S$fUMp~m7E8L61+bObb41am& z8vn`@muVkwxOq_+?#$6t6y!}o*@k!@d5!m+3{}?FkUzMN`~9|^b3WH|_1(q{Yc2yT zX%OF_ZUxh)h#ILs|6h?0K1BWeA0Wg)JU&L8!H-A89MH7FNP;*<`w=1?*=59g)HtYX zR7^?6<%CK?s)P|;Yq?Mccm-tWFe#CB0V&`Zk-cH}BcEV3>zL02q6tIM9z`QfA6V8M z3o~KA8WC$tBRf>}7-wosJ|V{itJ$}>uL>!U;xXQgFtS6xywAmH!zVuauk#N-|5@fI zZ*X#RkLA%VCSo}~u6gR|XZhoQ`llG01yh-@wH;`iioWmZ6Lf=Neh~TP&wUZHVO)(_ z4oA#aN2HiA#$%18l8VOG1S4eej02d{722)Pyee9D&g2{sGAS=fsVAiYbRapfHj_1w zH4MP*)Ocl8Z-g3IU_xyc;fSKq;DU?oKc%U@t#ITy)r{-cLJujH4I7h*SZyv_xk> zdk8`r7O;~zRKt@@S=PHqyU~ta56oBi^ano0 z*7SMay8nNp<*)CLt5Qu7CO36rbFW`wKzu6(imI1-0-*+_}PF>HS=^zSeJi^WaVHG-Q5m z_agt|6OZw!{VkBd&Aeb(!k&Xw74bQhq^q?^C>|giY>4-fl^V_o@my;7twp-Ok@`@Q zSVh~@^>`mqFvf${C>_RtPl-V)a{Dyh(JkyZ{~^uCem^}I$csBr*Vyp{#)i~+T(gDI z1qnyC78=OD!TAyNh7=t}mZTWTxx>UzB!(PtIgl5p@#54n_fWnwivgU=#Ty}N6ULSmZV<5D%NK#HLbbK$X}+p z_#B`3$j|fTS6}3Gc7s9gW5*L#3&V|h&tLpY|2m)iiRXCh=D_xN%=S2Px^SGV62kz) zGI3{dgKr&vlits;IiW+O?|OO$)GOXNTD8>FG|A(#(hY(?>T#jyxJHT-eU1^4fyO9N z2BNO8gz}k)mYai=5C!WDUdq%ABj8m)6MPl&k|bC#)(z zId1uvuRhKXUD&6um)y>WM4PCA$~a7I(YoA?WfD2Bn`z4Q>y75HA>Kz1IhWaz4>aC< z9`*jy6Yo1C-m|u0SxXJ2(&0gcuLz}Om@%SrluS}Bp11~d=L+fc7IN!#s%M@h#uH?0 z$<~0|!z~-A$0!X>D%4jD)rvYVaHn?}#vPamW>_K75k<(FkRd|~uv#Et!0lZjH6t_~ z(Z2UnRE#)!^9@W@k%ty>9Y!3P2GxEoQw;REqc?`DyW0%gml-55^!G{W81YrHJTw(* zGL_$^v8?Kg5%}Kg1Vb{33tqPyZ4ArGNF0adZN;u^6Ld z?@=GHBu?*FoSr1EpT5f7{yH&deD7H1K+qm-1QAQ6U_`)KQUW*BnEPN)W@OXT=M|QS zB!fp0dQ4g((xEwEQ;*YP9K_m=QL|v8;H1<#tFdGistAtEU3rs`d_)};UuPxz_%5qHpJAU z@A(w|iTASj`T?DpV(n4!d&pIBEK?wR#MojRxtgQxHrw0V%$v*ZE}>fxI>S@fKFsCG)4cK8lArqVALp<9Z~r{UCx$-u^nFrvxKdu{e#mm>6m1vPtY)$3V{o1J4=H zt|l(+?DF9Y7rD^Zyls~(Ok}4XQ+bMmTy4tdV+E-cab+S1*&szR-e5z#k8s5MP{Qjw zO>%yti1*!oSE7#xn(p~T3(aeJLBGTP_e=wZBKS_Z8LafarzR*BtlR^ zTp$>%Zy5P)D%~XwnRct^i6{1%A1mYL3Kw^OKSwuu-uHaq-~IP~o*)$|CQ=M#4ji82 z!-00k;hbeyb-a1^4Q|eEa++s^mn*OBhEd3DPg*YSkH7`)q#4-_?2bIGRdiGqTI&U|5HzA*$=;Up0WfOL&#BGmpAGRo zviR*dbI+1xrOD#EWryDoMlf}YR282V`;np4EWDB#aFqtC3fX<24HrBPo<8R>azC`uxPm(5A(bK!gutc{{;ZF&1w<7>_re z#_!SSm{GIj!p=7L?oQYrKTf~cWjeaW|K=Ay!Dz4H##<}4$BxR@Xoi?Fafs*=j9PBp zIO65&-{Ril2EjyP(o%sCGFfU|<&mtUA<$Tl1drTv$b3#$&q%Q^rD2rXU7H7t_LSPY zfM~!=!i(aK;wyc6$o16{tKJr3Ce$d$P-7UjENL7P; zN5soRRSXX_-n0M9`r;v*_45oy!Bu0lsY!>5N+Q<=#L*2sRXd`+u*E7Y*KNd#aTBCl zVQ}R8uh8Fp4O4Gph9$D77^;MtCDJD}2wE#{|8Y3H!R+=gQC<9f)XkVhR%AZMaYB6J zIikBnKFG+ZDdlHb!3!cIG!2;8gG;FQV8^KQz!9@}jF~>gIDUiW;tsW`an9oXloT`8 zcqA!X?lQan8W(r&@%Yv?UOwDqRJ9!5e3?J;Ki=cnk37bkuLVqHh_%p;94Zh`dyI*g zWzFiI@Wrpb#2feDpbs6{q|)#ZKvE)_IW~@QZbI%Yp$)XdHr%$T%t@xqtRp8J5z(F~ z3#^&ZVDPF$Ep6Ktr81_p5=UX=9U=A9B%FZ?;mWk(g7J*K&@?p@VQOp4iOr=9y^{$aRBG2uRKNFpOR0mQ(gL48M$`!7HNNnTwTHCn&cxXWkf7E zgQ*2g22Fj@8Oez8;6{jV$o+~uB+ULcxj!OiXnc!kM@|DG<+aXx8q*@&XMek9wSc$p z++n3N`svGj=4bv8aRrSB(+J*YQjDazFdTV8FNEN@{@M}W{KgA(%NgD)UCvlFU@a*o zGz2t8NM)#J4jFUD6J-W>m8_4<;=ue2m@0LI|y~<*>MJM zEKTLv@`l!AeC?@54J|^0P&>y~?P*4yYy)J)TfsR&y+fSE*is~7ypV{9=z1cCqQbga zM!q|Dpc}s35bqXPMQP3VNMnDfeOZ*k}FE|`d>03?zsA{HUzREoh*2xO~_(jLvMV(#vvw#N)Y z%7K(4A`xp9qZy|eyB^2nea41?R+ViPDl6>Ou;YZW6?VO&^)=W`caN!ZGxlF)U#vaFM?y6!T}tdIZt>@*@6XEzlM8{&P0 zNmmsSv-VB+&JjP~-3al6o$L=@$GTnk9Uc!N7-I@Auk|{0RUuwu!6{ULRg8C-dW1Ry zHV}?qN476Q^w`*;2TO9gfYbtcj^y?1v|+$FPqqT$5R(xySvoZDVVogU3yc#6H>25q zjQZPOBHenC^y~*oN2!o3irNa}E64*Xp|rz>3Uv*}kI;GoByPWWm*dl0Y}Xgq8ee0u zo>hO3A+8vY$Fz2g(HYy@mS?YBevLsXx`;65@${Aw?YfW))i@6N?G=|Y~ikN@{R&j|E*JeP9 z^%l*FNeLlg#GqM8L&wO#wzq7f?2X54w}#!eMkLZYq45>g8yb_@YCMy+ru7c*9aUv< zR!AC9O<1oun^7B3FJ(Hhf;9$gMu{XHz+@zQa$b8m7%AsoeozQ5B8V}+ohgb9HpKh8 zPrT>V1-!e)`@Kl_dq=?!y^eL0gvfczu%cuwKDfpdS3yYzscWRFK_b>Tbn1}WlXHNe zIBN)}H?gP3RNH&VQ6k;T$leH*VXXmXbO_|ESaAq$J-Hx*g=7*)hfOU~Mf!A#Jw2x1 zelPyoC#b&mx6vn`Wi{GH!lG=ih?$tdqp^V;QCG$l2^H4YHcr`+vt5X};dlGbK&IY%^SnyN-9v(8j9lWvE$n=ziaGhjnBr zppnW9jG}U(_Uw;qcD!(5I;J8~drMPSOxp&R%gDR7g6)x~tt;xrQF|$^#i_>$B{_zY z%LJwMf@VNWnerjUn20E-nlp>~(x{=OGp>A}*XK_eEx$e=H=4tScppXL{f&}n`aLCw z2PCXNi0JSxIJ2tBl)*cSdW&g&DUi>G+*IV+!fA&Mfwbt*JST-YHVX09g4E^W@oFtp zBQz$~Cb4MBi1TF}xB;92(=gN>UK8~&A*&}$_8F~?k!zQTuYChv`2zMspCK;BhzzJp zCAniA#?@#plPNG3u@=Q5;;Hi~mG$`1RT|sU^()lO=`|3Co_d^^y2uBfeU|_8uly22 zGSs%?Lr*=;M?dsD+=Z}E?!1+G^Q8rM-#%fr>PR^dV`W^5MxJqN zF&XO0(>jZ_&{|>A)-;WwZG@(-@ZJ{hi&Uy5#72xYBuVI6Vn|v%cEt&aMAlTIZsW-5 zow)&{V6{v^E{QeHiFc#({?21#d;Gf;{eC|^*O;?8U%x44e|PH5#hpq~FbOo4TT_W7 zV=)3%j@Vw|Xhptv7ZW4WdWIXfh{tnu(!%M0nTMkFT92t~#MfjMvSh?LvMMP?OgqAi zrUYFOS(5#vOv8=0>GOd7!0)Ab@pIVu3^VoM%LpLB74x08BG(l-2gae+q0ZvO5kn@W zf!d9kwEIj(6OrF*xc&kh z+?bL2RUsuPcK|sNw2VH=2stKP%G4PeV`z<`7KcTMeWHmqBR__^M@(Gj(+oxo#ugjU zloD8BVl5+8wtU52GiHB#%=X@d(WqwBc-q>rGab>?7Vp4YrELvOYZx^ZZQbCkS(~L7 zPh(>u;ON`7fTzk9FyG~s|!|sMm#>i zY&}agGSshrwnSRqfOw2plCz|$hPp!RzT8b?q=@+S=o+#XEQV z5=lC&H)Z~u78CIti_wjdBAZxe5F<#ARCVdd^G;|-72bi>;y6}Yq46-O9g_;I5rnip zhtA}H(ju)A$;PayF@xAbxLzL0D{x-Ls4DC5cJ1boGdU|prL;etd>cNNMS{4z&h`0gRAF4eBSD9zuTuTR%ZlJw;gdggh?gR8>c+ zAlH}KG2l+V3bP};7_>EL+dy3^FR~vM&j4Mbb|4Lz5A1%7t?`I?xPyru8W&&!`;#k- za^m^-eTYM?xOw|+uDQp_^!&*`^l5f?w#hTdON+^ZwUMTsFltBav|CK-mbP}-Dl_t# zi+04e+oP)Y@UEq?p0*h=8tvel9h}?Yig|*@PU&<-v@@s#5sww2@)jph2_=~o0~Hw) zGSe3Jwj86{P_+i{6|oWL6>Af<%Z$A+vEanxYz0<`Hj<@BQzU65+C+4U`1PzbV-V}X zI`W!iMS+-0y|F691Tm7-plZ=xkpbLb(M}6@s}%G44K@+)2ERqQ1HoiPXA9!#G17or zuIT&w#Lyu-TO~?P85sl(wp0j^N+QnJ>t$nDi-J9(#Zv%N1}BOUu!gJ-`WdU;8I$Q_ z^l!h6R)Ii52~^(UM%&n2Q^%gg-B-!=4$kZ$J9`8-MX50J4mVFkH=sk$Fgsv5-D7*Y z%i-*Rl^-}+-Xer!CR~B)F^yP1T;e**RyCwKJox?<~%0gPjHI9GId}t1ZXB z%z7$|z2>}53T8A5d2O+4BtuqGh^1Xx*NM^fsHjcAyCL3x4kF%s{`EWMgnxP?^mj(S z=^;J%ozd`vmSPzqgaPU15IWNFDJBJEJOWd!6|;54oTgXublvq7646?W9hbT^U0?{uHyE3pdnnc2) z#v+v?slhNMX-A?fQ7Ps2Uqo=$;jO`VOGt_%A)?fkrFITOj}t>v)p%Q~6s#B;ZxL0z zSSsU7et?Wf>3)NRwdEW!rj!b1N^NmAkk7hha$etRWhCXI&u7r2WneKG(K0TGm{3s^ zLsok}JXPOK58Gfvyc?{?yQlmcRyLf84mJZ}KvxTlS&(&wW`p3%_^zCg$|DhSHfU`T zZ;@3(eS_8xC6-%OiG^T^Ywb4?)4Vidn2e-|OlK^%BcrWrnESU0R7{+~O=^}~E&0wi z$Oy8>R0c<&zxNvX@U>#nGqhNfaX!NFZMgd~!xQgiJT>(FEmpC@SC(o099#Ygu3Xrq z3v=Fl`&%5vL;lQ<|2%*4fB19g+ZjnxhFYXZ-3ay6lQgoLDX#Zmlx3e7;YnC_{odTONwyVv}jVIO;a2Mi-UkBArJ!rGAJz;eL{SppLxYzo{dls~%+_Ol zHluACyep)k5LD67(2A#ZnQ2gb0PmEp4R}?^8H(XsB{+{0#i`;|-j;aDmUyjs%LUY` zT0waySYO_uovf6ayjH4=jO?&%brLRBlPozSxlY8mZ?g@HT*2)X@cw`-*uJHr=lv($ z_X@&!ziIbvQ-;WP;(d=ldwW+ZRu^hxq=W{F!@Sit2}Xz>?dFuANP#dGQVZJGYVcAN zrwyf9gLxt`Nwci{0ORR z@C~I&M4v$vmY3M(6m^O$aWV<2(84XBQ6^2kn}aU(p(waE)Gxx?LiOU`ev z_}P#C9RJ~e{1?!3urmX%B#HE6Le-;P#(AOH*?JyMpPwHX%$$h7u8TBpWb`HH=0Z#Cn`&d=T2~m}o=mM}n)NH;oH;1BnT*iWjSI zmxAvaEGT18oNiZYk}zV;d!Qgr$xTDDg40+h-EF6v;jpZflrd9sHc~E-%iE%|R4SM| z6R-xCHW-mob}rorYst^kjJT{pz=^I)r?CtKbj)J8_9y|Og+OWfz zzQO&MFZkHgKhFQ^fBTo%-62YBlpWv;_tLqAQKXlXXyE)kR<9ol`r2FpoFS%?}$R57_@1Ap>K!RnIDnlnmN7FCBm3Km2!j^o2w0^^8oboUTrTj&^30oN;Y6 zk7QGNP0&HBg?0{QXxK=AR9NghPQO{POy}T~J|-G<1UxZr5D`?2l8jFL)_yBAP6@8i zSYhTp9iXmdCn$TZFw>ri*UAHv@uH|xLaT(}Xc|}fbRwd)=#uTkYZMwEfKuBnwj6$b zsOwIJl<US|Jw@sUR;_-G(lEiX}F2O=vtjPaLv3+(q;fEF@YXFDN+~suABBsH31r7GyN?#33bPamDBx zWN!|K6DHRWu-muUoZN=cqN)@Rx?CbQg}sRNXT)nWigwsIV$(Tp+MvS%?*w%~+hFD> z+0c*?OO#2hAzN;StnZOGEp&(MUMxt1@#KvcS-o|WVc0OlOEll6DTN>Z*&pLGpL>S! zW+7~|Xw52(nhQvyxZTQVWMC-97#%7`*A&zeS&hk2ppzZ?%>k>;KC;m0Ko@Kh@=wG{q%^XeyHY)})%%`wf z(D&zPEJ*2Lx{Guz>*ITreWBR{T!JvGnkFr^c_Jjx2Gu|=Ev5m#e}n0lPwAuQnHN98 z-O~r04HF~_H*Or@=W{;wGtVQd3Qoxk7i;ZNNfn63Tt^f)30yF%`$81e($?Z!-JS zK$kL8?Qj^*VA6K%%o^I@XvNS;AUmUoLu1)09%=_0mN5_JABH0dlC9DWR_O%GHEGP= zZkbjj$ySkKH4AuOne9ypv$pca{aDk`p)T~qUCp^y!24n6Z0#M(=6g)O?{=VlFVpk4 zEZ5#;8GZ=7^3bKUHG<(3+77}L@zbhWXsHxI&WJ{eOK34xqfg!OkgSy3#lJb zg%lH3B7HAx`j*fol0+nVIxBQV=u~OEV@Exwal=v#4Gm4$L7NWKh~z*Zq9GzBAx*)? zvUTDL-Wx$++79gIOjm?y2<)*(>lU;=GnGKA4qq~jGp3!Vop{>DG4Vp_JjoSoG@NP; zS(o~G!BTatX_cM1Qgeuf8dFK$(oI|4Z#BDQBpKqt2WZ+rGk3T^<00PK1fh^205+gyQ)|vk zCi{TJ5$Cu3uK_3)tv17ifC=>Lk@h1`vOk${@hiUxtB5b2GGwZ_bR?axpt%M~NsT9@ zNEp`m^f2=wZf|&@sNghUqe0mo|Kp0EIzQsmJ1_8!>u<4Rjwkm&#?Jmv@Y&CKKK~Ct z&yW6_KS4Wb*c?|QLNS57r311s44H8WX%mpq=;l*e9A3s6Y@P~^n(U>G;)^Hwkqa(Z z>%c0l*sL#bPPP`?LXIO|1dqdQYkVeB*cCWvTDp>$c;(PR>y1F9bps8FAXT-{wJnn_ z&`o`%5PU|Z1{s+qB!HDnBH}IKtj0GMD`d;{=Td(ZtCc-!RsU<-oO<6?%W?>c^QqqM z5~{%>Ml?8ZTAQ%1K=%rGe=w+qhv56c5*Qyl3ZHv6_HoHQDT)PGi1h0(LRRcIY^hOR~T}KlW@zw>ar>}Fk z^V2MT;q&z8Yk15Ng9p1nhBdmo1N{bx5t&X|Eqj_Wg)GGJ0@t=R^gMV!e)v<@c;&Uf&8v4_;?Mtq|9~=rZEBW;#YD=r`n?n*CuOpY zW>gbwGg6X3$T-(glB3VCj>h@mSmRlD3*K11!PoD;!pZ7_rcpXSq2H{?aU`gab3#g_ zRfhvwTd^lSd+L}u$E->0i_y6Hxzkt(TaB*sM$-f)U5BggZq!$$0j0-V1W7e7Igd!m z)PLMo(`&UAxa1mg^RS^=Yfn5S7eW^ZO$A_ehC0IqkCno>S=Ys?N;R|Sduqb3(iN)Oy6XWCOB8CE!p@JP8L5+^ofZ=N6QL z^NyTSEk?}S=s+2utp$x`+M#76zIDdM<9l5DGk=7|-}@CV&(_dQP?lH&Wv4;Pz$6>v z{vMnA0}KMKM^nuo5Oe5kN{;oY?3|JN1^Ywh)9b+9lLgN|_Y8O6y3LE9Tybak2mHq1djXW?RW zj5GN4mw$_2`SSn3sDf)f-go42LmW4#Dvg6&60J`(PI198wGF#|V5e!AiLuuzdunK^ zUnAAFCUm+&+bJRVcY^Glt4$ucphPr{60DQbA}sPmW^aU2nKXsAK4tMc@xVS{FU9Y@uTw$(7 zoFk7*L~C%4jtQH1ihvbmc(CMTPkH>0{bBSszQXzOlCUX^tw6Vji6f~}jvk>uf1SyC zf$o7{^^DozaDug4ZK^NixPXge9=jj8aWO!5$j*Gu;SWEmb`2rr9lkyTq!!9ns&5+ik z#ZgX9;PM`ikGtgKH@GZoKKi-mx%1UK{L+7QkEh!|!q5NA$JulHY+ldAK}aY$XC{-t zbVn#eEE!%}M3u&Sh9MD0ttt$K(Pzv%`ed}bp0C_~g}?p({hRC_9I!v%Bae|dL;$q$ zcokfUI8|K9I2Crtgw(U!X7-yYd%-hng#92imMOVMvk_xGRfx&f{7@(+XsJOtQZl4% zi*d=@%+GW{R_;`nJJgSb8GiJ~<0bH&jJo>JM zntczhoU7{!c>n*IX80gWu7e9f>hqD?~+Jd@U=!6-iCMbOgVO9MkD_Yqo8Q+%~eYoV9G zT3ZhGTE6t^E&l3%{nzMbfopq542wwW2P6rhX=tTEBq2B&X$ex;ZD2R9*!Mk;w90Nf zNX zz?E$qEFWOzr3gVfP*0MAQScWh$Qy59FEkVd|6oCR{U&<0#yx&SnzY!o1C$~jD+=Qp z8%Ct-YT@Ok$E&CGBiR?4NlRXil-4ukbKV*fk3RbZPqzo$bB}OQ3>O+g5C-e%)=PBE zuy+INFCi}|_g_J7gPR1>`VNw3d`70kW^NzJ5H@rXLg2q_ENByuo(RvaCMl5%7+QT8UD-}&ZU{`%keYp4_sXOEJG zo=H)q?se=q0!wz9#By=&9<4#lzEwGbyB+R3(MHX|-m zmZ#`ugN;4o#c7Q|d~`+$phYRxP=jCVF;}GK2S{3B&cUWe59%aPVx}|>WDbiF?HXcS z@Yc!eOwuurKH1V9e2U|}j;5?B8CIpBZ@og(ewN}7C`}EUDa#9*`x{a^+ zIcMv0KL7vtZ+ZOb$DzICPq=Xk8p>3qcIY9$|u%8l^b) zwOP40#}|IDF{MWmA-S;#=ybrj3 zP|NVcdDpgPiQn})7!Ht{oL$3l8iz?kjy-a63NPD{y(SwdXp2`y%P+ff=vrquX= zF+*NJ8nM`ul7keG;7Mm|bp8}F*`b_m&|=SZ7eoiR$^9$IN+Vowk>|w^VKgb`1~*b4%4>daQ8YF>q~-zQ3b`( zxC&mu1zhkHX=>?m=y@_YKGJp^I%RIqYQ(Y;i8P`(r&W=lb!qjmdeUm$14t(4#1JFJ zCtOJ=Qd7dL^0x2t!c_6Wm@q4~5NKQNq}0wh(L^d4-!^D)WU17SI3-!Be+^&Ipy2AR z&S@hqhv|xK+XWLr*z7M)#*=5ma40 znhWF{Azo7YM3EhIHmkDHoGW)YUP9bp7BGoOZ-lNRuNLs+1YLRLM6gznqXUNiF8AL2 zRk~+Bf(%AfqX{18I#S$F-da$CgHF(*wFuLBWC-j`4rz1brC<9kY|^s7f5Z!iAA$7~ z+`9QC&M%cueEb=@!#Q@SlwCtgfvh!aIMwB#QG?Lit|hdBn+c=AYj53R|GHu5lHh6!vuB>0Qr9CljvqBfILDdn4x+Lmn7Y##0ELU^t3JKyd14 z+J-ndN)hsQQC1CO8Aqbif~cb6NffMDZFlmu=Pp|Tbv0b5j``bewL%d?8jo+AI_V;q zt374Uv2fcHC1v)^g*{cfPkcPP>nl!v(Azes+MgGfGm-3~xrJkVdP=UdeENfn7Vm zAMKOQPLNekxjsi8eU$aZ1Fmlt&`0t()YqD4iX9*kq`!dGiV_pjIG6-(VyvHdoc)_O zxpjPxRs%;zkMctw`(fVr@`5)`zRuj=K#s4$q{Xj1xhcrB*1|h4wS;o4RA!h!ig3AF z^WgObU;M&b{LV`+A(|Oa&WI60XlQgGmy9^Y)h$#_!%dMVXUdEFQ;x#Gp(zJCVd@1h z1HELT6Lcu7S0e#O;{c63Oc-;{qisVRH;mCx55+QZ9B>kGI^s$K6P$WvD+%0&I&S4- zhKPUX>o2<10(&%6*%(r-!X~*ICv+<{bPrEmpx#wFDY$L#MB!@my#n4Jfa_h2uOA@# z@q3*z-foh8-+RTj<%hNUHkVWfoGjoR<|1WzM$l`dSx3&G!Q*BV$`EnBU?sw0L0O(r z_OD^>9^yQ?oss(ulo7>|#)O@pqsPa{Gf&}<4k;)1YM9Kd!xjx?bw)}+a^#&JWRB@I zWHaK&njKr*NcOeC_e&hC@N6DB)oP<+aiZ1kEL`V~85 zo_pdkKGF#XY}m<;UEeWrh7w7o+LJ}n=Zi;GFC0BbP(Gkn&}g`@e#6~5G`TWL-D9@fi-!y<~Pb2KQwk+-#KF6Cti5= z@z7vN{&o&#%sj+jMIb*4sjDY^#~rbk7!_akib@N^U z?}s0F|Hc17?>}%m5z=Z6BIuYXd8DMVPBvA}isc?FYeXm2l3EfLX1I1rE+eH);2%eq zXZZC4%KQnEHdx4zTXO7i?F83$#Nixwc}98cQP{Z-l5s%Rgjl50$f_MkLqNNI9)0YH z^ZUYTosd02h6~g>vU>0vzNiE3jYFP2c#cne^cm)lKf&tWl4qZLk=akR40{o49pQ$u zyt&}ke|wkJ*9Y#N9CNxpV;$El`xUR9zR9hNd&C@Br4>$EcI*f>Wj2}9be_rBu-a@8 z4P3u*198T68m=Afa?mMZy`d?Ni3+V5tr=b%eM+p>E5>mRlB(UgWb!y*DN|CyX{2j2 zO>n4G1BX*3__ijpVH7peW=)A3q9n{R5`-|D;M-6$m8rVkcS*LfQYwYvUFC z>Ij*&HD!N*o~+T+>wPk_|Y&sZ};b$wPvfN2I|ThXpVRXdWn=C1vPA=i5eFhtdKH zokuyOtOvA@uzwB44HlP(z@`YQ^SV&#JBHgA4C4jQKKnE`Hw}w(g(hIqVRisM^4qhX zv!loP=@#nGV zE8xAleh-FW6WiWl+Xaf0x7TihfsNRBS!*%XgB85_dhB(+eq8G)yAxdd1dKhB`)Ud( zg7p#8HDz94_X*f6;r<2k{2pa?h@D5&WyT=jABE;;u;vitg5z(#M7gu%xzBxyd%J~u zZ+w|N+ePF$49ac2!^@ArkKT9@_7m>aMBWc9m*96G90cC_#dE&$PriY=i0#8>y`k?5 z{a6#%nxO1Vb}7YkzBk30bdj-4r`|zP8k^Pq51+a-+f886|d#WYrgX3HL`bri~+MVzWCV4pH7avSmSjDPb638pOBcNP z<(q^_V)Pq^u^`#VjP!ZKI2vM(#$ZBVVM-HPTxdwcfb$-w%7f$kJbUA5o`2#=`pX5a zIEu?;$@mnJVE_k1DG=+lxjUJ%j)`?LEEP%_>VwTyTbPk37LgJ`GpQ6dF%t%8ohOMQ zTIeQ$;46KQHVMgzssa;IuBwD$hAY16vI~eR<_&f3ZH;g60vagW)JSo)w@oF03-#}$ zmA{n$@IVj00^S62!qm3icY>L_8hL-8F1`8`{EN9hP_*NB_}Fj%@qI(TJ)C^&4=IKg zAnVo@MO7-85&Iq+BPnH&0DeaCle(ZWC8f-00^XBTq@;|vnhn6Z$Crfe%rPG*i$$%S znNQ*9fY|L~9Mi;CaqMHGLw47=&pyGTzsGO?t$)m)oqdEK{m92CZWp(|2ln_a?Itvn78e5RAu^<~ zW)-NAQzFL5Y%*c9S`&w!Gz_GnuW4Q}A}JI59>$ss7Q~T;%x1MhOQ8(`XIA-h8wt*E zlF6yZQq9O1H*5NS#n7*b!y2ID}Z-aEW=TUndn)$lcs*Fo$~+PF0zQMCC1f6W^*3Ip+%tBb-a#gw^F9!4$sTKT3`JZx&)iVXRlzQ?YvE8zX`5Do9)T>GFhvTq09 z_sVs6|MWB2^0#%uEe{<|R_f*(p%kgAp|*yqq>>>hl0C!->kF7otG?4KQUo(Wd==-L zlxolz5~YB&p1eGTrQCs_nJvJ+4d|gOtR$t^6tDz?c)W&N20#(Ka|Ux<=?+%W^$X81Y&;VM?N8A&rI2dQI?x z`uHYN3Z5)k5gR5FxV*NN%M7GV$X!Op*j+&tcGFWPfwT!A4o8cmK(+`B z_|r%6(<%9tR|x$B^uf5z~Mp(*m6f?6`(K5qA9qS3?u<&Lf)0(xasMd6tY=U-J`6qLh(F z#;SA}HyDL>7I0D^MPgr2Z*(HKwyHYlT3jobFVHFY7ApgqmZ;TbnG``bsV0;msCtlG zr(-fgz@#O6U%xlD`5=*ks=kxkYl7hGX-4Yoo^N#Xh4Fxnz zNOx}I?z{nyK82+PG9+}2q-La%L}%Bz)PTF8=-r#R=?r({S;q1tdY&m~$84_OVFXs-usS17r_IKV=X+kum>^qigbU_HnE1IFP^b`N&A_Nga% z_R~)x3%L1>W4`)3UuRN`)NklIA+?UCoiW=zpy}o~Q(P)cXt+MzW!J$Dk)05jv@@h+ z;&MSwiN-~;ENQ$EMCfB8SVl`C4J)klNRE`$lWbK_Azj7=MFmQ#)$5`2h<8{wg-L)8 z#19ZsZI#H1`3C8QxELAFR^&e7oG|G;5|k9Cl*Z%y2(AHbDYk7Tc5Z7c4)yyYZzYMP z)Q7M=)REcMpnCS6ZE>m^%g6U{6JXUSMHB@@m*m)xyINgHtQ9yef}jb_V#)1$DZPcf9@$BJDTvz z|48V2m=GBS{M<9~GbR?8Bx5eZWAjJZu?eL=V}F0f!Qq4)8oU7eQ!Y==NM{>@?a*`` z!kVTS9=06$f*3C;=20gEQ5vdx!Axko788e4Lnj{X9M%caDQV)XI3gD)5$$1oFtR>b zkk2Cx0iEySrcI3r9V3k3^BkE3N-3n0v9WUV#TC?h(1N8*O!d?g+5w!$a;^Sxc2)dy z1-w_l`@XMT-mdk2cfRlMdc}&&(;3WmD9cT?>}o`OgZT#IVU}&FZ~FkDMm>t_K$~g@ zCL>wi9l1X= za`xp7CvQZeIiee|>l@sp%Dz;UlRNi$@HgJ#>F1y2nNPmJANu(}$nF;(<<-|OS#Aaf zF4-%dd1=}4j>Gwc$Mzm2uLh2n7hGNxZaniS-D54|Vu8j9gHwWz=s2P-(T{7yujtAp zo6RMXdtA;{p`f77BaDoFj|&Y=4yY5Fwm~P3;stFL0;FJQ(;;gkzH!F#txML67458L zesDnB1ti2u9r-|(Kxq_h=198-l8|8}G)=V#myG4wazSHTIs)i=@CDJ;mb>Rl`D#BS&IXva_}zj&10^U-+M2g}H#7NB_{hdv`!bIo$Gq|Iyg zXAMt0c7ypeaC!e6+=OuB369TBdG+hZJT<+}-q9g>xuEM;$WBX0dsw+(y?%h@V@kfD z4a#J;PjJ^5B{QTYLPAt24isZtFHm0yVM-_yj6_a~PC9%L#1h9}yUX~-2I+rk0%a|5KBU(dzYankY-~$i8k+KS|{PRg6 zudXZL{U7yuJFNTzrjvb8is4&uR(N~reQzql25pgZ1E#fjZ_UO9SiRUIz`jL^0K6!u^$Z9xgNq2A8_T0y>lXalzIk(Ew zJbmL)UO(%}VT8ScuBPNy@8CB79qr+#iIb1R< z9k8EUC`U*q%ytUXHn3T(m@NWvX}DrMGP_Q(f#KD2#!W(5(Oh2O{0_~;v$^;(yLuZp zoiXgpXuYR#4$B3_(9}?h;$?&QOsj=f4L1=qL?kBEXG+*LTTthcqpy2O`J?8W)(Y>%!Fpb@Dc~00mXqwiIuz!8K`;;ya2<+eQn|L$cvY zPId*nSJ(G*iGoGq@&aatxgAPVFm+h*)l8vVE2$_Z4hs#2Rl$9s9#2z3TzI<~Mg_>V z6HKhYFrr?NwuQ$IaJP@q#mHzGnKhJ{VZDIO$ocx5$LCAtlNsl^N5hEg9z*&G!zYp)>!IYgY_PMI!l`_l}MhvLC9>cH!^rNUJQq1Y59 zfi5Zc3+p$J=o;|T9@BH&PK#cfkY++|3XPs2TXimGNaGL-?>hMygvd`_Kz`ryOsE0adgm6>T!+~~&2G)rm8K6H z2rN;`fXD>eDdIeu)7I)-t7UA=)oG=v9#Kms_dP!LI4Y1xaYO-`wv@(0uV@nJN37pq zn>FjW;KAk&lby#oUmaoE6JtjRN7!iC>#vd0-^N}4Q7&E|dG)Ph{mU^UYwkDK}X(p9O(OOf4g19LqE6OEl6Nqm;LtcBbzQI&SCSGY;KnFyXi3>;* zwx=HV4yA8p`{1lLb)nRNvaPzs{PrECg0M6W2_51DC|7!hE8xAl-ix+)KTv*8%0dJu z0l(g0r{AE+GpIg_N_;!N*9u!>e?glDtR`%^Qfiy62qmQ|zE{C=!IfG+Q%b?s1IS2H zaA)f}Wz8MU6W6i(kS;F}KVp{`xZ#{^!utG_N9Ip(yxu34HR6;UHmDq7F*3aJb!?rP zT>m&PUcZJs82J3lD}L%Cu>7wRc1_TEW-v!CMk=0oqcF;b;v(*`DIv7<>yb-FR!h&^ zl!JrJxD4o~;74$IAa4Xpi}y-gE8-G<$D{iVt|<^QLp-CGCE;05qo;)R8cy%gU);h4 z2u;KKa#?GT2sCCS8?n^a0CX8JH&9AnACzUR4HH|it6#(l(xr@?yfz_hb{O4Fyk;h8 z!E9nM5%OGMUW+WvyLW+Y<&A5?PMv1WYBR;d|0p1C``~`Kc%3**wv-ZA;bd39`vU}+ z?~aB1UX~W$$-VaQbrGqFS><<6y+Wn)vR9CZ495@}inh2^h4#cqSue3*WQ(X7p`8&W zK`i*RLm3?<#9GN?N{&LacLdj`q`N1C-3jak%5aHWtjH%D(oRG3)D6nZYw~J?TlQe* zc-dhUA(Yn%vriD2f{PS6K-QO-93lPFaOWPI@yq<;?xXyfogM!2*T2rsJo{1p)1RHt z{kG%Y0JbCC6-Q|zhc}Ed1WMoW_@1(NlsG*vY%W`LoG^E#{#&gOY#_KoYo1_63M1M& z!cK$Vo#1AQg-BkGY}O<3hOoQa;2*q!-F*#KE5_9&L%*P?qvS%)7nHJ~!~qwV2pdXS z)yPdLI8m0vhRv{Hu1X^c(jZol9H2GCB~ITAPj;8cF?^VfUkh}2jlwZ zss4G-kHH>hpuN`z)QPAGpj}lX#1*&!a>iCm%6fwlal0M1$z-`e(hh#-X{>8O4W9~8 zt$O@Jz-BYXVU6#m=wmHq8YrD2xrT3t&B$0HNtN)zQ`nn#U@%I*!CB9G=6G=S29Hml z;MMMcGGrtdvKK@>Zg+sw1!-}@U-|Mc@;^KHG(Y{Zf&b^P{TeqPdxHPVPkx+_UhZ(x z6dp^kzHf}Z$Z>sU0vqA(E{N5>>*Caz)b1AaFX`a}-k+f3+Ot*d8X zb9RC;(q8vWIYGYp61?#S`S_UR3hTTgYr;@e3StXNI;RW^h#OQ!gq}iOOr}y8`UT4Her-SWHo;xMm7bpc#C$m97n(LvEMStENHr~pCUP;#n9!1$&K&K`V{yPQ6dwh(Kunj&dPL#{ zP3+O`9B#dd-MNRI-e$8rVS_`xU{-CyA_>bIQoNwV3nZ`crH0z5CY%>GF)~_0L&gPP ztAD(!k4yndPu{HAT!5FZPOx!BahFKw5igjVAk7SGfzHsK7Gk2@^Vof3JU_-=UcitD zp{W{RNtl49SijCeF<0{)Bo8&YY~mp}kTqN0>FUP40^T2t>Gr+ogAdjq{JXi_Z;`0I z>*x1=p@$|=!AXlah~pYtF36`BHO6r6F+Y;af+Bm6IxMs}*&wI4DQD;K*aCO-0(ta! zUriJxG?a8fIz2%rfjnyv>1vQSwLVD5Xd1BHDf`VK$LiQPD%U{Lq z{t%^o6rD^k+hA@=X|5rY0=e*4@BJeGi}`ar)3m(t=$cnA*8ETZ{$JFpFk6$?r&xc6a~s@nMp@irxV(d{ zPhq*hHcPTbr1Lectc;Wr!B$wlz@-gT9g_f_w=w$KspJ$ACdh7sAF zVL`!z=>WE=n{vwpcSxR3v3^B)^^3S=Py6)8NzJ?lee1S9e6_5(zOF&r10>AJx%QUH z;INX}ESBs(`#9IHKgY?6uXXe*Em19!21Vie}?TmOPM^5jcZf}eD@e--Eg{m ziNACH>wL28a`W~3*rOlerSt{<(r^ED{_ZFLBIT{f&U2n%o)|O9BGQJMM_UTo3T^PT zQ-N3@D1H*iiv{Cwg2rN~SKvTT7k7FZ7u9NE`CF3i^nv5z#nk?b>L z>Jes0n8Q4h&tF4lEz*6Ij3O2x3q=K-A(kk^ZJNmqq`gLDz?B8IZh^!a&r@N^{r*+- zhyOLC?6LRwlz8Wy%hv`(Bes4Sn?Dcj6O>sdju~$)40rg#{crNqkAIGxqFg@Mz~OWJ z;&1$Bu^6&qFpJg!}YNA?nSn`NK(hb%mLeoNDkd2W;LMAh$AF&6wuzrDz0}L4( zHpGkjq_bm&z9+^+pde%7-2}zY+EQwg@Gaod8cLgig&mI-VY=2@_{Da-wWV< z?|Wn$ODPSAL!FXW3q+{Vj8cmc-!3^6#l}LIcMLW_zd&7wbR9*N@!}Yn@8D)LL^D|f zFmC<*4)O)#;uXTqE-vg)nl)I1tOxpw3)r2}jy-F4ipw)jZzm34e3Cs~a{lstD2faY z(LvBoijm z!d=hiL60&rolKBY7?1B$F3#~ep_?8Vdd9^W>GG7cUSZ>i(~g)ua7oiev@_Do)0c!= zgL56K1KAA}Ej9llLyiQH79g>o>m|eXoG`LkYa^@Uc1P?`gUAdvR4cr$T6u;9)%?V~@;dl(xgXV4((~ zix^f4Y1vnA|85JznlehIB7%Y|u(_z3&k!iZDp+Q~Jg&Pz&UZ<}>jZg{*vyehi>*)K z@|+xRFvbig3vd^hd%(#{uW<0(zry}Ha(db#(>bCEh698^2_Un_DR#=6C$FM1McNk; ze~9fp#mle%9sbGJzr>$d|6zD8;2wo3Mr(o{2lDHg{^f`)3pxW$Aj6V){}@@VAr6%F z0^9VAmk)@S50HLUWmpJ~h|U~ks`S3ppmpYN+p#{ z%o}p&2~CRxPbQ&mO-Unh91t@?5!|+_LM+$t98-!3;Lxom_$nOo3V44YuK)2uN33=U zo2wZMnqfL2`|Z>f98l04G3RR)ct2p%g4c#pVr{DkEi@e>N-025u#EWH2`1{uzD1iS zVYpyC`x=BJH5)x=eyx}DPxpLw%ojAc zT3xRh=N+z9G&pEIv>-ts2%&@0Oo)BM@;DL8#8S6;y6 zI(pFJ{DyMtYv}P3Qis&oGt4=dG&Hk08d?ymZ5KIVwxFaXA|oQ_V6pa-WP@2ooUbys zY=i>o>UO;X-VgItN}V0vZJ_vGCf)C*d??#?VS8xO_}#0usw@CB*Ck7tcbVm*mrGR>*DU z&HI`*c=SpfqUFDb8mo#l^xnn#|!&Vyh2E0mx8Q{+#+fU<|Yv7l%N?PI7d@Ixe* zp6m;%=C&^pS@BeNFT z29rd;h%8Fr^)k2k)7-4xF)~#RovMfgt30! zT|@2;Da{kO*&(zM#8c9Um4XHjeudcy>U*Tjv9yM=L2Uz*Db{qDTY+Vg_}WZe6*N~v z?-lU=U`@ZjU&&8`pyDWUfysbQj-Z)5Y8{LaDbIv@^~9!M6Fau-n9dkr{^r*x@7kwN64PzNQKSB zv3fAl-;QW3h()CD*|S}2cY-~DB#=!Q#{nDHICGdb6zNen5E?^^!&K0vu*t{J`HT2wj;-&K?)(;heGhRfEG9~G2=k{&v&XU7F2Oq(&M?^kMwT-&5s{3B zTqzQnB1LMI6QM5Gd;nR!O)$vSPVEYKe^5Byf8Oe!@4j4nKRQEzh|!~yU2HOc+oAL@ zS5ia}+iHwUCW|1AuYo!-VLBr7Lu@ju(^2r-ws)(NQ4gpfI$~Ntlr-krSX}BRziAp$ zOrR4e4UB@0EfzCL&zZdW1^V4<*iZf_`sS~)`&(aQ_D4U(=~H_QmmSCyb9+d0hNMC% zBa{g98RPx|>3)JAf=vrEg|-vQ#u5EUDVdf+E^96?PuP3zNtUm^!B_+r8rt1`XatQT zDH+MOg^^-gi*%}CGfpcv9s*&~;ie5SK+G98CYmt8`vOfw+6J3WVA3#L3MX$pU|4K8 z+`Z21=m6;!Rqu=-J~Ey!5%zG?&%k6#p~LhDT!&n~0{6d$TinFiikub{+r#T8F#j|z zOey7pvbjV{BGUr}2^sYb>J{QnIh3C4BN z_WLpM$`<@nJVRZBpFReyflH`5Oux%182$P&t~aMsq;O6iTMGxq#Qs{>7|3@^XQ zrA7Q_KT27Tm=n6$9M{em$^!EPI3<34)(AG?TXeySt9CGiRtHJ6(#*ywXlR zI-gM5Jxr!(o^gIVap!AqkXMmMpLl}V(GF2gC@~_jBd#C~*T~KD*zPCL>0{*8n!Jhl z60yZiSbPQDyo68Z%#VTub=eAq|Yz4|rsb;+l` z!}%FV3)a+!aIm)#SFTX^YU2IygY0&>^?ev9KG?+j4!8T>ISw@r&}k-i9c47k+A3)> z+eSZDed?B!1~0fS;M$g4B8pL_dt_)va|HkL+=y4f#HUA%c3+;ksXdr+|P zHWo)zretZM^#pY=CQ=y??O`0q4^CnCjK_1wH}1U7t9zb*^N|C>bC2=&&d%W0OEf)< z^CM(F!x}^SJy!lUf9s`R=Hq8SLU??Sn2bI_P>)V0u(KhL9=A!fl3D%2FBAU#pJVs* z>TXU_ba>At608I zu{D0YK*oeG4`BFh;`*D|ro%N2v~!9k%+}EEA%0pXTt9+SD6z`fQlP{Uu>_VO3NlLN zUF02E;`a1(#qnMN?}rk4-~L8^H!!{*$NRlb!3Gp7TY!J>dqhpp5FjX$Qyzv%qT$}UN`8|I4g%|ny(?`5=TgcjA%}$L) zj1d6uS~jKTyTv2Er!y=bjEBxXFU#xC0Z|dsv5w2sLQiqMa*lGf0{g; zvb!^*ZKt3ES`ykcB!8VUKP1c!DC-Nxo4<`-EYYba`hD7i$FX#VT)u)^-=Yi&vt6w1 z&;X6}WVsEOiI5yJg|a&bHzkNt;v3`~DeAz@DbAt6y-hEPCQKtnsd*D-xT5tTNx3=% zUjgrjpH}!@Iot0QdF5?Z?tS=Tky;NUHTDm;74&E#iB^3i?%^PNLhs|}(9TplB5x5?-CxH!GXt+P8E zU*1E)r*I8~41UKbn}h^U^osdH=@Y}#`-I>62Is%Z2*%V znF{@Q!B`@`J7ltR09LpE-aAqmC|+nM0d)n&4XM9i;SVwEnBb7vK4Y74L&j-`?p{Nu zNBB*Tz49eue~IpP$Pc~9vT0~q!_ty+c@uF#>@jO2^oAZws8?4))o4e@U*GU&|!r24PPM54MF7XEIQkXUl-GL?s z#&uxS043vwLJY9;!VTg-eVy^spTm9TM`&NZiL=Q1{1k~RTo_o`F&>*=WlM&_%903~|j7(W=NDnS3mn}_kwYf>4jQ1IiZzIzg+D&jC8Xs_t z2Mh@wCx+!r9tPM(L5j0&51UaQKFS~RWLMV}@ctlA!QT()exQ#K*~a~qszP|1qj)>6 zms&tmb-koY9po5MnbPeY5Z4Rxy_ay^F0%gwSsQQ$W!u%}l~NRnpv5CW$u>e8D4PWw zKS0>WEtcr@mVEz$Maj&6=sNAtv3~O|b~MB12r^}Tc8t!Bu=$KU4BTF?xO=(eM~;s8 z<;?@^j>9$^?9MB2b`usW(q`oBcu8MiBg!5|=mcvrF;S_hy&z^;oeqoh+WaT zSHSxN2(%w$`u#xDv~B(L-vxe6fifaiFeyl>w1Obj>RW6Jx)n?{M* z{F?mcS5XVFe^7bA9H42zPsk`*YMX5_Lp9Kx_iXNcgNX>!vkA*~MV@!KW=`&n%h%rE z;K^rb&hBxUPVu%wyc|dyhs_+K#<)D;;&O+(vlSn^{y5kBd)#~Di`b=um%j#=moUFZ zLuRxM06R%gG1ixn&CPSlxzC}G?ICBE$X?6j@I~TF zYwYF&*iH0)LoAOLa~nJX2ReOnCw4+l##r+McXy#UMB4ZwAsTR?O2Bb zH_wq*9-wzF35ykC=ZrDekeb$2`XB{N5|$%az%6$ux~5D{>hwBs=&XfCki$Z`P;|_w zD8)Be&a^?WoH5I!l1O7FjRR$ASbbpf?R?uBB7M}FqtVz~M1#GQRyUSe)ULWio5&+oG8 z9QSWL$D{2o(`dMV_H~|iKfzP_M{#>^@Ri%Y&V3nZbz}!vdtfZ2v9L2eBu`q#)jhIS z*P9Wma_(TCa@Lc-_!g6&{xtUWZ_*FWuW&TB}{xF67Vg}?V2vbc{s92oOH$$gSxaf*eApY5y&}cXQYZ*cl)TN~*rpgE2q84& z6j?ktBTNF*gDKi|IEK0;72ut8va9O~ct5;g`)=Ltce4S14=-Nd|2+*9@4SwRAhBS5 zL=9Y1z4&J3?TOi}`ueRHIgU^YIz;Fi2sOPdmt6A*Y>l1X!WDs8i^T%ou$a*Tk}}pG z6VG45YvS5wpXT;`&b(22!G<{&di=y;;fdA!x@xSKy)?EUHiBqx(lSzZ9vB@Jj z*OPTgRvGU!a#0fgpkwl@FJX^eM?U!!-OZ8W8q%(@`{GlqUb+pt!p?jK=LuWPX#4@m z7uF?F!koz@kbIzR2D~@YF2qjYUJrMdXft4TM(an!&9EGp_)Oe;jf>OQ*qeQfJb8q{ zKY=t681ZDh&tzGH4R{qK1X3>adBAd^86$$=n?MmEI6fCSa4FS#22}`W^}-6}r~rLsOTn+s@#EA*Cu8N)imK3Y8$$61^HJxvhYF z<)F9%-VgirEj2y=93_|U$MISf@_tJQ&pVXE)^{%gwtyHgosmO><_XdSvU5nvNX{Su zBh^gV0&eJ$jl)_`_JQI&B8ugLNG6waxV(=mH4Q5kqsSUJENI7;_Urdauij_5Gr?Uu z!kD1qDZ>(W_pxY5Qe;%Z*%EzxN@k$E^mTalQ>5_}7RP8GA!XvNSGc?9nHE?t-r&Lc zOSH{(2EWTc_~ILU`soRO;?Mp`TJc;KV_k%~fV!GHVY|v0A*@^4#y|>Y8#YJ6=E*tz zTO0B}{5t&ao_!UU9M8MYa*z9*esaDH#izWz90z5SbngMA)*;@=?9FuC?9U%Y#t z=I?!zfA`uSWcSH{US`OJR?LQk4Fi-B%L7?Pu*A+p@lQ6Kec_*x&elv% z-avK(DXu9=aE-@F0tRx}p_A8W%K-fe`Pw1=NB$_2mpZt8AKd{9bB36)W(S)-OHOxj z^q9{z6y1zGo*}2gta+5(!*lLk{P!G%CkYl%ozgZ3KtPxh!V#7;nAQiaYiQeywGC!4 zjss(iq%kp$BSjsmRX$i{5(TVK1!M2}_AtYSk-Sx?2<7UYxdPsQIhSi6Xacr(irs(r z$Gp=@QFX+w%E#gc9%^+%2ALvSE7=JFDWPuCoyRO`O$+>5viM{YBi{JVt$vhea z-JIYJ7>)7nT^6^$hX2f`7?bkW>$mv$M>{_L?Bg698Hb0TVE62d_3JCz>n*!pS!`Cs ze2M8AwG$?GPF`J7h7~0bbZMl^h7`s7meMHKjso$m-@%Qyar+1KUP*Ce7<*dp*qt|o z{lY}ojCM@E@p0sl&myl1>CVd_r;NuVPH*6MpCsJaht{yuFJt{% z?4!+2orF>kaX|8bSfofTKO~jf(?+DIBHm*;l1i?zh(nK^MNA#OnWJYTIcLW8hNcaS zQa~V;OdK+z0ZR%aH9$Ppzgr$N<{a++3GvO_l#rdsMe!Kf8eCFdn z!Jqlp{s^D_p=T-H!68g$@YJ)9Vz(YJe))v(>>+9HU=W%n<79*71y&Y#Mn>6CWIMQv1nDLQ)y75W! z=7LQ+VSi^uj`y*)A;b$(Twx_6F;T{XScf!oimj2T>`$K|X~Jy8F<}^1Sh#a zOma2b!jB_n8RwytOwJi8hEv%#VHkqpLVY~PaRhUlsyhu0+NF2Wdz{}8 z*w8p5HA>k57kk1uU~z)Fj9LaVSp{v@tS|1-UYnvjJ9NVa3lp5{aE+3iOKko)>-Y)E zQFa<+nK>UFM>jslxOkJ2PVhcs{erk&Vrc{!aZV_%Lv2pBOHxVr*yCeB zwP%!b%ymc>*71_o4>;Ljj0MXBP7*Ok9GRRec~GQs{bZvST}TDw66vNbJ_ze|PtL9` zP;r#(uq=?-whULWwyQz+3V1*CQ|Z6JQKHJp%6IuQ470S20HoT2HPl-x4Hyv-MG^20 zQ^gEiPGlSwQ>7x>rfSio#m{!g#St$CWY*yJr%YdXit+FMI`Q^bncR4mi_MCz6ymI7 zWkR7qigmKerB)2(0Xw~i?C&v-8+_MNoU6v;K2oAm=6lRk;B3L>tuxNjF>l@a8t1FR zUZ*U)5fb=~uv`sT%CxGq>qrSBdB>rbin9^zfObk*MO4637+oQX$MAHy)b2S-t?6+} zXanQ4!5Bc6*v`|e&!0igJ!yQI<%3^Chb631mC|JoyT8SBx{r4|s2otn4aF4o6Vx^o zP1V&mI&#Vk!$2PsT~4&#(>0EzjpWi0`~iwWX$dw|XPGsWl2F&9>Z)D16tXFXqok3d zRDdsqGLCdj!*t%VStin$DA|*ek}#}ftjJZlJ;J#{R-bSSesZrevS6ypCEtf3vBMa zPMpq2(<$QH>i?H5-;7`}*N`5kl*<+Q{ypUWYvi(vg&C3^VY16OCfvr*^(F0M#t*;v z(-b}CAN=w!@N+-*uk!Ew>7QnK4=(SYvFgt#;gWXZ@$QgeL_gU`WzQ*#c`%L0%Y>vN5o0f=d zNO48uT0&4R&cBGo=h&G(K`9HwRy1KXQ%Xs!b7nG`Fq?ZsM*9AtqYWs& zeyy*7_X>D_FfdWxmumREpdI90i!}R|Wn1O!-WCLjN3`7%djZ|H-WILxvgUKG@+k$2 zmHRU_)Cbs^;^s3f8>}|ueuP|kN*Q|!wN}R-98*4ifPeZ$hWjt${UKxM@Y5M?G9j$mWpz+!6kf8EC|YH6#?g^d zqHSQ}9WFHNPOd>-v+m!da7rs98hY?8)+xwHTnvm+>4Gxpltvvx<58JaEl&7;5x2@U z+pgHVzG1GeE8xAlzBAqM9f4UWW|VBGDwcJ7lNE9T)ZU(S(TsYB9!zR$@R-P|Fr8qM zDZ{!>#N&vij3h&{k$tXo$HfJl-6VYc6T~|&*Y@3Zg0-{SzAJ*|LW&6+LDkp5@VKE^ zkGuIQ?e33Io_>P<8^4U~?~r4}`ZFHkWBlkJ`?vYnkAH%XUhnwC&pydt{hNP-|M)-s zKk~l|f01YZ^-pm6+6Ct~d)DV?toqv=q!YBiWPE)W_w^ZOm&mXrFGtFHq;2Qqxo3TP z!f<|$q=MxQT8teBlSv@%@6bHC!>XUs-+PP6_!W-Q1*6`ikH@S>P!=>HfX@uJK(gX} z!1;pr4%2gDzC>cgX-C;8&Yv*ko){0vY{&wEjv_Ehz*Na;U>MG8Cn<$&nMA6b{Wd>0 zFvVF!b0jVcGWIl`l2wsbX}SjS38VtI2vwO9Glt>V!ockR{;aA+x{xP~lv6=JD;r1OfSkX@#9^@dBs5>!DtEN5iB zs-fcsC1o@lM8ig__24NXZRLQ6ewxN6q;ZALp8z+ZjEib17NwBt#}z|X8R-}3 z)UfspfBXirJAtv#o)pFmi;H8P{<%NRzwzgPmTN1RPGGUS&%gJV|090wm;N#T*MIOU z{0ARBLSDH;{OUb=1JA&z6vU>;dVxzl(+*glQ-*W0Yv}1HH(zD5I>kxEY+zKSn|6!= zgr3l^u~+UhoSb11iV04YLwSPK?2^(6v7CeT2$`ZoZD@`T*K}x9eDDye{=~@=N5mwO zW5lr}yPkDkBiT^v(A+VkKpJ z5^m;bW&zh`Tq8)XOSou}B4JxguQ;E#weQWKqm9qca!9|k`CGe5;!FFwV|FMNql3=8~pk0Cf@T#)mKq)naZea1RR)6SS43S%6( zJh?{*j%J=HdB8g(v@^QN9JMVL&BQA_zOQ-VwP6x+1vBnHO7A zNO)~9aX1Rz2c)efnn_@^C5;aFI(w4yz&Q4}T){CXU)^O^s-({soJJ_M$Ic{E%7~SW z7ms=+#l#p3&Skt;v?${#ERRP*C(L#O-CS_NpeWJ6a?RSn-ktMtHT7Nr?}r*ps}t;l zT87^XWWQ4rad{sp+1rJhrBpLSidf7Lq2zj;G{<%+muizmRFqQV0mYLy1EPX7p&mn> zkWC>0)&tN2_%Ggps_3-5uZLw@WM0jJ$@Dj1jxt+EJPJ$<8s>Ns>-a&jEsyX ztW|aa)bU4N7^8GO>sOShDP&r%1--A=)_s z#e7SVZG~J)K)PzdNT)S;vU5CbQ9yEan)CvBOjt5h1EDcI%nFo**$4$FhL=o{grcMZ zvNuH6L@AD_(`lp!#4~B@ob3|3jWZlp$+3nCFZftjPY8%8W@T^UKLfsVXFNnCB}!AT#jbfaq)KBW20SNnO1KJs zd<1?$E^F9jymtua*e2s5HC`r-h?GiWTLelJGKD@3#7Adr-<&u&`JH_3N1QVeM}^SLOjE*Bjq?!^LTpZ9(vEpC z$Qd&u-R?-= z`4!fG^IKe;cl2Gy#h8FweCegHAOfc$(65}ba$bD(f|p-i@^Cq@c&D&PECOt(2>p$g>;+d08Uj`~0}XCwol;zThJL8Oqj=bWGI*sV8|G$Ntko>47? zFro^vS5o(gV2b2pgd-O6MYiL2k;Ow)GU6k_77#}?_7DaNLzQU@c!n&Fi=!4vma9`j zv?}q&$yON$D%Zk9r1Ev$6)R4`G0*5E#1KJiZuBN4`o0+jHFvUN&aeDijpT=)L2s-#-pZf{P@HHyXWzL(_=Bruo^IgSeqfpA! z@-HJMj;kUDZn^#(DooO{5nD!(R1T@8iVxGU;6;z+T$=+C&5p?qU#;*Tyj2xg4#bFi z#Z&WUQzz2%4RJ~=Z+;$|Hhlko`^!ALe1^{MuzU2F!-Lywwj;jCi~@NreD_Y~a7=vW z;f}KxkGa@w3Fj9)|M-A|Zh#;h+_*`R7t!;#NZ6Ne!Akv{ixd4+mXQq?QjrY^vcZI!9z^~b~ijIDq59G?szh+RGOK24amd|QAIUUrc|e5sZCc^nMM#*+zcB7QydA0 zOFRpnC)AZ76KUGvX;T|QcI@IltKEvl7jE$O-~Q`doIc>?J1-+4^3LfQC%13n$Ih$g zXWRsS<1Xke<>c>e@li;U*qwCP;gT{Mca}X}f_O2}>xR{fKg)D}LA?Lh5m^(=Sg-Fh zZqKkm355E-6(j~AG3_>_Xo<`+E*7aO1&sbrPH~9SjAa|YET|x{miaR!YU_Q(01oQNrjxtF5L9p(3E>>m9_?;&bn7K99-X5)A=N>?srGX9 zztEo0DM9Kn7t!h&VJ)Dird_@ZzIQ-XDy~eaj0C-QzfgZJ)C;GI5;RcAj3se!5LomB zDJ9Gk;zEdZQ_svn6xF>1ea0E)#``I5kC&>lPrw%PdKdOG2$c?n`z2Gsw1yhW z<*D2ZQYzBfo=8y#r@;@6FYKO>lQE>g+_lF+V0O2sXG$}sK- zW96Rm;1SUc{mc!{fBkzL>N6yT;+aV|9G=|eVs(S`#y!6HwY%Kx3wQteeeC{{IIJ$0 z;LqjAaV+dgqF)Q8M8*tbG8T*sL&s+I6L?=3xAzDqCoIbaooJhKH{|j*<8Fn})0=^e zNUU-2_=u`to=B<2Cuwk03{^+MNK_*R2v+a};b6&1PMFRfF-X9DhkHPXxJ-ykU2#MR zN==ARL8I5zKG%f|?Q?R#10~tzrk%;PJymCKG` zn>(3E6}AY3p!3u_H{MS##`{S%-n~Rvo@nk@jkoT$*NIisE|;uIu2$F*u1&hW@7@SC zqsvQsANyr)zS_W(tY{1^>9}sZ`2=avf%ae-k0Tl*SU{@wiR|Kv||^gp~!de}33?wArcxl2*B9bd_BQoU~jh6WIILJ&gpQHU`RMKCrPTjJ4@oF{xc5xatuAr*)jHWM)v#-Xax zD6%)1Lqq$XNCl6aisK3bA(Cyvvm>rZcyd!UH1|&xy}Tmt6DZ6pybPNB&7~2y-XUR-+1`7}@Jaio0IJ5ZkD9FQ+tPDC6+Q8Ope7?o6$g0T6GCE#E;{mq9kLT-n;;d8gs(SfSl}6Uf9LOzvXfQN z$T{gev|OrH~827lYfnufAazP)id<-U&7;r6>8pC^CF1u#C{-B(7q$@DrZ^7 z5la&uJ3@a%w|aqT{0_c2q2z~%j374&-E9{79W0;WK+u6G5Tjrgv2jQ5N{EVxp$Z`i zA=DbaTf%#AX@5tD{{FCG1F#x z-<;+47en!y4t@QLaBbQZX_lVuHHpGuw;NgXpdF+y?_3|) zl&_tD?$xJtf5I98ija$7B8X}w_BVPcXyxRZ*XdQNMWlv+=UgERt&gi|wT5{OQ1qtn zH#1}^ka879OoeXfNS0lpZd~^ z@R$BC9^bjkDxES-f-R27$tX4vn21(5k{g8Mfvv#?W9@?4l4o2AB9t`I4KFdpjx1|J z>?&8;6JkqrIAQXH6=&HkaZ5xp$qT)Jbb$~m%%TdYRs0&O$5=t5B8whfHYsipqG!qv z?xPf>jCkoPhkBP-YRAqC*@YOiDg!S!%;X9H3KjLpB~cpHue#0EO|gBOu58q$jG^un0u(uF8w)6<4Rfc}RJ*#&+i*RpDpF@hR1Wjw}`bZv5E~ z`Ba-xd7XHJHt6>QcUiASVU;SZxHvOb2ZBVw!c%ZEl_UPcaLVVJ8}I+C>Z7I%|1huKG=r-U5e!d`fxN`vEqI6WpjI;EVQlBaEDJkW+Hk5#{#?Fu7yz!gee z!m8BC*}8zaA*8BGTRWkvTSJ~N$Xy4ELqhLZ+QC>@E>^@R$z(UqcgSwn*-(GxMLWr8g8A89f3h2pGz0q zUKb8iq{IM&LNvnaMatt}A$TH~K?&^_pXi1O3(G2v?glggKGu-WV3<0>K&99k<^}6I z)E)7$o=QRRFd-5vmcAU|aDkp~*%hy^>7~LtQRr1kqv0-3evW>1@pE&;1TBIZm|AO+ zT8+{7{B7j&dG=3XE|(i+W>!^sIdid2biJ@7AX-&*jd0z})dhE-p@zBf&h=ZEkr9*< z28woIPS-{3-~^TfzKHnahmdw?ygo4wUF!+rm2YaLN?F}U${Lg&Rq)Xe z55(A0q7xU2d*=N7tS*p!V!6D*;%k45q6@<2KG}~L-nwAD-E#E8a~zyJhl~TE40NWb z?AYeSqh86ySv^ut4}^4L45@JE(T3xDk68K=v}2SJ9}BuG$Wfpho@GRF$&Ddbtujj* z@i5ZG6MU-710*1!Yt6KPw4C(NXaa4L6t}iZ>6eD$0%#D>fDb*nWQv1JsK;6=cHVW7 zpw+PE$?^4ljLH3detypjKjc#3h@f?}&1nJ*HAg~i`iQjb;aNa2H{Kr!XrP`QztxHN z!_3q7%!c=aAbdX|=M38|l6Tlnu_%P z*(L=-Kr|wh76>W?*>jb1{T;QYGl&QhBGT;-u3))l)FIX3#>ij=(H^?W8gT_yJz4AV z%E1U!x)$ze-xIo??b%pmynA+o)?;jKlN76)q8b%3$Gq;Cx|d6{q<6znQjfDcsibzH zw90rf*lmow3Rn=#0xf=|AVa>XZcN2UoM3zoq>5LQ}y(yr8qcrA4|p2|p27j~N+>)o4t z@h5*Dcl^irp4{Vnya(qG8BT5yE%Y5RZH8gc_ce~^`lYiJ-|u|B3%mFBIaC)h|47i(z8P1! zvtS-bqmcwWUQrP*l`?aE;x!-TPi*4#-`4Geo)fs@(SAtp^|FQa8eOl^^EJMG1mj~Q z?T{|ueMEv+MO&V*X~aruPE|E)Sge5M%F!(uN+ygM*(G%6$j{G-HYULWb#g%T4g2@L_IKu%y@DPi8#w1)69dH8XPoMUl8>XvvX z1aGOlK0@emgi>N+-kRa!vk(w^&UpUdG|0#HOEn}7gQ4=VU>l^ zD+$MU!k#>+uFRgibL0KgH{MUYv46-Z;wqSBNEuI#j}B#mw1aWNlcBMzOJeuxU}kmc z9H6Sz#;I<&rP4OuGK>kP37--^CfKEF*j*s6FJQZ2u!5aGgtSJcHN{4zSk)O?3V7y= zU;a7%*?;8E@Zg=_r` z6x~n2PAOm})HkjTa*+MP<4R9{?Iv7Nb!(KVRarRo^?bisH=njM)G*gaYwGUr?c8vw zxX%uunda10ew&z6r6>hyu8`F;*Gf&9FtKW&-sH%a4pz-_(hD`e%dGmhSgD(HyNP(T z!qNyf)Epj=nNy8=GDv)5IElcrB&Mv9olABAqpqAQB5p6@S z;k_xNRwc^06xfdRp+k$aJzL`%5h@2bn&Y;<gXr zjE-rODaklp2zC&-7&GUqn>^R;_}uHi#_*0ZbzeXq?${kaWFbcIMRi)sf+eepI-BUc zU?^HvnD4M~mtqHm{0Nq}C@r@vmx!8S;}(yRD2qB}YBdTsb0pHT?n)I@T*?=uu^FUE zxj~8eI+5Rcz@GILvSVsZs8H=2HSg$#zNJ;r+~Dd&Yi9MarNOVRV2YK}pmurE`2NEh zuU`ty>o6==9=w;*w|VTH8}FyP>Dq^8rhU>d#^qAAsnXa_M^u|gPX&)P>V|BTT##aj zl{Nu4S#a~*y<*u5UZm}|J6;SKQ>9*Yk&+Ajav&wg86c-BPB?y+#Y=ZtzVaFD<)7lM z*MF5Se(@_D9t^y+TJh%EcspEh%SXCSks(qRJ=!n$!uXKS{_5+*i_G@m3lv|VIdHHs zT#g_L8VfdUkyMRj#KAQ;7DB66<*f^rO5Dym= zapd^0ZmM0JArySMV)*HAaQI_ihl3Rt0(!IK=;1ks-~S#r4_ACCDt|D1hPMuTURxXg zbK3GNzxk{DbI*R2S0>}u8?Pa|CDY;O5h(;;W4XW->9p~@(hjC0G>z5JU6*8px{Z|3 zG@!P^hG!~EId2H*4H6Um#j+aRgaHYLg$g&gfO_M(7DYlJc7b9EZ_;b0AgNUBTRS8c z$~*Vi{`zlJQ*wo1LY6?p+SCkIB4u(yX9N{?Vlq~Z9lf>6tB=ho4~zTo!YGaeer^{=x_`?WuzG9 zR?X4(j)Weos%?+wx`XZTlJPV_nef;XM@N>5t`^waZE-f-#={E(?XBE9_`HsgH`Uw_PEd&(FN(Ul|q81)6N zf{L~*}lGnmOuSkbJ(#)3+OP?)~`7L1PfTpFA2Q$55g?py?q3e3PH3vI<^#w>T*+g z@>Wf2%6@|!LCfBm%n71xdET(gQZ706W(k<^T%e4I818{x*Aco%e&Yv_cHH{e-^=Rv z{5~#r1@66rPdm10gmFvy_V@Ws`3^^a{10*K#xp#6aE~+z=lz0*k0ET}5B<#VV;PRY z&QMjvwrJSlc0$nGNHmZQ#ZDnlXm^DBgqJ1a0oROa`+cSQF9?T7Qm{21ZXh9`xi(v| z0I}eqVYXI4wK;hyE)mCY%MBA%#P?2M&DqNX<*jr4;fA48Ch<$UmiyiVj!PMDDFsV~ zgQK3ahoPDY`4vOK+$+(9J)uG_-Nz(^OKe}R!3o#H+Ml2xUUM+B3i@99+|PY?ZoG4S z93}Nc_vQ~^Q^uvhl&b-{O_l2kNNjkfK^}8eNa1w?4qExFlqxhR1*x$Gh)p=Ti7r5* z;%93l?^yoCH{dHj$^G>y-KZQga5kP|>kD+frrT`LhsNo{bB0&$(2YA}9odbEzxn2y zeDUCAe*UFD02gOu0XhM_(GnYWpchzCJSoL8vT#D^Pzov|+ zkZ^&Epe)c*4auzuAYAJL{BjB2JZ_EV>LwjXsou8=kZVH@Rhn(@oKZxG66u4JwT4@= zZ_@j@wOK%>$yhD|B7tct#IRQqHY?=v{$Rp;sfeAYM&b{Ok($qxx$*v})!ympw+kaY z{rJ6HnCq;Grwpux8t1}TYIvg6C2mZGlBcSUGT7T(xz#B*5UZsZj%FiLIju&-d`q+m zrz4x8o`~Io?&LWvI^(0a=~IU80Plp&>u->|h%c4p!HQ@~et1sIg)|Q2^9|pA`*r%o zitgYD*TCPq_g&t}@c;dtf0CQj^asCvgYKY%F_706xLu%mjpQZ1tJ!Yhg%jL1OzR88 z6MerVn4(s2S)rlBYzvc9!b_++!2;-QLiZ*qP8e%EI4(vAQhk5D#;B`m!+LA;#1xMO zQ4o*y0%efSPnk+4hCojtwGB#wlRV+32m>OiO0t{SA@|b1SA)P40*)!L`k`ZA*xpVHe1aA6RQfWs06fn0ptYKXc*5^RdKm7EDkxic?TG{ zc>M>EPO&`FuWk@;-9c_Xi)&$g^DW{_FVkCKdi@9F92m4C#E5MlP|6wKx&M9Mu#vyx zkNM?C-{D^!UgjUW@#EO|m}$Hq#8X&1S(oIU<5MJ*9;Cx3XDo@-8DShr(?nPXmIsGb z1d=N_sv+ZLtcebs6Y?v#-NwQx#$Ci0bhd6mmWDRW)=O#=Z>;c2bIB3iXMyUKXR$%r zBs2@=5hqhZtga3rv?f?%drG;+bdf!6%vc`QR$NLUMkQyvRIu%7Yx^c^T(<+2wjui7 z-pBXfVRB?r9sYt>0BdSRCnS_+;fyg=x>#>=f<1Hly2 zLZSN3nw9F&+Lo;9xp7yWZn0!_=Vi9JuzmYAh9I~r;rJPrcRx!q#cp+!x9(%77j!Q{ z=aB9{!YyE{TjY(tklh~pdBU`)DI9&3U zkDLb~9iFg?3p5v;zye1tVPzsvW7wmwC@#dJ^bA-|STRC~AORmY1gn#O5g>NBd=aMq z9?5TG`4pnG-&fkS?-VnKnAs*PcUAQQn7)@&kc zqmN8^ONa-A+t0I07w8a~qBAUdY_lc5v!fdp#KQ$PPE3zatHYOudJ(wTG2D5UsSEs@ zpZghp@9qHff})Yr(Rmx=VT^cxfXIUN`Ic^D4BoTJ6Y5&|vSnnUfg87OqAH~I8r>vJ z0aa9$k|!iV2umzX6mh~T;QkY^1Ik-ioQU4zMG;ZD(g9Y}B>$b#S=n-^}|e8X^=aD+g?scN_yIvOs`d0d20qn}$G)1G<;w#S&YURb^5yZd!N z-VbS*PixcMuOS$7#M<0=e-x?(27ZFCAY2hX-}g*IO0{zoX=%W17u{M~t$W11L%RjC z?Cal+LN7hpgp8u(I`L^h7YEp|q&vC6P7O~1-|ldA#?v$Ge1o1WvBQpT)l=?0CYC@S zJIZo_$;7ZaV)Non{)jxszkln;@$H(e4!n88cq|Pm-Rh+RD zqA6*s+E^ZOyiaiyPEu)s?=Gkj15c)oz&bk`!XeUV2{x5r1Et=w#~9g z3>hU=(Sv2I2;v2C!Mq?bg2k%dOI4H-W5A@Em80$W;?0o0g`{b?{Mhy^gPbcyJD}AA z*r4Qw(evc>)i345*S`n+&{L{h`})lD?c8{Oq+o`pji^6X{PUmN?zldP%l``YGAl=gLHC}{?={M#VKVY^s6JL z^K)!W^hXDTn@1FJb{A(9D=+#1}=%YY~Zk4W*P}fm=d`0A(a?-a#30v9>gZ#jRU}+qc<=$U7n8t05E5aE!I~H-tkA42L^xF|X-4e55<3wx?l+suY4RetO z2{?}H7S{!Nx{b<+_C0i6WhppFtVTHAxU)fHC3Uqp^nJTi6hR10mF5D3CS$(DO#RY_ zw~m)JOtO^vxd=6a$gHs46*ik@!%1`DY&_h(BJFAw)q+opUBx^#FJHL^Er?Ks9@n4- zcW)VRZG&%?4bP4DM`_}HdSmUAoP6JX(lp;(ugWzc;O3~0ppil(EKiWt0Tu_64RkRO zJ4o+*mzXYaIxq!K^e49&e(c9M-z6kX?8ejD&}6~(@hLe~L4bCF&G){?fk*zp*Z&a9 zThH@%H}`mS_8QBVKf^RExv>%c?2T7=EQR|5xhz=NP$S2+$CELVAV!KMEKiJLBnt67 z5efYGm%m6qZkXPAOejr=8wNboM&rpU*SA??q6HL;4$&Pd$Ebe>u~+c%78W#8 z*OAi5n5^R0W)ye4HAZP4vDf^d#_pvBRXSM2+D4gPdTcbfORrgaHX52y-O{WmMyhd8 z@7BJ}H8^ZJ|fW7EL}GgrF-Qwlv_uHw@)!k zHI-PL?Zr8m5K3i9Y`^sz{Pgo*=3o3H|1`Vv!vFEkTRiqHeRn|L4{SD%_$SKq{EVLP zy|hCX1C=>k;%PoKx9i1cqDn+K3Lc+4bSRl&m$s#DnHXxq#x;)K2bZn4Va3K88e z^W|Fea!~C+Y41T1Gd!1S^^4%e*q-l*T~CmJSh>1{UNc>=>*7S;a~k&fcu?G1RvRtF z*_(d^mvB_I@X#mIjQ!nGjJf8<`)OX}f1*a{-gZUoL-@Z>PQ^yCNE}wg#UYbN7Fm!k z<2QSR4ZF9#kGfRal{-$MfA%i%_Op!1$az9K2y~Td6)Pt=PdnrX5BbAi`~CbofAr6= zIlbVoJ@__nZqG?e=iuOki|r|^UFM&WyIfpsnHHg`v;-4DC-78dwn-qNl|Sr|rjg?U zpZ~%aST2@~4=!Mr309$j>YymqIHvg__iiFI>JdfZR3(vhdT*qG_%F}C|I ztS(w38fsdwD&8q3PIQ<;!QAPkT__wV1rfda3`Cj~d*A#zgj5sk+z3t0W-X!F3gkRe zlB1^AB)^TfySH4h{SR_!2Wh2lwiRnJ?d}x2`cAm-;U;SOL~FioPBsHFXg^Q7bL0IH zX}f=);j;I)vA)LZH6wOQ`sD#r5kx!6fxwMh94?O7{@VXd-fpT13__$(hK_vq8Or%Y znG)I>oENM4WToKKmX&w>Q-APJ@n?Vf=Xm(&A+KFLWV4K{Ct(o=!g}K2Zp%NuJ>jdR z<88?x0n1)xy$+teHePc!!I2n=$;e*VP9r~Y_p_|Jfmh#oi`69D%+7&!)y6;^2@!%~ zo+(x;vjjuJfOv-z(a<5f!15Vx2M7^QFG5Ioc}UrQk3b-VzBcSW;s=Y$eSVyX!@!gh zVakLGpjNQ7MY8X+(XJ-eCUZk6sSt`)WVkt%?GX{DCk01h3t{&n8bKQ8s1GHcp)66>m*q*X7#D_20)0o& z0nZ)lG?7Xm`4Z_CxWlIG@G0?Zzu@NaF&E>Gl8w!n2^NSF7_uM|NU?f2=-wPB3o%sx z3DfG?U<6dE{i2m6;vF_7w!`P>`a;|MNTuKe!i~$RwCIUMYsZ0WQLA{VmrH^?Qw7H(`gVyUsPAZSrrKK?$*>nB; zTd()a@XI|2Vb~seFh@lxP0UfKQswMWvSMvxZchH08}FyS_88m8;nnbdP=mT&KDS;r z-fJGc?scbK0ulzg#SwU>jG)?6M2X8Ati}sYU;EW7XRCI4_9wSlJbRam^#px~9W96_ zCzJw*@qnAs^K4l1^&2m7w?E{yAG}5AIx@!ke8cz0EmQ0`96K&Z{QP*r?@lYeyDD6` zvnbUw*fnyoN$k9ky~DhxQz%lH$VAH=FORvnI3sU%EG9!mSxX_7iCflTI7tFg9Q8_6 zmQp1P8lBQ6QQs#wc%{cBgiJ>%N?1KZw?4sl_bL6lnxaSWG2j{rgQD4q8rj*zn5sRd zMMqF#9|;X}l{Q^gptnY-SIt}de9(FyZ_2|)KUA^Cv6V|=#JkjH*RtN~&n@oVXT$24U~N;z19^c?Ma4tK`qPj2(vPC1TC zmZrS5KI7)m35+A7C(eWOc8Dx;&l@swdzbi^re`_pN7Cd>Iv~phT^LB&*=S*MWgH#X zOqWMY3SyOiT!4%9hA?I{89@Uou(QI}m6#w|0aHY;qKe!N>4dNk`z%&*VO3HHBvT|D z;5;N3q31LB?g8D>A?)zo8W}R7>(MaOjl|f2*K9eF>XIf}4T%B{QK2}UD6WoKZl*+l zmkMQg!Q7f*jx`oSn`p1KTXU~$g?*ECYm~7Ft$DlYr7^zQ72mf|S_7`of)syZy<~W` zqGKL)=f*qNN5hcez0-xC!hKx>+65$bq+BY77&=TlR((f$>(?329?&h0iCssYGNB7t z=-F&{WEbql4I({X?_cJ4tHf-4rW~OQ0=Z4< zW=_dV7>%hDh6Tbhfc^w0g3S*ho#_JAZ zvAUdj!E&zeL!B(%%+u^LS0Sb|vte$$bNvtD|M4r_I!!zn&sZERnQ*4vmUBy- z+`0kdjsfe@ltd~{aV6!-eN7m#U2u{oHdg2ebZw(+w3>X}1;MT0sX$CfCm<2Gs^*h;fS6$t z&}qO{FfE>^OdZ|Dgqq-k;xS`XlOYY-_{x#8?P_=^LR7<|QB0AXD;N+3_f**gD85)= zV?w7yFs(tP0>SsF?1!t*_EO`@cBqj{u24#%SiLA!MvYYVM)O^+$0}FMxHZ{?HU(U1 zO*hQv)7*GJ{TT0c%=P1bZri5}H`>~J)5(O`Eh$^WrjejS6%J6a_4l#q9d17R5_uBV z7Y|vUoDgHj`R<(Kqhr>O9@9PZJb&ghKg$>M0l)P2uW&H*EXKl{r*F|89Uy(rTW{av z=wQK)!tU{wJVZ*T?8eBtZ21qvLM{J990pXCb zJVX{pbh^UMw-h&&NC12)C==4fmdre067VdoAy1eXSp%VDf_pV=kA7+TCH)E;CVW?6 z9TTI7(G?>g~@cl<%%>;8JUQXjdvEf1v*CC#kS&u^ zX3-C9JLTc#jE9@dc6GqxocVKUAYsK2%RVvw(3Q+{j1LR!I%}p?txH_%{qk7m#%2+VM z@)#ZOgB9{Lpi??BI3q(?!U=t-myA4VLgsyg}7Ys?af0D76;thZF$GG9IbBhXBRj5 z_Yby=DY4!ju?-Wck8EOOCxK2YW$ipoc&~VfWG~ebtr*idR*W_XV@{MjBDo_-Y|Th( zOuZE*Gh)jb(5rU$9B#&!wIKKHTCllPu=bTz%T6R2IpR@AFZV8XK7sTZX+wFMm z`~gh&Ssowp$6xt9{Hc@A@r}3Mz_$~xn=#ss9f6E6IZVyU+cAnrUADJON2B^JOlhK& zLWqHjHLMhRi){kl8pRQ80`*Qt?pa@oXZ7Vq46e`GM;--<2d zM|sRg&U5pcSMFYLSKM}WBk1IipdD$mMMaV5)QAHoq>$9cod!IEdSEFF zf<#hZ$fd#(VSB$45JC@WN5~P=Lr5D+f7D{_K|D|x!4hf%iX-C~E#<4JX z%~wOEdM*@0vr$5gv(&7}t`KsM#}zK;6f0y2l(F)BtxTvI>RKDT%Vof5jgONm4c=45 z99#p*z%ax++y~4j+%o8Zc}=>uVo2<3e7zg)O2i1(;Tl0U2;F?*&W(4jj|cFuOBt)X z)i6sJwhtc@B;Zj=zQ|E`z_d*)yMZYe`e8xpIxIN1yCc4;clh$j zv)nzt%{N|ng|B|$3!KZu{rmTL^YMM|ov%q#q*!gLMTLZr%t^qQ3){)je$jT?6?Ly7 zgPiMR8-=Z9Y=Wis5EfV|ZFO85l$YvHkiCX+(u4};hI;k!igChaqND?a19sb*%hrV+ zD~Ukm`l>q;7w8Z`67E%QT$`}qn!rbxR-hw`{*2V!sC;8}LWqq+QbC}qC98hEw%$Uh z;g=!-vxF6=*p&k9YNBnpeWQJecr{2bxnjvuG2v1wbYd7{Q|0fLMk%xEA1qppgUqbn zPp*GI_OCZ@s?Ck}M`-H(t%hFyaF5|V1r#Cjc#X5KSaap-iVDRlv?A(__gfpWi_I{@+<52uI5A$NP|8%@ ztOUFif+}iG8nDH70Pc+N<#1Oh@q zixFK|hK|7%&qmR<+!he48(BpJmudjxDc6w6W?WM&V|hTzf*@N`+2Yz)S1^oDLtTnn z!kf=Tkpt8xgbwks3MSGa_yKh1m_Dkny<5`74Pmu}B#7qb-`iLNW>vLDl@YrHu*%d( z8B%h@9m|G??y8x3^H^wJX?s0ebzAf5`yf~G^6E?6GuRHXMfFk+<7L35`<16}v4T@@ z^(Ifg5+lzIcy7F(>e`#ve3D)bAB^?xLlLb`y&kSDF6)V($1MTFhMqAvRwnx8^L*~c zm-%dWn_J1b<&oQdz@2=^@zD|IZd`a~=nd-zO3cVIFf5mh!-R|Q_^mY$@14@co)n!> z0u#!vHw-7ZQFaLp137d|$x%&oBB(}kE}%vqgg{r9+*S?AGeYOW-bJ?JpAMl33rZ%^ z=vXC@Juqk?+O7%}yh9O+WrPJ&ny{{rrK6LZ^wWKEIHxcWl7SXP#~K%8w-6g}xgbaa zB4rB1dkdO1MnzwbGygiFhd$=e7l&Hg#IH%0lo`hh`N+-0+}G60lq;cEzh% zj?ogE4UC8rDQ;v8msn|XmMHn@+`m23Ml1Z|8F5AW8oDViGvF{c-cLKsU`0efK`GF6 z%8|b>2H|E;wPR`0R%x1kMT%g%EgE`$_vij$etNjeD@l2ofj)NJI=IauE_oO-7mGr7 ze8BQ($<~Dd;ovY(g0P)7^ier`^D$+!<+$%Tx5TdN*mgY`Du!A>%_vgHUe#9}g-*2Q z!g*?`8IeH1MaV6&f#xx5?k#q{PR+S3!L3E*h*o*70~gsKP4r1nJ*pTkYgCUZe!;Gs zA{J5a@!SzpK-jeS^$FNihcG4tCzMoQ*A@2-Yz4YhZ7JO^Z6L2ENTJx?ZNU(6($2`E z;jKT5D5Y4vpH>5UcV+VZQ-;d!tvk7SA1`z;RE@Zb*U-|oQW52e~o{%`y$_%BDZzHoz*d6 z7zkm-nL3X{;m)1g9Ns!&>YSJhi{&9*Z=9|llUkoT|G^_%N3x6zC8FJe5~`b;NKN8( z30ML1MC@t`aRhQM)ecdsyO?%@gqm;>MJc7`9-CWD^aWfS!vU$`>EgI$qI;9!7LqB8 zsblEtm)tRipD2~|)BD)%$NG{J;cc7s!GB8xkv;mOu6Mk-Z2 zQCC}`V&rC*tFNo?LRG`zR8Na1F5;K0ni+GL8}FyDLJU@N`NZ7Gu2+r6d5_Gs%Txq^ zPq+dgpcL5=Wyv2NzR2${&aLIZa(P7Gt(ZdKG%Dv}Xusgjoo84c4m|J;Oc{yFdiRKp z?}+^|58rr)_5D*;L79BQVuyyF-UgZkiA}Ptnp5AgBMEU-)5-} zY*w6Xm8e#1@1tvY$zVpda%r$reI6<Dh64_aUfW#}Gx)g?C*v)70 z+;~5Ijo0NOPwBQIA4!Y!!LY@Xjl1gZ>)$UI3m!ds#OFTuxl24R#%dXu(#Wt_QYJI;W6=G!LB4q2(aiW z`GUu1_ZZVazc`^he9Ysw&$)T>JkKtK&_$MuTby)9Y-EXq6&451N2f?&rw6zMqSi(% z*$C09ctM0=80Z9g2`nXWFf2Ji&{A+!LI|ihme-`5>gri&VU&Br@X8hl+Os5Z6qc;I z6^pn+d!-Bo(T?DE*=9$IaD4hk#lnXJh&Abgya7Fha1-nWuzL_Lzyp+yD96wn3%DQgE^uQ*pK>v|vgj7h@fklu|Go zag1yM^Z3L?*Rjgs^=scFtFT5dunfoimp1~hZMQ7FCo(ZLIO62wA!*2B-rC#ZopcMc8?`Sx#oo1go+pX2%GU*O)oAJBE(CB%_Z;^5$rVaV+SlxqWX z#r95?%Ktq6D*x9HzD-^X#1QBtGR2PV&=GY(ke<>jI|{0SP9r&u?8Y@tq0<$+vvVH5 z^9Dyw(8YvUY?W^?V5!Qn=$fF7m4Dl9)ZifWl z5&QxxOIjEm9!6TYah2gvm1 z`O5$Ci@*4b|M2tAJ>NW0ucB4iU(yEm$gcR87hHna5Fn9=Q%zpSKozmCf;zK^-sKewelskhyC ze0s_C9tSOPJ^Yj;s4nP3CgjAfSA3Td5&!zvzy4R}vv_X2pSt?_KlvyAoB!^=`%C}Q z!$%Kaym9Mh+gbj&r{AhZx_RR^f9-$$tNgit;a}jF{>CqG|NecJ%hhGW-A}&ljBPh* z$z4vT9gBXTgbDYajw(hdRoB$+DSIJneY}*`fGUAMcs1d+7P?sNY5=PeU{H!`eJ0z# zhlsz|=3kpw#hbWbpU|MRgkF83yNlbq!SAP?!lamwv z=pX&Z`K4d_B{rKaeLq}VeoMPmN>{yUHTrG}C?}%QVrhhC#jPj-bw%5WEJ&q>d8h<@ zsu!$CWh-cVRP`GOE%$Bzw|e;=*e`?I?P^&pm#?$`bA8R$fZo-m^*wH(-LC&xFPGi& z#52fc<8qIv2b9>3fj8-OJ7zc{<=XEWP>=O@7U$Xw+HURGT;AmJ-?aTU`qcmGvDtqX zvPUtVyfrGIidLf|iPt{Y@Wf}l|5@AZ>d#7SJZMv4d$Hl*V0HSR{b&E5fAec!``Rxb z9v;po^4xeoUG<&se3#vB_kSNBANeo*!vFbu#&PNo4-Z=Am9*Te+F15KtLjI(iPj|9 z+O+EbuT}^Ajlc0reBqTZ@F)Jn&+}`)_V>8BIA+uK54u+xPQq{wMSQ&+b3?@@323w$FvNcjQaYf7l!Ue($~Z z`j+E+|Nph$mbLo7w${Dh`{yt3KX|-cYp=NKhnLrXtk}o({(mi(;-(nAZRUA*Dt;W| z*8h7Ic&5LEpyu2!MXIb3|cbm?2)6SS4evozR*ZhCW|4+=X|84%` z*7dqc^Z%Tj|LEi6<2l=b*Dd^dJMp$&`SY)fOYeObnh^1Lw%tj~x=(f2_v)=%k?(Jw z|NqA95Bo0eEkFF3f1kuZv!h1u{QtkJzQ`nyl?-{sq1T= zM%Vx8|KAz^%Hn*`T!|rsVK} zV-=6z#QRVVC-S6ttDsU>LOuf>uQaa z@NsdYU;_YGlziN*Y@Dzj0@heN2fV`hm8!b)0uHtc=Z%osP;ECgti8i^KX4=Vv57iT;{&PU<=Z@zMr@4tp2=LLSFcsMDXSNSDSz*zg1 zfSRj2Rsbm>C2j*lAO)mlC16r;gsiNXfFu+q1A)pwU~qAmlpF#oCn+iL=j%L0n!7Dd zPVcJ5pRy=V3g_)TJly0U5N~g932(TBtGgWpCMzoofl5LoCB-Qi;sjs3hn0^wo^atG z9Ij#sHtr5?9uBT}fnOZ0tX(}l6wXsL{lf$oH*M{|7~=_lP84OzAU;-Z5SRoM;^Okl zuHV=M4|OjJ@t1OZh;YzS~b^D9te-ZW<__uxk(2nBUe~tc+iTDSi zhXd~4Sn&(;zwpHRIQ$#bUy#30DL#<9>T2Wp%aR*c{}ENTt~L&~a(^i+CueR_2$EzqsAN6FjW&HrQX>C?gUM6izZyQgACP zX~el2w4OS2~|^*mbof}kV2@Q7qGRF!@0V0~KKagUKNfaxlsN1(lMdwpJci{}u9Y6BIL zeX36>rxZ^~At@p9=lE~6jITOSV)_pnIFh2mZ<602lfQu^DWG5V^>^rAcOZDUy8HfF z0rjzW{`}_bAn?2X$XVI^VI0BA3u}A+&q0TO74SH$qzqIBCvGbRw-rZVaaQ88)>78u zI9VwvX&bDS6#_<4=?|vf_Sj!j{?Aa8gvwDuNb;{x`vZ;Oiu3Tca>uIJQC#w0hQ%M0 zHuhF{J1k|1ft-i@JBw^w@m^SWkAGU_X60^02@cA%E1bu+bNk$@{yQzjP4zKPm7(`pVW8hd{!mq{OYHpf=(N zn2oKtjI}gQ9ASlnNz2+mZ7AjH|0-YoM~jd$vRJH?w6(akj19#O7*1B)8ZIjoyl)^w(19=su z{=ZZFu|fEstsD{|1xLb=lHxLyO@X*97J;L*a<*7;3M&{63YV5eTEqTZURILUQcxJB zkCU;ofr;D5BCN$_Wsz`kxQvXAEY1dwu!Y0_TVDT-U;kTPI2ovowTzY3Z$-pqWDzpr zvM>atw%bTk!b2L4m9(<@8?WEq`NN@*|98*-ZgW%}JbpDlf3!h=y7ce8f}+gdc>l^F zisS#o(BD(-U&{E6@V5;WMeOe($}a8K*T1%hl!w1Im{>ez$#Weg2n;{`Sm<^D0q1O8xkwxuN!_LJ^Q%*tt49>-r2eH*}xMY`76Y_`Okantkm(n3zG7Xx7_8-9v z)xU86NlkL1Jp7aT-+)5~e(BII^(UCa$K{tK=i)!9|26neJ%@0Ag8$Uh3J9~or0z;6Hu&%Fti*Rp z<3}#-e`FZgKiKH(d9D8F$BROi0G64Mz^ms^`LgWTv?n3m5A0F{QOoRkXM!jF3i)3! z1T{_Gkt0k;I)_e9DlE=?yw6Z1zWtcM&&wOT{~)#e{g5+itXZlYKf*tv$O~Tk-sm2wC8QR9^{!5;qWCxyHI;jm zU+|qE87ZFSlrepChN$Qj@{2oo8C`Sf?eNY!&gKkb&B)1s0@p>_85u=IiJ8ZTlX4M_ zuV1uwzqxiNC1@<~!A^15_{!uF+eDDjIY8OEWaLQ1y3H4-!C%^+^d7VT>a=j z2-yxloT&UTA@4I$`zF}R-#OH!kas)OpP0UHUm&ZfxSgB2urjD~rbD|qhL2^RgEi|aHx3`zb98?WBTdBLFduS0|KThLjz=cTPU3tSOGQ;ihlH3{mS=syU z_?dx~1OdBbEF~egBS1z6)Y)0^JT8!^{kR6sFF9et1w&k#u5+b!!g^Ik3>n@{EYRgn zXc1xOiVc|yifsfzwYz$k90P_fV{IUpm@Kn&~N6fdzwk=0+yG-aLltfUBi#V)QYVa3Y=$k4I z>Kqwk`Vw}!+gNe{O9XyG~r7DzKFXD`H+ zQ^}Rlzvg5nm%{fVC8Z{5{0t92zhz^p_lDOw=*_-sqx&9k{S5`Si|sC_3u?Bf;?B0M z_yhCJ^fFc;UzCqt8HjA1tIcb%NBmR=PXteG9G~MCb}=dVRTcbiBvEDi?=hPYRS2gb zjkLbSOg%k4XEyc@9FP2oKsWfHsOxaHX7DqItoj?lmG!+&m&d73Sdws~#HFKJx{hh2 zluZNPWdPFxYU>Za58O4{<(s;PQDH^UM-!^02EWEr7FIebQ2Ob`r3AH2fW{}M(MnmwNfxPdLO zZ_D9;7356;>mCj*7#3U=AGcQ|KL=a!u z2B9)Vxc<09G>VpscpSE~CKD{|gwFpx$%%v6bOl`?-%N#Fw( z{#xe6SS7O-5_>;}3R|0AMw|;L#%5CoR*gF6B^-v}-=?PT#38 zQMwh1IW$FWy!~mpJ9Nw!ywY;@{F?WK+wP-khc87KiY^vmR{=x=5*f&G<9&}Bd;nUbzH2K@jrw%mBxd+jsMd7reEbjc}fjHc>*Rph7OXra* zR}BB;Q6a-2>338x_NOzVR9Gbeb#WJ;wFokn479hmk6wYnPAU0q&Wi9EU+@GEW9ozm zeYXtRoNFSb(M-U2WT^gc)XFMwAxFSlUx3{U02aGycZujtN=yK-1(vz ziU&`(M-AtVyTV&u4SiUDOFTIreWxyS{c!JmF%Ca z-y7-Z=tQk{I@#ITJqgAr)R7$H*F`flZMEZPjz*md{P*4@h4D&bE`Ro$;f-7dZ*o5nrqsg%6;HUcFX8h`dXm;f0aa8gj1dgQM ze78K)>9y+3N2WW<-+e>yvNa_K_I(D?7gYA(kG=D{9Q_^T{#?Z%eun+$nU=5p~Fx3 zMxI?Q7Oab39%+-A?a&>bPpm3iGqpf~2s>~GA)4}#eoZ}x=HP^#=xWa4-Tk_@{JP1Y zpDscBuTagU?Nlr5GzIirU^h}|nm479nxYg5Q*duPrl7^v-B2QaVf2F&=amx&^l8iH zAiQ{gZhn$ts*p^Qh7bgBJDNtH#dDz)?+qzSeimQ#oJzTvObah+TT&r!@3}lksSK$X ze_Xy2pX{5oIEECg3sBHz&Iuz}yy%>fPEqjp;`SbMN@%>>Eg^cE{!zKwzLuN& zwGdzNg_=$6`~u_rE|fG^vdMAHNJe$Qjbs|}68E8XQ^hI}Q}wn}k@rTRw3!E7Z{sLo z$Ld_9x1!q%-70*OhqlzxR$%@COYX9#yx#|-?=Mk$_u~=ufjdFf<}V+aj~ z(wEoTgPp+KX>n)d>?PvQ;L^XrVX(rvA1%+4zs_w61-aUY#F}=juq3w>XoDBP$v92B z;{NBdUDaI4bNmbJhf_2!D03k@R6Q~?`%a~j+f#nAYoso|`L6%#wFo&UjMmFC zCJ{^G@ENu)r02P`{GNurLXAl>BZ{&RO4x1tA&&!ji-+E=Uc|UPUUTM$#m~?em|pK{ zKRpuKgSd{=Ok0`?o{vR!KVtG_`tJ1uB#xMk6B-fwTm#7$VZuT0n{9Y1fgt>2d*HeO zS)@$?x^g9;ay~$8FmNn)U8JNTtbJjJUJdV6i%!ZfT1T-Hz!4M8xzZ2!pO3ImRmJ3j2{?92%o2-(g)%&RXvT~B& z`!i>g-q|Da2ShKWv6D-)zIC-3wmRvpt$((ky3y5fu`5d}IzHb;-g!{;`kUBzRe1Um zcF}RFxvI;)d~akuDdm0q^iut&d{vQKd`5Mj1Luz)HCkJeQ#-5s0W!OeG$uVFEM3an z32&}NZ^JY2a)CcLpAu#|Eac&E0@7IA`yTt&)e%V7vB0T>mE^Wh49-d7d(~H%rp?BZ zb2>fbd3bo9j!&+Y2S~}v(zOopcXerPACAB8i_#c;Ym@-~REg zSqmeYk1JOhmEYo|=X|Zfl@>7S=P3U!*fhkvDy^r(E50hy^;(ZB`>ENutESok2SNP# zXM^LLM~~~N!Iwpj@1+ju=d;tD-*p6h#qN3W=Q>`*m>OcBhq%$5BEzg}gr`n%QQa=Rjt_>!@0myqr>A6; z-Pb6z&^Zpi+{*JI`B`~NczP_XV9fPUi)XAke`j^v()#sA-EJa~n9bpnubkFLOAAmn z49(2Ud_2>cT8DLZUi4(tg8J19OIhDdbXW}O#ZpvU9^zuz3vzMn`Wg#pzpBxX)g{*<3Li|EsUQQTd)rQEOZlcWTaWCSajIdI4;?COqM&QAY zJ|ijkGk@@8-xp$N{?)EVwHaz{80=YJCzw^R$?uSNGRdS+CV9Nfk z^zKS9`Obm%^Sm3Sm(uV%h1qJa#F=bB-{_Nk?3-*$`QBZ zT58_Z`N3)6`-?M;+=Pk|!I>Ee1w4*MKQwN>cX>Bh+CF))$b_3K|8p*G8J7!=PgX&K zp5a(^sxGsS7KIGJ@f?BuZ9N|s6d+A==&6$INhzCH^h<`NtF^wsf@_&OaX&~3aU&P& z7i7?Z>4vQDa5JM~+=1B(**kOoduNxY`bKYn$B*l6$j=T;8mU&IW4LW4xq+q!9mV_r zr^e;cs^BBaGEn#Q=DV;FynZ`tqK|m8S^L=??lf z#}-b_#LWD)(56{pEo=3w_9!`RfXYPOVhRe(2+JOxQ>-be*>j&x;^RlNy{O2tkG)wq z^tFQbaj6MM$$g#8W%jN|$XmXn*B;dXa_J^BuBfr$T!(pOR2h6Uy|}m-7*x&&C^lLKj`EQ*U$VEeTKf0F zdu*(!C~Hd^ zUL#`Uw~0a3w>Uqba)K2#1|!wWp57S&cigvcXkR>s8;7P=_^W3$;dpIwqXr!Bw=6mE z>8F0bv*vpgc=K>>%UEu##M9H$q-hxcNaGFWky+hN&B~!`?W^H6X#J6?`0;Reb+s{w z#6r5a<7N(B3{YHgxDKZ+p~DLidzpe>N*DkX&N4KUkXzf^dU7eXpAK7@aOv{N!%Bm# zKUcuipU(iiw+>dnh)vT_mJbghC)i4OrhJu3fyt@QxYl)CSUXCwZV7BxV%>q(Ygf(E z_X&v|xVY**`!#nRT(;iq5aH&P6f8~(Yq(3p>^?`0@IxrL)j>sKT|x<_+{ zbKgse7G#X~b!vkW_j-7J``ZjPxg+EGMsm2`#d~xu%C^NfI@iY7m3cR+W{I`!3{3^q zu_wEvKj`!xTe5FkI?d#HJeo6TpM8TWkR$u+g=A%gQni@Qy5zBJPc4wo!H;dy^^Psb=6l8J|@cQ!@_r^eCt{2 z!4I|fIw?G)@q}|Vuk(^Z3gj<-UFsw2l)h#eSp~&0TcxWzH{X2Z(w$hc;b47MdLJI5 zwez^+wV!ivuu_U*V5I{)dI#W9m0kfXGU+e$ir>cBCY(8;okn=TR>o6}k3O{{>-#R` z1xtb%cWx4QV3Ia{?s?L;ShjCK`La`AHN71AOnn7Q=)r623a(RqHc^~s2|LT9CBer> zn$8T<5wwfm!=)|=NlDdch3$lZmD>Gfwy$d>5X(arxh8t_>`H4qB>oOF0Pl??PZ&O% zK0MOCcC9&>|LoZpGz<^ShXw|`8?DUA7x?!+vwQ1V?tL*jat;VM+e+t4q_=NBU>VJ6 z4}eZfj*7YxxdSH9Q56a_N!-}Bdr(X}z`W0G)Vci;_Pflio8yn0LeD-5n8Gv&mXv+W z&w-?sV#F<1QX<)?_#leAA87SKC#l@noSDA%bBr~;*& z2bIlAonKMjG?~O8{+l>tu5@gYx$eCpl$}>P~DNj?}u2*RrfCdaYKZ zP{EsJP022A6pnT$>+V&5hyg(1)^XG^R@;s^aj(w1?Qt_`EUAXkE|)cFc76DfMRJ9Q z8FourzQ|W+w#~;kB!f<8dD4HcRZ3Lz4clYR!IFj6;WnQ+FE*$23ss4PDn6EWVs30s zZ`7SOmrGlfuI&jQ{KH4T#7J4rw|lM6Ri^4@U!g_!$xSnKtgd@N^MRPKLZ9h2?uupk zJ|*D);{8yk<=u5(XLlf2gUI#T4-2kuvsY;Pt==G#Kn!szMe$|I`!xHhWzNt zi+fC{S4=41gnq8`$6(0ZxE^6lSs`gyW4OwD#Lx zl@*;WYn9OIpEWG1?rUYJ9?iMNwwoZ>S7RJ*#Qg%7lx1{T0Mg~zJmCLMb8~&b#qecQ zd%2mo!zkuQRHV~@W?EnEaAA`FeZ8`;XKNyYrQokW_~lz{k2!y|kGqoDrvMdZgsi$w z7lj{17t;9xM6ciyUcbSAE4eYau+gcMFOg>L0Rl`4qwWZ>PnVO%efT9CwwH!!WH^&7 z8v?bvo^S`eX-gk(+~4PeuZ!kgnqkje3)(JDJp?PY`L8M$Y!ZEfzki~eJAtWBP)VLs z$R&L+8N2VbX-4q3*ZZQ?=S0e`)`9~Nw2$RUB+;}t++DsjoIVwM3AG>5m4)&QN%Ae) z@)ZFygyZ#y-i;)!k#IXx8ZU&|y1)9gxWSvP%2F?nNgR1L*3!53utfjHYs05}1ZM<8 z_I9OiE^BS_4)?|D?_iO)xB7>Q?Q}0hKfLK6@+OfkQ8^15XOw4txk;+pPQ%sDLKlw9 z>pWX}itC_PGrW1)PI2=U%i(5h*d3#{^4#MG@Gg%vfmLOo2c|lqWfgPh8Ei7?d!VtXh=cn5dNsGTczV0~1f&L0FHe(c@R;!! z#fZl55u&Fi^RAPpl4Zk^>D|;D7U@Q>$Db;1DX+lPE$5iDmo%fA=*kplq&`**zzV*MUh)w%NYxFpf45O8B5%v1H-b0)@}iB=39WKwW6CbY)psc` zv$RWqMp_O1`QotHdZCF%39dH3eUWplLo27&r;hh8(DGkASS7jwIDO4Tgp%O(rQ*A9l$^2qq+opz^{Kv=F5NA9D zu80|HAxXgErGQtlxvWM`!mB(b=x$WHWj598IrnMiyKceLV|j`Gy2aH%9ws{tfNvj) zz;b{K|J3dTojO&ZwAA_NL_%kGHjf4zJS_6Il6UW8&D&I6);lv{cy)wP>Bj3cffrA?E(Dik0FU@nyIaas=wd}8BXzu!IV|4Mm8izekZ+p0Y@|?ES^0?Ml z8^5y&%YN;QI_;5eKP~cK)KCBD6Dw~>5ooEN$$j1SEz@;c(8f2!w@O)I+z#F9oIgUh zVff8WcbP%!)K94H<}PDh~#jLoMK3 zb2qg`ebuQT5cZo1eTXz53s9Q#ykY|60BqQ6)S4l&Gs+!1Vv;zLGC*yQeS+o)gxKw% za=y7_xN{Png^wNKoMQP=OSpjcuL@F+ zknGv(r*W0bQ|`qciRf43?Q#3)sbmhSCj12l__ni7P&?PGDx-b72c;uVd3tRrApL2| zQx5wEu7On`Dy=bLzz|B}nB-ULb|o_e?5ucS<@j*w^Ho8bIR zwPc@zeiDS6E{|`R-L-yXURoRsH{jc$-{v8T4T>mpC;_WI6P1alS>JpkoKBcvh#W6e z;u=4d#gYkRisTxu9^Btfq8`J|(Y~5WgR43cvlFMw4F@jFKqWlr1SoNX^f>$NGLDDHXHFM|0hw4q=3T4$ z@2+2G9qeDKw+Sf=%nyqz7Q)Ghi9@p|R2*KKXqUelY8+`L~3TM+4+jOZ{cp31+?lCHsN-)fEga!Tz$0;}&)&ZBDVBM{|W5r-*$1 zSi?Zdc#;UvI*q^2c~>anBR$8kBkBH^NPx|cK;?2+Qyov=ITd>iM46UxD#nR&9OlfJ z7K@6#6TA2Q+;`waeMTc&@j1ST^h~GpCm$9TX5U#PA$yWc7DgrT%OB(Mp-Pk zpe0moUiF13m*gPr9_J46=js*ORVRkGI*cEFN@IKD@EjFmD3$$9tVw{U>Ec^e1KZnO z)GAcIAGdeI!D_O^t@-SHj&R`9^PgjX?q@OZ5c?HQ`T2fWRVd?et$NIFUt#DXy!1%~ zNq%M3{|Tf{OIiWoJQxGh7*e{EX^;sYMv`Eb(i!wfcr)g0R*;KKv#gQ7WoOt|*$n^{h?FwF~w{DmScZL*0s$U=O9Jjr@ z@Q8QJxq_a)Y$MIo+fv!Xmj!I(i3^?s7Q#h9WlrVnXVu#*+UKXx+8suQO@2tR$TigP z+{N-WpX(wJa)^^UEt7bY+5^5tugP_)i{3L{*Is-u+v}@=^rVr&g5Jct1Bx|_koKou zRe=vi*=e;7_3N9&+Vjxor+p`D&->DC-wz3GVcOvoqYjJ2p_y^$6N_v-yl5_>ajw0W z2%sGI6dwG&JV6U41530buFO@4~S|zr)nYFnPiqNaR>V89gr__tA)9TCFzdq#?bwWe@tE zD3Yw+Bzd(AXb%fo3(O});KILhN`|j`8aGt|9+!Q)nd}}KF=zT(87R=SKYP-LJS&C^ zkMX*~HG)~f70FE|Y4zm#R?xm0_L;%bq`I0cVSlWB5$Ml}5e&N44EC8&V7$~$8|hEW z00VRU;K9aYr2QD38Pvk$W7CT)&7Ya3BBS_0oa46-Ellz|_&&C~?FuJE z%_h~`&C2LM zf0zBPV1aayGYA;3ZblCbw9$0&3auPPZQo|7cA@y)fCB((Ab))jrShIkWWF1cEvwv) zA>RLiw~v!7GMUXYIeHr_tS;&lT#VJvo<;0z<6=UY?W+qusWs?+Dqmn_%>jc{xlb%} zF2B1=WJcxk016sN)W(zdRUXFE6{YhzkFklcc($~Ys zt^sNt{Gn$InM)K?GJ*4+i96TSOxvj?auYDc?}D=X+XhO9M4Ff`;V%$G$A@re_T^3w zn%7J_G@TrNVgQs1O7te?yZ*Sz2%H9|^<@@r>Of<|!nRlGxj=1OsDKjM%~RBbXZE&E zRH9g-Zkmu?EFD+P9i>64fj+Zb)2wVMlz$ECXTXFNM0eax95F}xi?6f``W8Q(#?7pK zJvD5?=Qme?*2F+Ydjl;;x>4sus+oE@wy66o{kQ+?bCdq}xdbKS_oGxi|LMj%s45;IZ0I{HZ#NL&kW zt(+6$UNzMLck;49URH2_$(l)bkEn{cR!le6s?hb^+f+UA13a^mO%mA?VzveJmeYaL zYYAVwB25%q<`qKZR^Ek$(rLBMkY57LVfa-AZ68oL;F-YF7dGcV5pJS)HibVaycn4XyQd~iIk#{==WNW%(X1jB4;Jud1qxWxJQY7P_jP5roa ztK*c>yd9zu&gXOvaz$9mY2WMzcyNQm-e4bWjseM}0Ho>3P-gOd6?>{IW~hELQsoQ; zso^)p+_jmMUayB#)B^heufQ_D->+xJ06r^jcBwtxXJ4d$3i=TP37BB;So$zP4{F*5 zZ~#gi&bkXny2di5^MX*>1+({OvvY|RvD8?e>stYU7=VGf(o5c#=Zv#jZo#BZDeT-gbbA>2VTyY z^AuU=#jxo|H$Fwv@{SGM(k{?o)Z40}7MKqNlYnPE>$s}tP2Ym}ns4_z{Y*#-JH3Mx zmBDmP4*EpN@Gr8l343T%GoO_q{@DAz5KaJ{(a=FXPpkiGgyqio9rt$Rz=^Jp0${Zd zQ8#L&aU#vFK=pj5B6hCVj!V3US z@&wI$+Eg$!F_37?K!e}SgH}WNub(|`mmU|Ju|Z{R-@Gu-ywX%EMEbC9>+n85K@*do z7K_tM(y`Lv6=iO0zY*6l+zy+h5+c6NzGP1Lu%^76g;lf)2%(f6+D~`bi zqX*Z9c01&c^Tl5X)(y6FQRTnsLs>>V$U!-K3hOz^k~k*9W<9vxLMwqM+WIQygfM^wf=x&lzK4c`c~R6DS;vfz+alM> zO^U0wIkzAA=iqUJwA*wJ07iN;F&6CT8uB42Od4(yfjR>Vv7BNla3?@t=aUJ&M^vk? zPcsog7%I%qd80a!mprTNjkUe2>B`xByh(F9Mk>banT7qDag`&}hN&fs->PlyeZ=WQb`KDWx-Gy0!%k7WdwBV3goJnDt3m>ONKYR{fp61*^ZH zfh!I{xaN_m{>_8dF)ppiwl!TP$E1R*OyyK4U0rDX_m`PQA%3UJcU*qXhQrPMpXmS6e)auwD+aJgc}mKAsg{P{v5{rT4gU+eegCAkM8HVk!{4x$#QXGIoz zMu0a@RF9;LpifZt?@x!4H59fy`(J=Wj>!thpow?2?UhLlGsZL-tuMi)82JL@oD%}D z*%|{&GyP@QV@!M85hSUbXYz)TEl}ypVaye?938L4K^4W|*yXz8z^_K8H@K(E3A9GD zh2_EDVkW%KgpxJoG!rrJFHb^=0BQiI$4w%X#L2>+GLWP7?WXs}O{pF+nyCQIo1^h_ z%hT8reN2NV2@Vu^lfpgl=C+EEKtkw<#Wz~=Jz13RCXp=;W140Yvj|sJV0x^tFH8{BkRwzb9tjovX4Jd2+|p z^QTR-PFFqX!Q7K;d{2U&w@x`o(ABMQ|2!N&KGZy~3(y+WS+{MI30JrK&il-QSTr(41uhkLs~19dpoX$iG}_|aa}TXVqoLw zpjo8H0Np?Z0BRCqjjHFAWjVbya+b(8u?dk42xR|yc zT_thJm~Gy3Cy+U|)3zU`cSo8t4LayvxfQ#4KP-s1dm=9qvv1o%kpw!V(2F_x$9EogL=2%-3I=MtLqy| z#~Yiy`nq)G#3_{qkj%V$&%#-Qss_^i-q)dOv{#P$Tj)YLcEF?vIyz^` zX%TMB>j!apXilEb#HH9ho8xjwmu;bBL&YTJBJc96yHAP;aQelY_9E8~N5>C&11Xoy z;}pp|`IhRH| z4Z;B5+{&lvA->(uu$$s6s3#jP-Riu?&6dY4K$HFu45kM(Y{%G>+DNz7#bX}hwoV@1OIZ084i z^EGOqGY?8aZqN(>4>|WgiBJhdhBLA~(78+R!}B~XJP5IK?{3azZu{4K;wqtZ>Y}#U zM&U(4#5%g7Z=Bkb@eYIjg2)khtrtuz;XFGwdoz)sk$CHtC*>l2a=Y}a8fey1$43?t zX={M1PhTYQJ3WoJ7s78_Z0+=!aPac2WY%4XWaoOw#l@9TY3p_7OVWL4Wr!j7BO}Fe zT=%VX$Yl}}1gZxRt73U&c5MrnrOIvtLrxCJ=QA>rVG6Hsu%$79X`7H~c*u}IHz@@tDKJmd29??3NEIm-0d5uI)uDO?fV z6sFu0x$r5swbp=-Mu|BU<-I(u+0nc*TL*_1KQ>f<<9_c{$j_VA%SK|W>uDLK^wG|Z z&ef$Grejr1?q5y-tBsd4DR+%7bJ3vz=Z(kf5$)LbX5UtC-d&F4Z97|r791QMXg!4E*`iKeWf#^>VaVgMiu;j>5y)jZ+^XyCyV)L58w zW=Ab|l5&y0dHpQosr~MImrZrf3{ULJu*AX;BFw`WGtW;(oR>$OEaWElJu@>4f08Z| zZ=Bq@I@*d5R)#~KpaMw&%kx2CCZ22_pDTdVYXLC2iJ=Q8u39kmW!%SA28A?c{YY!l zC5kMwZ`+}?y97%d02|gt5bXUCexnbgnhQ;R&FWj&>F5GU8}^$R{2oQ~0KFeV=3=cYz=<}RKFqpw|J_+ZsEs6u=k&yOxk$A%4A zuc}!SJKy{yIbP&cW?4K*&c2a#XSr;|{ZWA-AdH8-kosyZ2#V-4*{TF`08TrD;=pe> zh4?*fKmy-u$wwJ?n8;MCA*X@Uk*PAZLhqYPchBrMj2rid%G#K)1oB{L$j!c>0uShf zcc5a7>hsH!@Uv{44WgI5l9oNU(lL=vw_+Lt`wv)! zGG?h~*(`UGmomIn*Tsu~8GFzM7fN*Gvt(Ll)XMZr&=#cjJSAfC=UL_W4 z4$<>~%vp?|QUze_so3uA#}!%jTJ>RRw5Ay&Yz93As0q!SiAJ|x#y?B;>l3KrBVk5#@TJ%Nb zx)^fOX>@AE<>aTCC-z+nAeNOnloaTj*BlgjWS;l+4!m3)+ zxO=I|eNv(qrb-`|Pu*mw-Z-&75*`S__O_|UiF;POxsAUXA7#uD(n8s+Mv;Pm0rN`P zp`8|4qvG=Aw6!Mv%_(R4MGGHg8d6aMG-BulLY1w37R<&)z!wW{0oXd&(-;b<(gHV< z$4{>|1OYq%*gk8ZBtVX<9iR%(jb$td7GpVQf;skKVLS!VQU;hojkjuOd?thg>3x~{;fK@&Oqf_xef$xz z(V%ckD7(e44O=p7?DKBn5u~hXAxe=D>8Ss_RSlOxw~Craiw|;qnxOdW{lTGiax4!= zlMj5vq357W&TQ(Mr#If)cin5tD*8d6+x^?|=ZGRCfE+K8Q<)Y3)CcW{Xq<=vab+D1 z<}8*~P{Y~M63}40_F#5Ii0S+t^s4^-H3q=uP-hT|bRvZltn#5G)c3rrco1y{CUtfM zpbSWuFCFAGPSv3X+%i7{IE~4nvnQ1lZW>9$s#(aiY>h`y6Ne+4U9QP}fc=P)*c7m6 zS25~QC(sL%53qYdyG^4(r#z4$D{fB@1p~6*gNR(sAbF!VR>i6@xk1fGcPxX}g@g3~ zMsIRA$DDjz*G$;_K}RP!rx8=xAl?4!A5=LnWiEj#MXd4YJ5F#eD|QYLlo)#IryE zj5cTJlmyS218t|mM4tSrfT}soMTzTlUG=g82kV-aKlMQ61x#FmZvjwCD2DhvOk>g; zz(-=mFtr;z#$YxQt}E`=v(S^2_I^C0s!ZzEwz%6>auY~o*Yqf#RFOB71@18I(2vsq zLRG$-Lr+ZPJ(&D%4%p;+n9x-qE<}IUjG%C7c;NNJ1Y5WK&7V+N`}qbGPnA&v?Br6| zJBg@Q-*#d#Iezb2PWdrcKK*)&;Mo}3OI={tLce3~0$h$bx0GivDs|@NVE%RfE90@3 zmXG@^4-ILHBWkWBpnUHG%k-bMEpd|#+Xt3zW8&W2smr%2nIFzdxgH4rpn7*&7tr+z zlo`^KTc5__=HI0$AENMMZrve?o#adc&Gpr;@OtHBZwu(5zy=hl~DzLAP20mCJ z9)2IQ=I44bD7<`GNS;_F)T+|+R5B@yb%1GzT0>V0ptQ!ObgtR3%fk+^F|S+B3|(6q zE-TwibYU;=&Rd#zx2|uQkvsVgSG^(V+)SwFnt+K1GO>xj6+ie?qY>Ow^4gTHVdQ;c zQ;$>QdmGk8u0uUhr?eHTx)DzNR9`C_<@X2s)T7P!lUKU7*BgvoywXsz(lt-b%BaxZ zQRdQJiM7SJ%j^gXM@ME5fLiPT6Q58IbmaO3knoV(B5X;(Y-|y)$ui?$-v+J*H+o)frIw+Jsdq#Q zi{;VENf0@641rvjh^6N>=N*`dycqh1i=@*#)TxoQl1~DlH!j;t@`#JyYhmrAue0&@Htpb-Cf9x)p6WM+H=D`J%8o2M z1&n7OL~fuaU5eL;TY)q3nNU;fXD&OP8Zb6<`myAhZcdC_xs*u2?YT^ z10n$e7?Kaa^8W+fKq9|`WiUWVeTKafdh2z#!-`Eqo167&r*r2p(BE+^92fq+I4>;w zkxo)mB0>`eNJ2{Z-uJ#IMl?Mht_@%Z`2dq4Uf35JKow1^T>!WMz5qgHx@cN@9Z~{7 z4Yp(9JZlF%6c;Wf-^=G)BZTh8O`lT~h8pZ`a z@{x~Ralrf7V~>Gx-OU4aGnRzzrF64gw(j@5z;wQs7dW>9UhUu*{2GRezX2e4VNip$ zVK8Iq4FCd&=`!8Sd+Sw3-W){kw3E#Ybnf5_U6N@I*ZSlp=LIl@9HKt7|N5{0D$#5J zNlX|3JFrSkaD#p5k{%6=SWCp~IRbDo5Fi8KzNr3-p8#d-4`7Z70M`S+#XfMa@DqTH z=dPK)un!pdz})Y>_g>L$v5jUqGXoaP6p7~V?w|(EeGBl$J;8Nh0OP!{y-E@D0n>ct zoL&kKh|Ar_<+`8!C|j#SpI!{PS*<%B5t3385y;gFz_&`JavG<1F*sJAdXyH%^iHd|)2%FECUq}zQp^DgjusbNZ8&%g?`sw)OLJRQJzwXh(r zOT%K(S@0b*FRmt*aYtCWbuu^DDoC5GSXr`yJU|ONEtn1ueeZkUD>;V| zA`O66sYEqr^?FgmS*xX}JI}5rEYjS}nyW(dc4%71%LU#STbu300^*ejyq5#e-UUIC z;mj|&A1akeSI1O6c%@{Ec#vm zYZ}s88Q11BvUw%2X?Hta`lAEjZ?(3=!$Cu0p>cw3;yao|2A@OMRCg`)hA@j#niVRv zGd9aZ>`vJ2_MQL>g{+_%!r-$D4+l*JskwK-1_4THn8Q*I;0N}OW|pu~=B#;Uu`NIi z+hRNXt^UJcn;L9_=Zo)S;)3=JcQE(><8#~(os>*1TcsB46W|Ynn;DGa1{DoG#$=(1 zc$(cSG)?(vR%~_yzpR>{%lTOKx(HoOdF zTG3WrpKuMx?4>zxF_-~VTD}~>0iXi_LkfU5fdYhD;uSR1kfflXda-V=plzmQR6R`d z!(u{!p$n6NCMw5yfel0NMCS!K0|3u# zGksy8;Mnhf|NH5ld+rfttI5Iv);K0!YAD0G;y&RVuzFB%c5C8p{SfyP&q0GL@SIfE z&=7HzWi&SfUN{c!nU+$T4{)zE_P9_`d^yj(nTLZLkY9LT`DeBHe(DC_86HbD241qj z+eX7czVpsIr@#2cFN*U%Ea9+R0|YPtUP&Dp16OkmC^%rS!$1Ufi)FP2TPQGU%sPNT zJrGRCam|Q@mnI>{J;U$t5Ks+PwN3TBP*w_dsB8}Brp7-k_rb*BvkU!q<;qo5C>3aE zct|FX)2HF9JlF_iz;OV8s30)1WGO}KAU`*kq+`dA)8a*oh27&GsK2geGE>0CJ%Vog z_P4)XWEq?%&d*#qU}Dhw0wBgp0pJTj$9A|+S`gB!BsktzEgIY6zTw_uAF6k&M~3F= zHS;iFQq-DhS`w-GO3~-~`J%Wk*|zY8{szw*Ud@fp7j|rc*Jv16JU~w}LoDvyyElx1 z3TwQ&5qS-+X0zpdCE{D@a0_9+UhkWqYo;!M2fzvg9}QB9F5}fAi{G&=fKWkL0n~JJ z)10>W39wQhRx^-7nXWral!ij9kE_ENd<@|Ibl<&iqsJfnAssw$kd~}mP94z*#rZg~ z#lti)=|}|tNq`v6Un&3}J4yY+gB0&f@FLJp(O3s>J4sVB)4UCXbx*fUqPP!Qz8tP> z2vOF|Wa@kAHXs6c0g4**VQ!C!3)hXwzzpqm7eCapMXEom%NXtnCICDGt$d3K9^cnv zYTgdKaIN@0?%PEshRO=cgpL06A{V$XdOtP)l?V7Q%n$j(_vHQR#rN^M++&vuCYeP@ zef46Q9pbl+@bMdNxM382>K1t0Y#0FC&aGRwF3AIH09mcz#|b?WnYXms!7Hih`RdYK z6TDz)uDY()6$418S3grNUKWz~lr5h~sFQOMG8l!L*Ws?pOa7Ki6c6 z@|i5HXSO@o-9x+f?xhlU=3!>9*&G5T;xsciBmTDlCXqZCY{H4SfM7V4q-8KDh65Dx z_0z-@BG=0F<~P1kt_hP4SowS2^B#%O$MFH6UfQf0&H%JHH%-HcbJa@4D!HgcpsNPc zMNdod;JYd@K*QF41YH~NL1xj!J$MF~%piN1o;9XNisp^5?Z;@Os;|7zxAyHnMql~L zzshP2&xXg>EZjG*$n(AujcW)tU|{O~kN@#M9$-c_jIdXA{Q-~we6^&Cm#<_iR| zteL^A9rv1L&6&GY#jmEd8K$x|ttqfYL;!DyHc96d%e493IDR#3oSqe?L+UQZrd+8& zR4CIN1KM z>*W}Q0punojBup@7 zZdfg@=uRM_TCak<0)d$mVtE@f*yy1mMk474_MQC7ME@L)1^3SB%i9=~+5; z_B8eM_E2wkC!a@7KuIc5oH$7%i<#xd;u!4|4f!ZHIZpSz<2|%t^EEV`WH!#=^_J~7 zi-xSlA{{o4>uj=msX4W|I+19c2iffGj6~m|M9&^(r>9PzmiGXHgM&jNXY?>r?dj=l zq>fZp3XsQy4#^7VjQb3CHRM!Aq@KFRsoNXaJ7g5FDRaQSks}yM+GpSdG=Xh*+o9rfIlF|>+bG#O6u@=my5{rI!))!jZvjsq-w3gz!?_+ zg=7H90-hxRUW8D8;R|2jrRi7XJxuP%&W7#G5aed5CCvo+APSv{-WONK=T*^#s|&s; z^h5GHIxmV`$~Ulr@cS;w0ysB2NBj2er5!tW@}#>*487PtRzUz)$Ul%M$H&JSSwkkVsvSK&W za#t+&TDmn0=QO`xsUgoSmhgEhGtgF``4&o4VWt~kFs5RTYK1I?kr*6RDGny7jF8&? zL7L^y&+w9bq_3aB5pHZ@TD&|?GsjQSs<@Bd^NT-6!I8x@mPyjG70YSky7df%jt=ci z7Jfc%Nh%MVKYxyT8N7R#t?IeQWAK8=(+|GCgC2e2NjiP*w3LR4GjOjP?57aHW1~ie zq9YN6pbyt&6UPwAzgHojWCaw#bitG{K*6}74I?2A02fh`$X|?Y5V41hY%us~`5`k1 z#cec|l}ZRJ6-PEv>7sG}eGBUk9)!QH2VSlntM-zt+}iP5c9th@;Pp3df>)_41zw-O zDi|FUcgP3@17W`R89IFAh*T|k?zv~_$l=3cf52pi70uAla3lB#6Y1#a7|qO1@N*jw zFCE^0g;z#%SLzgXMFOwtIXr_!wc-GD8n6*CCM-3vM8rb@D*+&1scs`z94FCGT4>A# zW{C{8B?iGVfH0SDyeMBFKmQEC7{?&T@Jn-(<20Az=P@uy!^49#HZe)zLKhA7_Y%!b z(7RTxqc?o;U6fot#M>2U_1e|6WYJw>WD`vwLY7yNC*Kk z%#6zjxXAJGIu=}X^R?E@irG<~Wc@r5W0D)?=K}-hjvYI>j~sIHeAKY=;b$LDPS z<_oJhO5Nb*;{BHseBDL%ybN~>F@ksnWq29vyqLE;cW<-56?6rhu(W4ph*z});AJoo zc3UJLgDzeH2IFeELKzBBmYH3ul&ABPCurDLp=e}~x`!82A(^My!@KDnE4R{Jzx1<| zS~N)hbdlDr8KJ(8PVwZ2%l18 zre;$E0AmG(DjHZdf%(4S4R4TukuQJw%OXqQ_3@8?T;zxkedt31;5cvfvVf)tCJlEu zxvzW=u?+^iW~!^NnXd?dd%5fzUMno6?JA3@tpSr4p2PmNGOA4IgD%Y z8pt!~GT7EofDqsduMxPQ)dG}ZCOXC6KRc78Y_&vF$tj8r^iWTzNW+CJ-L`lYz2%pF znwjo0s--Km4nM;cnuW_241mQlvttZ?8_ufO{h@YA3lXU#} z36VB}K_?X_>;)LqNXUa#)aO3;ImyxnA7gy>kN^0OvckgOV87^Zzy9mL-UxX{5D0)3 zpx^|zlto7dH~<6y$O61IdQHbas8>oP9BpLqgFe4+|32EabC(1~ojP@ryIM)4nyzkM zISntWd)ky6tXAA0Q2{%Zu1{POX+}>UJa{m7rLI1% zNZ?hU&Xp@y9%iOe;TbFlrUG{$4M2d@fMp{JHG=Je!2p~Q5jLN}?WIUyGG77C%grX` zt|qY%M&iy&c1hwKWN~89LTZs(xgt7ffx#^g_E=$tTgp)do)h_u{2oN$Ks7+gK!oP_ zR3;gaLy2DUm(o;8X6eGwbJW=zrq?f8MYsL-Z&7jCFj2ltD^@JQff!)3A}s_1Av$~J zES)}gK?YYZzcz2aN+b>{hUxf$vsBVzy*Tmfj{cG{!VHv>V z{5=@hFsQ+NfBL6?nm+ZZPYIib6oIAhAN|oE(Qp0MZ%IH4`rsr_B5T)d5XLMyePdlz z^VLM&h{j_wSzz$LRD-^DncdXy^S{8>RlBU?S6^T_yBOS|nl1WW@M3~_zV?}!S=zm4 zAFob#FiB#dMe=)owo#sdG5HNL&<41lm&BM{5qCz7P{ebDtf>Cxv1o{T`+BLbw~y~_ zLS(68v7)kqJagn~SiXEj*e_$j1g}VHZkfmeZySwoe2`hL^d8(;jqe8t17rcdV7_?J z09*uE0I*=ud^LGHyd=7L-ADt*ScAMETA7nzq|6Mrij@KkYX#>8z{_*@Nb%i2Gc!q< zfR90S74?;RD3{GsCxi3#wJv(gum2hqS33a?OL(~sCY|Gbg@R6jLm0s-{OaxL5$!d^ z1E!ScC1b8g>FG4B7+FD!mMo&8fHebdwJhwB>iCLrEfNDfEXsLVZdU7zhPoJAhH*$91S#I34O(s@6PagjngyLJ^y^O{k8&*l=)a=E> zg4nM9miQf7oHAc@atw+GAAGPOJK$mdC=GzG)FmLmSMt-Max(n2ie-@lATI>+6$&sJ zO)-0$2?pqFkq1P%KxJl~7tWuhzQKO#;pO9P%pQN?Kl~PzH*cn5Hci7kKxFw}kDx<` z2P4FQlTh!DI3=*8?C7Rkni(~-qm3IkQ6LoNLBh*P22)7RwMGHMvgmoGO1Yi_vM9`4 zLU<+rDg$s0-zia;_pxQ`Ci>dfj)^xz^4N^5gdh(%ML7rQ-h1z(&wt^c8`Wz8>gqj% zF#q#E|8x4i-}^lp92gcraLNW1L^jdBiTA*E z0V25WD>eIHyM0{4aq)887DGI_IJqn!s~kIeh<5R+0APFU*zrc_dT(!!+>c&nsF-~5 zyfpk;YxZHHotv9!BqzeXhxd}^e8xD}KqH;Z@N%L)XP5vKM7xKJDH!y`id-m+<)ijHm9uR+PQAE@SgI_P+$Ad$0Mtpz6hV`Ne%_lp& zl(`z3Ne2s&8QRU1wh+crm4FTBCH}(9`l<|W)uIEuz5;`9zAV1EhzU${r=Q?^m}Cag zH?)W{saXp1lCv;1MOO!6^ub^KCGy{Jtvr*#e#hF3!2za%j*r2IWgw&jwB^f}QaBJ6 ziD9s3Sd40=l24Y4&WhY8tf^RVfEEL_$mhkpy#9AlwBC!rTNaST`#EMmD^@J$0qZ1e zhnv~4V@GAsLoWnCNX@xGgtwg)-%zE4xEE@?#rZz;@WY}X-hTV-B2#?vOJAZ7{oKzr z>)806bc>+AzMW(T5j*&r&8m z*Qjt3W|rO8J3x!C8WA@{^f$2F$*FPK2D<-S?|JL_O&d2gB3v!-w%K9uuozTJ%aNOh5KDznDjTk`2fA=-S3g>A_+$E$(~G&T_p#w{}-?I)-F>!@OkW~=CRGC(U74K zlHNN&i&YCka(C_8En{yMc{TVstE*mL|3G8BqHn1ti-{_ga>_wr+yd_-k*M5fxP@x< z5WJ83qgnVg$-Qd4nM_umaWoPV|6Qy!y1To`&nu>U!O0B`K!+4bzKTdo*x$Lc=SSnQ zjz+~13%qSK%`JL1OTM?eakJ74yt^vkV?-Dl&UX2jVnQNb~j(Sj#lUAlloN zpaK5#uFach;0>>%2_9I>`vxc+@1(ipbi-JQXSQzLdOCje7@azPlD6Nnod;8ng2gWC z9q6G@B1)+&uUg7{hbw-nlprhcBv52_!(d;kLjS8eQFUNU;zCw&US)?#6^gk=DIbTy zBM_uUYuBz5Hiq+veY4M^Zd@LV*=X;OPMh5jw8&*;wSCl*rrUA@xg^UPL zWAb0fGc+IH#qTLFHt!E!NxqOJPS2;&FMO8v=D5eEbCX zVgdjo#^eSTt)bhJjV}-R!3mC0jThnTt5&R(?wZi6@@z?d`oEOFYbgI^f{PhuIGM~j z$Y)?6wb!VdkC_^>!FUlgv5c3P0)qKN} z%>MKRVYEAT?xJIS&6AT8^(<_Tbg*`9pG2hL{-OaSHHV0%_f+o#NC23;z-S@YD9~yU zidI(9-?eJBRuhND3joD&wbT^0*A$=%(psn#?*o*PYXjdM8y%xb24X%YlAn*gl%6H8 z3E=(w=Reo35ntOhkr&8L37cp%VtVPJ#6zwNpkL^Fg73m!N+!DEm8P_{)Z zJ|1?BE)88Yi)ps2sk$p$w5zdQo^j*S67Q{!*PIbKu2c%b4XJ^b_{5LNMiTNRo z!*{mE%lC4EI(z%6k{+jR!8i?USVyNBsMZvSR*tM>=9)p(D_Iv@3ISybg_-qHC)G0D zl$q(EVv3nns7yWaFjex*jNwF4Wzfa)l38Jq!MXqduFDDny2!Ust!HPeIc|o;OH81W>W`b%*@II5agmCoYJwXk0XCuv0MXvecvti4QO)gr}Z* zmfrEschL1W-a_B{_IK&lyC$fAaF|ksGMzYemY#fiC*675cFO0{JUIni6P=U87t3G; z-i4NjzxeEY0_3WLJKuA!psI4`wU5a7VWx_Z<_P42V1QR989H|IB<xsYwL0GU2F&D4T%w0fc;`MJT^KiE2J%3wq$u9QwsDJc-w5S zD5Ig{9yxMkRO9R+FW_Or(u{ntkQj7H1E~Sv3k&PjTdon1!Ay?NSF9Y7ZSnAb;wRq1 zKZ`9v>ebia$xxLDt4iJ2QK~qMkzm{^I!pN!-;Y^@5!b7#%w>`k@>l3;zE>M~nSHb) zMxBKctz5H#fi*^%z~sDg__qY9)u| zR_n}Hz_!rv;T4I70j5&Z)Q~xc?bf{;z}Q4n#N;9Wh*m6LO`VAziQ9L;w`ypwB)T%f zlK1Q>$TD_va+$4Voa^>8La#J*6JDR7!(VYhUWpQi6m3A{JWD61==nQi(36e zkELDGGfgQjh9LfT5k_n02Zy)R)7O)@C5rs#2S2j zH>_WQ^O-(#=1lTR_9(d`f%mt6`?nixfFHsn&u~?K`7y)cp=em3R$~Cug)#+W}}}#)hlep@T<6PrUb@d&Qt*=KORg;C^ALbT0;Z`Icy}@6J~>c|OML z{=9JvEKSAb7E8JJO&VLi?><17)@0yF%1ch7*Nh%EAb>(3YH=Kdi%j?7{V z(Cdd6(W>=pDalJr7+H94R77%GkRLZL#C!I#-3 zEY_8(_zRc8e37IbgC5TMexEQ#xTfWE8Hf4S;Bo|JT%df`(E{PIB7+r!z3!?6K)CkW zYorfg8H@-xFl4!}zL4AvNF$kimgdqashDwY>;i*GpRhiE$S=lVqAz!7@@mbox?+|UjX)~W^QC#5~&!XnY4Iz{ps+SY0)zm;+ zZE7nJ^Mg8F*TdfewJ`sQNvNL53#L4tm=LLlAQj2rg^4nqq!Y)E^Q7WLhaEq0QX;yX zOm0p})phF!4NbTz{?S+&z#loCfj*j)oXUArS?29x5@FawYu2n3&{dg2-1$TXaP)T7 zX;tIZBB6L5%1j+^l8agR0Gt@lDm?(8!CvvVvT1x50B?R569TrMot={iL`<+qe$>;| zEk-sbVzYPLaYwpUJvR%y9t|L=K*A4b`p}_6aL7$yhQyNOOJDku3@U7g*%vn#iE|)1 zY`^6eULrmt--Y%A@Wp4qSomX}JaL*n_qi|7yWjopMg@Wwlj!-SWXuY z$H%A(F!%-GYQsR5VNgp27<6;IBxKeZWkBxi>ZBxt-qp;sii3T0jtBj4EKYB_`%P5N zWd#(lZ1;glgYZ^)VyKm630$u7a{pkNGP5y?g)lk7`kW?TXOKDuB9uc$Gzkf&x)nR; z00}ckFkZ(cEGu#Ymc1bc7kE9O@EMCeMd!|+ z63}**>Ar?k3Sga{nWE)9utUi4%7c9-nPT9rQ8$ci$Sch6k55d}Tq;AW)^4EPhtAQd zQx|wSzMS`86u^3J$3D7g+a`L!%9iUV)Lx+!^qyqitj`I!%tkJzwYe-qc_;8S-Vby zCY0F%n3WA{u#2c{O?~DwpGiLP#1jcDGw=ZMQ1QU=K(QP_q#6e6GtWFtH{Q5i*e_hr z@HxQu#+z=WXPb!*pAPhYnf>8jkNj-0B} z*kp*pzLGG$iDZt_{Cwis5cL&f{H)+QRuo+qS<%4az}|BCG^MghnHZo=0*KO?Suyy` z%}w+6dGSB4)$^EGOV`I(uADHI9vWDt=R zKyofiCk`E_{Ra-yj(rE|%;|Fyy%k^(?&?5Q>j7G{cv;<`RpvdE8^GnT#EiK2X_zfe zArTLYd)COZWtVs!n2Gvz`L8;yW7u-MgaGnb`U3!!)vD)$zEnb}7dW^?K7iZ-jTqxl zUGMam%A}pd`RPVf8@5HHD)MFESU4Zx!8A|0zzAl)qc|rEybEmNlc!8A5XcM;4t{jW zk|iI9leAXS#f*ptrDew9N(Qjq@f^GxZWg~@{EY_#*#U{J;U$5Gie(8N;NSoK-%IT; zlr8s4u476K%|2`OYV|!YnZZk5Py?RsuT>6*R>u^OsxuGhyzrSto&x}JzFebOUMh#8 zVP=aFDuTT*>%F#Xh{n4T49Ef6ux16_^2WO;mr2Ti!Lxwmvu@p58aqGEfXu)f?x0hn zK{`DekmNYNNPtEe(5iV7!&x*}W=7q~?A7r?D2OpDAi8au!2li$PK5ys(pi}xld0)? z48N1uT)Y#ERE;vI8NkyyUNX<7g#8W-EvCgQR!Jh3;o&7Tuw<=-6W6dH_ZjYeRX@$7 zi_DmYs5-|>=Rkx(jwcxgxw)*LVsPr`donhaqk+NYG&nRur!LI!1i=#&GiraK#!K=t z9Xxj4$x#8nWL0+k^<1y(FJ;r2*CeN@cZpA3*C={2md&)ncjoU9$kIYP_cO02Ym$7pC-}0IkO` zzY9X;1Y5)C7tBxr~viqHLJyr!NlwWWXCHxVb&E1yvRCs(JjZ18~9he z1i6hn&rhKP0dyf7_$6_2SPX4=U;x`EpJ4Fa@tmaWg9{nJ77gGF0~~U#Vp}j@%}SQ8_iE4S+hB+iKv9tp;c5Zd$Cyd+-_!8t4OD2@-$nk8C@slO)6&5{dX7N@n&_L~ zbq~dZFplMEF6q=eRYwDa;jN6&W%wW0Sy8R-yjo+% zC+Qu0(2<#4XU@^;jhpGr*bI%&=7jb342EcY>fA+76nHx@8_)5iQu4(p+}TecNWMVS zVaAxCsDq-hPRbS$fD&MkTS})d9H3;nK%G5N3P-D=jUPIGp5AaLLvFyyfaZi$_!}S} z2nR)jMWXMjxOUaw=i@_)P$>YD+2NzdY45%x^!)yV66lf37AexnWP@30-=aPm8W|ve z6(Qbu26M7vKz^HV?leha+qG(@AB><>4PAI!hwCCRl14<6jC7E=9* zL?%dPjZSsrjW^K~k3T87RPjD!2Y58#Z^#a}-F6#2`P7rNXWw4h%zyU{^wYn7nlvEMO;s2-YJSlP=XcwxT~da<86#HhtC{QBnS4% zPl9xUm$-|T@PG&wX~X&r)YsKbJXGk36IGgI&`rbwlq`WQ%`r$YIH9F`g-A znXx)KYjcGxGsY|hLYQ2Uk&2h08G!DT7=57gR!cd@)eE^5YC&GMqby8be!@@+kBlN< z4gR=T-q-vhE97SKv~1;7V#%LNm#DjUm}avMh{Mn);D{tP{t%_g0g5F0XfBnbaHyBh z*(U&*4|Gx=Gut9hHnYV%b@vUCuVaiRGZpF?f)v3ZRGj6dZi=Q;B^v08Qqj-XQ)I^P zk5VPb6NJAa{;gEu)kHMTlS_^Kz6#};X^)Lh(}CkBY0s{`bmZVk8ow~X*PLfS4^mfm zf`*q2*9)449Rp(}E3!(J?@c+Ekwh`cR8qhPE^SyvAUaF{Ysn&Em5pp+5(LE0xl$1K zJCW(K8OqcdF_@#eh~ay1!vtUhbTy~3=2~!qCW?)K2bB=iMNGf1Mln<0l>nH61K0}k zT00TP0??|*gN}Vi=5PRBt8>E*5XZUt>aB82$PLqzQv%#fxJCi;S8_u7D-w9&BI42J z_@Vvunl)=4J#^?$0-Z~%y<*7&wu>N&>#vW{EzE46c;a#KXmEosm@VS)pM3gh+Ef2~ zU~rIr_`}C3HJ7A&?!C7TiWPcch~+CQ`oiZrduNr46lIRSi^X~xOSXK0x_Y~*l0}Z* zA`J#=)VpLI9Yzd3FHP^g_Z}zMLOcTew0g+^9Xq;*rWur0tl!K)7N$LCiH`D;yhE0q zyiA^%6M*nn5TH?_JOVU$BFh!x6l0)8>O>5DEURSzXXYrwAd*SW@it&WJQ(3p=C6r& z0U`PV%TQO-?M0XiuION1G-Ed7_lDAg$- zWcoOp;kX3`>sj{xG{hk-VFfb z&Ac6QxIXvnbFw{{aDQLFWW%4Fo}%~P|9&YU0+*^*dg^?xD()Z+ukBm8mA%;D4D%c% z02;ToQmq@D*qxdU;xx^(OxNHDgZ4Q5F~oR<^ppN@jG1kSs)+$!w$Cw`GgBoL z3XM}G)=9M}+~auZUhSr6X9tB7D`>LVM}_DhUl%jxj(*V<#~F;PlJA!p9y8i978|_( zU=_?dM1S-rAEyKRvdo053@}+r#G|xg%}NUUirnGLBF9t<4E!*O)hYtCSTW2cXQ+_Q z@g$WN4ICORjA1L5E#c?YDPBGRBZPsI5ss^#3mSMJ-UGZ3hGYR+04(G-utxR8H51gR zFD?KO8ZVwd#+n8&0oVY5ZlKris(YD&yp!A}EXM}Wf-I>YuVyU6OO1H$6p`ILF~WPn z@f{BHxn&z(6>9rgx^gLUY&^Mo_3Eeb9m{wZ*qpN8-i;sRKkx&;jvvl%;(?+A;pRij z-M;-6$##XBO*h3jwdpEayl4?k@p9!8pZEm5 z|NZyV%2mr6X#`)CCxIa^{HWZ;<~afKRcrMG;!e4r8i1F7Pw}9yz}Gaz%m0L*hIwEQ zEnP+zc)8obOXR!nzPpiL6Y|Tz;4mFH;pDZwVd-)S6!`v;9F1m~wT1mOldVu1S~-J9 z4d4qc5eaTeS?UazDU)Xa$@5@hrZ$^|u9p@~H=RjQiIrI!!U>V zIPnaC)ZjzfNuRi+g<>I!b@!8>LAWrLq7&!O^5ykVpeHUlA7;vN>SQ*E`f$`eOo0M3 zT5)0t5qKr>_sTUt~rjezCVo-}joa)g|uHu@=3t+~WOta}sBe{&~pjwK) zhk<|mnIJG*FyB3U_s}i|;EkI$ zi4hJD_5ib8IE_PNLi^OG{+{l8+fT^$szLpzukA;6KkJ|=;EzCuvh({K^4&7Xbo0P2 zr+DDxQnakUk7`5x%!aG9jVG&>t5!AGF0@myo$I#^OZjwY7kj1x^z7LTcbXZz8kXNNl1N>h)V*wpq`5>f$dCj~I6)H#1}YmK1mfbwK%GveB|{v53H=#>wS1YQ zmkKLJI4+VSRWEui0Qj7|xDIo~-)c9(_cibVOM2J~;G!m(=<3^P6=%Evh5&E?CfFyw zi({*Npm`RQ4J&wRQXKRz4VVB(yIsrR$E)sac;Q?YFIr5?moJk*8h&pFPcHB0b3d*r z0IuZriUZ#I=Ow<;KeK%K^2g4cIkOra0lMwO4?jeE8DO_;-YOjnx-M8Pz}IBH+pgP2 zyBT~Hj4@-znFWCTVn8@EXhKTDKyOBtDqTvsUB%o6v-!@yol@Ce*~#3IYwdQdMk#Uw zg?$n+R;Dp#n|TJOA%B$0{mde#Mrm}a`GPV;AO;%GN9yr zJ@nv_DN6G`dYR2m@%}QrT(2U9uH$%zntPC1t z_=AQ{ioxr_-tPGd%Fh zw5WT8VjV$BCuS*EW~N#TP@b_r8}Fp>q6noZz^oOKb{T%2Q3}*}c^zW*7>!UR#`_IM zC`;W`i}Bq`_?$onNCWUvMNHKxgwpj4)`ik~3I{8W7a2;w zLr%vsJcue9X}WOc5Kk6m$0wQZ5wu+R9S`<&QP0Xw205N&!ZGoPsEMZmzo20wCvmyd z&_0oUD?K+wIq@hcHw9fXnl8Sl%oM<@IW82W zRSL+6=fG^k>p_DxARlNJF~9goU-ZMp%d9YgePBFkK}#@OCru|c+M^%lBNQkw3(OZ8`i91 zT*+PHOAMMDtd%JciqPTlA{{)RX0VA08$)DSg;_K}rveK&Eb$Buoy@p0xmjkp(|qg! zno03;Ix|OEW_ie|8VoV(jKmqZ=V-c^qpsdXl;8;<%CB-4gQ2fTGraUp@~zJU6XX5V z-@&Yz+2{ox%(Y6GLAXXUwFC`>nbjsbdD+e29AK7=??ghpuP#0wPXtkjuMD(Ro=o@! zmo|#=tIJ6QN)%>x9i$oqS2b65sxB9x9%Lkx*_S>~`P3-0>LP_JS!TI8DK}rtG6OH< z$&V#GQcX4tvo&$$ot~Yd6UUCx(4s*GjRDbVI};rg#=Z4BsV#92k@C{VEFKe{F2U33 zIRQI$cZ~6bgEXBh>P9I5n6F;B!wfz!vw*4R0zeJVQ;k~CTEU2Qay7rNpqEM|8`1-g zqwZ<=E{?AiM^rX2HD1kLhW9jJ0$MGOX@&u7kcI|KsQ<5eN?BTieYr-pS5&o+D-w9sGTKIah9Ar?^Q`$904PF+Z@FbVJ^AEQqJzPs0q+BRQ65D7 zc%kWT*}6s8E;h0;InF2FkUhXbgx{MMlRxvOZ==z&(M6_z-oG%7$ z1PJ!}g1?i#|NKb?M4}~KB;X*4RH{yZ17TSUe@q4;f6&LkGf9!oIE|;XvizULAVV%4 zW_UGbwa5c8&F{wtmQZIOGoYRXFZ~hq#Vm(`aEJjlQ4P=>Bk#FtkxoP_6z}MfWIZtk z;8H$7g*jf%2D&L&ijzNsaN`j9QRRZqArj!OKF8PG33->F0rw9?l_6llA4X;@ALSU? z{n-$eQZ-?l!2+mij;f_uzOE!M*E1AIpCMm%oGRI%<6DfNj|eiZRrtlg81HiKv9Big z31EuyM9Y>f<-U0nv%)TMPb`<5B<^sDLtKS0Lk8U(G+HAAm;ev2K)SlI3?GqDZj`(a z2Yhml>Z)Z1FsLz2UA6G+)F6ibtieaBw<@b`Flzq3N)PIN(BI!D9s}xqpt+Y7+%+;y zWe2*sP%XnX3WiXq~KZOwF&uaxFwDXY+IIwcWgy%Aun3?WiKgIiccuuI$Kwp&B zFCJ!s>L*^{(>MUTRHG%_YxidhbiM$f?x%2xm#ukbiF3%h7GY3IP#{|nP%D)kpWSja zAQ5!It|7k9{Fg>uYPQw&-K{%(@Nc8Ymw0cN~_Tw|cjUnpmI+er#k(&Wp9nemSC z`*Zv@18fd$LNr>XaW`F&-? z0A(CkgBKj>;bP7Ovr2?1TPQn~tY@oN%W(t2KqDiblMu&AfDZSti@I`2j)8N<_Z$Wu zmem>RvK8t96`^2ooI&{SxKI8i@9QkRg4-1dybFyWHi&?XJ4FmSI)OkEX2M-?M z!BKQF;rI4SC1bdtFY}W#)0Du*0`zXTad?C+ER=$oLA=6lemhoT?Ci)qKOEkx2-QqWhTDuNKC+A-YbV&bJx5tpu#Bnxs3nsDLsi~lilPGmApW!$;BDgHYt znb#0pf-vVkW|XT}GNWa{j3K#9Lu2L1BwuKF5jgTgN|FTuyx?}G-UBG=3Gj0A9z+Bz z9Y$Q1@>gKUW)?6=2mnGP-s$K_)PcTF_9Z}HuE;(#_(8LR!EYA(&`J?F9taH5Yr+tx z@&N!hUyn|cU=QSpNX^PMAgdbk_kzWDclA=D?(rZAl6d7%5KX!&tT`5r9OLWwJMO`s zu!4K}Xox2=ecgxnz%w+coXu!k4sU5Y8uDSYZVZ}}v z>b+FiToHBvsba^@9sJM>vaDLSb_37ay;9gOo6SpVyzZWEsk`;ZfBeUi%m;?Ji|$re zQjT8*-+ItTeKm&kxmoyVN|DDnYm5 z2Kb;qCE>yT9MWbo$VO(xC9H<>Ld=qj{CigjHbeNz7Wn;w;}?zWYVzzWP6akZIpTgZ z_@mm!@#9Bn$Bt*HGtnv1L0@k-b*~zsu0*Jw0W4TALRuE)T&Y|1#h{htr9VHTtN>q5 zOr-!V0If;~YMfFT3xIqvvsXsgr7q=_5rfgHK}^Gd9Zv#{GAjwVt1-=tFoVV`W!E8l z;9;Ull%(i%q65vSHkA~>WRdx-f3=gV0S3!z89uyD0OUX$zoF5Kxk-@uE>IaB9{N6C z$0zxczM4!WQ+|JhUM=m41YY$oTu9>%n&sE~H*MPV$lkqsSF5yuzzQTwL8pen4SFt; zr90pUN!~}`WYS^xnha>2NzMC-R$& z2H*@+-6$V7=Zn%lKHoFkqf3<%O{79JH_q>mGx$x{D9$XmI>v*#%pg01w3t`|^8kqR z5*Fdp#Uz!A6FlIVU6ugQNeY#wDCBqY&iYaQro_(}fdKI+KkFQWOqM4bBw;T*IeY_t z&*zCEqsV-=Sf>Np*`-QHHhYYYq2iUlAll+Yes(8Q<^udPlIUf4P zjT>EHm7tR1AeF6Nc+ll+sZixX~c> zF(CLmqf|)nvY+WBl9A8w9G0s@C>|(N7Xxs&FGK-Y-uXz&c;6ueI`F+Z%}nzc@-g%4 z1mF5oX}({nAkB<1m`w9|&-y6@W?SO-3lRo8zqrGpz8u1*c`p>M%u%4s%(jx0{0)Ih zR&p>fH%IKNB%ukzw^y=$#qfNz<6t8a2*p^$cX{1~oX?C&sp1 zu22WwD&@161}&5dIRSYoi__m*4_fGK0Hp%0PV~wyO|4adRxA3dVXIcpou+PHD(jiw z1&C^qO04?Sr`GIq>h++mWvD!yg~nU=^Tv3=pLUUf6MoW>7w7eD9^Y~8x`>&#q32M->gjT^SeX9o`+ zlm`ht3Y`#OjE4_FA4@MVU33z-*}y1=tY`R+mXpVOT_+O)(&(hf*tBTTVmfi+Bz^Rw zAElrBxev)U(9`G&lA#&}4KR3k@S*}lFcjgXbA`svkI|jmZ=@CL)>3vZ&)_i7NX7Sp z&Jtionat6N^RpCSu8ib1@X#uiBuh8dQ23GA3x-O(ql=1x4*n%V8D9tGQH3JbCCPd! z(GIF2BsDeg}do)EHSionkRt`tZX1K_O{D8kG+ zSm5VXPIBMK@#N7-VP=>C2qahv*PO&cxQjUkNq8>A!U1N-SzcN*NCj%b`oqWv9EmpS z+8HyKl#EBYdsL~YG8=~>EtQ@Xh6v#G$^D8urOP{G)YaK>NnTt`n^?w|jVxf$c_AOD zPizEWiLhDjrTNh9z=^EbdgfU-tfl;ECw?)loa}$9_U#1EhypVkfH9Ux z(6gWoql1G1tXjE_y1V*C3r?q=mr~|fhM{A9?9V?g9uMz%&$}B&4J@P78f?0gy&!~G zYQ6*;FCT^ERYSs-#`{EC($=R2ubLF8sh6X7oc@vH00393C*_9UZcSp*cv;B|Bv-6b zup=Sy?`Kb+p`oRVs4p={!P*>!cp03{XPsJVlGm^z@&s~22BSpJpGwkrz9w#BQD2Ov zke)CQlSDaH;+LP7lQqZ;-IDpN60T7m=alF{!7i$X7>E$&-5I9~-8qU6#Q4PwmiL|T zSE$clrar#zZa!pO7%5*%u+C2X2qg~CA^!OT=9oKbWjYrQQlb*3R0a%}0dSV@M2gRK zmhVTNuQn4L@WmEP`l|glN2u=YVBiz?4Z!@I|TI zV8j4vNxcZK3UX?v4fYREPj8Qau11(?zbw}CCa7E5G=D!=PxUATE=QKpKpmv1Fskc^d#_^{GEg&2bB(7LvhB&f0?GPKD*WCJ|Siwro`6FvEy(JPo=4&;cMdT_cEsS$bWU{F)dC z9uw1bHjO5(UVQ9+CLTDhx~6H+g9*H<-=r$xuMuWs0r?#)aBO^*77g{$ zmaDH3Z0?99BqrX666!t&zyZ2o&k_DSSqRgqu_A*j!h3n2fhZMgMP`aYal!IMJE;~< zNaPhoJ{Y3} zv)gh24sFcpdBV8B??3G;(n+{FF+g`#V$_%O(Q#(FGZW14r-)){W|$1X$cbCc_?gWH zBsWF4$ot>{T}3%}2HJ9dlA^=RG)p=DJ3~bV+z>n*kSiE2R)mn=yd)Dsb~Siw%rWpr z!$I*}kZQ*~d50rG0ZVA1POwbXao^QRkDuo(11M|-@mPmQ7f!x~vaDWeb%T-`#6;&U zIY0}L6YqhpZeC?|NxlU$LQNCO04z;kUd`x*i4;H$pf&T;nn0_pRwK;RMGW5onb0g^ zX7Y6PZZOkED&XUsbUUPy_xUc`E=;c<{N#yf_vX!;zrAhSwomi5?$dyg*Fw8Or3T+i zv=2$l@te_TV(_}_wtWEZV+RjGc34AKGuZ6jvs;$o@Y}uRmYeCBXP$HFvTax|o(y|= zc?bg?fEEJ)33H(N!V?061(84i@&R75ff1wQ0;p9dLtQrj{xARXFK{OtY)l9XF)m)7 zSA(w(x_(Dr0}#OI6$nXUcK|O26qb{y-Z03Mg)fMtFw7Q*mW84}lS9D8Z~elbK~kI?D_w4m4aZjZG=MLNNU3zuTf&{Y0U(P6<(PQz_r-i3 z^`G^SX*1*;zw>n!2L=ZIl!?n9@T#zc<7okc*Gju0fj1USyhM9)%*w?=@!xRw>)E#L znz!y?@I898M(ftEqie6ePNV|pe{0t=*xq_8J^l1Ev~SN|VJMBvWd{yO$3myx!0#if z2<#Wkb~UryJ_g#m?z)Rv^G-?9vvS1>>BNv8PM$nLzxSX1GlTDk=^bx>hf^o6?)N+I z)Z=S*O?6iVUz2To7jp#o1Q>nt9`e&xeGIM@pRmBb{vq11b}0|kZqYrRO0?9d7bb=o zA52meDO!1Ua+=ZrmLT*7r)VQHsFSB4~z0vLt2K4|H;=EZr zKzaBP&jPdxG#L$3mVr4Fs!|7^TNwEsc$RpMS?!5(mU@^iU*(I@u}X@v3?gH`DzjY% zqhgTOplUP&#^=X#l$v2s&juKdd0+XGQ%$(QuS!u^Yz`4?F$TQ!grs7u6q6M05An08 zP%xLGGOXU4JYf8xxy2pv4qAlhGVVVeb?E>aFQf}i_lO__C&H~> zmIsw0vKm&K;0b+5fHuKE4Fek;Ah);!|Ii@jgmCIpif60$_{8MgU~>;K1bW5PYYup98W;?;6a8BjH`}He$d|FzBZE zvpqbfzQ$m?2iKqz!fUO)YTU_MF=y@^g_)VD5A^rum*>HL@&{s6j`r{X%~Fw<-_;-z%`i*t4e|b&X$=N> zzY#tfGuCv0QnM8)M--^?wsBt4cQGywkg#bW6kNz4YmD%hw4S06~G22jS}|& zXeWtzsu7^$gyVM8s#VK{nTqj=oZ_XJXbYvBoC6G4IG!e&0Z2M7V%@x&Tift@(0&Gh zFO_l)H$taiW~mXW2BVm2w-@`KsUb^0$R_+Uu96OIK#!5@Z0;Rl&@KhEHKO#OOs zOzaozyq!V<7IGDEEHT%{NK%9Q_-T0we}_Gr({L z<_e=5ay;O@_4UkU(0w60;5}$*kR!m9VXfY^dzSz>wsjy>Fr0 zZof?|(qI#1Bunw<+n7ikHsMT8j*eTazsRwpOYj1u1xeFVb0miV{~ho#7@(3aIfVqL zr)MQISf#!VO4xwOI_1Y52IOP*DJ;1bqO-{e6+4zwt)o}Uz=xRaRWNo??Iyy@^e#SL z3~pBpUXvtc+_R-H1@cZMhEN9#apGG+6b(>Ukq3Dg0S}H>hvdIy?3(7wN;Arp0t|4B z{!>9znFvsKp+;ThAocQu^XO!e_KhM8I81SPT<|Va*^1;~s1+Qqf(~ZM(+nJa43-lU zN%21L!+ohcLW!OPRgO(CFgub*$sZ$Mh3^M5U0)?DY!^%{9IQzs-q`3l>Ot}*Bmsiw z0WYuny9cSr;MCviBaLLlWHWV z(PS}B!N*`@|2Q|z1ZI|A*P@Z?i@U5|wjDrkR*F#RK#g43hibL>zPf^$K^kf-yttV3 zp`P3`G zNHpK|;<YJizpr6%4IeJFmJMPLFEV-!@Al!+i|6c|Hebg#3I4 z`g$mxoS_@8-O|uDO<=+EICk`y=)iFALT&^FJ^|WPTB6g`s03i{?dzhEk;S4v19;WH zRSjzDy`b)88hoJ|FIHYy$$=3oKx<^0o|onq(G-jdwi+0rUI&*1&(r~zKPxlSexCn+ zlo{-Uyv@`6`FY4BTCw7_&Sqb+z^gumFWE(MryS@X)WL9$m*H>c4)$GUwyVHO0lttK zZocVe2`5I$^7ZT2iSI9%f*8{>Sz5Jv72U{e7=V1_@L_R)M>aFfw!d@NE{74Xb;62o zzWEk9e*Bn#FZ?JGH3#;BLDAdSDGUQ8s=x4sFYw?=^U}D3`Um>uyW;YL5-UDx31k*3QGoD8H4 z?g$X*?t<^IkNo^50w9nW-N%3zf#92~QZ7)Y94}KDlTj>~87+f0mhmNK=ls2R4nCa$ z${=CRT#3?CVM@;898mazzn|pSEXo@NBx6_<6ApuWI_IaJP?;uX=J;4);DN`220Z}05G;aJlgdQZkYxrhTvF0UvY0sr zHAf?^HW;-T>831Kvyo|iGk20Fo#@R8gvaAKem%wG=s`Zlqx|~;-d9D#d@azvN`SYq zoOuZ~75dh;>#tb`1KWXv`-GKlyZ&kk72dahxBR_$$uI+8h<5GV zMfqZe)-apcuzn4LNr!BQa^$O+wZhNw&fB*;ESJ9vH#H2XRjZfN&~U$e|MABkr4uI? z3nLj|fJG+<2xIU-YDn?moSm7agNF`^wHR7ot?Fo&0MdZ?&H@bMyaeXo!#;7-^6^qR zR4+SUM3VBF6B=6p=wc}g7a%0BVc@G(7|eX#6yre;_E__EP%>4f-fje41Ra?n;D9bz zX$gZcP@pseU^1EJS%4>lsuOh-D|eDVRpE~r^a3T3J}NNeAv+|4ufKyqJHz1B0YEKD zbQ^*gLSV}!UV&sQ)G01pKFUIXfD2W$Mv)MsGlOl7fwPupHl39}DOL4TW|p5LgKq}| zW|Yr2Ia6Watx=fwQ7-Z1gQAx4D$R^%DIR8~&dYXx(J4JtWcI%7nro>tm!iZ>hVl#= zzK$-+`4iMzI>+ZWN0s~q3c|C3fx4?BO4U-4rY6T2Wc$Rk0mU{^Rb!y1Q#9+|o^D#S zXjpV#Gu9f?&e>Dv>EZ8vUx2P6j5Z+obXP22DwVCJgn8X9OC*Ofo_VdY?AQ8f>Y@dp z1HeMk0#Ivmn}$YQ_Y6>=RSCk05OcuWG-h2A#BizWVwypA7w`M~JZ>K1@9f~e=X4v( zYOU1Jw$xyDlA189;PXCz?cRJo_swnFt{vI4XD>5dM`pP8+H2}=WBbIy3lD``Z`&?X z#QuGIg$)l34AQN)Zl|3)chK|u_laZx-S_(Ix6z3c$La9lBg}HAg-H(#4$vF!etkUz z`2aok*rUQ~HH&{p9PcYK=#W&qM;NhB+?B*i46{$!u^1N_K>d}dWDYB#qE{tM!D>WG zwo4Kme^@kJWZi;8e*lqlsJ1JX_81?7S!kZ5B5;%$Th7-{b6F?q3?Z_$I%B4K0+R}s znG7`ka)4slX{sgj@M5J>K1Zc$FNKk2u+SlqUH)=Rd^ZEdAmw>HcLsT{l>lEGFa3KQ zkA^6pU6haGXV4As)G<`ay~>>!-{kM;KrkjF|bS zLJ3Kg*@Zq*nB&PQDfbqPwzso`&YV3h2Cwd}xMP5VzRTCXbn!Zxo|=*@cqqM-%O?#N z6X>&D^yCvyOT-rBr@p>^ezs2LEyzS@NPnn|5e6+MN-W)|$_t=H|A0=bnZW8fNgBSm zW@3G_q`C>X8Y!ksR<&OJZauK!Fdy$R{_H`1J;Cpv#PP9O)Z@I8@=jaey;8xL#HD60 z|9T&@%WqzH-E~V;lSSq-WHLiX2LOx4J2E1^z2eER>tgbp?b~k^DFQD@4%lwhs@0O$ z6fy>0@Qwfj#y$~bapJ@YNiB)vVR;A;MqGM062EkbS>)v)0JZ99y9j565e8MZLw-4=Y$9I@*chke({J1O4JxC>ei5UkP=k#ck%Z+sa9gf+tJCu+ecZHDF^d` zYX=5#-FQ-yefTB&d5q6xT}Pg>sfFr*)0$0!+( zD!D;QF?(E^h*CITL@6^07OND2-*AT6E%(3(zt_!!Jm-hcE`v~x89Hy1VX`TX{|p7)JgvAS^n&M%)GzP``XKY7g`Y(+br+p=fi+p;7KQ&VvtGJD3@k1 zV&)qzgeCb+jaLfYaX%F^%=ofFK0hDLPF|4ezkwP9T&O@>?q+~wP>P+Hq*}2|)o3@R zg54D7^XTCt1`3cGX2s{Z#QmbLJHfzuQj+0}j10+7q<=(WoMlUw3gCf>VxmP##4256 zm0*eI&Ylxnff}*Iiy@bCl9(IGY2Xc^$!Q=TXw&drt#YD9H8s4N1~IpMU=~I-0JzMr z{S34};J+W_$>3?;e9WxKYgw%Y-j`K|V6fZCgXP|-sj07T*sx(SBmuaSL3V&n3l;*V ztKJC!PAmaMDJ$o|ydKOp;o5fA>F zQ`0jvJ3A-F7%Afd!v_*NB8LDuY%k!8GTCL|2!|wq!53!0@<${^A^coX$gx}rGgk4^ zKh(|4m)Wf(1@}wRl4@nNzWhv6EL5VY@iNWzEoOjPM&)YJ<+@gLST6%5(iL{b{Nnpc z5`G(!oV4MN5DkU=G~5}cb;~*_!^a-Wd7t$1mX3E#O_Dvh9dr3E4_~vueQDWxE(?B-TMYFXitt`Q)RwO^)mq?^2 zX)fcPF$TCioj(V*+X3ZTd|hF10~=noY9&vWWAwiJ-{&mS$|$4>U|+s$wJcY`95ILx-Z?PXN4*36GWhcd*935&LV7tQ ze5=rF=P6XLA^F9C7rucC789D@|ILnQPL zRVbaGWp+46$*Ba*PKTv9C3NDN!J6<#)nAp0yU0lkrW**9C8w%{74yCUsD56S7kTOK zD-{@=%QQS3rK>hZ=v1mehi7>??GMo$!`C7P^N}9ExM^j1{3n>T`=MF$QoK;%dEd zZD*+erscHcnh_fN_I~O~26+DkD#iL}yxK**e69VpJVkS7ctwyRri2tP0>~qD;oFy%ds!{PlVN~55-~on5N+MMi3-Kc#hjb zq#61Qnle>@s)ib?R;vlY0kWE>R^8Ol=p+RcFbF#r7!f3}mE?HrEbX27;t z;JqRmz>k-GyVk5(^Hv7juPs@!WF-cP$_xNc)p!BEFq%P&LqZ)#_uVD>EdUw73=jtR zf+cIf1yV+W{Q{_W?08OmH37(CIElw(03%l}3~dF8&BvfZNtcLZ{0i|>+~3j7Y}qdb z9sP+F6o@aAay*sXISPueZ-AHO@b`pseun=>rPz{GTtE&28Q4gof^b;gE zD?&8G+n=4wF`%N(Ta-rn!jgohkVUjrkoS$;Up1+X=Eot+V73zR%P&95l2NgY#5hjw zUmxG2ILfpaYcw;)j5QFUFcZh=$qDjhGZaA)3|@-Iu3Jva?%YBX4;`S$XjWX>0J>v* z%upprOF~8JsGVZgeMStJWj?n!Pa@OP6Cwej1bbCV8C69;$MPOQGoz!U^!nG|B|g_# zSNJ#d+$WxRLYOc53${__3h>lY=bCgz^;?tGnt<$1m}DBn7+`_;hnOTh23E_zKgq9C z>gk}Y);0^gS3L7&@ZGn0^X4}*YyCPimG#hcC7%Ni1ZcO2YJ-*wP{kn8iWM-HK_3Rt zuBhi~fbI)90tPln6p$nU*jTEbJu@nv4=~UGjAJ}N;c67==-@#W5q5{XwpCuzSL=o~ z)D=TJpb{mhiZ6=t~rsM0KzlM|9>0LGuPAI|bcSt19d{#Qj@%HYJWHMOesD!{4P zX_}sjFsm#&-VCOz5P(;VZa$s}O1vyC(~5xv9X^{SUo7Ax;He*r;Ep1*tg)Jdrf+|%31$IpuDU1BiA z=f1a1q;CpIQsNuW07m(a~{aWMt&c%zD1UtoIrWGDNvypup$`ofbwBtxf?W z9Nx#050Q$GC`C-=V*->+!8}y6>kI|JR!iUYDGyljneLt zKn2OS7%<`IIyu2WmMt)dMPE=iPJ-hA^eEF^$kL{f0XlW^7=@*nP?=)zoXC}^cTqnT z;I@Pw1GZ{5|^;kXHL@C#28PgOBi5tPU^<0 zQ=9C@8*h?lg@j1)c*iA`Iy9gGD9Gm*e)UbteQjjbhpuWDES>US`risJnVS z%YRQ+8_8&_Ppt*sR}u5&PJN2m>05YN`9%iD+cgWScbNmasY|J z#Gfrm=&!##$E^2)lokibII+YvrvRga3Qjc(uqdBX_A(UqQ663c%;;ukeNvgAI}rgs zUK08WaK_J2FicYu6MQ|(sXM~JUCB!V97NAy`5%HSR3bzLgr)|aWIjl@nCM~v>a0K& z5X(P22GUH2PciThBuf+v1*nf{G2{}kbNDO6Z#P-+%jAHhHyOS!bBKnkMJdRDmWWj( zJa~FGNwr*sg2?+@W!B$Or4`$*qRvI#H1@sS)Su2#l#hq(bE#;Y&gE*suet8c8O0f`T_vd4U+i% zt6%-90IM3sq^4N?Wlm}mA?S({GrS^B^G_t0f%m~<+#e6AOPB>&3%sv-@Z|w8wr0(m z`;H$!{@Lm2>3cBXpzlhx;SC!EOjY+)pjGe%%T)s#v|mUMSgJyjfK&ll0`DQ}3G4|j zV@08PyliK1i7@L;gyPIzgCZY*rIt}j2<)pCWFTWk98FMw*Uvs?gJ7HFFGy-bL{w=4 z>Y9@wl7EI87WhipNyc4EBO_LtW-A369~-5S;U3<1^-^uH3dw^3G7_h`*%S>f%G1c= zE;>7zqX>0Nl$YPn$4{q3t46BDijOCR5Kjzz;Nnb%!8JsEJz)X-JTLR-7+liOIJ3O$ zmZEKb5pZ$&$gR-9Y!-=cGDzxEVqj&|?hJ*+r3|1pIhB!!G9NSv6rHSPsbdj?>9&OgU`?+RKXCfoPj&qOD9XHix#D|oe_SG((?Ejab+v}VscOLJWd=tArj1B-y&we zJh8x)u2L3{zU|v@qI2iZ(0%vaD_#rk{ITl!^5BCH%HIH5(`e>SV()VQN`=E=M2bDc zZ#~3dyOY0@GId%Dwib9_Gp*j)=eBIw^6sNYkNyp_)t^Dhct{KYRtzqHC!&||9sm{W z7hVusw{8{b0owt5!IBZFhN=}{$0$Vv0}k|E02Z{vctdDm^Ck3*xs>Z;9+ z3JeW7rk)ew6QB45O-@b<2scY+Uk6%rtb<^)V72^u5-eABT5A-uz-z(RVJn5@%a{Kw z50r^hr%wGg*e*0)^;*Dyy!z^^MY~m?1 zojH4k2k#jPKaE8hRKuua77%S$;wWnMQY*fSXuws}=PGBNY-C~xD> zB;&Y04EzxvgW~xa3Ur2ef=N)0S!mH$6wilh6&iAtPN$PJ&=I0YA|}Nwi^##tY`4G{ zm#R8J6OdH$Sze~6%9NXf5h^W7X&8T{_$88BW}|+dq?iTw4p6X%_dPR9b59+l0Y1~7 zcn>pkzAye5Zj!7(nw4iLUYOzQ>SWL@(Sbt;#C7cOk%KfeJlH71 z1c1cEx?;u3dIq}F^tQLX?P8S)gSkR-0@H<24PFdx;0!t?dqx?^pF#RW1TipBKhLkC z+0QK4THv+K1-@V+%a$$sKX_oBXNL60V6PZt&~2gjfyILTs_qLpLhH35MI=}i40IPR zToAwoAj1FyKVN(=m(MX~H@UAqx3y>to@A%jvFanv!7+wSLrIpe=KFP={ zUIqyGtr(?y#5WWMwZbJrH)Q9TdmR1nl35?OXAvw+CNB^o@1CfnJ+Q0RwVfjie*MC zsQkbTR&0TMEllyN#XO%=UZTXPP;t&5?4IvIC?28S&X`Oph13+y>>ejywoEI-391#d zG?kl^su*d1h$fH_h_7)iWoY|wo^D)Upm4RwD})dcvW^`;<9Mj--$xxCaY^5ZioS-_ zL~niTPcRc66aQ?iOu%-{U-&%p`2FV?Xs5Jtt_4{O zytcL3u$*Kd{SzKY=MNt~{I|?{ zpy~Vs-k8nx_xDP+E0l|ou+V%_>TAJZh3W(qVOu^iK#2iRLW!l$Z#}w~0Wshtw+YDa zPMSv~Mwg6b09?Nl7=h|P#hQ~9YnEB%fujd0IX6ovBvGrECWkd2d4A;!<&xy1-Mecq z4J{j@nYmHP;oB37OJ=k%Dpmx-Qmta@@DvqOSz5bgh+@o0i_Bs(g&NHu??5C#r93m) zxja?#LCP2W%)BF1mP}*}r@1ou3OVkW1&T)ax+CR!p?gdeLAf{S^B1TvJHsGarXdDU zN^_Z@Ef}FB;V@o$D?Ysk^(ABFLqX$x(M_luq*X zb;Y}AY1bgLZ-z!x8unEv!M|6|m+0i=SsGc_Ny}IFQ!&9Ty$EYR9~r$a8sfi0;^p8& zdd4dJcgqryR;x1Gt?;(IeWjEYy}MN8<1#ZxNO6c~hu#Fr3Wce_lSMf@MO6T9tdqHI zl*&BG^b~Wn#6M1N-_}nztPb+`MkVMY5Dn7t<0p9a@f_{kxl0N@BB_xR-Q^dr1w1dT zQr50rBbqIYrEWJnG^}`d!p(f;D_{8|e&+B%*i9(6X?<#Kv%ve(H-Hyn-?wbp@_KkY zOifMQh=?ZWyI?*V=_b`EdV2+w;lm5V96%XA;Q;}|8o(JK3?_wvjKu4ZASC@?%_oV> z&B_B>z!JF(q`CyMl-18m-IIis2`tyySW9 zD-=|J9v>f*XJnSP0q7!&+#BEcMwuAl!wvsja~m`~A3Wzze)5z5mH+%-lGLbLeSyAf zn{5_&Ut;iO5Ieeh_3Ae;@JGo!s z6I>Ng7WV@IbDZD5`8Pk?G@c)x5UbX&rl+6VLzP^HuDNPCef5E-=-ZEdlYZ{rpQJ^d zO9aU4wmk-3WI>Bkj+yKE=lQx0C8ge3q`!k1epKqU`I$inLOub^aG=63_ykv}7-ZJS z?9?BM$~hxbS-LPsxnvOqk*Qinp~(o9_*Fp7G}I`|j#GE`Jl(Z!fZlxjO6rIrI&9WS z79S4Mp?wEs5`6N>Cuwx_g2+G@Qz-iDQHLw(10VQ+Bs9Xa!t=xP&}Xi|3NZfS7r*$u z(b3UA$4Z7LUz-ELHVeEjN2@0_nPc#Les1CS@LjFdUB<{UuGNh3ez6|gMaO*6c^g&X;h-Oo zk~RU+fP(_w=}d%|&AY|LZE$eNSX$SN$)-Y`T?tygYJ?8(wcNb@2D=o4=VoYlc#wYa7k@$SJpx}~ z_%v&k>HWl{$&o3hpnSp=!Xk*=B+FWdL8WCT2bVjhCDI4;?!6*9>UA z0AB#F22sGnL2IsQ{ss(S3~+!omZ}=VFN`V{6~>$BxX7?YGxX6VE=>(ksF#UXa5Z0u zR;$)CUzvs>Eg2(W(un|_IXy#|BHU@XMURAa@&mr7u#&IO8IP7^JaS?DLy9Z$5bH z)TzIpnVGp3)d^66Sp9tgyjYgrefQnMdJ)Bj6p?trxCWWRtfN&dAQfaq{B9djP;eV_ zGE-gDUXAcmv*wl?Xx$;MCICyy$#9gu``z!-{rBJBNKxp{^9m`UpMh!H*3I;-?>;CR z?QOSQ$II~oefv9)(trBXKcPo<-$wuLXWm1rmoK5YF_Mz=9T{fkCBFb>zJmO_RY?O` zrIJL()%?7iN2qZnAhp*3wo=2b8sKf61V6QEK_d5Rxk(C^W~eV#rfaTUPS;<39S!tH zsG6UnVzx|Ce^@~K$kBtM>B4gX`EjGs2(90+&bgm_Y=i^jx!{@n>aYH)X8aPStMY<* zpR{DoKmF4`{kO5Pv9IG<={*J@TefSP1>PT%?#qL7&)T(XU(ZYS|M$$9Ge4({R<%V0 zS|F(oqy@MzK^sJdGWhr6r{qNlg+xOP_`{AN&0w}*yfvdTtQ&CkJ@cHD1#7J?vs}1( zQOLP7@IZ@(BmybKtZZN=a;fkV{NDN$fB3^CCR6Y>q0B&j%|Y!2iTP-KJwqrO|Ez#yHc zDuX$S0~2)PLXP}=T;x#b?}*aIEyHxx>V6vRj#IUqq0(%UBEhl*eN4_y(c$AKBrxSE zzUQbMJuiuG{JCg$erKfB*ONQ}@4zZog?8En-0W$^#G6;nSn^ zzyA4O=vofXr+*R7z8X0k#aOp^y=v z4M4AEKpqIyXkaKtOBWB(;P4{qj`}E6D^fC*qKH32(O`hm`7B)+yFh2pj!FpdBj5i% z%_Zl=NCtmf6svS{4A&^f_xF}tZl(`@-~%EN;QC=mdtqVJTEm#etofOT9(w4*cxLXE zgJTR0Sm3qI0`HGodg$%#{W!DNXHT9y`PZpb>N+^#V{pU3_Q)fT2)hFF)q#w`3wA8! z-le`)ReW#}Kv9w;;s~fHJIiiEqpd>(sqYuSvL2?|0A~0CH}bopgitV0|J%`rYjp>- z#Y+~`gAaa}e*WiwUd{u{a)&LeWZ}4~W%JNVSJLb6ypdA5Ir{%T`DvPZTasS?hS$+A ze)xU#@FS1YqfhMS$z+DU|I9P=vRbQEM#VqCW8A_*; zl*=Wl3|YZnqj;F8D-osMt_1aT#wiglQ!P76g$ncLaFC)2X43rKvGdb3J~>L~&X3aL zPdq_~4(z6(p+UNS+x2oUQ0>?8Y3BRK_x2s{cssq38F@CFk%wU_sbL_as35c1yT-@I|L5%N?5}8!UU&~c+l9OU z<_nNh=BX(Kk+58nmrG7q$NC?{#$DHJj=2M|aS^eMe|ESEd;T$mui3>EQVjQn)i%Lm&vrvR_ImL%-%%nAvSS z8l+AJ+^8=kQEMnMl+8Jl38LDN{j$jHcy4Z#l5-ilaA8aWB6jWCA=_--vXue8Un1Qg znZUpZkj4Ff|NDPZRv9pQ;=Ze&uE}r}Okp(Ri8J-(FMs)de(R)8XkNhUULDwGn+4t< zqx68Ze~T6^`c)pp4^2%?{V{{_a!3pC;YHCz1XAFoOIk220I&p6)OFcLG*mU;DEX~M zHFuQ)fG(s2vzkHGDD9)AXmsBS^ziL1l^q{qW_R??cfFH_hlT~XUH~-pi3O$3-+1?( zl*yzRI?MFTlTXvGojd3!?zx-Z^rp8k2;WP0y?%mr?>$D(A3RQD<5N=ly$U0mKi~v^ zl$}Bs0O2qySMc#e$O?p1ktKLN)Wk;_697_BqEyiI%q%nH6rDM9iuUf^N6+s+AomB+ zW=ltwQP5A~hNn^sO#7B8a`U@EJFtEXY7eIhP3yl}S7tne2 zyB7^;ka$B4z%{)YOcsXxvNdC=40cGS{eMf%=%en5BJeka{_`|WhgjqB*P z?dxfLlEL!q1iwaUW-3h?W}W$B)=`iBWrEvnm;o#v2ICEh%+S?^B9YEy1nu|i=q#@m zj?tk*&odi6#*8^A!4QZR#KeV3q#_ebP0qcyw~yZao_EpJS6@u&h@2Xl&Jm!DYu4w4 zhSdjFC7=1sXMQ7@O#Tc0w#_yRysyAk&v-S;Aoq(r*gwl}eUyQCyZVb_84Mp%_2-3_ z2;fjgie)nb6O^T@p8Eoz_gxB(vJ7U9sxD6owDl}n7XdurZ|tvbOrjtB;0Gd&U|HU5 ziCr$$XrRBJ-ge(x=o=3_NWDFsw0ZLyI`I5q`sO#jO5c9qTeNEB2yNN2k=CqVPfHgK z(wbFUDOe4P8yZUNpnN)lEh@+#j0=!zK{Y9}j)~~xiF0)J%o$0~c;Vc*$Q;O)w(a`s z#TPmf2{)?oLbAv++eM%Vq6SeD5BY>Kxk1atwWHzM0j>aE`0biZ7opsr``qV#mnXo# z(Cuxr%>wT$nEloP^C2Gackt`y7yy2k0c@jIm(>@5S^?5wWLV+{FR41~23Qji&2rw# z=2W(D`}?Xyp^aU4Je%ttkChmqMXOZAJUS>rIcN!LRMn_jt-aN#TBTNEc5tkoigDVg zTCEzTXv4W;HKJ6FGzelll!l;oa^Lixd+$H@eC~Pwd*0vs`#jI@S?_N=&-aH@c3BJ6 zTc`rEZS>Hc-daap8dl3)3TdlRNIAQ;Eill0?+o*4Fbb3Z$1R-azIpf|$&BhrGDtqLJeOoQ(R3mCKe+l$gN7)M1FV<;YDIY9WFZX>svnp+@z#x;UW`!En zW!@ii0X(z$G5RjFe)Xc|74K)9yfP+E9V_3*zE+nq7;NtEpJ!pCqxZzO`N)YI?c0KI zXbprE1GsFQ_V>s@hDYcQN-QU~-A=m}kh!vKy=d`x$P!IdRF{DN&ITTF^|5-_cD1u= zg{;zOE2ou#(XYx6A@G$oo&>3;Z>HDyn zbO*&NI!`Cw270}mQ~sbJ|Dns@lWS^67L%+st0vl)#mCY6<$W+0o1b^p$z$w65(IP! z$9st4iN};`=VsO3O;q;we*ez6e9Ie_M8dJ_vK<_U!D3NJB4|yUv8xNtC9mUM`_QoV zss6>VoWiD?>#b5}&9`T(wFAKRQKSQZgdKkc0&RZ-jt3C156X5Vn8TKb$4ZA@in!SX zpm!u9CzZHlr0u1mmD`I(Mg>cwUSm>Iqx15s3PsO=nKz zsY{OfXRW!DYHUl+8Z+^=hFCT|+sdwcdIXYxYxFO9y+?`QqY&XQYi=z}z*mMHZ$&Zt zi{vu52rLyK-~ro4k;$z*no5*m&pdq$FdC1n@3(Sb)D)B0TD}cV%CCpFKYDqsz07CM z@AGDk&*s=qQc7)N1zhI(W2aK(FAJ<`#SaxuMm?PFceF@2p`Vefs^h7aJ(i_iFtY##SB{dcR)pcABh`5d*>drlkY%C!mRBYS1|ce(26cGLWbGHE zjz)2k&iR{`*ZqNvPa9m#MoIbtRFh30Org888n*aJT5~4-i3n>OJsFUC%xVg|FD4g{ zp~7|I_BNSAB+_b{(QJFHING$q?BhX2$Rni%cdHLEw=8a)TatCEgC8%ak@cO}1-vTR z)$kI`ML@Z8IDc}N=-5QXK?U6z#^0zXTsT1IU5R{;CtB|DRXH~2CeTXW#Y-n>r@L~` zJTR0U9wkk4#&ISVZxx%0$@X$F(6z3_S`jNtfn?kJ-qs+sluiT!VK_12jG3#&AGR%i zev}%k=c|SvYbp@#P5IuaL`y!r3W$nvskdEdRbTy7AB} zG{c^tV_g98Mve2}<}cWmTc;2oxQfnP$*F}^``~eBm8q4buS&4t4j$gc)-QFgo!N)G zAy9ex>qpzem}{-fX)5y@?cmd*D*(yu{N$4tY%TKMwQfd$fa8bESb636u1fo=7wVPd zq0LR`Qy^2c1y)N*x+hGnoU zAwww#Xd2$r3lQeQHjT$X|4%d4h`5X>0yx5W%!Pc z!x7Z&Uo}(@a^4*Ae*exQ>XIIlYbfPeS{xi1e{pO0y5%8pZf=e_cQ_x|nGg7vf;Ivp z4nw#5ex@GaSkW!=rTYSh^2(XAZXpGMgaK8v3NzCTyO@EZG9IU?j|KY0Az){hu0_$P zyY#P=mWfEw&AW76-V9|$XY21Kj!&~Q;+C&tqfbdPk-vX+rtQ^a`<-X+Pc~~03c%F4 zMUKLNi$ZB^MGz}4giK`05@SK>=q=;1Tgz8lAVpsWP1o$u&!JNMCsfA8MJJZ8c{czD zi)ETeB#T>c%RhV&@5yUb7{^9h`r-tf;6 zoRZ|bJ4T^w^nLo2QDfs@dcX3?vS4gumfYl4CzW&x8%swaI%3zJ#n5(#fP`?9%hg{# zr$@+|eqLKU+BM_;urAHGm>;B`7J<_jNArQxgR-Vz%2jcxb!Iy-upTFJsytEK0U^1O zkOVoxpvGe1Z_t3@>OxUUJ5)`gG~AxRxw@g3o)s4E;{n7SrVhuNyom+(aK6knon?bq z&$xK1tn<^S%=*?=rug)otie&ar11H=SX*`Ex%%#M#=I+IzS{BjD5H|>6xN4w=w5haxGb$R)fF(^vo_#`}y+iP~sgL5pnS>QLQf1OV5%HLji_ zAJ5)Gx{ql)gw{_gtNs!HsA+=3EW z;yj@}NTIS*#|y!o&}a!V08}>N!urkO-x$*D817+f6vLK z09w2Y#ih;%YVCk|?Z>?tEg?l`;vLR>q-;6bGComh^f#eI)ABjRFm_C?Rc>QbfC zn;b%gKx|h@4ykTn1du*NkDI6Dw1`n<%DVYzymPAN2lSz4>p!~O_SeS8$GM^|gGSVA z-UI=mh=x`5AyD4<6~Gv!5WVP>i-O^FDkU#rk|>4KfoBHsrf_sXyH(7U1g27;&!JjY zmJ1pEVqWF>JXkmRW=uY92>QxW?K6Ce=B>WOujjh$eWRMS!ejb0wz9p842i!nu^>-$u;O$(fk65M+2zX45EDWm++!Fr@Y^hBL diff --git a/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/14.png b/src/Web/Masa.Mc.Web.Admin.WebAssembly/wwwroot/img/apps-eCommerce/14.png deleted file mode 100644 index 85bad7d62aaf6076c3da6df37efd7b0322a62de5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33069 zcmd422Q=JU_cuN|Q4=*~&EjS&#w_(~Kqg&fH6|HH z7dVq3HyCIR5)fp92yuhJ`~pHkTugktASe$nln2BQ1c8MGc!l}+nEre*qepYGuoPC8 zmH%@r^fxhPYd1G1VICe&Pfu=7er`t>D;|)LkPr_q9}gcN5X}K}^>%QBc>x_xj|aCBh$B@t%k=Gntt#j*J)Nu_-5g!59i9H_@*f8KtNFKm|IiNY+y9>Z9~1Ep zMmL1z|6s+hmj56V?uGatSbw$r#ftWUu&krG`!7orWdDIG3rBN=h45d>3WLm{a46iu z90=hBn*#+c1z8b1;Yhl7^;mBhZrg%>?0s z=KOFV++2_kC;;QL1e(G5pg;>VUN9WO58}0ef&bB8)dhhL44B>DwUQI$7vz_c2JycuwrKVrv);Oc8)H} zjuvn+X8ym^6=Y=8TpTSCcIbxR8VJj{z+rB1S@c_snU9x`7sx9F1o3HtgoOEoga!CH zc?E^}dH-NV%R^Xt|0h-fO%O;}kWW|;^dDH!L23bWgZ*2~zg2K_(R6gQ`$ssd{R3A_ zGBUrySBQyS8D@@f_ysl&W~N{67gqRXxDLX?&035ZJw0e8|4CMYJ6Qdu^YNl*`ZxWz zNObaWL6|EzxWQeVT+llHidMAUf3l!`fyTw3M9`l^4Vb-?9o$t7?xKe9f}=G=Pv~!f zy1!!2&ixM&5I$b?iwE@U^Urp@f6@NWW-SK<+L352eqmKu4*j7GcX9o#8ZRFoT9M!M z-#*nqr&F}2z=CLq{7L_#nP5&% zb_ny|$l&pCu=q21{}pfl^FS7G7sTHt@9)F>r32Id$pQbRuPiJq1qAuQU?2?4YYr3u znOgv%W)Mqsnz95zgv@!(&3VxX|9{9=|I#9e1s^&kTL=IJAn2Sc0EU2oP#6fEcm??Q z!B9&+xDeFxf3WDkX0QJ@(DyI!_6w5#%=`Z%%Kv@v{ht}{UwZ1_TNwXa?EPQ&6wj}s z?T;kL^PltMAKzvFh-LX->A}?vT`~#(ce(K2MdPpj=)&V)lp<#4ATtXHdQCQiK*2yh zxPTxK3bKTw>sS~c9~dskD**nTS$|1${Qpx*`~uHkdF-#+ND5ui{8}7b|4g9LFsr{( zskjiYj2uK(KvoVc$SVgCkcZ02%JcHd2=Id-yi$U4e4@Xn(hl*r9uO%gFGLQ+&&vmr z0zn0&AkzF$KCm2ARthXDz$f%ydq@e$%R}V(rJ-P6c`!PVc?E>zWcYc}0)*rRWkGWP zwZ|VDg#TR12?~Ju1wrU442s?q0EOTJ=u!-10SBT*fh>9XAwq&?pnq2ujL!_r3;La1 z%t1hNAptX>kdPohkRJ*)7qT?x7qH;x|955mJAVClWm!Ub&CQ@N*l$J9MXCT4CjC1ykEn2`LQ4i% zNfXTbLDz|JV_4BV@!;!8&`DP`u>VO0lI7VQj&KP3CexFk4!PwY4#?ex`hrb{%NOSh zCTZ`k7YcO7wZ?InUhwLTYn3d#?M{5*e||4v-TU*a+YjVlSE{Jz+^Y1&W4-51>arg%`uK= zkKVo9s^3^$T~(f~acrs6+^a z)IcZS^ILrr`tDUzP|(}uzVADSwG%Ghep*{SIy@YB%FVzz7`C`Xc^c&FchJL@_Wu3d z+>#Q~?%LXWkDwnS2c5X-!v@uyj4z5t=jVZoEBwM;X(=hLKQ~KmzGe#_t95IN3Wp(= zho65L{C;)7KgRH!^-YGWmm7&UeRF%6n~@(k*kR7vajF!yKUHSFoaVW38*N^keKM!$xMKMd z#5v^HHiO|+WXK%gI_xWQ#req|eZj{AA0*Ix5y4 z)YPg@mVI;9iPYu5Y9xLOpmB+ejI7bHI-|hYwZebp=ozH4^HoJx$a*hbgnt1qxZn!% zB8T)5MF4(r&*CAcN!S~i+zzq4;Fy+m+Z9pl9LnIx-KbrSCX%0Nw|we-xc#UD(vkJ- zCe({~-7B)tDdJYVydVYSm8Y8M&1-+cO4skuFt$fZ0D*aw(?{06&f&YFDWjsp6N8I*!cMjE5u_?Mbd2m{Nk+%9_aOHAY!KekY8R$pM19K+# zr#cb3G0s%y70$z0$j2PIUqm=FVpLI4v6z&cd~qwV4Hs7>Ao*4;hrNC@?a`*=a%IZH zQ)&;Ok*%2|@#S-xvjR-DPFbWX;8DP#rzV7|DQDxb(!bE37}s{}zHRd6^|CMbru$gW z<2r|P5#hx|g$Cn?MHh*qqob-LRy;#b*N(j?<=jS{KOkMNLGz>C>ef22qVHv9a_5{n zS!^$K_LUAGZ=v_B6Y^X=t9;@!y?ZpcDHc4nxoOAYeA+V-9r?A6xYCKN6!&7pdZh&M z9_LB!+}qL$XvzwF!Mk5{WB7d6o3mT}`t|T-;`i&4@7D;da9pnkAp&x?E-nWxBK}ur zA7Vpmbnx_W7ryM%m-R*Zez4}qVkp6~t=f&l^p7P7Y%{>QWarh9AWfk-S{Yl(0vP^e z{P4DVj$cCJr$RE9#Psy^xymO^pIFv6E!ihN;BU8gxZb6{kTtyw5m4sU^-)Bf2D#$u z>U0_Cykst6Yblkj%Hdk9$gO(2ss*^#pOKZDLs?JYkLXtBwf2`F4YaFlzYudY6)HXG zm=9VVeDwKIW?JW>a;`>6q~=AB+t&*^VN?w+E%BZLi=@vjAy)g0&2%;YDsxU3ENjtQ24To8_J!$%D3n`V&<^)-BX5v?D@e}m-o9GB7P~GSFwRluo`J<_4IRY zMiY&FHd2OcyuAsFHE}TC%@Skv+eju;SZ76R)J=t2D`@T9cPLkDQI*ab6Yh~!7QVpF zd-3Lkuy!vEyVWG+{rekKS5(T4y}xr=X>IM56$3+En`W}))bYb9&4T>Waan_KN|KI( z=4#C%_v654DSkG-1@Rid?e&>zcHtdy{r6W`n2W04T&7>hnOr}{ikk%OnIQ-I`utYk zTcw|CSgZ8*_LiF;A05ehd>j*YtdkEk<1A@eI4#C%@mHyfRIO3i_8z^ux@vL37Zet8 zO*o~gl~3>i+|wpP51qL688GNzGJE(Wfv1o zDmt=GfA%k4_5YMt9Od%Z0kOj@sj`Q`8)TUZ*9=DwLP z+5>8T-jIIVf%-kRVokYoNEqo-E{IGiT-eH{Sx(NeNUZiwK1^%jqPTTE#ql9I`Ofp_&*8=(BDX9+-As-_tg;Y8>CxhbrHymTC+%2F zkGb7t@q%@qM^VTL&k?B>m*)6V#p0=2=Ze~`;)c$mng!MiJn*Zlk@6>2BcGpU7b~>d zjXh;1@!CowDy#Xf2XD9XQ4a6CI%qogTk<{H2qUsE&T1v})l7=WSZV#@4}-z>HgZ4Q z^j266E@0}z+}t#SK$S+b)pYf9HVNA06D%)cDW$Rmt{zSnpz9M>0%$W45z(vmuw60{ z&mD^3BgQvUJ_;#1GvGOJT%v)Pkvcud^Rl%^dfJn0R{ z-E0QwfwEr{T>4VpXgJdn&vV1_ymGj*LlCnOKben@&t-Ht>+#Rr{r&x7W`yLBe;Zzq zC18~-``!26cBsfg?Vw)DN@lPVFnL`c&@vHKlBZm0(^3HcOfYLfSl~F{M3b$?9&xxn zNLaaXbA8#n&!XK(d|RoDD!svj?2}HG#)|vc#buRnVIgIJf!rI^4@Je^Q_9E_2?&|~ zhf0R-NK-W#8JQ2_-Ur_pXkt+A8LMWcL8l>L`pziuh)2yf(H^;zQ&jz~&meV`Iq4Aa zT|}kXd$RR`H1c~ldtsex{VA&!`It=xBvzfM$cB4w`&k54TsvB;ua(#x|&G|MPQDe)KnE?WJ>Rm6lptIX%8+6hc;xlD5 z`S<0Y@Xuu1sG=}2s!<-#a&mLY>8^CJa&1zak7dCHI{e{TwEA$c=9}Bi3w0SAm;!IV z;tr^ z=%-OAp0s~*J7GEwswU299uODWF4~VhD$u`Q`9LKL%buXRktW_*RKJ0nFzcy0X|;!Y z_=FVoHkJ(rPI9r0E3thNo2Ywco1>ML)#|B{(U;C@8d}n+C)c#z8ar5pJXP=>kJCiE z^#=hIgB3I7H2E13R3!R=brKZSEA#d41w=7e17shn$R8(kh(T>OMsJBM$-6YYC14;B zz^DWmTQ{;J!^f!Mrh~Jf#0p$nx3nJTyB{+* z6bL~MLQz%UPtwZt;o-G4m(q|E6*#8#3OBHi%_4xBJjPx7&AAnUtPN6-kBnE|)+XBPdZMa2C}N}Uyx85sBxE#1ba}EJm%^LKV^W;rVC_*IVoCIh z-6vCPP1`w+hS0GX!%Z(zYb)5ObP z#_&q%4D^jn323MVxj^h*LbjJOvG#_e~X%<#DPKHLq9xi^KeoU2?kYL~f%yR)ftC5?=s} zZy1_MW0Rj&v^6&qtNR)o_Vqfw)WMpZf7)sf|EWmCP9>_`DOPOT6c%BfYZd^Jw>CA- zNYuG&=e_ZjP7q0VvNO*qm=hizo~+&>F!S*#UXvxu)a%0_4Lsw5Ru&@D&!R1#y?U5h zo4i({AVEsQnM93B5R|)@g={FcB#m07d;PU@&1!P7{;qx2xVKZ@6Fq?pf8e{ICXY)B ztVWQ_{&FV)ZK^8&lo{Ew7~OL4BF=n(3T{2dhpItI&q+Htmw!xGNMDE}PI2lnQtXg)$o=KRx;i}s<#6=TXP;H8 zQGU_MZ{1`BqiQIP z4JP9}v=nL2czI2cUMpvGpPkdbxJJD;Oeg`E=t2yGrx)mOuk0rw2o-iJ#SgiVw64@2 zn@CzfbNffiCL|V*Fx5@hT5q-e>_gP@nGH(cR0yp zn@m8%ds4+s9_+YY=GZgJIy%&Ip(d=QzWmFgHu!bdTjO94U9W61FX^mHW@SvsEO!`ROTP?dGR>-l)|>rjx7S? zRX-Je-&fQV3?>JQ;wpC43Vpd_OM}F&@tybPi{MCGS&Z+PPoBB$6;=Ag499eAl{6WX zB$KN^UVnivcSX@zG>Al7m6O!KOd^qV)*<@!VcNxypR%YvjcFEy zP}bk)ZXN~b=l-z{0#W`zVv;v#hpgRwz})gG6kKV+aW>M-b=UI z_pAB$Jlx%TMuvx%Mz)^O_Oaj+Gj`B;@j__n>ErKXmx)A6O@GPOPr{LDYE5yI6o@D( zSfd!hpOGywZ^X2FzaG+C^7S~hCW<8?A+aOHv6^}-mm38%&l4o2z}sNG+#KgHXMn z{r%Mng@j!;z0H_A7p_-Uh|DeARcwp}1tZ^Y*hy2VQm>5x{H+j#(-He)diTEY>GtOU8CyE8^fw2KRdrW_uR~v8z1QElFwEK`)lm?wHZ`z z;Ou=KVd0o}5>sfpy_>8GR%>yaOWlUv%WV;U-8Gxj+DpgJuA6^yaw4vn)-y5x43r0= zdHaYS_Z&%g1fS5a8uKtzsV>MVU@exN#gLUE&EuXg*dl+A!S#%tI})-e%*~}jSDa>0 zPew}G>$;LU?N6IeZr`-+d6#{M z2vI&|?>DVL#;=XuRpv(}SB2{gde6FtSZ0VJ8ik`T@zU2F9-q8DW)HQ=gPD@Is+%07 z%X5Q|p-zoM(XehpUt{{nz(_cUt#s5AGH*fq38T_g42Jb88i#?)6pjL?YkC2MBs z@sS&SV6PK@>m*TZa;u@aW@3iS%dvJTGy>DL%&5VGA#1=@n5*Qj0p!PGi-|*hz?R(O z$VlM?S=Y!FgOs{PyCat}?c_{a>w*aaztsAa0s4~7w$RVoq&EK5w=RGwZ&Sszft03< zSG^xc%)Ai_xbo6eW`>OVj$u_%a>F)3TC#ikDA$tQ zgI0CQP9gZLWdwEoSX7TU&rHocczY;A#%yb%s66;VCZ(4ok(wY_DxNZ^7^K+?(FP7| z>sMhO*Qau)33gkmu==Q_losAW5=YYuF#`!>M2Ne~Se`z0Ktd^pzn(Qa6Inl~22BLg zB;v9+x}Gp7Kw8BOPUZW^pbyjrC@^+Vtw?OXV!G#d)K&nHf@rfAwwR6YU%o2Ke2d!p z@gpWq%X1L-y!m$VEQ}NHhJL&B#ZQbSp>+Ct*_j`P;l0&G$eowO)H^6f{k!W@4iU2h ziNY_>5|7s7hrMP~3tqZo5%(^DTo#n*zFvt(KdugV5Ld)~K1I zdbSUPi@67y`Px{(jjBoGIDTQwY@JbkoAXBP!76ztv%RVM%bkYKb@5Z7yKyJz(-$p% z&M<_JZQVWh6(Wzyq^Z)rZds@GG|#UA@~H9KGJ%3F^NLX`k7PtTFY|;u4{A#d0gUOV`Sf zX0%F{>--$Zp_XSZwfJ4uL}Bz>*hP=UsM%|6j?UE}C;Jx~A*f^nGuB_S#%j`$rOPwryId|q1) zCKYGLz#U9@S>v!KW-c8pf6=u2T=i<1x`ixP^#fHH={+iwi;=`{vSB}%@~P>%9Zci+ zqIGlRfdyk>7UdeB_JiUK;fY*+x6JP+0Zd12XR})?3;XN&1l#E6b5#RP%{ke8e0)R9 z8;GMi>2v!(-9>tC&j1}7uE7Ld$Z+|`-5n2OU*(KY7S9*y_YceZv5og%vmUFaykc~e z1dg?-4BgLdhiU^TTdCZz5;RipG`(GgT8y2rsY+L{)YRpK6Z|aXwUe4U}g-Xv=u6>}m$%2?H zpBhdMXcV7RuuGUt$COmLmwd$0KVAKp+i~YUv5tzY{|!h8q42fOmHAS)XvSfRPq=U~ zvzb@C+J2gK7XNXUDn>vV#`>a;?aKIw*fF&F+Viu($rgs!tb;3YveIiMjdPB7!LT$k z27(D(zWaNVs}P9#U<0J=)! zA2W$hJ!W;wQQi@qLAv^1BQ<9x_k4YQuv9TQ?^M!Z1OR*tHdB)~Vr?7JHdnQ-yeT%|nkLPu7;vzuBrLK{teQDB8KvbpYtQ3@LUoaW zCyJ_cMvajqWC50e=CIeKu9fV@Yy+`UQ9D|sa>MveST7=KJ5VZb7(`eFdu-@JpK*rh z3*?p-e!UPxN=fzN09r0K3)Byv@6@e-6AOCNyxV;FFtK+K6SbracJrUVFkNK?eY1bN z^&~PIy|H2Zk zw=^|jQ+k}YyZpXXI^ZO+e6##S2Pl_7b!Z0jm)gj!lIE`B$j*M(j0ZegLOOzhm>c<^IX6W8{bH zA6CmD)W$JxgSisdh))>&XXS*TGXwDQn-mK47Vol)&as0e31(wXPk7^NY3cFKbE=*t z<7iuJHI!COAg%{D&T^^@&>gR9Xt)>WyDYSM#N96Fl)iX#QsWXLAPnAgEJbj#yuOW{ z5JbSLP0U|W5u4mzRx}eJ-7w-8_l|@zVH^%!aHn#6Su2eamJPdBzo%;_bBp+`6k!0R zU~R!POy1eL-#9b#@WFRgN5>LBVJ$grjtEJ6ed&C z@q__O$<3ICYPi*h=i2(_l7~&`)BSIb&Z>631>Fv>zD`7j<5CcwEtE#x^9zlad_w%P zQc`z<2MA2u2tB5?i#3)Kd5SuQjPOmr#!lAiCv%$ca@|;tsT7u!GUAso?sY{D1}96+ z!{{aBw8*IG@AEkjSj^xKYU(Y2A7 zcCayiQo{G+^HP#GT^;g-dALs6LmhUr(Q|gUT*-88t)AA0Q+klr>bUvrjq!oo;&;6@ zm1kF@LojfCSbDI@-52W>?$|yqEp7E3r-<tNUX|OtR0Zh@Gy;GPJ41KMtRI=@HCNlEmpevriRX6$l0jKElUWT<6GAev>IHQ@aWPnk&G`pI|0 zA)mM7OyMj6{@2GdF&L$RS)ox}J6MvT*}k#L7(-l0T{4>V#53EpCr+e!4W}(Xua^r< zuJg}Y@x;}tnVwatiIXrz`i8DujwtfR`2cn$n-fD=p!xPpKOx!u4D>-YjfwL)rP_x=`q(7 z38K(we%=Mkemx5Ebki)Eb&vCbPRD2ZR!8+4R=T8syZ;vXD*hV)bUJQn1cbbwbiYUy!kINuujlp#9 z%Nn!(u>L-!4KoN%p3tQPY4s?h{XmCnZJR;ATukX{G{>*Xq{~`i|7pXjyJ>f%4{l7pqR|yD{V}@w{pRe&Xl?TQ zcHvmu}TtF1=~>;}4Lbg@gg z`lY6lL^v-rdTUMs49XaTzJ-rR&%2RIo1mej}1+WisF ziLYeovS!U{^Gqe-8lgL@Va!VgCj5><90By ztr_vQq1MQ#X(@>GYp-8`K8-}tO=#k2lJ#C+%Xz=!qsrxvmC~AXMt)&Y{7SeI*Bh$Y z1-!lmfzp7^+qlhBrEN`t4gp0x13$lKy?NSyYq3DIq`2svVk!MSM%q}^8>_-T=^s6k zJm(>Db%6qa`V7s&FVho!EG}n)erz$7a^xRU5>okV?B$XNCEvbeqhlqWtOyZU8h7cx zFQ%6O7ZNM-5VQN`(YE21zYb4>R+T@;=C)mO z4i>l_FR26#1r2>c8o}OEQbm-~KB*pwe_e!?)cdWK&pFVSS67W1Aaq3{;@$MKU(xy)dsJonx*v_Ie5n0;u+RG(Fl2RZ($jW$M43 z{1bh&bhp0eO9nsB8^eSNtXEE82;`n(My0ghf>=)n-{kbh!AB4?Lu z_&`}2>lhGwD9<$&EABksRIcA(+n+U2d3WPWwk$t7&0{O>JPg5|AN-`W(Gq5f-k|M8 z4V6klOyi#5EkJiF@7`a{9Ox0PvUy>H=Yf2--e&sw6kyD?z0c?e7D@R|bwacEO)}`85*?u@+mnKI`cnAt?MB7r84*3j#=zGTO$RR-L9t#@ZwS!qOhDzDIoZsQZw0`g<7piV$B zDKc*a|A$tXFwR-fVJ9mscn-z-+I7oMOq;&6KtAT)%OBWb#Kp#9AondA0+PuFNtO|*L=`WI`2FRJx4PFVN zOG3WW0VE7!@$fi9mEX+N7kr*ma+j<-Uo)`QDyu0R4(ffE^Foc?@C9GzBbxYLUeoD2?H4JBFiWv!e_3PP}Tk79=b=LxSEmXXUKt3sA z))>(=Zba$ya}T4LO?RTxc>HF2_xky({Q=zHik%_c_$;C-x^_cxSdH@Zk&+dE@GjmPgSb%n(SRlPEx!}9m%wb zWJ$cWnY6F{bh+LL!6A0?D;=)>(;$D$D38N6WiwEVBqxqZIERQL_Q|(ePo-icC-gMq zTTzI0{#v9kJEh_x8I>|u6gRHd3WOy#p_TE-dowT5J^c>DTXIXYldgacb+;l*ZJ1wW zK5*g=r4r==SvwN|Sr&(3o1<^ITpn6z)B0%r)2-aVy7hG5M>`t*sJ7$>H=zo&miQH}!o*K0i4+iYOl7*1N|(G@;dCxAs{GDbhDEHjZkzIs9oYPxKY~9Z3kIUymffg26csYn6<0}jYMPo46^4$R}Wjsy-uk`D0 zY!V#Z6FA2KTDZ0qqC%!l(vipp_1u%X&cGQovFSk4b-(ME1RT=PpXp9yc!2O5d` zk6I}-G4Bno*#XQ`$*D-7JnZ<^6(byy6?3h!L4$YMQ3QCx!Tr5wH}3uEkU1x!@3<0e ztDE4C)0>>(Mr?jSD5H*1&jAbG@+ zN^!Sxs@y%S&l#`i{gy&ktin0Q^li20-O<~3=Cao~HADoB2;YutaLv3?H#$BD&6+l} zEjQg8dzPLnU!U2qn)x83Lgq4PI_`t5P2~n+WNUuBQx*eA+#2Nja_w%lUKbX1+MRAJ zQ-IA-Y`cKZxPY=l(o3(vGHQB*;8H@4AC4Kv(i%8|fK%J(uvR*cAs;EhR%2Q$nk6O> zBF~V=_Dd3z=|b4ylK<@hJf^P`#BWo<@1h4t5Z$)|NPSgO@h0(DFe0!+q8O@(r&0d8DF$HE9OdH{1iQym$|O-yo#>76Yi*JB1@lpF z+X@-<>gO|#2ADInW&&C;zO>pYHr<;@09k)Ts3FJmNT>|)8sFnO!Rb^05?{AUTDUQ2 zf+_XhI0MnYpcv(!V`Ik#Jg79b?z<3^DLn|#CXMM5Tk->VtK9D3d^J8mA#Ir@X@nB? zGQ!CVoae+0z-m>y$Im|sCvFfOCv{C0ls zy=vGBmR%<76JUoH&_^28LzF;dP;Cdqdwfvw!op$>Ct7R!kzeyYoh-#0ZJ!`2MLuEL z?}VzaBC6k|yin}D!9|+a*x(E+oSu0L26yTIx>$uZf0~d+9>`Ad(FFjQWV%B`L!ubg zDv||Z9sS>);a~-3`QN9dF~;yI6w2oZV?DC{0x(I%de)Pf%CD(R>z*+~=;}nLM(`?w zu))xf{1iZjgAZT_1xoR+M1jZ0sb{D*sdlDoc|7>FcT+yxZo$|NUdJv9l-z8b;Ru5e z(Mug^u?H-F3y&L#_N7c>PT@&22Y<-}#MIb(c9K-B7SQ-a-%%fKQQYwkY&X(9@-{?B z=Q6xlDW+q|b9qal33!R}IsGvWiKhbu&(uMo4h~KkriTD2`f%Q)jWTG zBQD*uUuTZs%W?3qDpz+6tu|oiR;&OQ;DFw&cED$MoeeLaf2s_#Zn8x$OXe><1Gd;7 ze=6%bYI~)Ehm>0nk`L<#tC5T!B+4NcVJQ+-QLt zk(%{Bjlj?*Mqz$V52G1?IW^IolAqmd4~T0DVCvX~6}2w7dUaw4tcq+BuLpq(k^{=b zKmoKU!fldnfW>sA%5#+fwjI3nj$>1Twr9OGUhND|3<(O!#RuM#s9A|R`z!Z$J@%mrCG0^s3~3H8-beK-E-j*0k;=sAvX35BU);pM$qZl2Dj zrT{F~FuZgW^*bZkZ~}qE?_%4@24iD z(28htok78w`d~T3rPLm0{E5M-1Rk#~2J=*|$SkpX=t_ooXOP-5LaqVbyAZ z1>3!y7<5@1&z2+a9BD-*R6Sr!vcv2e?24li?>5D&T}ejX8}nT=ccve}X$9b8e323= z#VvNg*6v8dH#XG|=?UE~Zx2Z1pd)#7kE$Sx1?zRfRcGwI@;i)vdH2SI0>)3V3w|gX zU?$ofVbDKdYlzocYaV{gi&*f#WEeRBT+^Z=2gm)1OuGf0iN`=Q^sT!#*9;`|n^33Y z=cE^S>ClwJ`Q#O|R{~bSBi;~c`HRzUMP=yS&OAYJ%@EVIV44}22s(T|1e1hFj!K6W zQwijbe@?mUMFn{HSQo3Lez{Kb+;GSev}c-$Lrm4$J58etKtb`i2%P8xDD?th&jS{n z)(8Vi?unSXD-i-X02;ZXV=Wj#a&RmHLzgM}yKF7k>qJg%{8>g`v9E~{i1WKPutcA$ zGrEj9psKL7l^-ZIPf$uOReQ zBO7&c^C5xH4!7=$!fdqRZ-x7Nybz+Y3|rK&!wtxD=?Wp2Z%^cy=oiK?Tkp$0NZ0@bsQN9F$MRe3 z5xY*9jy_DKMn$z`DD(X+kbl??SOo~CD$9t;GxQCW>t)Hz29jGEnCH-Gk5_%$q?hoQ z(H?Sb)PB2(Cy>q+=piace#aVjjIA{SQl-z)rxVnU^P<6Om+@1-+45df+oOs!RIP(e zt^vvXqtPQKlbNG$wYvI-F-I7cCLKZS@ev1psP5??*%JQBXKczzbf3177+ZR2LI-qK zSwoPCE1RP?I8K*69P>=!R<8YDzpmGyxVOb*YdlGn*8RTZ*Py3nts`g^E*8>i5iLB+ zlPO8oE9&%y2Bn*yX&yRV0d~zz2xN;0YIT)NX+yoN095LA=(ZlH;~A%71>>R!V?ukV zB}rQ&SMJ6qv9^8;UWH^v+*hZOWDuHhYV_IRB^L>3akSNsO|Esgn`xuowkc!N1Dl}` zsR6WNh|@p8BgblZT7l3zLmm}T%X43Xo1o2@b4C(K!d9wuyD9q5V&8KNfhPU8&$eeh zdVt*6o}Y1uspx1$I<0}B>QFWDi_7V)MhiOzeUlbpsnPa-(7 zV}`##2b^zB$GCq#_N&Jzi)JZ(pc67#|1wi|eyGXeU<-1}}t-NZw^U@fe~MfC^D zVL}>`?Vkg>ip6p5rX)2FwX{ZE3J_nktPb(pIsjytQ0YhEc&!;)qaF*61($*phA~VAWT(&R2;#C+G8^5`N zR2rT%u6W_lN5o1&UhC_5@6NJiMJHu(9j>Mu;93toD%{8VKEde}UHEwNZ5f?I(=pW| zl_zdE3mXewVV8xa&fYa1$(Lqf5(9f-Mg@u6t~7M;gxCx{d>$9R$;+9Dt}Q%O9;yg< z0iJ>mw!VWm$)Vx7j=ny|c?Q>XN-;}@da&(u^fimmSB3<)rMwavl>MD?)Z^Dn8G@{RA1MAcGFWyg_od+nwBF0Nna{IUx-<| zq+4y;%9*QhYZ9tno{o~mpkBWB^Q?PBAqe=$P3_y!w)z7?uZ^Lx9~hoq?6LZej=E zD~0@0i`@!_b&PH~X#d5p6R^1f{l2ex<_ubG0ak8qkL_=#l(WV7!C0dWy z&gn~#t|Vi~);{iN4DldQ3o;M(CvANDnc`OKZCc>YJt^xX7d0VEdcuC{XPxPO2MYTg zl+ps+Zy0j$6O6=T1n5UTE_wMte@|HyU;){O0{UbO&etxe3PN81~0ukul{3(m! z-8ZL0_MWebW~(E^6^2ME%zhl?C4KDC6(+(XkcfLk=KphlG0V7%wHuzfB%>M0%eBapti1Wy49dPg4@s|`T=&`H!1YSGH7D>SV}BqN;W*^a`vgOr zrj%f`r^Z8u6+r3KG=+^V8FUyj5t*IK=$VKWZw{e1s-|_3ACQxgC5PBAmH2czwQO50tggxe{WFU&^J*=qUESPzCXc~$1Y!hbbgriw z68Ctn{o4~b!}ym|`W(M+29F_I5Rgdt^|ZQ$XIRDLH{M-sgLn9q`##V0)hdK6d!a3- za1~yjiHkDQ#YQ<>jTswJ=Z7ecZZuWubV4bBj&B=31cw$TXj1J9N;mq%tD!(e30Y% zU;3mL^{;Xg$0w0W5ZBWOCIa9Ih`Hark3rg0NET<&(saGXkOQT1sAvTIi^O^9^F8#2 zKS9BPJq$O`hx}Rwq0iYW@Wa%`UBC2pO!h1whYFjWE!Apd;D-9|@Do1CD|Y_$todiH z$Jo8r=I=qa=$7xH*<19)nHa0ZH5xxgR#0GX|+7th-KR1I(cd<+6EdAmaLX*=y1+>DrKQxFW(8Vl$5dMZMvsUPv9TaqG1SxYuk z1ETnJwgv$|hwgq-S;632W6&@!ZGci4GPDh^)npI+0Fc!>sn4V8;B5a(lgx4gUp!%DKfH5ZObym*D??}A7x%{+P zqs`MHzj#lm|oaJ#wP20(m?L%~ouECU=kT1}TrO@1*0Ngx>;q1D4y zS1U#~G|$xWdmXp@VVgvnphzL5RU93Z9kLQ$?&(o-S4Z~v>7@0(FUWxJ6ixSCp~KBo z^~aANF|EJ#j&su@EC{4!S=&)7(og`;X5iOzYID`WFW%WG+S9C3_B79Xj>piKEXf$XpykBE=QQHMb)bmbR7MCMaozeWi}CqNrKjZMgmLu+ zc#9ZKre~`GFh51)iZyrw*d7%x>nZ;Ik^LK)m}4D9k8s&ZsJSE@HVe;f(m(V1-^yzD z6c$1h*jr@)-iK!)XzEI*fn@HAa&Uy(rJhc~CiK^fyE31rv1m>yw~4qA4#4bSi@Tn$ z`Ej5(A31u@-P5BXYC=>Y0p8y4Uq>{S>zd2U;=2A9=ldekMMAa@HpxP}oV*=-KpUogC!AMA; zOUC)d$R5+oE_11EmlZv!(~KkHrMt|wpWOvHz{TdEO<7waw=*T@Me=tRt&Xr9bl>`9 zu=%8Ius+q?{dy+jJa;z@ctaj65k1WR3_AuepL)xyl(uTG%gk`}rKP%)SWu-z(c|Id^hF1VjBOBQ>@=NqMP*TN+llXE zIo!$1=6-*r<^JMu{~bo314!}^_Ec0H2Ip%Bj~K&g<(LW-+aLbL<>Rv4p=G~y(j<8M zm+N50j!6k;<{^UCzTnfU^a>N4VO}S*keG7&&26@h9%F6*ay z)c)oMAi=NCYofK2uy18&fvbV3Fx>`j?GX~X=0H5kf&Hctn`SqNm^c74MQ&f`_;Ref ztTyX%2SIys!8tMp5=D6bylnPZ_%#wa~7lxNkk{2yp zyO6Oo*0Z%;?&&(Ozm=h)%J{PyfbTw5k(Zzgdolb8nMCC}JEFg4G@GgX8!AIkb5Bp4inPQV%RZvGOUD% zduKr$FD80L0K6FXWn292IU}xoZdfC1n^lrI|HguA2Rgb~f%4x&VM;+-@nk5%eb4U3y)FBQzLZepC0+>m9rV> zZ{~Qsvn&DwzeE~HW!L@}TWB%NJsn?MUY6bp_)w|noB+n(N>wSvW1zC*1fkNZ$LVt zGz1((W`PV0pnJ-e;7%lo%da_27$(L=huATe7KEAJ3s0ki?qN%_$ulh$s8HpX?pZiW zdz{y8yj@v=%7P384<2IFlQ_*yxUpzsxgii^i=(j)xc(APm(^w7x?l_3M%z>3Ti2sh zDn&#QaLnw7bNh}uBb+K&;whEK=8X_yc}Nb>6t=_DnBKYC%9lFAGQ_9u_BH_A}-LPLII zou*6SUK{;Obf+zWm`u=16AkKrjuuMvmLWRNty0^BJv&z~FvcgO?X|4Hfhyrs`kqn= zk6-0glDr(Cf#vzeF8|asIezN}{rpO5?Vec`F(dLK*I&N3)3US-V$Y}bA9Z_o2x;b* zk_OYZqPY~Gt(5RgqXGtBP1Svmiqm>6*x|cpIe%1))Tx@$Nr_3u5bNsXDPu(ejllB< z5{h~i&QMnhB_CY=-A-2q$27NjfdxWubyP*_U?+z*hFZuRiL}@e(?nxMk?vK*e1t}w zOU>+kA2$bu1D|W>Igc@;B)le@EDs%Y>NTE9V*hj!*ND~h;^b{)hV|uU!1C%pcN}zs zri?fbvjv$uy&9rOYwA#=BsN%>h8@Cl1=UDfs|Z(c7APVUX=>TT6bU^odH(P>4i|vu zXVb{Obvb1#ZFU)28UsBlSeKsFSyVrOAa18BeZuP=cIxq;Wp?8dt!>F^M(4!Eib5Wz z7$<%sN?zp(V5s zBiI<28%PSLAz&CrU3~Nq^+Z(cEh~OqJIyhCwYwyvlodB3hd)nGEYi~qJGNV;HjZyR zKBYE&PJTUDym8RFgZvpnEwgJBW<3|aqi#WIt1Q<|j>s(wh82fF2N?R_FKRo~H=;ri zURe3XZ3Dhf1F#~WSpiT-)|Iclu^$Pm@~iW^f;9sG-k(^7FnZKmwjoMV-?Vv}^?xDe&ec&eCd(|* z4Co8dA+MDh>$D+)@i$C&m73Tu8n@Dtp8FnLI^JYxT6XJEX1Wqb(X0B>(R*Prc|c-( zk^zq1<_p@+%Cvr|Q^LW79`TP1dIc(q=(J=)^YWX(g$QZd)5mNBkfHqS&0g5 zV;IiT?4qW=?Nkzu*whobxg8c%z)i8+BP)qg>@%@>Ta;C8B%9XRJd+$}nfCkM4HI0h~nIf)a^GIrDF`sqQ`OL6Dyq#v5 z-g3U<_ImUnyP;`nrM*YPypdHJY%uu5)u^#^zy;<9v?TnEscC@3SyTFglIS zsz~|4%Jv`71`=sgzEF)z+s$TTpx_<7PfQ9$Za&=K{}G+CZOdQIuw&x6)wbvPN3sg{e?Dc*Y7;#Q+>r($|@@iXZw8$nCyM5pJpDTW28aP zo}MZ(8-X8H9He`h+i0C@doQjz+gVRQ5>R*aNnbkvjs>~;`#K~fpm#!yON5$l8|xEU zDuuuG2Wp+DyiSEC56I1FltwB`Z%jV1xzuKeGdnbydgDjj-(3pFCQeYIoJaCWx4?bm zri^Tnfe8qzHws@?7ctc5Ig>I<0yjiE*J77A4H`)n(|UGcEYiAHs2MOi1tb%5`64 z+PI#BBzfjqxgBIeyx@#>%D{K}Z{!)Q%mCAe5ebi~d!uuP)&09IY7#f2CQUUi4JmSm zVkyyXno1J>zeQEFW{Lg?yq%*6M1AJY-V?gKhL!qk?sWnaukmMVv@B!|&>XBXf=)|^ zH7;>r^)$p^a`6j0!*UTaoeESG>Q~!v5DX@=LckuB8=yJ*F(00MStEErTr8(kZ;$+J zWSA9Bvr<9M!4lIx+vxIb@`csdY&}ng8LiM6P{B{oYa4p7|LKI09VakW@5$NR(a>?Z zqgYXZCx*!>)k-{x!9Q-tdr<)<_Bhxr055*`ZmH>R=twc@Yq19&bdH3LE76M}zIC$i z*gX8yC(M?b;Yu;MnMac3%XJ0$NfKE3t4QG;Y$lr}k=AM~LXinliwY5#*=JwJ+NX@V zp&W&aho)a*CeD@R1R6aY_gjkZz1WH*mua6Zs!q@!MR|-{3FG->YOrS<^I?2{AztWQ zYR~I(EamO><`9f3PfQqqgZ=7ZSQzo8SZXPgiV~w|LCM0^Z>_{Ol*fW*)^_$CMqc$S z%fk>7!z_h(^KDr0J5m3zB;qtGMqSZ5yGG9 zx{0l(8J*gGPgX|$u*A}qC`&>#b6Wmrvmr`NM>kj;RQ=64OA?Wof(+-Cgco_WmT3$n z&d|!Rx<;@JEpVkN+prvdR=ykh6a<(nvD(ZAjS^XhJqD$BvSd}Vz&8)K=A;!C?VluU0s{H}k)v4WvwN*F|EfvXK zNMpd1BYpiz@gwJtB}YDfe>4tsahCuSIDMY(iG+kmyN4iT+d@%|Aik1+UPY^_Ty||f zU$^YGCaW6|iJD`ViAU20nslstlAFDnDVWfrOpfve}#S1|D5Z`eY zdYdSR04@D|N_x}VKQ8zVH29`(_&Y&XPcX|t^P<1!>MQk`EvWBQAj9JN@mEM5t*1Sj zBZ5x+8}@v2mSDu<4hgvHAI@<=7$ha61q|2Lh)DQ02_>CxBIu!a4bPP&SD>a2kenXr zqa;^Ode)~)5ghpGCha&)bVPoQPvr*&x5EW=0Q{}HC-U&)Ulh$8aQ#-qZa z3mpO)WE$^{8E_|IROVt@%nx0{fEvPF7<4j+t^Zmx(is8R)&{W~(SK=(Fx6Vq7dkeu zxCq&{yQw{X%pO$_K0salERy6s5RA{c?eq*WTD9u{8Q9jN@m&8byJ0&wbs{(NS@Un@%K9b7h-{Od6_>J z0<zf%=Jm|YwB|e$NRgKs6e4P$ z`Bh+1%d;*aR5eiy(<3DUA7LEX+KO;2kAz)yRRl-+qa1AfxFHqav9KTj9O6+>fy#MQ z;d?XQOqKlG{XQo83Pp}DuS%S+p-`!MxkW)$Hs0`6*wU{&#JjB;nsCJYz0`YcV&^K* zMuZPc3)=@eL#}b))Ok$o%}=+qYVDIP`4)CX!>?-0GOZoP)72DSw)lk(X%1#W$ty?1 zE1Kd2doB-JT8zcqgF+_2OL+wY%- zeZ=Jc=-wqgu>A)fMHNk=zYZ_c7)pJ}#ky>BrnvhahUmMhfLe6-Lc{zA1Cg$7C-g(V zxOH3pf|ar1Mnj`5tbKpAeMTi{``8b>({SeB{UKIH8@wm^Yba|))ISoH2Ret@!wgYt z7UiOT&iVrJ*@f@=^C8NktTu4fZl=}#GcchkZlqP`jP&XbK0zTm$?1X*k_l{gFmppu z%)JdPZy~T%XD^VwM|5m3okb{-IkR6+C<-%Cc`grLK8zKXU7+aqz1bO8-=7-oFJ@ z(zumh3dGXPn1M;57Hh4yK#?}>jDF&R6~E*)u`pH*%)F0FPx8yf9whx{20tM#cFIB zQ~l?rIpvX#ONoIcCM3#g!aRO7 zEfywMboIZ6u-JK-U|c&Y#{R$TiRtU`^H6@B}}^3e@Nxlz+( zy7pg22i)tMn{^On4`2uf3ajS-R;>7e-O|+ngm}fw$Itc$^78bDdf{L)u)U|hzstfe z%_%K1#&l=o-FzKpa>xg2{Jsi)uWL+uhRoC4H&TI9Y@|~vcEczMzAOO` znf>k9ort)G6U$Eof*R17-!hxu_zycqL+&i_DH5}TlpARRcjzZY8gHkN_v!b)<+p^G zY6>SUhlUOaTlzbKbAoQ+dg@Zsm~MCKXAhu#;*{xh7y>2&mS$rCGMr5|hoLp+M-rF> zaf%Rmb&=)2TVHMZ)uD6qGSd{_^oK3^HPrE1eIvKi1h5vyOiJw_9bieAf0eD=X$NdZbgoH>fE@6&MW8(el@Wc@TNz1rtx@6;*rQ3XUn*|6T4lg!RQ9h^(Y6D?cS?2>D64J}z_ z3gw+pYLRXZ-Mnvg35+@mOCb21((ar;hwzTSvtt-vrN>l*m0E}0Rz>-}YL?74Kv%pa zo(XOrn1k%mqF3$B`B9l;3YV$T$p0BW?g9#XJ!A4CzU)Tb#iq=Ph9z;hygP72S`4d@ zRlU`x>WK)cI#$HC)(Y{oudxNJUqZnhzx+&%+?TTmI|HTBKVZa;XY!`ZN^+<+!5Q3_Hwb2O%w#-KBs+p38jJta0J$U-K( znb;BP5-<17-Elu=9S|}&)RD~UG4^fJ!>5r}IJ7V3F&E6vKpL{P;Jq&r&YqKFim`ip zw6JTe)2oYUQ$g9H?}BlM+uok?c0zH@O2AVh`?7A?Y6C6tElu`61Bgll#B3c)?CqSJ zB+WlS(iWAn9+g%^U=5najZ$T+xk578b&X1W*L1$jk$;g&f^QFXL&M$eZSFh$<<0#F zGl381>l#f*T1bKu5$O2UZ}&bsJxCO|0p1tb2W(ks){%!F?)cv;tdi`bvK-vNIW>63 zx?Nv3K4D}Ada-GIaEj7AOJz{0A~RYqpiWEKo%JHK`DS)rs-O_j4IQgDQVrEeVy+C) z(oEFCdMg~kDE9`Z|L&L@3%|eI6pf!J5wkk_>d^Kp7F$8G_%?hcI}UQ%rSo+Ya0mW_;^DY5H4bj%z(mVJU`Via8vP~ztA*RCV}8QB znDoeVcblMp%$YFe3a0O><#Ll0*QLT7<#|bxIuANgqkW*^$_8_oIzcd-{OX9O)v2D5j)RpDHiHxeMS5Ah=0T{?d`&SRx6hKtW zD&{)fwZcCw97@2lJInGt6fL>4Ac;i#m?ILPeY)DLBDgeHAUrqvP|dfc&$&?WuB?(B z|FmaWcx(;MIP{dBZKRn`9t}yJ9DYcLXJH}(R0NBzdegM9vK~l>;8J++P96}b?c?L) zcT1YSOhTQEUgQUkK2RsPQyLK|hriwBx9p93&_m?77=Y~%k(on+@6&foPP{`nR#f5L zhLxK27k{`izP6l2;uv=2)p;b#&dG{>bBij12n)V`BWk>tSE$H0+(KG&<#n1Aj+c$b zh8MdtP{s_XhoYhnP1YHy(Fb1N_{)+@Lm3x6#-S^2mX z+pVWR@_y12qO^H*e%@)X{Vj4gE|s9H4?VfWvmO*tr$>YwWclfB+~pf}TE@eghl*d# zQHLciP&?K~)xj}LzhRMvxTvaJ#z~#_Y6ET7yU=$>-~35tpiR}{wqU#l8%O6s)a3Z1 zZApJ|{>@I>0Stfm?Jl{%l{tNIAbq z5=TTaaY?X$>cko3FA9Ynp$^Fh2k>%!m9J^2NlH+7YnU?>60F;Mio{@vI{H4nIY?&S_00Eh&4?}DNctDVz2xz2zy>{Bd=+}*{VYi^ zpd~ZjNOswzHU^YFW}Z~D>Cn6QG3CE~25)=;rAN=~;aW?lPb)cBEj$p26eprGg8cNB z)SC+`nRBnkt!H-*rwImf*4z8@C8PGFz|L=%E~fNt{CsRV0p|i&AJ_KA0x5C#y{(ZAiSk4d(@^JBF; zk1PC6Z5g{VOCSk^r5aNAica&(dOIR+wj8YAE`P<3%$B1iH~^o%z5Go!H#Lo2YOt&S zphvY|Fi*oIC_x+0lwg$!W~V8k36*XoW?O%^yv z+EemW%pfz|@YDtSn<}6|5&Q8jIVm~mq^>c92|o>4vD9V+k`Z+;ug`RxBVl;pucHKS zoUkr{XS>lu{=ukO>Vacp`Zr0ziAkQI@ap{Xoi}5)zmuEWwv+v&9iSa%15vKNwO0QK z(f$(q7^{8G)r(XZ0r8e^GqC>0Eb1ivlDB!E^d3%TEvhcskiQ7g6WEXq63)|3a~Hnb zv-y50D~6lbAM101C-} zI75yVDcPiJ>)_42%MMq~* zNb|y`+%T`3ZPslUYBG+9k9XuqJ7KuJ^<2KiH8(SR16>S383SoV8N<2x@mE?#lG|gr zHO|21S#Wh1qfh_l^TtE!ZXd7Y4sY)9x~c)#N{R)0#lG>qQX5H4e2}=(es%Oyg>&ej zo{Oiq_xI$|jgMl_%gH;*KLe8*Rxx3zOVJNOQKUlv(ct?mU8)4w$8-Nh*47hIK|#7m zHjHSD*Vls5=F%)?t>%B2yG=|MN`H(Pj+##8&gb!^%gY`!%AS6-l3q`G$(i1*=V`#m z9wX4{b}h7vKiI5FtHEO=uzmM~U5=m)Y+{D$FVsM#=?izwD6)p6!-7fP)&g;mJrd0M zezdXKcu9l-W6ZCpwn$V39k+F=^?+&lVtM%c8_z4IWy5=Q)?^_hpqJrKAp1pKB8^|ur{T8hCXK{)KzVR@|!i)_=lgt>rkJoVD zYmXMbZefrlRHk2n^$6$CmK-`CX!hOEbNsDQ*EtGS{w9nU_1~}wvl&ie{}j0=YAxsy zNFSU+tKuOk!i62Lu{zPN&3%IFRqp*~?dc}5fu=5Zb@ldYT2M2Zk1hen&i_POcKJ_b zGFQ`G&m{KZ=p?1O3nldecLxqUxlA=GQ{I4eSrq|vVEHN!Aa>lKQ%V)DPj?$|N3t6s ztNL^A72{}A`bSmH=RQVxCcd70zEHtS+jAh&3ig?Hro`rE^ghro@!Y1i5KNs*c{YE& zrr?Rx*V!3#U|Yw(x!JufyuP`&+!|pw<)NMGx1SdmjwdH+G&+MC6G2?<8 zj@OeepC3*Ss3xtK7z?RuJc@N}t9p@GNbQpc4eH2hrNs52D;oJxVCY}NAROia^-pr3w zPFa3Mwz-o;RyzAIEM|6!=LHKS4=XFh$Ds{*6MrNf0l1(c0OzeamEpDs=G-WT0JD64 zmqab%uARs^us=(nOmpeL%P+GRe)AO9tUo`BKxHfI690R{gs_#m-gROY`kOo?%Zy3r!pxeYaRu8w3&bqT8?Iftghzj@Wj$J} z5*2+8QXB`#HvRkXeO|ID?GnX_oyCv7gGFP9y)ZidL-nj2f3wBH8yXz!dJm&`*>bZL z1nFU4#1z(txkDmRxk(+{ByKvP!rk73KWjBVsu_#IS=r6Jq>7Y)D@~*8_xd{}^UTrQ zax-GBc6CIZc|{cIbvYdgt-CDqnz?Ki%>XM=<=5v4p%1ao8}A$MEj|}H^r!+_mv=MeucAa1#c_dXo;^Z@65LgG7(ha7Qw$s%TJ~5R8_wZO!8@1^H+Vj?i&iXya zKmn)iA`sC8OxvYE&dxVf&i7}|)XEv)kE z`9=^%k-^4*WJ|qd+Xw7`LY)j!f7MLy%gY^or-6|09F^_sfe=qF#?nSsveynNFMGi* zAFXtNbOx*ttHlFhoktC$6D>X`LR~E|-h%r-7a&dJ?j_VGQXbsqae(n&++6D7)|wF1 z2?jq?91x%d%N7$997p9QUPvlY^iQ$~7^VAvo=3(FosnaRYo-$7fOAc}sP)l0N_B2aj5sM1vgyN!|E9Ru#- z^HUNc8ust*fxt|GUMNu;%qGOq*qWehd^yDF9-kV2LC0#2FZ4CQ9Is=BS$tzS>D<`!*Pd8TOJ$T3< z(?rzd{1&s@$t>rYz_pVTJCZ0DF?PNO2AJ!|5- z)l=uLjm*8a9*S@3wh6{%lIdd08Dli!R?x%xL!m51(5+a|0~F=NC|GOnJGp`fAR3kH z2!_5C>06D{f5QOs{_O;KY0#tUo_HnLMjSST8M?~9tATstXAksa@!F3nIytdYvx#Ot zx4MO6(9E%D<1t0PFpc`o2jPh$oc{_*m>kj!BiH$&;!PwyplT4>-Dp>kE#&_9&j&u2 zjTa~TWJ3-=~1+x16HQI90N&QXO5Stb7Z$MD1WZZ*T9=Zw5u1%eUFd@}+K^dw$G3%Z1BZ zoDdSWvz87N#QT}P4`MIfxx#+eU9+Vs7fAeN-pL>i5pKRqANYl&lL!xl)M0=L@f0{T zVF+QmJoT+)!x2~Qu8K8SlDqP{_VSxM*$i`j<%)FcbiL-KM5EMzF>A~oRR|R@rBORw zZBKAO{9PvT$)?9_Rr)d7c?5szKzSU@3dynY<86)GTb2q8}eSl{dxQwniyN2=$!f^h^k@IUp zQyGRU|9ZD!N!c-u-3z3=o#If_mKfrBnP-0K&-t6Uu{4g3e#70@4?0WXR*VAT>9ZKB z6#vtZAwGNX^o$Pa8ZW4C*YNaA!dLL3hXWNc4^#9~gTCLeutf{#Q+}$T@*U?6`cRc< zhsdKEOa4ok8K>@e4OTKx@LSFZY2zg6hDN(#zQ+fRb~CwecCN0Muu4gi(6*ZPFK6xj zC~S+W7igMYvXlQhtIn&)GqRlP6?XR3hd1O_-VtGU(HrI_9GzqA&nsBglJn3)H&F@` zh_`q?QUNAD1a85-Z$g=QjRx;KY;QXhH=k^#_N+L<;r0O#tiF)cijP3ElUNKX_<0GC z>jWA;B0H!AzjUu(k3#$fD^T9H8!+YTZaQA~Q5OwQLPJv)-u5mm46Y#4SdCL)Mqfyx z`!75h_EK8v*WK~hh&?|yKWjZ^ytLv}=5b9S=ERed=u&$6HL}!0(m&r}e8STGEM%A! zS%1x*URpx#3YBr?vnMsklxG6cUzKJ$<7R8OL=&&AJfZTfZ^Y^Yo`1J6C#U*G`YuM1 zyLT8O6-73hM5=MVMpvD_0xz_d>8sKU9pvFpB6aZnAL^fLkF&XNw?7G8{i2NKR|NRc zNSU{$5i_=-8$C{2UTDj5htGvE%E;*jMPnxE5E|H2vsSVy-H4;+8WEpuQ_Cb6lOaqF z&J3g0?E3@5Y2Ds@{(XcF~mCO>ZY%n*b)rYIyN^3P% z$xAg(^@qf#IN3pVW_yMlCL^(SHp)w}vF7J@C>-_t%x7w54#$~a|2@ntE;fJl5{hgg zx_z+npI|EL3?(KkvB}7L4i6h8oTuDigO~#hg~FOL(5Fx5NH`z?DWMm=y}dKgvGOed z7C2$@cAaKodPD0)RN*fRvzCyLFD{eE^7;q^apgcnrgq>kZ=w3}DO0js!3j_Gj<$Is z0#>(&zVL8EUNPctD09VS87#{VQrU#I?L~*&fM=MBz$3SKR|9jLDMfrUmdO9eUQB+pm)pm?M8ukIL61{^8ns;(V zNEc@se3;^gi65h^A5NtB#%8i$>^B=-{c|^81WwV7bwQWNP^&U)vOL3`qZ5J~p5duF z_&ank(_LCH4GKxeT9{yUJH&a2nKGfLxj*f2y&3JT zTaWmWLgZz1qHbdH-kL={ak18N_NBIzd#1ba{rb=4rLf4&MhJi`3PC$4Py*5HJR4aixqHj2>?iy6Dgd ztgKB@%O+TtNADFApC? zZl_#~zx~?__JbncqmWPQpxfnn*su%`OxU~hl%p#AR)_@0R!TNr%RoZ*clIs+cwNMJkYffJv=<3 zmK+$z)V?4ntoKN~8WU_7s`KSo7Cw3Qa|2Q)+#(>JzZw>%q5J~OSxeXA`g#xa&FK>> z|LnuFvqqST?-bzGiNRKWlK;B)TvoqACUZ8rf}X{w0Was!=*H#N-e{UweND|JR*+4E zT^We|E4bF$3n|pJ-U;!(VoKGcb&VF*1b9q4(_wZZD1A|SwX(R#C%t6?gcfgJ&5bja zaQuh>{`Uo{i2!s!VTsXu9BA3lCUt_ac*eo=&A%5oc<&3kn$z^q@*~4an z!;_n$PGcHz@)AyN5fO|inBV>p#s}CcurKV2HJY;M^CSNi1wud6&rB8-R_wC0@OC;D z{>OWK!}j>?+tk?D*!kPrn}omgCp}!${l)AI#CUAzn-(A^ Ltt?gb#WeJPJ} zct92qE^caGJ~jvsCl?